Browse Source

move some functions from commonUtil to fetchUtil

tags/Baseline_30082024_FRONTEND_UAT
cyril.tsui 1 year ago
parent
commit
57539fc60f
38 changed files with 98 additions and 88 deletions
  1. +2
    -2
      src/app/(main)/projects/create/page.tsx
  2. +2
    -2
      src/app/(main)/projects/createSub/page.tsx
  3. +2
    -2
      src/app/(main)/projects/edit/page.tsx
  4. +2
    -2
      src/app/(main)/projects/editSub/page.tsx
  5. +2
    -2
      src/app/(main)/projects/page.tsx
  6. +2
    -2
      src/app/(main)/settings/company/page.tsx
  7. +2
    -2
      src/app/(main)/settings/customer/page.tsx
  8. +2
    -2
      src/app/(main)/settings/department/page.tsx
  9. +2
    -2
      src/app/(main)/settings/mail/page.tsx
  10. +2
    -2
      src/app/(main)/settings/position/page.tsx
  11. +2
    -2
      src/app/(main)/settings/skill/page.tsx
  12. +2
    -2
      src/app/(main)/settings/staff/page.tsx
  13. +2
    -2
      src/app/(main)/settings/subsidiary/page.tsx
  14. +2
    -2
      src/app/(main)/settings/team/page.tsx
  15. +14
    -14
      src/app/utils/commonUtil.ts
  16. +11
    -1
      src/app/utils/fetchUtil.ts
  17. +2
    -2
      src/components/CompanyHoliday/CompanyHolidayWrapper.tsx
  18. +2
    -2
      src/components/CompanySearch/CompanySearchWrapper.tsx
  19. +2
    -2
      src/components/CompanyTeamCashFlow/CompanyTeamCashFlowWrapper.tsx
  20. +2
    -2
      src/components/CreateProject/CreateProjectWrapper.tsx
  21. +2
    -2
      src/components/CustomerSearch/CustomerSearchWrapper.tsx
  22. +2
    -2
      src/components/DepartmentSearch/DepartmentSearchWrapper.tsx
  23. +1
    -1
      src/components/ExcelFileImport/ExcelFileImportWrapper.tsx
  24. +2
    -2
      src/components/GenerateCrossTeamChargeReport/GenerateCrossTeamChargeReportWrapper.tsx
  25. +2
    -2
      src/components/GenerateProjectCashFlowReport/GenerateProjectCashFlowReportWrapper.tsx
  26. +2
    -2
      src/components/GenerateProjectPandLReport/GenerateProjectPandLReportWrapper.tsx
  27. +2
    -2
      src/components/GenerateProjectPotentialDelayReport/GenerateProjectPotentialDelayReportWrapper.tsx
  28. +2
    -2
      src/components/MailSetting/MailSettingWrapper.tsx
  29. +2
    -2
      src/components/PositionSearch/PositionSearchWrapper.tsx
  30. +2
    -2
      src/components/ProjectSearch/ProjectSearchWrapper.tsx
  31. +2
    -2
      src/components/Report/FinancialStatusReportGen/FinancialStatusReportGenWrapper.tsx
  32. +2
    -2
      src/components/Report/LateStartReportGen/LateStartReportGenWrapper.tsx
  33. +2
    -2
      src/components/SalarySearch/SalarySearchWrapper.tsx
  34. +2
    -2
      src/components/SkillSearch/SkillSearchWrapper.tsx
  35. +3
    -3
      src/components/StaffUtilization/StaffUtilizationWrapper.tsx
  36. +2
    -2
      src/components/SubsidiarySearch/SubsidiarySearchWrapper.tsx
  37. +2
    -2
      src/components/TeamSearch/TeamSearchWrapper.tsx
  38. +3
    -3
      src/components/UserWorkspacePage/UserWorkspaceWrapper.tsx

+ 2
- 2
src/app/(main)/projects/create/page.tsx View File

@@ -11,7 +11,7 @@ import {
} from "@/app/api/projects";
import { preloadStaff, preloadTeamLeads } from "@/app/api/staff";
import { fetchAllTasks, fetchTaskTemplates } from "@/app/api/tasks";
import { getUserAbilities } from "@/app/utils/commonUtil";
import { fetchUserAbilities } from "@/app/utils/fetchUtil";
import CreateProject from "@/components/CreateProject";
import { I18nProvider, getServerI18n } from "@/i18n";
import { MAINTAIN_PROJECT } from "@/middleware";
@@ -26,7 +26,7 @@ export const metadata: Metadata = {
const Projects: React.FC = async () => {
const { t } = await getServerI18n("projects");

const abilities = await getUserAbilities();
const abilities = await fetchUserAbilities();

if (![MAINTAIN_PROJECT].some((ability) => abilities.includes(ability))) {
notFound();


+ 2
- 2
src/app/(main)/projects/createSub/page.tsx View File

@@ -13,7 +13,7 @@ import {
} from "@/app/api/projects";
import { preloadStaff, preloadTeamLeads } from "@/app/api/staff";
import { fetchAllTasks, fetchTaskTemplates } from "@/app/api/tasks";
import { getUserAbilities } from "@/app/utils/commonUtil";
import { fetchUserAbilities } from "@/app/utils/fetchUtil";
import { ServerFetchError } from "@/app/utils/fetchUtil";
import CreateProject from "@/components/CreateProject";
import { I18nProvider, getServerI18n } from "@/i18n";
@@ -28,7 +28,7 @@ export const metadata: Metadata = {

const Projects: React.FC = async () => {
const { t } = await getServerI18n("projects");
const abilities = await getUserAbilities()
const abilities = await fetchUserAbilities()
if (![MAINTAIN_PROJECT].some(ability => abilities.includes(ability))) {
notFound();


+ 2
- 2
src/app/(main)/projects/edit/page.tsx View File

@@ -12,7 +12,7 @@ import {
} from "@/app/api/projects";
import { preloadStaff, preloadTeamLeads } from "@/app/api/staff";
import { fetchAllTasks, fetchTaskTemplates } from "@/app/api/tasks";
import { getUserAbilities } from "@/app/utils/commonUtil";
import { fetchUserAbilities } from "@/app/utils/fetchUtil";
import { ServerFetchError } from "@/app/utils/fetchUtil";
import CreateProject from "@/components/CreateProject";
import { I18nProvider, getServerI18n } from "@/i18n";
@@ -34,7 +34,7 @@ const Projects: React.FC<Props> = async ({ searchParams }) => {
const { t } = await getServerI18n("projects");
// Assume projectId is string here
const projectId = searchParams["id"];
const abilities = await getUserAbilities()
const abilities = await fetchUserAbilities()

if (!projectId || isArray(projectId) || ![MAINTAIN_PROJECT].some(ability => abilities.includes(ability))) {
notFound();


+ 2
- 2
src/app/(main)/projects/editSub/page.tsx View File

@@ -13,7 +13,7 @@ import {
} from "@/app/api/projects";
import { preloadStaff, preloadTeamLeads } from "@/app/api/staff";
import { fetchAllTasks, fetchTaskTemplates } from "@/app/api/tasks";
import { getUserAbilities } from "@/app/utils/commonUtil";
import { fetchUserAbilities } from "@/app/utils/fetchUtil";
import CreateProject from "@/components/CreateProject";
import { I18nProvider, getServerI18n } from "@/i18n";
import { MAINTAIN_PROJECT } from "@/middleware";
@@ -34,7 +34,7 @@ const Projects: React.FC<Props> = async ({ searchParams }) => {
const { t } = await getServerI18n("projects");
const projectId = searchParams["id"];

const abilities = await getUserAbilities()
const abilities = await fetchUserAbilities()
if (!projectId || isArray(projectId) || !abilities.includes(MAINTAIN_PROJECT)) {
notFound();
}


+ 2
- 2
src/app/(main)/projects/page.tsx View File

@@ -1,5 +1,5 @@
import { fetchProjectCategories, fetchProjects, preloadProjects } from "@/app/api/projects";
import { getUserAbilities } from "@/app/utils/commonUtil";
import { fetchUserAbilities } from "@/app/utils/fetchUtil";
import ProjectSearch from "@/components/ProjectSearch";
import { getServerI18n } from "@/i18n";
import { MAINTAIN_PROJECT, VIEW_PROJECT } from "@/middleware";
@@ -21,7 +21,7 @@ const Projects: React.FC = async () => {
// preloadProjects();
fetchProjectCategories();
const projects = await fetchProjects();
const abilities = await getUserAbilities()
const abilities = await fetchUserAbilities()
if (![MAINTAIN_PROJECT].some(ability => abilities.includes(ability))) {
notFound();
}


+ 2
- 2
src/app/(main)/settings/company/page.tsx View File

@@ -8,7 +8,7 @@ import Typography from "@mui/material/Typography";
import Link from "next/link";
import { Suspense } from "react";
import { fetchCompanys, preloadCompanys } from "@/app/api/companys";
import { getUserAbilities } from "@/app/utils/commonUtil";
import { fetchUserAbilities } from "@/app/utils/fetchUtil";
import { MAINTAIN_COMPANY } from "@/middleware";

export const metadata: Metadata = {
@@ -22,7 +22,7 @@ const Company: React.FC = async () => {
fetchCompanys();
preloadCompanys();
const abilities = await getUserAbilities()
const abilities = await fetchUserAbilities()
const maintainCompany = abilities.includes(MAINTAIN_COMPANY)

return (


+ 2
- 2
src/app/(main)/settings/customer/page.tsx View File

@@ -9,7 +9,7 @@ import { Metadata } from "next";
import Link from "next/link";
import { Suspense } from "react";
import { I18nProvider } from "@/i18n";
import { getUserAbilities } from "@/app/utils/commonUtil";
import { fetchUserAbilities } from "@/app/utils/fetchUtil";
import { MAINTAIN_CLIENT } from "@/middleware";

export const metadata: Metadata = {
@@ -19,7 +19,7 @@ export const metadata: Metadata = {
const Customer: React.FC = async () => {
const { t } = await getServerI18n("customer");
preloadAllCustomers();
const abilities = await getUserAbilities()
const abilities = await fetchUserAbilities()
const maintainClient = abilities.includes(MAINTAIN_CLIENT)

return (


+ 2
- 2
src/app/(main)/settings/department/page.tsx View File

@@ -8,7 +8,7 @@ import Typography from "@mui/material/Typography";
import Link from "next/link";
import { Suspense } from "react";
import { fetchDepartments, preloadDepartments } from "@/app/api/departments";
import { getUserAbilities } from "@/app/utils/commonUtil";
import { fetchUserAbilities } from "@/app/utils/fetchUtil";
import { MAINTAIN_DEPARTMENT } from "@/middleware";

export const metadata: Metadata = {
@@ -22,7 +22,7 @@ const Department: React.FC = async () => {
// fetchDepartments();
// preloadDepartments();
const abilities = await getUserAbilities()
const abilities = await fetchUserAbilities()
const maintainDepartment = abilities.includes(MAINTAIN_DEPARTMENT)

return (


+ 2
- 2
src/app/(main)/settings/mail/page.tsx View File

@@ -4,7 +4,7 @@ import Typography from "@mui/material/Typography";
import { Metadata } from "next";
import { Suspense } from "react";
import { I18nProvider } from "@/i18n";
import { getUserAbilities } from "@/app/utils/commonUtil";
import { fetchUserAbilities } from "@/app/utils/fetchUtil";
import { preloadMails } from "@/app/api/mail";
import MailSetting from "@/components/MailSetting";

@@ -15,7 +15,7 @@ export const metadata: Metadata = {
const Customer: React.FC = async () => {
const { t } = await getServerI18n("mail");
preloadMails();
const abilities = await getUserAbilities()
const abilities = await fetchUserAbilities()

return (
<>


+ 2
- 2
src/app/(main)/settings/position/page.tsx View File

@@ -8,7 +8,7 @@ import Typography from "@mui/material/Typography";
import Link from "next/link";
import { Suspense } from "react";
import { fetchPositions, preloadPositions } from "@/app/api/positions";
import { getUserAbilities } from "@/app/utils/commonUtil";
import { fetchUserAbilities } from "@/app/utils/fetchUtil";
import { MAINTAIN_POSITION } from "@/middleware";

export const metadata: Metadata = {
@@ -22,7 +22,7 @@ const Position: React.FC = async () => {
// fetchPositions();
// preloadPositions();
const abilities = await getUserAbilities()
const abilities = await fetchUserAbilities()
const maintainPosition = abilities.includes(MAINTAIN_POSITION)

return (


+ 2
- 2
src/app/(main)/settings/skill/page.tsx View File

@@ -1,5 +1,5 @@
import { preloadClaims } from "@/app/api/claims";
import { getUserAbilities } from "@/app/utils/commonUtil";
import { fetchUserAbilities } from "@/app/utils/fetchUtil";
// import { preloadSkill, preloadTeamLeads } from "@/app/api/staff";
import SkillSearch from "@/components/SkillSearch";
import { I18nProvider, getServerI18n } from "@/i18n";
@@ -21,7 +21,7 @@ const Skill: React.FC = async () => {
// preloadTeamLeads();
// preloadSkill();

const abilities = await getUserAbilities()
const abilities = await fetchUserAbilities()
const maintainSkill = abilities.includes(MAINTAIN_SKILL)
return (


+ 2
- 2
src/app/(main)/settings/staff/page.tsx View File

@@ -1,6 +1,6 @@
import { preloadClaims } from "@/app/api/claims";
import { preloadStaff, preloadTeamLeads } from "@/app/api/staff";
import { getUserAbilities } from "@/app/utils/commonUtil";
import { fetchUserAbilities } from "@/app/utils/fetchUtil";
import StaffSearch from "@/components/StaffSearch";
import { I18nProvider, getServerI18n } from "@/i18n";
import { MAINTAIN_STAFF } from "@/middleware";
@@ -21,7 +21,7 @@ const Staff: React.FC = async () => {
preloadTeamLeads();
preloadStaff();

const abilities = await getUserAbilities();
const abilities = await fetchUserAbilities();
const maintainStaff = abilities.includes(MAINTAIN_STAFF)

return (


+ 2
- 2
src/app/(main)/settings/subsidiary/page.tsx View File

@@ -9,7 +9,7 @@ import { Suspense } from "react";
import { I18nProvider } from "@/i18n";
import { preloadAllSubsidiaries } from "@/app/api/subsidiary";
import SubsidiarySearch from "@/components/SubsidiarySearch";
import { getUserAbilities } from "@/app/utils/commonUtil";
import { fetchUserAbilities } from "@/app/utils/fetchUtil";
import { MAINTAIN_SUBSIDIARY } from "@/middleware";

export const metadata: Metadata = {
@@ -19,7 +19,7 @@ export const metadata: Metadata = {
const Subsidiary: React.FC = async () => {
const { t } = await getServerI18n("subsidiary");
preloadAllSubsidiaries();
const abilities = await getUserAbilities()
const abilities = await fetchUserAbilities()
const maintainSubsidiary = abilities.includes(MAINTAIN_SUBSIDIARY)

return (


+ 2
- 2
src/app/(main)/settings/team/page.tsx View File

@@ -1,6 +1,6 @@
import { preloadClaims } from "@/app/api/claims";
import { preloadStaff, preloadTeamLeads } from "@/app/api/staff";
import { getUserAbilities } from "@/app/utils/commonUtil";
import { fetchUserAbilities } from "@/app/utils/fetchUtil";
import StaffSearch from "@/components/StaffSearch";
import TeamSearch from "@/components/TeamSearch";
import { I18nProvider, getServerI18n } from "@/i18n";
@@ -24,7 +24,7 @@ export const metadata: Metadata = {
// preloadTeamLeads();
// preloadStaff();

const abilities = await getUserAbilities()
const abilities = await fetchUserAbilities()
const maintainTeam = abilities.includes(MAINTAIN_TEAM)

return (


+ 14
- 14
src/app/utils/commonUtil.ts View File

@@ -1,5 +1,5 @@
import { SessionStaff, SessionWithTokens, authOptions } from "@/config/authConfig"
import { getServerSession } from "next-auth"
// import { SessionStaff, SessionWithTokens, authOptions } from "@/config/authConfig"
// import { getServerSession } from "next-auth"
export interface WildCard {
[key: string]: any;
}
@@ -51,17 +51,17 @@ export function readIntFromString(input: string): [string, number | null] | stri
return [stringPart, intPart];
}

export const getUserSession = async () => {
const session = await getServerSession(authOptions) as SessionWithTokens;
return session
}
// export const getUserSession = async () => {
// const session = await getServerSession(authOptions) as SessionWithTokens;
// return session
// }

export const getUserAbilities = async () => {
const session = await getServerSession(authOptions) as SessionWithTokens;
return session?.abilities ?? [] as string[]
}
// export const fetchUserAbilities = async () => {
// const session = await getServerSession(authOptions) as SessionWithTokens;
// return session?.abilities ?? [] as string[]
// }

export const getUserStaff = async () => {
const session = await getServerSession(authOptions) as SessionWithTokens;
return session?.staff as SessionStaff
}
// export const fetchUserStaff = async () => {
// const session = await getServerSession(authOptions) as SessionWithTokens;
// return session?.staff as SessionStaff
// }

+ 11
- 1
src/app/utils/fetchUtil.ts View File

@@ -1,4 +1,4 @@
import { SessionWithTokens, authOptions } from "@/config/authConfig";
import { SessionWithTokens, authOptions, SessionStaff } from "@/config/authConfig";
import { getServerSession } from "next-auth";
import { headers } from "next/headers";
import { redirect } from "next/navigation";
@@ -180,3 +180,13 @@ export const signOutUser = () => {
`/logout${referer ? `?callbackUrl=${encodeURIComponent(referer)}` : ""}`,
);
};

export const fetchUserAbilities = async () => {
const session = await getServerSession(authOptions) as SessionWithTokens;
return session?.abilities ?? [] as string[]
}

export const fetchUserStaff = async () => {
const session = await getServerSession(authOptions) as SessionWithTokens;
return session?.staff as SessionStaff
}

+ 2
- 2
src/components/CompanyHoliday/CompanyHolidayWrapper.tsx View File

@@ -6,7 +6,7 @@ import { fetchCompanys } from "@/app/api/companys";
import Holidays from "date-holidays";
import { HolidaysResult, fetchHolidays, HolidaysList } from "@/app/api/holidays";
import { convertDateArrayToString } from "@/app/utils/formatUtil";
import { getUserAbilities } from "@/app/utils/commonUtil";
import { fetchUserAbilities } from "@/app/utils/fetchUtil";

interface SubComponents {
Loading: typeof CompanyHolidayLoading;
@@ -15,7 +15,7 @@ interface SubComponents {
const CompanyHolidayWrapper: React.FC & SubComponents = async () => {
// const Companys = await fetchCompanys();

const [companyHolidays, abilities] = await Promise.all([fetchHolidays(), getUserAbilities()])
const [companyHolidays, abilities] = await Promise.all([fetchHolidays(), fetchUserAbilities()])

// console.log(companyHolidays)
const convertedHolidays = companyHolidays.map((holiday) => {


+ 2
- 2
src/components/CompanySearch/CompanySearchWrapper.tsx View File

@@ -3,7 +3,7 @@ import React from "react";
import CompanySearch from "./CompanySearch";
import CompanySearchLoading from "./CompanySearchLoading";
import { fetchCompanys } from "@/app/api/companys";
import { getUserAbilities } from "@/app/utils/commonUtil";
import { fetchUserAbilities } from "@/app/utils/fetchUtil";

interface SubComponents {
Loading: typeof CompanySearchLoading;
@@ -11,7 +11,7 @@ interface SubComponents {

const CompanySearchWrapper: React.FC & SubComponents = async () => {
// const Companys = await fetchCompanys();
const [Companys, abilities] = await Promise.all([fetchCompanys(), getUserAbilities()]);
const [Companys, abilities] = await Promise.all([fetchCompanys(), fetchUserAbilities()]);

return <CompanySearch companys={Companys} abilities={abilities}/>;
};


+ 2
- 2
src/components/CompanyTeamCashFlow/CompanyTeamCashFlowWrapper.tsx View File

@@ -1,9 +1,9 @@
import React from "react";
import CompanyTeamCashFlow from "./CompanyTeamCashFlow";
import { getUserAbilities, getUserStaff } from "@/app/utils/commonUtil";
import { fetchUserAbilities, fetchUserStaff } from "@/app/utils/fetchUtil";

const CompanyTeamCashFlowWrapper: React.FC = async () => {
const [abilities, staff] = await Promise.all([getUserAbilities(), getUserStaff()]);
const [abilities, staff] = await Promise.all([fetchUserAbilities(), fetchUserStaff()]);

return <CompanyTeamCashFlow abilities={abilities} staff={staff}/>;
};


+ 2
- 2
src/components/CreateProject/CreateProjectWrapper.tsx View File

@@ -18,7 +18,7 @@ import {
fetchCustomerTypes,
} from "@/app/api/customer";
import { fetchGrades } from "@/app/api/grades";
import { getUserAbilities } from "@/app/utils/commonUtil";
import { fetchUserAbilities } from "@/app/utils/fetchUtil";

type CreateProjectProps = {
isEditMode: false;
@@ -66,7 +66,7 @@ const CreateProjectWrapper: React.FC<Props> = async (props) => {
fetchStaff(),
fetchGrades(),
fetchCustomerTypes(),
getUserAbilities(),
fetchUserAbilities(),
]);

const projectInfo = props.isEditMode


+ 2
- 2
src/components/CustomerSearch/CustomerSearchWrapper.tsx View File

@@ -2,14 +2,14 @@ import { fetchAllCustomers } from "@/app/api/customer";
import React from "react";
import CustomerSearch from "./CustomerSearch";
import CustomerSearchLoading from "./CustomerSearchLoading";
import { getUserAbilities } from "@/app/utils/commonUtil";
import { fetchUserAbilities } from "@/app/utils/fetchUtil";

interface SubComponents {
Loading: typeof CustomerSearchLoading;
}

const CustomerSearchWrapper: React.FC & SubComponents = async () => {
const [customers, abilities] = await Promise.all([fetchAllCustomers(), getUserAbilities()]);
const [customers, abilities] = await Promise.all([fetchAllCustomers(), fetchUserAbilities()]);

return <CustomerSearch customers={customers} abilities={abilities}/>;
};


+ 2
- 2
src/components/DepartmentSearch/DepartmentSearchWrapper.tsx View File

@@ -3,14 +3,14 @@ import React from "react";
import DepartmentSearch from "./DepartmentSearch";
import DepartmentSearchLoading from "./DepartmentSearchLoading";
import { fetchDepartments } from "@/app/api/departments";
import { getUserAbilities } from "@/app/utils/commonUtil";
import { fetchUserAbilities } from "@/app/utils/fetchUtil";

interface SubComponents {
Loading: typeof DepartmentSearchLoading;
}

const DepartmentSearchWrapper: React.FC & SubComponents = async () => {
const [Departments, abilities] = await Promise.all([fetchDepartments(), getUserAbilities()]);
const [Departments, abilities] = await Promise.all([fetchDepartments(), fetchUserAbilities()]);
// const Departments:any[] = []

return <DepartmentSearch departments={Departments} abilities={abilities} />;


+ 1
- 1
src/components/ExcelFileImport/ExcelFileImportWrapper.tsx View File

@@ -1,7 +1,7 @@
import React from "react";
import { fetchProjects } from "@/app/api/projects";
import ExcelFileImport from "./ExcelFileImport";
import { getUserStaff } from "@/app/utils/commonUtil";
import { fetchUserStaff } from "@/app/utils/fetchUtil";

const ExcelFileImportWrapper: React.FC = async () => {



+ 2
- 2
src/components/GenerateCrossTeamChargeReport/GenerateCrossTeamChargeReportWrapper.tsx View File

@@ -2,7 +2,7 @@ import React from "react";
import GenerateCrossTeamChargeReportLoading from "./GenerateCrossTeamChargeReportLoading";
import GenerateCrossTeamChargeReport from "./GenerateCrossTeamChargeReport";
import { fetchTeam } from "@/app/api/team";
import { getUserStaff } from "@/app/utils/commonUtil";
import { fetchUserStaff } from "@/app/utils/fetchUtil";

interface SubComponents {
Loading: typeof GenerateCrossTeamChargeReportLoading;
@@ -10,7 +10,7 @@ interface SubComponents {

const GenerateCrossTeamChargeReportWrapper: React.FC & SubComponents = async () => {

const [teams, userStaff] = await Promise.all([fetchTeam(), getUserStaff()])
const [teams, userStaff] = await Promise.all([fetchTeam(), fetchUserStaff()])

return <GenerateCrossTeamChargeReport teams={!Boolean(userStaff?.isTeamLead) ? teams : teams.filter(team => team.id === userStaff?.teamId)} userStaff={userStaff}/>;
};


+ 2
- 2
src/components/GenerateProjectCashFlowReport/GenerateProjectCashFlowReportWrapper.tsx View File

@@ -2,7 +2,7 @@ import React from "react";
import GenerateProjectCashFlowReportLoading from "./GenerateProjectCashFlowReportLoading";
import { fetchProjects } from "@/app/api/projects";
import GenerateProjectCashFlowReport from "./GenerateProjectCashFlowReport";
import { getUserStaff } from "@/app/utils/commonUtil";
import { fetchUserStaff } from "@/app/utils/fetchUtil";

interface SubComponents {
Loading: typeof GenerateProjectCashFlowReportLoading;
@@ -10,7 +10,7 @@ interface SubComponents {

const GenerateProjectCashFlowReportWrapper: React.FC & SubComponents = async () => {
const projects = await fetchProjects();
const staff = await getUserStaff()
const staff = await fetchUserStaff()

return <GenerateProjectCashFlowReport projects={staff?.teamId ? projects.filter(project => project.teamId === staff.teamId) : projects} />;
};


+ 2
- 2
src/components/GenerateProjectPandLReport/GenerateProjectPandLReportWrapper.tsx View File

@@ -2,14 +2,14 @@ import React from "react";
import GenerateProjectPandLReportLoading from "./GenerateProjectPandLReportLoading";
import { fetchProjects } from "@/app/api/projects";
import GenerateProjectPandLReport from "./GenerateProjectPandLReport";
import { getUserStaff } from "@/app/utils/commonUtil";
import { fetchUserStaff } from "@/app/utils/fetchUtil";

interface SubComponents {
Loading: typeof GenerateProjectPandLReportLoading;
}

const GenerateProjectPandLReportWrapper: React.FC & SubComponents = async () => {
const [projects, userStaff] = await Promise.all([fetchProjects(), getUserStaff()]);
const [projects, userStaff] = await Promise.all([fetchProjects(), fetchUserStaff()]);

return <GenerateProjectPandLReport projects={userStaff?.teamId ? projects.filter(project => project.teamId === userStaff.teamId) : projects}/>;
};


+ 2
- 2
src/components/GenerateProjectPotentialDelayReport/GenerateProjectPotentialDelayReportWrapper.tsx View File

@@ -4,14 +4,14 @@ import GenerateProjectPotentialDelayReport from "./GenerateProjectPotentialDelay
import { fetchTeam } from "@/app/api/team";
import { fetchAllCustomers } from "@/app/api/customer";
import { fetchAllSubsidiaries } from "@/app/api/subsidiary";
import { getUserStaff } from "@/app/utils/commonUtil";
import { fetchUserStaff } from "@/app/utils/fetchUtil";

interface SubComponents {
Loading: typeof GenerateProjectPotentialDelayReportLoading;
}

const GenerateProjectPotentialDelayReportWrapper: React.FC & SubComponents = async () => {
const [teams, clients, subsidiaries, userStaff] = await Promise.all([fetchTeam(), fetchAllCustomers(), fetchAllSubsidiaries(), getUserStaff()])
const [teams, clients, subsidiaries, userStaff] = await Promise.all([fetchTeam(), fetchAllCustomers(), fetchAllSubsidiaries(), fetchUserStaff()])

return <GenerateProjectPotentialDelayReport teams={!Boolean(userStaff?.isTeamLead) ? teams : teams.filter(team => team.id === userStaff?.teamId)} clients={clients} subsidiaries={subsidiaries} userStaff={userStaff}/>;
};


+ 2
- 2
src/components/MailSetting/MailSettingWrapper.tsx View File

@@ -1,4 +1,4 @@
import { getUserAbilities } from "@/app/utils/commonUtil";
import { fetchUserAbilities } from "@/app/utils/fetchUtil";
import MailSetting from "./MailSetting";
import MailSettingLoading from "./MailSettingLoading";
import { MailTemplate, fetchMailSetting, fetchMailTimesheetTemplate } from "@/app/api/mail";
@@ -13,7 +13,7 @@ const MailSettingWrapper: React.FC & SubComponents = async () => {
settings,
timesheetTemplate,
] = await Promise.all([
getUserAbilities(),
fetchUserAbilities(),
fetchMailSetting(),
fetchMailTimesheetTemplate()
]);


+ 2
- 2
src/components/PositionSearch/PositionSearchWrapper.tsx View File

@@ -3,14 +3,14 @@ import React from "react";
import PositionSearch from "./PositionSearch";
import PositionSearchLoading from "./PositionSearchLoading";
import { fetchPositions } from "@/app/api/positions";
import { getUserAbilities } from "@/app/utils/commonUtil";
import { fetchUserAbilities } from "@/app/utils/fetchUtil";

interface SubComponents {
Loading: typeof PositionSearchLoading;
}

const PositionSearchWrapper: React.FC & SubComponents = async () => {
const [Positions, abilities] = await Promise.all([fetchPositions(), getUserAbilities()]);
const [Positions, abilities] = await Promise.all([fetchPositions(), fetchUserAbilities()]);
// const Positions:any[] = []

return <PositionSearch positions={Positions} abilities={abilities}/>;


+ 2
- 2
src/components/ProjectSearch/ProjectSearchWrapper.tsx View File

@@ -2,7 +2,7 @@ import { fetchProjectCategories, fetchProjects } from "@/app/api/projects";
import React from "react";
import ProjectSearch from "./ProjectSearch";
import ProjectSearchLoading from "./ProjectSearchLoading";
import { getUserAbilities } from "@/app/utils/commonUtil";
import { fetchUserAbilities } from "@/app/utils/fetchUtil";

interface SubComponents {
Loading: typeof ProjectSearchLoading;
@@ -12,7 +12,7 @@ const ProjectSearchWrapper: React.FC & SubComponents = async () => {
const projectCategories = await fetchProjectCategories();
const projects = await fetchProjects();

const abilities = await getUserAbilities()
const abilities = await fetchUserAbilities()

return <ProjectSearch projects={projects} projectCategories={projectCategories} abilities={abilities}/>;
};


+ 2
- 2
src/components/Report/FinancialStatusReportGen/FinancialStatusReportGenWrapper.tsx View File

@@ -3,7 +3,7 @@ import { fetchProjectsFinancialStatus, fetchTeamCombo } from "@/app/api/reporte1
import React from "react";
import FinancialStatusReportGen from "./FinancialStatusReportGen";
import FinancialStatusReportGenLoading from "./FinancialStatusReportGenLoading";
import { getUserStaff } from "@/app/utils/commonUtil";
import { fetchUserStaff } from "@/app/utils/fetchUtil";

interface SubComponents {
Loading: typeof FinancialStatusReportGenLoading;
@@ -12,7 +12,7 @@ interface SubComponents {
const FinancialStatusReportGenWrapper: React.FC & SubComponents = async () => {
const clentprojects = await fetchProjectsFinancialStatus();

const [teamCombo, userStaff] = await Promise.all([fetchTeamCombo(), getUserStaff()])
const [teamCombo, userStaff] = await Promise.all([fetchTeamCombo(), fetchUserStaff()])

return <FinancialStatusReportGen projects={clentprojects} userStaff={userStaff} teamCombo={!Boolean(userStaff?.isTeamLead) ? teamCombo : teamCombo.filter(team => team.id === userStaff?.teamId)}/>;
};


+ 2
- 2
src/components/Report/LateStartReportGen/LateStartReportGenWrapper.tsx View File

@@ -4,7 +4,7 @@ import LateStartReportGen from "./LateStartReportGen";
import LateStartReportGenLoading from "./LateStartReportGenLoading";
import { fetchAllCustomers } from "@/app/api/customer";
import { fetchAllSubsidiaries } from "@/app/api/subsidiary";
import { getUserStaff } from "@/app/utils/commonUtil";
import { fetchUserStaff } from "@/app/utils/fetchUtil";
import { fetchTeam } from "@/app/api/team";

interface SubComponents {
@@ -16,7 +16,7 @@ const LateStartReportGenWrapper: React.FC & SubComponents = async () => {
fetchProjectsLateStart(),
fetchAllCustomers(),
fetchAllSubsidiaries(),
getUserStaff(),
fetchUserStaff(),
fetchTeam(),
]);



+ 2
- 2
src/components/SalarySearch/SalarySearchWrapper.tsx View File

@@ -3,7 +3,7 @@ import React from "react";
import SalarySearch from "./SalarySearch";
import SalarySearchLoading from "./SalarySearchLoading";
import { fetchSalarys } from "@/app/api/salarys";
import { getUserAbilities } from "@/app/utils/commonUtil";
import { fetchUserAbilities } from "@/app/utils/fetchUtil";

interface SubComponents {
Loading: typeof SalarySearchLoading;
@@ -15,7 +15,7 @@ interface SubComponents {
// }

const SalarySearchWrapper: React.FC & SubComponents = async () => {
const [Salarys, abilities] = await Promise.all([fetchSalarys(), getUserAbilities()]);
const [Salarys, abilities] = await Promise.all([fetchSalarys(), fetchUserAbilities()]);
// const Salarys:any[] = []
const salarysWithHourlyRate = Salarys.map((salary) => {
// const hourlyRate = calculateHourlyRate(Number(salary.lowerLimit), Number(salary.upperLimit),22, 8)


+ 2
- 2
src/components/SkillSearch/SkillSearchWrapper.tsx View File

@@ -2,14 +2,14 @@ import React from "react";
import SkillSearch from "./SkillSearch";
import SkillSearchLoading from "./SkillSearchLoading";
import { fetchSkill } from "@/app/api/skill";
import { getUserAbilities } from "@/app/utils/commonUtil";
import { fetchUserAbilities } from "@/app/utils/fetchUtil";

interface SubComponents {
Loading: typeof SkillSearchLoading;
}

const SkillSearchWrapper: React.FC & SubComponents = async () => {
const [skill, abilities] = await Promise.all([fetchSkill(), getUserAbilities()])
const [skill, abilities] = await Promise.all([fetchSkill(), fetchUserAbilities()])

return <SkillSearch skill={skill} abilities={abilities}/>;
};


+ 3
- 3
src/components/StaffUtilization/StaffUtilizationWrapper.tsx View File

@@ -1,10 +1,10 @@
import { getUserAbilities, getUserStaff } from "@/app/utils/commonUtil";
import { fetchUserAbilities, fetchUserStaff } from "@/app/utils/fetchUtil";
import StaffUtilization from "./StaffUtilization";

const StaffUtilizationWrapper: React.FC = async () => {
const [abilities, staff] = await Promise.all([
getUserAbilities(),
getUserStaff(),
fetchUserAbilities(),
fetchUserStaff(),
]);

return (


+ 2
- 2
src/components/SubsidiarySearch/SubsidiarySearchWrapper.tsx View File

@@ -2,14 +2,14 @@ import React from "react";
import SubsidiarySearch from "./SubsidiarySearch";
import SubsidiarySearchLoading from "./SubsidiarySearchLoading";
import { fetchAllSubsidiaries } from "@/app/api/subsidiary";
import { getUserAbilities } from "@/app/utils/commonUtil";
import { fetchUserAbilities } from "@/app/utils/fetchUtil";

interface SubComponents {
Loading: typeof SubsidiarySearchLoading;
}

const SubsidiarySearchWrapper: React.FC & SubComponents = async () => {
const [subsidiaries, abilities] = await Promise.all([fetchAllSubsidiaries(), getUserAbilities()]);
const [subsidiaries, abilities] = await Promise.all([fetchAllSubsidiaries(), fetchUserAbilities()]);

return <SubsidiarySearch subsidiaries={subsidiaries} abilities={abilities} />;
};


+ 2
- 2
src/components/TeamSearch/TeamSearchWrapper.tsx View File

@@ -3,7 +3,7 @@ import React from "react";
import TeamSearch from "./TeamSearch";
import TeamSearchLoading from "./TeamSearchLoading";
import { fetchTeam } from "@/app/api/team";
import { getUserAbilities } from "@/app/utils/commonUtil";
import { fetchUserAbilities } from "@/app/utils/fetchUtil";
// import { preloadTeam } from "@/app/api/Team";

interface SubComponents {
@@ -11,7 +11,7 @@ interface SubComponents {
}

const TeamSearchWrapper: React.FC & SubComponents = async () => {
const [Team, abilities] = await Promise.all([fetchTeam(), getUserAbilities()]);
const [Team, abilities] = await Promise.all([fetchTeam(), fetchUserAbilities()]);
console.log(Team);

return <TeamSearch team={Team} abilities={abilities}/>;


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

@@ -11,7 +11,7 @@ import {
fetchTimesheets,
} from "@/app/api/timesheets";
import { fetchHolidays } from "@/app/api/holidays";
import { getUserAbilities, getUserStaff } from "@/app/utils/commonUtil";
import { fetchUserAbilities, fetchUserStaff } from "@/app/utils/fetchUtil";
import {
MAINTAIN_TIMESHEET_FAST_TIME_ENTRY,
MAINTAIN_NORMAL_STAFF_WORKSPACE,
@@ -41,8 +41,8 @@ const UserWorkspaceWrapper: React.FC = async () => {
fetchLeaves(),
fetchLeaveTypes(),
fetchHolidays(),
getUserAbilities(),
getUserStaff(),
fetchUserAbilities(),
fetchUserStaff(),
fetchAllTasks(),
]);



Loading…
Cancel
Save