@gusto/embedded-react-sdk 0.10.1 → 0.10.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/components/Base/Base.d.ts +3 -2
  3. package/dist/components/Base/Base.js +56 -50
  4. package/dist/components/Base/Base.js.map +1 -1
  5. package/dist/components/Common/InternalError/InternalError.js.map +1 -1
  6. package/dist/components/Common/UI/ComboBox/ComboBox.js +31 -33
  7. package/dist/components/Common/UI/ComboBox/ComboBox.js.map +1 -1
  8. package/dist/components/Common/UI/ComboBox/ComboBox.module.scss.js +1 -1
  9. package/dist/components/Common/UI/Text/TextTypes.d.ts +1 -1
  10. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js +4 -3
  11. package/dist/components/Company/AssignSignatory/CreateSignatory/useCreateSignatory.js.map +1 -1
  12. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js +4 -3
  13. package/dist/components/Company/AssignSignatory/InviteSignatory/useInviteSignatory.js.map +1 -1
  14. package/dist/components/Company/AssignSignatory/useAssignSignatory.js +6 -5
  15. package/dist/components/Company/AssignSignatory/useAssignSignatory.js.map +1 -1
  16. package/dist/components/Company/BankAccount/BankAccount.d.ts +2 -2
  17. package/dist/components/Company/BankAccount/BankAccount.js +25 -20
  18. package/dist/components/Company/BankAccount/BankAccount.js.map +1 -1
  19. package/dist/components/Company/BankAccount/BankAccountComponents.js +16 -9
  20. package/dist/components/Company/BankAccount/BankAccountComponents.js.map +1 -1
  21. package/dist/components/Company/BankAccount/BankAccountForm/Actions.js +22 -8
  22. package/dist/components/Company/BankAccount/BankAccountForm/Actions.js.map +1 -1
  23. package/dist/components/Company/BankAccount/BankAccountForm/BankAccountForm.d.ts +1 -0
  24. package/dist/components/Company/BankAccount/BankAccountForm/BankAccountForm.js +30 -30
  25. package/dist/components/Company/BankAccount/BankAccountForm/BankAccountForm.js.map +1 -1
  26. package/dist/components/Company/BankAccount/BankAccountForm/context.d.ts +4 -0
  27. package/dist/components/Company/BankAccount/BankAccountForm/context.js +4 -3
  28. package/dist/components/Company/BankAccount/BankAccountForm/context.js.map +1 -1
  29. package/dist/components/Company/BankAccount/BankAccountList/AccountView.js +14 -13
  30. package/dist/components/Company/BankAccount/BankAccountList/AccountView.js.map +1 -1
  31. package/dist/components/Company/BankAccount/stateMachine.d.ts +1 -1
  32. package/dist/components/Company/BankAccount/stateMachine.js +13 -5
  33. package/dist/components/Company/BankAccount/stateMachine.js.map +1 -1
  34. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js +4 -3
  35. package/dist/components/Company/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  36. package/dist/components/Company/DocumentSigner/DocumentSigner.d.ts +5 -7
  37. package/dist/components/Company/DocumentSigner/DocumentSigner.js +24 -24
  38. package/dist/components/Company/DocumentSigner/DocumentSigner.js.map +1 -1
  39. package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js +41 -42
  40. package/dist/components/Company/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
  41. package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js +4 -3
  42. package/dist/components/Company/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
  43. package/dist/components/Company/FederalTaxes/useFederalTaxes.js +6 -5
  44. package/dist/components/Company/FederalTaxes/useFederalTaxes.js.map +1 -1
  45. package/dist/components/Company/Industry/Context.js +7 -6
  46. package/dist/components/Company/Industry/Context.js.map +1 -1
  47. package/dist/components/Company/Industry/Industry.js +30 -31
  48. package/dist/components/Company/Industry/Industry.js.map +1 -1
  49. package/dist/components/Company/Locations/LocationForm/LocationForm.js +34 -37
  50. package/dist/components/Company/Locations/LocationForm/LocationForm.js.map +1 -1
  51. package/dist/components/Company/Locations/LocationForm/useLocationForm.js +4 -3
  52. package/dist/components/Company/Locations/LocationForm/useLocationForm.js.map +1 -1
  53. package/dist/components/Company/Locations/LocationsList/List.js +4 -1
  54. package/dist/components/Company/Locations/LocationsList/List.js.map +1 -1
  55. package/dist/components/Company/Locations/LocationsList/useLocationsList.js +4 -3
  56. package/dist/components/Company/Locations/LocationsList/useLocationsList.js.map +1 -1
  57. package/dist/components/Company/OnboardingOverview/context.js +4 -3
  58. package/dist/components/Company/OnboardingOverview/context.js.map +1 -1
  59. package/dist/components/Company/PaySchedule/PaySchedule.js +70 -71
  60. package/dist/components/Company/PaySchedule/PaySchedule.js.map +1 -1
  61. package/dist/components/Company/PaySchedule/usePaySchedule.js +6 -5
  62. package/dist/components/Company/PaySchedule/usePaySchedule.js.map +1 -1
  63. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js +4 -3
  64. package/dist/components/Company/StateTaxes/StateTaxesForm/context.js.map +1 -1
  65. package/dist/components/Company/StateTaxes/StateTaxesList/context.js +4 -3
  66. package/dist/components/Company/StateTaxes/StateTaxesList/context.js.map +1 -1
  67. package/dist/components/Contractor/Address/Address.js +37 -38
  68. package/dist/components/Contractor/Address/Address.js.map +1 -1
  69. package/dist/components/Contractor/Address/useAddress.js +6 -5
  70. package/dist/components/Contractor/Address/useAddress.js.map +1 -1
  71. package/dist/components/Contractor/NewHireReport/NewHireReport.js +57 -58
  72. package/dist/components/Contractor/NewHireReport/NewHireReport.js.map +1 -1
  73. package/dist/components/Contractor/PaymentMethod/PaymentMethod.js.map +1 -1
  74. package/dist/components/Employee/Compensation/Compensation.js +123 -132
  75. package/dist/components/Employee/Compensation/Compensation.js.map +1 -1
  76. package/dist/components/Employee/Deductions/Deductions.js +74 -79
  77. package/dist/components/Employee/Deductions/Deductions.js.map +1 -1
  78. package/dist/components/Employee/Deductions/useDeductions.js +6 -5
  79. package/dist/components/Employee/Deductions/useDeductions.js.map +1 -1
  80. package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js +4 -3
  81. package/dist/components/Employee/DocumentSigner/DocumentList/useDocumentList.js.map +1 -1
  82. package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js +36 -42
  83. package/dist/components/Employee/DocumentSigner/SignatureForm/SignatureForm.js.map +1 -1
  84. package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js +4 -3
  85. package/dist/components/Employee/DocumentSigner/SignatureForm/useSignatureForm.js.map +1 -1
  86. package/dist/components/Employee/EmployeeList/EmployeeList.js +57 -58
  87. package/dist/components/Employee/EmployeeList/EmployeeList.js.map +1 -1
  88. package/dist/components/Employee/EmployeeList/useEmployeeList.js +4 -3
  89. package/dist/components/Employee/EmployeeList/useEmployeeList.js.map +1 -1
  90. package/dist/components/Employee/PaymentMethod/PaymentMethod.js +95 -97
  91. package/dist/components/Employee/PaymentMethod/PaymentMethod.js.map +1 -1
  92. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js +6 -5
  93. package/dist/components/Employee/PaymentMethod/usePaymentMethod.js.map +1 -1
  94. package/dist/components/Employee/Profile/Profile.js +118 -124
  95. package/dist/components/Employee/Profile/Profile.js.map +1 -1
  96. package/dist/components/Employee/Profile/useProfile.js +4 -3
  97. package/dist/components/Employee/Profile/useProfile.js.map +1 -1
  98. package/dist/components/Employee/Taxes/FederalForm.js +4 -4
  99. package/dist/components/Employee/Taxes/FederalForm.js.map +1 -1
  100. package/dist/components/Employee/Taxes/Taxes.js +59 -60
  101. package/dist/components/Employee/Taxes/Taxes.js.map +1 -1
  102. package/dist/components/Employee/Taxes/useTaxes.js +4 -3
  103. package/dist/components/Employee/Taxes/useTaxes.js.map +1 -1
  104. package/dist/contexts/ApiProvider/ApiProvider.js +16 -14
  105. package/dist/contexts/ApiProvider/ApiProvider.js.map +1 -1
  106. package/dist/contexts/ComponentAdapter/componentAdapterTypes.d.ts +5 -0
  107. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.d.ts +2 -0
  108. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js +19 -17
  109. package/dist/contexts/GustoProvider/GustoProviderCustomUIAdapter.js.map +1 -1
  110. package/dist/contexts/LoadingIndicatorProvider/LoadingIndicatorProvider.d.ts +7 -0
  111. package/dist/contexts/LoadingIndicatorProvider/LoadingIndicatorProvider.js +10 -0
  112. package/dist/contexts/LoadingIndicatorProvider/LoadingIndicatorProvider.js.map +1 -0
  113. package/dist/contexts/LoadingIndicatorProvider/useLoadingIndicator.d.ts +6 -0
  114. package/dist/contexts/LoadingIndicatorProvider/useLoadingIndicator.js +11 -0
  115. package/dist/contexts/LoadingIndicatorProvider/useLoadingIndicator.js.map +1 -0
  116. package/dist/shared/constants.d.ts +2 -0
  117. package/dist/shared/constants.js +10 -9
  118. package/dist/shared/constants.js.map +1 -1
  119. package/dist/style.css +1 -1
  120. package/package.json +5 -1
@@ -1,67 +1,66 @@
1
- import { jsx as n, jsxs as F } from "react/jsx-runtime";
1
+ import { jsx as o, jsxs as Y } from "react/jsx-runtime";
2
2
  import { useState as y } from "react";
3
- import { useEmployeesListSuspense as U, invalidateEmployeesList as q } from "@gusto/embedded-api/react-query/employeesList";
4
- import { useEmployeesDeleteMutation as W } from "@gusto/embedded-api/react-query/employeesDelete";
5
- import { useEmployeesUpdateOnboardingStatusMutation as H } from "@gusto/embedded-api/react-query/employeesUpdateOnboardingStatus";
6
- import { useQueryClient as j } from "@tanstack/react-query";
7
- import { EmployeeListProvider as k } from "./useEmployeeList.js";
3
+ import { useEmployeesListSuspense as F } from "@gusto/embedded-api/react-query/employeesList";
4
+ import { useEmployeesDeleteMutation as U } from "@gusto/embedded-api/react-query/employeesDelete";
5
+ import { useEmployeesUpdateOnboardingStatusMutation as W } from "@gusto/embedded-api/react-query/employeesUpdateOnboardingStatus";
6
+ import { EmployeeListProvider as q } from "./useEmployeeList.js";
8
7
  import { Actions as P } from "./Actions.js";
9
- import { BaseComponent as V } from "../../Base/Base.js";
10
- import { useBase as Q } from "../../Base/useBase.js";
11
- import { Flex as z } from "../../Common/Flex/Flex.js";
12
- import { useI18n as J, useComponentDictionary as K } from "../../../i18n/I18n.js";
13
- import { componentEvents as s, EmployeeOnboardingStatus as c } from "../../../shared/constants.js";
8
+ import { BaseComponent as H } from "../../Base/Base.js";
9
+ import { useBase as j } from "../../Base/useBase.js";
10
+ import { Flex as k } from "../../Common/Flex/Flex.js";
11
+ import { useI18n as V, useComponentDictionary as z } from "../../../i18n/I18n.js";
12
+ import { componentEvents as s, EmployeeOnboardingStatus as l } from "../../../shared/constants.js";
14
13
  import { Head as h } from "./Head.js";
15
14
  import { List as O } from "./List.js";
16
- import { useFlow as X } from "../../Flow/useFlow.js";
17
- function m(o) {
18
- return /* @__PURE__ */ n(V, { ...o, children: /* @__PURE__ */ n(Z, { ...o, children: o.children }) });
15
+ import { useFlow as J } from "../../Flow/useFlow.js";
16
+ function m(n) {
17
+ return /* @__PURE__ */ o(H, { ...n, children: /* @__PURE__ */ o(K, { ...n, children: n.children }) });
19
18
  }
20
- function Z({ companyId: o, className: l, children: p, dictionary: g }) {
21
- J("Employee.EmployeeList"), K("Employee.EmployeeList", g);
22
- const { onEvent: a, baseSubmitHandler: i } = Q(), [u, r] = y(1), [A, L] = y(5), N = j(), { data: f } = U({ companyId: o, page: u, per: A }), { httpMeta: D, employees: I } = f, _ = I, { mutateAsync: M } = W(), { mutateAsync: S } = H(), E = Number(D.response.headers.get("x-total-pages") ?? 1), w = (e) => {
23
- L(e);
19
+ function K({ companyId: n, className: E, children: p, dictionary: g }) {
20
+ V("Employee.EmployeeList"), z("Employee.EmployeeList", g);
21
+ const { onEvent: a, baseSubmitHandler: r } = j(), [d, i] = y(1), [A, I] = y(5), { data: N } = F({ companyId: n, page: d, per: A }), { httpMeta: D, employees: L } = N, f = L, { mutateAsync: _ } = U(), { mutateAsync: M } = W(), c = Number(D.response.headers.get("x-total-pages") ?? 1), S = (e) => {
22
+ I(e);
23
+ }, w = () => {
24
+ i(1);
24
25
  }, b = () => {
25
- r(1);
26
- }, C = () => {
27
- r((e) => Math.max(e - 1, 1));
26
+ i((e) => Math.max(e - 1, 1));
28
27
  }, R = () => {
29
- r((e) => Math.min(e + 1, E));
28
+ i((e) => Math.min(e + 1, c));
30
29
  }, T = () => {
31
- r(E);
30
+ i(c);
32
31
  }, x = async (e) => {
33
- await i(e, async (t) => {
34
- await M({
32
+ await r(e, async (t) => {
33
+ await _({
35
34
  request: { employeeId: t }
36
- }), await q(N, [o]), a(s.EMPLOYEE_DELETED, { employeeId: t });
35
+ }), a(s.EMPLOYEE_DELETED, { employeeId: t });
37
36
  });
38
- }, v = async (e) => {
39
- await i(e, async (t) => {
40
- await d({
37
+ }, B = async (e) => {
38
+ await r(e, async (t) => {
39
+ await u({
41
40
  employeeId: t,
42
- status: c.SELF_ONBOARDING_AWAITING_ADMIN_REVIEW
41
+ status: l.SELF_ONBOARDING_AWAITING_ADMIN_REVIEW
43
42
  }), a(s.EMPLOYEE_UPDATE, {
44
43
  employeeId: t,
45
- onboardingStatus: c.SELF_ONBOARDING_AWAITING_ADMIN_REVIEW
44
+ onboardingStatus: l.SELF_ONBOARDING_AWAITING_ADMIN_REVIEW
46
45
  });
47
46
  });
48
- }, B = async (e) => {
49
- await i(e, async (t) => {
50
- await d({
47
+ }, C = async (e) => {
48
+ await r(e, async (t) => {
49
+ await u({
51
50
  employeeId: t,
52
- status: c.ADMIN_ONBOARDING_INCOMPLETE
51
+ status: l.ADMIN_ONBOARDING_INCOMPLETE
53
52
  });
54
53
  });
55
- }, d = async (e) => {
56
- await i(e, async ({ employeeId: t, status: G }) => {
57
- const { employeeOnboardingStatus: Y } = await S({
58
- request: { employeeId: t, requestBody: { onboardingStatus: G } }
54
+ }, u = async (e) => {
55
+ await r(e, async ({ employeeId: t, status: v }) => {
56
+ const { employeeOnboardingStatus: G } = await M({
57
+ request: { employeeId: t, requestBody: { onboardingStatus: v } }
59
58
  });
60
- a(s.EMPLOYEE_ONBOARDING_STATUS_UPDATED, Y);
59
+ a(s.EMPLOYEE_ONBOARDING_STATUS_UPDATED, G);
61
60
  });
62
61
  };
63
- return /* @__PURE__ */ n("section", { className: l, children: /* @__PURE__ */ n(
64
- k,
62
+ return /* @__PURE__ */ o("section", { className: E, children: /* @__PURE__ */ o(
63
+ q,
65
64
  {
66
65
  value: {
67
66
  handleEdit: (e, t) => {
@@ -70,25 +69,25 @@ function Z({ companyId: o, className: l, children: p, dictionary: g }) {
70
69
  handleNew: () => {
71
70
  a(s.EMPLOYEE_CREATE);
72
71
  },
73
- handleReview: v,
72
+ handleReview: B,
74
73
  handleDelete: x,
75
- employees: _,
76
- currentPage: u,
77
- totalPages: E,
78
- handleFirstPage: b,
79
- handlePreviousPage: C,
74
+ employees: f,
75
+ currentPage: d,
76
+ totalPages: c,
77
+ handleFirstPage: w,
78
+ handlePreviousPage: b,
80
79
  handleNextPage: R,
81
80
  handleLastPage: T,
82
- handleCancelSelfOnboarding: B,
83
- handleItemsPerPageChange: w,
81
+ handleCancelSelfOnboarding: C,
82
+ handleItemsPerPageChange: S,
84
83
  handleSkip: () => {
85
84
  a(s.EMPLOYEE_ONBOARDING_DONE);
86
85
  }
87
86
  },
88
- children: p || /* @__PURE__ */ F(z, { flexDirection: "column", children: [
89
- /* @__PURE__ */ n(h, {}),
90
- /* @__PURE__ */ n(O, {}),
91
- /* @__PURE__ */ n(P, {})
87
+ children: p || /* @__PURE__ */ Y(k, { flexDirection: "column", children: [
88
+ /* @__PURE__ */ o(h, {}),
89
+ /* @__PURE__ */ o(O, {}),
90
+ /* @__PURE__ */ o(P, {})
92
91
  ] })
93
92
  }
94
93
  ) });
@@ -96,12 +95,12 @@ function Z({ companyId: o, className: l, children: p, dictionary: g }) {
96
95
  m.Head = h;
97
96
  m.List = O;
98
97
  m.Actions = P;
99
- const Oe = () => {
100
- const { companyId: o, onEvent: l } = X();
101
- return /* @__PURE__ */ n(m, { companyId: o, onEvent: l });
98
+ const ue = () => {
99
+ const { companyId: n, onEvent: E } = J();
100
+ return /* @__PURE__ */ o(m, { companyId: n, onEvent: E });
102
101
  };
103
102
  export {
104
103
  m as EmployeeList,
105
- Oe as EmployeeListContextual
104
+ ue as EmployeeListContextual
106
105
  };
107
106
  //# sourceMappingURL=EmployeeList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EmployeeList.js","sources":["../../../../src/components/Employee/EmployeeList/EmployeeList.tsx"],"sourcesContent":["import { useState } from 'react'\nimport {\n useEmployeesListSuspense,\n invalidateEmployeesList,\n} from '@gusto/embedded-api/react-query/employeesList'\nimport type { OnboardingStatus } from '@gusto/embedded-api/models/operations/putv1employeesemployeeidonboardingstatus'\nimport { useEmployeesDeleteMutation } from '@gusto/embedded-api/react-query/employeesDelete'\nimport { useEmployeesUpdateOnboardingStatusMutation } from '@gusto/embedded-api/react-query/employeesUpdateOnboardingStatus'\nimport { useQueryClient } from '@tanstack/react-query'\nimport type { OnboardingContextInterface } from '../OnboardingFlow/OnboardingFlow'\nimport { EmployeeListProvider } from './useEmployeeList'\nimport { Actions } from './Actions'\nimport {\n BaseComponent,\n type BaseComponentInterface,\n type CommonComponentInterface,\n} from '@/components/Base/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport { Flex } from '@/components/Common'\nimport { useI18n, useComponentDictionary } from '@/i18n'\nimport { componentEvents, EmployeeOnboardingStatus } from '@/shared/constants'\nimport { Head } from '@/components/Employee/EmployeeList/Head'\nimport { List } from '@/components/Employee/EmployeeList/List'\nimport { useFlow } from '@/components/Flow/useFlow'\n\n//Interface for component specific props\ninterface EmployeeListProps extends CommonComponentInterface<'Employee.EmployeeList'> {\n companyId: string\n}\n\nexport function EmployeeList(props: EmployeeListProps & BaseComponentInterface) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\nfunction Root({ companyId, className, children, dictionary }: EmployeeListProps) {\n //Using i18n hook to directly load necessary namespace\n useI18n('Employee.EmployeeList')\n useComponentDictionary('Employee.EmployeeList', dictionary)\n //Getting props from base context\n const { onEvent, baseSubmitHandler } = useBase()\n const [currentPage, setCurrentPage] = useState(1)\n const [itemsPerPage, setItemsPerPage] = useState(5)\n const queryClient = useQueryClient()\n\n const { data } = useEmployeesListSuspense({ companyId, page: currentPage, per: itemsPerPage })\n const { httpMeta, employees: employeeList } = data\n const employees = employeeList!\n\n const { mutateAsync: deleteEmployeeMutation } = useEmployeesDeleteMutation()\n const { mutateAsync: updateEmployeeOnboardingStatusMutation } =\n useEmployeesUpdateOnboardingStatusMutation()\n\n const totalPages = Number(httpMeta.response.headers.get('x-total-pages') ?? 1)\n\n const handleItemsPerPageChange = (newCount: number) => {\n setItemsPerPage(newCount)\n }\n const handleFirstPage = () => {\n setCurrentPage(1)\n }\n const handlePreviousPage = () => {\n setCurrentPage(prevPage => Math.max(prevPage - 1, 1))\n }\n const handleNextPage = () => {\n setCurrentPage(prevPage => Math.min(prevPage + 1, totalPages))\n }\n const handleLastPage = () => {\n setCurrentPage(totalPages)\n }\n const handleDelete = async (uuid: string) => {\n await baseSubmitHandler(uuid, async payload => {\n await deleteEmployeeMutation({\n request: { employeeId: payload },\n })\n\n await invalidateEmployeesList(queryClient, [companyId])\n onEvent(componentEvents.EMPLOYEE_DELETED, { employeeId: payload })\n })\n }\n /**Set onboarding status to self_onboarding_awaiting_admin_review and proceed to edit */\n const handleReview = async (data: string) => {\n await baseSubmitHandler(data, async employeeId => {\n await updateOnboardingStatus({\n employeeId,\n status: EmployeeOnboardingStatus.SELF_ONBOARDING_AWAITING_ADMIN_REVIEW,\n })\n onEvent(componentEvents.EMPLOYEE_UPDATE, {\n employeeId,\n onboardingStatus: EmployeeOnboardingStatus.SELF_ONBOARDING_AWAITING_ADMIN_REVIEW,\n })\n })\n }\n /**Update employee onboarding status reverting it back to admin_onboarding_incomplete */\n const handleCancelSelfOnboarding = async (data: string) => {\n await baseSubmitHandler(data, async employeeId => {\n await updateOnboardingStatus({\n employeeId,\n status: EmployeeOnboardingStatus.ADMIN_ONBOARDING_INCOMPLETE,\n })\n })\n }\n const updateOnboardingStatus = async (data: { employeeId: string; status: OnboardingStatus }) => {\n await baseSubmitHandler(data, async ({ employeeId, status }) => {\n const { employeeOnboardingStatus: responseData } =\n await updateEmployeeOnboardingStatusMutation({\n request: { employeeId, requestBody: { onboardingStatus: status } },\n })\n onEvent(componentEvents.EMPLOYEE_ONBOARDING_STATUS_UPDATED, responseData)\n })\n }\n const handleNew = () => {\n onEvent(componentEvents.EMPLOYEE_CREATE)\n }\n const handleSkip = () => {\n onEvent(componentEvents.EMPLOYEE_ONBOARDING_DONE)\n }\n\n const handleEdit = (uuid: string, onboardingStatus?: OnboardingStatus) => {\n onEvent(componentEvents.EMPLOYEE_UPDATE, { employeeId: uuid, onboardingStatus })\n }\n return (\n <section className={className}>\n <EmployeeListProvider\n value={{\n handleEdit,\n handleNew,\n handleReview,\n handleDelete,\n employees,\n currentPage,\n totalPages,\n handleFirstPage,\n handlePreviousPage,\n handleNextPage,\n handleLastPage,\n handleCancelSelfOnboarding,\n handleItemsPerPageChange,\n handleSkip,\n }}\n >\n {children ? (\n children\n ) : (\n <Flex flexDirection=\"column\">\n <Head />\n <List />\n <Actions />\n </Flex>\n )}\n </EmployeeListProvider>\n </section>\n )\n}\n\nEmployeeList.Head = Head\nEmployeeList.List = List\nEmployeeList.Actions = Actions\n\n/**\n * Wrapper used inside Flows -> exposes flow context for required parameters\n */\nexport const EmployeeListContextual = () => {\n const { companyId, onEvent } = useFlow<OnboardingContextInterface>()\n return <EmployeeList companyId={companyId} onEvent={onEvent} />\n}\n"],"names":["EmployeeList","props","jsx","BaseComponent","Root","companyId","className","children","dictionary","useI18n","useComponentDictionary","onEvent","baseSubmitHandler","useBase","currentPage","setCurrentPage","useState","itemsPerPage","setItemsPerPage","queryClient","useQueryClient","data","useEmployeesListSuspense","httpMeta","employeeList","employees","deleteEmployeeMutation","useEmployeesDeleteMutation","updateEmployeeOnboardingStatusMutation","useEmployeesUpdateOnboardingStatusMutation","totalPages","handleItemsPerPageChange","newCount","handleFirstPage","handlePreviousPage","prevPage","handleNextPage","handleLastPage","handleDelete","uuid","payload","invalidateEmployeesList","componentEvents","handleReview","employeeId","updateOnboardingStatus","EmployeeOnboardingStatus","handleCancelSelfOnboarding","status","responseData","EmployeeListProvider","onboardingStatus","jsxs","Flex","Head","List","Actions","EmployeeListContextual","useFlow"],"mappings":"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"}
1
+ {"version":3,"file":"EmployeeList.js","sources":["../../../../src/components/Employee/EmployeeList/EmployeeList.tsx"],"sourcesContent":["import { useState } from 'react'\nimport { useEmployeesListSuspense } from '@gusto/embedded-api/react-query/employeesList'\nimport type { OnboardingStatus } from '@gusto/embedded-api/models/operations/putv1employeesemployeeidonboardingstatus'\nimport { useEmployeesDeleteMutation } from '@gusto/embedded-api/react-query/employeesDelete'\nimport { useEmployeesUpdateOnboardingStatusMutation } from '@gusto/embedded-api/react-query/employeesUpdateOnboardingStatus'\nimport type { OnboardingContextInterface } from '../OnboardingFlow/OnboardingFlow'\nimport { EmployeeListProvider } from './useEmployeeList'\nimport { Actions } from './Actions'\nimport {\n BaseComponent,\n type BaseComponentInterface,\n type CommonComponentInterface,\n} from '@/components/Base/Base'\nimport { useBase } from '@/components/Base/useBase'\nimport { Flex } from '@/components/Common'\nimport { useI18n, useComponentDictionary } from '@/i18n'\nimport { componentEvents, EmployeeOnboardingStatus } from '@/shared/constants'\nimport { Head } from '@/components/Employee/EmployeeList/Head'\nimport { List } from '@/components/Employee/EmployeeList/List'\nimport { useFlow } from '@/components/Flow/useFlow'\n\n//Interface for component specific props\ninterface EmployeeListProps extends CommonComponentInterface<'Employee.EmployeeList'> {\n companyId: string\n}\n\nexport function EmployeeList(props: EmployeeListProps & BaseComponentInterface) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\nfunction Root({ companyId, className, children, dictionary }: EmployeeListProps) {\n //Using i18n hook to directly load necessary namespace\n useI18n('Employee.EmployeeList')\n useComponentDictionary('Employee.EmployeeList', dictionary)\n //Getting props from base context\n const { onEvent, baseSubmitHandler } = useBase()\n const [currentPage, setCurrentPage] = useState(1)\n const [itemsPerPage, setItemsPerPage] = useState(5)\n\n const { data } = useEmployeesListSuspense({ companyId, page: currentPage, per: itemsPerPage })\n const { httpMeta, employees: employeeList } = data\n const employees = employeeList!\n\n const { mutateAsync: deleteEmployeeMutation } = useEmployeesDeleteMutation()\n const { mutateAsync: updateEmployeeOnboardingStatusMutation } =\n useEmployeesUpdateOnboardingStatusMutation()\n\n const totalPages = Number(httpMeta.response.headers.get('x-total-pages') ?? 1)\n\n const handleItemsPerPageChange = (newCount: number) => {\n setItemsPerPage(newCount)\n }\n const handleFirstPage = () => {\n setCurrentPage(1)\n }\n const handlePreviousPage = () => {\n setCurrentPage(prevPage => Math.max(prevPage - 1, 1))\n }\n const handleNextPage = () => {\n setCurrentPage(prevPage => Math.min(prevPage + 1, totalPages))\n }\n const handleLastPage = () => {\n setCurrentPage(totalPages)\n }\n const handleDelete = async (uuid: string) => {\n await baseSubmitHandler(uuid, async payload => {\n await deleteEmployeeMutation({\n request: { employeeId: payload },\n })\n\n onEvent(componentEvents.EMPLOYEE_DELETED, { employeeId: payload })\n })\n }\n /**Set onboarding status to self_onboarding_awaiting_admin_review and proceed to edit */\n const handleReview = async (data: string) => {\n await baseSubmitHandler(data, async employeeId => {\n await updateOnboardingStatus({\n employeeId,\n status: EmployeeOnboardingStatus.SELF_ONBOARDING_AWAITING_ADMIN_REVIEW,\n })\n onEvent(componentEvents.EMPLOYEE_UPDATE, {\n employeeId,\n onboardingStatus: EmployeeOnboardingStatus.SELF_ONBOARDING_AWAITING_ADMIN_REVIEW,\n })\n })\n }\n /**Update employee onboarding status reverting it back to admin_onboarding_incomplete */\n const handleCancelSelfOnboarding = async (data: string) => {\n await baseSubmitHandler(data, async employeeId => {\n await updateOnboardingStatus({\n employeeId,\n status: EmployeeOnboardingStatus.ADMIN_ONBOARDING_INCOMPLETE,\n })\n })\n }\n const updateOnboardingStatus = async (data: { employeeId: string; status: OnboardingStatus }) => {\n await baseSubmitHandler(data, async ({ employeeId, status }) => {\n const { employeeOnboardingStatus: responseData } =\n await updateEmployeeOnboardingStatusMutation({\n request: { employeeId, requestBody: { onboardingStatus: status } },\n })\n onEvent(componentEvents.EMPLOYEE_ONBOARDING_STATUS_UPDATED, responseData)\n })\n }\n const handleNew = () => {\n onEvent(componentEvents.EMPLOYEE_CREATE)\n }\n const handleSkip = () => {\n onEvent(componentEvents.EMPLOYEE_ONBOARDING_DONE)\n }\n\n const handleEdit = (uuid: string, onboardingStatus?: OnboardingStatus) => {\n onEvent(componentEvents.EMPLOYEE_UPDATE, { employeeId: uuid, onboardingStatus })\n }\n return (\n <section className={className}>\n <EmployeeListProvider\n value={{\n handleEdit,\n handleNew,\n handleReview,\n handleDelete,\n employees,\n currentPage,\n totalPages,\n handleFirstPage,\n handlePreviousPage,\n handleNextPage,\n handleLastPage,\n handleCancelSelfOnboarding,\n handleItemsPerPageChange,\n handleSkip,\n }}\n >\n {children ? (\n children\n ) : (\n <Flex flexDirection=\"column\">\n <Head />\n <List />\n <Actions />\n </Flex>\n )}\n </EmployeeListProvider>\n </section>\n )\n}\n\nEmployeeList.Head = Head\nEmployeeList.List = List\nEmployeeList.Actions = Actions\n\n/**\n * Wrapper used inside Flows -> exposes flow context for required parameters\n */\nexport const EmployeeListContextual = () => {\n const { companyId, onEvent } = useFlow<OnboardingContextInterface>()\n return <EmployeeList companyId={companyId} onEvent={onEvent} />\n}\n"],"names":["EmployeeList","props","jsx","BaseComponent","Root","companyId","className","children","dictionary","useI18n","useComponentDictionary","onEvent","baseSubmitHandler","useBase","currentPage","setCurrentPage","useState","itemsPerPage","setItemsPerPage","data","useEmployeesListSuspense","httpMeta","employeeList","employees","deleteEmployeeMutation","useEmployeesDeleteMutation","updateEmployeeOnboardingStatusMutation","useEmployeesUpdateOnboardingStatusMutation","totalPages","handleItemsPerPageChange","newCount","handleFirstPage","handlePreviousPage","prevPage","handleNextPage","handleLastPage","handleDelete","uuid","payload","componentEvents","handleReview","employeeId","updateOnboardingStatus","EmployeeOnboardingStatus","handleCancelSelfOnboarding","status","responseData","EmployeeListProvider","onboardingStatus","jsxs","Flex","Head","List","Actions","EmployeeListContextual","useFlow"],"mappings":"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"}
@@ -5,14 +5,15 @@ import "react-i18next";
5
5
  import "@gusto/embedded-api/models/errors/apierror";
6
6
  import "@gusto/embedded-api/models/errors/sdkvalidationerror";
7
7
  import "@gusto/embedded-api/models/errors/unprocessableentityerrorobject";
8
+ import "@tanstack/react-query";
8
9
  import "../../Base/useBase.js";
9
10
  import "../../../shared/constants.js";
10
11
  import "dompurify";
11
12
  import "../../../contexts/ComponentAdapter/useComponentContext.js";
12
13
  import { createCompoundContext as o } from "../../Base/createCompoundContext.js";
13
- const [E, L] = o("EmployeeListContext");
14
+ const [L, c] = o("EmployeeListContext");
14
15
  export {
15
- L as EmployeeListProvider,
16
- E as useEmployeeList
16
+ c as EmployeeListProvider,
17
+ L as useEmployeeList
17
18
  };
18
19
  //# sourceMappingURL=useEmployeeList.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useEmployeeList.js","sources":["../../../../src/components/Employee/EmployeeList/useEmployeeList.ts"],"sourcesContent":["import type { Employee } from '@gusto/embedded-api/models/components/employee'\nimport type { OnboardingStatus } from '@gusto/embedded-api/models/operations/putv1employeesemployeeidonboardingstatus'\nimport { createCompoundContext } from '@/components/Base'\n\n//Interface for context passed down to component slots\ntype EmployeeListContextType = {\n handleEdit: (uuid: string, onboardingStatus?: OnboardingStatus) => void\n handleDelete: (uuid: string) => Promise<void>\n handleCancelSelfOnboarding: (employeeId: string) => Promise<void>\n handleReview: (employeeId: string) => Promise<void>\n handleNew: () => void\n handleSkip: () => void\n handleFirstPage: () => void\n handlePreviousPage: () => void\n handleNextPage: () => void\n handleLastPage: () => void\n handleItemsPerPageChange: (newCount: number) => void\n currentPage: number\n totalPages: number\n employees: Employee[]\n}\n\nconst [useEmployeeList, EmployeeListProvider] =\n createCompoundContext<EmployeeListContextType>('EmployeeListContext')\nexport { useEmployeeList, EmployeeListProvider }\n"],"names":["useEmployeeList","EmployeeListProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;AAsBA,MAAM,CAACA,GAAiBC,CAAoB,IAC1CC,EAA+C,qBAAqB;"}
1
+ {"version":3,"file":"useEmployeeList.js","sources":["../../../../src/components/Employee/EmployeeList/useEmployeeList.ts"],"sourcesContent":["import type { Employee } from '@gusto/embedded-api/models/components/employee'\nimport type { OnboardingStatus } from '@gusto/embedded-api/models/operations/putv1employeesemployeeidonboardingstatus'\nimport { createCompoundContext } from '@/components/Base'\n\n//Interface for context passed down to component slots\ntype EmployeeListContextType = {\n handleEdit: (uuid: string, onboardingStatus?: OnboardingStatus) => void\n handleDelete: (uuid: string) => Promise<void>\n handleCancelSelfOnboarding: (employeeId: string) => Promise<void>\n handleReview: (employeeId: string) => Promise<void>\n handleNew: () => void\n handleSkip: () => void\n handleFirstPage: () => void\n handlePreviousPage: () => void\n handleNextPage: () => void\n handleLastPage: () => void\n handleItemsPerPageChange: (newCount: number) => void\n currentPage: number\n totalPages: number\n employees: Employee[]\n}\n\nconst [useEmployeeList, EmployeeListProvider] =\n createCompoundContext<EmployeeListContextType>('EmployeeListContext')\nexport { useEmployeeList, EmployeeListProvider }\n"],"names":["useEmployeeList","EmployeeListProvider","createCompoundContext"],"mappings":";;;;;;;;;;;;;AAsBA,MAAM,CAACA,GAAiBC,CAAoB,IAC1CC,EAA+C,qBAAqB;"}
@@ -1,42 +1,40 @@
1
- import { jsx as n, jsxs as x } from "react/jsx-runtime";
2
- import { zodResolver as H } from "@hookform/resolvers/zod";
3
- import { useEmployeePaymentMethodCreateMutation as R } from "@gusto/embedded-api/react-query/employeePaymentMethodCreate";
4
- import { useEmployeePaymentMethodDeleteBankAccountMutation as G } from "@gusto/embedded-api/react-query/employeePaymentMethodDeleteBankAccount";
5
- import { useEmployeePaymentMethodsGetBankAccountsSuspense as V, invalidateAllEmployeePaymentMethodsGetBankAccounts as j } from "@gusto/embedded-api/react-query/employeePaymentMethodsGetBankAccounts";
6
- import { useEmployeePaymentMethodGetSuspense as K, invalidateAllEmployeePaymentMethodGet as z } from "@gusto/embedded-api/react-query/employeePaymentMethodGet";
7
- import { useEmployeePaymentMethodUpdateBankAccountMutation as Q } from "@gusto/embedded-api/react-query/employeePaymentMethodUpdateBankAccount";
8
- import { useEmployeePaymentMethodUpdateMutation as J } from "@gusto/embedded-api/react-query/employeePaymentMethodUpdate";
9
- import { useQueryClient as W } from "@tanstack/react-query";
10
- import { useCallback as X, useState as Z, useMemo as k, useEffect as S } from "react";
11
- import { useForm as $, FormProvider as tt } from "react-hook-form";
12
- import { useTranslation as et } from "react-i18next";
13
- import { CombinedSchema as ot, PaymentMethodProvider as nt } from "./usePaymentMethod.js";
14
- import { BaseComponent as it } from "../../Base/Base.js";
15
- import { useBase as st } from "../../Base/useBase.js";
16
- import { Form as rt } from "../../Common/Form/Form.js";
17
- import { Actions as at } from "./Actions.js";
18
- import { BankAccountForm as mt } from "./BankAccountEdit.js";
19
- import { BankAccountsList as ct } from "./BankAccountsList.js";
20
- import { Head as ut } from "./Head.js";
21
- import { PaymentTypeForm as pt } from "./PaymentTypeForm.js";
22
- import { Split as lt } from "./Split.js";
23
- import { useI18n as dt, useComponentDictionary as yt } from "../../../i18n/I18n.js";
24
- import { SPLIT_BY as b, componentEvents as A, PAYMENT_METHODS as N } from "../../../shared/constants.js";
25
- import { useFlow as ht } from "../../Flow/useFlow.js";
26
- function At(o) {
27
- return /* @__PURE__ */ n(it, { ...o, children: /* @__PURE__ */ n(ft, { ...o, children: o.children }) });
1
+ import { jsx as n, jsxs as U } from "react/jsx-runtime";
2
+ import { zodResolver as x } from "@hookform/resolvers/zod";
3
+ import { useEmployeePaymentMethodCreateMutation as H } from "@gusto/embedded-api/react-query/employeePaymentMethodCreate";
4
+ import { useEmployeePaymentMethodDeleteBankAccountMutation as R } from "@gusto/embedded-api/react-query/employeePaymentMethodDeleteBankAccount";
5
+ import { useEmployeePaymentMethodsGetBankAccountsSuspense as V } from "@gusto/embedded-api/react-query/employeePaymentMethodsGetBankAccounts";
6
+ import { useEmployeePaymentMethodGetSuspense as j } from "@gusto/embedded-api/react-query/employeePaymentMethodGet";
7
+ import { useEmployeePaymentMethodUpdateBankAccountMutation as G } from "@gusto/embedded-api/react-query/employeePaymentMethodUpdateBankAccount";
8
+ import { useEmployeePaymentMethodUpdateMutation as K } from "@gusto/embedded-api/react-query/employeePaymentMethodUpdate";
9
+ import { useQueryClient as z } from "@tanstack/react-query";
10
+ import { useState as Q, useMemo as T, useEffect as S } from "react";
11
+ import { useForm as J, FormProvider as W } from "react-hook-form";
12
+ import { useTranslation as X } from "react-i18next";
13
+ import { CombinedSchema as Z, PaymentMethodProvider as $ } from "./usePaymentMethod.js";
14
+ import { BaseComponent as tt } from "../../Base/Base.js";
15
+ import { useBase as et } from "../../Base/useBase.js";
16
+ import { Form as ot } from "../../Common/Form/Form.js";
17
+ import { Actions as nt } from "./Actions.js";
18
+ import { BankAccountForm as st } from "./BankAccountEdit.js";
19
+ import { BankAccountsList as it } from "./BankAccountsList.js";
20
+ import { Head as rt } from "./Head.js";
21
+ import { PaymentTypeForm as mt } from "./PaymentTypeForm.js";
22
+ import { Split as at } from "./Split.js";
23
+ import { useI18n as ct, useComponentDictionary as ut } from "../../../i18n/I18n.js";
24
+ import { SPLIT_BY as v, componentEvents as y, PAYMENT_METHODS as b } from "../../../shared/constants.js";
25
+ import { useFlow as pt } from "../../Flow/useFlow.js";
26
+ function lt(o) {
27
+ return /* @__PURE__ */ n(tt, { ...o, children: /* @__PURE__ */ n(dt, { ...o, children: o.children }) });
28
28
  }
29
- const ft = ({ employeeId: o, className: f, dictionary: E }) => {
30
- dt("Employee.PaymentMethod"), yt("Employee.PaymentMethod", E);
31
- const { baseSubmitHandler: L, onEvent: l } = st(), d = W(), {
32
- data: { employeePaymentMethod: w }
33
- } = K({ employeeId: o }), t = w, { data: g } = V({
29
+ const dt = ({ employeeId: o, className: h, dictionary: A }) => {
30
+ ct("Employee.PaymentMethod"), ut("Employee.PaymentMethod", A);
31
+ const { baseSubmitHandler: k, onEvent: p } = et(), N = z(), {
32
+ data: { employeePaymentMethod: L }
33
+ } = j({ employeeId: o }), t = L, { data: g } = V({
34
34
  employeeId: o
35
- }), y = g.employeeBankAccountList, M = J(), B = G(), D = R(), C = Q(), a = X(async () => {
36
- await z(d), await j(d);
37
- }, [d]), [m, c] = Z(y.length < 1 ? "INITIAL" : "LIST");
38
- m !== "INITIAL" && y.length < 1 && c("INITIAL");
39
- const T = k(() => ({
35
+ }), l = g.employeeBankAccountList, f = K(), M = R(), P = H(), C = G(), [m, a] = Q(l.length < 1 ? "INITIAL" : "LIST");
36
+ m !== "INITIAL" && l.length < 1 && a("INITIAL");
37
+ const D = T(() => ({
40
38
  type: "Direct Deposit",
41
39
  isSplit: !1,
42
40
  hasBankPayload: !1,
@@ -47,33 +45,33 @@ const ft = ({ employeeId: o, className: f, dictionary: E }) => {
47
45
  splitBy: void 0,
48
46
  splitAmount: {},
49
47
  priority: {}
50
- }), []), u = k(() => ({
51
- ...T,
48
+ }), []), c = T(() => ({
49
+ ...D,
52
50
  type: t.type ?? "Direct Deposit",
53
51
  splitBy: t.splitBy ?? void 0,
54
52
  ...t.splits?.reduce(
55
- (i, { uuid: e, splitAmount: r, priority: p }) => ({
56
- splitAmount: { ...i.splitAmount, [e]: r ?? null },
57
- priority: { ...i.priority, [e]: Number(p) }
53
+ (s, { uuid: e, splitAmount: r, priority: u }) => ({
54
+ splitAmount: { ...s.splitAmount, [e]: r ?? null },
55
+ priority: { ...s.priority, [e]: Number(u) }
58
56
  }),
59
57
  { splitAmount: {}, priority: {} }
60
58
  ),
61
59
  remainder: t.type === "Direct Deposit" && t.splits ? t.splits.reduce(
62
- (i, e) => e.splitAmount === null ? e.uuid : t.splits?.at(-1)?.uuid ?? i,
60
+ (s, e) => e.splitAmount === null ? e.uuid : t.splits?.at(-1)?.uuid ?? s,
63
61
  ""
64
62
  ) : void 0
65
- }), [T, t.type, t.splitBy, t.splits]), s = $({
66
- resolver: H(ot),
67
- defaultValues: u
68
- }), I = s.watch("type"), { reset: h } = s, { mutateAsync: v } = M;
63
+ }), [D, t.type, t.splitBy, t.splits]), i = J({
64
+ resolver: x(Z),
65
+ defaultValues: c
66
+ }), I = i.watch("type"), { reset: d } = i, { mutateAsync: B } = f;
69
67
  S(() => {
70
- (async () => t.splits?.length === 1 && t.type === "Direct Deposit" && (await v({
68
+ (async () => t.splits?.length === 1 && t.type === "Direct Deposit" && await B({
71
69
  request: {
72
70
  employeeId: o,
73
71
  requestBody: {
74
- splitBy: b.percentage,
75
- splits: t.splits.map((i) => ({
76
- ...i,
72
+ splitBy: v.percentage,
73
+ splits: t.splits.map((s) => ({
74
+ ...s,
77
75
  splitAmount: 100,
78
76
  priority: 1
79
77
  })),
@@ -81,15 +79,15 @@ const ft = ({ employeeId: o, className: f, dictionary: E }) => {
81
79
  type: "Direct Deposit"
82
80
  }
83
81
  }
84
- }), await a()))();
85
- }, [o, a, t, d, v]), S(() => {
86
- h(u);
87
- }, [y.length, t, u, h]);
88
- const _ = async (i) => {
89
- await L(i, async (e) => {
82
+ }))();
83
+ }, [o, t, N, B]), S(() => {
84
+ d(c);
85
+ }, [l.length, t, c, d]);
86
+ const _ = async (s) => {
87
+ await k(s, async (e) => {
90
88
  const { type: r } = e;
91
89
  if (r === "Direct Deposit" && e.hasBankPayload && (m === "ADD" || m === "INITIAL")) {
92
- const p = await D.mutateAsync({
90
+ const u = await P.mutateAsync({
93
91
  request: {
94
92
  employeeId: o,
95
93
  requestBody: {
@@ -100,74 +98,74 @@ const ft = ({ employeeId: o, className: f, dictionary: E }) => {
100
98
  }
101
99
  }
102
100
  });
103
- await a(), l(A.EMPLOYEE_BANK_ACCOUNT_CREATED, p);
101
+ p(y.EMPLOYEE_BANK_ACCOUNT_CREATED, u);
104
102
  } else {
105
- const p = r === N.check ? { version: t.version } : {
103
+ const u = r === b.check ? { version: t.version } : {
106
104
  ...t,
107
105
  version: t.version,
108
- splitBy: e.isSplit ? e.splitBy : t.splitBy ?? b.percentage,
109
- splits: e.isSplit && t.splits ? t.splits.map((P) => ({
110
- ...P,
111
- splitAmount: e.splitAmount[P.uuid],
112
- priority: e.priority[P.uuid]
106
+ splitBy: e.isSplit ? e.splitBy : t.splitBy ?? v.percentage,
107
+ splits: e.isSplit && t.splits ? t.splits.map((E) => ({
108
+ ...E,
109
+ splitAmount: e.splitAmount[E.uuid],
110
+ priority: e.priority[E.uuid]
113
111
  })) : t.splits ?? []
114
- }, U = await M.mutateAsync({
115
- request: { employeeId: o, requestBody: { ...p, type: r } }
112
+ }, Y = await f.mutateAsync({
113
+ request: { employeeId: o, requestBody: { ...u, type: r } }
116
114
  });
117
- await a(), l(A.EMPLOYEE_PAYMENT_METHOD_UPDATED, U);
115
+ p(y.EMPLOYEE_PAYMENT_METHOD_UPDATED, Y);
118
116
  }
119
- s.setValue("isSplit", !1), s.setValue("hasBankPayload", !1), m === "LIST" || r === N.check ? l(A.EMPLOYEE_PAYMENT_METHOD_DONE) : c("LIST");
117
+ i.setValue("isSplit", !1), i.setValue("hasBankPayload", !1), m === "LIST" || r === b.check ? p(y.EMPLOYEE_PAYMENT_METHOD_DONE) : a("LIST");
120
118
  });
121
- }, O = async (i) => {
122
- const e = await B.mutateAsync({
123
- request: { employeeId: o, bankAccountUuid: i }
119
+ }, w = async (s) => {
120
+ const e = await M.mutateAsync({
121
+ request: { employeeId: o, bankAccountUuid: s }
124
122
  });
125
- await a(), l(A.EMPLOYEE_BANK_ACCOUNT_DELETED, e);
123
+ p(y.EMPLOYEE_BANK_ACCOUNT_DELETED, e);
124
+ }, O = () => {
125
+ a("ADD"), d(c);
126
126
  }, q = () => {
127
- c("ADD"), h(u);
127
+ a("LIST"), d(c);
128
128
  }, F = () => {
129
- c("LIST"), h(u);
130
- }, Y = () => {
131
- c("SPLIT");
129
+ a("SPLIT");
132
130
  };
133
- return /* @__PURE__ */ n("section", { className: f, children: /* @__PURE__ */ n(
134
- nt,
131
+ return /* @__PURE__ */ n("section", { className: h, children: /* @__PURE__ */ n(
132
+ $,
135
133
  {
136
134
  value: {
137
- bankAccounts: y,
138
- isPending: B.isPending || M.isPending || D.isPending || C.isPending,
135
+ bankAccounts: l,
136
+ isPending: M.isPending || f.isPending || P.isPending || C.isPending,
139
137
  watchedType: I,
140
138
  mode: m,
141
139
  paymentMethod: t,
142
- handleCancel: F,
143
- handleAdd: q,
144
- handleDelete: O,
145
- handleSplit: Y
140
+ handleCancel: q,
141
+ handleAdd: O,
142
+ handleDelete: w,
143
+ handleSplit: F
146
144
  },
147
- children: /* @__PURE__ */ n(tt, { ...s, children: /* @__PURE__ */ x(rt, { onSubmit: s.handleSubmit(_), children: [
148
- /* @__PURE__ */ n(ut, {}),
149
- /* @__PURE__ */ n(pt, {}),
150
- /* @__PURE__ */ n(ct, {}),
145
+ children: /* @__PURE__ */ n(W, { ...i, children: /* @__PURE__ */ U(ot, { onSubmit: i.handleSubmit(_), children: [
146
+ /* @__PURE__ */ n(rt, {}),
151
147
  /* @__PURE__ */ n(mt, {}),
152
- /* @__PURE__ */ n(lt, {}),
153
- /* @__PURE__ */ n(at, {})
148
+ /* @__PURE__ */ n(it, {}),
149
+ /* @__PURE__ */ n(st, {}),
150
+ /* @__PURE__ */ n(at, {}),
151
+ /* @__PURE__ */ n(nt, {})
154
152
  ] }) })
155
153
  }
156
154
  ) });
157
- }, Gt = () => {
158
- const { employeeId: o, onEvent: f } = ht(), { t: E } = et("common");
155
+ }, Ut = () => {
156
+ const { employeeId: o, onEvent: h } = pt(), { t: A } = X("common");
159
157
  if (!o)
160
158
  throw new Error(
161
- E("errors.missingParamsOrContext", {
159
+ A("errors.missingParamsOrContext", {
162
160
  component: "PaymentMethod",
163
161
  param: "employeeId",
164
162
  provider: "FlowProvider"
165
163
  })
166
164
  );
167
- return /* @__PURE__ */ n(At, { employeeId: o, onEvent: f });
165
+ return /* @__PURE__ */ n(lt, { employeeId: o, onEvent: h });
168
166
  };
169
167
  export {
170
- At as PaymentMethod,
171
- Gt as PaymentMethodContextual
168
+ lt as PaymentMethod,
169
+ Ut as PaymentMethodContextual
172
170
  };
173
171
  //# sourceMappingURL=PaymentMethod.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PaymentMethod.js","sources":["../../../../src/components/Employee/PaymentMethod/PaymentMethod.tsx"],"sourcesContent":["import { zodResolver } from '@hookform/resolvers/zod'\nimport { useEmployeePaymentMethodCreateMutation } from '@gusto/embedded-api/react-query/employeePaymentMethodCreate'\nimport { useEmployeePaymentMethodDeleteBankAccountMutation } from '@gusto/embedded-api/react-query/employeePaymentMethodDeleteBankAccount'\nimport {\n useEmployeePaymentMethodsGetBankAccountsSuspense,\n invalidateAllEmployeePaymentMethodsGetBankAccounts,\n} from '@gusto/embedded-api/react-query/employeePaymentMethodsGetBankAccounts'\nimport {\n useEmployeePaymentMethodGetSuspense,\n invalidateAllEmployeePaymentMethodGet,\n} from '@gusto/embedded-api/react-query/employeePaymentMethodGet'\nimport { useEmployeePaymentMethodUpdateBankAccountMutation } from '@gusto/embedded-api/react-query/employeePaymentMethodUpdateBankAccount'\nimport { useEmployeePaymentMethodUpdateMutation } from '@gusto/embedded-api/react-query/employeePaymentMethodUpdate'\nimport { useQueryClient } from '@tanstack/react-query'\nimport { useCallback, useEffect, useMemo, useState } from 'react'\nimport { FormProvider, useForm, type DefaultValues, type SubmitHandler } from 'react-hook-form'\nimport { useTranslation } from 'react-i18next'\nimport type { OnboardingContextInterface } from '../OnboardingFlow/OnboardingFlow'\nimport {\n CombinedSchema,\n type CombinedSchemaInputs,\n type CombinedSchemaOutputs,\n type MODE,\n PaymentMethodProvider,\n} from './usePaymentMethod'\nimport {\n useBase,\n BaseComponent,\n type BaseComponentInterface,\n type CommonComponentInterface,\n} from '@/components/Base'\nimport { Form } from '@/components/Common/Form'\nimport { Actions } from '@/components/Employee/PaymentMethod/Actions'\nimport { BankAccountForm } from '@/components/Employee/PaymentMethod/BankAccountEdit'\nimport { BankAccountsList } from '@/components/Employee/PaymentMethod/BankAccountsList'\nimport { Head } from '@/components/Employee/PaymentMethod/Head'\nimport { PaymentTypeForm } from '@/components/Employee/PaymentMethod/PaymentTypeForm'\nimport { Split } from '@/components/Employee/PaymentMethod/Split'\nimport { useI18n } from '@/i18n'\nimport { componentEvents, PAYMENT_METHODS, SPLIT_BY } from '@/shared/constants'\nimport { useFlow } from '@/components/Flow/useFlow'\nimport { useComponentDictionary } from '@/i18n/I18n'\n\ninterface PaymentMethodProps extends CommonComponentInterface<'Employee.PaymentMethod'> {\n employeeId: string\n defaultValues?: never\n}\n\nexport function PaymentMethod(props: PaymentMethodProps & BaseComponentInterface) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst Root = ({ employeeId, className, dictionary }: PaymentMethodProps) => {\n useI18n('Employee.PaymentMethod')\n useComponentDictionary('Employee.PaymentMethod', dictionary)\n const { baseSubmitHandler, onEvent } = useBase()\n const queryClient = useQueryClient()\n\n const {\n data: { employeePaymentMethod },\n } = useEmployeePaymentMethodGetSuspense({ employeeId })\n const paymentMethod = employeePaymentMethod!\n const { data: bankAccountsList } = useEmployeePaymentMethodsGetBankAccountsSuspense({\n employeeId,\n })\n const bankAccounts = bankAccountsList.employeeBankAccountList!\n const paymentMethodMutation = useEmployeePaymentMethodUpdateMutation()\n const deleteBankAccountMutation = useEmployeePaymentMethodDeleteBankAccountMutation()\n const addBankAccountMutation = useEmployeePaymentMethodCreateMutation()\n const updateBankAccountMutation = useEmployeePaymentMethodUpdateBankAccountMutation()\n\n const invalidateAll = useCallback(async () => {\n await invalidateAllEmployeePaymentMethodGet(queryClient)\n await invalidateAllEmployeePaymentMethodsGetBankAccounts(queryClient)\n }, [queryClient])\n\n const [mode, setMode] = useState<MODE>(bankAccounts.length < 1 ? 'INITIAL' : 'LIST')\n if (mode !== 'INITIAL' && bankAccounts.length < 1) {\n setMode('INITIAL')\n }\n\n const baseDefaultValues: Partial<CombinedSchemaOutputs> = useMemo(() => {\n return {\n type: 'Direct Deposit',\n isSplit: false,\n hasBankPayload: false,\n name: '',\n routingNumber: '',\n accountNumber: '',\n accountType: 'Checking',\n splitBy: undefined,\n splitAmount: {},\n priority: {},\n } as Partial<CombinedSchemaOutputs>\n }, [])\n\n const defaultValues: CombinedSchemaOutputs = useMemo(() => {\n return {\n ...baseDefaultValues,\n type: paymentMethod.type ?? 'Direct Deposit',\n splitBy: paymentMethod.splitBy ?? undefined,\n ...paymentMethod.splits?.reduce(\n (acc, { uuid, splitAmount, priority }) => ({\n splitAmount: { ...acc.splitAmount, [uuid]: splitAmount ?? null },\n priority: { ...acc.priority, [uuid]: Number(priority) },\n }),\n { splitAmount: {}, priority: {} },\n ),\n remainder:\n paymentMethod.type === 'Direct Deposit' && paymentMethod.splits\n ? paymentMethod.splits.reduce(\n (acc, curr) =>\n curr.splitAmount === null ? curr.uuid : (paymentMethod.splits?.at(-1)?.uuid ?? acc),\n '',\n )\n : undefined,\n } as CombinedSchemaOutputs\n }, [baseDefaultValues, paymentMethod.type, paymentMethod.splitBy, paymentMethod.splits])\n\n const formMethods = useForm<CombinedSchemaInputs>({\n resolver: zodResolver(CombinedSchema),\n defaultValues: defaultValues as DefaultValues<CombinedSchemaInputs>,\n })\n\n const watchedType = formMethods.watch('type')\n\n const { reset: resetForm } = formMethods\n const { mutateAsync: mutatePaymentMethod } = paymentMethodMutation\n\n useEffect(() => {\n void (async () => {\n if (paymentMethod.splits?.length === 1 && paymentMethod.type === 'Direct Deposit') {\n await mutatePaymentMethod({\n request: {\n employeeId,\n requestBody: {\n splitBy: SPLIT_BY.percentage,\n splits: paymentMethod.splits.map(split => ({\n ...split,\n splitAmount: 100,\n priority: 1,\n })),\n version: paymentMethod.version as string,\n type: 'Direct Deposit',\n },\n },\n })\n await invalidateAll()\n }\n })()\n }, [employeeId, invalidateAll, paymentMethod, queryClient, mutatePaymentMethod])\n\n useEffect(() => {\n resetForm(defaultValues)\n }, [bankAccounts.length, paymentMethod, defaultValues, resetForm])\n\n const onSubmit: SubmitHandler<CombinedSchemaInputs> = async data => {\n await baseSubmitHandler(data, async payload => {\n const { type } = payload\n if (\n type === 'Direct Deposit' &&\n payload.hasBankPayload &&\n (mode === 'ADD' || mode === 'INITIAL')\n ) {\n const bankAccountResponse = await addBankAccountMutation.mutateAsync({\n request: {\n employeeId,\n requestBody: {\n name: payload.name,\n routingNumber: payload.routingNumber,\n accountNumber: payload.accountNumber,\n accountType: payload.accountType,\n },\n },\n })\n await invalidateAll()\n\n onEvent(componentEvents.EMPLOYEE_BANK_ACCOUNT_CREATED, bankAccountResponse)\n } else {\n //Adding bank account updates payment method\n const body =\n type === PAYMENT_METHODS.check\n ? { version: paymentMethod.version as string }\n : {\n ...paymentMethod,\n version: paymentMethod.version as string,\n splitBy: payload.isSplit\n ? payload.splitBy\n : (paymentMethod.splitBy ?? SPLIT_BY.percentage),\n splits:\n payload.isSplit && paymentMethod.splits\n ? paymentMethod.splits.map(split => ({\n ...split,\n splitAmount: payload.splitAmount[split.uuid],\n priority: payload.priority[split.uuid],\n }))\n : (paymentMethod.splits ?? []),\n }\n const paymentMethodResponse = await paymentMethodMutation.mutateAsync({\n request: { employeeId, requestBody: { ...body, type } },\n })\n await invalidateAll()\n onEvent(componentEvents.EMPLOYEE_PAYMENT_METHOD_UPDATED, paymentMethodResponse)\n }\n //Cleanup after submission bank/split submission\n formMethods.setValue('isSplit', false)\n formMethods.setValue('hasBankPayload', false)\n //Notify that this component is ready to proceed\n if (mode === 'LIST' || type === PAYMENT_METHODS.check) {\n onEvent(componentEvents.EMPLOYEE_PAYMENT_METHOD_DONE)\n } else {\n setMode('LIST')\n }\n })\n }\n\n const handleDelete = async (uuid: string) => {\n const data = await deleteBankAccountMutation.mutateAsync({\n request: { employeeId, bankAccountUuid: uuid },\n })\n await invalidateAll()\n onEvent(componentEvents.EMPLOYEE_BANK_ACCOUNT_DELETED, data)\n }\n const handleAdd = () => {\n setMode('ADD')\n resetForm(defaultValues)\n }\n const handleCancel = () => {\n setMode('LIST')\n resetForm(defaultValues)\n }\n const handleSplit = () => {\n setMode('SPLIT')\n }\n\n return (\n <section className={className}>\n <PaymentMethodProvider\n value={{\n bankAccounts,\n isPending:\n deleteBankAccountMutation.isPending ||\n paymentMethodMutation.isPending ||\n addBankAccountMutation.isPending ||\n updateBankAccountMutation.isPending,\n watchedType,\n mode,\n paymentMethod,\n handleCancel,\n handleAdd,\n handleDelete,\n handleSplit,\n }}\n >\n <FormProvider {...formMethods}>\n <Form onSubmit={formMethods.handleSubmit(onSubmit)}>\n <Head />\n <PaymentTypeForm />\n <BankAccountsList />\n <BankAccountForm />\n <Split />\n <Actions />\n </Form>\n </FormProvider>\n </PaymentMethodProvider>\n </section>\n )\n}\n\nexport const PaymentMethodContextual = () => {\n const { employeeId, onEvent } = useFlow<OnboardingContextInterface>()\n const { t } = useTranslation('common')\n\n if (!employeeId) {\n throw new Error(\n t('errors.missingParamsOrContext', {\n component: 'PaymentMethod',\n param: 'employeeId',\n provider: 'FlowProvider',\n }),\n )\n }\n return <PaymentMethod employeeId={employeeId} onEvent={onEvent} />\n}\n"],"names":["PaymentMethod","props","jsx","BaseComponent","Root","employeeId","className","dictionary","useI18n","useComponentDictionary","baseSubmitHandler","onEvent","useBase","queryClient","useQueryClient","employeePaymentMethod","useEmployeePaymentMethodGetSuspense","paymentMethod","bankAccountsList","useEmployeePaymentMethodsGetBankAccountsSuspense","bankAccounts","paymentMethodMutation","useEmployeePaymentMethodUpdateMutation","deleteBankAccountMutation","useEmployeePaymentMethodDeleteBankAccountMutation","addBankAccountMutation","useEmployeePaymentMethodCreateMutation","updateBankAccountMutation","useEmployeePaymentMethodUpdateBankAccountMutation","invalidateAll","useCallback","invalidateAllEmployeePaymentMethodGet","invalidateAllEmployeePaymentMethodsGetBankAccounts","mode","setMode","useState","baseDefaultValues","useMemo","defaultValues","acc","uuid","splitAmount","priority","curr","formMethods","useForm","zodResolver","CombinedSchema","watchedType","resetForm","mutatePaymentMethod","useEffect","SPLIT_BY","split","onSubmit","data","payload","type","bankAccountResponse","componentEvents","body","PAYMENT_METHODS","paymentMethodResponse","handleDelete","handleAdd","handleCancel","handleSplit","PaymentMethodProvider","FormProvider","jsxs","Form","Head","PaymentTypeForm","BankAccountsList","BankAccountForm","Split","Actions","PaymentMethodContextual","useFlow","t","useTranslation"],"mappings":"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"}
1
+ {"version":3,"file":"PaymentMethod.js","sources":["../../../../src/components/Employee/PaymentMethod/PaymentMethod.tsx"],"sourcesContent":["import { zodResolver } from '@hookform/resolvers/zod'\nimport { useEmployeePaymentMethodCreateMutation } from '@gusto/embedded-api/react-query/employeePaymentMethodCreate'\nimport { useEmployeePaymentMethodDeleteBankAccountMutation } from '@gusto/embedded-api/react-query/employeePaymentMethodDeleteBankAccount'\nimport { useEmployeePaymentMethodsGetBankAccountsSuspense } from '@gusto/embedded-api/react-query/employeePaymentMethodsGetBankAccounts'\nimport { useEmployeePaymentMethodGetSuspense } from '@gusto/embedded-api/react-query/employeePaymentMethodGet'\nimport { useEmployeePaymentMethodUpdateBankAccountMutation } from '@gusto/embedded-api/react-query/employeePaymentMethodUpdateBankAccount'\nimport { useEmployeePaymentMethodUpdateMutation } from '@gusto/embedded-api/react-query/employeePaymentMethodUpdate'\nimport { useQueryClient } from '@tanstack/react-query'\nimport { useEffect, useMemo, useState } from 'react'\nimport { FormProvider, useForm, type DefaultValues, type SubmitHandler } from 'react-hook-form'\nimport { useTranslation } from 'react-i18next'\nimport type { OnboardingContextInterface } from '../OnboardingFlow/OnboardingFlow'\nimport {\n CombinedSchema,\n type CombinedSchemaInputs,\n type CombinedSchemaOutputs,\n type MODE,\n PaymentMethodProvider,\n} from './usePaymentMethod'\nimport {\n useBase,\n BaseComponent,\n type BaseComponentInterface,\n type CommonComponentInterface,\n} from '@/components/Base'\nimport { Form } from '@/components/Common/Form'\nimport { Actions } from '@/components/Employee/PaymentMethod/Actions'\nimport { BankAccountForm } from '@/components/Employee/PaymentMethod/BankAccountEdit'\nimport { BankAccountsList } from '@/components/Employee/PaymentMethod/BankAccountsList'\nimport { Head } from '@/components/Employee/PaymentMethod/Head'\nimport { PaymentTypeForm } from '@/components/Employee/PaymentMethod/PaymentTypeForm'\nimport { Split } from '@/components/Employee/PaymentMethod/Split'\nimport { useI18n } from '@/i18n'\nimport { componentEvents, PAYMENT_METHODS, SPLIT_BY } from '@/shared/constants'\nimport { useFlow } from '@/components/Flow/useFlow'\nimport { useComponentDictionary } from '@/i18n/I18n'\n\ninterface PaymentMethodProps extends CommonComponentInterface<'Employee.PaymentMethod'> {\n employeeId: string\n defaultValues?: never\n}\n\nexport function PaymentMethod(props: PaymentMethodProps & BaseComponentInterface) {\n return (\n <BaseComponent {...props}>\n <Root {...props}>{props.children}</Root>\n </BaseComponent>\n )\n}\n\nconst Root = ({ employeeId, className, dictionary }: PaymentMethodProps) => {\n useI18n('Employee.PaymentMethod')\n useComponentDictionary('Employee.PaymentMethod', dictionary)\n const { baseSubmitHandler, onEvent } = useBase()\n const queryClient = useQueryClient()\n\n const {\n data: { employeePaymentMethod },\n } = useEmployeePaymentMethodGetSuspense({ employeeId })\n const paymentMethod = employeePaymentMethod!\n const { data: bankAccountsList } = useEmployeePaymentMethodsGetBankAccountsSuspense({\n employeeId,\n })\n const bankAccounts = bankAccountsList.employeeBankAccountList!\n const paymentMethodMutation = useEmployeePaymentMethodUpdateMutation()\n const deleteBankAccountMutation = useEmployeePaymentMethodDeleteBankAccountMutation()\n const addBankAccountMutation = useEmployeePaymentMethodCreateMutation()\n const updateBankAccountMutation = useEmployeePaymentMethodUpdateBankAccountMutation()\n\n const [mode, setMode] = useState<MODE>(bankAccounts.length < 1 ? 'INITIAL' : 'LIST')\n if (mode !== 'INITIAL' && bankAccounts.length < 1) {\n setMode('INITIAL')\n }\n\n const baseDefaultValues: Partial<CombinedSchemaOutputs> = useMemo(() => {\n return {\n type: 'Direct Deposit',\n isSplit: false,\n hasBankPayload: false,\n name: '',\n routingNumber: '',\n accountNumber: '',\n accountType: 'Checking',\n splitBy: undefined,\n splitAmount: {},\n priority: {},\n } as Partial<CombinedSchemaOutputs>\n }, [])\n\n const defaultValues: CombinedSchemaOutputs = useMemo(() => {\n return {\n ...baseDefaultValues,\n type: paymentMethod.type ?? 'Direct Deposit',\n splitBy: paymentMethod.splitBy ?? undefined,\n ...paymentMethod.splits?.reduce(\n (acc, { uuid, splitAmount, priority }) => ({\n splitAmount: { ...acc.splitAmount, [uuid]: splitAmount ?? null },\n priority: { ...acc.priority, [uuid]: Number(priority) },\n }),\n { splitAmount: {}, priority: {} },\n ),\n remainder:\n paymentMethod.type === 'Direct Deposit' && paymentMethod.splits\n ? paymentMethod.splits.reduce(\n (acc, curr) =>\n curr.splitAmount === null ? curr.uuid : (paymentMethod.splits?.at(-1)?.uuid ?? acc),\n '',\n )\n : undefined,\n } as CombinedSchemaOutputs\n }, [baseDefaultValues, paymentMethod.type, paymentMethod.splitBy, paymentMethod.splits])\n\n const formMethods = useForm<CombinedSchemaInputs>({\n resolver: zodResolver(CombinedSchema),\n defaultValues: defaultValues as DefaultValues<CombinedSchemaInputs>,\n })\n\n const watchedType = formMethods.watch('type')\n\n const { reset: resetForm } = formMethods\n const { mutateAsync: mutatePaymentMethod } = paymentMethodMutation\n\n useEffect(() => {\n void (async () => {\n if (paymentMethod.splits?.length === 1 && paymentMethod.type === 'Direct Deposit') {\n await mutatePaymentMethod({\n request: {\n employeeId,\n requestBody: {\n splitBy: SPLIT_BY.percentage,\n splits: paymentMethod.splits.map(split => ({\n ...split,\n splitAmount: 100,\n priority: 1,\n })),\n version: paymentMethod.version as string,\n type: 'Direct Deposit',\n },\n },\n })\n }\n })()\n }, [employeeId, paymentMethod, queryClient, mutatePaymentMethod])\n\n useEffect(() => {\n resetForm(defaultValues)\n }, [bankAccounts.length, paymentMethod, defaultValues, resetForm])\n\n const onSubmit: SubmitHandler<CombinedSchemaInputs> = async data => {\n await baseSubmitHandler(data, async payload => {\n const { type } = payload\n if (\n type === 'Direct Deposit' &&\n payload.hasBankPayload &&\n (mode === 'ADD' || mode === 'INITIAL')\n ) {\n const bankAccountResponse = await addBankAccountMutation.mutateAsync({\n request: {\n employeeId,\n requestBody: {\n name: payload.name,\n routingNumber: payload.routingNumber,\n accountNumber: payload.accountNumber,\n accountType: payload.accountType,\n },\n },\n })\n\n onEvent(componentEvents.EMPLOYEE_BANK_ACCOUNT_CREATED, bankAccountResponse)\n } else {\n //Adding bank account updates payment method\n const body =\n type === PAYMENT_METHODS.check\n ? { version: paymentMethod.version as string }\n : {\n ...paymentMethod,\n version: paymentMethod.version as string,\n splitBy: payload.isSplit\n ? payload.splitBy\n : (paymentMethod.splitBy ?? SPLIT_BY.percentage),\n splits:\n payload.isSplit && paymentMethod.splits\n ? paymentMethod.splits.map(split => ({\n ...split,\n splitAmount: payload.splitAmount[split.uuid],\n priority: payload.priority[split.uuid],\n }))\n : (paymentMethod.splits ?? []),\n }\n const paymentMethodResponse = await paymentMethodMutation.mutateAsync({\n request: { employeeId, requestBody: { ...body, type } },\n })\n onEvent(componentEvents.EMPLOYEE_PAYMENT_METHOD_UPDATED, paymentMethodResponse)\n }\n //Cleanup after submission bank/split submission\n formMethods.setValue('isSplit', false)\n formMethods.setValue('hasBankPayload', false)\n //Notify that this component is ready to proceed\n if (mode === 'LIST' || type === PAYMENT_METHODS.check) {\n onEvent(componentEvents.EMPLOYEE_PAYMENT_METHOD_DONE)\n } else {\n setMode('LIST')\n }\n })\n }\n\n const handleDelete = async (uuid: string) => {\n const data = await deleteBankAccountMutation.mutateAsync({\n request: { employeeId, bankAccountUuid: uuid },\n })\n onEvent(componentEvents.EMPLOYEE_BANK_ACCOUNT_DELETED, data)\n }\n const handleAdd = () => {\n setMode('ADD')\n resetForm(defaultValues)\n }\n const handleCancel = () => {\n setMode('LIST')\n resetForm(defaultValues)\n }\n const handleSplit = () => {\n setMode('SPLIT')\n }\n\n return (\n <section className={className}>\n <PaymentMethodProvider\n value={{\n bankAccounts,\n isPending:\n deleteBankAccountMutation.isPending ||\n paymentMethodMutation.isPending ||\n addBankAccountMutation.isPending ||\n updateBankAccountMutation.isPending,\n watchedType,\n mode,\n paymentMethod,\n handleCancel,\n handleAdd,\n handleDelete,\n handleSplit,\n }}\n >\n <FormProvider {...formMethods}>\n <Form onSubmit={formMethods.handleSubmit(onSubmit)}>\n <Head />\n <PaymentTypeForm />\n <BankAccountsList />\n <BankAccountForm />\n <Split />\n <Actions />\n </Form>\n </FormProvider>\n </PaymentMethodProvider>\n </section>\n )\n}\n\nexport const PaymentMethodContextual = () => {\n const { employeeId, onEvent } = useFlow<OnboardingContextInterface>()\n const { t } = useTranslation('common')\n\n if (!employeeId) {\n throw new Error(\n t('errors.missingParamsOrContext', {\n component: 'PaymentMethod',\n param: 'employeeId',\n provider: 'FlowProvider',\n }),\n )\n }\n return <PaymentMethod employeeId={employeeId} onEvent={onEvent} />\n}\n"],"names":["PaymentMethod","props","jsx","BaseComponent","Root","employeeId","className","dictionary","useI18n","useComponentDictionary","baseSubmitHandler","onEvent","useBase","queryClient","useQueryClient","employeePaymentMethod","useEmployeePaymentMethodGetSuspense","paymentMethod","bankAccountsList","useEmployeePaymentMethodsGetBankAccountsSuspense","bankAccounts","paymentMethodMutation","useEmployeePaymentMethodUpdateMutation","deleteBankAccountMutation","useEmployeePaymentMethodDeleteBankAccountMutation","addBankAccountMutation","useEmployeePaymentMethodCreateMutation","updateBankAccountMutation","useEmployeePaymentMethodUpdateBankAccountMutation","mode","setMode","useState","baseDefaultValues","useMemo","defaultValues","acc","uuid","splitAmount","priority","curr","formMethods","useForm","zodResolver","CombinedSchema","watchedType","resetForm","mutatePaymentMethod","useEffect","SPLIT_BY","split","onSubmit","data","payload","type","bankAccountResponse","componentEvents","body","PAYMENT_METHODS","paymentMethodResponse","handleDelete","handleAdd","handleCancel","handleSplit","PaymentMethodProvider","FormProvider","jsxs","Form","Head","PaymentTypeForm","BankAccountsList","BankAccountForm","Split","Actions","PaymentMethodContextual","useFlow","t","useTranslation"],"mappings":"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"}