From b87a00ef6f7e1aeb7f8db45ec469a6f420bbada9 Mon Sep 17 00:00:00 2001 From: e-zz <37920155+e-zz@users.noreply.github.com> Date: Sat, 25 May 2024 03:46:44 +0200 Subject: [PATCH] feat: support set start of the week (#296) * feat: start of week * fix: set Monday as default starting day in a week * fix: Update dayjs configuration after modifying the start day of the week. --------- Co-authored-by: e-zz <> Co-authored-by: Hayden Chen --- src/Agenda3/components/calendar/Calendar.tsx | 3 ++- .../SettingsModal/GeneralSettingsForm.tsx | 20 +++++++++++++++++- src/Agenda3/hooks/useSettings.ts | 21 +++++++++++-------- src/Agenda3/index.tsx | 6 +++--- src/Agenda3/models/settings.ts | 8 ++++++- src/register/dayjs.ts | 2 +- 6 files changed, 44 insertions(+), 16 deletions(-) diff --git a/src/Agenda3/components/calendar/Calendar.tsx b/src/Agenda3/components/calendar/Calendar.tsx index 9d40aa7..3c8ea54 100644 --- a/src/Agenda3/components/calendar/Calendar.tsx +++ b/src/Agenda3/components/calendar/Calendar.tsx @@ -42,6 +42,7 @@ const Calendar = ({ onCalendarTitleChange }: CalendarProps, ref) => { const { updateEntity } = useAgendaEntities() const tasksWithStart = useAtomValue(tasksWithStartAtom) const settings = useAtomValue(settingsAtom) + const startingDay = settings.general?.startOfWeek const groupType = settings.selectedFilters?.length ? 'filter' : 'page' const showTasks = tasksWithStart?.filter((task) => settings.viewOptions?.hideCompleted ? task.status === 'todo' : true, @@ -185,7 +186,7 @@ const Calendar = ({ onCalendarTitleChange }: CalendarProps, ref) => { weekNumbers weekNumberContent={({ num, date }) => } defaultTimedEventDuration="00:30" - firstDay={1} + firstDay={Number(startingDay)} fixedWeekCount={false} ref={calendarRef} height="100%" diff --git a/src/Agenda3/components/modals/SettingsModal/GeneralSettingsForm.tsx b/src/Agenda3/components/modals/SettingsModal/GeneralSettingsForm.tsx index 7bc545e..0e3d3e1 100644 --- a/src/Agenda3/components/modals/SettingsModal/GeneralSettingsForm.tsx +++ b/src/Agenda3/components/modals/SettingsModal/GeneralSettingsForm.tsx @@ -8,7 +8,7 @@ const GeneralSettingsForm = () => { const { t, i18n } = useTranslation() const { settings, setSettings } = useSettings() - const onChange = (key: string, value: string | boolean | undefined | Filter[] | string[]) => { + const onChange = (key: string, value: number | string | boolean | undefined | Filter[] | string[]) => { setSettings(key, value) } // 当切换语言时,更新 i18n 的语言 @@ -44,6 +44,24 @@ const GeneralSettingsForm = () => { ]} /> +
+
Start of Week
+