Browse Source

no message

pull/5/head
MSI\2Fi 5 months ago
parent
commit
b90aa150ed
4 changed files with 23 additions and 17 deletions
  1. +12
    -10
      src/components/TimesheetAmendment/TimesheetAmendment.tsx
  2. +3
    -2
      src/components/TimesheetAmendment/TimesheetAmendmentModal.tsx
  3. +5
    -4
      src/components/UserWorkspacePage/UserWorkspacePage.tsx
  4. +3
    -1
      src/components/UserWorkspacePage/UserWorkspaceWrapper.tsx

+ 12
- 10
src/components/TimesheetAmendment/TimesheetAmendment.tsx View File

@@ -51,7 +51,8 @@ export interface Props {
companyHolidays: HolidaysResult[]; companyHolidays: HolidaysResult[];
allProjects: ProjectWithTasks[]; allProjects: ProjectWithTasks[];
miscTasks: Task[]; miscTasks: Task[];
isSaturdayWorker: boolean
isSaturdayWorker: boolean;
userId: number;
} }


type MemberOption = TeamTimeSheets[0] & TeamLeaves[0] & { id: string }; type MemberOption = TeamTimeSheets[0] & TeamLeaves[0] & { id: string };
@@ -80,7 +81,8 @@ const TimesheetAmendment: React.FC<Props> = ({
allProjects, allProjects,
leaveTypes, leaveTypes,
miscTasks, miscTasks,
isSaturdayWorker
isSaturdayWorker,
userId
}) => { }) => {
const { t, i18n:{language}} = useTranslation(["home", "common"]); const { t, i18n:{language}} = useTranslation(["home", "common"]);
const locale = language === "zh" ? "zh-tw" : "en"; const locale = language === "zh" ? "zh-tw" : "en";
@@ -119,16 +121,19 @@ const TimesheetAmendment: React.FC<Props> = ({
}); });
}, },
[], [],
).sort((a, b) => a.staffId.localeCompare(b.staffId));
);
}, [localTeamLeaves, localTeamTimesheets]); }, [localTeamLeaves, localTeamTimesheets]);


const [selectedStaff, setSelectedStaff] = useState<MemberOption>( const [selectedStaff, setSelectedStaff] = useState<MemberOption>(
allMembers[0],
allMembers.find((member) => parseInt(member.id) === userId) ?? allMembers[0]
); );
useEffect(() => { useEffect(() => {
console.log(allMembers)
console.log(userId)
setSelectedStaff( setSelectedStaff(
(currentStaff) => (currentStaff) =>
allMembers.find((member) => member.id === currentStaff.id) || allMembers.find((member) => member.id === currentStaff.id) ||
allMembers.find((member) => parseInt(member.id) === userId) ||
allMembers[0], allMembers[0],
); );
}, [allMembers]); }, [allMembers]);
@@ -308,8 +313,7 @@ const TimesheetAmendment: React.FC<Props> = ({
({ event }: EventClickArg) => { ({ event }: EventClickArg) => {
const dayJsObj = dayjs(event.startStr); const dayJsObj = dayjs(event.startStr);
const holiday = getHolidayForDate(event.startStr, companyHolidays); 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 ( if (
event.extendedProps.calendar === "timeEntry" && event.extendedProps.calendar === "timeEntry" &&
@@ -338,8 +342,7 @@ const TimesheetAmendment: React.FC<Props> = ({
(e: { dateStr: string; dayEl: HTMLElement }) => { (e: { dateStr: string; dayEl: HTMLElement }) => {
const dayJsObj = dayjs(e.dateStr); const dayJsObj = dayjs(e.dateStr);
const holiday = getHolidayForDate(e.dateStr, companyHolidays); 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({ setSelectedDateInfo({
dateStr: e.dateStr, dateStr: e.dateStr,
isHoliday: Boolean(isHoliday), isHoliday: Boolean(isHoliday),
@@ -356,8 +359,7 @@ const TimesheetAmendment: React.FC<Props> = ({
} }
const dayJsObj = dayjs(date); const dayJsObj = dayjs(date);
const holiday = getHolidayForDate(date, companyHolidays); 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 intStaffId = parseInt(selectedStaff.id);
const leaves = localTeamLeaves[intStaffId].leaveEntries[date] || []; const leaves = localTeamLeaves[intStaffId].leaveEntries[date] || [];


+ 3
- 2
src/components/TimesheetAmendment/TimesheetAmendmentModal.tsx View File

@@ -27,7 +27,6 @@ const modalSx: SxProps = {
interface Props extends TimesheetAmendmentProps { interface Props extends TimesheetAmendmentProps {
open: boolean; open: boolean;
onClose: () => void; onClose: () => void;
isSaturdayWorker: boolean
} }


export const TimesheetAmendmentModal: React.FC<Props> = ({ export const TimesheetAmendmentModal: React.FC<Props> = ({
@@ -39,7 +38,8 @@ export const TimesheetAmendmentModal: React.FC<Props> = ({
companyHolidays, companyHolidays,
allProjects, allProjects,
miscTasks, miscTasks,
isSaturdayWorker
isSaturdayWorker,
userId
}) => { }) => {
const { t } = useTranslation("home"); const { t } = useTranslation("home");
const isMobile = useIsMobile(); const isMobile = useIsMobile();
@@ -54,6 +54,7 @@ export const TimesheetAmendmentModal: React.FC<Props> = ({
allProjects={allProjects} allProjects={allProjects}
miscTasks={miscTasks} miscTasks={miscTasks}
isSaturdayWorker={isSaturdayWorker} isSaturdayWorker={isSaturdayWorker}
userId={userId}
/> />
); );




+ 5
- 4
src/components/UserWorkspacePage/UserWorkspacePage.tsx View File

@@ -43,7 +43,8 @@ export interface Props {
isFullTime: boolean; isFullTime: boolean;
joinDate?: number | null; joinDate?: number | null;
miscTasks: Task[]; miscTasks: Task[];
isSaturdayWorker: boolean
isSaturdayWorker: boolean;
userId: number;
} }


const menuItemSx: SxProps = { const menuItemSx: SxProps = {
@@ -66,7 +67,8 @@ const UserWorkspacePage: React.FC<Props> = ({
isFullTime, isFullTime,
joinDate, joinDate,
miscTasks, miscTasks,
isSaturdayWorker
isSaturdayWorker,
userId
}) => { }) => {
const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null); const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);


@@ -199,7 +201,6 @@ const UserWorkspacePage: React.FC<Props> = ({
isFullTime={isFullTime} isFullTime={isFullTime}
joinDate={dayjs(joinDate)} joinDate={dayjs(joinDate)}
miscTasks={miscTasks} miscTasks={miscTasks}
isSaturdayWorker={isSaturdayWorker}
/> />
<LeaveModal <LeaveModal
open={isLeaveCalendarVisible} open={isLeaveCalendarVisible}
@@ -211,7 +212,6 @@ const UserWorkspacePage: React.FC<Props> = ({
timesheetRecords={defaultTimesheets} timesheetRecords={defaultTimesheets}
isFullTime={isFullTime} isFullTime={isFullTime}
joinDate={dayjs(joinDate)} joinDate={dayjs(joinDate)}
isSaturdayWorker={isSaturdayWorker}
/> />
{assignedProjects.length > 0 ? ( {assignedProjects.length > 0 ? (
<AssignedProjects <AssignedProjects
@@ -239,6 +239,7 @@ const UserWorkspacePage: React.FC<Props> = ({
onClose={handleAmendmentClose} onClose={handleAmendmentClose}
miscTasks={miscTasks} miscTasks={miscTasks}
isSaturdayWorker={isSaturdayWorker} isSaturdayWorker={isSaturdayWorker}
userId={userId}
/> />
)} )}
</> </>


+ 3
- 1
src/components/UserWorkspacePage/UserWorkspaceWrapper.tsx View File

@@ -16,7 +16,6 @@ import {
MAINTAIN_TIMESHEET_FAST_TIME_ENTRY, MAINTAIN_TIMESHEET_FAST_TIME_ENTRY,
MAINTAIN_NORMAL_STAFF_WORKSPACE, MAINTAIN_NORMAL_STAFF_WORKSPACE,
MAINTAIN_MANAGEMENT_STAFF_WORKSPACE, MAINTAIN_MANAGEMENT_STAFF_WORKSPACE,
SATURDAY_WORKERS
} from "@/middleware"; } from "@/middleware";
import { fetchAllTasks } from "@/app/api/tasks"; import { fetchAllTasks } from "@/app/api/tasks";


@@ -62,6 +61,8 @@ const UserWorkspaceWrapper: React.FC = async () => {


const isSaturdayWorker = abilities.includes(SATURDAY_WORKERS) const isSaturdayWorker = abilities.includes(SATURDAY_WORKERS)


console.log(userStaff)

return ( return (
<UserWorkspacePage <UserWorkspacePage
joinDate={userStaff?.joinDate} joinDate={userStaff?.joinDate}
@@ -82,6 +83,7 @@ const UserWorkspaceWrapper: React.FC = async () => {
maintainManagementStaffWorkspaceAbility maintainManagementStaffWorkspaceAbility
} }
isSaturdayWorker={isSaturdayWorker} isSaturdayWorker={isSaturdayWorker}
userId={userStaff?.id}
/> />
); );
}; };


Loading…
Cancel
Save