Skip to content

Commit a27e8fb

Browse files
committed
add useDestroyEnrollment hook
1 parent cc75544 commit a27e8fb

File tree

2 files changed

+24
-17
lines changed

2 files changed

+24
-17
lines changed
Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,23 @@
11
import { enrollmentQueries, enrollmentKeys } from "./queries"
22
import { enrollmentMutations } from "./mutations"
3+
import { useMutation, useQueryClient } from "@tanstack/react-query"
4+
import { enrollmentsApi } from "../../clients"
35

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+
}

frontends/main/src/app-pages/DashboardPage/CoursewareDisplay/DashboardDialogs.tsx

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,7 @@ import { Button } from "@mitodl/smoot-design"
1212

1313
import NiceModal, { muiDialogV5 } from "@ebay/nice-modal-react"
1414
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"
2016

2117
const BoldText = styled.span(({ theme }) => ({
2218
...theme.typography.subtitle1,
@@ -90,23 +86,15 @@ const UnenrollDialogInner: React.FC<DashboardDialogProps> = ({
9086
enrollmentId,
9187
}) => {
9288
const modal = NiceModal.useModal()
93-
const queryClient = useQueryClient()
94-
const { mutate, isSuccess } = useMutation(
95-
enrollmentMutations.destroyEnrollment(enrollmentId),
96-
)
89+
const destroyEnrollment = useDestroyEnrollment(enrollmentId)
9790
const formik = useFormik({
9891
enableReinitialize: true,
9992
validateOnChange: false,
10093
validateOnBlur: false,
10194
initialValues: {},
10295
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()
11098
},
11199
})
112100
return (

0 commit comments

Comments
 (0)