@gusto/embedded-react-sdk 0.46.2 → 0.46.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +67 -0
- package/dist/components/Common/DataView/DataTable/DataTable.js +76 -72
- package/dist/components/Common/DataView/DataTable/DataTable.js.map +1 -1
- package/dist/components/Common/DataView/DataTable/DataTable.module.scss.js +8 -0
- package/dist/components/Common/DataView/DataTable/DataTable.module.scss.js.map +1 -0
- package/dist/components/Common/DataView/useDataView.d.ts +2 -0
- package/dist/components/Common/DataView/useDataView.js.map +1 -1
- package/dist/components/Common/DocumentViewer/DocumentViewer.js +10 -10
- package/dist/components/Common/DocumentViewer/DocumentViewer.js.map +1 -1
- package/dist/components/Common/DocumentViewer/DocumentViewer.module.scss.js +9 -9
- package/dist/components/Common/PaginationControl/PaginationControl.js +11 -10
- package/dist/components/Common/PaginationControl/PaginationControl.js.map +1 -1
- package/dist/components/Common/PaginationControl/PaginationControlTypes.d.ts +1 -1
- package/dist/components/Common/UI/DescriptionList/DescriptionList.js +11 -10
- package/dist/components/Common/UI/DescriptionList/DescriptionList.js.map +1 -1
- package/dist/components/Common/UI/DescriptionList/DescriptionList.module.scss.js +4 -4
- package/dist/components/Common/UI/Input/InputTypes.d.ts +1 -1
- package/dist/components/Common/UI/Input/InputTypes.js.map +1 -1
- package/dist/components/Common/UI/NumberInput/NumberInput.js +51 -48
- package/dist/components/Common/UI/NumberInput/NumberInput.js.map +1 -1
- package/dist/components/Common/VisuallyHidden/VisuallyHidden.d.ts +1 -1
- package/dist/components/Common/VisuallyHidden/VisuallyHidden.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/DocumentSigner/shared/useSignCompanyForm/fields.js +4 -4
- 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/shared/usePayScheduleForm/fields.js +5 -5
- 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/Contractor/Address/useAddress.js +5 -6
- package/dist/components/Contractor/Address/useAddress.js.map +1 -1
- package/dist/components/Contractor/Profile/useContractorProfile.js +33 -34
- package/dist/components/Contractor/Profile/useContractorProfile.js.map +1 -1
- package/dist/components/Employee/Compensation/management/EditCompensation/EditCompensation.js +14 -11
- package/dist/components/Employee/Compensation/management/EditCompensation/EditCompensation.js.map +1 -1
- package/dist/components/Employee/Compensation/management/EditPendingCompensation/EditPendingCompensation.js +0 -2
- package/dist/components/Employee/Compensation/management/EditPendingCompensation/EditPendingCompensation.js.map +1 -1
- package/dist/components/Employee/Compensation/management/ManagementCompensationFormBody.js +18 -18
- package/dist/components/Employee/Compensation/management/ManagementCompensationFormBody.js.map +1 -1
- package/dist/components/Employee/Compensation/onboarding/JobsList/JobsListPresentation.js +36 -36
- package/dist/components/Employee/Compensation/onboarding/JobsList/JobsListPresentation.js.map +1 -1
- package/dist/components/Employee/Compensation/shared/useCompensationForm/fields.js +4 -4
- package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js +140 -140
- package/dist/components/Employee/Compensation/shared/useCompensationForm/useCompensationForm.js.map +1 -1
- package/dist/components/Employee/Compensation/shared/useJobForm/fields.js +6 -6
- package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.d.ts +6 -5
- package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.js +162 -131
- package/dist/components/Employee/Compensation/shared/useJobForm/useJobForm.js.map +1 -1
- package/dist/components/Employee/Dashboard/BasicDetailsView.js +74 -88
- package/dist/components/Employee/Dashboard/BasicDetailsView.js.map +1 -1
- package/dist/components/Employee/Dashboard/Dashboard.js +53 -51
- package/dist/components/Employee/Dashboard/Dashboard.js.map +1 -1
- package/dist/components/Employee/Dashboard/DocumentsView.js +17 -10
- package/dist/components/Employee/Dashboard/DocumentsView.js.map +1 -1
- package/dist/components/Employee/Dashboard/JobAndPayView.js +383 -357
- package/dist/components/Employee/Dashboard/JobAndPayView.js.map +1 -1
- package/dist/components/Employee/Dashboard/TaxesView.js +114 -101
- package/dist/components/Employee/Dashboard/TaxesView.js.map +1 -1
- package/dist/components/Employee/Dashboard/getPendingCompensationChanges.js +36 -36
- package/dist/components/Employee/Dashboard/getPendingCompensationChanges.js.map +1 -1
- package/dist/components/Employee/Deductions/DeductionsForm/StandardDeductionForm.js +57 -57
- package/dist/components/Employee/Deductions/DeductionsForm/StandardDeductionForm.js.map +1 -1
- package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/childSupportGarnishmentFormSchema.d.ts +14 -5
- package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/childSupportGarnishmentFormSchema.js +55 -36
- package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/childSupportGarnishmentFormSchema.js.map +1 -1
- package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/fields.js +8 -8
- package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/useChildSupportGarnishmentForm.js +18 -18
- package/dist/components/Employee/Deductions/shared/useChildSupportGarnishmentForm/useChildSupportGarnishmentForm.js.map +1 -1
- package/dist/components/Employee/Deductions/shared/useDeductionForm/fields.js +4 -4
- package/dist/components/Employee/Deductions/shared/useDeductionForm/useDeductionForm.d.ts +3 -3
- package/dist/components/Employee/Deductions/shared/useDeductionForm/useDeductionForm.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/shared/useSignEmployeeForm/fields.js +1 -1
- package/dist/components/Employee/FederalTaxes/shared/useFederalTaxesForm/fields.js +4 -4
- package/dist/components/Employee/HomeAddress/management/HomeAddressView.js +157 -147
- package/dist/components/Employee/HomeAddress/management/HomeAddressView.js.map +1 -1
- package/dist/components/Employee/HomeAddress/management/useHomeAddressManagement.js +56 -55
- package/dist/components/Employee/HomeAddress/management/useHomeAddressManagement.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/onboarding/BankForm.js +20 -20
- package/dist/components/Employee/PaymentMethod/onboarding/BankForm.js.map +1 -1
- package/dist/components/Employee/PaymentMethod/shared/useBankForm/fields.js +1 -1
- package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/splitFieldFactory.d.ts +1 -1
- package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/splitFieldFactory.js +4 -4
- package/dist/components/Employee/PaymentMethod/shared/useSplitPaymentsForm/splitFieldFactory.js.map +1 -1
- package/dist/components/Employee/Profile/shared/useEmployeeDetailsForm/fields.js +8 -8
- package/dist/components/Employee/Profile/shared/useHomeAddressForm/fields.js +5 -5
- package/dist/components/Employee/Profile/shared/useHomeAddressForm/homeAddressSchema.d.ts +0 -1
- package/dist/components/Employee/Profile/shared/useHomeAddressForm/homeAddressSchema.js +11 -12
- package/dist/components/Employee/Profile/shared/useHomeAddressForm/homeAddressSchema.js.map +1 -1
- package/dist/components/Employee/Profile/shared/useHomeAddressForm/homeAddressSchema.test.d.ts +1 -0
- package/dist/components/Employee/Profile/shared/useHomeAddressForm/useHomeAddressForm.d.ts +6 -1
- package/dist/components/Employee/Profile/shared/useHomeAddressForm/useHomeAddressForm.js +95 -94
- package/dist/components/Employee/Profile/shared/useHomeAddressForm/useHomeAddressForm.js.map +1 -1
- package/dist/components/Employee/Profile/shared/useWorkAddressForm/fields.js +4 -4
- package/dist/components/Employee/Profile/shared/useWorkAddressForm/useWorkAddressForm.d.ts +6 -1
- package/dist/components/Employee/Profile/shared/useWorkAddressForm/useWorkAddressForm.js +87 -86
- package/dist/components/Employee/Profile/shared/useWorkAddressForm/useWorkAddressForm.js.map +1 -1
- package/dist/components/Employee/StateTaxes/shared/EmployeeStateTaxesView.js +18 -18
- package/dist/components/Employee/StateTaxes/shared/EmployeeStateTaxesView.js.map +1 -1
- package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fieldComponents.js +8 -8
- package/dist/components/Employee/Taxes/useTaxes.js +3 -4
- package/dist/components/Employee/Taxes/useTaxes.js.map +1 -1
- package/dist/components/Employee/WorkAddress/management/WorkAddressView.js +5 -1
- package/dist/components/Employee/WorkAddress/management/WorkAddressView.js.map +1 -1
- package/dist/components/Employee/WorkAddress/management/useWorkAddressManagement.js +61 -60
- package/dist/components/Employee/WorkAddress/management/useWorkAddressManagement.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/usePreparedPayrollData.js +2 -3
- package/dist/components/Payroll/usePreparedPayrollData.js.map +1 -1
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.js +6 -7
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesHoliday.js.map +1 -1
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.d.ts +1 -1
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.js +52 -68
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.js.map +1 -1
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentation.module.scss.js +4 -4
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesPresentationTypes.d.ts +0 -11
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.js +137 -163
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/SelectEmployeesTimeOff.js.map +1 -1
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.js +36 -35
- package/dist/components/TimeOff/TimeOffManagement/SelectEmployees/useSelectEmployeesData.js.map +1 -1
- package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.js +34 -34
- package/dist/components/TimeOff/TimeOffPolicyDetail/TimeOffPolicyDetailPresentation.js.map +1 -1
- package/dist/helpers/breadcrumbHelpers.d.ts +1 -1
- package/dist/helpers/breadcrumbHelpers.js.map +1 -1
- package/dist/helpers/federalEin.d.ts +1 -0
- package/dist/helpers/federalEin.js.map +1 -1
- package/dist/helpers/mask.d.ts +8 -4
- package/dist/helpers/mask.js.map +1 -1
- package/dist/helpers/rem.d.ts +2 -1
- package/dist/helpers/rem.js.map +1 -1
- package/dist/hooks/useAsyncError.d.ts +1 -0
- package/dist/hooks/useAsyncError.js.map +1 -1
- package/dist/hooks/useForkRef/useForkRef.d.ts +1 -0
- package/dist/hooks/useForkRef/useForkRef.js.map +1 -1
- package/dist/i18n/I18n.d.ts +9 -1
- package/dist/i18n/I18n.js.map +1 -1
- package/dist/i18n/en/Company.TimeOff.EmployeeTable.json.js +14 -14
- package/dist/i18n/en/Company.TimeOff.SelectEmployees.json.js +12 -18
- package/dist/i18n/en/Company.TimeOff.SelectEmployees.json.js.map +1 -1
- package/dist/i18n/en/Employee.Compensation.json.js +24 -24
- package/dist/i18n/en/Employee.Dashboard.json.js +22 -20
- package/dist/i18n/en/Employee.Dashboard.json.js.map +1 -1
- package/dist/i18n/en/Employee.PaymentMethod.json.js +25 -25
- package/dist/i18n/en/Employee.StateTaxes.json.js +12 -10
- package/dist/i18n/en/Employee.StateTaxes.json.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/types/hooks.d.ts +1 -1
- package/dist/types/i18next.d.ts +4 -17
- package/dist/types/observability.d.ts +1 -1
- package/package.json +30 -27
- package/dist/components/Employee/Dashboard/CompensationCard.d.ts +0 -13
|
@@ -1,147 +1,148 @@
|
|
|
1
|
-
import { useMemo as
|
|
2
|
-
import { useForm as
|
|
3
|
-
import { zodResolver as
|
|
4
|
-
import { useLocationsGet as
|
|
5
|
-
import { useEmployeeAddressesRetrieveWorkAddress as
|
|
6
|
-
import { useEmployeeAddressesCreateWorkAddressMutation as
|
|
7
|
-
import { useEmployeeAddressesUpdateWorkAddressMutation as
|
|
8
|
-
import { RFCDate as
|
|
9
|
-
import { createWorkAddressSchema as
|
|
10
|
-
import { EffectiveDateField as
|
|
11
|
-
import { useDeriveFieldsMetadata as
|
|
12
|
-
import { useHookFormInternals as
|
|
13
|
-
import { createGetFormSubmissionValues as
|
|
14
|
-
import { withOptions as
|
|
15
|
-
import { composeErrorHandler as
|
|
16
|
-
import { useBaseSubmit as
|
|
17
|
-
import { SDKInternalError as
|
|
18
|
-
import { addressInline as
|
|
19
|
-
function
|
|
1
|
+
import { useMemo as C } from "react";
|
|
2
|
+
import { useForm as N } from "react-hook-form";
|
|
3
|
+
import { zodResolver as X } from "@hookform/resolvers/zod";
|
|
4
|
+
import { useLocationsGet as Y } from "@gusto/embedded-api/react-query/locationsGet";
|
|
5
|
+
import { useEmployeeAddressesRetrieveWorkAddress as Z } from "@gusto/embedded-api/react-query/employeeAddressesRetrieveWorkAddress";
|
|
6
|
+
import { useEmployeeAddressesCreateWorkAddressMutation as _ } from "@gusto/embedded-api/react-query/employeeAddressesCreateWorkAddress";
|
|
7
|
+
import { useEmployeeAddressesUpdateWorkAddressMutation as $ } from "@gusto/embedded-api/react-query/employeeAddressesUpdateWorkAddress";
|
|
8
|
+
import { RFCDate as T } from "@gusto/embedded-api/types/rfcdate";
|
|
9
|
+
import { createWorkAddressSchema as ee } from "./workAddressSchema.js";
|
|
10
|
+
import { EffectiveDateField as oe, LocationField as te } from "./fields.js";
|
|
11
|
+
import { useDeriveFieldsMetadata as re } from "../../../../../partner-hook-utils/form/useDeriveFieldsMetadata.js";
|
|
12
|
+
import { useHookFormInternals as se } from "../../../../../partner-hook-utils/form/useHookFormInternals.js";
|
|
13
|
+
import { createGetFormSubmissionValues as ae } from "../../../../../partner-hook-utils/form/getFormSubmissionValues.js";
|
|
14
|
+
import { withOptions as ie } from "../../../../../partner-hook-utils/form/withOptions.js";
|
|
15
|
+
import { composeErrorHandler as ne } from "../../../../../partner-hook-utils/composeErrorHandler.js";
|
|
16
|
+
import { useBaseSubmit as de } from "../../../../Base/useBaseSubmit.js";
|
|
17
|
+
import { SDKInternalError as u } from "../../../../../types/sdkError.js";
|
|
18
|
+
import { addressInline as me } from "../../../../../helpers/formattedStrings.js";
|
|
19
|
+
function we({
|
|
20
20
|
companyId: a,
|
|
21
|
-
employeeId:
|
|
21
|
+
employeeId: q,
|
|
22
22
|
workAddressUuid: e,
|
|
23
|
+
initialAddress: W,
|
|
23
24
|
withEffectiveDateField: i = !0,
|
|
24
|
-
optionalFieldsToRequire:
|
|
25
|
+
optionalFieldsToRequire: y,
|
|
25
26
|
defaultValues: f,
|
|
26
|
-
validationMode:
|
|
27
|
-
shouldFocusError:
|
|
27
|
+
validationMode: P = "onSubmit",
|
|
28
|
+
shouldFocusError: V = !0
|
|
28
29
|
}) {
|
|
29
|
-
const l =
|
|
30
|
+
const l = Y({ companyId: a ?? "" }, { enabled: !!a }), k = !!e && W?.uuid === e, p = Z(
|
|
30
31
|
{ workAddressUuid: e ?? "" },
|
|
31
|
-
{ enabled: !!e }
|
|
32
|
-
),
|
|
33
|
-
() =>
|
|
34
|
-
mode:
|
|
35
|
-
optionalFieldsToRequire:
|
|
32
|
+
{ enabled: !!e && !k }
|
|
33
|
+
), n = l.data?.companyLocationsList, d = !e, o = e ? k ? W : p.data?.employeeWorkAddress : void 0, A = d ? "create" : "update", [D, H] = C(
|
|
34
|
+
() => ee({
|
|
35
|
+
mode: A,
|
|
36
|
+
optionalFieldsToRequire: y,
|
|
36
37
|
withEffectiveDateField: i
|
|
37
38
|
}),
|
|
38
|
-
[
|
|
39
|
-
),
|
|
39
|
+
[A, y, i]
|
|
40
|
+
), b = C(
|
|
40
41
|
() => ({
|
|
41
42
|
locationUuid: o?.locationUuid ?? f?.locationUuid ?? "",
|
|
42
43
|
effectiveDate: o?.effectiveDate ?? f?.effectiveDate ?? ""
|
|
43
44
|
}),
|
|
44
45
|
[o, f]
|
|
45
|
-
), m =
|
|
46
|
-
resolver:
|
|
47
|
-
mode:
|
|
48
|
-
shouldFocusError:
|
|
49
|
-
defaultValues:
|
|
50
|
-
values:
|
|
46
|
+
), m = N({
|
|
47
|
+
resolver: X(D),
|
|
48
|
+
mode: P,
|
|
49
|
+
shouldFocusError: V,
|
|
50
|
+
defaultValues: b,
|
|
51
|
+
values: b,
|
|
51
52
|
resetOptions: { keepDirtyValues: !0 }
|
|
52
|
-
}),
|
|
53
|
-
baseSubmitHandler:
|
|
54
|
-
error:
|
|
55
|
-
setError:
|
|
56
|
-
} =
|
|
53
|
+
}), g = _(), h = $(), U = g.isPending || h.isPending, {
|
|
54
|
+
baseSubmitHandler: B,
|
|
55
|
+
error: O,
|
|
56
|
+
setError: R
|
|
57
|
+
} = de("WorkAddressForm"), G = [l, ...e ? [p] : []], v = ne(G, { submitError: O, setSubmitError: R }), Q = (n ?? []).map((t) => ({
|
|
57
58
|
value: t.uuid,
|
|
58
|
-
label:
|
|
59
|
-
})),
|
|
60
|
-
locationUuid:
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
59
|
+
label: me(t)
|
|
60
|
+
})), L = re(H, m.control), x = {
|
|
61
|
+
locationUuid: ie(
|
|
62
|
+
L.locationUuid,
|
|
63
|
+
Q,
|
|
64
|
+
n ?? []
|
|
64
65
|
),
|
|
65
|
-
effectiveDate:
|
|
66
|
-
},
|
|
67
|
-
let
|
|
68
|
-
return await new Promise((
|
|
66
|
+
effectiveDate: L.effectiveDate
|
|
67
|
+
}, z = async (t, M) => {
|
|
68
|
+
let E;
|
|
69
|
+
return await new Promise((S) => {
|
|
69
70
|
m.handleSubmit(
|
|
70
|
-
async (
|
|
71
|
-
await
|
|
72
|
-
const
|
|
73
|
-
if (!
|
|
74
|
-
throw new
|
|
75
|
-
const
|
|
71
|
+
async (J) => {
|
|
72
|
+
await B(J, async (c) => {
|
|
73
|
+
const w = M?.employeeId ?? q;
|
|
74
|
+
if (!w)
|
|
75
|
+
throw new u("employeeId is required to submit work address");
|
|
76
|
+
const F = i && c.effectiveDate ? c.effectiveDate : M?.effectiveDate, I = F ? new T(new Date(F)) : void 0;
|
|
76
77
|
let r;
|
|
77
|
-
if (
|
|
78
|
-
const s = await
|
|
78
|
+
if (d) {
|
|
79
|
+
const s = await g.mutateAsync({
|
|
79
80
|
request: {
|
|
80
|
-
employeeId:
|
|
81
|
+
employeeId: w,
|
|
81
82
|
requestBody: {
|
|
82
|
-
locationUuid:
|
|
83
|
-
effectiveDate:
|
|
83
|
+
locationUuid: c.locationUuid,
|
|
84
|
+
effectiveDate: I
|
|
84
85
|
}
|
|
85
86
|
}
|
|
86
87
|
});
|
|
87
88
|
if (!s.employeeWorkAddress)
|
|
88
|
-
throw new
|
|
89
|
+
throw new u("Work address creation failed");
|
|
89
90
|
r = s.employeeWorkAddress, t?.onWorkAddressCreated?.(r);
|
|
90
91
|
} else {
|
|
91
92
|
if (!o || !e)
|
|
92
|
-
throw new
|
|
93
|
+
throw new u(
|
|
93
94
|
"Cannot update work address: no matching address on file"
|
|
94
95
|
);
|
|
95
|
-
const s = await
|
|
96
|
+
const s = await h.mutateAsync({
|
|
96
97
|
request: {
|
|
97
98
|
workAddressUuid: o.uuid,
|
|
98
99
|
requestBody: {
|
|
99
100
|
version: o.version,
|
|
100
|
-
locationUuid:
|
|
101
|
-
effectiveDate:
|
|
101
|
+
locationUuid: c.locationUuid,
|
|
102
|
+
effectiveDate: I
|
|
102
103
|
}
|
|
103
104
|
}
|
|
104
105
|
});
|
|
105
106
|
if (!s.employeeWorkAddress)
|
|
106
|
-
throw new
|
|
107
|
+
throw new u("Work address update failed");
|
|
107
108
|
r = s.employeeWorkAddress, t?.onWorkAddressUpdated?.(r);
|
|
108
109
|
}
|
|
109
|
-
|
|
110
|
-
mode:
|
|
110
|
+
E = {
|
|
111
|
+
mode: d ? "create" : "update",
|
|
111
112
|
data: r
|
|
112
113
|
};
|
|
113
|
-
}),
|
|
114
|
+
}), S();
|
|
114
115
|
},
|
|
115
116
|
() => {
|
|
116
|
-
|
|
117
|
+
S();
|
|
117
118
|
}
|
|
118
119
|
)();
|
|
119
|
-
}),
|
|
120
|
-
},
|
|
121
|
-
return !a ||
|
|
120
|
+
}), E;
|
|
121
|
+
}, K = se(m), j = !!a && l.isLoading || !!e && p.isLoading;
|
|
122
|
+
return !a || j || !n ? { isLoading: !0, errorHandling: v } : e && !o ? { isLoading: !0, errorHandling: v } : {
|
|
122
123
|
isLoading: !1,
|
|
123
124
|
data: {
|
|
124
125
|
workAddress: o ?? null,
|
|
125
|
-
companyLocations:
|
|
126
|
+
companyLocations: n
|
|
126
127
|
},
|
|
127
128
|
status: {
|
|
128
|
-
isPending:
|
|
129
|
-
mode:
|
|
129
|
+
isPending: U,
|
|
130
|
+
mode: d ? "create" : "update"
|
|
130
131
|
},
|
|
131
|
-
actions: { onSubmit:
|
|
132
|
+
actions: { onSubmit: z },
|
|
132
133
|
errorHandling: v,
|
|
133
134
|
form: {
|
|
134
135
|
Fields: {
|
|
135
|
-
Location:
|
|
136
|
-
EffectiveDate: i ?
|
|
136
|
+
Location: te,
|
|
137
|
+
EffectiveDate: i ? oe : void 0
|
|
137
138
|
},
|
|
138
|
-
fieldsMetadata:
|
|
139
|
-
hookFormInternals:
|
|
140
|
-
getFormSubmissionValues:
|
|
139
|
+
fieldsMetadata: x,
|
|
140
|
+
hookFormInternals: K,
|
|
141
|
+
getFormSubmissionValues: ae(m, D)
|
|
141
142
|
}
|
|
142
143
|
};
|
|
143
144
|
}
|
|
144
145
|
export {
|
|
145
|
-
|
|
146
|
+
we as useWorkAddressForm
|
|
146
147
|
};
|
|
147
148
|
//# sourceMappingURL=useWorkAddressForm.js.map
|
package/dist/components/Employee/Profile/shared/useWorkAddressForm/useWorkAddressForm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWorkAddressForm.js","sources":["../../../../../../src/components/Employee/Profile/shared/useWorkAddressForm/useWorkAddressForm.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useForm } from 'react-hook-form'\nimport type { UseFormProps } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport type { Location } from '@gusto/embedded-api/models/components/location'\nimport type { EmployeeWorkAddress } from '@gusto/embedded-api/models/components/employeeworkaddress'\nimport { useLocationsGet } from '@gusto/embedded-api/react-query/locationsGet'\nimport { useEmployeeAddressesRetrieveWorkAddress } from '@gusto/embedded-api/react-query/employeeAddressesRetrieveWorkAddress'\nimport { useEmployeeAddressesCreateWorkAddressMutation } from '@gusto/embedded-api/react-query/employeeAddressesCreateWorkAddress'\nimport { useEmployeeAddressesUpdateWorkAddressMutation } from '@gusto/embedded-api/react-query/employeeAddressesUpdateWorkAddress'\nimport { RFCDate } from '@gusto/embedded-api/types/rfcdate'\nimport {\n createWorkAddressSchema,\n type WorkAddressOptionalFieldsToRequire,\n type WorkAddressFormData,\n type WorkAddressFormOutputs,\n} from './workAddressSchema'\nimport { LocationField, EffectiveDateField } from './fields'\nimport { useDeriveFieldsMetadata } from '@/partner-hook-utils/form/useDeriveFieldsMetadata'\nimport { useHookFormInternals } from '@/partner-hook-utils/form/useHookFormInternals'\nimport { createGetFormSubmissionValues } from '@/partner-hook-utils/form/getFormSubmissionValues'\nimport { withOptions } from '@/partner-hook-utils/form/withOptions'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport type {\n BaseFormHookReady,\n FieldsMetadata,\n HookLoadingResult,\n HookSubmitResult,\n} from '@/partner-hook-utils/types'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { SDKInternalError } from '@/types/sdkError'\nimport { addressInline } from '@/helpers/formattedStrings'\n\nexport type { WorkAddressOptionalFieldsToRequire } from './workAddressSchema'\n\nexport interface WorkAddressSubmitCallbacks {\n onWorkAddressCreated?: (workAddress: EmployeeWorkAddress) => void\n onWorkAddressUpdated?: (workAddress: EmployeeWorkAddress) => void\n}\n\nexport interface WorkAddressSubmitOptions {\n employeeId?: string\n effectiveDate?: string\n}\n\nexport interface UseWorkAddressFormProps {\n /** Company UUID for locations; omit or leave unset while resolving from the employee record. */\n companyId?: string\n employeeId: string\n /**\n * When set, loads that work address via GET `/v1/work_addresses/{work_address_uuid}` and updates it (PUT).\n * When omitted, the form is in create mode (POST).\n */\n workAddressUuid?: string\n withEffectiveDateField?: boolean\n optionalFieldsToRequire?: WorkAddressOptionalFieldsToRequire\n defaultValues?: Partial<WorkAddressFormData>\n validationMode?: UseFormProps['mode']\n shouldFocusError?: boolean\n}\n\nexport interface WorkAddressFields {\n Location: typeof LocationField\n EffectiveDate: typeof EffectiveDateField | undefined\n}\n\nexport interface UseWorkAddressFormReady extends BaseFormHookReady<\n FieldsMetadata,\n WorkAddressFormData,\n WorkAddressFields\n> {\n data: {\n /** The address row loaded for update; `null` in create mode. */\n workAddress: EmployeeWorkAddress | null\n companyLocations: Location[] | undefined\n }\n status: { isPending: boolean; mode: 'create' | 'update' }\n actions: {\n onSubmit: (\n callbacks?: WorkAddressSubmitCallbacks,\n options?: WorkAddressSubmitOptions,\n ) => Promise<HookSubmitResult<EmployeeWorkAddress> | undefined>\n }\n}\n\nexport function useWorkAddressForm({\n companyId,\n employeeId,\n workAddressUuid,\n withEffectiveDateField = true,\n optionalFieldsToRequire,\n defaultValues: partnerDefaults,\n validationMode = 'onSubmit',\n shouldFocusError = true,\n}: UseWorkAddressFormProps): HookLoadingResult | UseWorkAddressFormReady {\n const locationsQuery = useLocationsGet({ companyId: companyId ?? '' }, { enabled: !!companyId })\n\n const retrieveWorkAddressQuery = useEmployeeAddressesRetrieveWorkAddress(\n { workAddressUuid: workAddressUuid ?? '' },\n { enabled: !!workAddressUuid },\n )\n\n const companyLocations = locationsQuery.data?.companyLocationsList\n\n const isCreateMode = !workAddressUuid\n\n const fetchedWorkAddress = workAddressUuid\n ? retrieveWorkAddressQuery.data?.employeeWorkAddress\n : undefined\n\n const schemaMode = isCreateMode ? 'create' : 'update'\n\n const [schema, metadataConfig] = useMemo(\n () =>\n createWorkAddressSchema({\n mode: schemaMode,\n optionalFieldsToRequire,\n withEffectiveDateField,\n }),\n [schemaMode, optionalFieldsToRequire, withEffectiveDateField],\n )\n\n const resolvedDefaults: WorkAddressFormData = useMemo(\n () => ({\n locationUuid: fetchedWorkAddress?.locationUuid ?? partnerDefaults?.locationUuid ?? '',\n effectiveDate: fetchedWorkAddress?.effectiveDate ?? partnerDefaults?.effectiveDate ?? '',\n }),\n [fetchedWorkAddress, partnerDefaults],\n )\n\n const formMethods = useForm<WorkAddressFormData, unknown, WorkAddressFormOutputs>({\n resolver: zodResolver(schema),\n mode: validationMode,\n shouldFocusError,\n defaultValues: resolvedDefaults,\n values: resolvedDefaults,\n resetOptions: { keepDirtyValues: true },\n })\n\n const createWorkAddressMutation = useEmployeeAddressesCreateWorkAddressMutation()\n const updateWorkAddressMutation = useEmployeeAddressesUpdateWorkAddressMutation()\n\n const isPending = createWorkAddressMutation.isPending || updateWorkAddressMutation.isPending\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('WorkAddressForm')\n\n const queriesForErrors = [locationsQuery, ...(workAddressUuid ? [retrieveWorkAddressQuery] : [])]\n const errorHandling = composeErrorHandler(queriesForErrors, { submitError, setSubmitError })\n\n const locationOptions = (companyLocations ?? []).map(location => ({\n value: location.uuid,\n label: addressInline(location),\n }))\n\n const baseMetadata = useDeriveFieldsMetadata(metadataConfig, formMethods.control)\n const fieldsMetadata = {\n locationUuid: withOptions<Location>(\n baseMetadata.locationUuid,\n locationOptions,\n companyLocations ?? [],\n ),\n effectiveDate: baseMetadata.effectiveDate,\n }\n\n const onSubmit = async (\n callbacks?: WorkAddressSubmitCallbacks,\n options?: WorkAddressSubmitOptions,\n ): Promise<HookSubmitResult<EmployeeWorkAddress> | undefined> => {\n let submitResult: HookSubmitResult<EmployeeWorkAddress> | undefined\n\n await new Promise<void>(resolve => {\n void formMethods.handleSubmit(\n async (data: WorkAddressFormOutputs) => {\n await baseSubmitHandler(data, async payload => {\n const resolvedEmployeeId = options?.employeeId ?? employeeId\n\n if (!resolvedEmployeeId) {\n throw new SDKInternalError('employeeId is required to submit work address')\n }\n\n const resolvedEffectiveDate =\n withEffectiveDateField && payload.effectiveDate\n ? payload.effectiveDate\n : options?.effectiveDate\n\n const effectiveDateParam = resolvedEffectiveDate\n ? new RFCDate(new Date(resolvedEffectiveDate))\n : undefined\n\n let updatedWorkAddress: EmployeeWorkAddress\n\n if (isCreateMode) {\n const result = await createWorkAddressMutation.mutateAsync({\n request: {\n employeeId: resolvedEmployeeId,\n requestBody: {\n locationUuid: payload.locationUuid,\n effectiveDate: effectiveDateParam,\n },\n },\n })\n\n if (!result.employeeWorkAddress) {\n throw new SDKInternalError('Work address creation failed')\n }\n\n updatedWorkAddress = result.employeeWorkAddress\n callbacks?.onWorkAddressCreated?.(updatedWorkAddress)\n } else {\n if (!fetchedWorkAddress || !workAddressUuid) {\n throw new SDKInternalError(\n 'Cannot update work address: no matching address on file',\n )\n }\n\n const result = await updateWorkAddressMutation.mutateAsync({\n request: {\n workAddressUuid: fetchedWorkAddress.uuid,\n requestBody: {\n version: fetchedWorkAddress.version,\n locationUuid: payload.locationUuid,\n effectiveDate: effectiveDateParam,\n },\n },\n })\n\n if (!result.employeeWorkAddress) {\n throw new SDKInternalError('Work address update failed')\n }\n\n updatedWorkAddress = result.employeeWorkAddress\n callbacks?.onWorkAddressUpdated?.(updatedWorkAddress)\n }\n\n submitResult = {\n mode: isCreateMode ? 'create' : 'update',\n data: updatedWorkAddress,\n }\n })\n resolve()\n },\n () => {\n resolve()\n },\n )()\n })\n\n return submitResult\n }\n\n const hookFormInternals = useHookFormInternals(formMethods)\n\n const isDataLoading =\n (!!companyId && locationsQuery.isLoading) ||\n (!!workAddressUuid && retrieveWorkAddressQuery.isLoading)\n\n if (!companyId || isDataLoading || !companyLocations) {\n return { isLoading: true as const, errorHandling }\n }\n\n if (workAddressUuid && !fetchedWorkAddress) {\n return { isLoading: true as const, errorHandling }\n }\n\n return {\n isLoading: false as const,\n data: {\n workAddress: fetchedWorkAddress ?? null,\n companyLocations,\n },\n status: {\n isPending,\n mode: isCreateMode ? ('create' as const) : ('update' as const),\n },\n actions: { onSubmit },\n errorHandling,\n form: {\n Fields: {\n Location: LocationField,\n EffectiveDate: withEffectiveDateField ? EffectiveDateField : undefined,\n },\n fieldsMetadata,\n hookFormInternals,\n getFormSubmissionValues: createGetFormSubmissionValues(formMethods, schema),\n },\n }\n}\n\nexport type UseWorkAddressFormResult = HookLoadingResult | UseWorkAddressFormReady\nexport type WorkAddressFieldsMetadata = UseWorkAddressFormReady['form']['fieldsMetadata']\nexport type WorkAddressFormFields = UseWorkAddressFormReady['form']['Fields']\n"],"names":["useWorkAddressForm","companyId","employeeId","workAddressUuid","withEffectiveDateField","optionalFieldsToRequire","partnerDefaults","validationMode","shouldFocusError","locationsQuery","useLocationsGet","retrieveWorkAddressQuery","useEmployeeAddressesRetrieveWorkAddress","companyLocations","isCreateMode","fetchedWorkAddress","schemaMode","schema","metadataConfig","useMemo","createWorkAddressSchema","resolvedDefaults","formMethods","useForm","zodResolver","createWorkAddressMutation","useEmployeeAddressesCreateWorkAddressMutation","updateWorkAddressMutation","useEmployeeAddressesUpdateWorkAddressMutation","isPending","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","queriesForErrors","errorHandling","composeErrorHandler","locationOptions","location","addressInline","baseMetadata","useDeriveFieldsMetadata","fieldsMetadata","withOptions","onSubmit","callbacks","options","submitResult","resolve","data","payload","resolvedEmployeeId","SDKInternalError","resolvedEffectiveDate","effectiveDateParam","RFCDate","updatedWorkAddress","result","hookFormInternals","useHookFormInternals","isDataLoading","LocationField","EffectiveDateField","createGetFormSubmissionValues"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useWorkAddressForm.js","sources":["../../../../../../src/components/Employee/Profile/shared/useWorkAddressForm/useWorkAddressForm.tsx"],"sourcesContent":["import { useMemo } from 'react'\nimport { useForm } from 'react-hook-form'\nimport type { UseFormProps } from 'react-hook-form'\nimport { zodResolver } from '@hookform/resolvers/zod'\nimport type { Location } from '@gusto/embedded-api/models/components/location'\nimport type { EmployeeWorkAddress } from '@gusto/embedded-api/models/components/employeeworkaddress'\nimport { useLocationsGet } from '@gusto/embedded-api/react-query/locationsGet'\nimport { useEmployeeAddressesRetrieveWorkAddress } from '@gusto/embedded-api/react-query/employeeAddressesRetrieveWorkAddress'\nimport { useEmployeeAddressesCreateWorkAddressMutation } from '@gusto/embedded-api/react-query/employeeAddressesCreateWorkAddress'\nimport { useEmployeeAddressesUpdateWorkAddressMutation } from '@gusto/embedded-api/react-query/employeeAddressesUpdateWorkAddress'\nimport { RFCDate } from '@gusto/embedded-api/types/rfcdate'\nimport {\n createWorkAddressSchema,\n type WorkAddressOptionalFieldsToRequire,\n type WorkAddressFormData,\n type WorkAddressFormOutputs,\n} from './workAddressSchema'\nimport { LocationField, EffectiveDateField } from './fields'\nimport { useDeriveFieldsMetadata } from '@/partner-hook-utils/form/useDeriveFieldsMetadata'\nimport { useHookFormInternals } from '@/partner-hook-utils/form/useHookFormInternals'\nimport { createGetFormSubmissionValues } from '@/partner-hook-utils/form/getFormSubmissionValues'\nimport { withOptions } from '@/partner-hook-utils/form/withOptions'\nimport { composeErrorHandler } from '@/partner-hook-utils/composeErrorHandler'\nimport type {\n BaseFormHookReady,\n FieldsMetadata,\n HookLoadingResult,\n HookSubmitResult,\n} from '@/partner-hook-utils/types'\nimport { useBaseSubmit } from '@/components/Base/useBaseSubmit'\nimport { SDKInternalError } from '@/types/sdkError'\nimport { addressInline } from '@/helpers/formattedStrings'\n\nexport type { WorkAddressOptionalFieldsToRequire } from './workAddressSchema'\n\nexport interface WorkAddressSubmitCallbacks {\n onWorkAddressCreated?: (workAddress: EmployeeWorkAddress) => void\n onWorkAddressUpdated?: (workAddress: EmployeeWorkAddress) => void\n}\n\nexport interface WorkAddressSubmitOptions {\n employeeId?: string\n effectiveDate?: string\n}\n\nexport interface UseWorkAddressFormProps {\n /** Company UUID for locations; omit or leave unset while resolving from the employee record. */\n companyId?: string\n employeeId: string\n /**\n * When set, loads that work address via GET `/v1/work_addresses/{work_address_uuid}` and updates it (PUT).\n * When omitted, the form is in create mode (POST).\n */\n workAddressUuid?: string\n /**\n * Pre-loaded address matching `workAddressUuid`. When supplied, the form uses it directly\n * instead of issuing a GET — useful when the parent already has the row from a list query.\n */\n initialAddress?: EmployeeWorkAddress\n withEffectiveDateField?: boolean\n optionalFieldsToRequire?: WorkAddressOptionalFieldsToRequire\n defaultValues?: Partial<WorkAddressFormData>\n validationMode?: UseFormProps['mode']\n shouldFocusError?: boolean\n}\n\nexport interface WorkAddressFields {\n Location: typeof LocationField\n EffectiveDate: typeof EffectiveDateField | undefined\n}\n\nexport interface UseWorkAddressFormReady extends BaseFormHookReady<\n FieldsMetadata,\n WorkAddressFormData,\n WorkAddressFields\n> {\n data: {\n /** The address row loaded for update; `null` in create mode. */\n workAddress: EmployeeWorkAddress | null\n companyLocations: Location[] | undefined\n }\n status: { isPending: boolean; mode: 'create' | 'update' }\n actions: {\n onSubmit: (\n callbacks?: WorkAddressSubmitCallbacks,\n options?: WorkAddressSubmitOptions,\n ) => Promise<HookSubmitResult<EmployeeWorkAddress> | undefined>\n }\n}\n\nexport function useWorkAddressForm({\n companyId,\n employeeId,\n workAddressUuid,\n initialAddress,\n withEffectiveDateField = true,\n optionalFieldsToRequire,\n defaultValues: partnerDefaults,\n validationMode = 'onSubmit',\n shouldFocusError = true,\n}: UseWorkAddressFormProps): HookLoadingResult | UseWorkAddressFormReady {\n const locationsQuery = useLocationsGet({ companyId: companyId ?? '' }, { enabled: !!companyId })\n\n const hasInitialAddressMatch = !!workAddressUuid && initialAddress?.uuid === workAddressUuid\n\n const retrieveWorkAddressQuery = useEmployeeAddressesRetrieveWorkAddress(\n { workAddressUuid: workAddressUuid ?? '' },\n { enabled: !!workAddressUuid && !hasInitialAddressMatch },\n )\n\n const companyLocations = locationsQuery.data?.companyLocationsList\n\n const isCreateMode = !workAddressUuid\n\n const fetchedWorkAddress = workAddressUuid\n ? hasInitialAddressMatch\n ? initialAddress\n : retrieveWorkAddressQuery.data?.employeeWorkAddress\n : undefined\n\n const schemaMode = isCreateMode ? 'create' : 'update'\n\n const [schema, metadataConfig] = useMemo(\n () =>\n createWorkAddressSchema({\n mode: schemaMode,\n optionalFieldsToRequire,\n withEffectiveDateField,\n }),\n [schemaMode, optionalFieldsToRequire, withEffectiveDateField],\n )\n\n const resolvedDefaults: WorkAddressFormData = useMemo(\n () => ({\n locationUuid: fetchedWorkAddress?.locationUuid ?? partnerDefaults?.locationUuid ?? '',\n effectiveDate: fetchedWorkAddress?.effectiveDate ?? partnerDefaults?.effectiveDate ?? '',\n }),\n [fetchedWorkAddress, partnerDefaults],\n )\n\n const formMethods = useForm<WorkAddressFormData, unknown, WorkAddressFormOutputs>({\n resolver: zodResolver(schema),\n mode: validationMode,\n shouldFocusError,\n defaultValues: resolvedDefaults,\n values: resolvedDefaults,\n resetOptions: { keepDirtyValues: true },\n })\n\n const createWorkAddressMutation = useEmployeeAddressesCreateWorkAddressMutation()\n const updateWorkAddressMutation = useEmployeeAddressesUpdateWorkAddressMutation()\n\n const isPending = createWorkAddressMutation.isPending || updateWorkAddressMutation.isPending\n\n const {\n baseSubmitHandler,\n error: submitError,\n setError: setSubmitError,\n } = useBaseSubmit('WorkAddressForm')\n\n const queriesForErrors = [locationsQuery, ...(workAddressUuid ? [retrieveWorkAddressQuery] : [])]\n const errorHandling = composeErrorHandler(queriesForErrors, { submitError, setSubmitError })\n\n const locationOptions = (companyLocations ?? []).map(location => ({\n value: location.uuid,\n label: addressInline(location),\n }))\n\n const baseMetadata = useDeriveFieldsMetadata(metadataConfig, formMethods.control)\n const fieldsMetadata = {\n locationUuid: withOptions<Location>(\n baseMetadata.locationUuid,\n locationOptions,\n companyLocations ?? [],\n ),\n effectiveDate: baseMetadata.effectiveDate,\n }\n\n const onSubmit = async (\n callbacks?: WorkAddressSubmitCallbacks,\n options?: WorkAddressSubmitOptions,\n ): Promise<HookSubmitResult<EmployeeWorkAddress> | undefined> => {\n let submitResult: HookSubmitResult<EmployeeWorkAddress> | undefined\n\n await new Promise<void>(resolve => {\n void formMethods.handleSubmit(\n async (data: WorkAddressFormOutputs) => {\n await baseSubmitHandler(data, async payload => {\n const resolvedEmployeeId = options?.employeeId ?? employeeId\n\n if (!resolvedEmployeeId) {\n throw new SDKInternalError('employeeId is required to submit work address')\n }\n\n const resolvedEffectiveDate =\n withEffectiveDateField && payload.effectiveDate\n ? payload.effectiveDate\n : options?.effectiveDate\n\n const effectiveDateParam = resolvedEffectiveDate\n ? new RFCDate(new Date(resolvedEffectiveDate))\n : undefined\n\n let updatedWorkAddress: EmployeeWorkAddress\n\n if (isCreateMode) {\n const result = await createWorkAddressMutation.mutateAsync({\n request: {\n employeeId: resolvedEmployeeId,\n requestBody: {\n locationUuid: payload.locationUuid,\n effectiveDate: effectiveDateParam,\n },\n },\n })\n\n if (!result.employeeWorkAddress) {\n throw new SDKInternalError('Work address creation failed')\n }\n\n updatedWorkAddress = result.employeeWorkAddress\n callbacks?.onWorkAddressCreated?.(updatedWorkAddress)\n } else {\n if (!fetchedWorkAddress || !workAddressUuid) {\n throw new SDKInternalError(\n 'Cannot update work address: no matching address on file',\n )\n }\n\n const result = await updateWorkAddressMutation.mutateAsync({\n request: {\n workAddressUuid: fetchedWorkAddress.uuid,\n requestBody: {\n version: fetchedWorkAddress.version,\n locationUuid: payload.locationUuid,\n effectiveDate: effectiveDateParam,\n },\n },\n })\n\n if (!result.employeeWorkAddress) {\n throw new SDKInternalError('Work address update failed')\n }\n\n updatedWorkAddress = result.employeeWorkAddress\n callbacks?.onWorkAddressUpdated?.(updatedWorkAddress)\n }\n\n submitResult = {\n mode: isCreateMode ? 'create' : 'update',\n data: updatedWorkAddress,\n }\n })\n resolve()\n },\n () => {\n resolve()\n },\n )()\n })\n\n return submitResult\n }\n\n const hookFormInternals = useHookFormInternals(formMethods)\n\n const isDataLoading =\n (!!companyId && locationsQuery.isLoading) ||\n (!!workAddressUuid && retrieveWorkAddressQuery.isLoading)\n\n if (!companyId || isDataLoading || !companyLocations) {\n return { isLoading: true as const, errorHandling }\n }\n\n if (workAddressUuid && !fetchedWorkAddress) {\n return { isLoading: true as const, errorHandling }\n }\n\n return {\n isLoading: false as const,\n data: {\n workAddress: fetchedWorkAddress ?? null,\n companyLocations,\n },\n status: {\n isPending,\n mode: isCreateMode ? ('create' as const) : ('update' as const),\n },\n actions: { onSubmit },\n errorHandling,\n form: {\n Fields: {\n Location: LocationField,\n EffectiveDate: withEffectiveDateField ? EffectiveDateField : undefined,\n },\n fieldsMetadata,\n hookFormInternals,\n getFormSubmissionValues: createGetFormSubmissionValues(formMethods, schema),\n },\n }\n}\n\nexport type UseWorkAddressFormResult = HookLoadingResult | UseWorkAddressFormReady\nexport type WorkAddressFieldsMetadata = UseWorkAddressFormReady['form']['fieldsMetadata']\nexport type WorkAddressFormFields = UseWorkAddressFormReady['form']['Fields']\n"],"names":["useWorkAddressForm","companyId","employeeId","workAddressUuid","initialAddress","withEffectiveDateField","optionalFieldsToRequire","partnerDefaults","validationMode","shouldFocusError","locationsQuery","useLocationsGet","hasInitialAddressMatch","retrieveWorkAddressQuery","useEmployeeAddressesRetrieveWorkAddress","companyLocations","isCreateMode","fetchedWorkAddress","schemaMode","schema","metadataConfig","useMemo","createWorkAddressSchema","resolvedDefaults","formMethods","useForm","zodResolver","createWorkAddressMutation","useEmployeeAddressesCreateWorkAddressMutation","updateWorkAddressMutation","useEmployeeAddressesUpdateWorkAddressMutation","isPending","baseSubmitHandler","submitError","setSubmitError","useBaseSubmit","queriesForErrors","errorHandling","composeErrorHandler","locationOptions","location","addressInline","baseMetadata","useDeriveFieldsMetadata","fieldsMetadata","withOptions","onSubmit","callbacks","options","submitResult","resolve","data","payload","resolvedEmployeeId","SDKInternalError","resolvedEffectiveDate","effectiveDateParam","RFCDate","updatedWorkAddress","result","hookFormInternals","useHookFormInternals","isDataLoading","LocationField","EffectiveDateField","createGetFormSubmissionValues"],"mappings":"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"}
|
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
import { jsx as
|
|
1
|
+
import { jsx as t, jsxs as s } from "react/jsx-runtime";
|
|
2
2
|
import { Fragment as x } from "react";
|
|
3
|
-
import { useTranslation as
|
|
3
|
+
import { useTranslation as i } from "react-i18next";
|
|
4
4
|
import y from "classnames";
|
|
5
5
|
import C from "./EmployeeStateTaxesView.module.scss.js";
|
|
6
6
|
import { BaseLayout as F } from "../../../Base/Base.js";
|
|
7
7
|
import "../../../Base/useBase.js";
|
|
8
8
|
import { Form as H } from "../../../Common/Form/Form.js";
|
|
9
|
-
import { SDKFormProvider as
|
|
10
|
-
import { useComponentContext as
|
|
9
|
+
import { SDKFormProvider as T } from "../../../../partner-hook-utils/form/SDKFormProvider.js";
|
|
10
|
+
import { useComponentContext as g } from "../../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
11
11
|
function K({
|
|
12
12
|
stateTaxes: r,
|
|
13
|
-
onSubmit:
|
|
14
|
-
actions:
|
|
15
|
-
alert:
|
|
16
|
-
className:
|
|
13
|
+
onSubmit: a,
|
|
14
|
+
actions: l,
|
|
15
|
+
alert: c,
|
|
16
|
+
className: p
|
|
17
17
|
}) {
|
|
18
|
-
const { t:
|
|
19
|
-
return /* @__PURE__ */
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
const
|
|
23
|
-
return /* @__PURE__ */
|
|
24
|
-
/* @__PURE__ */
|
|
25
|
-
|
|
26
|
-
] },
|
|
18
|
+
const { t: e } = i("Employee.StateTaxes"), { t: d } = i("common"), m = g(), n = r.form.Fields;
|
|
19
|
+
return /* @__PURE__ */ t("section", { className: y(C.container, p), children: /* @__PURE__ */ t(F, { error: r.errorHandling.errors, children: /* @__PURE__ */ t(T, { formHookResult: r, children: /* @__PURE__ */ s(H, { onSubmit: a, children: [
|
|
20
|
+
c,
|
|
21
|
+
n.length === 0 ? /* @__PURE__ */ t(m.Text, { children: e("noWithholding") }) : n.map((o) => {
|
|
22
|
+
const f = d(`statesHash.${o.state}`, o.state);
|
|
23
|
+
return /* @__PURE__ */ s(x, { children: [
|
|
24
|
+
/* @__PURE__ */ t(m.Heading, { as: "h2", children: e("stateTaxesTitle", { state: f }) }),
|
|
25
|
+
o.questions.map(({ questionId: h, Field: u }) => /* @__PURE__ */ t(u, {}, h))
|
|
26
|
+
] }, o.state);
|
|
27
27
|
}),
|
|
28
|
-
|
|
28
|
+
l
|
|
29
29
|
] }) }) }) });
|
|
30
30
|
}
|
|
31
31
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EmployeeStateTaxesView.js","sources":["../../../../../src/components/Employee/StateTaxes/shared/EmployeeStateTaxesView.tsx"],"sourcesContent":["import { Fragment, type ReactNode } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport classNames from 'classnames'\nimport { type useEmployeeStateTaxesForm } from './useEmployeeStateTaxesForm'\nimport styles from './EmployeeStateTaxesView.module.scss'\nimport { BaseLayout } from '@/components/Base'\nimport { Form } from '@/components/Common/Form'\nimport { SDKFormProvider } from '@/partner-hook-utils/form/SDKFormProvider'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\ntype ReadyEmployeeStateTaxesForm = Extract<\n ReturnType<typeof useEmployeeStateTaxesForm>,\n { isLoading: false }\n>\n\nexport interface EmployeeStateTaxesViewProps {\n stateTaxes: ReadyEmployeeStateTaxesForm\n onSubmit: () => void | Promise<void>\n actions: ReactNode\n alert?: ReactNode\n className?: string\n}\n\nexport function EmployeeStateTaxesView({\n stateTaxes,\n onSubmit,\n actions,\n alert,\n className,\n}: EmployeeStateTaxesViewProps) {\n const { t } = useTranslation('Employee.StateTaxes')\n const { t: tCommon } = useTranslation('common')\n const Components = useComponentContext()\n const groups = stateTaxes.form.Fields\n\n return (\n <section className={classNames(styles.container, className)}>\n <BaseLayout error={stateTaxes.errorHandling.errors}>\n <SDKFormProvider formHookResult={stateTaxes}>\n <Form onSubmit={onSubmit}>\n {alert}\n\n {groups.map(group => {\n
|
|
1
|
+
{"version":3,"file":"EmployeeStateTaxesView.js","sources":["../../../../../src/components/Employee/StateTaxes/shared/EmployeeStateTaxesView.tsx"],"sourcesContent":["import { Fragment, type ReactNode } from 'react'\nimport { useTranslation } from 'react-i18next'\nimport classNames from 'classnames'\nimport { type useEmployeeStateTaxesForm } from './useEmployeeStateTaxesForm'\nimport styles from './EmployeeStateTaxesView.module.scss'\nimport { BaseLayout } from '@/components/Base'\nimport { Form } from '@/components/Common/Form'\nimport { SDKFormProvider } from '@/partner-hook-utils/form/SDKFormProvider'\nimport { useComponentContext } from '@/contexts/ComponentAdapter/useComponentContext'\n\ntype ReadyEmployeeStateTaxesForm = Extract<\n ReturnType<typeof useEmployeeStateTaxesForm>,\n { isLoading: false }\n>\n\nexport interface EmployeeStateTaxesViewProps {\n stateTaxes: ReadyEmployeeStateTaxesForm\n onSubmit: () => void | Promise<void>\n actions: ReactNode\n alert?: ReactNode\n className?: string\n}\n\nexport function EmployeeStateTaxesView({\n stateTaxes,\n onSubmit,\n actions,\n alert,\n className,\n}: EmployeeStateTaxesViewProps) {\n const { t } = useTranslation('Employee.StateTaxes')\n const { t: tCommon } = useTranslation('common')\n const Components = useComponentContext()\n const groups = stateTaxes.form.Fields\n\n return (\n <section className={classNames(styles.container, className)}>\n <BaseLayout error={stateTaxes.errorHandling.errors}>\n <SDKFormProvider formHookResult={stateTaxes}>\n <Form onSubmit={onSubmit}>\n {alert}\n\n {groups.length === 0 ? (\n <Components.Text>{t('noWithholding')}</Components.Text>\n ) : (\n groups.map(group => {\n const stateName = tCommon(`statesHash.${group.state}`, group.state)\n return (\n <Fragment key={group.state}>\n <Components.Heading as=\"h2\">\n {t('stateTaxesTitle', { state: stateName })}\n </Components.Heading>\n\n {group.questions.map(({ questionId, Field }) => {\n return <Field key={questionId} />\n })}\n </Fragment>\n )\n })\n )}\n\n {actions}\n </Form>\n </SDKFormProvider>\n </BaseLayout>\n </section>\n )\n}\n"],"names":["EmployeeStateTaxesView","stateTaxes","onSubmit","actions","alert","className","t","useTranslation","tCommon","Components","useComponentContext","groups","jsx","classNames","styles","BaseLayout","SDKFormProvider","jsxs","Form","group","stateName","Fragment","questionId","Field"],"mappings":";;;;;;;;;;AAuBO,SAASA,EAAuB;AAAA,EACrC,YAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC;AACF,GAAgC;AAC9B,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAe,qBAAqB,GAC5C,EAAE,GAAGC,MAAYD,EAAe,QAAQ,GACxCE,IAAaC,EAAA,GACbC,IAASV,EAAW,KAAK;AAE/B,SACE,gBAAAW,EAAC,aAAQ,WAAWC,EAAWC,EAAO,WAAWT,CAAS,GACxD,UAAA,gBAAAO,EAACG,GAAA,EAAW,OAAOd,EAAW,cAAc,QAC1C,UAAA,gBAAAW,EAACI,GAAA,EAAgB,gBAAgBf,GAC/B,UAAA,gBAAAgB,EAACC,KAAK,UAAAhB,GACH,UAAA;AAAA,IAAAE;AAAA,IAEAO,EAAO,WAAW,IACjB,gBAAAC,EAACH,EAAW,MAAX,EAAiB,UAAAH,EAAE,eAAe,EAAA,CAAE,IAErCK,EAAO,IAAI,CAAAQ,MAAS;AAClB,YAAMC,IAAYZ,EAAQ,cAAcW,EAAM,KAAK,IAAIA,EAAM,KAAK;AAClE,+BACGE,GAAA,EACC,UAAA;AAAA,QAAA,gBAAAT,EAACH,EAAW,SAAX,EAAmB,IAAG,MACpB,UAAAH,EAAE,mBAAmB,EAAE,OAAOc,EAAA,CAAW,EAAA,CAC5C;AAAA,QAECD,EAAM,UAAU,IAAI,CAAC,EAAE,YAAAG,GAAY,OAAAC,QAC3B,gBAAAX,EAACW,OAAWD,CAAY,CAChC;AAAA,MAAA,EAAA,GAPYH,EAAM,KAQrB;AAAA,IAEJ,CAAC;AAAA,IAGFhB;AAAA,EAAA,GACH,EAAA,CACF,GACF,GACF;AAEJ;"}
|
package/dist/components/Employee/StateTaxes/shared/useEmployeeStateTaxesForm/fieldComponents.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { jsx as i } from "react/jsx-runtime";
|
|
2
2
|
import { useTranslation as l } from "react-i18next";
|
|
3
3
|
import { EmployeeStateTaxesErrorCodes as s } from "./employeeStateTaxesSchema.js";
|
|
4
|
-
import {
|
|
5
|
-
import { SelectHookField as c } from "../../../../../partner-hook-utils/form/fields/SelectHookField.js";
|
|
4
|
+
import { DatePickerHookField as d } from "../../../../../partner-hook-utils/form/fields/DatePickerHookField.js";
|
|
6
5
|
import { NumberInputHookField as r } from "../../../../../partner-hook-utils/form/fields/NumberInputHookField.js";
|
|
7
|
-
import {
|
|
8
|
-
import { RadioGroupHookField as
|
|
6
|
+
import { TextInputHookField as c } from "../../../../../partner-hook-utils/form/fields/TextInputHookField.js";
|
|
7
|
+
import { RadioGroupHookField as m } from "../../../../../partner-hook-utils/form/fields/RadioGroupHookField.js";
|
|
8
|
+
import { SelectHookField as u } from "../../../../../partner-hook-utils/form/fields/SelectHookField.js";
|
|
9
9
|
function f() {
|
|
10
10
|
const { t: o } = l("Employee.StateTaxes");
|
|
11
11
|
return { [s.REQUIRED]: o("validations.required") };
|
|
@@ -26,21 +26,21 @@ function h({ meta: o, ...e }) {
|
|
|
26
26
|
placeholder: e.placeholder,
|
|
27
27
|
FieldComponent: e.FieldComponent
|
|
28
28
|
};
|
|
29
|
-
return /* @__PURE__ */ i(
|
|
29
|
+
return /* @__PURE__ */ i(u, { ...t });
|
|
30
30
|
}
|
|
31
31
|
function P({ meta: o, ...e }) {
|
|
32
32
|
const t = {
|
|
33
33
|
...a(o, e),
|
|
34
34
|
FieldComponent: e.FieldComponent
|
|
35
35
|
};
|
|
36
|
-
return /* @__PURE__ */ i(
|
|
36
|
+
return /* @__PURE__ */ i(m, { ...t });
|
|
37
37
|
}
|
|
38
38
|
function H({ meta: o, ...e }) {
|
|
39
39
|
const t = {
|
|
40
40
|
...a(o, e),
|
|
41
41
|
placeholder: e.placeholder
|
|
42
42
|
};
|
|
43
|
-
return /* @__PURE__ */ i(
|
|
43
|
+
return /* @__PURE__ */ i(c, { ...t });
|
|
44
44
|
}
|
|
45
45
|
function R({ meta: o, ...e }) {
|
|
46
46
|
const t = {
|
|
@@ -63,7 +63,7 @@ function D({ meta: o, ...e }) {
|
|
|
63
63
|
...a(o, e),
|
|
64
64
|
FieldComponent: e.FieldComponent
|
|
65
65
|
};
|
|
66
|
-
return /* @__PURE__ */ i(
|
|
66
|
+
return /* @__PURE__ */ i(d, { ...t });
|
|
67
67
|
}
|
|
68
68
|
export {
|
|
69
69
|
v as CurrencyStateTaxField,
|
|
@@ -14,11 +14,10 @@ import "../../../contexts/LocaleProvider/useLocale.js";
|
|
|
14
14
|
import "../../../shared/constants.js";
|
|
15
15
|
import "classnames";
|
|
16
16
|
import "../../../contexts/ComponentAdapter/useComponentContext.js";
|
|
17
|
-
import "../../../contexts/LoadingIndicatorProvider/useLoadingIndicator.js";
|
|
18
17
|
import { createCompoundContext as o } from "../../Base/createCompoundContext.js";
|
|
19
|
-
const [
|
|
18
|
+
const [P, b] = o("TaxesContext");
|
|
20
19
|
export {
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
b as TaxesProvider,
|
|
21
|
+
P as useTaxes
|
|
23
22
|
};
|
|
24
23
|
//# sourceMappingURL=useTaxes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTaxes.js","sources":["../../../../src/components/Employee/Taxes/useTaxes.ts"],"sourcesContent":["import type { EmployeeStateTaxesList } from '@gusto/embedded-api/models/components/employeestatetaxeslist'\nimport { createCompoundContext } from '@/components/Base'\n\ntype TaxesContextType = {\n employeeStateTaxes: EmployeeStateTaxesList[]\n isPending: boolean\n isAdmin: boolean\n}\n\nconst [useTaxes, TaxesProvider] = createCompoundContext<TaxesContextType>('TaxesContext')\nexport { useTaxes, TaxesProvider }\n"],"names":["useTaxes","TaxesProvider","createCompoundContext"],"mappings":"
|
|
1
|
+
{"version":3,"file":"useTaxes.js","sources":["../../../../src/components/Employee/Taxes/useTaxes.ts"],"sourcesContent":["import type { EmployeeStateTaxesList } from '@gusto/embedded-api/models/components/employeestatetaxeslist'\nimport { createCompoundContext } from '@/components/Base'\n\ntype TaxesContextType = {\n employeeStateTaxes: EmployeeStateTaxesList[]\n isPending: boolean\n isAdmin: boolean\n}\n\nconst [useTaxes, TaxesProvider] = createCompoundContext<TaxesContextType>('TaxesContext')\nexport { useTaxes, TaxesProvider }\n"],"names":["useTaxes","TaxesProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;;;;;AASA,MAAM,CAACA,GAAUC,CAAa,IAAIC,EAAwC,cAAc;"}
|
|
@@ -215,7 +215,11 @@ function Je({
|
|
|
215
215
|
L ? /* @__PURE__ */ e(i.Alert, { status: "warning", label: t("changePendingTitle"), children: /* @__PURE__ */ e(i.Text, { variant: "supporting", children: t("changePendingDescription", {
|
|
216
216
|
possessiveLabel: ie,
|
|
217
217
|
newAddress: Q(L, p),
|
|
218
|
-
effectiveDate: L.effectiveDate ? S(L.effectiveDate) : "—"
|
|
218
|
+
effectiveDate: L.effectiveDate ? S(L.effectiveDate) : "—",
|
|
219
|
+
// Values are inserted into JSX text, so the browser already
|
|
220
|
+
// escapes them. Telling i18next to escape too produces
|
|
221
|
+
// double-encoded entities like `'` showing as text.
|
|
222
|
+
interpolation: { escapeValue: !1 }
|
|
219
223
|
}) }) }) : null
|
|
220
224
|
] })
|
|
221
225
|
}
|