@@ -19,6 +19,7 @@ import useInboxView from "hooks/use-inbox-view";
1919import useSpreadsheetIssuesView from "hooks/use-spreadsheet-issues-view" ;
2020import useProjects from "hooks/use-projects" ;
2121import useMyIssues from "hooks/my-issues/use-my-issues" ;
22+ import useLocalStorage from "hooks/use-local-storage" ;
2223// components
2324import { IssueForm , ConfirmIssueDiscard } from "components/issues" ;
2425// types
@@ -92,17 +93,25 @@ export const CreateUpdateIssueModal: React.FC<IssuesModalProps> = ({
9293
9394 const { groupedIssues, mutateMyIssues } = useMyIssues ( workspaceSlug ?. toString ( ) ) ;
9495
96+ const { setValue : setValueInLocalStorage , clearValue : clearLocalStorageValue } =
97+ useLocalStorage < any > ( "draftedIssue" , { } ) ;
98+
9599 const { setToastAlert } = useToast ( ) ;
96100
97- if ( cycleId ) prePopulateData = { ...prePopulateData , cycle : cycleId as string } ;
98- if ( moduleId ) prePopulateData = { ...prePopulateData , module : moduleId as string } ;
99101 if ( router . asPath . includes ( "my-issues" ) || router . asPath . includes ( "assigned" ) )
100102 prePopulateData = {
101103 ...prePopulateData ,
102104 assignees : [ ...( prePopulateData ?. assignees ?? [ ] ) , user ?. id ?? "" ] ,
103105 } ;
104106
105107 const onClose = ( ) => {
108+ if ( ! showConfirmDiscard ) handleClose ( ) ;
109+ if ( formDirtyState === null ) return setActiveProject ( null ) ;
110+ const data = JSON . stringify ( formDirtyState ) ;
111+ setValueInLocalStorage ( data ) ;
112+ } ;
113+
114+ const onDiscardClose = ( ) => {
106115 if ( formDirtyState !== null ) {
107116 setShowConfirmDiscard ( true ) ;
108117 } else {
@@ -111,11 +120,6 @@ export const CreateUpdateIssueModal: React.FC<IssuesModalProps> = ({
111120 }
112121 } ;
113122
114- const onDiscardClose = ( ) => {
115- handleClose ( ) ;
116- setActiveProject ( null ) ;
117- } ;
118-
119123 const handleFormDirty = ( data : any ) => {
120124 setFormDirtyState ( data ) ;
121125 } ;
@@ -397,6 +401,7 @@ export const CreateUpdateIssueModal: React.FC<IssuesModalProps> = ({
397401 setActiveProject ( null ) ;
398402 setFormDirtyState ( null ) ;
399403 setShowConfirmDiscard ( false ) ;
404+ clearLocalStorageValue ( ) ;
400405 } }
401406 />
402407
@@ -431,9 +436,7 @@ export const CreateUpdateIssueModal: React.FC<IssuesModalProps> = ({
431436 initialData = { data ?? prePopulateData }
432437 createMore = { createMore }
433438 setCreateMore = { setCreateMore }
434- handleClose = { onClose }
435439 handleDiscardClose = { onDiscardClose }
436- setIsConfirmDiscardOpen = { setShowConfirmDiscard }
437440 projectId = { activeProject ?? "" }
438441 setActiveProject = { setActiveProject }
439442 status = { data ? true : false }
0 commit comments