File tree Expand file tree Collapse file tree 2 files changed +24
-17
lines changed
api/src/mitxonline/hooks/enrollment
main/src/app-pages/DashboardPage/CoursewareDisplay Expand file tree Collapse file tree 2 files changed +24
-17
lines changed Original file line number Diff line number Diff line change 1
1
import { enrollmentQueries , enrollmentKeys } from "./queries"
2
2
import { enrollmentMutations } from "./mutations"
3
+ import { useMutation , useQueryClient } from "@tanstack/react-query"
4
+ import { enrollmentsApi } from "../../clients"
3
5
4
- export { enrollmentQueries , enrollmentMutations , enrollmentKeys }
6
+ const useDestroyEnrollment = ( enrollmentId : number ) => {
7
+ const queryClient = useQueryClient ( )
8
+ return useMutation ( {
9
+ mutationFn : ( ) => enrollmentsApi . enrollmentsDestroy ( { id : enrollmentId } ) ,
10
+ onSuccess : ( ) => {
11
+ queryClient . invalidateQueries ( {
12
+ queryKey : enrollmentKeys . enrollmentsList ( ) ,
13
+ } )
14
+ } ,
15
+ } )
16
+ }
17
+
18
+ export {
19
+ enrollmentQueries ,
20
+ enrollmentMutations ,
21
+ enrollmentKeys ,
22
+ useDestroyEnrollment ,
23
+ }
Original file line number Diff line number Diff line change @@ -12,11 +12,7 @@ import { Button } from "@mitodl/smoot-design"
12
12
13
13
import NiceModal , { muiDialogV5 } from "@ebay/nice-modal-react"
14
14
import { useFormik } from "formik"
15
- import { useMutation , useQueryClient } from "@tanstack/react-query"
16
- import {
17
- enrollmentKeys ,
18
- enrollmentMutations ,
19
- } from "api/mitxonline-hooks/enrollment"
15
+ import { useDestroyEnrollment } from "api/mitxonline-hooks/enrollment"
20
16
21
17
const BoldText = styled . span ( ( { theme } ) => ( {
22
18
...theme . typography . subtitle1 ,
@@ -90,23 +86,15 @@ const UnenrollDialogInner: React.FC<DashboardDialogProps> = ({
90
86
enrollmentId,
91
87
} ) => {
92
88
const modal = NiceModal . useModal ( )
93
- const queryClient = useQueryClient ( )
94
- const { mutate, isSuccess } = useMutation (
95
- enrollmentMutations . destroyEnrollment ( enrollmentId ) ,
96
- )
89
+ const destroyEnrollment = useDestroyEnrollment ( enrollmentId )
97
90
const formik = useFormik ( {
98
91
enableReinitialize : true ,
99
92
validateOnChange : false ,
100
93
validateOnBlur : false ,
101
94
initialValues : { } ,
102
95
onSubmit : async ( ) => {
103
- mutate ( )
104
- if ( isSuccess ) {
105
- queryClient . invalidateQueries ( {
106
- queryKey : enrollmentKeys . enrollmentsList ( ) ,
107
- } )
108
- modal . hide ( )
109
- }
96
+ await destroyEnrollment . mutateAsync ( )
97
+ modal . hide ( )
110
98
} ,
111
99
} )
112
100
return (
You can’t perform that action at this time.
0 commit comments