@gusto/embedded-react-sdk 0.57.1 → 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.
- package/CHANGELOG.md +33 -0
- package/dist/components/Base/Base.js +2 -3
- package/dist/components/Base/Base.js.map +1 -1
- package/dist/components/Common/DateRangeFilter/DateRangeFilter.js +32 -32
- package/dist/components/Common/DateRangeFilter/DateRangeFilter.js.map +1 -1
- package/dist/components/Common/OnboardingStatusBadge/index.js.map +1 -1
- package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js +6 -8
- package/dist/components/Company/AssignSignatory/AssignSignatorySelection.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js +8 -10
- package/dist/components/Company/AssignSignatory/CreateSignatory/Actions.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +3 -6
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js +6 -8
- package/dist/components/Company/AssignSignatory/InviteSignatory/Actions.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +3 -6
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/TitleSelect.js +10 -11
- package/dist/components/Company/AssignSignatory/TitleSelect.js.map +1 -1
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js +5 -8
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/Actions.js +8 -9
- package/dist/components/Company/BankAccount/BankAccountForm/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/context.js +3 -6
- package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountList/Actions.js +10 -12
- package/dist/components/Company/BankAccount/BankAccountList/Actions.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js +11 -13
- package/dist/components/Company/BankAccount/BankAccountVerify/Actions.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/Actions.js +5 -7
- package/dist/components/Company/DocumentSigner/DocumentList/Actions.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +3 -6
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Company/FederalTaxes/Actions.js +7 -9
- package/dist/components/Company/FederalTaxes/Actions.js.map +1 -1
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js +8 -11
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
- package/dist/components/Company/Industry/Actions.js +5 -7
- package/dist/components/Company/Industry/Actions.js.map +1 -1
- package/dist/components/Company/Industry/Context.js +6 -9
- package/dist/components/Company/Industry/Context.js.map +1 -1
- package/dist/components/Company/Industry/Edit.js +10 -12
- package/dist/components/Company/Industry/Edit.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/Actions.js +8 -10
- package/dist/components/Company/Locations/LocationForm/Actions.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js +3 -6
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/Actions.js +6 -8
- package/dist/components/Company/Locations/LocationsList/Actions.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/List.js +11 -13
- package/dist/components/Company/Locations/LocationsList/List.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js +3 -6
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/context.js +3 -6
- package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
- package/dist/components/Company/PaySchedule/PayScheduleForm.js +66 -62
- package/dist/components/Company/PaySchedule/PayScheduleForm.js.map +1 -1
- package/dist/components/Company/PaySchedule/PayScheduleForm.module.scss.js +2 -2
- package/dist/components/Company/PaySchedule/management/AutoPilotDialog/AutoPilotDialog.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/AutoPilotDialog/useAutoPilotDialog.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentCompensationStepPresentation.js +34 -14
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentCompensationStepPresentation.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentDepartmentStepPresentation.js +106 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentDepartmentStepPresentation.js.map +1 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentEmployeeStepPresentation.js +136 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentEmployeeStepPresentation.js.map +1 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentScheduleStepPresentation.js +38 -20
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentScheduleStepPresentation.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentTypeStepPresentation.js +78 -44
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentTypeStepPresentation.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignment.js +45 -37
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignment.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.js +253 -92
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/departmentAccess.js +22 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/departmentAccess.js.map +1 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/employeeJob.js +13 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/employeeJob.js.map +1 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/payScheduleAssignmentStateMachine.js +48 -43
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/payScheduleAssignmentStateMachine.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/scheduleLabel.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/useAssignableEmployees.js +57 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleAssignment/useAssignableEmployees.js.map +1 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleCompensationOverviewPresentation.js +11 -13
- package/dist/components/Company/PaySchedule/management/PayScheduleCompensationOverviewPresentation.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/PayScheduleDepartmentOverviewPresentation.js +83 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleDepartmentOverviewPresentation.js.map +1 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleEmployeeOverviewPresentation.js +84 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleEmployeeOverviewPresentation.js.map +1 -0
- package/dist/components/Company/PaySchedule/management/PayScheduleManagementComponents.js +49 -44
- package/dist/components/Company/PaySchedule/management/PayScheduleManagementComponents.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/PayScheduleOverview.js +109 -39
- package/dist/components/Company/PaySchedule/management/PayScheduleOverview.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/PayScheduleOverviewPresentation.js.map +1 -1
- package/dist/components/Company/PaySchedule/management/payScheduleManagementStateMachine.js.map +1 -1
- package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js +5 -7
- package/dist/components/Company/StateTaxes/StateTaxesForm/Actions.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +3 -6
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js +6 -8
- package/dist/components/Company/StateTaxes/StateTaxesList/Actions.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js +3 -6
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/TaxRateManagement/context.js +3 -6
- package/dist/components/Company/StateTaxes/TaxRateManagement/context.js.map +1 -1
- package/dist/components/Contractor/Address/shared/useContractorAddressForm/useContractorAddressForm.js +5 -5
- package/dist/components/Contractor/Address/shared/useContractorAddressForm/useContractorAddressForm.js.map +1 -1
- package/dist/components/Contractor/Address/shared/useContractorAddressSummary/useContractorAddressSummary.js +1 -1
- package/dist/components/Contractor/Address/shared/useContractorAddressSummary/useContractorAddressSummary.js.map +1 -1
- package/dist/components/Contractor/Compensation/management/CompensationCard/CompensationCard.js +16 -17
- package/dist/components/Contractor/Compensation/management/CompensationCard/CompensationCard.js.map +1 -1
- package/dist/components/Contractor/Compensation/shared/useContractorCompensationSummary/useContractorCompensationSummary.js +4 -4
- package/dist/components/Contractor/Compensation/shared/useContractorCompensationSummary/useContractorCompensationSummary.js.map +1 -1
- package/dist/components/Contractor/Compensation/shared/useContractorPayForm/useContractorPayForm.js +3 -3
- package/dist/components/Contractor/Compensation/shared/useContractorPayForm/useContractorPayForm.js.map +1 -1
- package/dist/components/Contractor/ContractorList/shared/useContractorList.js +6 -6
- package/dist/components/Contractor/ContractorList/shared/useContractorList.js.map +1 -1
- package/dist/components/Contractor/Dashboard/Dashboard.js +20 -20
- package/dist/components/Contractor/Dashboard/Dashboard.js.map +1 -1
- package/dist/components/Contractor/Dismissal/useDismissal/useDismissal.js +10 -10
- package/dist/components/Contractor/Dismissal/useDismissal/useDismissal.js.map +1 -1
- package/dist/components/Contractor/Documents/management/DocumentsCard/DocumentsCard.js +8 -9
- package/dist/components/Contractor/Documents/management/DocumentsCard/DocumentsCard.js.map +1 -1
- package/dist/components/Contractor/Landing/Landing.js +43 -39
- package/dist/components/Contractor/Landing/Landing.js.map +1 -1
- package/dist/components/Contractor/NewHireReport/NewHireReport.js +3 -3
- package/dist/components/Contractor/NewHireReport/NewHireReport.js.map +1 -1
- package/dist/components/Contractor/PaymentMethod/shared/ContractorBankAccountFormBody/ContractorBankAccountFormBody.js +6 -8
- package/dist/components/Contractor/PaymentMethod/shared/ContractorBankAccountFormBody/ContractorBankAccountFormBody.js.map +1 -1
- package/dist/components/Contractor/Payments/CreateHistoricalPayment/CreateHistoricalPayment.js +1 -1
- package/dist/components/Contractor/Payments/CreateHistoricalPayment/CreateHistoricalPayment.js.map +1 -1
- package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js +10 -10
- package/dist/components/Contractor/Payments/CreatePayment/CreatePayment.js.map +1 -1
- package/dist/components/Contractor/Payments/HistoricalPaymentSummary/HistoricalPaymentSummary.js +4 -4
- package/dist/components/Contractor/Payments/HistoricalPaymentSummary/HistoricalPaymentSummary.js.map +1 -1
- package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistory.js +8 -8
- package/dist/components/Contractor/Payments/PaymentHistory/PaymentHistory.js.map +1 -1
- package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatement.js +5 -5
- package/dist/components/Contractor/Payments/PaymentStatement/PaymentStatement.js.map +1 -1
- package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummary.js +3 -3
- package/dist/components/Contractor/Payments/PaymentSummary/PaymentSummary.js.map +1 -1
- package/dist/components/Contractor/Profile/management/ProfileCard/ProfileCard.js +26 -27
- package/dist/components/Contractor/Profile/management/ProfileCard/ProfileCard.js.map +1 -1
- package/dist/components/Contractor/Profile/management/ProfileEditForm.js +11 -11
- package/dist/components/Contractor/Profile/onboarding/SelfOnboardingContractorProfile.js +1 -1
- package/dist/components/Contractor/Profile/onboarding/SelfOnboardingContractorProfile.js.map +1 -1
- package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.js +1 -1
- package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.js.map +1 -1
- package/dist/components/Contractor/Profile/shared/useContractorProfileSummary/useContractorProfileSummary.js +1 -1
- package/dist/components/Contractor/Profile/shared/useContractorProfileSummary/useContractorProfileSummary.js.map +1 -1
- package/dist/components/Contractor/SelfOnboardingFlow/SelfOnboardingComponents.js +2 -9
- package/dist/components/Contractor/SelfOnboardingFlow/SelfOnboardingComponents.js.map +1 -1
- package/dist/components/Contractor/Submit/Submit.js +18 -18
- package/dist/components/Contractor/Submit/Submit.js.map +1 -1
- package/dist/components/Contractor/shared/SelectContractors/useSelectContractors.js +6 -6
- package/dist/components/Contractor/shared/SelectContractors/useSelectContractors.js.map +1 -1
- package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js +25 -25
- package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js.map +1 -1
- package/dist/components/Employee/Compensation/shared/useCompensationManagement/useCompensationManagement.js +15 -15
- package/dist/components/Employee/Compensation/shared/useCompensationManagement/useCompensationManagement.js.map +1 -1
- package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.js +1 -1
- package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.js.map +1 -1
- package/dist/components/Employee/Dashboard/Dashboard.js +25 -25
- package/dist/components/Employee/Dashboard/Dashboard.js.map +1 -1
- package/dist/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.js +12 -13
- package/dist/components/Employee/Deductions/management/DeductionsCard/DeductionsCard.js.map +1 -1
- package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.js +12 -13
- package/dist/components/Employee/Documents/management/DocumentsCard/DocumentsCard.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Actions.js +6 -8
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/Actions.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +3 -6
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentSigner.js +7 -7
- package/dist/components/Employee/Documents/onboarding/DocumentSigner/DocumentSigner.js.map +1 -1
- package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocuments.js +1 -1
- package/dist/components/Employee/Documents/onboarding/EmployeeDocuments/EmployeeDocuments.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.js +3 -4
- package/dist/components/Employee/FederalTaxes/management/FederalTaxesEditForm.js.map +1 -1
- package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.js +3 -4
- package/dist/components/Employee/FederalTaxes/onboarding/FederalTaxes.js.map +1 -1
- package/dist/components/Employee/HomeAddress/management/useHomeAddressManagement.js +6 -6
- package/dist/components/Employee/HomeAddress/management/useHomeAddressManagement.js.map +1 -1
- package/dist/components/Employee/Landing/Landing.js +37 -33
- package/dist/components/Employee/Landing/Landing.js.map +1 -1
- package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js +27 -27
- package/dist/components/Employee/OnboardingSummary/OnboardingSummary.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.js +22 -24
- package/dist/components/Employee/PaymentMethod/shared/BankFormBody/BankFormBody.js.map +1 -1
- package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.js +8 -9
- package/dist/components/Employee/Paystubs/management/PaystubsCard/PaystubsCard.js.map +1 -1
- package/dist/components/Employee/Profile/management/ProfileCard/ProfileCard.js +14 -15
- package/dist/components/Employee/Profile/management/ProfileCard/ProfileCard.js.map +1 -1
- package/dist/components/Employee/Profile/management/ProfileEditForm.js +1 -1
- package/dist/components/Employee/Profile/onboarding/EmployeeProfile.js +1 -1
- package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/useEmployeeDetailsForm.js +6 -6
- package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/useEmployeeDetailsForm.js.map +1 -1
- package/dist/components/Employee/Profile/shared/useEmployeeProfileSummary/useEmployeeProfileSummary.js +1 -1
- package/dist/components/Employee/Profile/shared/useEmployeeProfileSummary/useEmployeeProfileSummary.js.map +1 -1
- package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingComponents.js +8 -15
- package/dist/components/Employee/SelfOnboardingFlow/SelfOnboardingComponents.js.map +1 -1
- package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.js +7 -8
- package/dist/components/Employee/StateTaxes/management/StateTaxesEditForm.js.map +1 -1
- package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.js +7 -8
- package/dist/components/Employee/StateTaxes/onboarding/StateTaxes.js.map +1 -1
- package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.js +11 -11
- package/dist/components/Employee/Terminations/TerminateEmployee/TerminateEmployee.js.map +1 -1
- package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummary.js +12 -12
- package/dist/components/Employee/Terminations/TerminationSummary/TerminationSummary.js.map +1 -1
- package/dist/components/Employee/WorkAddress/management/useWorkAddressManagement.js +26 -26
- package/dist/components/Employee/WorkAddress/management/useWorkAddressManagement.js.map +1 -1
- package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js +56 -54
- package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js.map +1 -1
- package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js +14 -16
- package/dist/components/Payroll/OffCyclePayPeriodDateForm/OffCyclePayPeriodDateFormPresentation.js.map +1 -1
- package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js +6 -8
- package/dist/components/Payroll/OffCycleReasonSelection/OffCycleReasonSelectionPresentation.js.map +1 -1
- package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.js +9 -11
- package/dist/components/Payroll/OffCycleTaxWithholdingModal/OffCycleTaxWithholdingModal.js.map +1 -1
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js +66 -64
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js +1 -1
- package/dist/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js +6 -6
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/usePayrollEditEmployeeForm.js +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/usePayrollEditEmployeeForm.js.map +1 -1
- package/dist/components/Payroll/PayrollHistory/PayrollHistory.js.map +1 -1
- package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js +75 -89
- package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollList/PayrollList.js.map +1 -1
- package/dist/components/Payroll/PayrollList/PayrollListPresentation.js +9 -9
- package/dist/components/Payroll/PayrollList/PayrollListPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js +44 -46
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
- package/dist/components/Payroll/TransitionCreation/TransitionCreation.js +63 -61
- package/dist/components/Payroll/TransitionCreation/TransitionCreation.js.map +1 -1
- package/dist/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.js +14 -13
- package/dist/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.js.map +1 -1
- package/dist/components/Payroll/helpers.js +53 -49
- package/dist/components/Payroll/helpers.js.map +1 -1
- package/dist/components/Payroll/payrollTypes.js +1 -1
- package/dist/components/Payroll/payrollTypes.js.map +1 -1
- package/dist/components/Payroll/usePreparedPayrollData.js +13 -16
- package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
- package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.js +2 -2
- package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.js.map +1 -1
- package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js +2 -4
- package/dist/components/TimeOff/HolidayPolicyDetail/HolidayPolicyDetailPresentation.js.map +1 -1
- package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js +6 -8
- package/dist/components/TimeOff/shared/EmployeeTable/EmployeeTable.js.map +1 -1
- package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js +28 -30
- package/dist/components/TimeOff/shared/PolicyDetailLayout/PolicyDetailLayout.js.map +1 -1
- package/dist/contexts/ApiProvider/payrollOffCycleReasonEnumHook.js +1 -1
- package/dist/contexts/ApiProvider/payrollOffCycleReasonEnumHook.js.map +1 -1
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +2 -4
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
- package/dist/helpers/dateFormatting.js +47 -40
- package/dist/helpers/dateFormatting.js.map +1 -1
- package/dist/i18n/en/Company.Management.PaySchedule.json.js +37 -17
- package/dist/i18n/en/Company.Management.PaySchedule.json.js.map +1 -1
- package/dist/i18n/en/Company.Management.PayScheduleAssignment.json.js +20 -10
- package/dist/i18n/en/Company.Management.PayScheduleAssignment.json.js.map +1 -1
- package/dist/i18n/en/Payroll.PayrollHistory.json.js +5 -5
- package/dist/i18n/en/Payroll.PayrollList.json.js +5 -5
- package/dist/i18n/en/Payroll.PayrollOverview.json.js +1 -1
- package/dist/package.json.js +1 -1
- package/dist/partner-hook-utils/form/fields/CheckboxHookField.js +8 -10
- package/dist/partner-hook-utils/form/fields/CheckboxHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/NumberInputHookField.js +12 -14
- package/dist/partner-hook-utils/form/fields/NumberInputHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js +13 -15
- package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/SelectHookField.js +10 -12
- package/dist/partner-hook-utils/form/fields/SelectHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/SwitchHookField.js +14 -16
- package/dist/partner-hook-utils/form/fields/SwitchHookField.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/TextInputHookField.js +8 -10
- package/dist/partner-hook-utils/form/fields/TextInputHookField.js.map +1 -1
- package/dist/shared/constants.js +5 -5
- package/dist/shared/constants.js.map +1 -1
- package/dist/src/components/Common/DateRangeFilter/DateRangeFilter.d.ts +2 -2
- package/dist/src/components/Common/OnboardingStatusBadge/index.d.ts +1 -1
- package/dist/src/components/Company/PaySchedule/PayScheduleForm.d.ts +6 -0
- package/dist/src/components/Company/PaySchedule/management/AutoPilotDialog/AutoPilotDialog.d.ts +1 -1
- package/dist/src/components/Company/PaySchedule/management/AutoPilotDialog/useAutoPilotDialog.d.ts +1 -1
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentCompensationStepPresentation.d.ts +10 -3
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentDepartmentStepPresentation.d.ts +21 -0
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentEmployeeStepPresentation.d.ts +34 -0
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentScheduleStepPresentation.d.ts +9 -3
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/AssignmentTypeStepPresentation.d.ts +5 -1
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignment.d.ts +10 -10
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/PayScheduleAssignmentComponents.d.ts +12 -4
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/departmentAccess.d.ts +19 -0
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/employeeJob.d.ts +17 -0
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/scheduleLabel.d.ts +1 -1
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/useAssignableEmployees.d.ts +34 -0
- package/dist/src/components/Company/PaySchedule/management/PayScheduleAssignment/usePayScheduleAssignment.d.ts +16 -3
- package/dist/src/components/Company/PaySchedule/management/PayScheduleCompensationOverviewPresentation.d.ts +1 -1
- package/dist/src/components/Company/PaySchedule/management/PayScheduleDepartmentOverviewPresentation.d.ts +23 -0
- package/dist/src/components/Company/PaySchedule/management/PayScheduleEmployeeOverviewPresentation.d.ts +25 -0
- package/dist/src/components/Company/PaySchedule/management/PayScheduleManagementComponents.d.ts +1 -1
- package/dist/src/components/Company/PaySchedule/management/PayScheduleOverviewPresentation.d.ts +1 -1
- package/dist/src/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.d.ts +1 -1
- package/dist/src/components/Contractor/Landing/Landing.d.ts +5 -2
- package/dist/src/components/Employee/Landing/Landing.d.ts +5 -2
- package/dist/src/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.d.ts +1 -1
- package/dist/src/components/Payroll/PayrollConfiguration/usePayrollConfigurationData.d.ts +1 -1
- package/dist/src/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.d.ts +1 -1
- package/dist/src/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/usePayrollEditEmployeeForm.d.ts +2 -2
- package/dist/src/components/Payroll/PayrollHistory/PayrollHistoryPresentation.d.ts +1 -1
- package/dist/src/components/Payroll/PayrollList/PayrollListPresentation.d.ts +2 -2
- package/dist/src/components/Payroll/PayrollOverview/PayrollOverviewPresentation.d.ts +1 -1
- package/dist/src/components/Payroll/helpers.d.ts +22 -2
- package/dist/src/components/Payroll/usePreparedPayrollData.d.ts +2 -2
- package/dist/src/helpers/dateFormatting.d.ts +13 -0
- package/dist/src/i18n/types.d.ts +96 -6
- package/dist/src/models/external.d.ts +63 -48
- package/dist/src/shared/constants.d.ts +1 -1
- package/dist/style.css +1 -1
- package/docs/guides/endpoint-inventory.json +33 -13
- package/package.json +21 -21
|
@@ -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":";;;;;;;;;;;AA8FA,MAAMA,wBAA2C,IAAY;AAAA,EAC3DC,EAA2B;AAAA,EAC3BA,EAA2B;AAC7B,CAAC;AAED,SAASC,EACPC,GACAC,GACoB;AACpB,QAAMC,IAA8B,CAAA,GAC9BC,IAASH,EAAW;AAE1B,SAAIC,MAAmB,YACrBC,EAAQ,KAAK,MAAM,GAEfF,EAAW,sBAAsBA,EAAW,6BAC9CE,EAAQ,KAAK,eAAe,IACnBF,EAAW,iBAAiBA,EAAW,gCAChDE,EAAQ,KAAK,kBAAkB,IACtB,CAACF,EAAW,iBAAiB,CAACA,EAAW,sBAClDE,EAAQ,KAAK,SAAS,GAGjBA,KAGLD,MAAmB,gBACrBC,EAAQ,KAAK,MAAM,GAEfF,EAAW,qBACTA,EAAW,8BACbE,EAAQ,KAAK,eAAe,IAErBF,EAAW,gCACpBE,EAAQ,KAAK,kBAAkB,IACrBF,EAAW,YACrBE,EAAQ,KAAK,QAAQ,GAGhBA,MAKuB,CAAC,CAACC,KAAUN,EAAqC,IAAIM,CAAM,IAKzFD,EAAQ,KAAK,wBAAwB,IAFrCA,EAAQ,KAAK,MAAM,GAKrBA,EAAQ,KAAK,QAAQ,GAGnBD,MAAmB,gBACnBE,MAAWL,EAA2B,wBAEtCI,EAAQ,KAAK,MAAM,GAGdA;AACT;AAoBO,SAASE,EAAkB;AAAA,EAChC,WAAAC;AAAA,EACA,gBAAAJ;AACF,GAAoD;AAClD,QAAM,EAAE,aAAAK,GAAa,cAAAC,GAAc,oBAAAC,EAAA,IAAuBC,EAAA,GAEpDC,IAAcC,EAAQ,MAAM;AAChC,UAAMC,IAAa;AAAA,MACjB,aAAaP;AAAA,MACb,MAAMC;AAAA,MACN,KAAKC;AAAA,IAAA;AAGP,YAAQN,GAAA;AAAA,MACN,KAAK;AACH,eAAO,EAAE,GAAGW,GAAY,iBAAiB,GAAA;AAAA,MAC3C,KAAK;AACH,eAAO,EAAE,GAAGA,GAAY,WAAW,GAAA;AAAA,MACrC,KAAK;AACH,eAAO,EAAE,GAAGA,GAAY,YAAY,GAAA;AAAA,MACtC;AACE,eAAOA;AAAA,IAAA;AAAA,EAEb,GAAG,CAACP,GAAWC,GAAaC,GAAcN,CAAc,CAAC,GAEnDY,IAAmBC,EAAmBJ,GAAa,EAAE,iBAAiBK,GAAkB,GAExFC,IAA2BC,EAAA,GAC3BC,IAAiCC,EAAA,GACjCC,IACJC,EAAA,GACIC,IAAuBC,EAAA,GAEvB;AAAA,IACJ,mBAAAC;AAAA,IACA,OAAOC;AAAA,IACP,UAAUC;AAAA,EAAA,IACRC,EAAc,gBAAgB,GAE5BC,IAAgBC,EAAoB,CAAChB,CAAgB,GAAG,EAAE,aAAAY,GAAa,gBAAAC,GAAgB,GAEvFI,IACJd,EAAyB,aACzBE,EAA+B,aAC/BE,EAAwB,aACxBE,EAAqB,WAEjB,EAAE,MAAAS,GAAM,YAAAC,EAAA,IAAenB,GAEvBoB,IAActB,EAAiC,OAC3CoB,GAAM,eAAe,CAAA,GAAI,IAAI,CAAA/B,OAAe;AAAA,IAClD,GAAGA;AAAA,IACH,gBAAgBD,EAAqBC,GAAYC,CAAc;AAAA,EAAA,EAC/D,GACD,CAAC8B,GAAM,aAAa9B,CAAc,CAAC,GAEhCiC,IAAkBH,GAAM,SAAS,SAAS,UAC5CvB,EAAmBuB,EAAK,SAAS,SAAS,SAASC,CAAU,IAC7D;AAAA,IACE,gBAAgB,MAAM;AAAA,IAAC;AAAA,IACvB,iBAAiB,MAAM;AAAA,IAAC;AAAA,IACxB,gBAAgB,MAAM;AAAA,IAAC;AAAA,IACvB,oBAAoB,MAAM;AAAA,IAAC;AAAA,IAC3B,0BAA0B,MAAM;AAAA,IAAC;AAAA,IACjC,aAAa;AAAA,IACb,YAAY;AAAA,IACZ,YAAY;AAAA,IACZ,cAAc;AAAA,EAAA,GAGdG,IAAW,OAAOC,MAAwC;AAC9D,UAAMZ,EAAkBY,GAAc,OAAMC,MAAM;AAChD,YAAMrB,EAAyB,YAAY;AAAA,QACzC,SAAS,EAAE,gBAAgBqB,EAAA;AAAA,MAAG,CAC/B;AAAA,IACH,CAAC;AAAA,EACH,GAEMC,IAAyB,OAC7BF,MAC0D;AAC1D,QAAIG;AAEJ,iBAAMf,EAAkBY,GAAc,OAAMC,MAAM;AAUhD,MAAAE,KATe,MAAMrB,EAA+B,YAAY;AAAA,QAC9D,SAAS;AAAA,UACP,gBAAgBmB;AAAA,UAChB,6CAA6C;AAAA,YAC3C,kBAAkBvC,EAA2B;AAAA,UAAA;AAAA,QAC/C;AAAA,MACF,CACD,GAEyB;AAAA,IAC5B,CAAC,GAEMyC;AAAA,EACT,GAEMC,IAAoB,OAAOJ,MAAwC;AACvE,UAAMZ,EAAkBY,GAAc,OAAMC,MAAM;AAChD,YAAMjB,EAAwB,YAAY;AAAA,QACxC,SAAS,EAAE,gBAAgBiB,EAAA;AAAA,MAAG,CAC/B;AAAA,IACH,CAAC;AAAA,EACH,GAEMI,IAAiB,OAAOL,MAAwC;AACpE,UAAMZ,EAAkBY,GAAc,OAAMC,MAAM;AAChD,YAAMf,EAAqB,YAAY;AAAA,QACrC,SAAS,EAAE,gBAAgBe,EAAA;AAAA,MAAG,CAC/B;AAAA,IACH,CAAC;AAAA,EACH;AAIA,SAFkB,CAACN,KAAQC,IAGlB;AAAA,IACL,WAAW;AAAA,IACX,eAAAJ;AAAA,EAAA,IAIG;AAAA,IACL,WAAW;AAAA,IACX,MAAM;AAAA,MACJ,aAAAK;AAAA,IAAA;AAAA,IAEF,YAAYC;AAAA,IACZ,QAAQ,EAAE,YAAAF,GAAY,WAAAF,EAAA;AAAA,IACtB,SAAS,EAAE,UAAAK,GAAU,wBAAAG,GAAwB,mBAAAE,GAAmB,gBAAAC,EAAA;AAAA,IAChE,eAAAb;AAAA,EAAA;AAEJ;"}
|
|
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
|
|
6
|
-
import { PayView as
|
|
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
|
|
15
|
-
contractorId:
|
|
14
|
+
function w({
|
|
15
|
+
contractorId: e,
|
|
16
16
|
dictionary: n,
|
|
17
|
-
onEvent:
|
|
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(
|
|
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),
|
|
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(
|
|
45
|
-
s === "pay" && /* @__PURE__ */ t(
|
|
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:
|
|
50
|
-
onEvent:
|
|
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
|
|
59
|
-
const { t: n } = p("Contractor.Dashboard"),
|
|
60
|
-
data: {
|
|
61
|
-
} = N({ contractorUuid:
|
|
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(
|
|
68
|
-
/* @__PURE__ */ t(
|
|
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:
|
|
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:
|
|
76
|
+
FallbackComponent: e,
|
|
77
77
|
LoaderComponent: n,
|
|
78
|
-
children: /* @__PURE__ */ t(
|
|
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":";;;;;;;;;;;;;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,
|
|
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":"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"}
|
|
@@ -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
|
|
6
|
-
import { formatDateToStringDate as
|
|
7
|
-
import { GENERIC_API_ERROR_MESSAGE as
|
|
8
|
-
function
|
|
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 =
|
|
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(
|
|
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?.
|
|
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:
|
|
30
|
+
{ category: "internal_error", message: y, fieldErrors: [] }
|
|
31
31
|
]
|
|
32
32
|
} : r
|
|
33
33
|
} : {
|
|
34
34
|
isLoading: !1,
|
|
35
|
-
data: { contractor: e.
|
|
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
|
-
|
|
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?.
|
|
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;"}
|
|
@@ -4,16 +4,15 @@ import { useTranslation as f } from "react-i18next";
|
|
|
4
4
|
import { useContractorDocumentsGetPdf as D } from "@gusto/embedded-api/react-query/contractorDocumentsGetPdf";
|
|
5
5
|
import { requiresSignature as y } from "../../shared/documentSigningStatus.js";
|
|
6
6
|
import { useContractorDocumentsList as S } from "../../shared/useContractorDocumentsList/useContractorDocumentsList.js";
|
|
7
|
-
import "classnames";
|
|
8
|
-
import { componentEvents as p } from "../../../../../shared/constants.js";
|
|
9
7
|
import { Loading as w } from "../../../../Common/Loading/Loading.js";
|
|
10
|
-
import { EmptyData as
|
|
8
|
+
import { EmptyData as p } from "../../../../Common/EmptyData/EmptyData.js";
|
|
11
9
|
import { BaseBoundaries as E, BaseLayout as T } from "../../../../Base/Base.js";
|
|
12
10
|
import { useComponentContext as C } from "../../../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
13
11
|
import { useI18n as M } from "../../../../../i18n/I18n.js";
|
|
12
|
+
import { componentEvents as g } from "../../../../../shared/constants.js";
|
|
14
13
|
import { useDataView as B } from "../../../../Common/DataView/useDataView.js";
|
|
15
14
|
import { DataView as _ } from "../../../../Common/DataView/DataView.js";
|
|
16
|
-
function
|
|
15
|
+
function I({ LoaderComponent: o, ...r }) {
|
|
17
16
|
return /* @__PURE__ */ t(
|
|
18
17
|
E,
|
|
19
18
|
{
|
|
@@ -45,14 +44,14 @@ function N({ contractorId: o, onEvent: r, LoaderComponent: a }) {
|
|
|
45
44
|
data: c,
|
|
46
45
|
columns: d,
|
|
47
46
|
itemMenu: (n) => n.uuid ? /* @__PURE__ */ t(x, { contractorId: o, documentUuid: n.uuid, onEvent: r }) : null,
|
|
48
|
-
emptyState: () => /* @__PURE__ */ t(
|
|
47
|
+
emptyState: () => /* @__PURE__ */ t(p, { title: e("emptyState.title") })
|
|
49
48
|
});
|
|
50
49
|
return /* @__PURE__ */ t(T, { error: s.errorHandling.errors, LoaderComponent: a, children: /* @__PURE__ */ t(
|
|
51
50
|
i.Box,
|
|
52
51
|
{
|
|
53
52
|
withPadding: !u,
|
|
54
53
|
header: /* @__PURE__ */ t(i.BoxHeader, { title: e("title") }),
|
|
55
|
-
children: m ? /* @__PURE__ */ t(w, {}) : u ? /* @__PURE__ */ t(_, { label: e("listLabel"), isWithinBox: !0, ...l }) : /* @__PURE__ */ t(
|
|
54
|
+
children: m ? /* @__PURE__ */ t(w, {}) : u ? /* @__PURE__ */ t(_, { label: e("listLabel"), isWithinBox: !0, ...l }) : /* @__PURE__ */ t(p, { title: e("emptyState.title") })
|
|
56
55
|
}
|
|
57
56
|
) });
|
|
58
57
|
}
|
|
@@ -62,13 +61,13 @@ function x({
|
|
|
62
61
|
onEvent: a
|
|
63
62
|
}) {
|
|
64
63
|
const { t: e } = f("Contractor.Management.Documents"), i = C(), [s, m] = h(!1), { refetch: c } = D({ documentUuid: r }, { enabled: !1 }), u = async () => {
|
|
65
|
-
a(
|
|
64
|
+
a(g.CONTRACTOR_MANAGEMENT_DOCUMENTS_CARD_VIEW_REQUESTED, {
|
|
66
65
|
contractorId: o,
|
|
67
66
|
documentUuid: r
|
|
68
67
|
}), m(!0);
|
|
69
68
|
try {
|
|
70
69
|
const { data: d } = await c(), l = d?.documentPdf?.documentUrl;
|
|
71
|
-
l && (window.open(l, "_blank", "noopener,noreferrer"), a(
|
|
70
|
+
l && (window.open(l, "_blank", "noopener,noreferrer"), a(g.CONTRACTOR_MANAGEMENT_DOCUMENTS_CARD_VIEWED, {
|
|
72
71
|
contractorId: o,
|
|
73
72
|
documentUuid: r
|
|
74
73
|
}));
|
|
@@ -89,6 +88,6 @@ function x({
|
|
|
89
88
|
);
|
|
90
89
|
}
|
|
91
90
|
export {
|
|
92
|
-
|
|
91
|
+
I as DocumentsCard
|
|
93
92
|
};
|
|
94
93
|
//# sourceMappingURL=DocumentsCard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentsCard.js","sources":["../../../../../../src/components/Contractor/Documents/management/DocumentsCard/DocumentsCard.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useContractorDocumentsGetPdf } from '@gusto/embedded-api/react-query/contractorDocumentsGetPdf'\nimport type { Document } from '@gusto/embedded-api/models/components/document'\nimport { requiresSignature } from '../../shared/documentSigningStatus'\nimport { useContractorDocumentsList } from '../../shared/useContractorDocumentsList'\nimport { DataView, EmptyData, useDataView, Loading } from '@/components/Common'\nimport { BaseBoundaries, BaseLayout } from '@/components/Base/Base'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport type { LoaderComponentType } from '@/components/Base'\n\n/**\n * Props for {@link DocumentsCard}.\n *\n * @public\n */\nexport interface DocumentsCardProps {\n /** The associated contractor identifier. */\n contractorId: string\n /** Event handler fired when the user views a document. */\n onEvent: OnEventType<EventType, unknown>\n /** Custom loading indicator rendered while this component's async data is fetching. Overrides the indicator configured on `GustoProvider` for this instance only. */\n LoaderComponent?: LoaderComponentType\n}\n\n/**\n * Standalone read-only \"Documents\" card.\n *\n * @remarks\n * Fetches its own data via {@link useContractorDocumentsList} and renders a\n * table of the contractor's forms with a per-row \"View\" action that opens\n * the document's PDF in a new tab. Read-only — signing happens during\n * contractor onboarding, not from this surface.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `contractor/management/documents/card/viewRequested` | Fired when a document row's \"View\" button is clicked, before the PDF is fetched | `{ contractorId: string, documentUuid: string }` |\n * | `contractor/management/documents/card/viewed` | Fired after the PDF is fetched and opened in a new tab | `{ contractorId: string, documentUuid: string }` |\n *\n * @param props - See {@link DocumentsCardProps}.\n * @returns The contractor documents card.\n * @public\n */\nexport function DocumentsCard({ LoaderComponent, ...props }: DocumentsCardProps) {\n return (\n <BaseBoundaries\n componentName=\"Contractor.Management.Documents\"\n LoaderComponent={LoaderComponent}\n >\n <DocumentsCardContent LoaderComponent={LoaderComponent} {...props} />\n </BaseBoundaries>\n )\n}\n\nfunction DocumentsCardContent({ contractorId, onEvent, LoaderComponent }: DocumentsCardProps) {\n useI18n('Contractor.Management.Documents')\n const { t } = useTranslation('Contractor.Management.Documents')\n const Components = useComponentContext()\n const documentsList = useContractorDocumentsList({ contractorId })\n\n const isLoading = documentsList.isLoading\n const documents = documentsList.isLoading ? [] : documentsList.data.documents\n const isShowingTable = documents.length > 0\n\n const columns = [\n {\n key: 'title',\n title: t('nameColumn'),\n render: (document: Document) => (\n <Components.Text weight=\"medium\" size=\"sm\">\n {document.title ?? document.name ?? t('emptyPlaceholder')}\n </Components.Text>\n ),\n },\n {\n key: 'description',\n title: t('descriptionColumn'),\n render: (document: Document) => (\n <Components.Text variant=\"supporting\" size=\"sm\">\n {document.description ?? t('emptyPlaceholder')}\n </Components.Text>\n ),\n },\n {\n key: 'signingStatus',\n title: t('signingStatusColumn'),\n render: (document: Document) =>\n requiresSignature(document) ? (\n <Components.Badge status=\"warning\">{t('signingStatus.notSigned')}</Components.Badge>\n ) : (\n <Components.Badge status=\"success\">{t('signingStatus.signed')}</Components.Badge>\n ),\n },\n ]\n\n const dataViewProps = useDataView({\n data: documents,\n columns,\n itemMenu: document =>\n document.uuid ? (\n <ViewButton contractorId={contractorId} documentUuid={document.uuid} onEvent={onEvent} />\n ) : null,\n emptyState: () => <EmptyData title={t('emptyState.title')} />,\n })\n\n return (\n <BaseLayout error={documentsList.errorHandling.errors} LoaderComponent={LoaderComponent}>\n <Components.Box\n withPadding={!isShowingTable}\n header={<Components.BoxHeader title={t('title')} />}\n >\n {isLoading ? (\n <Loading />\n ) : isShowingTable ? (\n <DataView label={t('listLabel')} isWithinBox {...dataViewProps} />\n ) : (\n <EmptyData title={t('emptyState.title')} />\n )}\n </Components.Box>\n </BaseLayout>\n )\n}\n\nfunction ViewButton({\n contractorId,\n documentUuid,\n onEvent,\n}: {\n contractorId: string\n documentUuid: string\n onEvent: OnEventType<EventType, unknown>\n}) {\n const { t } = useTranslation('Contractor.Management.Documents')\n const Components = useComponentContext()\n const [isOpening, setIsOpening] = useState(false)\n const { refetch } = useContractorDocumentsGetPdf({ documentUuid }, { enabled: false })\n\n const handleView = async () => {\n onEvent(componentEvents.CONTRACTOR_MANAGEMENT_DOCUMENTS_CARD_VIEW_REQUESTED, {\n contractorId,\n documentUuid,\n })\n setIsOpening(true)\n try {\n const { data } = await refetch()\n const url = data?.documentPdf?.documentUrl\n if (url) {\n window.open(url, '_blank', 'noopener,noreferrer')\n onEvent(componentEvents.CONTRACTOR_MANAGEMENT_DOCUMENTS_CARD_VIEWED, {\n contractorId,\n documentUuid,\n })\n }\n } finally {\n setIsOpening(false)\n }\n }\n\n return (\n <Components.Button\n variant=\"secondary\"\n onClick={() => {\n void handleView()\n }}\n isLoading={isOpening}\n >\n {t('viewCta')}\n </Components.Button>\n )\n}\n"],"names":["DocumentsCard","LoaderComponent","props","jsx","BaseBoundaries","DocumentsCardContent","contractorId","onEvent","useI18n","t","useTranslation","Components","useComponentContext","documentsList","useContractorDocumentsList","isLoading","documents","isShowingTable","columns","document","requiresSignature","dataViewProps","useDataView","ViewButton","EmptyData","BaseLayout","Loading","DataView","documentUuid","isOpening","setIsOpening","useState","refetch","useContractorDocumentsGetPdf","handleView","componentEvents","data","url"],"mappings":"
|
|
1
|
+
{"version":3,"file":"DocumentsCard.js","sources":["../../../../../../src/components/Contractor/Documents/management/DocumentsCard/DocumentsCard.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport { useContractorDocumentsGetPdf } from '@gusto/embedded-api/react-query/contractorDocumentsGetPdf'\nimport type { Document } from '@gusto/embedded-api/models/components/document'\nimport { requiresSignature } from '../../shared/documentSigningStatus'\nimport { useContractorDocumentsList } from '../../shared/useContractorDocumentsList'\nimport { DataView, EmptyData, useDataView, Loading } from '@/components/Common'\nimport { BaseBoundaries, BaseLayout } from '@/components/Base/Base'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\nimport { componentEvents, type EventType } from '@/shared/constants'\nimport type { OnEventType } from '@/components/Base/useBase'\nimport type { LoaderComponentType } from '@/components/Base'\n\n/**\n * Props for {@link DocumentsCard}.\n *\n * @public\n */\nexport interface DocumentsCardProps {\n /** The associated contractor identifier. */\n contractorId: string\n /** Event handler fired when the user views a document. */\n onEvent: OnEventType<EventType, unknown>\n /** Custom loading indicator rendered while this component's async data is fetching. Overrides the indicator configured on `GustoProvider` for this instance only. */\n LoaderComponent?: LoaderComponentType\n}\n\n/**\n * Standalone read-only \"Documents\" card.\n *\n * @remarks\n * Fetches its own data via {@link useContractorDocumentsList} and renders a\n * table of the contractor's forms with a per-row \"View\" action that opens\n * the document's PDF in a new tab. Read-only — signing happens during\n * contractor onboarding, not from this surface.\n *\n * @events\n * | Event | Description | Data |\n * | ----- | ----------- | ---- |\n * | `contractor/management/documents/card/viewRequested` | Fired when a document row's \"View\" button is clicked, before the PDF is fetched | `{ contractorId: string, documentUuid: string }` |\n * | `contractor/management/documents/card/viewed` | Fired after the PDF is fetched and opened in a new tab | `{ contractorId: string, documentUuid: string }` |\n *\n * @param props - See {@link DocumentsCardProps}.\n * @returns The contractor documents card.\n * @public\n */\nexport function DocumentsCard({ LoaderComponent, ...props }: DocumentsCardProps) {\n return (\n <BaseBoundaries\n componentName=\"Contractor.Management.Documents\"\n LoaderComponent={LoaderComponent}\n >\n <DocumentsCardContent LoaderComponent={LoaderComponent} {...props} />\n </BaseBoundaries>\n )\n}\n\nfunction DocumentsCardContent({ contractorId, onEvent, LoaderComponent }: DocumentsCardProps) {\n useI18n('Contractor.Management.Documents')\n const { t } = useTranslation('Contractor.Management.Documents')\n const Components = useComponentContext()\n const documentsList = useContractorDocumentsList({ contractorId })\n\n const isLoading = documentsList.isLoading\n const documents = documentsList.isLoading ? [] : documentsList.data.documents\n const isShowingTable = documents.length > 0\n\n const columns = [\n {\n key: 'title',\n title: t('nameColumn'),\n render: (document: Document) => (\n <Components.Text weight=\"medium\" size=\"sm\">\n {document.title ?? document.name ?? t('emptyPlaceholder')}\n </Components.Text>\n ),\n },\n {\n key: 'description',\n title: t('descriptionColumn'),\n render: (document: Document) => (\n <Components.Text variant=\"supporting\" size=\"sm\">\n {document.description ?? t('emptyPlaceholder')}\n </Components.Text>\n ),\n },\n {\n key: 'signingStatus',\n title: t('signingStatusColumn'),\n render: (document: Document) =>\n requiresSignature(document) ? (\n <Components.Badge status=\"warning\">{t('signingStatus.notSigned')}</Components.Badge>\n ) : (\n <Components.Badge status=\"success\">{t('signingStatus.signed')}</Components.Badge>\n ),\n },\n ]\n\n const dataViewProps = useDataView({\n data: documents,\n columns,\n itemMenu: document =>\n document.uuid ? (\n <ViewButton contractorId={contractorId} documentUuid={document.uuid} onEvent={onEvent} />\n ) : null,\n emptyState: () => <EmptyData title={t('emptyState.title')} />,\n })\n\n return (\n <BaseLayout error={documentsList.errorHandling.errors} LoaderComponent={LoaderComponent}>\n <Components.Box\n withPadding={!isShowingTable}\n header={<Components.BoxHeader title={t('title')} />}\n >\n {isLoading ? (\n <Loading />\n ) : isShowingTable ? (\n <DataView label={t('listLabel')} isWithinBox {...dataViewProps} />\n ) : (\n <EmptyData title={t('emptyState.title')} />\n )}\n </Components.Box>\n </BaseLayout>\n )\n}\n\nfunction ViewButton({\n contractorId,\n documentUuid,\n onEvent,\n}: {\n contractorId: string\n documentUuid: string\n onEvent: OnEventType<EventType, unknown>\n}) {\n const { t } = useTranslation('Contractor.Management.Documents')\n const Components = useComponentContext()\n const [isOpening, setIsOpening] = useState(false)\n const { refetch } = useContractorDocumentsGetPdf({ documentUuid }, { enabled: false })\n\n const handleView = async () => {\n onEvent(componentEvents.CONTRACTOR_MANAGEMENT_DOCUMENTS_CARD_VIEW_REQUESTED, {\n contractorId,\n documentUuid,\n })\n setIsOpening(true)\n try {\n const { data } = await refetch()\n const url = data?.documentPdf?.documentUrl\n if (url) {\n window.open(url, '_blank', 'noopener,noreferrer')\n onEvent(componentEvents.CONTRACTOR_MANAGEMENT_DOCUMENTS_CARD_VIEWED, {\n contractorId,\n documentUuid,\n })\n }\n } finally {\n setIsOpening(false)\n }\n }\n\n return (\n <Components.Button\n variant=\"secondary\"\n onClick={() => {\n void handleView()\n }}\n isLoading={isOpening}\n >\n {t('viewCta')}\n </Components.Button>\n )\n}\n"],"names":["DocumentsCard","LoaderComponent","props","jsx","BaseBoundaries","DocumentsCardContent","contractorId","onEvent","useI18n","t","useTranslation","Components","useComponentContext","documentsList","useContractorDocumentsList","isLoading","documents","isShowingTable","columns","document","requiresSignature","dataViewProps","useDataView","ViewButton","EmptyData","BaseLayout","Loading","DataView","documentUuid","isOpening","setIsOpening","useState","refetch","useContractorDocumentsGetPdf","handleView","componentEvents","data","url"],"mappings":"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"}
|
|
@@ -1,59 +1,63 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { useTranslation as
|
|
3
|
-
import { useContractorsGetSuspense as
|
|
4
|
-
import {
|
|
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
|
|
7
|
-
import { BaseComponent as
|
|
8
|
-
import { useBase as
|
|
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
|
|
11
|
-
import { useComponentContext as
|
|
12
|
-
import { useI18n as
|
|
13
|
-
import { componentEvents as
|
|
14
|
-
import
|
|
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__ */
|
|
16
|
+
return /* @__PURE__ */ o(g, { ...e, children: /* @__PURE__ */ o(T, { ...e, children: e.children }) });
|
|
17
17
|
}
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
const { onEvent:
|
|
21
|
-
data: {
|
|
22
|
-
} =
|
|
23
|
-
|
|
24
|
-
[
|
|
25
|
-
),
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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__ */
|
|
32
|
-
|
|
35
|
+
footer: /* @__PURE__ */ o(x, { children: /* @__PURE__ */ i(
|
|
36
|
+
n.Button,
|
|
33
37
|
{
|
|
34
38
|
variant: "secondary",
|
|
35
39
|
onClick: () => {
|
|
36
|
-
|
|
40
|
+
p(L.CONTRACTOR_SELF_ONBOARDING_START);
|
|
37
41
|
},
|
|
38
42
|
children: [
|
|
39
43
|
t("getStartedCta"),
|
|
40
|
-
/* @__PURE__ */
|
|
44
|
+
/* @__PURE__ */ o(R, { "aria-hidden": !0 })
|
|
41
45
|
]
|
|
42
46
|
}
|
|
43
47
|
) }),
|
|
44
|
-
children: /* @__PURE__ */
|
|
45
|
-
/* @__PURE__ */
|
|
46
|
-
/* @__PURE__ */ n
|
|
47
|
-
contractorName:
|
|
48
|
-
companyName:
|
|
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
|
|
55
|
+
/* @__PURE__ */ o(n.Text, { variant: "supporting", children: t("landingDescription") })
|
|
52
56
|
] }),
|
|
53
|
-
/* @__PURE__ */
|
|
54
|
-
/* @__PURE__ */ n
|
|
55
|
-
/* @__PURE__ */
|
|
56
|
-
|
|
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"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Landing.js","sources":["../../../../src/components/Contractor/Landing/Landing.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useContractorsGetSuspense } from '@gusto/embedded-api/react-query/contractorsGet'\nimport {
|
|
1
|
+
{"version":3,"file":"Landing.js","sources":["../../../../src/components/Contractor/Landing/Landing.tsx"],"sourcesContent":["import { useTranslation } from 'react-i18next'\nimport { useContractorsGetSuspense } from '@gusto/embedded-api/react-query/contractorsGet'\nimport { GetV1ContractorsContractorUuidQueryParamInclude } from '@gusto/embedded-api/models/operations/getv1contractorscontractoruuid'\nimport DOMPurify from 'dompurify'\nimport { useMemo } from 'react'\nimport { BaseComponent, useBase, type BaseComponentInterface } from '@/components/Base'\nimport { Flex, ActionsLayout } from '@/components/Common'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\nimport { useI18n } from '@/i18n'\nimport { componentEvents } from '@/shared/constants'\nimport { useComponentDictionary } from '@/i18n/I18n'\nimport ArrowRightIcon from '@/assets/icons/icon-arrow-right.svg?react'\n\n/**\n * Props for the {@link Landing} component.\n *\n * @public\n */\nexport interface LandingProps extends BaseComponentInterface<'Contractor.Landing'> {\n /** UUID of the contractor entering the self-onboarding flow. */\n contractorId: string\n /**\n * @deprecated\n * UUID of the company the contractor belongs to.\n */\n companyId?: string\n}\n\n/**\n * Landing page for the contractor self-onboarding flow. Displays a welcome\n * message and the list of onboarding steps the contractor needs to complete.\n *\n * @public\n */\nexport function Landing(props: LandingProps) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst Root = ({ contractorId, className, dictionary }: LandingProps) => {\n useI18n('Contractor.Landing')\n useComponentDictionary('Contractor.Landing', dictionary)\n const { onEvent } = useBase()\n const Components = useComponentContext()\n\n const { t } = useTranslation('Contractor.Landing')\n\n const {\n data: { contractorShow: contractor },\n } = useContractorsGetSuspense({\n contractorUuid: contractorId,\n include: [GetV1ContractorsContractorUuidQueryParamInclude.CompanyName],\n })\n const sanitizedContractorName = useMemo(\n () =>\n DOMPurify.sanitize(contractor?.firstName ?? contractor?.businessName ?? t('fallbackName')),\n [contractor, t],\n )\n const sanitizedCompanyName = useMemo(\n () => DOMPurify.sanitize(contractor?.companyName ?? ''),\n [contractor],\n )\n\n return (\n <section className={className}>\n <Components.Box\n footer={\n <ActionsLayout>\n <Components.Button\n variant=\"secondary\"\n onClick={() => {\n onEvent(componentEvents.CONTRACTOR_SELF_ONBOARDING_START)\n }}\n >\n {t('getStartedCta')}\n <ArrowRightIcon aria-hidden />\n </Components.Button>\n </ActionsLayout>\n }\n >\n <Flex alignItems=\"center\" flexDirection=\"column\" gap={32}>\n <Flex flexDirection=\"column\" gap={4}>\n <Components.Heading as=\"h2\">\n {t('landingSubtitle', {\n contractorName: sanitizedContractorName,\n companyName: sanitizedCompanyName,\n interpolation: { escapeValue: false },\n })}\n </Components.Heading>\n <Components.Text variant=\"supporting\">{t('landingDescription')}</Components.Text>\n </Flex>\n <Flex flexDirection=\"column\" gap={8}>\n <Components.Heading as=\"h3\">{t('stepsSubtitle')}</Components.Heading>\n <Components.UnorderedList\n items={[\n t('steps.profile'),\n t('steps.address'),\n t('steps.paymentMethod'),\n t('steps.documents'),\n ]}\n />\n </Flex>\n </Flex>\n </Components.Box>\n </section>\n )\n}\n"],"names":["Landing","props","jsx","BaseComponent","Root","contractorId","className","dictionary","useI18n","useComponentDictionary","onEvent","useBase","Components","useComponentContext","useTranslation","contractor","useContractorsGetSuspense","GetV1ContractorsContractorUuidQueryParamInclude","sanitizedContractorName","useMemo","DOMPurify","sanitizedCompanyName","ActionsLayout","jsxs","componentEvents","ArrowRightIcon","Flex"],"mappings":";;;;;;;;;;;;;;AAkCO,SAASA,EAAQC,GAAqB;AAC3C,SACE,gBAAAC,EAACC,GAAA,EAAe,GAAGF,GACjB,UAAA,gBAAAC,EAACE,KAAM,GAAGH,GAAQ,UAAAA,EAAM,SAAA,CAAS,EAAA,CACnC;AAEJ;AAEA,MAAMG,IAAO,CAAC,EAAE,cAAAC,GAAc,WAAAC,GAAW,YAAAC,QAA+B;AACtE,EAAAC,EAAQ,oBAAoB,GAC5BC,EAAuB,sBAAsBF,CAAU;AACvD,QAAM,EAAE,SAAAG,EAAA,IAAYC,EAAA,GACdC,IAAaC,EAAA,GAEb,EAAE,EAAA,IAAMC,EAAe,oBAAoB,GAE3C;AAAA,IACJ,MAAM,EAAE,gBAAgBC,EAAA;AAAA,EAAW,IACjCC,EAA0B;AAAA,IAC5B,gBAAgBX;AAAA,IAChB,SAAS,CAACY,EAAgD,WAAW;AAAA,EAAA,CACtE,GACKC,IAA0BC;AAAA,IAC9B,MACEC,EAAU,SAASL,GAAY,aAAaA,GAAY,gBAAgB,EAAE,cAAc,CAAC;AAAA,IAC3F,CAACA,GAAY,CAAC;AAAA,EAAA,GAEVM,IAAuBF;AAAA,IAC3B,MAAMC,EAAU,SAASL,GAAY,eAAe,EAAE;AAAA,IACtD,CAACA,CAAU;AAAA,EAAA;AAGb,SACE,gBAAAb,EAAC,aAAQ,WAAAI,GACP,UAAA,gBAAAJ;AAAA,IAACU,EAAW;AAAA,IAAX;AAAA,MACC,0BACGU,GAAA,EACC,UAAA,gBAAAC;AAAA,QAACX,EAAW;AAAA,QAAX;AAAA,UACC,SAAQ;AAAA,UACR,SAAS,MAAM;AACb,YAAAF,EAAQc,EAAgB,gCAAgC;AAAA,UAC1D;AAAA,UAEC,UAAA;AAAA,YAAA,EAAE,eAAe;AAAA,YAClB,gBAAAtB,EAACuB,GAAA,EAAe,eAAW,GAAA,CAAC;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA,GAEhC;AAAA,MAGF,4BAACC,GAAA,EAAK,YAAW,UAAS,eAAc,UAAS,KAAK,IACpD,UAAA;AAAA,QAAA,gBAAAH,EAACG,GAAA,EAAK,eAAc,UAAS,KAAK,GAChC,UAAA;AAAA,UAAA,gBAAAxB,EAACU,EAAW,SAAX,EAAmB,IAAG,MACpB,YAAE,mBAAmB;AAAA,YACpB,gBAAgBM;AAAA,YAChB,aAAaG;AAAA,YACb,eAAe,EAAE,aAAa,GAAA;AAAA,UAAM,CACrC,GACH;AAAA,UACA,gBAAAnB,EAACU,EAAW,MAAX,EAAgB,SAAQ,cAAc,UAAA,EAAE,oBAAoB,EAAA,CAAE;AAAA,QAAA,GACjE;AAAA,QACA,gBAAAW,EAACG,GAAA,EAAK,eAAc,UAAS,KAAK,GAChC,UAAA;AAAA,UAAA,gBAAAxB,EAACU,EAAW,SAAX,EAAmB,IAAG,MAAM,UAAA,EAAE,eAAe,GAAE;AAAA,UAChD,gBAAAV;AAAA,YAACU,EAAW;AAAA,YAAX;AAAA,cACC,OAAO;AAAA,gBACL,EAAE,eAAe;AAAA,gBACjB,EAAE,eAAe;AAAA,gBACjB,EAAE,qBAAqB;AAAA,gBACvB,EAAE,iBAAiB;AAAA,cAAA;AAAA,YACrB;AAAA,UAAA;AAAA,QACF,EAAA,CACF;AAAA,MAAA,EAAA,CACF;AAAA,IAAA;AAAA,EAAA,GAEJ;AAEJ;"}
|
|
@@ -31,8 +31,8 @@ function le(t) {
|
|
|
31
31
|
function k({ contractorId: t, className: d, dictionary: f, selfOnboarding: R = !1 }) {
|
|
32
32
|
F("Contractor.NewHireReport", f), P("Contractor.NewHireReport");
|
|
33
33
|
const { t: o } = E("Contractor.NewHireReport"), { onEvent: c, baseSubmitHandler: h } = B(), a = U(), {
|
|
34
|
-
data: {
|
|
35
|
-
} = _({ contractorUuid: t }), n =
|
|
34
|
+
data: { contractorShow: w }
|
|
35
|
+
} = _({ contractorUuid: t }), n = w, { mutateAsync: H, isPending: N } = x(), b = D(
|
|
36
36
|
() => ({
|
|
37
37
|
fileNewHireReport: n.fileNewHireReport || !1,
|
|
38
38
|
state: n.workState || null
|
|
@@ -43,7 +43,7 @@ function k({ contractorId: t, className: d, dictionary: f, selfOnboarding: R = !
|
|
|
43
43
|
defaultValues: b
|
|
44
44
|
}), C = y({ control: s.control, name: "fileNewHireReport" }), v = async (i) => {
|
|
45
45
|
await h(i, async (l) => {
|
|
46
|
-
const S = await
|
|
46
|
+
const S = await H({
|
|
47
47
|
request: {
|
|
48
48
|
contractorUuid: t,
|
|
49
49
|
contractorUpdateRequestBody: {
|