diff --git a/nextjs/src/hooks/localCourse/courseItemHooks.ts b/nextjs/src/hooks/localCourse/courseItemHooks.ts
index 205861b..d74f20f 100644
--- a/nextjs/src/hooks/localCourse/courseItemHooks.ts
+++ b/nextjs/src/hooks/localCourse/courseItemHooks.ts
@@ -12,6 +12,11 @@ import {
useSuspenseQueries,
useSuspenseQuery,
} from "@tanstack/react-query";
+import {
+ getAllItemsFromServer,
+ getItemFromServer,
+} from "./courseItemServerActions";
+import { useRouter } from "next/navigation";
export const getAllItemsQueryConfig = (
courseName: string,
@@ -29,6 +34,11 @@ export const getAllItemsQueryConfig = (
typeToFolder[type];
const response = await axiosClient.get(url);
return response.data;
+ // return await getAllItemsFromServer({
+ // courseName,
+ // moduleName,
+ // type,
+ // });
},
});
@@ -52,6 +62,12 @@ export const getItemQueryConfig = (
encodeURIComponent(name);
const response = await axiosClient.get>(url);
return response.data;
+ // return await getItemFromServer({
+ // moduleName,
+ // courseName,
+ // itemName: name,
+ // type,
+ // });
},
};
};
@@ -223,6 +239,7 @@ export const useCreateItemMutation = (type: T) => {
export const useDeleteItemMutation = (type: T) => {
const { courseName } = useCourseContext();
+ const router = useRouter();
const queryClient = useQueryClient();
return useMutation({
mutationFn: async ({
@@ -246,7 +263,7 @@ export const useDeleteItemMutation = (type: T) => {
onSuccess: async (_, { moduleName, itemName }) => {
queryClient.invalidateQueries({
queryKey: localCourseKeys.allItemsOfType(courseName, moduleName, type),
- refetchType: "all",
+ // refetchType: "all",
});
queryClient.invalidateQueries({
queryKey: localCourseKeys.itemOfType(
diff --git a/nextjs/src/hooks/localCourse/courseItemServerActions.ts b/nextjs/src/hooks/localCourse/courseItemServerActions.ts
new file mode 100644
index 0000000..2fc0e89
--- /dev/null
+++ b/nextjs/src/hooks/localCourse/courseItemServerActions.ts
@@ -0,0 +1,70 @@
+"use server";
+
+import { ItemInDay } from "@/app/course/[courseName]/calendar/day/ItemInDay";
+import {
+ CourseItemReturnType,
+ CourseItemType,
+} from "@/models/local/courseItemTypes";
+import { fileStorageService } from "@/services/fileStorage/fileStorageService";
+
+export async function getAllItemsFromServer({
+ courseName,
+ moduleName,
+ type,
+}: {
+ courseName: string;
+ moduleName: string;
+ type: T;
+}): Promise[]> {
+ if (type === "Assignment") {
+ const assignments = await fileStorageService.assignments.getAssignments(
+ courseName,
+ moduleName
+ );
+ return assignments as CourseItemReturnType[];
+ }
+ if (type === "Quiz") {
+ const quizzes = await fileStorageService.quizzes.getQuizzes(
+ courseName,
+ moduleName
+ );
+ return quizzes as CourseItemReturnType[];
+ }
+ const pages = await fileStorageService.pages.getPages(courseName, moduleName);
+ return pages as CourseItemReturnType[];
+}
+
+export async function getItemFromServer({
+ courseName,
+ moduleName,
+ type,
+ itemName,
+}: {
+ courseName: string;
+ moduleName: string;
+ type: T;
+ itemName: string;
+}): Promise> {
+ if (type === "Assignment") {
+ const assignment = await fileStorageService.assignments.getAssignment(
+ courseName,
+ moduleName,
+ itemName
+ );
+ return assignment as CourseItemReturnType;
+ }
+ if (type === "Assignment") {
+ const quiz = await fileStorageService.quizzes.getQuiz(
+ courseName,
+ moduleName,
+ itemName
+ );
+ return quiz as CourseItemReturnType;
+ }
+ const page = await fileStorageService.pages.getPage(
+ courseName,
+ moduleName,
+ itemName
+ );
+ return page as CourseItemReturnType;
+}
diff --git a/nextjs/src/hooks/localCourse/storageDirectoryHooks.ts b/nextjs/src/hooks/localCourse/storageDirectoryHooks.ts
index 533f7ce..339045e 100644
--- a/nextjs/src/hooks/localCourse/storageDirectoryHooks.ts
+++ b/nextjs/src/hooks/localCourse/storageDirectoryHooks.ts
@@ -1,14 +1,16 @@
import { axiosClient } from "@/services/axiosUtils";
-import { useSuspenseQuery } from "@tanstack/react-query";
+import { useQuery, useSuspenseQuery } from "@tanstack/react-query";
+import { getEmptyDirectories } from "./storageDirectoryServerActions";
export const directoryKeys = {
emptyFolders: ["empty folders"] as const,
};
export const useEmptyDirectoriesQuery = () =>
- useSuspenseQuery({
+ useQuery({
queryKey: directoryKeys.emptyFolders,
- queryFn: getEmptyDirectories
+ queryFn: async () => await getEmptyDirectories(),
+ // queryFn: getEmptyDirectories,
// async () => {
// const url = "/api/directories/empty";
// const { data } = await axiosClient.get(url);