can delete without errors

This commit is contained in:
2024-09-30 22:30:34 -06:00
parent 73a05debfc
commit f8c4978319
7 changed files with 29 additions and 45 deletions

View File

@@ -127,11 +127,11 @@ export function AssignmentButtons({
<div className="flex justify-around gap-3"> <div className="flex justify-around gap-3">
<button <button
onClick={() => { onClick={() => {
deleteLocal router.push(getCourseUrl(courseName));
.mutateAsync({ moduleName, itemName: assignmentName }) deleteLocal.mutate({
.then(() => { moduleName,
router.push(getCourseUrl(courseName)); itemName: assignmentName,
}); });
}} }}
className="btn-danger" className="btn-danger"
> >

View File

@@ -14,6 +14,7 @@ import {
} from "@/hooks/localCourse/pageHooks"; } from "@/hooks/localCourse/pageHooks";
import { baseCanvasUrl } from "@/services/canvas/canvasServiceUtils"; import { baseCanvasUrl } from "@/services/canvas/canvasServiceUtils";
import { getCourseUrl } from "@/services/urlUtils"; import { getCourseUrl } from "@/services/urlUtils";
import { revalidatePath } from "next/cache";
import Link from "next/link"; import Link from "next/link";
import { useRouter } from "next/navigation"; import { useRouter } from "next/navigation";
import React from "react"; import React from "react";
@@ -99,10 +100,12 @@ export default function EditPageButtons({
<br /> <br />
<div className="flex justify-around gap-3"> <div className="flex justify-around gap-3">
<button <button
onClick={async () => { onClick={() => {
deletePageLocal router.push(getCourseUrl(courseName));
.mutateAsync({ moduleName, itemName: pageName }) deletePageLocal.mutate({
.then(() => router.push(getCourseUrl(courseName))); moduleName,
itemName: pageName,
});
}} }}
className="btn-danger" className="btn-danger"
> >

View File

@@ -87,9 +87,8 @@ export function QuizButtons({
<div className="flex justify-around gap-3"> <div className="flex justify-around gap-3">
<button <button
onClick={async () => { onClick={async () => {
deleteLocal router.push(getCourseUrl(courseName));
.mutateAsync({ moduleName, itemName: quizName }) deleteLocal.mutate({ moduleName, itemName: quizName });
.then(() => router.push(getCourseUrl(courseName)));
}} }}
className="btn-danger" className="btn-danger"
> >

View File

@@ -13,7 +13,6 @@ export const MonacoEditor: React.FC<{
}> = ({ value, onChange }) => { }> = ({ value, onChange }) => {
const [salt, setSalt] = useState(Date.now()); const [salt, setSalt] = useState(Date.now());
useEffect(() => { useEffect(() => {
console.log("onchange changed");
setSalt(Date.now()); setSalt(Date.now());
}, [onChange]); }, [onChange]);
return <InnerMonacoEditor key={salt} value={value} onChange={onChange} />; return <InnerMonacoEditor key={salt} value={value} onChange={onChange} />;

View File

@@ -230,17 +230,6 @@ export const useDeleteItemMutation = <T extends CourseItemType>(type: T) => {
moduleName: string; moduleName: string;
itemName: string; itemName: string;
}) => { }) => {
queryClient.removeQueries({
queryKey: localCourseKeys.itemOfType(
courseName,
moduleName,
itemName,
type
),
});
queryClient.removeQueries({
queryKey: localCourseKeys.allItemsOfType(courseName, moduleName, type),
});
const url = const url =
"/api/courses/" + "/api/courses/" +
encodeURIComponent(courseName) + encodeURIComponent(courseName) +
@@ -253,8 +242,19 @@ export const useDeleteItemMutation = <T extends CourseItemType>(type: T) => {
await axiosClient.delete(url); await axiosClient.delete(url);
}, },
onSuccess: async (_, { moduleName, itemName }) => { onSuccess: async (_, { moduleName, itemName }) => {
queryClient.invalidateQueries({ queryClient.invalidateQueries({
queryKey: localCourseKeys.allItemsOfType(courseName, moduleName, type), queryKey: localCourseKeys.allItemsOfType(courseName, moduleName, type),
refetchType: "all"
});
queryClient.invalidateQueries({
queryKey: localCourseKeys.itemOfType(
courseName,
moduleName,
itemName,
type
),
refetchType: "none"
}); });
}, },
}); });

View File

@@ -7,12 +7,9 @@ import {
useSuspenseQuery, useSuspenseQuery,
} from "@tanstack/react-query"; } from "@tanstack/react-query";
import { localCourseKeys } from "./localCourseKeys"; import { localCourseKeys } from "./localCourseKeys";
import { import { getAllAssignmentsQueryConfig } from "./assignmentHooks";
getAllAssignmentsQueryConfig, import { getAllQuizzesQueryConfig } from "./quizHooks";
getAssignmentQueryConfig, import { getAllItemsQueryConfig } from "./courseItemHooks";
} from "./assignmentHooks";
import { getAllPagesQueryConfig, getPageQueryConfig } from "./pageHooks";
import { getAllQuizzesQueryConfig, getQuizQueryConfig } from "./quizHooks";
export const useModuleNamesQuery = () => { export const useModuleNamesQuery = () => {
const { courseName } = useCourseContext(); const { courseName } = useCourseContext();
@@ -109,7 +106,7 @@ export const useAllCourseDataQuery = () => {
const { data: pagesAndModules } = useSuspenseQueries({ const { data: pagesAndModules } = useSuspenseQueries({
queries: moduleNames.map((moduleName) => queries: moduleNames.map((moduleName) =>
getAllPagesQueryConfig(courseName, moduleName) getAllItemsQueryConfig(courseName, moduleName, "Page")
), ),
combine: (results) => ({ combine: (results) => ({
data: results.flatMap((r, i) => data: results.flatMap((r, i) =>

View File

@@ -1,7 +1,5 @@
"use client"; "use client";
import { import {
getAllItemsQueryConfig,
getItemQueryConfig,
useCreateItemMutation, useCreateItemMutation,
useDeleteItemMutation, useDeleteItemMutation,
useItemQuery, useItemQuery,
@@ -9,18 +7,6 @@ import {
useUpdateItemMutation, useUpdateItemMutation,
} from "./courseItemHooks"; } from "./courseItemHooks";
export function getAllPagesQueryConfig(courseName: string, moduleName: string) {
return getAllItemsQueryConfig(courseName, moduleName, "Page");
}
export function getPageQueryConfig(
courseName: string,
moduleName: string,
pageName: string
) {
return getItemQueryConfig(courseName, moduleName, pageName, "Page");
}
export const usePageQuery = (moduleName: string, pageName: string) => export const usePageQuery = (moduleName: string, pageName: string) =>
useItemQuery(moduleName, pageName, "Page"); useItemQuery(moduleName, pageName, "Page");