mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-26 07:38:33 -06:00
updates
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
import { LocalCourse } from "@/models/local/localCourse";
|
||||
import {
|
||||
dataTagSymbol,
|
||||
useMutation,
|
||||
useQueryClient,
|
||||
useSuspenseQuery,
|
||||
@@ -9,10 +8,10 @@ import axios from "axios";
|
||||
|
||||
export const localCourseKeys = {
|
||||
allCourses: ["all courses"] as const,
|
||||
courseDetail: (courseName: string) => ["all courses", courseName] as const,
|
||||
courseDetail: (courseName: string) => ["course details", courseName] as const,
|
||||
};
|
||||
|
||||
export const useLocalCoursesQuery = () =>
|
||||
export const useLocalCourseNamesQuery = () =>
|
||||
useSuspenseQuery({
|
||||
queryKey: localCourseKeys.allCourses,
|
||||
queryFn: async (): Promise<LocalCourse[]> => {
|
||||
@@ -20,20 +19,16 @@ export const useLocalCoursesQuery = () =>
|
||||
const response = await axios.get(url);
|
||||
return response.data;
|
||||
},
|
||||
select: (courses) => courses.map((c) => c.settings.name),
|
||||
});
|
||||
|
||||
export const useLocalCourseDetailsQuery = (courseName: string) => {
|
||||
const { data: courses } = useLocalCoursesQuery();
|
||||
return useSuspenseQuery({
|
||||
queryKey: localCourseKeys.courseDetail(courseName),
|
||||
queryFn: () => {
|
||||
const course = courses.find((c) => c.settings.name === courseName);
|
||||
if (!course) {
|
||||
console.log(courses);
|
||||
console.log(courseName);
|
||||
throw Error(`Could not find course with name ${courseName}`);
|
||||
}
|
||||
return course;
|
||||
queryFn: async (): Promise<LocalCourse> => {
|
||||
const url = `/api/courses/${courseName}`;
|
||||
const response = await axios.get(url);
|
||||
return response.data;
|
||||
},
|
||||
});
|
||||
};
|
||||
@@ -49,10 +44,12 @@ export const useUpdateCourseMutation = (courseName: string) => {
|
||||
await axios.put(url, body);
|
||||
},
|
||||
onSuccess: () => {
|
||||
queryClient.invalidateQueries({ queryKey: localCourseKeys.allCourses }); //optimize?
|
||||
queryClient.invalidateQueries({
|
||||
queryKey: localCourseKeys.courseDetail(courseName),
|
||||
});
|
||||
},
|
||||
scope: {
|
||||
id: "update course",
|
||||
id: "all courses",
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user