mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-25 23:28:33 -06:00
deduplicate days
This commit is contained in:
@@ -20,15 +20,15 @@ export const CalendarMonth = ({ month }: { month: CalendarMonthModel }) => {
|
|||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<h3 className="text-center text-2xl">
|
<h3 className="text-center text-2xl">
|
||||||
<button
|
{/* <button
|
||||||
type="button"
|
type="button"
|
||||||
className="btn btn-link"
|
className="btn btn-link"
|
||||||
onClick={toggleCollapse}
|
onClick={toggleCollapse}
|
||||||
aria-expanded={!isCollapsed}
|
aria-expanded={!isCollapsed}
|
||||||
aria-controls={monthName}
|
aria-controls={monthName}
|
||||||
>
|
> */}
|
||||||
{monthName}
|
{monthName}
|
||||||
</button>
|
{/* </button> */}
|
||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
<div id={monthName}>
|
<div id={monthName}>
|
||||||
|
|||||||
@@ -10,20 +10,21 @@ export default function Day({ day, month }: { day: Date; month: number }) {
|
|||||||
const backgroundClass = isInSameMonth ? "" : "bg-slate-900";
|
const backgroundClass = isInSameMonth ? "" : "bg-slate-900";
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
|
||||||
{moduleNames.map((moduleName) => (
|
|
||||||
<div
|
<div
|
||||||
key={"" + day + month + moduleName}
|
|
||||||
className={
|
className={
|
||||||
"border border-slate-600 rounded-lg p-2 pb-4 m-1 " + backgroundClass
|
"border border-slate-600 rounded-lg p-2 pb-4 m-1 " + backgroundClass
|
||||||
}
|
}
|
||||||
|
>
|
||||||
|
{day.getDate()}
|
||||||
|
{moduleNames.map((moduleName) => (
|
||||||
|
<div
|
||||||
|
key={"" + day + month + moduleName}
|
||||||
onDrop={() => itemDrop(day)}
|
onDrop={() => itemDrop(day)}
|
||||||
onDragOver={(e) => e.preventDefault()}
|
onDragOver={(e) => e.preventDefault()}
|
||||||
>
|
>
|
||||||
{day.getDate()}
|
|
||||||
<DayItemsInModule day={day} moduleName={moduleName} />
|
<DayItemsInModule day={day} moduleName={moduleName} />
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ export default async function CourseLayout({
|
|||||||
await hydrateCourse(queryClient, courseName);
|
await hydrateCourse(queryClient, courseName);
|
||||||
const dehydratedState = dehydrate(queryClient);
|
const dehydratedState = dehydrate(queryClient);
|
||||||
|
|
||||||
console.log("hydrated course state", courseName, dehydratedState);
|
// console.log("hydrated course state", courseName, dehydratedState);
|
||||||
return (
|
return (
|
||||||
<HydrationBoundary state={dehydratedState}>{children}</HydrationBoundary>
|
<HydrationBoundary state={dehydratedState}>{children}</HydrationBoundary>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -10,7 +10,12 @@ export const useAssignmentNamesQuery = (
|
|||||||
useSuspenseQuery({
|
useSuspenseQuery({
|
||||||
queryKey: localCourseKeys.assignmentNames(courseName, moduleName),
|
queryKey: localCourseKeys.assignmentNames(courseName, moduleName),
|
||||||
queryFn: async (): Promise<string[]> => {
|
queryFn: async (): Promise<string[]> => {
|
||||||
const url = `/api/courses/${courseName}/modules/${moduleName}/assignments`;
|
const url =
|
||||||
|
"/api/courses/" +
|
||||||
|
encodeURIComponent(courseName) +
|
||||||
|
"/modules/" +
|
||||||
|
encodeURIComponent(moduleName) +
|
||||||
|
"/assignments"
|
||||||
const response = await axios.get(url);
|
const response = await axios.get(url);
|
||||||
return response.data;
|
return response.data;
|
||||||
},
|
},
|
||||||
@@ -21,6 +26,7 @@ const getAssignmentQueryConfig = (
|
|||||||
moduleName: string,
|
moduleName: string,
|
||||||
assignmentName: string
|
assignmentName: string
|
||||||
) => {
|
) => {
|
||||||
|
if (assignmentName === "Final Project Milestone ") console.log(moduleName);
|
||||||
return {
|
return {
|
||||||
queryKey: localCourseKeys.assignment(
|
queryKey: localCourseKeys.assignment(
|
||||||
courseName,
|
courseName,
|
||||||
@@ -28,7 +34,15 @@ const getAssignmentQueryConfig = (
|
|||||||
assignmentName
|
assignmentName
|
||||||
),
|
),
|
||||||
queryFn: async (): Promise<LocalAssignment> => {
|
queryFn: async (): Promise<LocalAssignment> => {
|
||||||
const url = `/api/courses/${courseName}/modules/${moduleName}/assignments/${assignmentName}`;
|
const url =
|
||||||
|
"/api/courses/" +
|
||||||
|
encodeURIComponent(courseName) +
|
||||||
|
"/modules/" +
|
||||||
|
encodeURIComponent(moduleName) +
|
||||||
|
"/assignments/" +
|
||||||
|
encodeURIComponent(assignmentName);
|
||||||
|
|
||||||
|
console.log(url);
|
||||||
const response = await axios.get(url);
|
const response = await axios.get(url);
|
||||||
return response.data;
|
return response.data;
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -59,7 +59,6 @@ export const useModuleDataQuery = (courseName: string, moduleName: string) => {
|
|||||||
);
|
);
|
||||||
const { data: pages } = usePagesQueries(courseName, moduleName, pageNames);
|
const { data: pages } = usePagesQueries(courseName, moduleName, pageNames);
|
||||||
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
assignments,
|
assignments,
|
||||||
quizzes,
|
quizzes,
|
||||||
|
|||||||
@@ -7,7 +7,12 @@ export const usePageNamesQuery = (courseName: string, moduleName: string) =>
|
|||||||
useSuspenseQuery({
|
useSuspenseQuery({
|
||||||
queryKey: localCourseKeys.pageNames(courseName, moduleName),
|
queryKey: localCourseKeys.pageNames(courseName, moduleName),
|
||||||
queryFn: async (): Promise<string[]> => {
|
queryFn: async (): Promise<string[]> => {
|
||||||
const url = `/api/courses/${courseName}/modules/${moduleName}/pages`;
|
const url =
|
||||||
|
"/api/courses/" +
|
||||||
|
encodeURIComponent(courseName) +
|
||||||
|
"/modules/" +
|
||||||
|
encodeURIComponent(moduleName) +
|
||||||
|
"/pages";
|
||||||
const response = await axios.get(url);
|
const response = await axios.get(url);
|
||||||
return response.data;
|
return response.data;
|
||||||
},
|
},
|
||||||
@@ -41,7 +46,13 @@ function getPageQueryConfig(
|
|||||||
return {
|
return {
|
||||||
queryKey: localCourseKeys.quiz(courseName, moduleName, pageName),
|
queryKey: localCourseKeys.quiz(courseName, moduleName, pageName),
|
||||||
queryFn: async (): Promise<LocalCoursePage> => {
|
queryFn: async (): Promise<LocalCoursePage> => {
|
||||||
const url = `/api/courses/${courseName}/modules/${moduleName}/pages/${pageName}`;
|
const url =
|
||||||
|
"/api/courses/" +
|
||||||
|
encodeURIComponent(courseName) +
|
||||||
|
"/modules/" +
|
||||||
|
encodeURIComponent(moduleName) +
|
||||||
|
"/pages/" +
|
||||||
|
encodeURIComponent(pageName);
|
||||||
const response = await axios.get(url);
|
const response = await axios.get(url);
|
||||||
return response.data;
|
return response.data;
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -12,7 +12,12 @@ export const useQuizNamesQuery = (courseName: string, moduleName: string) =>
|
|||||||
useSuspenseQuery({
|
useSuspenseQuery({
|
||||||
queryKey: localCourseKeys.quizNames(courseName, moduleName),
|
queryKey: localCourseKeys.quizNames(courseName, moduleName),
|
||||||
queryFn: async (): Promise<string[]> => {
|
queryFn: async (): Promise<string[]> => {
|
||||||
const url = `/api/courses/${courseName}/modules/${moduleName}/quizzes`;
|
const url =
|
||||||
|
"/api/courses/" +
|
||||||
|
encodeURIComponent(courseName) +
|
||||||
|
"/modules/" +
|
||||||
|
encodeURIComponent(moduleName) +
|
||||||
|
"/quizzes";
|
||||||
const response = await axios.get(url);
|
const response = await axios.get(url);
|
||||||
return response.data;
|
return response.data;
|
||||||
},
|
},
|
||||||
@@ -47,7 +52,13 @@ function getQuizQueryConfig(
|
|||||||
return {
|
return {
|
||||||
queryKey: localCourseKeys.quiz(courseName, moduleName, quizName),
|
queryKey: localCourseKeys.quiz(courseName, moduleName, quizName),
|
||||||
queryFn: async (): Promise<LocalQuiz> => {
|
queryFn: async (): Promise<LocalQuiz> => {
|
||||||
const url = `/api/courses/${courseName}/modules/${moduleName}/quizzes/${quizName}`;
|
const url =
|
||||||
|
"/api/courses/" +
|
||||||
|
encodeURIComponent(courseName) +
|
||||||
|
"/modules/" +
|
||||||
|
encodeURIComponent(moduleName) +
|
||||||
|
"/quizzes/" +
|
||||||
|
encodeURIComponent(quizName);
|
||||||
const response = await axios.get(url);
|
const response = await axios.get(url);
|
||||||
return response.data;
|
return response.data;
|
||||||
},
|
},
|
||||||
@@ -66,7 +77,13 @@ export const useUpdateQuizMutation = (courseName: string) => {
|
|||||||
moduleName: string;
|
moduleName: string;
|
||||||
quizName: string;
|
quizName: string;
|
||||||
}) => {
|
}) => {
|
||||||
const url = `/api/courses/${courseName}/modules/${moduleName}/quizzes/${quizName}`;
|
const url =
|
||||||
|
"/api/courses/" +
|
||||||
|
encodeURIComponent(courseName) +
|
||||||
|
"/modules/" +
|
||||||
|
encodeURIComponent(moduleName) +
|
||||||
|
"/quizzes/" +
|
||||||
|
encodeURIComponent(quizName);
|
||||||
await axios.put(url, quiz);
|
await axios.put(url, quiz);
|
||||||
},
|
},
|
||||||
onSuccess: (_, { moduleName, quizName }) => {
|
onSuccess: (_, { moduleName, quizName }) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user