From fe2db352b781818933897c212673a1d7cd56ba73 Mon Sep 17 00:00:00 2001 From: "MSI\\derek" Date: Thu, 27 Feb 2025 17:24:14 +0800 Subject: [PATCH] update row item 145 --- src/components/LeaveModal/LeaveCalendar.tsx | 11 ++++++++--- src/components/LeaveModal/LeaveModal.tsx | 3 +++ .../TimesheetAmendment/TimesheetAmendment.tsx | 11 ++++++++--- .../TimesheetAmendment/TimesheetAmendmentModal.tsx | 3 +++ .../UserWorkspacePage/UserWorkspacePage.tsx | 3 ++- 5 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/components/LeaveModal/LeaveCalendar.tsx b/src/components/LeaveModal/LeaveCalendar.tsx index e0dcaeb..36be589 100644 --- a/src/components/LeaveModal/LeaveCalendar.tsx +++ b/src/components/LeaveModal/LeaveCalendar.tsx @@ -36,6 +36,7 @@ export interface Props { timesheetRecords: RecordTimesheetInput; isFullTime: boolean; joinDate: Dayjs; + isSaturdayWorker: boolean } interface EventClickArg { @@ -57,6 +58,7 @@ const LeaveCalendar: React.FC = ({ leaveRecords, isFullTime, joinDate, + isSaturdayWorker }) => { const { t, @@ -190,7 +192,8 @@ const LeaveCalendar: React.FC = ({ ({ event }: EventClickArg) => { const dayJsObj = dayjs(event.startStr); const holiday = getHolidayForDate(event.startStr, companyHolidays); - const isHoliday = holiday || dayJsObj.day() === 0 || dayJsObj.day() === 6; + const isWeekend = !isSaturdayWorker ? dayJsObj.day() === 0 || dayJsObj.day() === 6 : dayJsObj.day() === 0; + const isHoliday = holiday || isWeekend; if ( event.extendedProps.calendar === "leaveEntry" && @@ -210,7 +213,8 @@ const LeaveCalendar: React.FC = ({ (e: { dateStr: string; dayEl: HTMLElement }) => { const dayJsObj = dayjs(e.dateStr); const holiday = getHolidayForDate(e.dateStr, companyHolidays); - const isHoliday = holiday || dayJsObj.day() === 0 || dayJsObj.day() === 6; + const isWeekend = !isSaturdayWorker ? dayJsObj.day() === 0 || dayJsObj.day() === 6 : dayJsObj.day() === 0; + const isHoliday = holiday || isWeekend; openLeaveEditModal(undefined, e.dateStr, Boolean(isHoliday)); }, @@ -224,7 +228,8 @@ const LeaveCalendar: React.FC = ({ } const dayJsObj = dayjs(date); const holiday = getHolidayForDate(date, companyHolidays); - const isHoliday = holiday || dayJsObj.day() === 0 || dayJsObj.day() === 6; + const isWeekend = !isSaturdayWorker ? dayJsObj.day() === 0 || dayJsObj.day() === 6 : dayJsObj.day() === 0; + const isHoliday = holiday || isWeekend; const leaves = localLeaveRecords[date] || []; const timesheets = timesheetRecords[date] || []; diff --git a/src/components/LeaveModal/LeaveModal.tsx b/src/components/LeaveModal/LeaveModal.tsx index 0bd5687..f715e60 100644 --- a/src/components/LeaveModal/LeaveModal.tsx +++ b/src/components/LeaveModal/LeaveModal.tsx @@ -25,6 +25,7 @@ const modalSx: SxProps = { interface Props extends LeaveCalendarProps { open: boolean; onClose: () => void; + isSaturdayWorker: boolean } const LeaveModal: React.FC = ({ @@ -37,6 +38,7 @@ const LeaveModal: React.FC = ({ timesheetRecords, isFullTime, joinDate, + isSaturdayWorker }) => { const { t } = useTranslation("home"); const isMobile = useIsMobile(); @@ -51,6 +53,7 @@ const LeaveModal: React.FC = ({ allProjects={allProjects} leaveRecords={leaveRecords} timesheetRecords={timesheetRecords} + isSaturdayWorker={isSaturdayWorker} /> ); diff --git a/src/components/TimesheetAmendment/TimesheetAmendment.tsx b/src/components/TimesheetAmendment/TimesheetAmendment.tsx index e0bb4ab..24dbad5 100644 --- a/src/components/TimesheetAmendment/TimesheetAmendment.tsx +++ b/src/components/TimesheetAmendment/TimesheetAmendment.tsx @@ -51,6 +51,7 @@ export interface Props { companyHolidays: HolidaysResult[]; allProjects: ProjectWithTasks[]; miscTasks: Task[]; + isSaturdayWorker: boolean } type MemberOption = TeamTimeSheets[0] & TeamLeaves[0] & { id: string }; @@ -79,6 +80,7 @@ const TimesheetAmendment: React.FC = ({ allProjects, leaveTypes, miscTasks, + isSaturdayWorker }) => { const { t, i18n:{language}} = useTranslation(["home", "common"]); const locale = language === "zh" ? "zh-tw" : "en"; @@ -306,7 +308,8 @@ const TimesheetAmendment: React.FC = ({ ({ event }: EventClickArg) => { const dayJsObj = dayjs(event.startStr); const holiday = getHolidayForDate(event.startStr, companyHolidays); - const isHoliday = holiday || dayJsObj.day() === 0 || dayJsObj.day() === 6; + const isWeekend = !isSaturdayWorker ? dayJsObj.day() === 0 || dayJsObj.day() === 6 : dayJsObj.day() === 0; + const isHoliday = holiday || isWeekend; if ( event.extendedProps.calendar === "timeEntry" && @@ -335,7 +338,8 @@ const TimesheetAmendment: React.FC = ({ (e: { dateStr: string; dayEl: HTMLElement }) => { const dayJsObj = dayjs(e.dateStr); const holiday = getHolidayForDate(e.dateStr, companyHolidays); - const isHoliday = holiday || dayJsObj.day() === 0 || dayJsObj.day() === 6; + const isWeekend = !isSaturdayWorker ? dayJsObj.day() === 0 || dayJsObj.day() === 6 : dayJsObj.day() === 0; + const isHoliday = holiday || isWeekend; setSelectedDateInfo({ dateStr: e.dateStr, isHoliday: Boolean(isHoliday), @@ -352,7 +356,8 @@ const TimesheetAmendment: React.FC = ({ } const dayJsObj = dayjs(date); const holiday = getHolidayForDate(date, companyHolidays); - const isHoliday = holiday || dayJsObj.day() === 0 || dayJsObj.day() === 6; + const isWeekend = !isSaturdayWorker ? dayJsObj.day() === 0 || dayJsObj.day() === 6 : dayJsObj.day() === 0; + const isHoliday = holiday || isWeekend; 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 65725ed..e62c9f2 100644 --- a/src/components/TimesheetAmendment/TimesheetAmendmentModal.tsx +++ b/src/components/TimesheetAmendment/TimesheetAmendmentModal.tsx @@ -27,6 +27,7 @@ const modalSx: SxProps = { interface Props extends TimesheetAmendmentProps { open: boolean; onClose: () => void; + isSaturdayWorker: boolean } export const TimesheetAmendmentModal: React.FC = ({ @@ -38,6 +39,7 @@ export const TimesheetAmendmentModal: React.FC = ({ companyHolidays, allProjects, miscTasks, + isSaturdayWorker }) => { const { t } = useTranslation("home"); const isMobile = useIsMobile(); @@ -51,6 +53,7 @@ export const TimesheetAmendmentModal: React.FC = ({ teamTimesheets={teamTimesheets} allProjects={allProjects} miscTasks={miscTasks} + isSaturdayWorker={isSaturdayWorker} /> ); diff --git a/src/components/UserWorkspacePage/UserWorkspacePage.tsx b/src/components/UserWorkspacePage/UserWorkspacePage.tsx index c81d078..0f3611f 100644 --- a/src/components/UserWorkspacePage/UserWorkspacePage.tsx +++ b/src/components/UserWorkspacePage/UserWorkspacePage.tsx @@ -185,7 +185,6 @@ const UserWorkspacePage: React.FC = ({ allProjects={allProjects} leaveTypes={leaveTypes} companyHolidays={holidays} - isSaturdayWorker={isSaturdayWorker} /> = ({ timesheetRecords={defaultTimesheets} isFullTime={isFullTime} joinDate={dayjs(joinDate)} + isSaturdayWorker={isSaturdayWorker} /> {assignedProjects.length > 0 ? ( = ({ open={isTimesheetAmendmentVisible} onClose={handleAmendmentClose} miscTasks={miscTasks} + isSaturdayWorker={isSaturdayWorker} /> )}