You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
1.5 KiB

  1. import React from "react";
  2. import CreateStaff, { comboItem } from "./CreateStaff";
  3. import CreateStaffLoading from "./CreateStaffLoading";
  4. import { fetchStaff, fetchTeamLeads } from "@/app/api/staff";
  5. import { useSearchParams } from "next/navigation";
  6. import { fetchTeamCombo } from "@/app/api/team/actions";
  7. import { fetchDepartmentCombo } from "@/app/api/departments/actions";
  8. import { fetchPositionCombo } from "@/app/api/positions/actions";
  9. import { fetchGradeCombo } from "@/app/api/grades/actions";
  10. import { fetchSkillCombo } from "@/app/api/skill/actions";
  11. import { fetchSalaryCombo } from "@/app/api/salarys/actions";
  12. import { fetchCompanyCombo } from "@/app/api/companys/actions";
  13. interface SubComponents {
  14. Loading: typeof CreateStaffLoading;
  15. }
  16. const CreateStaffWrapper: React.FC & SubComponents = async () => {
  17. const [
  18. CompanyCombo,
  19. TeamCombo,
  20. DepartmentCombo,
  21. PositionCombo,
  22. GradeCombo,
  23. SkillCombo,
  24. SalaryCombo,
  25. ] = await Promise.all([
  26. fetchCompanyCombo(),
  27. fetchTeamCombo(),
  28. fetchDepartmentCombo(),
  29. fetchPositionCombo(),
  30. fetchGradeCombo(),
  31. fetchSkillCombo(),
  32. fetchSalaryCombo(),
  33. ]);
  34. const combos: comboItem = {
  35. company: CompanyCombo.records,
  36. team: TeamCombo.records,
  37. department: DepartmentCombo.records,
  38. position: PositionCombo.records,
  39. grade: GradeCombo.records,
  40. skill: SkillCombo.records,
  41. salary: SalaryCombo.records,
  42. }
  43. return <CreateStaff combos={combos}/>;
  44. };
  45. CreateStaffWrapper.Loading = CreateStaffLoading;
  46. export default CreateStaffWrapper;