@gusto/embedded-react-sdk 0.57.2 → 0.57.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/components/Common/DateRangeFilter/DateRangeFilter.js +32 -32
  3. package/dist/components/Common/DateRangeFilter/DateRangeFilter.js.map +1 -1
  4. package/dist/components/Common/OnboardingStatusBadge/index.js.map +1 -1
  5. package/dist/components/Company/PaySchedule/management/AutoPilotDialog/AutoPilotDialog.js.map +1 -1
  6. package/dist/components/Company/PaySchedule/management/AutoPilotDialog/useAutoPilotDialog.js.map +1 -1
  7. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentCompensationStepPresentation.js +34 -14
  8. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentCompensationStepPresentation.js.map +1 -1
  9. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentDepartmentStepPresentation.js +106 -0
  10. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentDepartmentStepPresentation.js.map +1 -0
  11. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentEmployeeStepPresentation.js +136 -0
  12. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentEmployeeStepPresentation.js.map +1 -0
  13. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentScheduleStepPresentation.js +38 -20
  14. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentScheduleStepPresentation.js.map +1 -1
  15. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentTypeStepPresentation.js +78 -44
  16. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentTypeStepPresentation.js.map +1 -1
  17. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignment.js +45 -37
  18. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignment.js.map +1 -1
  19. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.js +244 -95
  20. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.js.map +1 -1
  21. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/departmentAccess.js +22 -0
  22. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/departmentAccess.js.map +1 -0
  23. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/employeeJob.js +13 -0
  24. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/employeeJob.js.map +1 -0
  25. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/payScheduleAssignmentStateMachine.js +48 -43
  26. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/payScheduleAssignmentStateMachine.js.map +1 -1
  27. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/scheduleLabel.js.map +1 -1
  28. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/useAssignableEmployees.js +57 -0
  29. package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/useAssignableEmployees.js.map +1 -0
  30. package/dist/components/Company/PaySchedule/management/PayScheduleCompensationOverviewPresentation.js.map +1 -1
  31. package/dist/components/Company/PaySchedule/management/PayScheduleDepartmentOverviewPresentation.js +83 -0
  32. package/dist/components/Company/PaySchedule/management/PayScheduleDepartmentOverviewPresentation.js.map +1 -0
  33. package/dist/components/Company/PaySchedule/management/PayScheduleEmployeeOverviewPresentation.js +84 -0
  34. package/dist/components/Company/PaySchedule/management/PayScheduleEmployeeOverviewPresentation.js.map +1 -0
  35. package/dist/components/Company/PaySchedule/management/PayScheduleManagementComponents.js.map +1 -1
  36. package/dist/components/Company/PaySchedule/management/PayScheduleOverview.js +109 -39
  37. package/dist/components/Company/PaySchedule/management/PayScheduleOverview.js.map +1 -1
  38. package/dist/components/Company/PaySchedule/management/PayScheduleOverviewPresentation.js.map +1 -1
  39. package/dist/components/Company/PaySchedule/management/payScheduleManagementStateMachine.js.map +1 -1
  40. package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.js.map +1 -1
  41. package/dist/components/Contractor/Address/shared/useContractorAddressForm/useContractorAddressForm.js +5 -5
  42. package/dist/components/Contractor/Address/shared/useContractorAddressForm/useContractorAddressForm.js.map +1 -1
  43. package/dist/components/Contractor/Address/shared/useContractorAddressSummary/useContractorAddressSummary.js +1 -1
  44. package/dist/components/Contractor/Address/shared/useContractorAddressSummary/useContractorAddressSummary.js.map +1 -1
  45. package/dist/components/Contractor/Compensation/shared/useContractorCompensationSummary/useContractorCompensationSummary.js +4 -4
  46. package/dist/components/Contractor/Compensation/shared/useContractorCompensationSummary/useContractorCompensationSummary.js.map +1 -1
  47. package/dist/components/Contractor/Compensation/shared/useContractorPayForm/useContractorPayForm.js +3 -3
  48. package/dist/components/Contractor/Compensation/shared/useContractorPayForm/useContractorPayForm.js.map +1 -1
  49. package/dist/components/Contractor/ContractorList/shared/useContractorList.js +6 -6
  50. package/dist/components/Contractor/ContractorList/shared/useContractorList.js.map +1 -1
  51. package/dist/components/Contractor/Dashboard/Dashboard.js +20 -20
  52. package/dist/components/Contractor/Dashboard/Dashboard.js.map +1 -1
  53. package/dist/components/Contractor/Dismissal/useDismissal/useDismissal.js +10 -10
  54. package/dist/components/Contractor/Dismissal/useDismissal/useDismissal.js.map +1 -1
  55. package/dist/components/Contractor/Landing/Landing.js +43 -39
  56. package/dist/components/Contractor/Landing/Landing.js.map +1 -1
  57. package/dist/components/Contractor/NewHireReport/NewHireReport.js +3 -3
  58. package/dist/components/Contractor/NewHireReport/NewHireReport.js.map +1 -1
  59. package/dist/components/Contractor/Payments/CreateHistoricalPayment/CreateHistoricalPayment.js +1 -1
  60. package/dist/components/Contractor/Payments/CreateHistoricalPayment/CreateHistoricalPayment.js.map +1 -1
  61. package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js +10 -10
  62. package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js.map +1 -1
  63. package/dist/components/Contractor/Payments/HistoricalPaymentSummary/HistoricalPaymentSummary.js +4 -4
  64. package/dist/components/Contractor/Payments/HistoricalPaymentSummary/HistoricalPaymentSummary.js.map +1 -1
  65. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistory.js +8 -8
  66. package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistory.js.map +1 -1
  67. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatement.js +5 -5
  68. package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatement.js.map +1 -1
  69. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummary.js +3 -3
  70. package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummary.js.map +1 -1
  71. package/dist/components/Contractor/Profile/onboarding/SelfOnboardingContractorProfile.js +1 -1
  72. package/dist/components/Contractor/Profile/onboarding/SelfOnboardingContractorProfile.js.map +1 -1
  73. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.js +1 -1
  74. package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.js.map +1 -1
  75. package/dist/components/Contractor/Profile/shared/useContractorProfileSummary/useContractorProfileSummary.js +1 -1
  76. package/dist/components/Contractor/Profile/shared/useContractorProfileSummary/useContractorProfileSummary.js.map +1 -1
  77. package/dist/components/Contractor/SelfOnboardingFlow/SelfOnboardingComponents.js +2 -9
  78. package/dist/components/Contractor/SelfOnboardingFlow/SelfOnboardingComponents.js.map +1 -1
  79. package/dist/components/Contractor/Submit/Submit.js +18 -18
  80. package/dist/components/Contractor/Submit/Submit.js.map +1 -1
  81. package/dist/components/Contractor/shared/SelectContractors/useSelectContractors.js +6 -6
  82. package/dist/components/Contractor/shared/SelectContractors/useSelectContractors.js.map +1 -1
  83. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js +25 -25
  84. package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js.map +1 -1
  85. package/dist/components/Employee/Compensation/shared/useCompensationManagement/useCompensationManagement.js +15 -15
  86. package/dist/components/Employee/Compensation/shared/useCompensationManagement/useCompensationManagement.js.map +1 -1
  87. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.js +1 -1
  88. package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.js.map +1 -1
  89. package/dist/components/Employee/Dashboard/Dashboard.js +25 -25
  90. package/dist/components/Employee/Dashboard/Dashboard.js.map +1 -1
  91. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentSigner.js +7 -7
  92. package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentSigner.js.map +1 -1
  93. package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocuments.js +1 -1
  94. package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocuments.js.map +1 -1
  95. package/dist/components/Employee/HomeAddress/management/useHomeAddressManagement.js +6 -6
  96. package/dist/components/Employee/HomeAddress/management/useHomeAddressManagement.js.map +1 -1
  97. package/dist/components/Employee/Landing/Landing.js +37 -33
  98. package/dist/components/Employee/Landing/Landing.js.map +1 -1
  99. package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js +27 -27
  100. package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js.map +1 -1
  101. package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/useEmployeeDetailsForm.js +6 -6
  102. package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/useEmployeeDetailsForm.js.map +1 -1
  103. package/dist/components/Employee/Profile/shared/useEmployeeProfileSummary/useEmployeeProfileSummary.js +1 -1
  104. package/dist/components/Employee/Profile/shared/useEmployeeProfileSummary/useEmployeeProfileSummary.js.map +1 -1
  105. package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingComponents.js +8 -15
  106. package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingComponents.js.map +1 -1
  107. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.js +11 -11
  108. package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.js.map +1 -1
  109. package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummary.js +12 -12
  110. package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummary.js.map +1 -1
  111. package/dist/components/Employee/WorkAddress/management/useWorkAddressManagement.js +26 -26
  112. package/dist/components/Employee/WorkAddress/management/useWorkAddressManagement.js.map +1 -1
  113. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js +66 -64
  114. package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
  115. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js +1 -1
  116. package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js.map +1 -1
  117. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js +6 -6
  118. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js.map +1 -1
  119. package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
  120. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/usePayrollEditEmployeeForm.js +1 -1
  121. package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/usePayrollEditEmployeeForm.js.map +1 -1
  122. package/dist/components/Payroll/PayrollHistory/PayrollHistory.js.map +1 -1
  123. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js +6 -6
  124. package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
  125. package/dist/components/Payroll/PayrollList/PayrollList.js.map +1 -1
  126. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +9 -9
  127. package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
  128. package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
  129. package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
  130. package/dist/components/Payroll/helpers.js +1 -1
  131. package/dist/components/Payroll/helpers.js.map +1 -1
  132. package/dist/components/Payroll/payrollTypes.js +1 -1
  133. package/dist/components/Payroll/payrollTypes.js.map +1 -1
  134. package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
  135. package/dist/contexts/ApiProvider/payrollOffCycleReasonEnumHook.js +1 -1
  136. package/dist/contexts/ApiProvider/payrollOffCycleReasonEnumHook.js.map +1 -1
  137. package/dist/i18n/en/Company.Management.PaySchedule.json.js +31 -13
  138. package/dist/i18n/en/Company.Management.PaySchedule.json.js.map +1 -1
  139. package/dist/i18n/en/Company.Management.PayScheduleAssignment.json.js +20 -12
  140. package/dist/i18n/en/Company.Management.PayScheduleAssignment.json.js.map +1 -1
  141. package/dist/i18n/en/Payroll.PayrollHistory.json.js +1 -1
  142. package/dist/i18n/en/Payroll.PayrollList.json.js +5 -5
  143. package/dist/package.json.js +1 -1
  144. package/dist/shared/constants.js +5 -5
  145. package/dist/shared/constants.js.map +1 -1
  146. package/dist/src/components/Common/DateRangeFilter/DateRangeFilter.d.ts +2 -2
  147. package/dist/src/components/Common/OnboardingStatusBadge/index.d.ts +1 -1
  148. package/dist/src/components/Company/PaySchedule/management/AutoPilotDialog/AutoPilotDialog.d.ts +1 -1
  149. package/dist/src/components/Company/PaySchedule/management/AutoPilotDialog/useAutoPilotDialog.d.ts +1 -1
  150. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentCompensationStepPresentation.d.ts +10 -3
  151. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentDepartmentStepPresentation.d.ts +21 -0
  152. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentEmployeeStepPresentation.d.ts +34 -0
  153. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentScheduleStepPresentation.d.ts +9 -3
  154. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentTypeStepPresentation.d.ts +5 -1
  155. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignment.d.ts +10 -10
  156. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.d.ts +12 -4
  157. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/departmentAccess.d.ts +19 -0
  158. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/employeeJob.d.ts +17 -0
  159. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/scheduleLabel.d.ts +1 -1
  160. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/useAssignableEmployees.d.ts +34 -0
  161. package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/usePayScheduleAssignment.d.ts +16 -3
  162. package/dist/src/components/Company/PaySchedule/management/PayScheduleCompensationOverviewPresentation.d.ts +1 -1
  163. package/dist/src/components/Company/PaySchedule/management/PayScheduleDepartmentOverviewPresentation.d.ts +23 -0
  164. package/dist/src/components/Company/PaySchedule/management/PayScheduleEmployeeOverviewPresentation.d.ts +25 -0
  165. package/dist/src/components/Company/PaySchedule/management/PayScheduleManagementComponents.d.ts +1 -1
  166. package/dist/src/components/Company/PaySchedule/management/PayScheduleOverviewPresentation.d.ts +1 -1
  167. package/dist/src/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.d.ts +1 -1
  168. package/dist/src/components/Contractor/Landing/Landing.d.ts +5 -2
  169. package/dist/src/components/Employee/Landing/Landing.d.ts +5 -2
  170. package/dist/src/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.d.ts +1 -1
  171. package/dist/src/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.d.ts +1 -1
  172. package/dist/src/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.d.ts +1 -1
  173. package/dist/src/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/usePayrollEditEmployeeForm.d.ts +2 -2
  174. package/dist/src/components/Payroll/PayrollHistory/PayrollHistoryPresentation.d.ts +1 -1
  175. package/dist/src/components/Payroll/PayrollList/PayrollListPresentation.d.ts +2 -2
  176. package/dist/src/components/Payroll/PayrollOverview/PayrollOverviewPresentation.d.ts +1 -1
  177. package/dist/src/components/Payroll/helpers.d.ts +2 -2
  178. package/dist/src/components/Payroll/usePreparedPayrollData.d.ts +2 -2
  179. package/dist/src/i18n/types.d.ts +82 -4
  180. package/dist/src/models/external.d.ts +63 -48
  181. package/dist/src/shared/constants.d.ts +1 -1
  182. package/docs/guides/endpoint-inventory.json +33 -13
  183. package/package.json +18 -18
@@ -6,15 +6,15 @@ function c({
6
6
  const t = i(
7
7
  { contractorUuid: n },
8
8
  { staleTime: 1 / 0 }
9
- ), r = a([t]), o = t.data?.contractor;
10
- return t.isLoading || !o ? { isLoading: !0, errorHandling: r } : {
9
+ ), o = a([t]), r = t.data?.contractorShow;
10
+ return t.isLoading || !r ? { isLoading: !0, errorHandling: o } : {
11
11
  isLoading: !1,
12
- data: { contractor: o },
12
+ data: { contractor: r },
13
13
  status: {
14
14
  isFetching: t.isFetching,
15
15
  isPending: !1
16
16
  },
17
- errorHandling: r
17
+ errorHandling: o
18
18
  };
19
19
  }
20
20
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"useContractorCompensationSummary.js","sources":["../../../../../../src/components/Contractor/Compensation/shared/useContractorCompensationSummary/useContractorCompensationSummary.tsx"],"sourcesContent":["import { useContractorsGet } from '@gusto/embedded-api/react-query/contractorsGet'\nimport type { Contractor } from '@gusto/embedded-api/models/components/contractor'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport type { BaseHookReady, HookLoadingResult } from '@/partner-hook-utils/types'\n\n/** @internal */\nexport interface UseContractorCompensationSummaryParams {\n contractorId: string\n}\n\ntype UseContractorCompensationSummaryReady = BaseHookReady<\n { contractor: Contractor },\n { isFetching: boolean; isPending: boolean }\n>\n\n/** @internal */\nexport type UseContractorCompensationSummaryResult =\n HookLoadingResult | UseContractorCompensationSummaryReady\n\n/** @internal */\nexport function useContractorCompensationSummary({\n contractorId,\n}: UseContractorCompensationSummaryParams): UseContractorCompensationSummaryResult {\n const contractorQuery = useContractorsGet(\n { contractorUuid: contractorId },\n { staleTime: Infinity },\n )\n\n const errorHandling = composeErrorHandler([contractorQuery])\n\n const contractor = contractorQuery.data?.contractor\n\n if (contractorQuery.isLoading || !contractor) {\n return { isLoading: true, errorHandling }\n }\n\n return {\n isLoading: false,\n data: { contractor },\n status: {\n isFetching: contractorQuery.isFetching,\n isPending: false,\n },\n errorHandling,\n }\n}\n"],"names":["useContractorCompensationSummary","contractorId","contractorQuery","useContractorsGet","errorHandling","composeErrorHandler","contractor"],"mappings":";;AAoBO,SAASA,EAAiC;AAAA,EAC/C,cAAAC;AACF,GAAmF;AACjF,QAAMC,IAAkBC;AAAA,IACtB,EAAE,gBAAgBF,EAAA;AAAA,IAClB,EAAE,WAAW,MAAA;AAAA,EAAS,GAGlBG,IAAgBC,EAAoB,CAACH,CAAe,CAAC,GAErDI,IAAaJ,EAAgB,MAAM;AAEzC,SAAIA,EAAgB,aAAa,CAACI,IACzB,EAAE,WAAW,IAAM,eAAAF,EAAA,IAGrB;AAAA,IACL,WAAW;AAAA,IACX,MAAM,EAAE,YAAAE,EAAA;AAAA,IACR,QAAQ;AAAA,MACN,YAAYJ,EAAgB;AAAA,MAC5B,WAAW;AAAA,IAAA;AAAA,IAEb,eAAAE;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"useContractorCompensationSummary.js","sources":["../../../../../../src/components/Contractor/Compensation/shared/useContractorCompensationSummary/useContractorCompensationSummary.tsx"],"sourcesContent":["import { useContractorsGet } from '@gusto/embedded-api/react-query/contractorsGet'\nimport type { Contractor } from '@gusto/embedded-api/models/components/contractor'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport type { BaseHookReady, HookLoadingResult } from '@/partner-hook-utils/types'\n\n/** @internal */\nexport interface UseContractorCompensationSummaryParams {\n contractorId: string\n}\n\ntype UseContractorCompensationSummaryReady = BaseHookReady<\n { contractor: Contractor },\n { isFetching: boolean; isPending: boolean }\n>\n\n/** @internal */\nexport type UseContractorCompensationSummaryResult =\n HookLoadingResult | UseContractorCompensationSummaryReady\n\n/** @internal */\nexport function useContractorCompensationSummary({\n contractorId,\n}: UseContractorCompensationSummaryParams): UseContractorCompensationSummaryResult {\n const contractorQuery = useContractorsGet(\n { contractorUuid: contractorId },\n { staleTime: Infinity },\n )\n\n const errorHandling = composeErrorHandler([contractorQuery])\n\n const contractor = contractorQuery.data?.contractorShow\n\n if (contractorQuery.isLoading || !contractor) {\n return { isLoading: true, errorHandling }\n }\n\n return {\n isLoading: false,\n data: { contractor },\n status: {\n isFetching: contractorQuery.isFetching,\n isPending: false,\n },\n errorHandling,\n }\n}\n"],"names":["useContractorCompensationSummary","contractorId","contractorQuery","useContractorsGet","errorHandling","composeErrorHandler","contractor"],"mappings":";;AAoBO,SAASA,EAAiC;AAAA,EAC/C,cAAAC;AACF,GAAmF;AACjF,QAAMC,IAAkBC;AAAA,IACtB,EAAE,gBAAgBF,EAAA;AAAA,IAClB,EAAE,WAAW,MAAA;AAAA,EAAS,GAGlBG,IAAgBC,EAAoB,CAACH,CAAe,CAAC,GAErDI,IAAaJ,EAAgB,MAAM;AAEzC,SAAIA,EAAgB,aAAa,CAACI,IACzB,EAAE,WAAW,IAAM,eAAAF,EAAA,IAGrB;AAAA,IACL,WAAW;AAAA,IACX,MAAM,EAAE,YAAAE,EAAA;AAAA,IACR,QAAQ;AAAA,MACN,YAAYJ,EAAgB;AAAA,MAC5B,WAAW;AAAA,IAAA;AAAA,IAEb,eAAAE;AAAA,EAAA;AAEJ;"}
@@ -24,7 +24,7 @@ function st({
24
24
  validationMode: n = "onSubmit",
25
25
  shouldFocusError: a = !0
26
26
  }) {
27
- const s = D({ contractorUuid: e }), t = s.data?.contractor, [u, w] = f(() => k(), []), c = f(
27
+ const s = D({ contractorUuid: e }), t = s.data?.contractorShow, [u, w] = f(() => k(), []), c = f(
28
28
  () => ({
29
29
  wageType: t?.wageType ?? o.Fixed,
30
30
  hourlyRate: t?.hourlyRate ? Number(t.hourlyRate) : 0
@@ -41,7 +41,7 @@ function st({
41
41
  baseSubmitHandler: F,
42
42
  error: T,
43
43
  setError: R
44
- } = A("ContractorPayForm"), d = z([s], { submitError: T, setSubmitError: R }), H = q(w, r.control), S = K(H), C = async () => {
44
+ } = A("ContractorPayForm"), d = z([s], { submitError: T, setSubmitError: R }), S = q(w, r.control), H = K(S), C = async () => {
45
45
  if (!t?.version)
46
46
  throw new g("Cannot submit pay form before contractor data is loaded");
47
47
  const M = t.version, P = t.type;
@@ -83,7 +83,7 @@ function st({
83
83
  WageType: O,
84
84
  HourlyRate: L
85
85
  },
86
- fieldsMetadata: S,
86
+ fieldsMetadata: H,
87
87
  hookFormInternals: v,
88
88
  getFormSubmissionValues: G(r, u)
89
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useContractorPayForm.js","sources":["../../../../../../src/components/Contractor/Compensation/shared/useContractorPayForm/useContractorPayForm.tsx"],"sourcesContent":["import type { ComponentType } from 'react'\nimport { useMemo } from 'react'\nimport { useForm, useWatch } from 'react-hook-form'\nimport type { UseFormProps } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport type { Contractor } from '@gusto/embedded-api/models/components/contractor'\nimport { useContractorsGet } from '@gusto/embedded-api/react-query/contractorsGet'\nimport { useContractorsUpdateMutation } from '@gusto/embedded-api/react-query/contractorsUpdate'\nimport {\n createContractorPaySchema,\n WageType,\n type ContractorPayFormData,\n type ContractorPayFormOutputs,\n} from './contractorPaySchema'\nimport type { WageTypeFieldProps, HourlyRateFieldProps } from './fields'\nimport { WageTypeField, HourlyRateField } from './fields'\nimport { useDeriveFieldsMetadata } from '@/partner-hook-utils/form/useDeriveFieldsMetadata'\nimport { useHookFormInternals } from '@/partner-hook-utils/form/useHookFormInternals'\nimport { createGetFormSubmissionValues } from '@/partner-hook-utils/form/getFormSubmissionValues'\nimport { withOptions } from '@/partner-hook-utils/form/withOptions'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport type {\n BaseFormHookReady,\n FieldMetadata,\n FieldsMetadata,\n HookLoadingResult,\n HookSubmitResult,\n} from '@/partner-hook-utils/types'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { SDKInternalError } from '@/types/sdkError'\n\n/**\n * Props for {@link useContractorPayForm}.\n *\n * @public\n */\nexport interface UseContractorPayFormProps {\n /** Contractor whose compensation is being edited. */\n contractorId: string\n /** When validation runs. Passed through to react-hook-form. Defaults to `'onSubmit'`. */\n validationMode?: UseFormProps['mode']\n /** Auto-focus the first invalid field on submit. Set to `false` when using `composeSubmitHandler`. Defaults to `true`. */\n shouldFocusError?: boolean\n}\n\n/**\n * Field components exposed by {@link useContractorPayForm} on `form.Fields`.\n *\n * @public\n */\nexport interface ContractorPayFormFields {\n /** Bound to `wageType`. Selects whether the contractor is paid Fixed or Hourly. */\n WageType: ComponentType<WageTypeFieldProps>\n /** Bound to `hourlyRate`. Required and rendered only when `wageType` is `Hourly`. */\n HourlyRate: ComponentType<HourlyRateFieldProps>\n}\n\n/**\n * Ready-state return value of {@link useContractorPayForm}.\n *\n * @public\n */\nexport interface UseContractorPayFormReady extends BaseFormHookReady<\n ContractorPayFieldsMetadata,\n ContractorPayFormData,\n ContractorPayFormFields\n> {\n /** The full contractor entity, loaded from the API. */\n data: { contractor: Contractor }\n /**\n * `isPending` reflects the in-flight update mutation; `mode` is always\n * `'update'`. `isHourly` reflects the currently selected wage type so a\n * composing component can decide whether to render the hourly-rate field.\n */\n status: { isPending: boolean; mode: 'update'; isHourly: boolean }\n /** Submit the form. Returns the updated contractor on success or `undefined` on validation/mutation failure. */\n actions: {\n onSubmit: () => Promise<HookSubmitResult<Contractor> | undefined>\n }\n}\n\n/** @internal */\nfunction buildContractorPayFieldsMetadata(\n base: Record<keyof ContractorPayFormData, FieldMetadata>,\n) {\n const wageTypeOptions = [WageType.Fixed, WageType.Hourly].map(value => ({ value, label: value }))\n return {\n wageType: withOptions(base.wageType, wageTypeOptions, [WageType.Fixed, WageType.Hourly]),\n hourlyRate: base.hourlyRate,\n } satisfies FieldsMetadata\n}\n\n/**\n * Headless React Hook Form hook for editing a contractor's compensation.\n *\n * @remarks\n * Owns `wageType` (Fixed or Hourly) and, when Hourly, `hourlyRate`. Always\n * operates in update mode — a contractor's wage type is set at creation. Every\n * submit echoes the contractor's current `type` back to the API alongside the\n * changed fields: the update endpoint's wire schema defaults an omitted `type`\n * to `\"Individual\"`, so a narrower payload would silently misrepresent a\n * Business contractor.\n *\n * @param props - See {@link UseContractorPayFormProps}.\n * @returns A loading-state result while data loads, or a {@link UseContractorPayFormReady} once ready.\n * @public\n *\n * @example\n * ```tsx\n * import { useContractorPayForm, SDKFormProvider } from '@gusto/embedded-react-sdk'\n *\n * function PayScreen({ contractorId }: { contractorId: string }) {\n * const pay = useContractorPayForm({ contractorId })\n *\n * if (pay.isLoading) return null\n * const { Fields } = pay.form\n *\n * return (\n * <SDKFormProvider formHookResult={pay}>\n * <form\n * onSubmit={e => {\n * e.preventDefault()\n * void pay.actions.onSubmit()\n * }}\n * >\n * <Fields.WageType label=\"Compensation type\" />\n * <Fields.HourlyRate label=\"Hourly rate\" />\n * <button type=\"submit\" disabled={pay.status.isPending}>Save</button>\n * </form>\n * </SDKFormProvider>\n * )\n * }\n * ```\n */\nexport function useContractorPayForm({\n contractorId,\n validationMode = 'onSubmit',\n shouldFocusError = true,\n}: UseContractorPayFormProps): HookLoadingResult | UseContractorPayFormReady {\n const contractorQuery = useContractorsGet({ contractorUuid: contractorId })\n const contractor = contractorQuery.data?.contractor\n\n const [schema, metadataConfig] = useMemo(() => createContractorPaySchema(), [])\n\n const resolvedDefaults: ContractorPayFormData = useMemo(\n () => ({\n wageType: contractor?.wageType ?? WageType.Fixed,\n hourlyRate: contractor?.hourlyRate ? Number(contractor.hourlyRate) : 0,\n }),\n [contractor],\n )\n\n const formMethods = useForm<ContractorPayFormData, unknown, ContractorPayFormOutputs>({\n resolver: zodResolver(schema),\n mode: validationMode,\n shouldFocusError,\n defaultValues: resolvedDefaults,\n values: resolvedDefaults,\n resetOptions: { keepDirtyValues: true },\n })\n\n const watchedWageType = useWatch({ control: formMethods.control, name: 'wageType' })\n const isHourly = watchedWageType === WageType.Hourly\n\n const updateMutation = useContractorsUpdateMutation()\n const isPending = updateMutation.isPending\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('ContractorPayForm')\n\n const errorHandling = composeErrorHandler([contractorQuery], { submitError, setSubmitError })\n\n const baseMetadata = useDeriveFieldsMetadata(metadataConfig, formMethods.control)\n const fieldsMetadata = buildContractorPayFieldsMetadata(baseMetadata)\n\n const onSubmit = async (): Promise<HookSubmitResult<Contractor> | undefined> => {\n if (!contractor?.version) {\n throw new SDKInternalError('Cannot submit pay form before contractor data is loaded')\n }\n const contractorVersion = contractor.version\n const contractorType = contractor.type\n let submitResult: HookSubmitResult<Contractor> | undefined\n\n await new Promise<void>(resolve => {\n void formMethods.handleSubmit(\n async (data: ContractorPayFormOutputs) => {\n await baseSubmitHandler(data, async payload => {\n const result = await updateMutation.mutateAsync({\n request: {\n contractorUuid: contractorId,\n contractorUpdateRequestBody: {\n version: contractorVersion,\n type: contractorType,\n wageType: payload.wageType,\n hourlyRate:\n payload.wageType === WageType.Hourly ? String(payload.hourlyRate) : undefined,\n },\n },\n })\n\n if (!result.contractor) {\n throw new SDKInternalError('Contractor pay update failed')\n }\n\n submitResult = { mode: 'update' as const, data: result.contractor }\n })\n resolve()\n },\n () => {\n resolve()\n },\n )()\n })\n\n return submitResult\n }\n\n const hookFormInternals = useHookFormInternals(formMethods)\n\n if (contractorQuery.isLoading || !contractor) {\n return { isLoading: true as const, errorHandling }\n }\n\n return {\n isLoading: false as const,\n data: { contractor },\n status: { isPending, mode: 'update' as const, isHourly },\n actions: { onSubmit },\n errorHandling,\n form: {\n Fields: {\n WageType: WageTypeField,\n HourlyRate: HourlyRateField,\n },\n fieldsMetadata,\n hookFormInternals,\n getFormSubmissionValues: createGetFormSubmissionValues(formMethods, schema),\n },\n }\n}\n\n/**\n * Return type of {@link useContractorPayForm} — a discriminated union on `isLoading`.\n *\n * @public\n */\nexport type UseContractorPayFormResult = HookLoadingResult | UseContractorPayFormReady\n\n/**\n * Per-field metadata exposed on `form.fieldsMetadata` for {@link useContractorPayForm}.\n *\n * @public\n */\nexport type ContractorPayFieldsMetadata = ReturnType<typeof buildContractorPayFieldsMetadata>\n"],"names":["buildContractorPayFieldsMetadata","base","wageTypeOptions","WageType","value","withOptions","useContractorPayForm","contractorId","validationMode","shouldFocusError","contractorQuery","useContractorsGet","contractor","schema","metadataConfig","useMemo","createContractorPaySchema","resolvedDefaults","formMethods","useForm","zodResolver","isHourly","useWatch","updateMutation","useContractorsUpdateMutation","isPending","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","errorHandling","composeErrorHandler","baseMetadata","useDeriveFieldsMetadata","fieldsMetadata","onSubmit","SDKInternalError","contractorVersion","contractorType","submitResult","resolve","data","payload","result","hookFormInternals","useHookFormInternals","WageTypeField","HourlyRateField","createGetFormSubmissionValues"],"mappings":"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"}
1
+ {"version":3,"file":"useContractorPayForm.js","sources":["../../../../../../src/components/Contractor/Compensation/shared/useContractorPayForm/useContractorPayForm.tsx"],"sourcesContent":["import type { ComponentType } from 'react'\nimport { useMemo } from 'react'\nimport { useForm, useWatch } from 'react-hook-form'\nimport type { UseFormProps } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport type { Contractor } from '@gusto/embedded-api/models/components/contractor'\nimport { useContractorsGet } from '@gusto/embedded-api/react-query/contractorsGet'\nimport { useContractorsUpdateMutation } from '@gusto/embedded-api/react-query/contractorsUpdate'\nimport {\n createContractorPaySchema,\n WageType,\n type ContractorPayFormData,\n type ContractorPayFormOutputs,\n} from './contractorPaySchema'\nimport type { WageTypeFieldProps, HourlyRateFieldProps } from './fields'\nimport { WageTypeField, HourlyRateField } from './fields'\nimport { useDeriveFieldsMetadata } from '@/partner-hook-utils/form/useDeriveFieldsMetadata'\nimport { useHookFormInternals } from '@/partner-hook-utils/form/useHookFormInternals'\nimport { createGetFormSubmissionValues } from '@/partner-hook-utils/form/getFormSubmissionValues'\nimport { withOptions } from '@/partner-hook-utils/form/withOptions'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport type {\n BaseFormHookReady,\n FieldMetadata,\n FieldsMetadata,\n HookLoadingResult,\n HookSubmitResult,\n} from '@/partner-hook-utils/types'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { SDKInternalError } from '@/types/sdkError'\n\n/**\n * Props for {@link useContractorPayForm}.\n *\n * @public\n */\nexport interface UseContractorPayFormProps {\n /** Contractor whose compensation is being edited. */\n contractorId: string\n /** When validation runs. Passed through to react-hook-form. Defaults to `'onSubmit'`. */\n validationMode?: UseFormProps['mode']\n /** Auto-focus the first invalid field on submit. Set to `false` when using `composeSubmitHandler`. Defaults to `true`. */\n shouldFocusError?: boolean\n}\n\n/**\n * Field components exposed by {@link useContractorPayForm} on `form.Fields`.\n *\n * @public\n */\nexport interface ContractorPayFormFields {\n /** Bound to `wageType`. Selects whether the contractor is paid Fixed or Hourly. */\n WageType: ComponentType<WageTypeFieldProps>\n /** Bound to `hourlyRate`. Required and rendered only when `wageType` is `Hourly`. */\n HourlyRate: ComponentType<HourlyRateFieldProps>\n}\n\n/**\n * Ready-state return value of {@link useContractorPayForm}.\n *\n * @public\n */\nexport interface UseContractorPayFormReady extends BaseFormHookReady<\n ContractorPayFieldsMetadata,\n ContractorPayFormData,\n ContractorPayFormFields\n> {\n /** The full contractor entity, loaded from the API. */\n data: { contractor: Contractor }\n /**\n * `isPending` reflects the in-flight update mutation; `mode` is always\n * `'update'`. `isHourly` reflects the currently selected wage type so a\n * composing component can decide whether to render the hourly-rate field.\n */\n status: { isPending: boolean; mode: 'update'; isHourly: boolean }\n /** Submit the form. Returns the updated contractor on success or `undefined` on validation/mutation failure. */\n actions: {\n onSubmit: () => Promise<HookSubmitResult<Contractor> | undefined>\n }\n}\n\n/** @internal */\nfunction buildContractorPayFieldsMetadata(\n base: Record<keyof ContractorPayFormData, FieldMetadata>,\n) {\n const wageTypeOptions = [WageType.Fixed, WageType.Hourly].map(value => ({ value, label: value }))\n return {\n wageType: withOptions(base.wageType, wageTypeOptions, [WageType.Fixed, WageType.Hourly]),\n hourlyRate: base.hourlyRate,\n } satisfies FieldsMetadata\n}\n\n/**\n * Headless React Hook Form hook for editing a contractor's compensation.\n *\n * @remarks\n * Owns `wageType` (Fixed or Hourly) and, when Hourly, `hourlyRate`. Always\n * operates in update mode — a contractor's wage type is set at creation. Every\n * submit echoes the contractor's current `type` back to the API alongside the\n * changed fields: the update endpoint's wire schema defaults an omitted `type`\n * to `\"Individual\"`, so a narrower payload would silently misrepresent a\n * Business contractor.\n *\n * @param props - See {@link UseContractorPayFormProps}.\n * @returns A loading-state result while data loads, or a {@link UseContractorPayFormReady} once ready.\n * @public\n *\n * @example\n * ```tsx\n * import { useContractorPayForm, SDKFormProvider } from '@gusto/embedded-react-sdk'\n *\n * function PayScreen({ contractorId }: { contractorId: string }) {\n * const pay = useContractorPayForm({ contractorId })\n *\n * if (pay.isLoading) return null\n * const { Fields } = pay.form\n *\n * return (\n * <SDKFormProvider formHookResult={pay}>\n * <form\n * onSubmit={e => {\n * e.preventDefault()\n * void pay.actions.onSubmit()\n * }}\n * >\n * <Fields.WageType label=\"Compensation type\" />\n * <Fields.HourlyRate label=\"Hourly rate\" />\n * <button type=\"submit\" disabled={pay.status.isPending}>Save</button>\n * </form>\n * </SDKFormProvider>\n * )\n * }\n * ```\n */\nexport function useContractorPayForm({\n contractorId,\n validationMode = 'onSubmit',\n shouldFocusError = true,\n}: UseContractorPayFormProps): HookLoadingResult | UseContractorPayFormReady {\n const contractorQuery = useContractorsGet({ contractorUuid: contractorId })\n const contractor = contractorQuery.data?.contractorShow\n\n const [schema, metadataConfig] = useMemo(() => createContractorPaySchema(), [])\n\n const resolvedDefaults: ContractorPayFormData = useMemo(\n () => ({\n wageType: contractor?.wageType ?? WageType.Fixed,\n hourlyRate: contractor?.hourlyRate ? Number(contractor.hourlyRate) : 0,\n }),\n [contractor],\n )\n\n const formMethods = useForm<ContractorPayFormData, unknown, ContractorPayFormOutputs>({\n resolver: zodResolver(schema),\n mode: validationMode,\n shouldFocusError,\n defaultValues: resolvedDefaults,\n values: resolvedDefaults,\n resetOptions: { keepDirtyValues: true },\n })\n\n const watchedWageType = useWatch({ control: formMethods.control, name: 'wageType' })\n const isHourly = watchedWageType === WageType.Hourly\n\n const updateMutation = useContractorsUpdateMutation()\n const isPending = updateMutation.isPending\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('ContractorPayForm')\n\n const errorHandling = composeErrorHandler([contractorQuery], { submitError, setSubmitError })\n\n const baseMetadata = useDeriveFieldsMetadata(metadataConfig, formMethods.control)\n const fieldsMetadata = buildContractorPayFieldsMetadata(baseMetadata)\n\n const onSubmit = async (): Promise<HookSubmitResult<Contractor> | undefined> => {\n if (!contractor?.version) {\n throw new SDKInternalError('Cannot submit pay form before contractor data is loaded')\n }\n const contractorVersion = contractor.version\n const contractorType = contractor.type\n let submitResult: HookSubmitResult<Contractor> | undefined\n\n await new Promise<void>(resolve => {\n void formMethods.handleSubmit(\n async (data: ContractorPayFormOutputs) => {\n await baseSubmitHandler(data, async payload => {\n const result = await updateMutation.mutateAsync({\n request: {\n contractorUuid: contractorId,\n contractorUpdateRequestBody: {\n version: contractorVersion,\n type: contractorType,\n wageType: payload.wageType,\n hourlyRate:\n payload.wageType === WageType.Hourly ? String(payload.hourlyRate) : undefined,\n },\n },\n })\n\n if (!result.contractor) {\n throw new SDKInternalError('Contractor pay update failed')\n }\n\n submitResult = { mode: 'update' as const, data: result.contractor }\n })\n resolve()\n },\n () => {\n resolve()\n },\n )()\n })\n\n return submitResult\n }\n\n const hookFormInternals = useHookFormInternals(formMethods)\n\n if (contractorQuery.isLoading || !contractor) {\n return { isLoading: true as const, errorHandling }\n }\n\n return {\n isLoading: false as const,\n data: { contractor },\n status: { isPending, mode: 'update' as const, isHourly },\n actions: { onSubmit },\n errorHandling,\n form: {\n Fields: {\n WageType: WageTypeField,\n HourlyRate: HourlyRateField,\n },\n fieldsMetadata,\n hookFormInternals,\n getFormSubmissionValues: createGetFormSubmissionValues(formMethods, schema),\n },\n }\n}\n\n/**\n * Return type of {@link useContractorPayForm} — a discriminated union on `isLoading`.\n *\n * @public\n */\nexport type UseContractorPayFormResult = HookLoadingResult | UseContractorPayFormReady\n\n/**\n * Per-field metadata exposed on `form.fieldsMetadata` for {@link useContractorPayForm}.\n *\n * @public\n */\nexport type ContractorPayFieldsMetadata = ReturnType<typeof buildContractorPayFieldsMetadata>\n"],"names":["buildContractorPayFieldsMetadata","base","wageTypeOptions","WageType","value","withOptions","useContractorPayForm","contractorId","validationMode","shouldFocusError","contractorQuery","useContractorsGet","contractor","schema","metadataConfig","useMemo","createContractorPaySchema","resolvedDefaults","formMethods","useForm","zodResolver","isHourly","useWatch","updateMutation","useContractorsUpdateMutation","isPending","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","errorHandling","composeErrorHandler","baseMetadata","useDeriveFieldsMetadata","fieldsMetadata","onSubmit","SDKInternalError","contractorVersion","contractorType","submitResult","resolve","data","payload","result","hookFormInternals","useHookFormInternals","WageTypeField","HourlyRateField","createGetFormSubmissionValues"],"mappings":"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"}
@@ -41,10 +41,10 @@ function $({
41
41
  baseSubmitHandler: r,
42
42
  error: b,
43
43
  setError: E
44
- } = q("ContractorList"), f = F([d], { submitError: b, setSubmitError: E }), S = m.isPending || g.isPending || p.isPending || h.isPending, { data: o, isFetching: c } = d, O = C(() => (o?.contractors ?? []).map((t) => ({
44
+ } = q("ContractorList"), f = F([d], { submitError: b, setSubmitError: E }), S = m.isPending || g.isPending || p.isPending || h.isPending, { data: o, isFetching: c } = d, O = C(() => (o?.showContractors ?? []).map((t) => ({
45
45
  ...t,
46
46
  allowedActions: H(t, n)
47
- })), [o?.contractors, n]), A = o?.httpMeta.response.headers ? l(o.httpMeta.response.headers, c) : {
47
+ })), [o?.showContractors, n]), A = o?.httpMeta.response.headers ? l(o.httpMeta.response.headers, c) : {
48
48
  handleNextPage: () => {
49
49
  },
50
50
  handleFirstPage: () => {
@@ -65,7 +65,7 @@ function $({
65
65
  request: { contractorUuid: s }
66
66
  });
67
67
  });
68
- }, L = async (t) => {
68
+ }, w = async (t) => {
69
69
  let s;
70
70
  return await r(t, async (N) => {
71
71
  s = (await g.mutateAsync({
@@ -77,13 +77,13 @@ function $({
77
77
  }
78
78
  })).contractorOnboardingStatus;
79
79
  }), s;
80
- }, _ = async (t) => {
80
+ }, L = async (t) => {
81
81
  await r(t, async (s) => {
82
82
  await p.mutateAsync({
83
83
  request: { contractorUuid: s }
84
84
  });
85
85
  });
86
- }, w = async (t) => {
86
+ }, _ = async (t) => {
87
87
  await r(t, async (s) => {
88
88
  await h.mutateAsync({
89
89
  request: { contractorUuid: s }
@@ -100,7 +100,7 @@ function $({
100
100
  },
101
101
  pagination: A,
102
102
  status: { isFetching: c, isPending: S },
103
- actions: { onDelete: D, onCancelSelfOnboarding: L, onCancelDismissal: _, onCancelRehire: w },
103
+ actions: { onDelete: D, onCancelSelfOnboarding: w, onCancelDismissal: L, onCancelRehire: _ },
104
104
  errorHandling: f
105
105
  };
106
106
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useContractorList.js","sources":["../../../../../src/components/Contractor/ContractorList/shared/useContractorList.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { useContractorsList } from '@gusto/embedded-api/react-query/contractorsList'\nimport type { Contractor } from '@gusto/embedded-api/models/components/contractor'\nimport type { ContractorOnboardingStatus as ContractorOnboardingStatusEntity } from '@gusto/embedded-api/models/components/contractoronboardingstatus'\nimport { useContractorsDeleteMutation } from '@gusto/embedded-api/react-query/contractorsDelete'\nimport { useContractorsUpdateOnboardingStatusMutation } from '@gusto/embedded-api/react-query/contractorsUpdateOnboardingStatus'\nimport { useContractorsDeleteV1ContractorsContractorUuidTerminationMutation } from '@gusto/embedded-api/react-query/contractorsDeleteV1ContractorsContractorUuidTermination'\nimport { useContractorsDeleteV1ContractorsContractorUuidRehireMutation } from '@gusto/embedded-api/react-query/contractorsDeleteV1ContractorsContractorUuidRehire'\nimport { keepPreviousData } from '@tanstack/react-query'\nimport { usePagination } from '@/hooks/usePagination/usePagination'\nimport type { PaginationControlProps } from '@/components/Common/PaginationControl/PaginationControlTypes'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport { ContractorOnboardingStatus } from '@/shared/constants'\nimport type { HookLoadingResult, BaseHookReady } from '@/partner-hook-utils/types'\n\n/**\n * Action that may be performed on a contractor row, determined by the contractor's onboarding\n * and employment state and the `contractorType` filter passed to {@link useContractorList}.\n *\n * @public\n */\nexport type ContractorAction =\n | 'edit'\n | 'delete'\n | 'cancel_self_onboarding'\n | 'view'\n | 'dismiss'\n | 'rehire'\n | 'cancel_dismissal'\n | 'cancel_rehire'\n\n/**\n * A contractor entity extended with the actions permitted on it.\n *\n * @public\n */\nexport interface ContractorWithActions extends Contractor {\n /** Actions permitted for this contractor given its onboarding/employment state and the active filter. */\n allowedActions: ContractorAction[]\n}\n\n/**\n * Filter applied to {@link useContractorList} that scopes the result set and tailors the per-row action list.\n *\n * @public\n */\nexport type ContractorType = 'active' | 'onboarding' | 'terminated'\n\n/**\n * Props for {@link useContractorList}.\n *\n * @public\n */\nexport interface UseContractorListProps {\n /** The associated company identifier. */\n companyId: string\n /** Filters the list and tailors the allowed actions. Omit to list every contractor. */\n contractorType?: ContractorType\n}\n\n/**\n * Ready state of {@link useContractorList}.\n *\n * @public\n */\nexport interface UseContractorListReady extends BaseHookReady<\n { contractors: ContractorWithActions[] },\n { isFetching: boolean; isPending: boolean }\n> {\n /** Pagination controls for the current contractor list page. */\n pagination: PaginationControlProps\n /** Actions that mutate a contractor's state, gated by the entry's `allowedActions`. */\n actions: {\n /** Deletes the contractor. */\n onDelete: (contractorId: string) => Promise<void>\n /** Reverts a self-onboarding contractor to admin-driven onboarding. Resolves to the updated record, or `undefined` if the call failed. */\n onCancelSelfOnboarding: (\n contractorId: string,\n ) => Promise<ContractorOnboardingStatusEntity | undefined>\n /** Cancels a contractor's scheduled dismissal. */\n onCancelDismissal: (contractorId: string) => Promise<void>\n /** Cancels a contractor's scheduled rehire. */\n onCancelRehire: (contractorId: string) => Promise<void>\n }\n}\n\n/**\n * Return type of {@link useContractorList}.\n *\n * @public\n */\nexport type UseContractorListResult = HookLoadingResult | UseContractorListReady\n\nconst SELF_ONBOARDING_CANCELLABLE_STATUSES = new Set<string>([\n ContractorOnboardingStatus.SELF_ONBOARDING_INVITED,\n ContractorOnboardingStatus.SELF_ONBOARDING_STARTED,\n])\n\nfunction deriveAllowedActions(\n contractor: Contractor,\n contractorType?: ContractorType,\n): ContractorAction[] {\n const actions: ContractorAction[] = []\n const status = contractor.onboardingStatus\n\n if (contractorType === 'active') {\n actions.push('view')\n\n if (contractor.upcomingEmployment && contractor.rehireCancellationEligible) {\n actions.push('cancel_rehire')\n } else if (contractor.dismissalDate && contractor.dismissalCancellationEligible) {\n actions.push('cancel_dismissal')\n } else if (!contractor.dismissalDate && !contractor.upcomingEmployment) {\n actions.push('dismiss')\n }\n\n return actions\n }\n\n if (contractorType === 'terminated') {\n actions.push('view')\n\n if (contractor.upcomingEmployment) {\n if (contractor.rehireCancellationEligible) {\n actions.push('cancel_rehire')\n }\n } else if (contractor.dismissalCancellationEligible) {\n actions.push('cancel_dismissal')\n } else if (!contractor.isActive) {\n actions.push('rehire')\n }\n\n return actions\n }\n\n // 'onboarding' filter and the unfiltered (undefined) onboarding-flavor list share the same\n // edit / cancel_self_onboarding / delete logic used by today's onboarding ContractorList.\n const canCancelSelfOnboarding = !!status && SELF_ONBOARDING_CANCELLABLE_STATUSES.has(status)\n\n if (!canCancelSelfOnboarding) {\n actions.push('edit')\n } else {\n actions.push('cancel_self_onboarding')\n }\n\n actions.push('delete')\n\n if (\n contractorType === 'onboarding' &&\n status === ContractorOnboardingStatus.ONBOARDING_COMPLETED\n ) {\n actions.push('view')\n }\n\n return actions\n}\n\n/**\n * Fetches a paginated list of a company's contractors and decorates each entry with the actions\n * allowed for its current onboarding/employment state.\n *\n * @remarks\n * `contractorType` maps to a server-side filter and changes which actions appear on each row:\n * `'active'` exposes `view` plus `dismiss`/`cancel_dismissal`/`cancel_rehire`, `'terminated'`\n * exposes `view` plus `rehire`/`cancel_dismissal`/`cancel_rehire`, `'onboarding'` and the\n * unfiltered default expose `edit`/`cancel_self_onboarding`/`delete`. Omit `contractorType` to\n * list every contractor.\n *\n * Page changes use placeholder data: the previous page stays rendered while the next one loads,\n * and `status.isFetching` flips to `true` during the request.\n *\n * @param input - Company and optional filter for the list.\n * @returns A {@link HookLoadingResult} while the first page is in flight, or a {@link UseContractorListReady} once data has arrived.\n * @public\n */\nexport function useContractorList({\n companyId,\n contractorType,\n}: UseContractorListProps): UseContractorListResult {\n const { currentPage, itemsPerPage, getPaginationProps } = usePagination()\n\n const queryParams = useMemo(() => {\n const baseParams = {\n companyUuid: companyId,\n page: currentPage,\n per: itemsPerPage,\n }\n\n switch (contractorType) {\n case 'active':\n return { ...baseParams, onboardedActive: true }\n case 'onboarding':\n return { ...baseParams, onboarded: false }\n case 'terminated':\n return { ...baseParams, terminated: true }\n default:\n return baseParams\n }\n }, [companyId, currentPage, itemsPerPage, contractorType])\n\n const contractorsQuery = useContractorsList(queryParams, { placeholderData: keepPreviousData })\n\n const deleteContractorMutation = useContractorsDeleteMutation()\n const updateOnboardingStatusMutation = useContractorsUpdateOnboardingStatusMutation()\n const cancelDismissalMutation =\n useContractorsDeleteV1ContractorsContractorUuidTerminationMutation()\n const cancelRehireMutation = useContractorsDeleteV1ContractorsContractorUuidRehireMutation()\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('ContractorList')\n\n const errorHandling = composeErrorHandler([contractorsQuery], { submitError, setSubmitError })\n\n const isPending =\n deleteContractorMutation.isPending ||\n updateOnboardingStatusMutation.isPending ||\n cancelDismissalMutation.isPending ||\n cancelRehireMutation.isPending\n\n const { data, isFetching } = contractorsQuery\n\n const contractors = useMemo<ContractorWithActions[]>(() => {\n return (data?.contractors ?? []).map(contractor => ({\n ...contractor,\n allowedActions: deriveAllowedActions(contractor, contractorType),\n }))\n }, [data?.contractors, contractorType])\n\n const paginationProps = data?.httpMeta.response.headers\n ? getPaginationProps(data.httpMeta.response.headers, isFetching)\n : {\n handleNextPage: () => {},\n handleFirstPage: () => {},\n handleLastPage: () => {},\n handlePreviousPage: () => {},\n handleItemsPerPageChange: () => {},\n currentPage: 1,\n totalPages: 1,\n totalCount: 0,\n itemsPerPage: 5 as const,\n }\n\n const onDelete = async (contractorId: string): Promise<void> => {\n await baseSubmitHandler(contractorId, async id => {\n await deleteContractorMutation.mutateAsync({\n request: { contractorUuid: id },\n })\n })\n }\n\n const onCancelSelfOnboarding = async (\n contractorId: string,\n ): Promise<ContractorOnboardingStatusEntity | undefined> => {\n let onboardingStatus: ContractorOnboardingStatusEntity | undefined\n\n await baseSubmitHandler(contractorId, async id => {\n const result = await updateOnboardingStatusMutation.mutateAsync({\n request: {\n contractorUuid: id,\n contractorOnboardingStatusUpdateRequestBody: {\n onboardingStatus: ContractorOnboardingStatus.ADMIN_ONBOARDING_INCOMPLETE,\n },\n },\n })\n\n onboardingStatus = result.contractorOnboardingStatus\n })\n\n return onboardingStatus\n }\n\n const onCancelDismissal = async (contractorId: string): Promise<void> => {\n await baseSubmitHandler(contractorId, async id => {\n await cancelDismissalMutation.mutateAsync({\n request: { contractorUuid: id },\n })\n })\n }\n\n const onCancelRehire = async (contractorId: string): Promise<void> => {\n await baseSubmitHandler(contractorId, async id => {\n await cancelRehireMutation.mutateAsync({\n request: { contractorUuid: id },\n })\n })\n }\n\n const isLoading = !data && isFetching\n\n if (isLoading) {\n return {\n isLoading: true,\n errorHandling,\n }\n }\n\n return {\n isLoading: false,\n data: {\n contractors,\n },\n pagination: paginationProps,\n status: { isFetching, isPending },\n actions: { onDelete, onCancelSelfOnboarding, onCancelDismissal, onCancelRehire },\n errorHandling,\n }\n}\n"],"names":["SELF_ONBOARDING_CANCELLABLE_STATUSES","ContractorOnboardingStatus","deriveAllowedActions","contractor","contractorType","actions","status","useContractorList","companyId","currentPage","itemsPerPage","getPaginationProps","usePagination","queryParams","useMemo","baseParams","contractorsQuery","useContractorsList","keepPreviousData","deleteContractorMutation","useContractorsDeleteMutation","updateOnboardingStatusMutation","useContractorsUpdateOnboardingStatusMutation","cancelDismissalMutation","useContractorsDeleteV1ContractorsContractorUuidTerminationMutation","cancelRehireMutation","useContractorsDeleteV1ContractorsContractorUuidRehireMutation","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","errorHandling","composeErrorHandler","isPending","data","isFetching","contractors","paginationProps","onDelete","contractorId","id","onCancelSelfOnboarding","onboardingStatus","onCancelDismissal","onCancelRehire"],"mappings":"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"}
1
+ {"version":3,"file":"useContractorList.js","sources":["../../../../../src/components/Contractor/ContractorList/shared/useContractorList.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { useContractorsList } from '@gusto/embedded-api/react-query/contractorsList'\nimport type { Contractor } from '@gusto/embedded-api/models/components/contractor'\nimport type { ContractorOnboardingStatus as ContractorOnboardingStatusEntity } from '@gusto/embedded-api/models/components/contractoronboardingstatus'\nimport { useContractorsDeleteMutation } from '@gusto/embedded-api/react-query/contractorsDelete'\nimport { useContractorsUpdateOnboardingStatusMutation } from '@gusto/embedded-api/react-query/contractorsUpdateOnboardingStatus'\nimport { useContractorsDeleteV1ContractorsContractorUuidTerminationMutation } from '@gusto/embedded-api/react-query/contractorsDeleteV1ContractorsContractorUuidTermination'\nimport { useContractorsDeleteV1ContractorsContractorUuidRehireMutation } from '@gusto/embedded-api/react-query/contractorsDeleteV1ContractorsContractorUuidRehire'\nimport { keepPreviousData } from '@tanstack/react-query'\nimport { usePagination } from '@/hooks/usePagination/usePagination'\nimport type { PaginationControlProps } from '@/components/Common/PaginationControl/PaginationControlTypes'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport { ContractorOnboardingStatus } from '@/shared/constants'\nimport type { HookLoadingResult, BaseHookReady } from '@/partner-hook-utils/types'\n\n/**\n * Action that may be performed on a contractor row, determined by the contractor's onboarding\n * and employment state and the `contractorType` filter passed to {@link useContractorList}.\n *\n * @public\n */\nexport type ContractorAction =\n | 'edit'\n | 'delete'\n | 'cancel_self_onboarding'\n | 'view'\n | 'dismiss'\n | 'rehire'\n | 'cancel_dismissal'\n | 'cancel_rehire'\n\n/**\n * A contractor entity extended with the actions permitted on it.\n *\n * @public\n */\nexport interface ContractorWithActions extends Contractor {\n /** Actions permitted for this contractor given its onboarding/employment state and the active filter. */\n allowedActions: ContractorAction[]\n}\n\n/**\n * Filter applied to {@link useContractorList} that scopes the result set and tailors the per-row action list.\n *\n * @public\n */\nexport type ContractorType = 'active' | 'onboarding' | 'terminated'\n\n/**\n * Props for {@link useContractorList}.\n *\n * @public\n */\nexport interface UseContractorListProps {\n /** The associated company identifier. */\n companyId: string\n /** Filters the list and tailors the allowed actions. Omit to list every contractor. */\n contractorType?: ContractorType\n}\n\n/**\n * Ready state of {@link useContractorList}.\n *\n * @public\n */\nexport interface UseContractorListReady extends BaseHookReady<\n { contractors: ContractorWithActions[] },\n { isFetching: boolean; isPending: boolean }\n> {\n /** Pagination controls for the current contractor list page. */\n pagination: PaginationControlProps\n /** Actions that mutate a contractor's state, gated by the entry's `allowedActions`. */\n actions: {\n /** Deletes the contractor. */\n onDelete: (contractorId: string) => Promise<void>\n /** Reverts a self-onboarding contractor to admin-driven onboarding. Resolves to the updated record, or `undefined` if the call failed. */\n onCancelSelfOnboarding: (\n contractorId: string,\n ) => Promise<ContractorOnboardingStatusEntity | undefined>\n /** Cancels a contractor's scheduled dismissal. */\n onCancelDismissal: (contractorId: string) => Promise<void>\n /** Cancels a contractor's scheduled rehire. */\n onCancelRehire: (contractorId: string) => Promise<void>\n }\n}\n\n/**\n * Return type of {@link useContractorList}.\n *\n * @public\n */\nexport type UseContractorListResult = HookLoadingResult | UseContractorListReady\n\nconst SELF_ONBOARDING_CANCELLABLE_STATUSES = new Set<string>([\n ContractorOnboardingStatus.SELF_ONBOARDING_INVITED,\n ContractorOnboardingStatus.SELF_ONBOARDING_STARTED,\n])\n\nfunction deriveAllowedActions(\n contractor: Contractor,\n contractorType?: ContractorType,\n): ContractorAction[] {\n const actions: ContractorAction[] = []\n const status = contractor.onboardingStatus\n\n if (contractorType === 'active') {\n actions.push('view')\n\n if (contractor.upcomingEmployment && contractor.rehireCancellationEligible) {\n actions.push('cancel_rehire')\n } else if (contractor.dismissalDate && contractor.dismissalCancellationEligible) {\n actions.push('cancel_dismissal')\n } else if (!contractor.dismissalDate && !contractor.upcomingEmployment) {\n actions.push('dismiss')\n }\n\n return actions\n }\n\n if (contractorType === 'terminated') {\n actions.push('view')\n\n if (contractor.upcomingEmployment) {\n if (contractor.rehireCancellationEligible) {\n actions.push('cancel_rehire')\n }\n } else if (contractor.dismissalCancellationEligible) {\n actions.push('cancel_dismissal')\n } else if (!contractor.isActive) {\n actions.push('rehire')\n }\n\n return actions\n }\n\n // 'onboarding' filter and the unfiltered (undefined) onboarding-flavor list share the same\n // edit / cancel_self_onboarding / delete logic used by today's onboarding ContractorList.\n const canCancelSelfOnboarding = !!status && SELF_ONBOARDING_CANCELLABLE_STATUSES.has(status)\n\n if (!canCancelSelfOnboarding) {\n actions.push('edit')\n } else {\n actions.push('cancel_self_onboarding')\n }\n\n actions.push('delete')\n\n if (\n contractorType === 'onboarding' &&\n status === ContractorOnboardingStatus.ONBOARDING_COMPLETED\n ) {\n actions.push('view')\n }\n\n return actions\n}\n\n/**\n * Fetches a paginated list of a company's contractors and decorates each entry with the actions\n * allowed for its current onboarding/employment state.\n *\n * @remarks\n * `contractorType` maps to a server-side filter and changes which actions appear on each row:\n * `'active'` exposes `view` plus `dismiss`/`cancel_dismissal`/`cancel_rehire`, `'terminated'`\n * exposes `view` plus `rehire`/`cancel_dismissal`/`cancel_rehire`, `'onboarding'` and the\n * unfiltered default expose `edit`/`cancel_self_onboarding`/`delete`. Omit `contractorType` to\n * list every contractor.\n *\n * Page changes use placeholder data: the previous page stays rendered while the next one loads,\n * and `status.isFetching` flips to `true` during the request.\n *\n * @param input - Company and optional filter for the list.\n * @returns A {@link HookLoadingResult} while the first page is in flight, or a {@link UseContractorListReady} once data has arrived.\n * @public\n */\nexport function useContractorList({\n companyId,\n contractorType,\n}: UseContractorListProps): UseContractorListResult {\n const { currentPage, itemsPerPage, getPaginationProps } = usePagination()\n\n const queryParams = useMemo(() => {\n const baseParams = {\n companyUuid: companyId,\n page: currentPage,\n per: itemsPerPage,\n }\n\n switch (contractorType) {\n case 'active':\n return { ...baseParams, onboardedActive: true }\n case 'onboarding':\n return { ...baseParams, onboarded: false }\n case 'terminated':\n return { ...baseParams, terminated: true }\n default:\n return baseParams\n }\n }, [companyId, currentPage, itemsPerPage, contractorType])\n\n const contractorsQuery = useContractorsList(queryParams, { placeholderData: keepPreviousData })\n\n const deleteContractorMutation = useContractorsDeleteMutation()\n const updateOnboardingStatusMutation = useContractorsUpdateOnboardingStatusMutation()\n const cancelDismissalMutation =\n useContractorsDeleteV1ContractorsContractorUuidTerminationMutation()\n const cancelRehireMutation = useContractorsDeleteV1ContractorsContractorUuidRehireMutation()\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('ContractorList')\n\n const errorHandling = composeErrorHandler([contractorsQuery], { submitError, setSubmitError })\n\n const isPending =\n deleteContractorMutation.isPending ||\n updateOnboardingStatusMutation.isPending ||\n cancelDismissalMutation.isPending ||\n cancelRehireMutation.isPending\n\n const { data, isFetching } = contractorsQuery\n\n const contractors = useMemo<ContractorWithActions[]>(() => {\n return (data?.showContractors ?? []).map(contractor => ({\n ...contractor,\n allowedActions: deriveAllowedActions(contractor, contractorType),\n }))\n }, [data?.showContractors, contractorType])\n\n const paginationProps = data?.httpMeta.response.headers\n ? getPaginationProps(data.httpMeta.response.headers, isFetching)\n : {\n handleNextPage: () => {},\n handleFirstPage: () => {},\n handleLastPage: () => {},\n handlePreviousPage: () => {},\n handleItemsPerPageChange: () => {},\n currentPage: 1,\n totalPages: 1,\n totalCount: 0,\n itemsPerPage: 5 as const,\n }\n\n const onDelete = async (contractorId: string): Promise<void> => {\n await baseSubmitHandler(contractorId, async id => {\n await deleteContractorMutation.mutateAsync({\n request: { contractorUuid: id },\n })\n })\n }\n\n const onCancelSelfOnboarding = async (\n contractorId: string,\n ): Promise<ContractorOnboardingStatusEntity | undefined> => {\n let onboardingStatus: ContractorOnboardingStatusEntity | undefined\n\n await baseSubmitHandler(contractorId, async id => {\n const result = await updateOnboardingStatusMutation.mutateAsync({\n request: {\n contractorUuid: id,\n contractorOnboardingStatusUpdateRequestBody: {\n onboardingStatus: ContractorOnboardingStatus.ADMIN_ONBOARDING_INCOMPLETE,\n },\n },\n })\n\n onboardingStatus = result.contractorOnboardingStatus\n })\n\n return onboardingStatus\n }\n\n const onCancelDismissal = async (contractorId: string): Promise<void> => {\n await baseSubmitHandler(contractorId, async id => {\n await cancelDismissalMutation.mutateAsync({\n request: { contractorUuid: id },\n })\n })\n }\n\n const onCancelRehire = async (contractorId: string): Promise<void> => {\n await baseSubmitHandler(contractorId, async id => {\n await cancelRehireMutation.mutateAsync({\n request: { contractorUuid: id },\n })\n })\n }\n\n const isLoading = !data && isFetching\n\n if (isLoading) {\n return {\n isLoading: true,\n errorHandling,\n }\n }\n\n return {\n isLoading: false,\n data: {\n contractors,\n },\n pagination: paginationProps,\n status: { isFetching, isPending },\n actions: { onDelete, onCancelSelfOnboarding, onCancelDismissal, onCancelRehire },\n errorHandling,\n }\n}\n"],"names":["SELF_ONBOARDING_CANCELLABLE_STATUSES","ContractorOnboardingStatus","deriveAllowedActions","contractor","contractorType","actions","status","useContractorList","companyId","currentPage","itemsPerPage","getPaginationProps","usePagination","queryParams","useMemo","baseParams","contractorsQuery","useContractorsList","keepPreviousData","deleteContractorMutation","useContractorsDeleteMutation","updateOnboardingStatusMutation","useContractorsUpdateOnboardingStatusMutation","cancelDismissalMutation","useContractorsDeleteV1ContractorsContractorUuidTerminationMutation","cancelRehireMutation","useContractorsDeleteV1ContractorsContractorUuidRehireMutation","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","errorHandling","composeErrorHandler","isPending","data","isFetching","contractors","paginationProps","onDelete","contractorId","id","onCancelSelfOnboarding","onboardingStatus","onCancelDismissal","onCancelRehire"],"mappings":"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"}
@@ -2,8 +2,8 @@ import { jsx as t, jsxs as i } from "react/jsx-runtime";
2
2
  import { useState as T, Suspense as x } from "react";
3
3
  import { useTranslation as p } from "react-i18next";
4
4
  import { useContractorsGetSuspense as N } from "@gusto/embedded-api/react-query/contractorsGet";
5
- import { DetailsView as g } from "./DetailsView.js";
6
- import { PayView as S } from "./PayView.js";
5
+ import { DetailsView as S } from "./DetailsView.js";
6
+ import { PayView as g } from "./PayView.js";
7
7
  import { Flex as l } from "../../Common/Flex/Flex.js";
8
8
  import { useComponentContext as u } from "../../../contexts/ComponentAdapter/useComponentContext.js";
9
9
  import { BaseBoundaries as R } from "../../Base/Base.js";
@@ -11,10 +11,10 @@ import { useI18n as _, useComponentDictionary as y } from "../../../i18n/I18n.js
11
11
  import { componentEvents as A, CONTRACTOR_TYPE as B } from "../../../shared/constants.js";
12
12
  import { firstLastName as O } from "../../../helpers/formattedStrings.js";
13
13
  import { DocumentsCard as H } from "../Documents/management/DocumentsCard/DocumentsCard.js";
14
- function j({
15
- contractorId: o,
14
+ function w({
15
+ contractorId: e,
16
16
  dictionary: n,
17
- onEvent: e,
17
+ onEvent: o,
18
18
  selectedTab: a,
19
19
  LoaderComponent: c,
20
20
  className: m
@@ -26,7 +26,7 @@ function j({
26
26
  { id: "documents", label: r("tabs.documents"), content: null }
27
27
  ];
28
28
  return /* @__PURE__ */ i(l, { className: m, flexDirection: "column", gap: 32, children: [
29
- /* @__PURE__ */ t(x, { fallback: null, children: /* @__PURE__ */ t(w, { contractorId: o }) }),
29
+ /* @__PURE__ */ t(x, { fallback: null, children: /* @__PURE__ */ t(j, { contractorId: e }) }),
30
30
  /* @__PURE__ */ i(l, { flexDirection: "column", gap: 8, children: [
31
31
  /* @__PURE__ */ t(
32
32
  b.Tabs,
@@ -35,19 +35,19 @@ function j({
35
35
  selectedId: s,
36
36
  onSelectionChange: (D) => {
37
37
  const d = D;
38
- h(d), e(A.CONTRACTOR_DASHBOARD_TAB_CHANGE, { tab: d });
38
+ h(d), o(A.CONTRACTOR_DASHBOARD_TAB_CHANGE, { tab: d });
39
39
  },
40
40
  "aria-label": r("tabsLabel")
41
41
  }
42
42
  ),
43
43
  /* @__PURE__ */ i(l, { flexDirection: "column", gap: 24, children: [
44
- s === "details" && /* @__PURE__ */ t(g, { contractorId: o, onEvent: e }),
45
- s === "pay" && /* @__PURE__ */ t(S, { contractorId: o, onEvent: e }),
44
+ s === "details" && /* @__PURE__ */ t(S, { contractorId: e, onEvent: o }),
45
+ s === "pay" && /* @__PURE__ */ t(g, { contractorId: e, onEvent: o }),
46
46
  s === "documents" && /* @__PURE__ */ t(
47
47
  H,
48
48
  {
49
- contractorId: o,
50
- onEvent: e,
49
+ contractorId: e,
50
+ onEvent: o,
51
51
  LoaderComponent: c
52
52
  }
53
53
  )
@@ -55,27 +55,27 @@ function j({
55
55
  ] })
56
56
  ] });
57
57
  }
58
- function w({ contractorId: o }) {
59
- const { t: n } = p("Contractor.Dashboard"), e = u(), {
60
- data: { contractor: a }
61
- } = N({ contractorUuid: o }), c = a?.type === B.BUSINESS, m = a ? c ? a.businessName : O({
58
+ function j({ contractorId: e }) {
59
+ const { t: n } = p("Contractor.Dashboard"), o = u(), {
60
+ data: { contractorShow: a }
61
+ } = N({ contractorUuid: e }), c = a?.type === B.BUSINESS, m = a ? c ? a.businessName : O({
62
62
  first_name: a.firstName,
63
63
  middle_initial: a.middleInitial,
64
64
  last_name: a.lastName
65
65
  }) : void 0;
66
66
  return /* @__PURE__ */ i(l, { flexDirection: "column", gap: 4, children: [
67
- /* @__PURE__ */ t(e.Heading, { as: "h2", children: m }),
68
- /* @__PURE__ */ t(e.Text, { variant: "supporting", children: n("contractorRoleLabel") })
67
+ /* @__PURE__ */ t(o.Heading, { as: "h2", children: m }),
68
+ /* @__PURE__ */ t(o.Text, { variant: "supporting", children: n("contractorRoleLabel") })
69
69
  ] });
70
70
  }
71
- function J({ FallbackComponent: o, LoaderComponent: n, ...e }) {
71
+ function J({ FallbackComponent: e, LoaderComponent: n, ...o }) {
72
72
  return /* @__PURE__ */ t(
73
73
  R,
74
74
  {
75
75
  componentName: "Contractor.Dashboard",
76
- FallbackComponent: o,
76
+ FallbackComponent: e,
77
77
  LoaderComponent: n,
78
- children: /* @__PURE__ */ t(j, { LoaderComponent: n, ...e })
78
+ children: /* @__PURE__ */ t(w, { LoaderComponent: n, ...o })
79
79
  }
80
80
  );
81
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Dashboard.js","sources":["../../../../src/components/Contractor/Dashboard/Dashboard.tsx"],"sourcesContent":["import { Suspense, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useContractorsGetSuspense } from '@gusto/embedded-api/react-query/contractorsGet'\nimport { DetailsView } from './DetailsView'\nimport { PayView } from './PayView'\nimport { DocumentsCard } from '@/components/Contractor/Documents/management/DocumentsCard'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { BaseBoundaries, type BaseComponentInterface } from '@/components/Base/Base'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { componentEvents, CONTRACTOR_TYPE } from '@/shared/constants'\nimport { firstLastName } from '@/helpers/formattedStrings'\n\n/** @public */\nexport type DashboardTab = 'details' | 'pay' | 'documents'\n\n/** @public */\nexport interface DashboardProps extends BaseComponentInterface<'Contractor.Dashboard'> {\n /** The associated contractor identifier. */\n contractorId: string\n /** The currently active tab. Defaults to `'details'` when uncontrolled. */\n selectedTab?: DashboardTab\n}\n\nfunction DashboardRoot({\n contractorId,\n dictionary,\n onEvent,\n selectedTab: controlledTab,\n LoaderComponent,\n className,\n}: DashboardProps) {\n useI18n('Contractor.Dashboard')\n useComponentDictionary('Contractor.Dashboard', dictionary)\n const { t } = useTranslation('Contractor.Dashboard')\n const Components = useComponentContext()\n const [internalTab, setInternalTab] = useState<DashboardTab>('details')\n const selectedTab = controlledTab ?? internalTab\n\n const tabs = [\n { id: 'details' as const, label: t('tabs.details'), content: null },\n { id: 'pay' as const, label: t('tabs.pay'), content: null },\n { id: 'documents' as const, label: t('tabs.documents'), content: null },\n ]\n\n return (\n <Flex className={className} flexDirection=\"column\" gap={32}>\n <Suspense fallback={null}>\n <DashboardHeader contractorId={contractorId} />\n </Suspense>\n\n <Flex flexDirection=\"column\" gap={8}>\n <Components.Tabs\n tabs={tabs}\n selectedId={selectedTab}\n onSelectionChange={id => {\n const next = id as DashboardTab\n setInternalTab(next)\n onEvent(componentEvents.CONTRACTOR_DASHBOARD_TAB_CHANGE, { tab: next })\n }}\n aria-label={t('tabsLabel')}\n />\n\n <Flex flexDirection=\"column\" gap={24}>\n {selectedTab === 'details' && (\n <DetailsView contractorId={contractorId} onEvent={onEvent} />\n )}\n\n {selectedTab === 'pay' && <PayView contractorId={contractorId} onEvent={onEvent} />}\n\n {selectedTab === 'documents' && (\n <DocumentsCard\n contractorId={contractorId}\n onEvent={onEvent}\n LoaderComponent={LoaderComponent}\n />\n )}\n </Flex>\n </Flex>\n </Flex>\n )\n}\n\nfunction DashboardHeader({ contractorId }: { contractorId: string }) {\n const { t } = useTranslation('Contractor.Dashboard')\n const Components = useComponentContext()\n const {\n data: { contractor },\n } = useContractorsGetSuspense({ contractorUuid: contractorId })\n\n const isBusiness = contractor?.type === CONTRACTOR_TYPE.BUSINESS\n const legalName = contractor\n ? isBusiness\n ? contractor.businessName\n : firstLastName({\n first_name: contractor.firstName,\n middle_initial: contractor.middleInitial,\n last_name: contractor.lastName,\n })\n : undefined\n\n return (\n <Flex flexDirection=\"column\" gap={4}>\n <Components.Heading as=\"h2\">{legalName}</Components.Heading>\n <Components.Text variant=\"supporting\">{t('contractorRoleLabel')}</Components.Text>\n </Flex>\n )\n}\n\n/**\n * Contractor management dashboard summarizing a single contractor's basic details, pay, and documents.\n *\n * @remarks\n * Renders a tabbed overview of the contractor, wrapped in the SDK's standard error and suspense\n * boundaries. The active tab may be controlled via `selectedTab` or left uncontrolled, in which\n * case it defaults to details. Each tab composes the read-only section cards listed below.\n *\n * @components\n * - {@link ProfileCard}\n * - {@link AddressCard}\n * - {@link PaymentMethodCard}\n * - {@link CompensationCard}\n * - {@link DocumentsCard}\n *\n * @param props - Component props. See {@link DashboardProps}.\n * @returns A React element rendering the contractor dashboard.\n * @public\n */\nexport function Dashboard({ FallbackComponent, LoaderComponent, ...props }: DashboardProps) {\n return (\n <BaseBoundaries\n componentName=\"Contractor.Dashboard\"\n FallbackComponent={FallbackComponent}\n LoaderComponent={LoaderComponent}\n >\n <DashboardRoot LoaderComponent={LoaderComponent} {...props} />\n </BaseBoundaries>\n )\n}\n"],"names":["DashboardRoot","contractorId","dictionary","onEvent","controlledTab","LoaderComponent","className","useI18n","useComponentDictionary","t","useTranslation","Components","useComponentContext","internalTab","setInternalTab","useState","selectedTab","tabs","Flex","jsx","Suspense","DashboardHeader","jsxs","id","next","componentEvents","DetailsView","PayView","DocumentsCard","contractor","useContractorsGetSuspense","isBusiness","CONTRACTOR_TYPE","legalName","firstLastName","Dashboard","FallbackComponent","props","BaseBoundaries"],"mappings":"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"}
1
+ {"version":3,"file":"Dashboard.js","sources":["../../../../src/components/Contractor/Dashboard/Dashboard.tsx"],"sourcesContent":["import { Suspense, useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useContractorsGetSuspense } from '@gusto/embedded-api/react-query/contractorsGet'\nimport { DetailsView } from './DetailsView'\nimport { PayView } from './PayView'\nimport { DocumentsCard } from '@/components/Contractor/Documents/management/DocumentsCard'\nimport { Flex } from '@/components/Common/Flex/Flex'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { BaseBoundaries, type BaseComponentInterface } from '@/components/Base/Base'\nimport { useComponentDictionary, useI18n } from '@/i18n'\nimport { componentEvents, CONTRACTOR_TYPE } from '@/shared/constants'\nimport { firstLastName } from '@/helpers/formattedStrings'\n\n/** @public */\nexport type DashboardTab = 'details' | 'pay' | 'documents'\n\n/** @public */\nexport interface DashboardProps extends BaseComponentInterface<'Contractor.Dashboard'> {\n /** The associated contractor identifier. */\n contractorId: string\n /** The currently active tab. Defaults to `'details'` when uncontrolled. */\n selectedTab?: DashboardTab\n}\n\nfunction DashboardRoot({\n contractorId,\n dictionary,\n onEvent,\n selectedTab: controlledTab,\n LoaderComponent,\n className,\n}: DashboardProps) {\n useI18n('Contractor.Dashboard')\n useComponentDictionary('Contractor.Dashboard', dictionary)\n const { t } = useTranslation('Contractor.Dashboard')\n const Components = useComponentContext()\n const [internalTab, setInternalTab] = useState<DashboardTab>('details')\n const selectedTab = controlledTab ?? internalTab\n\n const tabs = [\n { id: 'details' as const, label: t('tabs.details'), content: null },\n { id: 'pay' as const, label: t('tabs.pay'), content: null },\n { id: 'documents' as const, label: t('tabs.documents'), content: null },\n ]\n\n return (\n <Flex className={className} flexDirection=\"column\" gap={32}>\n <Suspense fallback={null}>\n <DashboardHeader contractorId={contractorId} />\n </Suspense>\n\n <Flex flexDirection=\"column\" gap={8}>\n <Components.Tabs\n tabs={tabs}\n selectedId={selectedTab}\n onSelectionChange={id => {\n const next = id as DashboardTab\n setInternalTab(next)\n onEvent(componentEvents.CONTRACTOR_DASHBOARD_TAB_CHANGE, { tab: next })\n }}\n aria-label={t('tabsLabel')}\n />\n\n <Flex flexDirection=\"column\" gap={24}>\n {selectedTab === 'details' && (\n <DetailsView contractorId={contractorId} onEvent={onEvent} />\n )}\n\n {selectedTab === 'pay' && <PayView contractorId={contractorId} onEvent={onEvent} />}\n\n {selectedTab === 'documents' && (\n <DocumentsCard\n contractorId={contractorId}\n onEvent={onEvent}\n LoaderComponent={LoaderComponent}\n />\n )}\n </Flex>\n </Flex>\n </Flex>\n )\n}\n\nfunction DashboardHeader({ contractorId }: { contractorId: string }) {\n const { t } = useTranslation('Contractor.Dashboard')\n const Components = useComponentContext()\n const {\n data: { contractorShow: contractor },\n } = useContractorsGetSuspense({ contractorUuid: contractorId })\n\n const isBusiness = contractor?.type === CONTRACTOR_TYPE.BUSINESS\n const legalName = contractor\n ? isBusiness\n ? contractor.businessName\n : firstLastName({\n first_name: contractor.firstName,\n middle_initial: contractor.middleInitial,\n last_name: contractor.lastName,\n })\n : undefined\n\n return (\n <Flex flexDirection=\"column\" gap={4}>\n <Components.Heading as=\"h2\">{legalName}</Components.Heading>\n <Components.Text variant=\"supporting\">{t('contractorRoleLabel')}</Components.Text>\n </Flex>\n )\n}\n\n/**\n * Contractor management dashboard summarizing a single contractor's basic details, pay, and documents.\n *\n * @remarks\n * Renders a tabbed overview of the contractor, wrapped in the SDK's standard error and suspense\n * boundaries. The active tab may be controlled via `selectedTab` or left uncontrolled, in which\n * case it defaults to details. Each tab composes the read-only section cards listed below.\n *\n * @components\n * - {@link ProfileCard}\n * - {@link AddressCard}\n * - {@link PaymentMethodCard}\n * - {@link CompensationCard}\n * - {@link DocumentsCard}\n *\n * @param props - Component props. See {@link DashboardProps}.\n * @returns A React element rendering the contractor dashboard.\n * @public\n */\nexport function Dashboard({ FallbackComponent, LoaderComponent, ...props }: DashboardProps) {\n return (\n <BaseBoundaries\n componentName=\"Contractor.Dashboard\"\n FallbackComponent={FallbackComponent}\n LoaderComponent={LoaderComponent}\n >\n <DashboardRoot LoaderComponent={LoaderComponent} {...props} />\n </BaseBoundaries>\n )\n}\n"],"names":["DashboardRoot","contractorId","dictionary","onEvent","controlledTab","LoaderComponent","className","useI18n","useComponentDictionary","t","useTranslation","Components","useComponentContext","internalTab","setInternalTab","useState","selectedTab","tabs","Flex","jsx","Suspense","DashboardHeader","jsxs","id","next","componentEvents","DetailsView","PayView","DocumentsCard","contractor","useContractorsGetSuspense","isBusiness","CONTRACTOR_TYPE","legalName","firstLastName","Dashboard","FallbackComponent","props","BaseBoundaries"],"mappings":";;;;;;;;;;;;;AAwBA,SAASA,EAAc;AAAA,EACrB,cAAAC;AAAA,EACA,YAAAC;AAAA,EACA,SAAAC;AAAA,EACA,aAAaC;AAAA,EACb,iBAAAC;AAAA,EACA,WAAAC;AACF,GAAmB;AACjB,EAAAC,EAAQ,sBAAsB,GAC9BC,EAAuB,wBAAwBN,CAAU;AACzD,QAAM,EAAE,GAAAO,EAAA,IAAMC,EAAe,sBAAsB,GAC7CC,IAAaC,EAAA,GACb,CAACC,GAAaC,CAAc,IAAIC,EAAuB,SAAS,GAChEC,IAAcZ,KAAiBS,GAE/BI,IAAO;AAAA,IACX,EAAE,IAAI,WAAoB,OAAOR,EAAE,cAAc,GAAG,SAAS,KAAA;AAAA,IAC7D,EAAE,IAAI,OAAgB,OAAOA,EAAE,UAAU,GAAG,SAAS,KAAA;AAAA,IACrD,EAAE,IAAI,aAAsB,OAAOA,EAAE,gBAAgB,GAAG,SAAS,KAAA;AAAA,EAAK;AAGxE,2BACGS,GAAA,EAAK,WAAAZ,GAAsB,eAAc,UAAS,KAAK,IACtD,UAAA;AAAA,IAAA,gBAAAa,EAACC,KAAS,UAAU,MAClB,UAAA,gBAAAD,EAACE,GAAA,EAAgB,cAAApB,GAA4B,GAC/C;AAAA,IAEA,gBAAAqB,EAACJ,GAAA,EAAK,eAAc,UAAS,KAAK,GAChC,UAAA;AAAA,MAAA,gBAAAC;AAAA,QAACR,EAAW;AAAA,QAAX;AAAA,UACC,MAAAM;AAAA,UACA,YAAYD;AAAA,UACZ,mBAAmB,CAAAO,MAAM;AACvB,kBAAMC,IAAOD;AACb,YAAAT,EAAeU,CAAI,GACnBrB,EAAQsB,EAAgB,iCAAiC,EAAE,KAAKD,GAAM;AAAA,UACxE;AAAA,UACA,cAAYf,EAAE,WAAW;AAAA,QAAA;AAAA,MAAA;AAAA,MAG3B,gBAAAa,EAACJ,GAAA,EAAK,eAAc,UAAS,KAAK,IAC/B,UAAA;AAAA,QAAAF,MAAgB,aACf,gBAAAG,EAACO,GAAA,EAAY,cAAAzB,GAA4B,SAAAE,GAAkB;AAAA,QAG5Da,MAAgB,SAAS,gBAAAG,EAACQ,GAAA,EAAQ,cAAA1B,GAA4B,SAAAE,GAAkB;AAAA,QAEhFa,MAAgB,eACf,gBAAAG;AAAA,UAACS;AAAA,UAAA;AAAA,YACC,cAAA3B;AAAA,YACA,SAAAE;AAAA,YACA,iBAAAE;AAAA,UAAA;AAAA,QAAA;AAAA,MACF,EAAA,CAEJ;AAAA,IAAA,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;AAEA,SAASgB,EAAgB,EAAE,cAAApB,KAA0C;AACnE,QAAM,EAAE,GAAAQ,EAAA,IAAMC,EAAe,sBAAsB,GAC7CC,IAAaC,EAAA,GACb;AAAA,IACJ,MAAM,EAAE,gBAAgBiB,EAAA;AAAA,EAAW,IACjCC,EAA0B,EAAE,gBAAgB7B,GAAc,GAExD8B,IAAaF,GAAY,SAASG,EAAgB,UAClDC,IAAYJ,IACdE,IACEF,EAAW,eACXK,EAAc;AAAA,IACZ,YAAYL,EAAW;AAAA,IACvB,gBAAgBA,EAAW;AAAA,IAC3B,WAAWA,EAAW;AAAA,EAAA,CACvB,IACH;AAEJ,SACE,gBAAAP,EAACJ,GAAA,EAAK,eAAc,UAAS,KAAK,GAChC,UAAA;AAAA,IAAA,gBAAAC,EAACR,EAAW,SAAX,EAAmB,IAAG,MAAM,UAAAsB,GAAU;AAAA,IACvC,gBAAAd,EAACR,EAAW,MAAX,EAAgB,SAAQ,cAAc,UAAAF,EAAE,qBAAqB,EAAA,CAAE;AAAA,EAAA,GAClE;AAEJ;AAqBO,SAAS0B,EAAU,EAAE,mBAAAC,GAAmB,iBAAA/B,GAAiB,GAAGgC,KAAyB;AAC1F,SACE,gBAAAlB;AAAA,IAACmB;AAAA,IAAA;AAAA,MACC,eAAc;AAAA,MACd,mBAAAF;AAAA,MACA,iBAAA/B;AAAA,MAEA,UAAA,gBAAAc,EAACnB,GAAA,EAAc,iBAAAK,GAAmC,GAAGgC,EAAA,CAAO;AAAA,IAAA;AAAA,EAAA;AAGlE;"}
@@ -2,43 +2,43 @@ import { useContractorsGet as g } from "@gusto/embedded-api/react-query/contract
2
2
  import { useContractorsPostV1ContractorsContractorUuidTerminationMutation as E } from "@gusto/embedded-api/react-query/contractorsPostV1ContractorsContractorUuidTermination";
3
3
  import { RFCDate as p } from "@gusto/embedded-api/types/rfcdate";
4
4
  import { useBaseSubmit as C } from "../../../Base/useBaseSubmit.js";
5
- import { composeErrorHandler as b } from "../../../../partner-hook-utils/composeErrorHandler.js";
6
- import { formatDateToStringDate as y } from "../../../../helpers/dateFormatting.js";
7
- import { GENERIC_API_ERROR_MESSAGE as D } from "../../../../types/sdkError.js";
8
- function G({ contractorId: o }) {
5
+ import { composeErrorHandler as S } from "../../../../partner-hook-utils/composeErrorHandler.js";
6
+ import { formatDateToStringDate as b } from "../../../../helpers/dateFormatting.js";
7
+ import { GENERIC_API_ERROR_MESSAGE as y } from "../../../../types/sdkError.js";
8
+ function A({ contractorId: o }) {
9
9
  const t = g({ contractorUuid: o }), s = E(), {
10
10
  baseSubmitHandler: c,
11
11
  error: m,
12
12
  setError: u
13
- } = C("Contractor.Dismissal"), r = b([t], { submitError: m, setSubmitError: u }), d = s.isPending, l = async (n) => {
13
+ } = C("Contractor.Dismissal"), r = S([t], { submitError: m, setSubmitError: u }), d = s.isPending, l = async (n) => {
14
14
  let i;
15
15
  return await c(n, async (f) => {
16
16
  await s.mutateAsync({
17
17
  request: {
18
18
  contractorUuid: o,
19
- requestBody: { endDate: new p(y(f)) }
19
+ requestBody: { endDate: new p(b(f)) }
20
20
  }
21
21
  }), i = { mode: "create", data: void 0 };
22
22
  }), i;
23
23
  }, { data: e, isLoading: a } = t;
24
- return a || !e?.contractor ? {
24
+ return a || !e?.contractorShow ? {
25
25
  isLoading: !0,
26
26
  errorHandling: !a && !t.error ? {
27
27
  ...r,
28
28
  errors: [
29
29
  ...r.errors,
30
- { category: "internal_error", message: D, fieldErrors: [] }
30
+ { category: "internal_error", message: y, fieldErrors: [] }
31
31
  ]
32
32
  } : r
33
33
  } : {
34
34
  isLoading: !1,
35
- data: { contractor: e.contractor },
35
+ data: { contractor: e.contractorShow },
36
36
  status: { isPending: d },
37
37
  actions: { dismiss: l },
38
38
  errorHandling: r
39
39
  };
40
40
  }
41
41
  export {
42
- G as useDismissal
42
+ A as useDismissal
43
43
  };
44
44
  //# sourceMappingURL=useDismissal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDismissal.js","sources":["../../../../../src/components/Contractor/Dismissal/useDismissal/useDismissal.ts"],"sourcesContent":["import { useContractorsGet } from '@gusto/embedded-api/react-query/contractorsGet'\nimport { useContractorsPostV1ContractorsContractorUuidTerminationMutation } from '@gusto/embedded-api/react-query/contractorsPostV1ContractorsContractorUuidTermination'\nimport { RFCDate } from '@gusto/embedded-api/types/rfcdate'\nimport type { Contractor } from '@gusto/embedded-api/models/components/contractor'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport type { BaseHookReady, HookLoadingResult, HookSubmitResult } from '@/partner-hook-utils/types'\nimport { formatDateToStringDate } from '@/helpers/dateFormatting'\nimport { GENERIC_API_ERROR_MESSAGE } from '@/types/sdkError'\n\n/**\n * Props for {@link useDismissal}.\n *\n * @public\n */\nexport interface UseDismissalProps {\n /** The contractor identifier to dismiss. */\n contractorId: string\n}\n\n/**\n * Ready state of {@link useDismissal}.\n *\n * @public\n */\nexport interface UseDismissalReady extends BaseHookReady<\n { contractor: Contractor },\n { isPending: boolean }\n> {\n /** Actions available when the hook has loaded. */\n actions: {\n /** Schedules a dismissal effective on `endDate`. */\n dismiss: (endDate: Date) => Promise<HookSubmitResult<unknown> | undefined>\n }\n}\n\n/**\n * Return type of {@link useDismissal}.\n *\n * @public\n */\nexport type UseDismissalResult = HookLoadingResult | UseDismissalReady\n\n/**\n * Fetches a contractor and exposes an action to schedule their dismissal.\n *\n * @param input - The contractor to dismiss.\n * @returns A {@link HookLoadingResult} while the contractor is being fetched, or a {@link UseDismissalReady} once it has arrived.\n * @public\n */\nexport function useDismissal({ contractorId }: UseDismissalProps): UseDismissalResult {\n const contractorQuery = useContractorsGet({ contractorUuid: contractorId })\n const dismissMutation = useContractorsPostV1ContractorsContractorUuidTerminationMutation()\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('Contractor.Dismissal')\n\n const errorHandling = composeErrorHandler([contractorQuery], { submitError, setSubmitError })\n\n const isPending = dismissMutation.isPending\n\n const dismiss = async (endDate: Date): Promise<HookSubmitResult<unknown> | undefined> => {\n let submitResult: HookSubmitResult<unknown> | undefined\n\n await baseSubmitHandler(endDate, async date => {\n await dismissMutation.mutateAsync({\n request: {\n contractorUuid: contractorId,\n requestBody: { endDate: new RFCDate(formatDateToStringDate(date)!) },\n },\n })\n submitResult = { mode: 'create', data: undefined }\n })\n\n return submitResult\n }\n\n const { data, isLoading } = contractorQuery\n\n if (isLoading || !data?.contractor) {\n // A settled query (not `isLoading`) with no query `error` but also no `contractor` in the\n // response body would otherwise report `isLoading: true` forever with an empty error list —\n // `contractor` is optional on the response type, so this isn't a thrown error we'd catch via\n // `composeErrorHandler`. Surface it as an error so the host sees a real failure state instead\n // of a stuck spinner.\n const settledWithNoContractor = !isLoading && !contractorQuery.error\n return {\n isLoading: true,\n errorHandling: settledWithNoContractor\n ? {\n ...errorHandling,\n errors: [\n ...errorHandling.errors,\n { category: 'internal_error', message: GENERIC_API_ERROR_MESSAGE, fieldErrors: [] },\n ],\n }\n : errorHandling,\n }\n }\n\n return {\n isLoading: false,\n data: { contractor: data.contractor },\n status: { isPending },\n actions: { dismiss },\n errorHandling,\n }\n}\n"],"names":["useDismissal","contractorId","contractorQuery","useContractorsGet","dismissMutation","useContractorsPostV1ContractorsContractorUuidTerminationMutation","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","errorHandling","composeErrorHandler","isPending","dismiss","endDate","submitResult","date","RFCDate","formatDateToStringDate","data","isLoading","GENERIC_API_ERROR_MESSAGE"],"mappings":";;;;;;;AAkDO,SAASA,EAAa,EAAE,cAAAC,KAAuD;AACpF,QAAMC,IAAkBC,EAAkB,EAAE,gBAAgBF,GAAc,GACpEG,IAAkBC,EAAA,GAElB;AAAA,IACJ,mBAAAC;AAAA,IACA,OAAOC;AAAA,IACP,UAAUC;AAAA,EAAA,IACRC,EAAc,sBAAsB,GAElCC,IAAgBC,EAAoB,CAACT,CAAe,GAAG,EAAE,aAAAK,GAAa,gBAAAC,GAAgB,GAEtFI,IAAYR,EAAgB,WAE5BS,IAAU,OAAOC,MAAkE;AACvF,QAAIC;AAEJ,iBAAMT,EAAkBQ,GAAS,OAAME,MAAQ;AAC7C,YAAMZ,EAAgB,YAAY;AAAA,QAChC,SAAS;AAAA,UACP,gBAAgBH;AAAA,UAChB,aAAa,EAAE,SAAS,IAAIgB,EAAQC,EAAuBF,CAAI,CAAE,EAAA;AAAA,QAAE;AAAA,MACrE,CACD,GACDD,IAAe,EAAE,MAAM,UAAU,MAAM,OAAA;AAAA,IACzC,CAAC,GAEMA;AAAA,EACT,GAEM,EAAE,MAAAI,GAAM,WAAAC,EAAA,IAAclB;AAE5B,SAAIkB,KAAa,CAACD,GAAM,aAOf;AAAA,IACL,WAAW;AAAA,IACX,eAH8B,CAACC,KAAa,CAAClB,EAAgB,QAIzD;AAAA,MACE,GAAGQ;AAAA,MACH,QAAQ;AAAA,QACN,GAAGA,EAAc;AAAA,QACjB,EAAE,UAAU,kBAAkB,SAASW,GAA2B,aAAa,CAAA,EAAC;AAAA,MAAE;AAAA,IACpF,IAEFX;AAAA,EAAA,IAID;AAAA,IACL,WAAW;AAAA,IACX,MAAM,EAAE,YAAYS,EAAK,WAAA;AAAA,IACzB,QAAQ,EAAE,WAAAP,EAAA;AAAA,IACV,SAAS,EAAE,SAAAC,EAAA;AAAA,IACX,eAAAH;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"useDismissal.js","sources":["../../../../../src/components/Contractor/Dismissal/useDismissal/useDismissal.ts"],"sourcesContent":["import { useContractorsGet } from '@gusto/embedded-api/react-query/contractorsGet'\nimport { useContractorsPostV1ContractorsContractorUuidTerminationMutation } from '@gusto/embedded-api/react-query/contractorsPostV1ContractorsContractorUuidTermination'\nimport { RFCDate } from '@gusto/embedded-api/types/rfcdate'\nimport type { Contractor } from '@gusto/embedded-api/models/components/contractor'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport type { BaseHookReady, HookLoadingResult, HookSubmitResult } from '@/partner-hook-utils/types'\nimport { formatDateToStringDate } from '@/helpers/dateFormatting'\nimport { GENERIC_API_ERROR_MESSAGE } from '@/types/sdkError'\n\n/**\n * Props for {@link useDismissal}.\n *\n * @public\n */\nexport interface UseDismissalProps {\n /** The contractor identifier to dismiss. */\n contractorId: string\n}\n\n/**\n * Ready state of {@link useDismissal}.\n *\n * @public\n */\nexport interface UseDismissalReady extends BaseHookReady<\n { contractor: Contractor },\n { isPending: boolean }\n> {\n /** Actions available when the hook has loaded. */\n actions: {\n /** Schedules a dismissal effective on `endDate`. */\n dismiss: (endDate: Date) => Promise<HookSubmitResult<unknown> | undefined>\n }\n}\n\n/**\n * Return type of {@link useDismissal}.\n *\n * @public\n */\nexport type UseDismissalResult = HookLoadingResult | UseDismissalReady\n\n/**\n * Fetches a contractor and exposes an action to schedule their dismissal.\n *\n * @param input - The contractor to dismiss.\n * @returns A {@link HookLoadingResult} while the contractor is being fetched, or a {@link UseDismissalReady} once it has arrived.\n * @public\n */\nexport function useDismissal({ contractorId }: UseDismissalProps): UseDismissalResult {\n const contractorQuery = useContractorsGet({ contractorUuid: contractorId })\n const dismissMutation = useContractorsPostV1ContractorsContractorUuidTerminationMutation()\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('Contractor.Dismissal')\n\n const errorHandling = composeErrorHandler([contractorQuery], { submitError, setSubmitError })\n\n const isPending = dismissMutation.isPending\n\n const dismiss = async (endDate: Date): Promise<HookSubmitResult<unknown> | undefined> => {\n let submitResult: HookSubmitResult<unknown> | undefined\n\n await baseSubmitHandler(endDate, async date => {\n await dismissMutation.mutateAsync({\n request: {\n contractorUuid: contractorId,\n requestBody: { endDate: new RFCDate(formatDateToStringDate(date)!) },\n },\n })\n submitResult = { mode: 'create', data: undefined }\n })\n\n return submitResult\n }\n\n const { data, isLoading } = contractorQuery\n\n if (isLoading || !data?.contractorShow) {\n // A settled query (not `isLoading`) with no query `error` but also no `contractor` in the\n // response body would otherwise report `isLoading: true` forever with an empty error list —\n // `contractor` is optional on the response type, so this isn't a thrown error we'd catch via\n // `composeErrorHandler`. Surface it as an error so the host sees a real failure state instead\n // of a stuck spinner.\n const settledWithNoContractor = !isLoading && !contractorQuery.error\n return {\n isLoading: true,\n errorHandling: settledWithNoContractor\n ? {\n ...errorHandling,\n errors: [\n ...errorHandling.errors,\n { category: 'internal_error', message: GENERIC_API_ERROR_MESSAGE, fieldErrors: [] },\n ],\n }\n : errorHandling,\n }\n }\n\n return {\n isLoading: false,\n data: { contractor: data.contractorShow },\n status: { isPending },\n actions: { dismiss },\n errorHandling,\n }\n}\n"],"names":["useDismissal","contractorId","contractorQuery","useContractorsGet","dismissMutation","useContractorsPostV1ContractorsContractorUuidTerminationMutation","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","errorHandling","composeErrorHandler","isPending","dismiss","endDate","submitResult","date","RFCDate","formatDateToStringDate","data","isLoading","GENERIC_API_ERROR_MESSAGE"],"mappings":";;;;;;;AAkDO,SAASA,EAAa,EAAE,cAAAC,KAAuD;AACpF,QAAMC,IAAkBC,EAAkB,EAAE,gBAAgBF,GAAc,GACpEG,IAAkBC,EAAA,GAElB;AAAA,IACJ,mBAAAC;AAAA,IACA,OAAOC;AAAA,IACP,UAAUC;AAAA,EAAA,IACRC,EAAc,sBAAsB,GAElCC,IAAgBC,EAAoB,CAACT,CAAe,GAAG,EAAE,aAAAK,GAAa,gBAAAC,GAAgB,GAEtFI,IAAYR,EAAgB,WAE5BS,IAAU,OAAOC,MAAkE;AACvF,QAAIC;AAEJ,iBAAMT,EAAkBQ,GAAS,OAAME,MAAQ;AAC7C,YAAMZ,EAAgB,YAAY;AAAA,QAChC,SAAS;AAAA,UACP,gBAAgBH;AAAA,UAChB,aAAa,EAAE,SAAS,IAAIgB,EAAQC,EAAuBF,CAAI,CAAE,EAAA;AAAA,QAAE;AAAA,MACrE,CACD,GACDD,IAAe,EAAE,MAAM,UAAU,MAAM,OAAA;AAAA,IACzC,CAAC,GAEMA;AAAA,EACT,GAEM,EAAE,MAAAI,GAAM,WAAAC,EAAA,IAAclB;AAE5B,SAAIkB,KAAa,CAACD,GAAM,iBAOf;AAAA,IACL,WAAW;AAAA,IACX,eAH8B,CAACC,KAAa,CAAClB,EAAgB,QAIzD;AAAA,MACE,GAAGQ;AAAA,MACH,QAAQ;AAAA,QACN,GAAGA,EAAc;AAAA,QACjB,EAAE,UAAU,kBAAkB,SAASW,GAA2B,aAAa,CAAA,EAAC;AAAA,MAAE;AAAA,IACpF,IAEFX;AAAA,EAAA,IAID;AAAA,IACL,WAAW;AAAA,IACX,MAAM,EAAE,YAAYS,EAAK,eAAA;AAAA,IACzB,QAAQ,EAAE,WAAAP,EAAA;AAAA,IACV,SAAS,EAAE,SAAAC,EAAA;AAAA,IACX,eAAAH;AAAA,EAAA;AAEJ;"}
@@ -1,59 +1,63 @@
1
- import { jsx as n, jsxs as r } from "react/jsx-runtime";
2
- import { useTranslation as g } from "react-i18next";
3
- import { useContractorsGetSuspense as C } from "@gusto/embedded-api/react-query/contractorsGet";
4
- import { useCompaniesGetSuspense as x } from "@gusto/embedded-api/react-query/companiesGet";
1
+ import { jsx as o, jsxs as i } from "react/jsx-runtime";
2
+ import { useTranslation as f } from "react-i18next";
3
+ import { useContractorsGetSuspense as h } from "@gusto/embedded-api/react-query/contractorsGet";
4
+ import { GetV1ContractorsContractorUuidQueryParamInclude as C } from "@gusto/embedded-api/models/operations/getv1contractorscontractoruuid";
5
5
  import c from "dompurify";
6
- import { useMemo as m } from "react";
7
- import { BaseComponent as N } from "../../Base/Base.js";
8
- import { useBase as y } from "../../Base/useBase.js";
6
+ import { useMemo as s } from "react";
7
+ import { BaseComponent as g } from "../../Base/Base.js";
8
+ import { useBase as N } from "../../Base/useBase.js";
9
9
  import { Flex as a } from "../../Common/Flex/Flex.js";
10
- import { ActionsLayout as S } from "../../Common/ActionsLayout/ActionsLayout.js";
11
- import { useComponentContext as D } from "../../../contexts/ComponentAdapter/useComponentContext.js";
12
- import { useI18n as L, useComponentDictionary as R } from "../../../i18n/I18n.js";
13
- import { componentEvents as T } from "../../../shared/constants.js";
14
- import v from "../../../assets/icons/icon-arrow-right.svg.js";
10
+ import { ActionsLayout as x } from "../../Common/ActionsLayout/ActionsLayout.js";
11
+ import { useComponentContext as y } from "../../../contexts/ComponentAdapter/useComponentContext.js";
12
+ import { useI18n as S, useComponentDictionary as D } from "../../../i18n/I18n.js";
13
+ import { componentEvents as L } from "../../../shared/constants.js";
14
+ import R from "../../../assets/icons/icon-arrow-right.svg.js";
15
15
  function w(e) {
16
- return /* @__PURE__ */ n(N, { ...e, children: /* @__PURE__ */ n(A, { ...e, children: e.children }) });
16
+ return /* @__PURE__ */ o(g, { ...e, children: /* @__PURE__ */ o(T, { ...e, children: e.children }) });
17
17
  }
18
- const A = ({ contractorId: e, companyId: p, className: d, dictionary: l }) => {
19
- L("Contractor.Landing"), R("Contractor.Landing", l);
20
- const { onEvent: u } = y(), o = D(), { t } = g("Contractor.Landing"), {
21
- data: { contractor: i }
22
- } = C({ contractorUuid: e }), f = m(
23
- () => c.sanitize(i?.firstName ?? i?.businessName ?? t("fallbackName")),
24
- [i, t]
25
- ), {
26
- data: { company: s }
27
- } = x({ companyId: p }), h = m(() => c.sanitize(s?.name ?? ""), [s]);
28
- return /* @__PURE__ */ n("section", { className: d, children: /* @__PURE__ */ n(
29
- o.Box,
18
+ const T = ({ contractorId: e, className: m, dictionary: d }) => {
19
+ S("Contractor.Landing"), D("Contractor.Landing", d);
20
+ const { onEvent: p } = N(), n = y(), { t } = f("Contractor.Landing"), {
21
+ data: { contractorShow: r }
22
+ } = h({
23
+ contractorUuid: e,
24
+ include: [C.CompanyName]
25
+ }), l = s(
26
+ () => c.sanitize(r?.firstName ?? r?.businessName ?? t("fallbackName")),
27
+ [r, t]
28
+ ), u = s(
29
+ () => c.sanitize(r?.companyName ?? ""),
30
+ [r]
31
+ );
32
+ return /* @__PURE__ */ o("section", { className: m, children: /* @__PURE__ */ o(
33
+ n.Box,
30
34
  {
31
- footer: /* @__PURE__ */ n(S, { children: /* @__PURE__ */ r(
32
- o.Button,
35
+ footer: /* @__PURE__ */ o(x, { children: /* @__PURE__ */ i(
36
+ n.Button,
33
37
  {
34
38
  variant: "secondary",
35
39
  onClick: () => {
36
- u(T.CONTRACTOR_SELF_ONBOARDING_START);
40
+ p(L.CONTRACTOR_SELF_ONBOARDING_START);
37
41
  },
38
42
  children: [
39
43
  t("getStartedCta"),
40
- /* @__PURE__ */ n(v, { "aria-hidden": !0 })
44
+ /* @__PURE__ */ o(R, { "aria-hidden": !0 })
41
45
  ]
42
46
  }
43
47
  ) }),
44
- children: /* @__PURE__ */ r(a, { alignItems: "center", flexDirection: "column", gap: 32, children: [
45
- /* @__PURE__ */ r(a, { flexDirection: "column", gap: 4, children: [
46
- /* @__PURE__ */ n(o.Heading, { as: "h2", children: t("landingSubtitle", {
47
- contractorName: f,
48
- companyName: h,
48
+ children: /* @__PURE__ */ i(a, { alignItems: "center", flexDirection: "column", gap: 32, children: [
49
+ /* @__PURE__ */ i(a, { flexDirection: "column", gap: 4, children: [
50
+ /* @__PURE__ */ o(n.Heading, { as: "h2", children: t("landingSubtitle", {
51
+ contractorName: l,
52
+ companyName: u,
49
53
  interpolation: { escapeValue: !1 }
50
54
  }) }),
51
- /* @__PURE__ */ n(o.Text, { variant: "supporting", children: t("landingDescription") })
55
+ /* @__PURE__ */ o(n.Text, { variant: "supporting", children: t("landingDescription") })
52
56
  ] }),
53
- /* @__PURE__ */ r(a, { flexDirection: "column", gap: 8, children: [
54
- /* @__PURE__ */ n(o.Heading, { as: "h3", children: t("stepsSubtitle") }),
55
- /* @__PURE__ */ n(
56
- o.UnorderedList,
57
+ /* @__PURE__ */ i(a, { flexDirection: "column", gap: 8, children: [
58
+ /* @__PURE__ */ o(n.Heading, { as: "h3", children: t("stepsSubtitle") }),
59
+ /* @__PURE__ */ o(
60
+ n.UnorderedList,
57
61
  {
58
62
  items: [
59
63
  t("steps.profile"),