From b1e48e0ea9e8448804991c8024095ee3b11e8962 Mon Sep 17 00:00:00 2001 From: Alex Mickelson Date: Thu, 14 Nov 2024 13:31:14 -0700 Subject: [PATCH] syncing assignments works --- nextjs/.gitignore | 1 + .../settings/AssignmentGroupManagement.tsx | 19 ++++++++++---- nextjs/src/hooks/canvas/canvasCourseHooks.ts | 26 ++++++++++++------- .../local/assignment/localAssignmentGroup.ts | 10 +++---- .../canvas/canvasAssignmentGroupService.ts | 2 +- .../fileStorage/settingsFileStorageService.ts | 1 + .../services/trpc/router/settingsRouter.ts | 21 +++------------ requests/assignment.http | 2 +- 8 files changed, 43 insertions(+), 39 deletions(-) diff --git a/nextjs/.gitignore b/nextjs/.gitignore index 253ad55..d34522c 100644 --- a/nextjs/.gitignore +++ b/nextjs/.gitignore @@ -1,6 +1,7 @@ # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. .pnpm-store/ +tmp.json # dependencies diff --git a/nextjs/src/app/course/[courseName]/settings/AssignmentGroupManagement.tsx b/nextjs/src/app/course/[courseName]/settings/AssignmentGroupManagement.tsx index 45609f0..0a92261 100644 --- a/nextjs/src/app/course/[courseName]/settings/AssignmentGroupManagement.tsx +++ b/nextjs/src/app/course/[courseName]/settings/AssignmentGroupManagement.tsx @@ -12,9 +12,9 @@ import { settingsBox } from "./sharedSettings"; import { Spinner } from "@/components/Spinner"; export default function AssignmentGroupManagement() { - const [settings] = useLocalCourseSettingsQuery(); + const [settings, { isPending }] = useLocalCourseSettingsQuery(); const updateSettings = useUpdateLocalCourseSettingsMutation(); - const applyInCanvas = useSetAssignmentGroupsMutation(settings.canvasId); // untested + const applyInCanvas = useSetAssignmentGroupsMutation(settings.canvasId); const [assignmentGroups, setAssignmentGroups] = useState< LocalAssignmentGroup[] @@ -26,6 +26,12 @@ export default function AssignmentGroupManagement() { if ( !areAssignmentGroupsEqual(assignmentGroups, settings.assignmentGroups) ) { + console.log( + "updating", + assignmentGroups, + updateSettings.isPending, + isPending + ); updateSettings.mutate({ settings: { ...settings, @@ -38,7 +44,7 @@ export default function AssignmentGroupManagement() { return () => { clearTimeout(handler); }; - }, [assignmentGroups, settings, updateSettings]); + }, [assignmentGroups, isPending, settings, updateSettings]); return (
@@ -97,8 +103,11 @@ export default function AssignmentGroupManagement() {