Skip to content

Commit f0403b3

Browse files
arbrandesclaude
andcommitted
refactor: separate mutation keys from query keys
Split learnerDashboardQueryKeys into distinct query and mutation key factories for clearer semantics. Mutation keys now live in learnerDashboardMutationKeys while query invalidation still uses learnerDashboardQueryKeys. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 8e098ca commit f0403b3

2 files changed

Lines changed: 21 additions & 16 deletions

File tree

src/data/hooks/mutationHooks.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
updateEmailSettings,
99
updateEntitlementEnrollment,
1010
} from '@src/data/services/lms/api';
11-
import { learnerDashboardQueryKeys } from './queryKeys';
11+
import { learnerDashboardQueryKeys, learnerDashboardMutationKeys } from './queryKeys';
1212

1313
interface UpdateEntitlementProps {
1414
uuid: string,
@@ -35,7 +35,7 @@ const useUnenrollFromCourse = () => {
3535
const queryClient = useQueryClient();
3636

3737
return useMutation({
38-
mutationKey: learnerDashboardQueryKeys.unenrollFromCourse(),
38+
mutationKey: learnerDashboardMutationKeys.unenrollFromCourse(),
3939
mutationFn: ({ courseId }: { courseId: string }) => unenrollFromCourse({ courseId }),
4040
onSuccess: () => {
4141
queryClient.invalidateQueries({ queryKey: learnerDashboardQueryKeys.initializeBase() });
@@ -50,7 +50,7 @@ const useUpdateEntitlementEnrollment = () => {
5050
const queryClient = useQueryClient();
5151

5252
return useMutation({
53-
mutationKey: learnerDashboardQueryKeys.updateEntitlementEnrollment(),
53+
mutationKey: learnerDashboardMutationKeys.updateEntitlementEnrollment(),
5454
mutationFn: ({ uuid, courseId }: UpdateEntitlementProps) => updateEntitlementEnrollment({ uuid, courseId }),
5555
onSuccess: () => {
5656
queryClient.invalidateQueries({ queryKey: learnerDashboardQueryKeys.initializeBase() });
@@ -65,7 +65,7 @@ const useDeleteEntitlementEnrollment = () => {
6565
const queryClient = useQueryClient();
6666

6767
return useMutation({
68-
mutationKey: learnerDashboardQueryKeys.deleteEntitlementEnrollment(),
68+
mutationKey: learnerDashboardMutationKeys.deleteEntitlementEnrollment(),
6969
mutationFn: (params: DeleteEntitlementParams) => deleteEntitlementEnrollment(params),
7070
onSuccess: () => {
7171
queryClient.invalidateQueries({ queryKey: learnerDashboardQueryKeys.initializeBase() });
@@ -80,7 +80,7 @@ const useUpdateEmailSettings = () => {
8080
const queryClient = useQueryClient();
8181

8282
return useMutation({
83-
mutationKey: learnerDashboardQueryKeys.updateEmailSettings(),
83+
mutationKey: learnerDashboardMutationKeys.updateEmailSettings(),
8484
mutationFn: ({ courseId, enable }: UpdateEmailSettingsParams) => updateEmailSettings({ courseId, enable }),
8585
onSuccess: () => {
8686
queryClient.invalidateQueries({ queryKey: learnerDashboardQueryKeys.initializeBase() });
@@ -95,7 +95,7 @@ const useCreateCreditRequest = () => {
9595
const queryClient = useQueryClient();
9696

9797
return useMutation({
98-
mutationKey: learnerDashboardQueryKeys.createCreditRequest(),
98+
mutationKey: learnerDashboardMutationKeys.createCreditRequest(),
9999
mutationFn: (props: CreditParams) => createCreditRequest(props),
100100
onSuccess: () => {
101101
queryClient.invalidateQueries({ queryKey: learnerDashboardQueryKeys.initializeBase() });
@@ -110,7 +110,7 @@ const useSendConfirmEmail = (sendEmailUrl: string) => {
110110
const queryClient = useQueryClient();
111111

112112
return useMutation({
113-
mutationKey: learnerDashboardQueryKeys.sendConfirmEmail(sendEmailUrl),
113+
mutationKey: learnerDashboardMutationKeys.sendConfirmEmail(sendEmailUrl),
114114
mutationFn: () => sendConfirmEmail(sendEmailUrl),
115115
onSuccess: () => {
116116
queryClient.invalidateQueries({ queryKey: learnerDashboardQueryKeys.initializeBase() });

src/data/hooks/queryKeys.ts

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
1+
const BASE_KEY = ['learner-dashboard'] as const;
2+
13
export const learnerDashboardQueryKeys = {
2-
all: ['learner-dashboard'] as const,
3-
initializeBase: () => [...learnerDashboardQueryKeys.all, 'initialize'] as const,
4-
initialize: (masqueradedUser?: string | null) => [...learnerDashboardQueryKeys.all, 'initialize', masqueradedUser] as const,
5-
unenrollFromCourse: () => [...learnerDashboardQueryKeys.all, 'unenrollFromCourse'] as const,
6-
updateEntitlementEnrollment: () => [...learnerDashboardQueryKeys.all, 'updateEntitlementEnrollment'] as const,
7-
deleteEntitlementEnrollment: () => [...learnerDashboardQueryKeys.all, 'deleteEntitlementEnrollment'] as const,
8-
updateEmailSettings: () => [...learnerDashboardQueryKeys.all, 'updateEmailSettings'] as const,
9-
createCreditRequest: () => [...learnerDashboardQueryKeys.all, 'createCreditRequest'] as const,
10-
sendConfirmEmail: (sendEmailUrl: string) => [...learnerDashboardQueryKeys.all, 'sendConfirmEmail', sendEmailUrl] as const,
4+
all: BASE_KEY,
5+
initializeBase: () => [...BASE_KEY, 'initialize'] as const,
6+
initialize: (masqueradedUser?: string | null) => [...BASE_KEY, 'initialize', masqueradedUser] as const,
7+
};
8+
9+
export const learnerDashboardMutationKeys = {
10+
unenrollFromCourse: () => [...BASE_KEY, 'unenrollFromCourse'] as const,
11+
updateEntitlementEnrollment: () => [...BASE_KEY, 'updateEntitlementEnrollment'] as const,
12+
deleteEntitlementEnrollment: () => [...BASE_KEY, 'deleteEntitlementEnrollment'] as const,
13+
updateEmailSettings: () => [...BASE_KEY, 'updateEmailSettings'] as const,
14+
createCreditRequest: () => [...BASE_KEY, 'createCreditRequest'] as const,
15+
sendConfirmEmail: (sendEmailUrl: string) => [...BASE_KEY, 'sendConfirmEmail', sendEmailUrl] as const,
1116
};

0 commit comments

Comments
 (0)