linting more trpc

This commit is contained in:
2024-11-11 13:20:08 -07:00
parent cc8d004aa4
commit 61359a5e7d
36 changed files with 1076 additions and 662 deletions

View File

@@ -16,8 +16,8 @@ import {
import { Dispatch, SetStateAction, useCallback, DragEvent } from "react";
import { DraggableItem } from "./draggingContext";
import { getNewLockDate } from "./getNewLockDate";
import { useUpdateItemMutation } from "@/hooks/localCourse/courseItemHooks";
import { trpc } from "@/services/trpc/utils";
import { useUpdateQuizMutation } from "@/hooks/localCourse/quizHooks";
export function useItemDropOnDay({
setIsDragging,
@@ -37,7 +37,7 @@ export function useItemDropOnDay({
const [weeks] = trpc.lectures.getLectures.useSuspenseQuery({
courseName: settings.name,
});
const updateQuizMutation = useUpdateItemMutation("Quiz");
const updateQuizMutation = useUpdateQuizMutation();
const updateLectureMutation = useLectureUpdateMutation();
const updateAssignmentMutation = useUpdateAssignmentMutation();
const updatePageMutation = useUpdatePageMutation();
@@ -132,11 +132,12 @@ export function useItemDropOnDay({
),
};
updateQuizMutation.mutate({
item: quiz,
itemName: quiz.name,
quiz,
quizName: quiz.name,
moduleName: itemBeingDragged.sourceModuleName,
previousModuleName: itemBeingDragged.sourceModuleName,
previousItemName: quiz.name,
previousQuizName: quiz.name,
courseName: settings.name,
});
}
function updatePage(dayAsDate: Date) {
@@ -152,11 +153,12 @@ export function useItemDropOnDay({
dueAt: dateToMarkdownString(dayAsDate),
};
updatePageMutation.mutate({
item: page,
page,
moduleName: itemBeingDragged.sourceModuleName,
itemName: page.name,
previousItemName: page.name,
pageName: page.name,
previousPageName: page.name,
previousModuleName: itemBeingDragged.sourceModuleName,
courseName: settings.name,
});
}
function updateAssignment(dayAsDate: Date) {
@@ -177,11 +179,12 @@ export function useItemDropOnDay({
),
};
updateAssignmentMutation.mutate({
item: assignment,
assignment,
previousModuleName: itemBeingDragged.sourceModuleName,
moduleName: itemBeingDragged.sourceModuleName,
itemName: assignment.name,
previousItemName: assignment.name,
assignmentName: assignment.name,
previousAssignmentName: assignment.name,
courseName: settings.name,
});
}
},

View File

@@ -6,16 +6,18 @@ import { LocalCoursePage } from "@/models/local/page/localCoursePage";
import { LocalQuiz } from "@/models/local/quiz/localQuiz";
import { Dispatch, SetStateAction, useCallback, DragEvent } from "react";
import { DraggableItem } from "./draggingContext";
import { useUpdateItemMutation } from "@/hooks/localCourse/courseItemHooks";
import { useCourseContext } from "../courseContext";
import { useUpdateQuizMutation } from "@/hooks/localCourse/quizHooks";
export function useItemDropOnModule({
setIsDragging,
}: {
setIsDragging: Dispatch<SetStateAction<boolean>>;
}) {
const updateQuizMutation = useUpdateItemMutation("Quiz");
const updateQuizMutation = useUpdateQuizMutation();
const updateAssignmentMutation = useUpdateAssignmentMutation();
const updatePageMutation = useUpdatePageMutation();
const { courseName } = useCourseContext();
return useCallback(
(e: DragEvent, dropModuleName: string) => {
@@ -41,11 +43,12 @@ export function useItemDropOnModule({
const quiz = itemBeingDragged.item as LocalQuiz;
if (itemBeingDragged.sourceModuleName) {
updateQuizMutation.mutate({
item: quiz,
itemName: quiz.name,
quiz,
quizName: quiz.name,
moduleName: dropModuleName,
previousModuleName: itemBeingDragged.sourceModuleName,
previousItemName: quiz.name,
previousQuizName: quiz.name,
courseName,
});
} else {
console.error(
@@ -58,11 +61,12 @@ export function useItemDropOnModule({
const assignment = itemBeingDragged.item as LocalAssignment;
if (itemBeingDragged.sourceModuleName) {
updateAssignmentMutation.mutate({
item: assignment,
assignment,
previousModuleName: itemBeingDragged.sourceModuleName,
moduleName: dropModuleName,
itemName: assignment.name,
previousItemName: assignment.name,
assignmentName: assignment.name,
previousAssignmentName: assignment.name,
courseName,
});
} else {
console.error(
@@ -75,11 +79,12 @@ export function useItemDropOnModule({
const page = itemBeingDragged.item as LocalCoursePage;
if (itemBeingDragged.sourceModuleName) {
updatePageMutation.mutate({
item: page,
page,
moduleName: dropModuleName,
itemName: page.name,
previousItemName: page.name,
pageName: page.name,
previousPageName: page.name,
previousModuleName: itemBeingDragged.sourceModuleName,
courseName,
});
} else {
console.error(
@@ -90,6 +95,7 @@ export function useItemDropOnModule({
}
},
[
courseName,
setIsDragging,
updateAssignmentMutation,
updatePageMutation,

View File

@@ -21,8 +21,8 @@ import { getModuleItemUrl } from "@/services/urlUtils";
import { useCourseContext } from "../context/courseContext";
import { Expandable } from "../../../../components/Expandable";
import { useDragStyleContext } from "../context/drag/dragStyleContext";
import { useItemsQueries } from "@/hooks/localCourse/courseItemHooks";
import { useAssignmentsQuery } from "@/hooks/localCourse/assignmentHooks";
import { useQuizzesQueries } from "@/hooks/localCourse/quizHooks";
export default function ExpandableModule({
moduleName,
@@ -31,9 +31,9 @@ export default function ExpandableModule({
}) {
const { itemDropOnModule } = useDraggingContext();
const { data: assignments } = useAssignmentsQuery(moduleName);
// const { data: quizzes } = useItemsQueries(moduleName, "Quiz");
const { data: pages } = usePagesQueries(moduleName);
const [assignments ] = useAssignmentsQuery(moduleName);
const [quizzes] = useQuizzesQueries(moduleName);
const [pages] = usePagesQueries(moduleName);
const modal = useModal();
const moduleItems: {
@@ -51,7 +51,7 @@ export default function ExpandableModule({
item: a,
})
)
// .concat(quizzes.map((q) => ({ type: "quiz", item: q })))
.concat(quizzes.map((q) => ({ type: "quiz", item: q })))
.concat(pages.map((p) => ({ type: "page", item: p })))
.sort(
(a, b) =>

View File

@@ -4,7 +4,6 @@ import SelectInput from "@/components/form/SelectInput";
import TextInput from "@/components/form/TextInput";
import { Spinner } from "@/components/Spinner";
import { useCreateAssignmentMutation } from "@/hooks/localCourse/assignmentHooks";
import { useCreateItemMutation } from "@/hooks/localCourse/courseItemHooks";
import { useModuleNamesQuery } from "@/hooks/localCourse/localCourseModuleHooks";
import { useLocalCourseSettingsQuery } from "@/hooks/localCourse/localCoursesHooks";
import { useCreatePageMutation } from "@/hooks/localCourse/pageHooks";
@@ -14,9 +13,9 @@ import {
getDateFromString,
getDateFromStringOrThrow,
} from "@/models/local/timeUtils";
import { trpc } from "@/services/trpc/utils";
import React, { useState } from "react";
import { useCourseContext } from "../context/courseContext";
import { useCreateQuizMutation } from "@/hooks/localCourse/quizHooks";
export default function NewItemForm({
moduleName: defaultModuleName,
@@ -33,10 +32,6 @@ export default function NewItemForm({
const [type, setType] = useState<"Assignment" | "Quiz" | "Page">(
"Assignment"
);
const assignmentCreationMutation = useCreateAssignmentMutation({
courseName,
moduleName: defaultModuleName ?? "",
});
const [moduleName, setModuleName] = useState<string | undefined>(
defaultModuleName
@@ -58,12 +53,11 @@ export default function NewItemForm({
useState<LocalAssignmentGroup>();
const createPage = useCreatePageMutation();
const createQuiz = useCreateItemMutation("Quiz");
const createQuiz = useCreateQuizMutation();
const createAssignment = useCreateAssignmentMutation();
const isPending =
assignmentCreationMutation.isPending ||
createPage.isPending ||
createQuiz.isPending;
createAssignment.isPending || createPage.isPending || createQuiz.isPending;
return (
<form
@@ -87,26 +81,11 @@ export default function NewItemForm({
)
);
console.log("submitting");
if (!moduleName) {
return;
}
if (type === "Assignment") {
// createAssignment.mutate({
// item: {
// name,
// description: "",
// localAssignmentGroupName: assignmentGroup?.name ?? "",
// dueAt,
// lockAt,
// submissionTypes: settings.defaultAssignmentSubmissionTypes,
// allowedFileUploadExtensions: settings.defaultFileUploadTypes,
// rubric: [],
// },
// moduleName: moduleName,
// itemName: name,
// });
assignmentCreationMutation.mutate({
createAssignment.mutate({
assignment: {
name,
description: "",
@@ -123,7 +102,7 @@ export default function NewItemForm({
});
} else if (type === "Quiz") {
createQuiz.mutate({
item: {
quiz: {
name,
description: "",
localAssignmentGroupName: assignmentGroup?.name ?? "",
@@ -136,17 +115,19 @@ export default function NewItemForm({
questions: [],
},
moduleName: moduleName,
itemName: name,
quizName: name,
courseName,
});
} else if (type === "Page") {
createPage.mutate({
item: {
page: {
name,
text: "",
dueAt,
},
moduleName: moduleName,
itemName: name,
pageName: name,
courseName,
});
}
onCreate();

View File

@@ -35,11 +35,7 @@ export function AssignmentButtons({
isPending: canvasIsPending,
isRefetching: canvasIsRefetching,
} = useCanvasAssignmentsQuery();
const {
data: assignment,
isPending: assignmentIsPending,
isRefetching,
} = useAssignmentQuery(moduleName, assignmentName);
const [assignment] = useAssignmentQuery(moduleName, assignmentName);
const addToCanvas = useAddAssignmentToCanvasMutation();
const deleteFromCanvas = useDeleteAssignmentFromCanvasMutation();
const updateAssignment = useUpdateAssignmentInCanvasMutation();
@@ -54,8 +50,6 @@ export function AssignmentButtons({
const anythingIsLoading =
addToCanvas.isPending ||
canvasIsPending ||
assignmentIsPending ||
isRefetching ||
canvasIsRefetching ||
deleteFromCanvas.isPending ||
updateAssignment.isPending;
@@ -135,7 +129,8 @@ export function AssignmentButtons({
router.push(getCourseUrl(courseName));
await deleteLocal.mutateAsync({
moduleName,
itemName: assignmentName,
assignmentName,
courseName,
});
router.refresh();
// setIsLoading(false); //refreshing the router will make spinner go away

View File

@@ -4,7 +4,10 @@ import {
useAssignmentQuery,
useUpdateAssignmentMutation,
} from "@/hooks/localCourse/assignmentHooks";
import { localAssignmentMarkdown } from "@/models/local/assignment/localAssignment";
import {
LocalAssignment,
localAssignmentMarkdown,
} from "@/models/local/assignment/localAssignment";
import { useEffect, useState } from "react";
import AssignmentPreview from "./AssignmentPreview";
import { getModuleItemUrl } from "@/services/urlUtils";
@@ -41,7 +44,7 @@ export default function EditAssignment({
const delay = 500;
const handler = setTimeout(() => {
try {
const updatedAssignment =
const updatedAssignment: LocalAssignment =
localAssignmentMarkdown.parseMarkdown(assignmentText);
if (
localAssignmentMarkdown.toMarkdown(assignment) !==
@@ -50,11 +53,12 @@ export default function EditAssignment({
console.log("updating assignment");
updateAssignment
.mutateAsync({
item: updatedAssignment,
assignment: updatedAssignment,
moduleName,
itemName: updatedAssignment.name,
assignmentName: updatedAssignment.name,
previousModuleName: moduleName,
previousItemName: assignmentName,
previousAssignmentName: assignmentName,
courseName,
})
.then(() => {
if (updatedAssignment.name !== assignmentName)

View File

@@ -24,7 +24,7 @@ export default function EditPage({
}) {
const router = useRouter();
const { courseName } = useCourseContext();
const { data: page } = usePageQuery(moduleName, pageName);
const [page] = usePageQuery(moduleName, pageName);
const updatePage = useUpdatePageMutation();
const [pageText, setPageText] = useState(
localPageMarkdownUtils.toMarkdown(page)
@@ -44,11 +44,12 @@ export default function EditPage({
console.log("updating page");
updatePage
.mutateAsync({
item: updatedPage,
page: updatedPage,
moduleName,
itemName: updatedPage.name,
pageName: updatedPage.name,
previousModuleName: moduleName,
previousItemName: pageName,
previousPageName: pageName,
courseName,
})
.then(() => {
if (updatedPage.name !== pageName)

View File

@@ -28,7 +28,7 @@ export default function EditPageButtons({
const router = useRouter();
const { courseName } = useCourseContext();
const [settings] = useLocalCourseSettingsQuery();
const { data: page } = usePageQuery(moduleName, pageName);
const [page] = usePageQuery(moduleName, pageName);
const { data: canvasPages } = useCanvasPagesQuery();
const createPageInCanvas = useCreateCanvasPageMutation();
const updatePageInCanvas = useUpdateCanvasPageMutation();
@@ -105,7 +105,8 @@ export default function EditPageButtons({
router.push(getCourseUrl(courseName));
deletePageLocal.mutate({
moduleName,
itemName: pageName,
pageName,
courseName,
});
}}
className="btn-danger"

View File

@@ -9,7 +9,10 @@ import { SuspenseAndErrorHandling } from "@/components/SuspenseAndErrorHandling"
import { useRouter } from "next/navigation";
import { getModuleItemUrl } from "@/services/urlUtils";
import { useCourseContext } from "@/app/course/[courseName]/context/courseContext";
import { useItemQuery, useUpdateItemMutation } from "@/hooks/localCourse/courseItemHooks";
import {
useQuizQuery,
useUpdateQuizMutation,
} from "@/hooks/localCourse/quizHooks";
const helpString = `QUESTION REFERENCE
---
@@ -61,8 +64,8 @@ export default function EditQuiz({
}) {
const router = useRouter();
const { courseName } = useCourseContext();
const { data: quiz } = useItemQuery(moduleName, quizName, "Quiz");
const updateQuizMutation = useUpdateItemMutation("Quiz");
const [quiz] = useQuizQuery(moduleName, quizName);
const updateQuizMutation = useUpdateQuizMutation();
const [quizText, setQuizText] = useState(quizMarkdownUtils.toMarkdown(quiz));
const [error, setError] = useState("");
const [showHelp, setShowHelp] = useState(false);
@@ -81,11 +84,12 @@ export default function EditQuiz({
const updatedQuiz = quizMarkdownUtils.parseMarkdown(quizText);
updateQuizMutation
.mutateAsync({
item: updatedQuiz,
quiz: updatedQuiz,
moduleName,
itemName: updatedQuiz.name,
quizName: updatedQuiz.name,
previousModuleName: moduleName,
previousItemName: quizName,
previousQuizName: quizName,
courseName,
})
.then(() => {
if (updatedQuiz.name !== quizName)

View File

@@ -6,11 +6,11 @@ import {
useAddQuizToCanvasMutation,
useDeleteQuizFromCanvasMutation,
} from "@/hooks/canvas/canvasQuizHooks";
import {
useDeleteItemMutation,
useItemQuery,
} from "@/hooks/localCourse/courseItemHooks";
import { useLocalCourseSettingsQuery } from "@/hooks/localCourse/localCoursesHooks";
import {
useDeleteQuizMutation,
useQuizQuery,
} from "@/hooks/localCourse/quizHooks";
import { baseCanvasUrl } from "@/services/canvas/canvasServiceUtils";
import { getCourseUrl } from "@/services/urlUtils";
import Link from "next/link";
@@ -29,10 +29,11 @@ export function QuizButtons({
const { courseName } = useCourseContext();
const [settings] = useLocalCourseSettingsQuery();
const { data: canvasQuizzes } = useCanvasQuizzesQuery();
const { data: quiz } = useItemQuery(moduleName, quizName, "Quiz");
const [quiz] = useQuizQuery(moduleName, quizName);
const addToCanvas = useAddQuizToCanvasMutation();
const deleteFromCanvas = useDeleteQuizFromCanvasMutation();
const deleteLocal = useDeleteItemMutation("Quiz");
const deleteLocal = useDeleteQuizMutation();
const modal = useModal();
const quizInCanvas = canvasQuizzes.find((c) => c.title === quizName);
@@ -90,7 +91,7 @@ export function QuizButtons({
<button
onClick={async () => {
router.push(getCourseUrl(courseName));
deleteLocal.mutate({ moduleName, itemName: quizName });
deleteLocal.mutate({ moduleName, quizName, courseName });
}}
className="btn-danger"
>

View File

@@ -1,5 +1,5 @@
import CheckIcon from "@/components/icons/CheckIcon";
import { useItemQuery } from "@/hooks/localCourse/courseItemHooks";
import { useQuizQuery } from "@/hooks/localCourse/quizHooks";
import {
LocalQuizQuestion,
QuestionType,
@@ -13,7 +13,7 @@ export default function QuizPreview({
quizName: string;
moduleName: string;
}) {
const { data: quiz } = useItemQuery(moduleName, quizName, "Quiz");
const [quiz] = useQuizQuery(moduleName, quizName);
return (
<div style={{ overflow: "scroll", height: "100%" }}>
<div className="columns-2">

View File

@@ -25,8 +25,10 @@ export default function AssignmentGroupManagement() {
!areAssignmentGroupsEqual(assignmentGroups, settings.assignmentGroups)
) {
updateSettings.mutate({
...settings,
assignmentGroups,
settings: {
...settings,
assignmentGroups,
},
});
}
}, delay);

View File

@@ -17,11 +17,14 @@ export default function DaysOfWeekSettings() {
selectedDays={settings.daysOfWeek}
updateSettings={(day) => {
const hasDay = settings.daysOfWeek.includes(day);
updateSettings.mutate({
...settings,
daysOfWeek: hasDay
? settings.daysOfWeek.filter((d) => d !== day)
: [day, ...settings.daysOfWeek],
settings: {
...settings,
daysOfWeek: hasDay
? settings.daysOfWeek.filter((d) => d !== day)
: [day, ...settings.daysOfWeek],
},
});
}}
/>

View File

@@ -23,8 +23,10 @@ export default function DefaultDueTime() {
setChosenTime={(simpleTime) => {
console.log(simpleTime);
updateSettings.mutate({
...settings,
defaultDueTime: simpleTime,
settings: {
...settings,
defaultDueTime: simpleTime,
},
});
}}
/>
@@ -33,8 +35,10 @@ export default function DefaultDueTime() {
<button
onClick={async () => {
await updateSettings.mutateAsync({
...settings,
defaultLockHoursOffset: 0,
settings: {
...settings,
defaultLockHoursOffset: 0,
},
});
setHaveLockOffset(true);
}}
@@ -50,8 +54,10 @@ export default function DefaultDueTime() {
className="btn-danger"
onClick={async () => {
await updateSettings.mutateAsync({
...settings,
defaultLockHoursOffset: undefined,
settings: {
...settings,
defaultLockHoursOffset: undefined,
},
});
setHaveLockOffset(false);
}}

View File

@@ -20,8 +20,10 @@ export default function DefaultFileUploadTypes() {
JSON.stringify(defaultFileUploadTypes)
) {
updateSettings.mutate({
...settings,
defaultFileUploadTypes: defaultFileUploadTypes,
settings: {
...settings,
defaultFileUploadTypes: defaultFileUploadTypes,
},
});
}
}, 500);

View File

@@ -23,8 +23,10 @@ export default function DefaultLockOffset() {
hoursNumber !== settings.defaultLockHoursOffset
) {
updateSettings.mutate({
...settings,
defaultLockHoursOffset: hoursNumber,
settings: {
...settings,
defaultLockHoursOffset: hoursNumber,
},
});
}
} catch {}

View File

@@ -75,9 +75,12 @@ function InnerHolidayConfig() {
if (!holidaysAreEqual(settings.holidays, parsed)) {
console.log("different holiday configs", settings.holidays, parsed);
updateSettings.mutate({
...settings,
holidays: parsed,
settings: {
...settings,
holidays: parsed,
},
});
}
} catch (error: any) {}

View File

@@ -23,8 +23,10 @@ export default function SubmissionDefaults() {
JSON.stringify(defaultSubmissionTypes)
) {
updateSettings.mutate({
...settings,
defaultAssignmentSubmissionTypes: defaultSubmissionTypes,
settings: {
...settings,
defaultAssignmentSubmissionTypes: defaultSubmissionTypes,
},
});
}
}, [defaultSubmissionTypes, settings, updateSettings]);