day of week selector

This commit is contained in:
2024-09-10 16:58:27 -06:00
parent ff520233d6
commit 6266879103
5 changed files with 51 additions and 13 deletions

View File

@@ -0,0 +1,44 @@
"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-200 text-blue-900"
: "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 />}
</>
);
}

View File

@@ -3,11 +3,13 @@ import { useCourseContext } from "../context/courseContext";
import StartAndEndDate from "./StartAndEndDate";
import SettingsHeader from "./SettingsHeader";
import DefaultDueTime from "./DefaultDueTime";
import DaysOfWeekSelector from "./DaysOfWeekSelector";
export default function page() {
return (
<div>
<SettingsHeader />
<DaysOfWeekSelector />
<StartAndEndDate />
<DefaultDueTime />
</div>