@gusto/embedded-react-sdk 0.57.2 → 0.58.0
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 +108 -0
- package/dist/components/Common/DataView/DataCards/DataCards.js +98 -66
- package/dist/components/Common/DataView/DataCards/DataCards.js.map +1 -1
- package/dist/components/Common/DataView/DataCards/DataCards.module.scss.js +11 -9
- package/dist/components/Common/DataView/DataCards/DataCards.module.scss.js.map +1 -1
- package/dist/components/Common/DataView/DataTable/DataTable.js +86 -75
- package/dist/components/Common/DataView/DataTable/DataTable.js.map +1 -1
- package/dist/components/Common/DataView/DataView.js.map +1 -1
- package/dist/components/Common/DataView/getSortControls.js +22 -0
- package/dist/components/Common/DataView/getSortControls.js.map +1 -0
- package/dist/components/Common/DataView/useDataView.js +30 -24
- package/dist/components/Common/DataView/useDataView.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/Common/UI/Table/Table.js +65 -25
- package/dist/components/Common/UI/Table/Table.js.map +1 -1
- package/dist/components/Common/UI/Table/Table.module.scss.js +8 -4
- package/dist/components/Common/UI/Table/Table.module.scss.js.map +1 -1
- package/dist/components/Common/UI/Table/TableTypes.js.map +1 -1
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +3 -4
- package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +3 -4
- package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js +5 -6
- package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
- package/dist/components/Company/BankAccount/BankAccountForm/context.js +3 -4
- package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +3 -4
- package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js +5 -6
- package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
- package/dist/components/Company/Industry/Context.js +6 -7
- package/dist/components/Company/Industry/Context.js.map +1 -1
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js +3 -4
- package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js +3 -4
- package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
- package/dist/components/Company/OnboardingOverview/context.js +3 -4
- package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
- package/dist/components/Company/PaySchedule/PaySchedule.js +30 -45
- package/dist/components/Company/PaySchedule/PaySchedule.js.map +1 -1
- package/dist/components/Company/PaySchedule/PayScheduleComponents.js +11 -12
- package/dist/components/Company/PaySchedule/PayScheduleComponents.js.map +1 -1
- 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 +244 -95
- 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.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.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/fields.js.map +1 -1
- package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/payScheduleSchema.js.map +1 -1
- package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.js +78 -83
- package/dist/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +3 -4
- package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js +3 -4
- package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
- package/dist/components/Company/StateTaxes/TaxRateManagement/context.js +3 -4
- 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/CompensationEditForm.js +45 -54
- package/dist/components/Contractor/Compensation/management/CompensationEditForm.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/contractorPaySchema.js +17 -22
- package/dist/components/Contractor/Compensation/shared/useContractorPayForm/contractorPaySchema.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/management/ManagementContractorList.js +1 -0
- package/dist/components/Contractor/ContractorList/management/ManagementContractorList.js.map +1 -1
- package/dist/components/Contractor/ContractorList/management/ManagementContractorListView.js +122 -113
- package/dist/components/Contractor/ContractorList/management/ManagementContractorListView.js.map +1 -1
- package/dist/components/Contractor/ContractorList/shared/useContractorList.js +63 -54
- 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/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/onboarding/PaymentMethod.js +39 -48
- package/dist/components/Contractor/PaymentMethod/onboarding/PaymentMethod.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/onboarding/ContractorProfile.js +76 -69
- package/dist/components/Contractor/Profile/onboarding/ContractorProfile.js.map +1 -1
- 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/contractorDetailsSchema.js +27 -29
- package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/contractorDetailsSchema.js.map +1 -1
- package/dist/components/Contractor/Profile/shared/useContractorDetailsForm/useContractorDetailsForm.js +15 -13
- 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/Contractor/shared/hourlyRate.js +14 -0
- package/dist/components/Contractor/shared/hourlyRate.js.map +1 -0
- package/dist/components/Employee/Compensation/management/CompensationCard/CompensationCard.js +63 -63
- package/dist/components/Employee/Compensation/management/CompensationCard/CompensationCard.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/Documents/onboarding/DocumentSigner/DocumentList/useDocumentList.js +3 -4
- 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/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/onboarding/ListView.js +65 -74
- package/dist/components/Employee/PaymentMethod/onboarding/ListView.js.map +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/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/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelection.js +16 -16
- package/dist/components/Payroll/Dismissal/DismissalPayPeriodSelection/DismissalPayPeriodSelection.js.map +1 -1
- package/dist/components/Payroll/GrossUpModal/GrossUpModal.js +2 -3
- package/dist/components/Payroll/GrossUpModal/GrossUpModal.js.map +1 -1
- package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js +84 -82
- package/dist/components/Payroll/OffCycleCreation/OffCycleCreation.js.map +1 -1
- package/dist/components/Payroll/OffCycleTaxWithholdingTable/getDefaultWithholdingPayPeriod.js +8 -0
- package/dist/components/Payroll/OffCycleTaxWithholdingTable/getDefaultWithholdingPayPeriod.js.map +1 -0
- package/dist/components/Payroll/PayrollConfiguration/PayrollConfigurationPresentation.js +97 -92
- 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 +18 -18
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployee.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js +146 -134
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.module.scss.js +14 -12
- package/dist/components/Payroll/PayrollEditEmployee/PayrollEditEmployeePresentation.module.scss.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js +34 -33
- package/dist/components/Payroll/PayrollEditEmployee/TimeOffField.js.map +1 -1
- package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/fields.js +49 -48
- package/dist/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/fields.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/PayrollExecutionFlow/PayrollExecutionFlow.js.map +1 -1
- package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.js +0 -4
- package/dist/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.js.map +1 -1
- package/dist/components/Payroll/PayrollFlow/PayrollFlow.js.map +1 -1
- package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.js +51 -38
- package/dist/components/Payroll/PayrollFlow/PayrollFlowComponents.js.map +1 -1
- package/dist/components/Payroll/PayrollFlow/payrollStateMachine.js +121 -102
- package/dist/components/Payroll/PayrollFlow/payrollStateMachine.js.map +1 -1
- package/dist/components/Payroll/PayrollHistory/PayrollHistory.js.map +1 -1
- package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js +6 -6
- package/dist/components/Payroll/PayrollHistory/PayrollHistoryPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollLanding/PayrollLanding.js.map +1 -1
- package/dist/components/Payroll/PayrollList/PayrollList.js +79 -74
- 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/PayrollOverview.js +92 -83
- package/dist/components/Payroll/PayrollOverview/PayrollOverview.js.map +1 -1
- package/dist/components/Payroll/PayrollOverview/PayrollOverviewPresentation.js.map +1 -1
- package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js +23 -27
- package/dist/components/Payroll/PayrollReceipts/PayrollReceiptsPresentation.js.map +1 -1
- package/dist/components/Payroll/PrintChecks/PrintChecksForm/PrintChecksForm.js +82 -75
- package/dist/components/Payroll/PrintChecks/PrintChecksForm/PrintChecksForm.js.map +1 -1
- package/dist/components/Payroll/RropPayrollEditEmployee/RropPayrollEditEmployee.js +416 -0
- package/dist/components/Payroll/RropPayrollEditEmployee/RropPayrollEditEmployee.js.map +1 -0
- package/dist/components/Payroll/{UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.module.scss.js → RropPayrollEditEmployee/RropPayrollEditEmployee.module.scss.js} +1 -1
- package/dist/components/Payroll/RropPayrollEditEmployee/RropPayrollEditEmployee.module.scss.js.map +1 -0
- package/dist/components/Payroll/TransitionConfiguration/TransitionConfiguration.js +97 -0
- package/dist/components/Payroll/TransitionConfiguration/TransitionConfiguration.js.map +1 -0
- package/dist/components/Payroll/TransitionConfiguration/TransitionConfigurationPresentation.js +106 -0
- package/dist/components/Payroll/TransitionConfiguration/TransitionConfigurationPresentation.js.map +1 -0
- package/dist/components/Payroll/{TransitionCreation/TransitionCreationPresentation.module.scss.js → TransitionConfiguration/TransitionConfigurationPresentation.module.scss.js} +1 -1
- package/dist/components/Payroll/TransitionConfiguration/TransitionConfigurationPresentation.module.scss.js.map +1 -0
- package/dist/components/Payroll/TransitionConfiguration/TransitionConfigurationTypes.js +10 -0
- package/dist/components/Payroll/TransitionConfiguration/TransitionConfigurationTypes.js.map +1 -0
- package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.js +86 -64
- package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlert.js.map +1 -1
- package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.js +126 -77
- package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.js.map +1 -1
- package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.module.scss.js +8 -0
- package/dist/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.module.scss.js.map +1 -0
- package/dist/components/Payroll/helpers.js +1 -1
- package/dist/components/Payroll/helpers.js.map +1 -1
- package/dist/components/Payroll/index.js +16 -20
- package/dist/components/Payroll/index.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 +2 -3
- package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
- package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.js +11 -14
- package/dist/components/Payroll/useUnprocessedTransitionPayPeriods.js.map +1 -1
- package/dist/contexts/ApiProvider/ApiProvider.js +18 -17
- package/dist/contexts/ApiProvider/ApiProvider.js.map +1 -1
- package/dist/contexts/ApiProvider/payScheduleCustomNameHook.js +31 -0
- package/dist/contexts/ApiProvider/payScheduleCustomNameHook.js.map +1 -0
- package/dist/contexts/ApiProvider/payrollOffCycleReasonEnumHook.js +1 -1
- package/dist/contexts/ApiProvider/payrollOffCycleReasonEnumHook.js.map +1 -1
- package/dist/contexts/FeaturesProvider/FeaturesProvider.js +14 -0
- package/dist/contexts/FeaturesProvider/FeaturesProvider.js.map +1 -0
- package/dist/contexts/FeaturesProvider/useFeature.js +7 -0
- package/dist/contexts/FeaturesProvider/useFeature.js.map +1 -0
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +32 -30
- package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
- package/dist/contexts/UnstableFeaturesProvider/useUnstableFeature.js.map +1 -1
- package/dist/i18n/I18n.js +2 -3
- package/dist/i18n/I18n.js.map +1 -1
- package/dist/i18n/en/Company.Management.PaySchedule.json.js +31 -13
- package/dist/i18n/en/Company.Management.PaySchedule.json.js.map +1 -1
- package/dist/i18n/en/Company.Management.PayScheduleAssignment.json.js +20 -12
- package/dist/i18n/en/Company.Management.PayScheduleAssignment.json.js.map +1 -1
- package/dist/i18n/en/Contractor.Profile.json.js +1 -1
- package/dist/i18n/en/Payroll.PayrollEditEmployee.json.js +29 -23
- package/dist/i18n/en/Payroll.PayrollEditEmployee.json.js.map +1 -1
- package/dist/i18n/en/Payroll.PayrollHistory.json.js +1 -1
- package/dist/i18n/en/Payroll.PayrollLanding.json.js +1 -1
- package/dist/i18n/en/Payroll.PayrollList.json.js +5 -5
- package/dist/i18n/en/{Payroll.UNSTABLE_PayrollEditEmployee.json.js → Payroll.RropPayrollEditEmployee.json.js} +42 -38
- package/dist/i18n/en/Payroll.RropPayrollEditEmployee.json.js.map +1 -0
- package/dist/i18n/en/Payroll.TransitionConfiguration.json.js +28 -0
- package/dist/i18n/en/Payroll.TransitionConfiguration.json.js.map +1 -0
- package/dist/i18n/en/Payroll.TransitionPayrollAlert.json.js +16 -12
- package/dist/i18n/en/Payroll.TransitionPayrollAlert.json.js.map +1 -1
- package/dist/i18n/en/common.json.js +1 -1
- package/dist/package.json.js +1 -1
- package/dist/partner-hook-utils/form/composeSubmitHandler.js +55 -48
- package/dist/partner-hook-utils/form/composeSubmitHandler.js.map +1 -1
- package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js +31 -29
- package/dist/partner-hook-utils/form/fields/RadioGroupHookField.js.map +1 -1
- package/dist/shared/constants.js +7 -6
- package/dist/shared/constants.js.map +1 -1
- package/dist/src/components/Common/DataView/DataCards/DataCards.d.ts +3 -1
- package/dist/src/components/Common/DataView/DataTable/DataTable.d.ts +3 -1
- package/dist/src/components/Common/DataView/DataView.d.ts +2 -0
- package/dist/src/components/Common/DataView/getSortControls.d.ts +24 -0
- package/dist/src/components/Common/DataView/useDataView.d.ts +22 -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/Common/UI/Table/TableTypes.d.ts +71 -2
- package/dist/src/components/Company/PaySchedule/PaySchedule.d.ts +1 -9
- package/dist/src/components/Company/PaySchedule/PayScheduleComponents.d.ts +0 -1
- 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/fields.d.ts +1 -1
- package/dist/src/components/Company/PaySchedule/shared/usePayScheduleForm/payScheduleSchema.d.ts +1 -1
- package/dist/src/components/Company/PaySchedule/shared/usePayScheduleForm/usePayScheduleForm.d.ts +4 -15
- package/dist/src/components/Contractor/ContractorList/management/ManagementContractorListView.d.ts +2 -2
- package/dist/src/components/Contractor/ContractorList/shared/index.d.ts +1 -1
- package/dist/src/components/Contractor/ContractorList/shared/useContractorList.d.ts +38 -0
- package/dist/src/components/Contractor/Landing/Landing.d.ts +5 -2
- package/dist/src/components/Contractor/shared/hourlyRate.d.ts +23 -0
- package/dist/src/components/Employee/Landing/Landing.d.ts +5 -2
- package/dist/src/components/Payroll/OffCycleTaxWithholdingTable/getDefaultWithholdingPayPeriod.d.ts +9 -0
- 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/TimeOffField.d.ts +3 -1
- package/dist/src/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/fields.d.ts +2 -0
- package/dist/src/components/Payroll/PayrollEditEmployee/shared/usePayrollEditEmployeeForm/usePayrollEditEmployeeForm.d.ts +2 -2
- package/dist/src/components/Payroll/PayrollExecutionFlow/PayrollExecutionFlow.d.ts +8 -6
- package/dist/src/components/Payroll/PayrollExecutionFlow/payrollExecutionMachine.d.ts +0 -8
- package/dist/src/components/Payroll/PayrollFlow/PayrollFlow.d.ts +5 -3
- package/dist/src/components/Payroll/PayrollFlow/PayrollFlowComponents.d.ts +2 -3
- package/dist/src/components/Payroll/PayrollFlow/payrollStateMachine.d.ts +1 -1
- package/dist/src/components/Payroll/PayrollHistory/PayrollHistoryPresentation.d.ts +1 -1
- package/dist/src/components/Payroll/PayrollLanding/PayrollLanding.d.ts +18 -5
- package/dist/src/components/Payroll/PayrollList/PayrollList.d.ts +11 -5
- 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/{UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.d.ts → RropPayrollEditEmployee/RropPayrollEditEmployee.d.ts} +9 -5
- package/dist/src/components/Payroll/TransitionConfiguration/TransitionConfiguration.d.ts +55 -0
- package/dist/src/components/Payroll/TransitionConfiguration/TransitionConfigurationPresentation.d.ts +9 -0
- package/dist/src/components/Payroll/TransitionConfiguration/TransitionConfigurationTypes.d.ts +52 -0
- package/dist/src/components/Payroll/TransitionConfiguration/index.d.ts +2 -0
- package/dist/src/components/Payroll/TransitionPayrollAlert/TransitionPayrollAlertPresentation.d.ts +5 -2
- package/dist/src/components/Payroll/helpers.d.ts +2 -2
- package/dist/src/components/Payroll/index.d.ts +2 -6
- package/dist/src/components/Payroll/usePreparedPayrollData.d.ts +2 -2
- package/dist/src/contexts/ApiProvider/payScheduleCustomNameHook.d.ts +14 -0
- package/dist/src/contexts/ApiProvider/payScheduleCustomNameHook.test.d.ts +1 -0
- package/dist/src/contexts/ComponentAdapter/componentAdapterTypes.d.ts +1 -1
- package/dist/src/contexts/FeaturesProvider/FeaturesProvider.d.ts +21 -0
- package/dist/src/contexts/FeaturesProvider/useFeature.d.ts +53 -0
- package/dist/src/contexts/GustoProvider/GustoProviderCustomUIAdapter.d.ts +3 -0
- package/dist/src/contexts/UnstableFeaturesProvider/useUnstableFeature.d.ts +38 -10
- package/dist/src/contexts/index.d.ts +1 -0
- package/dist/src/i18n/en/common.json.d.ts +5 -1
- package/dist/src/i18n/types.d.ts +195 -70
- package/dist/src/models/external.d.ts +63 -48
- package/dist/src/partner-hook-utils/form/fields/RadioGroupHookField.d.ts +9 -7
- package/dist/src/shared/constants.d.ts +5 -3
- package/dist/src/test-utils/renderWithProviders.d.ts +2 -0
- package/dist/style.css +1 -1
- package/docs/guides/endpoint-inventory.json +57 -40
- package/package.json +23 -22
- package/dist/components/Payroll/PayrollFlow/TransitionFlowContextual.js +0 -29
- package/dist/components/Payroll/PayrollFlow/TransitionFlowContextual.js.map +0 -1
- package/dist/components/Payroll/Transition/TransitionFlow.js +0 -60
- package/dist/components/Payroll/Transition/TransitionFlow.js.map +0 -1
- package/dist/components/Payroll/Transition/TransitionFlowComponents.js +0 -31
- package/dist/components/Payroll/Transition/TransitionFlowComponents.js.map +0 -1
- package/dist/components/Payroll/Transition/transitionStateMachine.js +0 -49
- package/dist/components/Payroll/Transition/transitionStateMachine.js.map +0 -1
- package/dist/components/Payroll/TransitionCreation/TransitionCreation.js +0 -100
- package/dist/components/Payroll/TransitionCreation/TransitionCreation.js.map +0 -1
- package/dist/components/Payroll/TransitionCreation/TransitionCreationPresentation.js +0 -110
- package/dist/components/Payroll/TransitionCreation/TransitionCreationPresentation.js.map +0 -1
- package/dist/components/Payroll/TransitionCreation/TransitionCreationPresentation.module.scss.js.map +0 -1
- package/dist/components/Payroll/TransitionCreation/TransitionCreationTypes.js +0 -21
- package/dist/components/Payroll/TransitionCreation/TransitionCreationTypes.js.map +0 -1
- package/dist/components/Payroll/TransitionPayroll/TransitionPayroll.js +0 -48
- package/dist/components/Payroll/TransitionPayroll/TransitionPayroll.js.map +0 -1
- package/dist/components/Payroll/TransitionPayroll/TransitionPayrollComponents.js +0 -35
- package/dist/components/Payroll/TransitionPayroll/TransitionPayrollComponents.js.map +0 -1
- package/dist/components/Payroll/TransitionPayroll/transitionPayrollStateMachine.js +0 -23
- package/dist/components/Payroll/TransitionPayroll/transitionPayrollStateMachine.js.map +0 -1
- package/dist/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.js +0 -29
- package/dist/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.js.map +0 -1
- package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.js +0 -411
- package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.js.map +0 -1
- package/dist/components/Payroll/UNSTABLE_PayrollEditEmployee/UNSTABLE_PayrollEditEmployee.module.scss.js.map +0 -1
- package/dist/i18n/en/Payroll.Transition.json.js +0 -8
- package/dist/i18n/en/Payroll.Transition.json.js.map +0 -1
- package/dist/i18n/en/Payroll.TransitionCreation.json.js +0 -26
- package/dist/i18n/en/Payroll.TransitionCreation.json.js.map +0 -1
- package/dist/i18n/en/Payroll.UNSTABLE_PayrollEditEmployee.json.js.map +0 -1
- package/dist/src/components/Payroll/PayrollFlow/TransitionFlowContextual.d.ts +0 -7
- package/dist/src/components/Payroll/Transition/TransitionFlow.d.ts +0 -55
- package/dist/src/components/Payroll/Transition/TransitionFlowComponents.d.ts +0 -52
- package/dist/src/components/Payroll/Transition/index.d.ts +0 -2
- package/dist/src/components/Payroll/Transition/transitionStateMachine.d.ts +0 -29
- package/dist/src/components/Payroll/TransitionCreation/TransitionCreation.d.ts +0 -22
- package/dist/src/components/Payroll/TransitionCreation/TransitionCreationPresentation.d.ts +0 -9
- package/dist/src/components/Payroll/TransitionCreation/TransitionCreationTypes.d.ts +0 -57
- package/dist/src/components/Payroll/TransitionCreation/index.d.ts +0 -2
- package/dist/src/components/Payroll/TransitionPayroll/TransitionPayroll.d.ts +0 -55
- package/dist/src/components/Payroll/TransitionPayroll/TransitionPayrollComponents.d.ts +0 -24
- package/dist/src/components/Payroll/TransitionPayroll/TransitionPayrollTypes.d.ts +0 -23
- package/dist/src/components/Payroll/TransitionPayroll/index.d.ts +0 -2
- package/dist/src/components/Payroll/TransitionPayroll/transitionPayrollStateMachine.d.ts +0 -15
- package/dist/src/components/Payroll/TransitionPayroll/useResolveTransitionPayroll.d.ts +0 -28
- /package/dist/src/components/{Payroll/Transition/transitionStateMachine.test.d.ts → Common/DataView/getSortControls.test.d.ts} +0 -0
|
@@ -1,33 +1,39 @@
|
|
|
1
|
-
import { useMemo as
|
|
2
|
-
import { useContractorsList as
|
|
3
|
-
import { useContractorsDeleteMutation as
|
|
4
|
-
import { useContractorsUpdateOnboardingStatusMutation as
|
|
5
|
-
import { useContractorsDeleteV1ContractorsContractorUuidTerminationMutation as
|
|
6
|
-
import { useContractorsDeleteV1ContractorsContractorUuidRehireMutation as
|
|
7
|
-
import { keepPreviousData as
|
|
8
|
-
import { usePagination as
|
|
9
|
-
import { useBaseSubmit as
|
|
10
|
-
import { composeErrorHandler as
|
|
1
|
+
import { useState as v, useMemo as P } from "react";
|
|
2
|
+
import { useContractorsList as U } from "@gusto/embedded-api/react-query/contractorsList";
|
|
3
|
+
import { useContractorsDeleteMutation as B } from "@gusto/embedded-api/react-query/contractorsDelete";
|
|
4
|
+
import { useContractorsUpdateOnboardingStatusMutation as q } from "@gusto/embedded-api/react-query/contractorsUpdateOnboardingStatus";
|
|
5
|
+
import { useContractorsDeleteV1ContractorsContractorUuidTerminationMutation as F } from "@gusto/embedded-api/react-query/contractorsDeleteV1ContractorsContractorUuidTermination";
|
|
6
|
+
import { useContractorsDeleteV1ContractorsContractorUuidRehireMutation as G } from "@gusto/embedded-api/react-query/contractorsDeleteV1ContractorsContractorUuidRehire";
|
|
7
|
+
import { keepPreviousData as T } from "@tanstack/react-query";
|
|
8
|
+
import { usePagination as H } from "../../../../hooks/usePagination/usePagination.js";
|
|
9
|
+
import { useBaseSubmit as V } from "../../../Base/useBaseSubmit.js";
|
|
10
|
+
import { composeErrorHandler as x } from "../../../../partner-hook-utils/composeErrorHandler.js";
|
|
11
11
|
import { ContractorOnboardingStatus as u } from "../../../../shared/constants.js";
|
|
12
|
-
const
|
|
12
|
+
const $ = {
|
|
13
|
+
ascending: "asc",
|
|
14
|
+
descending: "desc"
|
|
15
|
+
}, k = /* @__PURE__ */ new Set([
|
|
13
16
|
u.SELF_ONBOARDING_INVITED,
|
|
14
17
|
u.SELF_ONBOARDING_STARTED
|
|
15
18
|
]);
|
|
16
|
-
function
|
|
17
|
-
const e = [], i =
|
|
18
|
-
return
|
|
19
|
+
function Q(n, s) {
|
|
20
|
+
const e = [], i = n.onboardingStatus;
|
|
21
|
+
return s === "active" ? (e.push("view"), n.upcomingEmployment && n.rehireCancellationEligible ? e.push("cancel_rehire") : n.dismissalDate && n.dismissalCancellationEligible ? e.push("cancel_dismissal") : !n.dismissalDate && !n.upcomingEmployment && e.push("dismiss"), e) : s === "terminated" ? (e.push("view"), n.upcomingEmployment ? n.rehireCancellationEligible && e.push("cancel_rehire") : n.dismissalCancellationEligible ? e.push("cancel_dismissal") : n.isActive || e.push("rehire"), e) : (!!i && k.has(i) ? e.push("cancel_self_onboarding") : e.push("edit"), e.push("delete"), s === "onboarding" && i === u.ONBOARDING_COMPLETED && e.push("view"), e);
|
|
19
22
|
}
|
|
20
|
-
function
|
|
21
|
-
companyId:
|
|
22
|
-
contractorType:
|
|
23
|
+
function ie({
|
|
24
|
+
companyId: n,
|
|
25
|
+
contractorType: s
|
|
23
26
|
}) {
|
|
24
|
-
const { currentPage: e, itemsPerPage: i, getPaginationProps:
|
|
27
|
+
const { currentPage: e, itemsPerPage: i, getPaginationProps: d, resetPage: b } = H(), [o, S] = v(), E = P(() => {
|
|
25
28
|
const t = {
|
|
26
|
-
companyUuid:
|
|
29
|
+
companyUuid: n,
|
|
27
30
|
page: e,
|
|
28
|
-
per: i
|
|
31
|
+
per: i,
|
|
32
|
+
// Spread conditionally rather than passing `sortBy: undefined`, so an unsorted list
|
|
33
|
+
// sends no `sort_by` at all and keeps the query key it had before sorting existed.
|
|
34
|
+
...o ? { sortBy: `${o.field}:${$[o.direction]}` } : {}
|
|
29
35
|
};
|
|
30
|
-
switch (
|
|
36
|
+
switch (s) {
|
|
31
37
|
case "active":
|
|
32
38
|
return { ...t, onboardedActive: !0 };
|
|
33
39
|
case "onboarding":
|
|
@@ -37,14 +43,14 @@ function $({
|
|
|
37
43
|
default:
|
|
38
44
|
return t;
|
|
39
45
|
}
|
|
40
|
-
}, [
|
|
41
|
-
baseSubmitHandler:
|
|
42
|
-
error:
|
|
43
|
-
setError:
|
|
44
|
-
} =
|
|
46
|
+
}, [n, e, i, s, o]), m = U(E, { placeholderData: T }), g = B(), p = q(), h = F(), f = G(), {
|
|
47
|
+
baseSubmitHandler: c,
|
|
48
|
+
error: O,
|
|
49
|
+
setError: A
|
|
50
|
+
} = V("ContractorList"), C = x([m], { submitError: O, setSubmitError: A }), D = g.isPending || p.isPending || h.isPending || f.isPending, { data: r, isFetching: l } = m, _ = P(() => (r?.showContractors ?? []).map((t) => ({
|
|
45
51
|
...t,
|
|
46
|
-
allowedActions:
|
|
47
|
-
})), [
|
|
52
|
+
allowedActions: Q(t, s)
|
|
53
|
+
})), [r?.showContractors, s]), w = r?.httpMeta.response.headers ? d(r.httpMeta.response.headers, l) : {
|
|
48
54
|
handleNextPage: () => {
|
|
49
55
|
},
|
|
50
56
|
handleFirstPage: () => {
|
|
@@ -59,52 +65,55 @@ function $({
|
|
|
59
65
|
totalPages: 1,
|
|
60
66
|
totalCount: 0,
|
|
61
67
|
itemsPerPage: 5
|
|
62
|
-
},
|
|
63
|
-
await
|
|
64
|
-
await
|
|
65
|
-
request: { contractorUuid:
|
|
68
|
+
}, L = async (t) => {
|
|
69
|
+
await c(t, async (a) => {
|
|
70
|
+
await g.mutateAsync({
|
|
71
|
+
request: { contractorUuid: a }
|
|
66
72
|
});
|
|
67
73
|
});
|
|
68
|
-
},
|
|
69
|
-
let
|
|
70
|
-
return await
|
|
71
|
-
|
|
74
|
+
}, N = async (t) => {
|
|
75
|
+
let a;
|
|
76
|
+
return await c(t, async (I) => {
|
|
77
|
+
a = (await p.mutateAsync({
|
|
72
78
|
request: {
|
|
73
|
-
contractorUuid:
|
|
79
|
+
contractorUuid: I,
|
|
74
80
|
contractorOnboardingStatusUpdateRequestBody: {
|
|
75
81
|
onboardingStatus: u.ADMIN_ONBOARDING_INCOMPLETE
|
|
76
82
|
}
|
|
77
83
|
}
|
|
78
84
|
})).contractorOnboardingStatus;
|
|
79
|
-
}),
|
|
80
|
-
},
|
|
81
|
-
await
|
|
82
|
-
await
|
|
83
|
-
request: { contractorUuid:
|
|
85
|
+
}), a;
|
|
86
|
+
}, M = async (t) => {
|
|
87
|
+
await c(t, async (a) => {
|
|
88
|
+
await h.mutateAsync({
|
|
89
|
+
request: { contractorUuid: a }
|
|
84
90
|
});
|
|
85
91
|
});
|
|
86
|
-
},
|
|
87
|
-
await
|
|
88
|
-
await
|
|
89
|
-
request: { contractorUuid:
|
|
92
|
+
}, y = async (t) => {
|
|
93
|
+
await c(t, async (a) => {
|
|
94
|
+
await f.mutateAsync({
|
|
95
|
+
request: { contractorUuid: a }
|
|
90
96
|
});
|
|
91
97
|
});
|
|
98
|
+
}, R = (t) => {
|
|
99
|
+
S(t), b();
|
|
92
100
|
};
|
|
93
|
-
return !
|
|
101
|
+
return !r && l ? {
|
|
94
102
|
isLoading: !0,
|
|
95
|
-
errorHandling:
|
|
103
|
+
errorHandling: C
|
|
96
104
|
} : {
|
|
97
105
|
isLoading: !1,
|
|
98
106
|
data: {
|
|
99
|
-
contractors:
|
|
107
|
+
contractors: _
|
|
100
108
|
},
|
|
101
|
-
pagination:
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
109
|
+
pagination: w,
|
|
110
|
+
sort: { current: o, onSortChange: R },
|
|
111
|
+
status: { isFetching: l, isPending: D },
|
|
112
|
+
actions: { onDelete: L, onCancelSelfOnboarding: N, onCancelDismissal: M, onCancelRehire: y },
|
|
113
|
+
errorHandling: C
|
|
105
114
|
};
|
|
106
115
|
}
|
|
107
116
|
export {
|
|
108
|
-
|
|
117
|
+
ie as useContractorList
|
|
109
118
|
};
|
|
110
119
|
//# sourceMappingURL=useContractorList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useContractorList.js","sources":["../../../../../src/components/Contractor/ContractorList/shared/useContractorList.ts"],"sourcesContent":["import { useMemo } from 'react'\nimport { useContractorsList } from '@gusto/embedded-api/react-query/contractorsList'\nimport type { Contractor } from '@gusto/embedded-api/models/components/contractor'\nimport type { ContractorOnboardingStatus as ContractorOnboardingStatusEntity } from '@gusto/embedded-api/models/components/contractoronboardingstatus'\nimport { useContractorsDeleteMutation } from '@gusto/embedded-api/react-query/contractorsDelete'\nimport { useContractorsUpdateOnboardingStatusMutation } from '@gusto/embedded-api/react-query/contractorsUpdateOnboardingStatus'\nimport { useContractorsDeleteV1ContractorsContractorUuidTerminationMutation } from '@gusto/embedded-api/react-query/contractorsDeleteV1ContractorsContractorUuidTermination'\nimport { useContractorsDeleteV1ContractorsContractorUuidRehireMutation } from '@gusto/embedded-api/react-query/contractorsDeleteV1ContractorsContractorUuidRehire'\nimport { keepPreviousData } from '@tanstack/react-query'\nimport { usePagination } from '@/hooks/usePagination/usePagination'\nimport type { PaginationControlProps } from '@/components/Common/PaginationControl/PaginationControlTypes'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport { ContractorOnboardingStatus } from '@/shared/constants'\nimport type { HookLoadingResult, BaseHookReady } from '@/partner-hook-utils/types'\n\n/**\n * Action that may be performed on a contractor row, determined by the contractor's onboarding\n * and employment state and the `contractorType` filter passed to {@link useContractorList}.\n *\n * @public\n */\nexport type ContractorAction =\n | 'edit'\n | 'delete'\n | 'cancel_self_onboarding'\n | 'view'\n | 'dismiss'\n | 'rehire'\n | 'cancel_dismissal'\n | 'cancel_rehire'\n\n/**\n * A contractor entity extended with the actions permitted on it.\n *\n * @public\n */\nexport interface ContractorWithActions extends Contractor {\n /** Actions permitted for this contractor given its onboarding/employment state and the active filter. */\n allowedActions: ContractorAction[]\n}\n\n/**\n * Filter applied to {@link useContractorList} that scopes the result set and tailors the per-row action list.\n *\n * @public\n */\nexport type ContractorType = 'active' | 'onboarding' | 'terminated'\n\n/**\n * Props for {@link useContractorList}.\n *\n * @public\n */\nexport interface UseContractorListProps {\n /** The associated company identifier. */\n companyId: string\n /** Filters the list and tailors the allowed actions. Omit to list every contractor. */\n contractorType?: ContractorType\n}\n\n/**\n * Ready state of {@link useContractorList}.\n *\n * @public\n */\nexport interface UseContractorListReady extends BaseHookReady<\n { contractors: ContractorWithActions[] },\n { isFetching: boolean; isPending: boolean }\n> {\n /** Pagination controls for the current contractor list page. */\n pagination: PaginationControlProps\n /** Actions that mutate a contractor's state, gated by the entry's `allowedActions`. */\n actions: {\n /** Deletes the contractor. */\n onDelete: (contractorId: string) => Promise<void>\n /** Reverts a self-onboarding contractor to admin-driven onboarding. Resolves to the updated record, or `undefined` if the call failed. */\n onCancelSelfOnboarding: (\n contractorId: string,\n ) => Promise<ContractorOnboardingStatusEntity | undefined>\n /** Cancels a contractor's scheduled dismissal. */\n onCancelDismissal: (contractorId: string) => Promise<void>\n /** Cancels a contractor's scheduled rehire. */\n onCancelRehire: (contractorId: string) => Promise<void>\n }\n}\n\n/**\n * Return type of {@link useContractorList}.\n *\n * @public\n */\nexport type UseContractorListResult = HookLoadingResult | UseContractorListReady\n\nconst SELF_ONBOARDING_CANCELLABLE_STATUSES = new Set<string>([\n ContractorOnboardingStatus.SELF_ONBOARDING_INVITED,\n ContractorOnboardingStatus.SELF_ONBOARDING_STARTED,\n])\n\nfunction deriveAllowedActions(\n contractor: Contractor,\n contractorType?: ContractorType,\n): ContractorAction[] {\n const actions: ContractorAction[] = []\n const status = contractor.onboardingStatus\n\n if (contractorType === 'active') {\n actions.push('view')\n\n if (contractor.upcomingEmployment && contractor.rehireCancellationEligible) {\n actions.push('cancel_rehire')\n } else if (contractor.dismissalDate && contractor.dismissalCancellationEligible) {\n actions.push('cancel_dismissal')\n } else if (!contractor.dismissalDate && !contractor.upcomingEmployment) {\n actions.push('dismiss')\n }\n\n return actions\n }\n\n if (contractorType === 'terminated') {\n actions.push('view')\n\n if (contractor.upcomingEmployment) {\n if (contractor.rehireCancellationEligible) {\n actions.push('cancel_rehire')\n }\n } else if (contractor.dismissalCancellationEligible) {\n actions.push('cancel_dismissal')\n } else if (!contractor.isActive) {\n actions.push('rehire')\n }\n\n return actions\n }\n\n // 'onboarding' filter and the unfiltered (undefined) onboarding-flavor list share the same\n // edit / cancel_self_onboarding / delete logic used by today's onboarding ContractorList.\n const canCancelSelfOnboarding = !!status && SELF_ONBOARDING_CANCELLABLE_STATUSES.has(status)\n\n if (!canCancelSelfOnboarding) {\n actions.push('edit')\n } else {\n actions.push('cancel_self_onboarding')\n }\n\n actions.push('delete')\n\n if (\n contractorType === 'onboarding' &&\n status === ContractorOnboardingStatus.ONBOARDING_COMPLETED\n ) {\n actions.push('view')\n }\n\n return actions\n}\n\n/**\n * Fetches a paginated list of a company's contractors and decorates each entry with the actions\n * allowed for its current onboarding/employment state.\n *\n * @remarks\n * `contractorType` maps to a server-side filter and changes which actions appear on each row:\n * `'active'` exposes `view` plus `dismiss`/`cancel_dismissal`/`cancel_rehire`, `'terminated'`\n * exposes `view` plus `rehire`/`cancel_dismissal`/`cancel_rehire`, `'onboarding'` and the\n * unfiltered default expose `edit`/`cancel_self_onboarding`/`delete`. Omit `contractorType` to\n * list every contractor.\n *\n * Page changes use placeholder data: the previous page stays rendered while the next one loads,\n * and `status.isFetching` flips to `true` during the request.\n *\n * @param input - Company and optional filter for the list.\n * @returns A {@link HookLoadingResult} while the first page is in flight, or a {@link UseContractorListReady} once data has arrived.\n * @public\n */\nexport function useContractorList({\n companyId,\n contractorType,\n}: UseContractorListProps): UseContractorListResult {\n const { currentPage, itemsPerPage, getPaginationProps } = usePagination()\n\n const queryParams = useMemo(() => {\n const baseParams = {\n companyUuid: companyId,\n page: currentPage,\n per: itemsPerPage,\n }\n\n switch (contractorType) {\n case 'active':\n return { ...baseParams, onboardedActive: true }\n case 'onboarding':\n return { ...baseParams, onboarded: false }\n case 'terminated':\n return { ...baseParams, terminated: true }\n default:\n return baseParams\n }\n }, [companyId, currentPage, itemsPerPage, contractorType])\n\n const contractorsQuery = useContractorsList(queryParams, { placeholderData: keepPreviousData })\n\n const deleteContractorMutation = useContractorsDeleteMutation()\n const updateOnboardingStatusMutation = useContractorsUpdateOnboardingStatusMutation()\n const cancelDismissalMutation =\n useContractorsDeleteV1ContractorsContractorUuidTerminationMutation()\n const cancelRehireMutation = useContractorsDeleteV1ContractorsContractorUuidRehireMutation()\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('ContractorList')\n\n const errorHandling = composeErrorHandler([contractorsQuery], { submitError, setSubmitError })\n\n const isPending =\n deleteContractorMutation.isPending ||\n updateOnboardingStatusMutation.isPending ||\n cancelDismissalMutation.isPending ||\n cancelRehireMutation.isPending\n\n const { data, isFetching } = contractorsQuery\n\n const contractors = useMemo<ContractorWithActions[]>(() => {\n return (data?.contractors ?? []).map(contractor => ({\n ...contractor,\n allowedActions: deriveAllowedActions(contractor, contractorType),\n }))\n }, [data?.contractors, contractorType])\n\n const paginationProps = data?.httpMeta.response.headers\n ? getPaginationProps(data.httpMeta.response.headers, isFetching)\n : {\n handleNextPage: () => {},\n handleFirstPage: () => {},\n handleLastPage: () => {},\n handlePreviousPage: () => {},\n handleItemsPerPageChange: () => {},\n currentPage: 1,\n totalPages: 1,\n totalCount: 0,\n itemsPerPage: 5 as const,\n }\n\n const onDelete = async (contractorId: string): Promise<void> => {\n await baseSubmitHandler(contractorId, async id => {\n await deleteContractorMutation.mutateAsync({\n request: { contractorUuid: id },\n })\n })\n }\n\n const onCancelSelfOnboarding = async (\n contractorId: string,\n ): Promise<ContractorOnboardingStatusEntity | undefined> => {\n let onboardingStatus: ContractorOnboardingStatusEntity | undefined\n\n await baseSubmitHandler(contractorId, async id => {\n const result = await updateOnboardingStatusMutation.mutateAsync({\n request: {\n contractorUuid: id,\n contractorOnboardingStatusUpdateRequestBody: {\n onboardingStatus: ContractorOnboardingStatus.ADMIN_ONBOARDING_INCOMPLETE,\n },\n },\n })\n\n onboardingStatus = result.contractorOnboardingStatus\n })\n\n return onboardingStatus\n }\n\n const onCancelDismissal = async (contractorId: string): Promise<void> => {\n await baseSubmitHandler(contractorId, async id => {\n await cancelDismissalMutation.mutateAsync({\n request: { contractorUuid: id },\n })\n })\n }\n\n const onCancelRehire = async (contractorId: string): Promise<void> => {\n await baseSubmitHandler(contractorId, async id => {\n await cancelRehireMutation.mutateAsync({\n request: { contractorUuid: id },\n })\n })\n }\n\n const isLoading = !data && isFetching\n\n if (isLoading) {\n return {\n isLoading: true,\n errorHandling,\n }\n }\n\n return {\n isLoading: false,\n data: {\n contractors,\n },\n pagination: paginationProps,\n status: { isFetching, isPending },\n actions: { onDelete, onCancelSelfOnboarding, onCancelDismissal, onCancelRehire },\n errorHandling,\n }\n}\n"],"names":["SELF_ONBOARDING_CANCELLABLE_STATUSES","ContractorOnboardingStatus","deriveAllowedActions","contractor","contractorType","actions","status","useContractorList","companyId","currentPage","itemsPerPage","getPaginationProps","usePagination","queryParams","useMemo","baseParams","contractorsQuery","useContractorsList","keepPreviousData","deleteContractorMutation","useContractorsDeleteMutation","updateOnboardingStatusMutation","useContractorsUpdateOnboardingStatusMutation","cancelDismissalMutation","useContractorsDeleteV1ContractorsContractorUuidTerminationMutation","cancelRehireMutation","useContractorsDeleteV1ContractorsContractorUuidRehireMutation","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","errorHandling","composeErrorHandler","isPending","data","isFetching","contractors","paginationProps","onDelete","contractorId","id","onCancelSelfOnboarding","onboardingStatus","onCancelDismissal","onCancelRehire"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useContractorList.js","sources":["../../../../../src/components/Contractor/ContractorList/shared/useContractorList.ts"],"sourcesContent":["import { useMemo, useState } 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 type { TableSortDirection } from '@/components/Common/UI/Table/TableTypes'\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 * Field the contractor list can be sorted by.\n *\n * @remarks\n * `'name'` sorts by last name for individual contractors and by business name for business\n * contractors, matching how each row is labelled.\n *\n * @public\n */\nexport type ContractorSortField = 'name'\n\n/**\n * Sort applied to {@link useContractorList}.\n *\n * @public\n */\nexport interface ContractorListSort {\n /** Field the list is ordered by. */\n field: ContractorSortField\n /** Direction the field is ordered in. */\n direction: TableSortDirection\n}\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 /** Server-side sort state for the list, and the setter that re-queries with a new sort. */\n sort: {\n /** The active sort, or `undefined` while the list is in the API's default order. */\n current?: ContractorListSort\n /** Applies a new sort, or clears it with `undefined`, and returns to page 1. */\n onSortChange: (sort: ContractorListSort | undefined) => void\n }\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 SORT_DIRECTION_PARAM = {\n ascending: 'asc',\n descending: 'desc',\n} as const satisfies Record<TableSortDirection, string>\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 * Sorting is applied by the API, so the order holds across pages. No sort is requested until\n * `sort.onSortChange` is called, leaving the list in the API's default order until then, and\n * calling it with `undefined` returns the list to that default order. Applying or clearing a sort\n * returns to page 1 because the API sorts before it paginates. The sort persists across\n * `contractorType` changes, since every filter sorts by the same field.\n *\n * The endpoint rejects a sort combined with a search term (HTTP 422), so a search filter added\n * here would have to clear the sort.\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, resetPage } = usePagination()\n const [sort, setSort] = useState<ContractorListSort | undefined>()\n\n const queryParams = useMemo(() => {\n const baseParams = {\n companyUuid: companyId,\n page: currentPage,\n per: itemsPerPage,\n // Spread conditionally rather than passing `sortBy: undefined`, so an unsorted list\n // sends no `sort_by` at all and keeps the query key it had before sorting existed.\n ...(sort ? { sortBy: `${sort.field}:${SORT_DIRECTION_PARAM[sort.direction]}` } : {}),\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, sort])\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 onSortChange = (nextSort: ContractorListSort | undefined) => {\n setSort(nextSort)\n // The API sorts before paginating, so the current page index means nothing under a new order.\n resetPage()\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 sort: { current: sort, onSortChange },\n status: { isFetching, isPending },\n actions: { onDelete, onCancelSelfOnboarding, onCancelDismissal, onCancelRehire },\n errorHandling,\n }\n}\n"],"names":["SORT_DIRECTION_PARAM","SELF_ONBOARDING_CANCELLABLE_STATUSES","ContractorOnboardingStatus","deriveAllowedActions","contractor","contractorType","actions","status","useContractorList","companyId","currentPage","itemsPerPage","getPaginationProps","resetPage","usePagination","sort","setSort","useState","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","onSortChange","nextSort"],"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;"}
|
|
@@ -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"),
|