import { fetchAllTasks, fetchTaskTemplates } from "@/app/api/tasks"; import CreateProject from "./CreateProject"; import { fetchMainProjects, fetchProjectBuildingTypes, fetchProjectCategories, fetchProjectContractTypes, fetchProjectDetails, fetchProjectFundingTypes, fetchProjectLocationTypes, fetchProjectServiceTypes, fetchProjectWorkNatures, } from "@/app/api/projects"; import { fetchStaff, fetchTeamLeads } from "@/app/api/staff"; import { fetchAllCustomers, fetchAllSubsidiaries, fetchCustomerTypes, } from "@/app/api/customer"; import { fetchGrades } from "@/app/api/grades"; import { fetchUserAbilities, fetchUserStaff } from "@/app/utils/fetchUtil"; type CreateProjectProps = { isEditMode: false; isSubProject?: boolean; draftId?: number; }; interface EditProjectProps { isEditMode: true; projectId?: string; isSubProject?: boolean; } type Props = CreateProjectProps | EditProjectProps; const CreateProjectWrapper: React.FC = async (props) => { const [ tasks, taskTemplates, projectCategories, teamLeads, allCustomers, allSubsidiaries, contractTypes, fundingTypes, locationTypes, serviceTypes, buildingTypes, workNatures, allStaffs, grades, customerTypes, abilities, ] = await Promise.all([ fetchAllTasks(), fetchTaskTemplates(), fetchProjectCategories(), fetchTeamLeads(), fetchAllCustomers(), fetchAllSubsidiaries(), fetchProjectContractTypes(), fetchProjectFundingTypes(), fetchProjectLocationTypes(), fetchProjectServiceTypes(), fetchProjectBuildingTypes(), fetchProjectWorkNatures(), fetchStaff(), fetchGrades(), fetchCustomerTypes(), fetchUserAbilities(), ]); const userStaff = await fetchUserStaff(); const teamId = userStaff?.teamId; var filteredTeamLeads = teamId ? teamLeads.filter( (teamLead) => teamLead.teamId === teamId, ) : teamLeads if (userStaff.id && userStaff.id == 1) { filteredTeamLeads = teamLeads.filter( (teamLead) => teamLead.teamId === teamId || teamLead.team == "ST", ) } const projectInfo = props.isEditMode ? await fetchProjectDetails(props.projectId!) : undefined; const mainProjects = Boolean(props.isSubProject) ? await fetchMainProjects() : undefined; return ( ); }; export default CreateProjectWrapper;