mirror of
https://github.com/alexmickelson/canvasManagement.git
synced 2026-03-25 23:28:33 -06:00
inproper submit...
This commit is contained in:
@@ -1,6 +1,8 @@
|
|||||||
|
import { DayOfWeekInput } from "@/components/form/DayOfWeekInput";
|
||||||
import SelectInput from "@/components/form/SelectInput";
|
import SelectInput from "@/components/form/SelectInput";
|
||||||
import { useCanvasTermsQuery } from "@/hooks/canvas/canvasHooks";
|
import { useCanvasTermsQuery } from "@/hooks/canvas/canvasHooks";
|
||||||
import { CanvasEnrollmentTermModel } from "@/models/canvas/enrollmentTerms/canvasEnrollmentTermModel";
|
import { CanvasEnrollmentTermModel } from "@/models/canvas/enrollmentTerms/canvasEnrollmentTermModel";
|
||||||
|
import { DayOfWeek } from "@/models/local/localCourse";
|
||||||
import React, { useState } from "react";
|
import React, { useState } from "react";
|
||||||
|
|
||||||
export default function NewCourseForm() {
|
export default function NewCourseForm() {
|
||||||
@@ -9,10 +11,10 @@ export default function NewCourseForm() {
|
|||||||
const [selectedTerm, setSelectedTerm] = useState<
|
const [selectedTerm, setSelectedTerm] = useState<
|
||||||
CanvasEnrollmentTermModel | undefined
|
CanvasEnrollmentTermModel | undefined
|
||||||
>();
|
>();
|
||||||
|
const [selectedDaysOfWeek, setSelectedDaysOfWeek] = useState<DayOfWeek[]>([]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<form>
|
<form>
|
||||||
form is here
|
|
||||||
<SelectInput
|
<SelectInput
|
||||||
value={selectedTerm}
|
value={selectedTerm}
|
||||||
setValue={setSelectedTerm}
|
setValue={setSelectedTerm}
|
||||||
@@ -20,6 +22,22 @@ export default function NewCourseForm() {
|
|||||||
options={canvasTerms}
|
options={canvasTerms}
|
||||||
getOptionName={(t) => t.name}
|
getOptionName={(t) => t.name}
|
||||||
/>
|
/>
|
||||||
|
{selectedTerm && (
|
||||||
|
<div>
|
||||||
|
<DayOfWeekInput
|
||||||
|
selectedDays={selectedDaysOfWeek}
|
||||||
|
updateSettings={(day) => {
|
||||||
|
setSelectedDaysOfWeek((oldDays) => {
|
||||||
|
const hasDay = oldDays.includes(day);
|
||||||
|
|
||||||
|
return hasDay
|
||||||
|
? oldDays.filter((d) => d !== day)
|
||||||
|
: [day, ...oldDays];
|
||||||
|
});
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
</form>
|
</form>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,44 +0,0 @@
|
|||||||
"use client";
|
|
||||||
import { Spinner } from "@/components/Spinner";
|
|
||||||
import {
|
|
||||||
useLocalCourseSettingsQuery,
|
|
||||||
useUpdateLocalCourseSettingsMutation,
|
|
||||||
} from "@/hooks/localCourse/localCoursesHooks";
|
|
||||||
import { DayOfWeek } from "@/models/local/localCourse";
|
|
||||||
import React from "react";
|
|
||||||
|
|
||||||
export default function DaysOfWeekSelector() {
|
|
||||||
const { data: settings } = useLocalCourseSettingsQuery();
|
|
||||||
const updateSettings = useUpdateLocalCourseSettingsMutation();
|
|
||||||
|
|
||||||
return (
|
|
||||||
<>
|
|
||||||
<div className="flex flex-row gap-3">
|
|
||||||
{Object.values(DayOfWeek).map((day) => {
|
|
||||||
const hasDay = settings.daysOfWeek.includes(day);
|
|
||||||
return (
|
|
||||||
<button
|
|
||||||
key={day}
|
|
||||||
className={
|
|
||||||
hasDay
|
|
||||||
? "bg-blue-300 text-blue-950 border-blue-500 border"
|
|
||||||
: "bg-slate-900 border-blue-900 border "
|
|
||||||
}
|
|
||||||
onClick={() => {
|
|
||||||
updateSettings.mutate({
|
|
||||||
...settings,
|
|
||||||
daysOfWeek: hasDay
|
|
||||||
? settings.daysOfWeek.filter((d) => d !== day)
|
|
||||||
: [day, ...settings.daysOfWeek],
|
|
||||||
});
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
{day}
|
|
||||||
</button>
|
|
||||||
);
|
|
||||||
})}
|
|
||||||
</div>
|
|
||||||
{updateSettings.isPending && <Spinner />}
|
|
||||||
</>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
"use client";
|
||||||
|
import { DayOfWeekInput } from "@/components/form/DayOfWeekInput";
|
||||||
|
import { Spinner } from "@/components/Spinner";
|
||||||
|
import {
|
||||||
|
useLocalCourseSettingsQuery,
|
||||||
|
useUpdateLocalCourseSettingsMutation,
|
||||||
|
} from "@/hooks/localCourse/localCoursesHooks";
|
||||||
|
import React from "react";
|
||||||
|
|
||||||
|
export default function DaysOfWeekSettings() {
|
||||||
|
const { data: settings } = useLocalCourseSettingsQuery();
|
||||||
|
const updateSettings = useUpdateLocalCourseSettingsMutation();
|
||||||
|
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
<DayOfWeekInput
|
||||||
|
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],
|
||||||
|
});
|
||||||
|
}}
|
||||||
|
/>
|
||||||
|
{updateSettings.isPending && <Spinner />}
|
||||||
|
</>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -3,7 +3,7 @@ import { useCourseContext } from "../context/courseContext";
|
|||||||
import StartAndEndDate from "./StartAndEndDate";
|
import StartAndEndDate from "./StartAndEndDate";
|
||||||
import SettingsHeader from "./SettingsHeader";
|
import SettingsHeader from "./SettingsHeader";
|
||||||
import DefaultDueTime from "./DefaultDueTime";
|
import DefaultDueTime from "./DefaultDueTime";
|
||||||
import DaysOfWeekSelector from "./DaysOfWeekSelector";
|
import DaysOfWeekSettings from "./DaysOfWeekSettings";
|
||||||
import AssignmentGroupManagement from "./AssignmentGroupManagement";
|
import AssignmentGroupManagement from "./AssignmentGroupManagement";
|
||||||
|
|
||||||
export default function page() {
|
export default function page() {
|
||||||
@@ -11,7 +11,7 @@ export default function page() {
|
|||||||
<div className="flex justify-center">
|
<div className="flex justify-center">
|
||||||
<div className=" w-fit mt-5">
|
<div className=" w-fit mt-5">
|
||||||
<SettingsHeader />
|
<SettingsHeader />
|
||||||
<DaysOfWeekSelector />
|
<DaysOfWeekSettings />
|
||||||
<StartAndEndDate />
|
<StartAndEndDate />
|
||||||
<DefaultDueTime />
|
<DefaultDueTime />
|
||||||
<AssignmentGroupManagement />
|
<AssignmentGroupManagement />
|
||||||
|
|||||||
31
nextjs/src/components/form/DayOfWeekInput.tsx
Normal file
31
nextjs/src/components/form/DayOfWeekInput.tsx
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
import { DayOfWeek } from "@/models/local/localCourse";
|
||||||
|
|
||||||
|
export function DayOfWeekInput({
|
||||||
|
selectedDays,
|
||||||
|
updateSettings,
|
||||||
|
}: {
|
||||||
|
selectedDays: DayOfWeek[];
|
||||||
|
updateSettings: (day: DayOfWeek) => void;
|
||||||
|
}) {
|
||||||
|
return (
|
||||||
|
<div className="flex flex-row gap-3">
|
||||||
|
{Object.values(DayOfWeek).map((day) => {
|
||||||
|
const hasDay = selectedDays.includes(day);
|
||||||
|
return (
|
||||||
|
<button
|
||||||
|
role="button"
|
||||||
|
key={day}
|
||||||
|
className={
|
||||||
|
hasDay
|
||||||
|
? "bg-blue-300 text-blue-950 border-blue-500 border"
|
||||||
|
: "bg-slate-900 border-blue-900 border "
|
||||||
|
}
|
||||||
|
onClick={() => updateSettings(day)}
|
||||||
|
>
|
||||||
|
{day}
|
||||||
|
</button>
|
||||||
|
);
|
||||||
|
})}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
@@ -24,6 +24,7 @@ export default function SelectInput<T>({
|
|||||||
setValue(option);
|
setValue(option);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
<option></option>
|
||||||
{options.map((o) => (
|
{options.map((o) => (
|
||||||
<option key={getOptionName(o)}>{getOptionName(o)}</option>
|
<option key={getOptionName(o)}>{getOptionName(o)}</option>
|
||||||
))}
|
))}
|
||||||
|
|||||||
Reference in New Issue
Block a user