Calendar code re-organization, event CRUD (except for Update).

This commit is contained in:
Bruno Bernardino
2024-03-20 20:21:20 +00:00
parent eff6a08771
commit f779dde0fc
13 changed files with 1844 additions and 1174 deletions

View File

@@ -2,7 +2,7 @@ import { Handlers, PageProps } from 'fresh/server.ts';
import { Calendar, CalendarEvent, FreshContextState } from '/lib/types.ts';
import { getCalendarEvents, getCalendars } from '/lib/data/calendar.ts';
import MainCalendar from '/islands/calendar/MainCalendar.tsx';
import CalendarWrapper from '/islands/calendar/CalendarWrapper.tsx';
interface Data {
userCalendars: Pick<Calendar, 'id' | 'name' | 'color' | 'is_visible'>[];
@@ -24,6 +24,20 @@ export const handler: Handlers<Data, FreshContextState> = {
const userCalendars = await getCalendars(context.state.user.id);
const visibleCalendarIds = userCalendars.filter((calendar) => calendar.is_visible).map((calendar) => calendar.id);
const dateRange = { start: new Date(startDate), end: new Date(startDate) };
if (view === 'day') {
dateRange.start.setDate(dateRange.start.getDate() - 1);
dateRange.end.setDate(dateRange.end.getDate() + 1);
} else if (view === 'week') {
dateRange.start.setDate(dateRange.start.getDate() - 7);
dateRange.end.setDate(dateRange.end.getDate() + 7);
} else {
dateRange.start.setDate(dateRange.start.getDate() - 7);
dateRange.end.setDate(dateRange.end.getDate() + 31);
}
const userCalendarEvents = await getCalendarEvents(context.state.user.id, visibleCalendarIds);
return await context.render({ userCalendars, userCalendarEvents, view, startDate });
@@ -33,7 +47,7 @@ export const handler: Handlers<Data, FreshContextState> = {
export default function CalendarPage({ data }: PageProps<Data, FreshContextState>) {
return (
<main>
<MainCalendar
<CalendarWrapper
initialCalendars={data.userCalendars}
initialCalendarEvents={data.userCalendarEvents}
view={data.view}