diff --git a/src/components/TimesheetAmendment/TimesheetAmendment.tsx b/src/components/TimesheetAmendment/TimesheetAmendment.tsx index 24dbad5..c224486 100644 --- a/src/components/TimesheetAmendment/TimesheetAmendment.tsx +++ b/src/components/TimesheetAmendment/TimesheetAmendment.tsx @@ -51,7 +51,8 @@ export interface Props { companyHolidays: HolidaysResult[]; allProjects: ProjectWithTasks[]; miscTasks: Task[]; - isSaturdayWorker: boolean + isSaturdayWorker: boolean; + userId: number; } type MemberOption = TeamTimeSheets[0] & TeamLeaves[0] & { id: string }; @@ -80,7 +81,8 @@ const TimesheetAmendment: React.FC = ({ allProjects, leaveTypes, miscTasks, - isSaturdayWorker + isSaturdayWorker, + userId }) => { const { t, i18n:{language}} = useTranslation(["home", "common"]); const locale = language === "zh" ? "zh-tw" : "en"; @@ -119,16 +121,19 @@ const TimesheetAmendment: React.FC = ({ }); }, [], - ).sort((a, b) => a.staffId.localeCompare(b.staffId)); + ); }, [localTeamLeaves, localTeamTimesheets]); const [selectedStaff, setSelectedStaff] = useState( - allMembers[0], + allMembers.find((member) => parseInt(member.id) === userId) ?? allMembers[0] ); useEffect(() => { + console.log(allMembers) + console.log(userId) setSelectedStaff( (currentStaff) => allMembers.find((member) => member.id === currentStaff.id) || + allMembers.find((member) => parseInt(member.id) === userId) || allMembers[0], ); }, [allMembers]); @@ -308,8 +313,7 @@ const TimesheetAmendment: React.FC = ({ ({ event }: EventClickArg) => { const dayJsObj = dayjs(event.startStr); const holiday = getHolidayForDate(event.startStr, companyHolidays); - const isWeekend = !isSaturdayWorker ? dayJsObj.day() === 0 || dayJsObj.day() === 6 : dayJsObj.day() === 0; - const isHoliday = holiday || isWeekend; + const isHoliday = holiday || dayJsObj.day() === 0 || dayJsObj.day() === 6; if ( event.extendedProps.calendar === "timeEntry" && @@ -338,8 +342,7 @@ const TimesheetAmendment: React.FC = ({ (e: { dateStr: string; dayEl: HTMLElement }) => { const dayJsObj = dayjs(e.dateStr); const holiday = getHolidayForDate(e.dateStr, companyHolidays); - const isWeekend = !isSaturdayWorker ? dayJsObj.day() === 0 || dayJsObj.day() === 6 : dayJsObj.day() === 0; - const isHoliday = holiday || isWeekend; + const isHoliday = holiday || dayJsObj.day() === 0 || dayJsObj.day() === 6; setSelectedDateInfo({ dateStr: e.dateStr, isHoliday: Boolean(isHoliday), @@ -356,8 +359,7 @@ const TimesheetAmendment: React.FC = ({ } const dayJsObj = dayjs(date); const holiday = getHolidayForDate(date, companyHolidays); - const isWeekend = !isSaturdayWorker ? dayJsObj.day() === 0 || dayJsObj.day() === 6 : dayJsObj.day() === 0; - const isHoliday = holiday || isWeekend; + const isHoliday = holiday || dayJsObj.day() === 0 || dayJsObj.day() === 6; const intStaffId = parseInt(selectedStaff.id); const leaves = localTeamLeaves[intStaffId].leaveEntries[date] || []; diff --git a/src/components/TimesheetAmendment/TimesheetAmendmentModal.tsx b/src/components/TimesheetAmendment/TimesheetAmendmentModal.tsx index e62c9f2..0018419 100644 --- a/src/components/TimesheetAmendment/TimesheetAmendmentModal.tsx +++ b/src/components/TimesheetAmendment/TimesheetAmendmentModal.tsx @@ -27,7 +27,6 @@ const modalSx: SxProps = { interface Props extends TimesheetAmendmentProps { open: boolean; onClose: () => void; - isSaturdayWorker: boolean } export const TimesheetAmendmentModal: React.FC = ({ @@ -39,7 +38,8 @@ export const TimesheetAmendmentModal: React.FC = ({ companyHolidays, allProjects, miscTasks, - isSaturdayWorker + isSaturdayWorker, + userId }) => { const { t } = useTranslation("home"); const isMobile = useIsMobile(); @@ -54,6 +54,7 @@ export const TimesheetAmendmentModal: React.FC = ({ allProjects={allProjects} miscTasks={miscTasks} isSaturdayWorker={isSaturdayWorker} + userId={userId} /> ); diff --git a/src/components/UserWorkspacePage/UserWorkspacePage.tsx b/src/components/UserWorkspacePage/UserWorkspacePage.tsx index 0f3611f..029129b 100644 --- a/src/components/UserWorkspacePage/UserWorkspacePage.tsx +++ b/src/components/UserWorkspacePage/UserWorkspacePage.tsx @@ -43,7 +43,8 @@ export interface Props { isFullTime: boolean; joinDate?: number | null; miscTasks: Task[]; - isSaturdayWorker: boolean + isSaturdayWorker: boolean; + userId: number; } const menuItemSx: SxProps = { @@ -66,7 +67,8 @@ const UserWorkspacePage: React.FC = ({ isFullTime, joinDate, miscTasks, - isSaturdayWorker + isSaturdayWorker, + userId }) => { const [anchorEl, setAnchorEl] = useState(null); @@ -199,7 +201,6 @@ const UserWorkspacePage: React.FC = ({ isFullTime={isFullTime} joinDate={dayjs(joinDate)} miscTasks={miscTasks} - isSaturdayWorker={isSaturdayWorker} /> = ({ timesheetRecords={defaultTimesheets} isFullTime={isFullTime} joinDate={dayjs(joinDate)} - isSaturdayWorker={isSaturdayWorker} /> {assignedProjects.length > 0 ? ( = ({ onClose={handleAmendmentClose} miscTasks={miscTasks} isSaturdayWorker={isSaturdayWorker} + userId={userId} /> )} diff --git a/src/components/UserWorkspacePage/UserWorkspaceWrapper.tsx b/src/components/UserWorkspacePage/UserWorkspaceWrapper.tsx index 8779079..467863a 100644 --- a/src/components/UserWorkspacePage/UserWorkspaceWrapper.tsx +++ b/src/components/UserWorkspacePage/UserWorkspaceWrapper.tsx @@ -16,7 +16,6 @@ import { MAINTAIN_TIMESHEET_FAST_TIME_ENTRY, MAINTAIN_NORMAL_STAFF_WORKSPACE, MAINTAIN_MANAGEMENT_STAFF_WORKSPACE, - SATURDAY_WORKERS } from "@/middleware"; import { fetchAllTasks } from "@/app/api/tasks"; @@ -62,6 +61,8 @@ const UserWorkspaceWrapper: React.FC = async () => { const isSaturdayWorker = abilities.includes(SATURDAY_WORKERS) + console.log(userStaff) + return ( { maintainManagementStaffWorkspaceAbility } isSaturdayWorker={isSaturdayWorker} + userId={userStaff?.id} /> ); };