mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-26 23:58:31 -06:00
refactoring canvas files
This commit is contained in:
42
src/features/canvas/hooks/canvasNavigationHooks.tsx
Normal file
42
src/features/canvas/hooks/canvasNavigationHooks.tsx
Normal file
@@ -0,0 +1,42 @@
|
||||
import { useQuery, useQueryClient, useMutation } from "@tanstack/react-query";
|
||||
import { useLocalCourseSettingsQuery } from "@/features/local/course/localCoursesHooks";
|
||||
import { canvasNavigationService } from "../services/canvasNavigationService";
|
||||
|
||||
export const canvasCourseTabKeys = {
|
||||
tabs: (canvasId: number) => ["canvas", canvasId, "tabs list"] as const,
|
||||
};
|
||||
|
||||
export const useCanvasTabsQuery = () => {
|
||||
const { data: settings } = useLocalCourseSettingsQuery();
|
||||
return useQuery({
|
||||
queryKey: canvasCourseTabKeys.tabs(settings.canvasId),
|
||||
queryFn: async () =>
|
||||
await canvasNavigationService.getCourseTabs(settings.canvasId),
|
||||
});
|
||||
};
|
||||
|
||||
export const useUpdateCanvasTabMutation = () => {
|
||||
const { data: settings } = useLocalCourseSettingsQuery();
|
||||
const queryClient = useQueryClient();
|
||||
return useMutation({
|
||||
mutationFn: async ({
|
||||
tabId,
|
||||
hidden,
|
||||
position,
|
||||
}: {
|
||||
tabId: string;
|
||||
hidden?: boolean;
|
||||
position?: number;
|
||||
}) =>
|
||||
await canvasNavigationService.updateCourseTab(settings.canvasId, tabId, {
|
||||
hidden,
|
||||
position,
|
||||
}),
|
||||
onSuccess: () => {
|
||||
queryClient.invalidateQueries({
|
||||
queryKey: canvasCourseTabKeys.tabs(settings.canvasId),
|
||||
refetchType: "all",
|
||||
});
|
||||
},
|
||||
});
|
||||
};
|
||||
Reference in New Issue
Block a user