Ver código fonte

no message

pull/5/head
MSI\2Fi 5 meses atrás
pai
commit
b90aa150ed
4 arquivos alterados com 23 adições e 17 exclusões
  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 Ver arquivo

@@ -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<Props> = ({
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<Props> = ({
});
},
[],
).sort((a, b) => a.staffId.localeCompare(b.staffId));
);
}, [localTeamLeaves, localTeamTimesheets]);

const [selectedStaff, setSelectedStaff] = useState<MemberOption>(
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<Props> = ({
({ 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<Props> = ({
(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<Props> = ({
}
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] || [];


+ 3
- 2
src/components/TimesheetAmendment/TimesheetAmendmentModal.tsx Ver arquivo

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

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



+ 5
- 4
src/components/UserWorkspacePage/UserWorkspacePage.tsx Ver arquivo

@@ -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<Props> = ({
isFullTime,
joinDate,
miscTasks,
isSaturdayWorker
isSaturdayWorker,
userId
}) => {
const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);

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


+ 3
- 1
src/components/UserWorkspacePage/UserWorkspaceWrapper.tsx Ver arquivo

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


Carregando…
Cancelar
Salvar