diff --git a/components/organisms/shift-schedule/MobileShiftView.tsx b/components/organisms/shift-schedule/MobileShiftView.tsx index f092fc6..f35885e 100644 --- a/components/organisms/shift-schedule/MobileShiftView.tsx +++ b/components/organisms/shift-schedule/MobileShiftView.tsx @@ -70,13 +70,13 @@ export default function MobileShiftView({ const dateStr = formatDateISO(date); const dayShifts = shifts.filter((s) => s.date === dateStr); const dots: string[] = []; - if (dayShifts.some((s) => s.status === "available")) - dots.push("bg-amber-400"); - if (dayShifts.some((s) => s.status === "registered")) - dots.push("bg-green-500"); - if (dayShifts.some((s) => s.status === "approved_leave")) - dots.push("bg-purple-400"); - if (dayShifts.some((s) => s.status === "absent")) dots.push("bg-red-400"); + // if (dayShifts.some((s) => s.status === "available")) + // dots.push("bg-amber-400"); + // if (dayShifts.some((s) => s.status === "registered")) + // dots.push("bg-green-500"); + // if (dayShifts.some((s) => s.status === "approved_leave")) + // dots.push("bg-purple-400"); + // if (dayShifts.some((s) => s.status === "absent")) dots.push("bg-red-400"); return dots; }; diff --git a/components/organisms/shift-schedule/MonthlyCalendar.tsx b/components/organisms/shift-schedule/MonthlyCalendar.tsx index 0bcb332..4022c90 100644 --- a/components/organisms/shift-schedule/MonthlyCalendar.tsx +++ b/components/organisms/shift-schedule/MonthlyCalendar.tsx @@ -62,13 +62,13 @@ export default function MonthlyCalendar({ const getShiftSummary = (date: Date) => { const dateStr = formatDateISO(date); const dayShifts = shifts.filter((s) => s.date === dateStr); - const available = dayShifts.filter((s) => s.status === "available").length; - const registered = dayShifts.filter( - (s) => s.status === "registered", - ).length; - const leave = dayShifts.filter((s) => s.status === "approved_leave").length; - const absent = dayShifts.filter((s) => s.status === "absent").length; - return { total: dayShifts.length, available, registered, leave, absent }; + // const available = dayShifts.filter((s) => s.status === "available").length; + // const registered = dayShifts.filter( + // (s) => s.status === "registered", + // ).length; + // const leave = dayShifts.filter((s) => s.status === "approved_leave").length; + // const absent = dayShifts.filter((s) => s.status === "absent").length; + return { total: dayShifts.length }; }; return ( @@ -119,7 +119,7 @@ export default function MonthlyCalendar({ {date.getDate()} - {summary.total > 0 && ( + {/* {summary.total > 0 && (
{summary.available > 0 && (
@@ -154,7 +154,7 @@ export default function MonthlyCalendar({
)}
- )} + )} */} ); })} diff --git a/components/organisms/shift-schedule/ShiftCreateModal.tsx b/components/organisms/shift-schedule/ShiftCreateModal.tsx index 420841c..426e143 100644 --- a/components/organisms/shift-schedule/ShiftCreateModal.tsx +++ b/components/organisms/shift-schedule/ShiftCreateModal.tsx @@ -50,7 +50,7 @@ export default function ShiftCreateModal({ } createShift({ - date: new Date(date), + date, startTime, endTime, wage, diff --git a/components/organisms/shift-schedule/ShiftDetailModal.tsx b/components/organisms/shift-schedule/ShiftDetailModal.tsx index b513612..45105a9 100644 --- a/components/organisms/shift-schedule/ShiftDetailModal.tsx +++ b/components/organisms/shift-schedule/ShiftDetailModal.tsx @@ -19,12 +19,12 @@ export default function ShiftDetailModal({ if (!isOpen || !shift) return null; - const dept = DEPARTMENTS.find((d) => d.id === shift.department); + // const dept = DEPARTMENTS.find((d) => d.id === shift.department); const isManager = user?.role === "manager"; const isRegistered = user - ? shift.registeredStaff.some((s) => s.id === user.id) + ? shift.registeredStaff!.some((s) => s.id === user.id) : false; - const isFull = shift.registeredStaff.length >= shift.maxStaff; + const isFull = shift.registeredStaff!.length >= shift.maxStaff; const handleRegister = () => { if (!user) return; @@ -47,7 +47,7 @@ export default function ShiftDetailModal({ setTimeout(onClose, 1200); }; - const handleManagerUnregister = (staffId: number) => { + const handleManagerUnregister = (staffId: string) => { unregisterShift(shift.id, staffId); setSuccess("Đã xóa nhân viên khỏi ca."); }; @@ -81,12 +81,12 @@ export default function ShiftDetailModal({ {/* Header */}
- {dept && } + {/* {dept && } */}

Chi tiết ca làm

-

{dept?.name}

+ {/*

{dept?.name}

*/}
- )} + )} */} {isRegistered && (
{weekDates.map((date, i) => { - const dateStr = formatDateISO(date); - const shifts = getShiftsForDate(date); + const dateStr = date; + const shifts = getShiftsForDate(new Date(date)); // .filter( // (s) => s.department === dept.id, // ); @@ -251,7 +251,7 @@ export default function WeeklySchedule({
diff --git a/lib/constants.ts b/lib/constants.ts index 10716e3..90e2bf9 100644 --- a/lib/constants.ts +++ b/lib/constants.ts @@ -146,7 +146,7 @@ function generateMockShifts(): ShiftEntity[] { // Determine registration status const registered: { id: number; name: string }[] = []; - let status: ShiftEntity["status"] = "available"; + // let status: ShiftEntity["status"] = "available"; // Past shifts (before April 10) are mostly registered if (day < 10) { @@ -180,12 +180,12 @@ function generateMockShifts(): ShiftEntity[] { date: dateStr, startTime: slot.start, endTime: slot.end, - durationHours: slot.hours, + // durationHours: slot.hours, wage: slot.wage, - department: dept, + // department: dept, maxStaff: dept === "bar" ? 3 : 2, - registeredStaff: registered, - status, + // registeredStaff: registered, + // status, }); } } diff --git a/lib/types.ts b/lib/types.ts index cd4f34c..89a4647 100644 --- a/lib/types.ts +++ b/lib/types.ts @@ -2,7 +2,7 @@ export type UserRole = "manager" | "staff" | "customer"; export interface User { - id: number; + id: string; name: string; role: UserRole; avatar: string | null; @@ -104,6 +104,12 @@ export interface ShiftEntity { registeredStaff?: ShiftRegistrationEntity[]; } +export interface Department { + id: string; + name: string; + icon: string; +} + export interface MenuItemEntity { id?: string; name: string;