diff --git a/packages/Schedulely/__tests__/layouts/EventWeekLayout.spec.tsx b/packages/Schedulely/__tests__/layouts/EventWeekLayout.spec.tsx index 34a7fa7..d8ee441 100644 --- a/packages/Schedulely/__tests__/layouts/EventWeekLayout.spec.tsx +++ b/packages/Schedulely/__tests__/layouts/EventWeekLayout.spec.tsx @@ -1,6 +1,6 @@ import { DefaultEvent } from '@/components'; import { EventWeekLayout, getGridEndIndex, getGridStartIndex } from '@/layouts'; -import { InternalCalendarEvent } from '@/types'; +import { InternalCalendarEvent, WeekDay } from '@/types'; import { RenderResult, fireEvent, render } from '@testing-library/react'; import { vi } from 'vitest'; @@ -73,7 +73,11 @@ describe('EventWeekLayout', () => { beforeEach(() => { mockSetParentContainerRef.mockClear(); testObject = render( - + ); }); @@ -119,6 +123,10 @@ describe('EventWeekLayout', () => { expect(mockSetParentContainerRef).toHaveBeenCalledTimes(1)); }); + describe.todo( + 'replace getGridEndIndex and getGridStartIndex with getEventPosition' + ); + describe('getGridEndIndex', () => { it.each<{ eventEnd: Date; endOfWeek: Date; expected: number }>([ { diff --git a/packages/Schedulely/src/layouts/eventWeekLayout/EventWeekLayout.tsx b/packages/Schedulely/src/layouts/eventWeekLayout/EventWeekLayout.tsx index 59026cb..5b46ba2 100644 --- a/packages/Schedulely/src/layouts/eventWeekLayout/EventWeekLayout.tsx +++ b/packages/Schedulely/src/layouts/eventWeekLayout/EventWeekLayout.tsx @@ -1,7 +1,4 @@ -import { - CalendarEvent, - InternalCalendarEvent, -} from '@/types/InternalCalendarEvent'; +import { InternalCalendarEvent } from '@/types/InternalCalendarEvent'; import { WeekDay } from '@/types'; import { useActions, @@ -16,6 +13,15 @@ export interface EventLayoutProps { firstDayOfWeek: WeekDay; } +export const getGridStartIndex = (eventDate: Date, startOfWeek: Date) => + eventDate <= startOfWeek ? 1 : eventDate.getDay() + 1; //add one because css-grid isn't zero-index'd + +export const getGridEndIndex = (eventEndDate: Date, endOfWeek: Date) => { + if (eventEndDate > endOfWeek) return 8; + const end = eventEndDate.getDay() + 2; // add two because css-grid isn't zero index'd, and day of week is zero-index'd + return end; +}; + export const getEventPosition = ( { start, end }: InternalCalendarEvent, daysInWeek: Date[],