diff --git a/components/organisms/shift-schedule/MobileShiftView.tsx b/components/organisms/shift-schedule/MobileShiftView.tsx index f35885e..7a7254b 100644 --- a/components/organisms/shift-schedule/MobileShiftView.tsx +++ b/components/organisms/shift-schedule/MobileShiftView.tsx @@ -44,9 +44,7 @@ export default function MobileShiftView({ onShiftClick, }: MobileShiftViewProps) { const { currentDate, shifts, goToNextMonth, goToPrevMonth } = useShift(); - const [selectedDate, setSelectedDate] = useState( - formatDateISO(new Date(2026, 3, 10)), - ); + const [selectedDate, setSelectedDate] = useState(new Date(2026, 3, 10)); const calendarDays = useMemo(() => { const year = currentDate.getFullYear(); @@ -67,8 +65,7 @@ export default function MobileShiftView({ }, [currentDate]); const getDotColors = (date: Date): string[] => { - const dateStr = formatDateISO(date); - const dayShifts = shifts.filter((s) => s.date === dateStr); + const dayShifts = shifts.filter((s) => s.date.getDate() === date.getDate()); const dots: string[] = []; // if (dayShifts.some((s) => s.status === "available")) // dots.push("bg-amber-400"); @@ -81,7 +78,7 @@ export default function MobileShiftView({ }; const selectedShifts = useMemo(() => { - return shifts.filter((s) => s.date === selectedDate); + return shifts.filter((s) => s.date.getDate() === selectedDate.getDate()); }, [shifts, selectedDate]); const selectedDateObj = new Date(selectedDate + "T00:00:00"); @@ -133,16 +130,15 @@ export default function MobileShiftView({ return
; } - const dateStr = formatDateISO(date); const today = isToday(date); - const selected = dateStr === selectedDate; + const selected = date === selectedDate; const dots = getDotColors(date); return (
diff --git a/components/organisms/shift-schedule/ShiftSchedule.types.ts b/components/organisms/shift-schedule/ShiftSchedule.types.ts index 4e89b32..53acdad 100644 --- a/components/organisms/shift-schedule/ShiftSchedule.types.ts +++ b/components/organisms/shift-schedule/ShiftSchedule.types.ts @@ -2,13 +2,13 @@ import type { ShiftEntity } from "@/lib/types"; export interface WeeklyScheduleProps { onShiftClick: (shift: ShiftEntity) => void; - onCreateShift?: (date: string) => void; + onCreateShift?: (date: Date) => void; mobileCalendarHeader?: boolean; } export interface MonthlyCalendarProps { onShiftClick: (shift: ShiftEntity) => void; - onDateSelect?: (date: string) => void; + onDateSelect?: (date: Date) => void; } export interface MobileShiftViewProps { diff --git a/components/organisms/shift-schedule/WeeklySchedule.tsx b/components/organisms/shift-schedule/WeeklySchedule.tsx index c6d671d..487eca3 100644 --- a/components/organisms/shift-schedule/WeeklySchedule.tsx +++ b/components/organisms/shift-schedule/WeeklySchedule.tsx @@ -59,7 +59,7 @@ export default function WeeklySchedule({ } = useShift(); const weekDates = getWeekDates(); - const [selectedDate, setSelectedDate] = useState( + const [selectedDate, setSelectedDate] = useState( weekDates[0] ?? currentDate, ); @@ -75,7 +75,7 @@ export default function WeeklySchedule({ // dots.push("bg-purple-400"); // if (dayShifts.some((s) => s.status === "absent")) // dots.push("bg-rose-400"); - map[date] = dots.slice(0, 3); + map[date.toISOString()] = dots.slice(0, 3); }); return map; }, [weekDates, getShiftsForDate]); @@ -113,7 +113,7 @@ export default function WeeklySchedule({
{weekDates.map((date, i) => { const active = date === selectedDateStr; - const dots = statusDotsByDate[date] ?? []; + const dots = statusDotsByDate[date.toISOString()] ?? []; return (