@@ -54,8 +54,9 @@ export default function AccountPage() {
5454 // Show login modal once if user is not logged in
5555 if ( ! authContext . username && ! showedModal . current ) {
5656 toggleAuthModal ( 'Sign in' ) ;
57- showedModal . current = true ;
5857 }
58+
59+ showedModal . current = true ;
5960 } , [ authContext ] ) ;
6061
6162 /* Handlers */
@@ -71,11 +72,17 @@ export default function AccountPage() {
7172 credentials : 'include'
7273 } ) ;
7374
75+ return response ;
76+ } ;
77+
78+ const handleDeactivateAndSignout = async ( e ) => {
79+ e . preventDefault ( ) ;
80+ const response = await deactivateHandler ( ) ;
7481 if ( response . status === 204 ) {
7582 // Successfully deleted the user, handle logout or redirect
76- setAuthContext ( { ...authContext , username : null } ) ;
83+ setAuthContext ( { ...authContext , showingModal : false , username : null } ) ;
7784 logoutDispatch ( dispatch , selectedRoute , searchedRoutes ) ;
78- navigate ( '/account-deactivated' ) ;
85+ e . target . submit ( ) ;
7986 }
8087 } ;
8188
@@ -169,7 +176,10 @@ export default function AccountPage() {
169176 </ p >
170177
171178 < div className = "modal-buttons" >
172- < Button variant = "danger" onClick = { deactivateHandler } > Yes, deactivate my account</ Button >
179+ < form id = "signout-link" className = "nav-link" method = 'post' action = { `${ window . API_HOST } /accounts/logout/?deactivate=true` } onSubmit = { handleDeactivateAndSignout } >
180+ < input type = 'hidden' name = 'csrfmiddlewaretoken' value = { getCookie ( 'csrftoken' ) } />
181+ < button type = 'submit' className = "btn btn-outline-primary" > Yes, deactivate my account</ button >
182+ </ form >
173183 < Button variant = "outline-primary" onClick = { ( ) => setShowDeactivate ( false ) } > Cancel</ Button >
174184 </ div >
175185 </ Modal . Body >
0 commit comments