@shipengine/elements 2.24.1 → 2.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +187 -6
- package/dist/cjs/components/field/credit-card-input/credit-card-input.cjs +46 -29
- package/dist/cjs/components/field/rate-select/rate-card/rate-card.cjs +29 -5
- package/dist/cjs/components/field/rate-select/rate-card/rate-card.styles.cjs +8 -3
- package/dist/cjs/components/field/rate-select/rate-select.cjs +26 -5
- package/dist/cjs/components/forms/address-form/address-form-schema.cjs +3 -3
- package/dist/cjs/components/forms/edit-billing-form/edit-billing-form.cjs +57 -4
- package/dist/cjs/components/service-card/service-card.cjs +4 -4
- package/dist/cjs/components/service-card/service-card.styles.cjs +5 -2
- package/dist/cjs/components/service-point-display/service-point-display.cjs +1 -36
- package/dist/cjs/components/service-point-display/service-point-display.styles.cjs +0 -12
- package/dist/cjs/components/shipment-not-found-error/index.cjs +7 -0
- package/dist/cjs/components/shipment-not-found-error/shipment-not-found-error.cjs +40 -0
- package/dist/cjs/components/shipment-not-found-error/shipment-not-found-error.styles.cjs +24 -0
- package/dist/cjs/components/suspend-purchase/suspend-purchase.cjs +11 -3
- package/dist/cjs/elements/purchase-label/components/rate-form/rate-form.cjs +13 -3
- package/dist/cjs/elements/purchase-label/components/rate-form/rate-schema.cjs +7 -2
- package/dist/cjs/elements/purchase-label/components/rate-form/rate-view.cjs +2 -0
- package/dist/cjs/elements/purchase-label/hooks/use-rate-options.cjs +31 -2
- package/dist/cjs/elements/purchase-label/hooks/use-rates-form.cjs +14 -18
- package/dist/cjs/elements/purchase-label/hooks/use-request-rates.cjs +20 -20
- package/dist/cjs/elements/purchase-label/purchase-label.cjs +4 -1
- package/dist/cjs/elements/shipment-summary/components/label-display/label-card.cjs +16 -31
- package/dist/cjs/elements/shipment-summary/components/label-display/label-card.styles.cjs +0 -19
- package/dist/cjs/elements/shipment-summary/components/label-display/paperless-label-display.cjs +54 -0
- package/dist/cjs/elements/shipment-summary/components/label-display/paperless-label-display.styles.cjs +27 -0
- package/dist/cjs/features/payment-method-settings/payment-method-settings.cjs +56 -18
- package/dist/cjs/hooks/use-configure-shipment.cjs +32 -11
- package/dist/cjs/hooks/use-helpers.cjs +4 -1
- package/dist/cjs/index.cjs +15 -12
- package/dist/cjs/locales/en/account-settings.json.cjs +6 -0
- package/dist/cjs/locales/en/common.json.cjs +2 -0
- package/dist/cjs/locales/en/purchase-label.json.cjs +5 -3
- package/dist/cjs/package.json.cjs +1 -1
- package/dist/cjs/utilities/address.cjs +29 -0
- package/dist/cjs/utilities/index.cjs +3 -0
- package/dist/cjs/utilities/money.cjs +14 -0
- package/dist/cjs/utilities/rate-warning-messages.cjs +25 -0
- package/dist/cjs/utilities/shipengine/warehouses.cjs +2 -1
- package/dist/cjs/workflows/connect-external-carrier/connect-external-carrier.cjs +7 -3
- package/dist/cjs/workflows/label-workflow/label-workflow.cjs +11 -3
- package/dist/cjs/workflows/onboarding/components/confirmation-and-submission-step/confirmation-and-submission-step.cjs +1 -1
- package/dist/cjs/workflows/onboarding/components/confirmation-and-submission-step/use-confirmation-and-submission-step.cjs +17 -1
- package/dist/cjs/workflows/onboarding/components/onboarding-wizard/onboarding-wizard.cjs +4 -1
- package/dist/cjs/workflows/onboarding/components/terms-agreement-form/terms-agreement-form.cjs +4 -1
- package/dist/cjs/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.cjs +14 -3
- package/dist/cjs/workflows/onboarding/components/terms-agreement-step/use-terms-agreement-step.cjs +12 -12
- package/dist/esm/components/field/credit-card-input/credit-card-input.js +47 -30
- package/dist/esm/components/field/rate-select/rate-card/rate-card.js +30 -6
- package/dist/esm/components/field/rate-select/rate-card/rate-card.styles.js +8 -3
- package/dist/esm/components/field/rate-select/rate-select.js +26 -5
- package/dist/esm/components/forms/address-form/address-form-schema.js +3 -3
- package/dist/esm/components/forms/edit-billing-form/edit-billing-form.js +58 -5
- package/dist/esm/components/service-card/service-card.js +4 -4
- package/dist/esm/components/service-card/service-card.styles.js +5 -2
- package/dist/esm/components/service-point-display/service-point-display.js +2 -37
- package/dist/esm/components/service-point-display/service-point-display.styles.js +0 -12
- package/dist/esm/components/shipment-not-found-error/index.js +1 -0
- package/dist/esm/components/shipment-not-found-error/shipment-not-found-error.js +38 -0
- package/dist/esm/components/shipment-not-found-error/shipment-not-found-error.styles.js +22 -0
- package/dist/esm/components/suspend-purchase/suspend-purchase.js +11 -3
- package/dist/esm/elements/purchase-label/components/rate-form/rate-form.js +14 -4
- package/dist/esm/elements/purchase-label/components/rate-form/rate-schema.js +7 -2
- package/dist/esm/elements/purchase-label/components/rate-form/rate-view.js +2 -0
- package/dist/esm/elements/purchase-label/hooks/use-rate-options.js +31 -2
- package/dist/esm/elements/purchase-label/hooks/use-rates-form.js +14 -18
- package/dist/esm/elements/purchase-label/hooks/use-request-rates.js +20 -20
- package/dist/esm/elements/purchase-label/purchase-label.js +4 -1
- package/dist/esm/elements/shipment-summary/components/label-display/label-card.js +18 -33
- package/dist/esm/elements/shipment-summary/components/label-display/label-card.styles.js +0 -19
- package/dist/esm/elements/shipment-summary/components/label-display/paperless-label-display.js +52 -0
- package/dist/esm/elements/shipment-summary/components/label-display/paperless-label-display.styles.js +25 -0
- package/dist/esm/features/payment-method-settings/payment-method-settings.js +57 -19
- package/dist/esm/hooks/use-configure-shipment.js +33 -12
- package/dist/esm/hooks/use-helpers.js +4 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/locales/en/account-settings.json.js +6 -0
- package/dist/esm/locales/en/common.json.js +2 -0
- package/dist/esm/locales/en/purchase-label.json.js +5 -3
- package/dist/esm/package.json.js +1 -1
- package/dist/esm/utilities/address.js +26 -0
- package/dist/esm/utilities/index.js +1 -0
- package/dist/esm/utilities/money.js +14 -1
- package/dist/esm/utilities/rate-warning-messages.js +23 -0
- package/dist/esm/utilities/shipengine/warehouses.js +2 -1
- package/dist/esm/workflows/connect-external-carrier/connect-external-carrier.js +7 -3
- package/dist/esm/workflows/label-workflow/label-workflow.js +11 -3
- package/dist/esm/workflows/onboarding/components/confirmation-and-submission-step/confirmation-and-submission-step.js +1 -1
- package/dist/esm/workflows/onboarding/components/confirmation-and-submission-step/use-confirmation-and-submission-step.js +17 -1
- package/dist/esm/workflows/onboarding/components/onboarding-wizard/onboarding-wizard.js +4 -1
- package/dist/esm/workflows/onboarding/components/terms-agreement-form/terms-agreement-form.js +4 -1
- package/dist/esm/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.js +14 -3
- package/dist/esm/workflows/onboarding/components/terms-agreement-step/use-terms-agreement-step.js +12 -12
- package/dist/types/components/field/credit-card-input/credit-card-input.d.ts.map +1 -1
- package/dist/types/components/field/rate-select/rate-card/rate-card.d.ts +4 -2
- package/dist/types/components/field/rate-select/rate-card/rate-card.d.ts.map +1 -1
- package/dist/types/components/field/rate-select/rate-card/rate-card.styles.d.ts +7 -2
- package/dist/types/components/field/rate-select/rate-card/rate-card.styles.d.ts.map +1 -1
- package/dist/types/components/field/rate-select/rate-select.d.ts +1 -0
- package/dist/types/components/field/rate-select/rate-select.d.ts.map +1 -1
- package/dist/types/components/forms/address-form/address-form-schema.d.ts.map +1 -1
- package/dist/types/components/forms/edit-billing-form/edit-billing-form.d.ts +2 -1
- package/dist/types/components/forms/edit-billing-form/edit-billing-form.d.ts.map +1 -1
- package/dist/types/components/service-card/service-card.d.ts +1 -1
- package/dist/types/components/service-card/service-card.d.ts.map +1 -1
- package/dist/types/components/service-card/service-card.styles.d.ts +4 -1
- package/dist/types/components/service-card/service-card.styles.d.ts.map +1 -1
- package/dist/types/components/service-point-display/service-point-display.d.ts.map +1 -1
- package/dist/types/components/service-point-display/service-point-display.styles.d.ts +0 -12
- package/dist/types/components/service-point-display/service-point-display.styles.d.ts.map +1 -1
- package/dist/types/components/shipment-not-found-error/index.d.ts +2 -0
- package/dist/types/components/shipment-not-found-error/index.d.ts.map +1 -0
- package/dist/types/components/shipment-not-found-error/shipment-not-found-error.d.ts +6 -0
- package/dist/types/components/shipment-not-found-error/shipment-not-found-error.d.ts.map +1 -0
- package/dist/types/components/shipment-not-found-error/shipment-not-found-error.styles.d.ts +19 -0
- package/dist/types/components/shipment-not-found-error/shipment-not-found-error.styles.d.ts.map +1 -0
- package/dist/types/components/suspend-purchase/suspend-purchase.d.ts +4 -2
- package/dist/types/components/suspend-purchase/suspend-purchase.d.ts.map +1 -1
- package/dist/types/elements/labels-grid/labels-grid.d.ts +11 -1
- package/dist/types/elements/labels-grid/labels-grid.d.ts.map +1 -1
- package/dist/types/elements/manage-carriers/manage-carriers.d.ts +11 -1
- package/dist/types/elements/manage-carriers/manage-carriers.d.ts.map +1 -1
- package/dist/types/elements/manage-external-carriers/manage-external-carriers.d.ts +11 -1
- package/dist/types/elements/manage-external-carriers/manage-external-carriers.d.ts.map +1 -1
- package/dist/types/elements/manage-funding/manage-funding-element.d.ts +11 -1
- package/dist/types/elements/manage-funding/manage-funding-element.d.ts.map +1 -1
- package/dist/types/elements/manage-warehouses/manage-warehouses.d.ts +11 -1
- package/dist/types/elements/manage-warehouses/manage-warehouses.d.ts.map +1 -1
- package/dist/types/elements/payment-method-settings/payment-method-settings-element.d.ts +11 -1
- package/dist/types/elements/payment-method-settings/payment-method-settings-element.d.ts.map +1 -1
- package/dist/types/elements/purchase-label/components/rate-form/rate-form.d.ts +1 -1
- package/dist/types/elements/purchase-label/components/rate-form/rate-form.d.ts.map +1 -1
- package/dist/types/elements/purchase-label/components/rate-form/rate-schema.d.ts +10 -1
- package/dist/types/elements/purchase-label/components/rate-form/rate-schema.d.ts.map +1 -1
- package/dist/types/elements/purchase-label/components/rate-form/rate-view.d.ts +2 -1
- package/dist/types/elements/purchase-label/components/rate-form/rate-view.d.ts.map +1 -1
- package/dist/types/elements/purchase-label/hooks/use-rate-options.d.ts.map +1 -1
- package/dist/types/elements/purchase-label/hooks/use-rates-form.d.ts +2 -2
- package/dist/types/elements/purchase-label/hooks/use-rates-form.d.ts.map +1 -1
- package/dist/types/elements/purchase-label/hooks/use-request-rates.d.ts.map +1 -1
- package/dist/types/elements/purchase-label/purchase-label.d.ts +11 -1
- package/dist/types/elements/purchase-label/purchase-label.d.ts.map +1 -1
- package/dist/types/elements/select-label-layout/select-label-layout-element.d.ts +11 -1
- package/dist/types/elements/select-label-layout/select-label-layout-element.d.ts.map +1 -1
- package/dist/types/elements/shipment-summary/components/label-display/label-card.d.ts.map +1 -1
- package/dist/types/elements/shipment-summary/components/label-display/label-card.styles.d.ts +0 -19
- package/dist/types/elements/shipment-summary/components/label-display/label-card.styles.d.ts.map +1 -1
- package/dist/types/elements/shipment-summary/components/label-display/paperless-label-display.d.ts +8 -0
- package/dist/types/elements/shipment-summary/components/label-display/paperless-label-display.d.ts.map +1 -0
- package/dist/types/elements/shipment-summary/components/label-display/paperless-label-display.styles.d.ts +22 -0
- package/dist/types/elements/shipment-summary/components/label-display/paperless-label-display.styles.d.ts.map +1 -0
- package/dist/types/elements/shipment-summary/shipment-summary.d.ts +11 -1
- package/dist/types/elements/shipment-summary/shipment-summary.d.ts.map +1 -1
- package/dist/types/elements/shipments-grid/hooks/use-shipments-grid.d.ts.map +1 -1
- package/dist/types/elements/shipments-grid/shipments-grid.d.ts +11 -1
- package/dist/types/elements/shipments-grid/shipments-grid.d.ts.map +1 -1
- package/dist/types/elements/theme-creator/theme-creator.d.ts +11 -1
- package/dist/types/elements/theme-creator/theme-creator.d.ts.map +1 -1
- package/dist/types/elements/transaction-history/transaction-history-element.d.ts +11 -1
- package/dist/types/elements/transaction-history/transaction-history-element.d.ts.map +1 -1
- package/dist/types/elements/unit-settings/unit-settings-element.d.ts +11 -1
- package/dist/types/elements/unit-settings/unit-settings-element.d.ts.map +1 -1
- package/dist/types/elements/vat-settings/vat-settings-element.d.ts +11 -1
- package/dist/types/elements/vat-settings/vat-settings-element.d.ts.map +1 -1
- package/dist/types/elements/void-label/void-label.d.ts +11 -1
- package/dist/types/elements/void-label/void-label.d.ts.map +1 -1
- package/dist/types/features/payment-method-settings/payment-method-settings.d.ts.map +1 -1
- package/dist/types/hooks/use-configure-shipment.d.ts +1 -0
- package/dist/types/hooks/use-configure-shipment.d.ts.map +1 -1
- package/dist/types/hooks/use-helpers.d.ts +2 -0
- package/dist/types/hooks/use-helpers.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/locales/en/index.d.ts +11 -1
- package/dist/types/locales/en/index.d.ts.map +1 -1
- package/dist/types/types/rates.d.ts +1 -0
- package/dist/types/types/rates.d.ts.map +1 -1
- package/dist/types/utilities/address.d.ts +21 -0
- package/dist/types/utilities/address.d.ts.map +1 -0
- package/dist/types/utilities/feature-flags/types.d.ts +1 -1
- package/dist/types/utilities/feature-flags/types.d.ts.map +1 -1
- package/dist/types/utilities/index.d.ts +1 -0
- package/dist/types/utilities/index.d.ts.map +1 -1
- package/dist/types/utilities/money.d.ts +6 -0
- package/dist/types/utilities/money.d.ts.map +1 -1
- package/dist/types/utilities/rate-warning-messages.d.ts +15 -0
- package/dist/types/utilities/rate-warning-messages.d.ts.map +1 -0
- package/dist/types/workflows/account-settings/account-settings.d.ts +11 -1
- package/dist/types/workflows/account-settings/account-settings.d.ts.map +1 -1
- package/dist/types/workflows/carrier-services/carrier-services.d.ts +11 -1
- package/dist/types/workflows/carrier-services/carrier-services.d.ts.map +1 -1
- package/dist/types/workflows/connect-external-carrier/connect-external-carrier.d.ts +11 -1
- package/dist/types/workflows/connect-external-carrier/connect-external-carrier.d.ts.map +1 -1
- package/dist/types/workflows/label-workflow/label-workflow.d.ts +11 -1
- package/dist/types/workflows/label-workflow/label-workflow.d.ts.map +1 -1
- package/dist/types/workflows/onboarding/components/confirmation-and-submission-step/use-confirmation-and-submission-step.d.ts.map +1 -1
- package/dist/types/workflows/onboarding/components/onboarding-wizard/onboarding-wizard.d.ts.map +1 -1
- package/dist/types/workflows/onboarding/components/terms-agreement-form/terms-agreement-form.d.ts +2 -1
- package/dist/types/workflows/onboarding/components/terms-agreement-form/terms-agreement-form.d.ts.map +1 -1
- package/dist/types/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.d.ts +3 -1
- package/dist/types/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.d.ts.map +1 -1
- package/dist/types/workflows/onboarding/components/terms-agreement-step/use-terms-agreement-step.d.ts +1 -0
- package/dist/types/workflows/onboarding/components/terms-agreement-step/use-terms-agreement-step.d.ts.map +1 -1
- package/dist/types/workflows/onboarding/onboarding.d.ts +11 -1
- package/dist/types/workflows/onboarding/onboarding.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -3,11 +3,14 @@
|
|
|
3
3
|
var _tslib = require('../../_virtual/_tslib.cjs');
|
|
4
4
|
var jsxRuntime = require('@emotion/react/jsx-runtime');
|
|
5
5
|
var useToggle = require('../../hooks/use-toggle.cjs');
|
|
6
|
+
var giger = require('@shipengine/giger');
|
|
6
7
|
var reactApi = require('@shipengine/react-api');
|
|
7
8
|
var React = require('react');
|
|
8
9
|
var reactI18next = require('react-i18next');
|
|
9
10
|
var editBillingForm = require('../../components/forms/edit-billing-form/edit-billing-form.cjs');
|
|
10
11
|
var walletCard = require('../../components/wallet-card/wallet-card.cjs');
|
|
12
|
+
var elementsContextProvider = require('../../elements-provider/elements-context-provider.cjs');
|
|
13
|
+
var spacer = require('../../components/spacer/spacer.cjs');
|
|
11
14
|
var loader = require('../../components/loader/loader.cjs');
|
|
12
15
|
var zeroState = require('../../components/zero-state/zero-state.cjs');
|
|
13
16
|
|
|
@@ -18,37 +21,72 @@ const PaymentMethodSettings = ({
|
|
|
18
21
|
const {
|
|
19
22
|
t
|
|
20
23
|
} = reactI18next.useTranslation();
|
|
24
|
+
const {
|
|
25
|
+
globalFeatures
|
|
26
|
+
} = elementsContextProvider.useElements();
|
|
27
|
+
const {
|
|
28
|
+
supportEmailAddress
|
|
29
|
+
} = globalFeatures;
|
|
21
30
|
const [showEditBilling, toggleShowEditBilling] = useToggle.useToggle(false);
|
|
22
31
|
const [isUpdatingBilling, setIsUpdatingBilling] = React.useState(false);
|
|
23
32
|
const {
|
|
24
|
-
|
|
33
|
+
error: updateBillingError,
|
|
34
|
+
mutateAsync: updateBilling,
|
|
35
|
+
reset: resetUpdateFundingSource
|
|
25
36
|
} = reactApi.useUpdateFundingSource();
|
|
26
37
|
const {
|
|
27
38
|
data: fundingSources,
|
|
28
39
|
refetch: refetchFundingSources,
|
|
29
40
|
isLoading: fundingSourceLoading
|
|
30
41
|
} = reactApi.useListFundingSources();
|
|
31
|
-
const
|
|
42
|
+
const {
|
|
43
|
+
fundingSourceId,
|
|
44
|
+
billingInfo
|
|
45
|
+
} = (_a = fundingSources === null || fundingSources === void 0 ? void 0 : fundingSources[0]) !== null && _a !== void 0 ? _a : {};
|
|
32
46
|
const handleUpdateBilling = (billingInfo, creditCardInfo) => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
33
47
|
if (fundingSourceId) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
48
|
+
try {
|
|
49
|
+
setIsUpdatingBilling(true);
|
|
50
|
+
yield updateBilling({
|
|
51
|
+
billingInfo,
|
|
52
|
+
creditCardInfo,
|
|
53
|
+
fundingSourceId
|
|
54
|
+
});
|
|
55
|
+
yield refetchFundingSources();
|
|
56
|
+
toggleShowEditBilling(false);
|
|
57
|
+
} catch (error) {
|
|
58
|
+
console.error("Error updating billing:", error);
|
|
59
|
+
// error is handled by the mutation
|
|
60
|
+
} finally {
|
|
61
|
+
setIsUpdatingBilling(false);
|
|
62
|
+
}
|
|
43
63
|
}
|
|
44
64
|
});
|
|
45
|
-
if (showEditBilling) return jsxRuntime.
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
65
|
+
if (showEditBilling) return jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
66
|
+
children: [jsxRuntime.jsx(editBillingForm.EditBillingForm, {
|
|
67
|
+
billingInfo: billingInfo,
|
|
68
|
+
isLoading: isUpdatingBilling,
|
|
69
|
+
onCancel: () => {
|
|
70
|
+
toggleShowEditBilling(false);
|
|
71
|
+
resetUpdateFundingSource();
|
|
72
|
+
},
|
|
73
|
+
onSubmit: (billingInfo, creditCardInfo) => {
|
|
74
|
+
void handleUpdateBilling(billingInfo, creditCardInfo);
|
|
75
|
+
}
|
|
76
|
+
}), (updateBillingError === null || updateBillingError === void 0 ? void 0 : updateBillingError.length) && jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
77
|
+
children: [jsxRuntime.jsx(spacer.Spacer, {
|
|
78
|
+
multiplier: 2
|
|
79
|
+
}), jsxRuntime.jsx(giger.InlineNotification, {
|
|
80
|
+
css: {
|
|
81
|
+
textAlign: "left"
|
|
82
|
+
},
|
|
83
|
+
title: t("account-settings:errors.paymentMethod.title"),
|
|
84
|
+
type: giger.NotificationType.ERROR,
|
|
85
|
+
children: t("account-settings:errors.paymentMethod.description", {
|
|
86
|
+
email: supportEmailAddress
|
|
87
|
+
})
|
|
88
|
+
})]
|
|
89
|
+
})]
|
|
52
90
|
});else {
|
|
53
91
|
if (fundingSourceLoading) return jsxRuntime.jsx(loader.Loader, {
|
|
54
92
|
message: t("loading.paymentMethod")
|
|
@@ -22,6 +22,8 @@ const useConfigureShipment = ({
|
|
|
22
22
|
warehouseId,
|
|
23
23
|
useWarehouses = true
|
|
24
24
|
}) => {
|
|
25
|
+
// Track when we've created a replacement shipment for a "not found" case
|
|
26
|
+
const [replacementShipmentId, setReplacementShipmentId] = React.useState();
|
|
25
27
|
// Queue of incomplete requirement keys (i.e., Ship From addresses, Warehouses, Carriers)
|
|
26
28
|
const incompleteRequirementsKeys = React.useMemo(() => [], []);
|
|
27
29
|
const {
|
|
@@ -77,7 +79,7 @@ const useConfigureShipment = ({
|
|
|
77
79
|
salesOrderIds: salesOrderId ? [salesOrderId] : salesOrder$1 ? [salesOrder$1.salesOrderId] :
|
|
78
80
|
// TODO: current workaround - revert to being undefined rather than empty list
|
|
79
81
|
[],
|
|
80
|
-
shipmentIds: shipmentId ? [shipmentId] : externalShipment ? [externalShipment.shipmentId] : newV1Shipment ? [newV1Shipment.shipments[0].shipmentId] : undefined
|
|
82
|
+
shipmentIds: replacementShipmentId ? [replacementShipmentId] : shipmentId ? [shipmentId] : externalShipment ? [externalShipment.shipmentId] : newV1Shipment ? [newV1Shipment.shipments[0].shipmentId] : undefined
|
|
81
83
|
});
|
|
82
84
|
const {
|
|
83
85
|
error: createSalesOrderShipmentErrors,
|
|
@@ -90,6 +92,19 @@ const useConfigureShipment = ({
|
|
|
90
92
|
const cancelledShipment = shipment.getShipmentByStatus("cancelled", salesOrderShipments);
|
|
91
93
|
const defaultWarehouse = warehouses.getDefaultWarehouse(warehouses$1);
|
|
92
94
|
const defaultShipFromAddress = address.getDefaultShipFromAddress(shipFromAddresses);
|
|
95
|
+
// Common function to create a V1 shipment
|
|
96
|
+
const createV1ShipmentWithDefaults = React.useCallback(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
97
|
+
const v1Shipment = yield createV1Shipment(Object.assign({}, (defaultShipFromAddress === null || defaultShipFromAddress === void 0 ? void 0 : defaultShipFromAddress.originAddress) ? {
|
|
98
|
+
shipFrom: defaultShipFromAddress.originAddress
|
|
99
|
+
} : {
|
|
100
|
+
warehouseId: warehouseId ? warehouseId : defaultWarehouse.warehouseId
|
|
101
|
+
}));
|
|
102
|
+
if (v1Shipment) {
|
|
103
|
+
yield refetchSalesOrderShipments();
|
|
104
|
+
return v1Shipment;
|
|
105
|
+
}
|
|
106
|
+
return null;
|
|
107
|
+
}), [createV1Shipment, defaultShipFromAddress, defaultWarehouse, warehouseId, refetchSalesOrderShipments]);
|
|
93
108
|
// Handles the creation of new shipments for the sales order flow and one-off flow
|
|
94
109
|
const handleShipmentCreation = React.useCallback(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
95
110
|
var _a, _b, _c;
|
|
@@ -139,16 +154,17 @@ const useConfigureShipment = ({
|
|
|
139
154
|
}
|
|
140
155
|
// Create a Shipment for one-off flow
|
|
141
156
|
if (!salesOrderId && !externalOrderId && !externalOrderNumber && !orderSourceCode && !shipmentId && !externalShipmentId) {
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
157
|
+
yield createV1ShipmentWithDefaults();
|
|
158
|
+
}
|
|
159
|
+
}), [createSalesOrderShipment, createV1ShipmentWithDefaults, creatingSalesOrderShipment, creatingV1Shipment, defaultShipFromAddress, defaultWarehouse, externalOrderId, externalOrderNumber, externalShipmentId, incompleteRequirementsKeys, isExternalShipmentFetching, isExternalShipmentInitialLoading, isFetchingWarehouses, isInitialLoadingWarehouses, labelPurchasedSalesOrderShipment, listSalesOrderShipmentsInitiallyLoading, listSalesOrderShipmentsIsFetching, orderSourceCode, pendingSalesOrderShipment, salesOrder$1, salesOrderId, salesOrderShipmentCreated, shipFromAddresses === null || shipFromAddresses === void 0 ? void 0 : shipFromAddresses.length, shipmentId, useWarehouses, v1shipmentCreated, warehouseId, warehouses$1]);
|
|
160
|
+
const createNewShipmentForNotFound = React.useCallback(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
161
|
+
// Force create a new shipment even if shipmentId exists (for shipment_not_found case)
|
|
162
|
+
const v1Shipment = yield createV1ShipmentWithDefaults();
|
|
163
|
+
if (v1Shipment) {
|
|
164
|
+
// Store the new shipment ID to override the stale one
|
|
165
|
+
setReplacementShipmentId(v1Shipment.shipments[0].shipmentId);
|
|
150
166
|
}
|
|
151
|
-
}), [
|
|
167
|
+
}), [createV1ShipmentWithDefaults]);
|
|
152
168
|
const refetchPendingSalesOrderShipments = React.useCallback(() => _tslib.__awaiter(void 0, void 0, void 0, function* () {
|
|
153
169
|
const {
|
|
154
170
|
data: shipments
|
|
@@ -180,13 +196,18 @@ const useConfigureShipment = ({
|
|
|
180
196
|
errorCode: "invalid_status",
|
|
181
197
|
errorSource: "elements",
|
|
182
198
|
errorType: "business_rules"
|
|
183
|
-
})] : []), ...(incompleteRequirementsKeys.length > 0 ? [new reactApi.CodedError(incompleteRequirementsKeys.length
|
|
199
|
+
})] : []), ...(incompleteRequirementsKeys.length > 0 ? [new reactApi.CodedError(incompleteRequirementsKeys.length === 1 ? "no_carriers_and_warehouses" : incompleteRequirementsKeys[0], {
|
|
184
200
|
errorCode: "unknown",
|
|
185
201
|
errorSource: "elements",
|
|
186
202
|
errorType: "business_rules"
|
|
203
|
+
})] : []), ...((salesOrderShipments === null || salesOrderShipments === void 0 ? void 0 : salesOrderShipments.length) === 0 && shipmentId ? [new reactApi.CodedError("shipment_not_found", {
|
|
204
|
+
errorCode: "invalid_status",
|
|
205
|
+
errorSource: "elements",
|
|
206
|
+
errorType: "business_rules"
|
|
187
207
|
})] : [])];
|
|
188
208
|
return {
|
|
189
209
|
carriers,
|
|
210
|
+
createNewShipmentForNotFound,
|
|
190
211
|
errors: errors.length > 0 ? errors : undefined,
|
|
191
212
|
isLoading: (isSalesOrderLoading || !(salesOrderShipments === null || salesOrderShipments === void 0 ? void 0 : salesOrderShipments.length) || creatingSalesOrderShipment) && errors.length === 0,
|
|
192
213
|
refetchPendingSalesOrderShipments,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var reactApi = require('@shipengine/react-api');
|
|
4
|
+
var address = require('../utilities/address.cjs');
|
|
4
5
|
var checks = require('../utilities/checks.cjs');
|
|
5
6
|
|
|
6
7
|
const useHelpers = () => {
|
|
@@ -17,7 +18,9 @@ const useHelpers = () => {
|
|
|
17
18
|
return {
|
|
18
19
|
helpersReady,
|
|
19
20
|
sellerOnboarded,
|
|
20
|
-
validateShipFromAddress: checks.validateShipFromAddress
|
|
21
|
+
validateShipFromAddress: checks.validateShipFromAddress,
|
|
22
|
+
getCountries: address.getCountries,
|
|
23
|
+
getUsStates: address.getUsStates
|
|
21
24
|
};
|
|
22
25
|
};
|
|
23
26
|
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -4,7 +4,8 @@ var reactApi = require('@shipengine/react-api');
|
|
|
4
4
|
var styles = require('./utilities/styles.cjs');
|
|
5
5
|
var featureFlags = require('./utilities/feature-flags/feature-flags.cjs');
|
|
6
6
|
var checks = require('./utilities/checks.cjs');
|
|
7
|
-
var address = require('./
|
|
7
|
+
var address = require('./utilities/address.cjs');
|
|
8
|
+
var address$1 = require('./constants/shipengine/address.cjs');
|
|
8
9
|
var manageCarriers = require('./elements/manage-carriers/manage-carriers.cjs');
|
|
9
10
|
var manageWarehouses = require('./elements/manage-warehouses/manage-warehouses.cjs');
|
|
10
11
|
var purchaseLabel = require('./elements/purchase-label/purchase-label.cjs');
|
|
@@ -46,17 +47,19 @@ exports.getDefaultFeatures = featureFlags.getDefaultFeatures;
|
|
|
46
47
|
exports.getSellerIdFromToken = checks.getSellerIdFromToken;
|
|
47
48
|
exports.isOnboarded = checks.isOnboarded;
|
|
48
49
|
exports.validateShipFromAddress = checks.validateShipFromAddress;
|
|
49
|
-
exports.
|
|
50
|
-
exports.
|
|
51
|
-
exports.
|
|
52
|
-
exports.
|
|
53
|
-
exports.
|
|
54
|
-
exports.
|
|
55
|
-
exports.
|
|
56
|
-
exports.
|
|
57
|
-
exports.
|
|
58
|
-
exports.
|
|
59
|
-
exports.
|
|
50
|
+
exports.getCountries = address.getCountries;
|
|
51
|
+
exports.getUsStates = address.getUsStates;
|
|
52
|
+
exports.Country = address$1.Country;
|
|
53
|
+
exports.UsState = address$1.UsState;
|
|
54
|
+
exports.UsaCity = address$1.UsaCity;
|
|
55
|
+
exports.addressNameRegex = address$1.addressNameRegex;
|
|
56
|
+
exports.countries = address$1.countries;
|
|
57
|
+
exports.countryCodes = address$1.countryCodes;
|
|
58
|
+
exports.euCountryCodes = address$1.euCountryCodes;
|
|
59
|
+
exports.postalCodeRegex = address$1.postalCodeRegex;
|
|
60
|
+
exports.usCities = address$1.usCities;
|
|
61
|
+
exports.usStateCodes = address$1.usStateCodes;
|
|
62
|
+
exports.usStates = address$1.usStates;
|
|
60
63
|
exports.ManageCarriers = manageCarriers;
|
|
61
64
|
exports.ManageWarehouses = manageWarehouses;
|
|
62
65
|
exports.PurchaseLabel = purchaseLabel;
|
|
@@ -26,6 +26,12 @@ var accoutSettings = {
|
|
|
26
26
|
labelLayout: "Shipping Label Layout",
|
|
27
27
|
unitSettings: "Units of Measure",
|
|
28
28
|
vatSettings: "Tax Settings"
|
|
29
|
+
},
|
|
30
|
+
errors: {
|
|
31
|
+
paymentMethod: {
|
|
32
|
+
title: "Error Updating Payment Method",
|
|
33
|
+
description: "There was an error updating your payment method. Ensure your payment information is correct and try again. If the problem persists, contact support at {{email}}."
|
|
34
|
+
}
|
|
29
35
|
}
|
|
30
36
|
}
|
|
31
37
|
};
|
|
@@ -165,10 +165,12 @@ var common = {
|
|
|
165
165
|
total: "Total"
|
|
166
166
|
},
|
|
167
167
|
errorMessages: {
|
|
168
|
+
fundingSourceCreationFailed: "Please check your payment and billing details, and confirm that your bank hasn’t blocked the payment method. If the issue persists, please contact support at {{email}}.",
|
|
168
169
|
contactSupport: "Your transaction may not have processed as expected. Please contact support at {{email}}.",
|
|
169
170
|
invalidNameOrCompany: "Recipient name and company name (if provided) must have two characters in first and last name.",
|
|
170
171
|
parsingFailure: "Parsing failed. Please check address and try again.",
|
|
171
172
|
incompleteLabelPurchaseRequirements: "Please add your {{requirements}} to continue purchasing a label.",
|
|
173
|
+
shipmentNotFound: "Cannot find shipment with ID: {{id}}.",
|
|
172
174
|
shipmentCancelled: "This shipment is Cancelled in ShipStation. Log into ShipStation to restore the order to Awaiting Shipment status.",
|
|
173
175
|
unableToLoad: {
|
|
174
176
|
accountSettings: "Unable to load account settings",
|
|
@@ -12,7 +12,8 @@ var purchaseLabel = {
|
|
|
12
12
|
showItems: "Show items",
|
|
13
13
|
showMoreRates: "Show more rates",
|
|
14
14
|
showFewerRates: "Show fewer rates",
|
|
15
|
-
saveRate: "Save Rate"
|
|
15
|
+
saveRate: "Save Rate",
|
|
16
|
+
createNewShipment: "Create New Shipment"
|
|
16
17
|
},
|
|
17
18
|
balance: {
|
|
18
19
|
currentBalance: "Available Funds:",
|
|
@@ -129,7 +130,6 @@ var purchaseLabel = {
|
|
|
129
130
|
otherLocations: "Other drop off points near you:",
|
|
130
131
|
noServicePointsForService: "There are no drop off locations for this service within 10km of your search area.",
|
|
131
132
|
error: "Unable to find drop off locations within 10km of your search area.",
|
|
132
|
-
paperless: "Print & Paperless",
|
|
133
133
|
localTimeDisclaimer: "Hours shown in local time"
|
|
134
134
|
},
|
|
135
135
|
shipToAddressFormFields: "Ship To Address Form Fields",
|
|
@@ -143,7 +143,9 @@ var purchaseLabel = {
|
|
|
143
143
|
},
|
|
144
144
|
warnings: {
|
|
145
145
|
parcelGuardShipDate: "ParcelGuard must be purchased within 48 hours of the ship date. Please update the ship date to continue."
|
|
146
|
-
}
|
|
146
|
+
},
|
|
147
|
+
paperlessAvailable: "Paperless available",
|
|
148
|
+
usePaperlessLabel: "Use Paperless Label (QR Code)"
|
|
147
149
|
}
|
|
148
150
|
};
|
|
149
151
|
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var address = require('../constants/shipengine/address.cjs');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Returns a simplified list of countries for use in dropdowns and forms.
|
|
7
|
+
*
|
|
8
|
+
* @returns Array of country objects with name and code properties
|
|
9
|
+
*/
|
|
10
|
+
const getCountries = () => {
|
|
11
|
+
return address.countries.map(country => ({
|
|
12
|
+
name: country.name,
|
|
13
|
+
code: country.code
|
|
14
|
+
}));
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Returns a simplified list of US states for use in dropdowns and forms.
|
|
18
|
+
*
|
|
19
|
+
* @returns Array of US state objects with name and code properties
|
|
20
|
+
*/
|
|
21
|
+
const getUsStates = () => {
|
|
22
|
+
return address.usStates.map(state => ({
|
|
23
|
+
name: state.name,
|
|
24
|
+
code: state.code
|
|
25
|
+
}));
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
exports.getCountries = getCountries;
|
|
29
|
+
exports.getUsStates = getUsStates;
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var styles = require('./styles.cjs');
|
|
4
4
|
var checks = require('./checks.cjs');
|
|
5
|
+
var address = require('./address.cjs');
|
|
5
6
|
var featureFlags = require('./feature-flags/feature-flags.cjs');
|
|
6
7
|
|
|
7
8
|
|
|
@@ -11,4 +12,6 @@ exports.scopeTheme = styles.scopeTheme;
|
|
|
11
12
|
exports.getSellerIdFromToken = checks.getSellerIdFromToken;
|
|
12
13
|
exports.isOnboarded = checks.isOnboarded;
|
|
13
14
|
exports.validateShipFromAddress = checks.validateShipFromAddress;
|
|
15
|
+
exports.getCountries = address.getCountries;
|
|
16
|
+
exports.getUsStates = address.getUsStates;
|
|
14
17
|
exports.getDefaultFeatures = featureFlags.getDefaultFeatures;
|
|
@@ -38,6 +38,19 @@ const calculateTotal = (...values) => {
|
|
|
38
38
|
return value ? total + ((_a = value.amount) !== null && _a !== void 0 ? _a : 0) : total;
|
|
39
39
|
}, 0);
|
|
40
40
|
};
|
|
41
|
+
/**
|
|
42
|
+
* @internal
|
|
43
|
+
*
|
|
44
|
+
* # Money Utils - maskCreditCardNumber
|
|
45
|
+
*/
|
|
46
|
+
const maskCreditCardNumber = cc => {
|
|
47
|
+
const sanitizedCC = cc.replace(/\s/g, "");
|
|
48
|
+
if (!sanitizedCC || sanitizedCC.length < 15 || sanitizedCC.length > 16) {
|
|
49
|
+
return cc;
|
|
50
|
+
}
|
|
51
|
+
const maskedCCNumber = "*".repeat(sanitizedCC.length - 4) + sanitizedCC.slice(-4);
|
|
52
|
+
return maskedCCNumber.replace(/(.{4})/g, "$1 ").trim();
|
|
53
|
+
};
|
|
41
54
|
/**
|
|
42
55
|
* @internal
|
|
43
56
|
*
|
|
@@ -103,3 +116,4 @@ exports.formatExpiration = formatExpiration;
|
|
|
103
116
|
exports.formatMoney = formatMoney;
|
|
104
117
|
exports.getCurrencyFromString = getCurrencyFromString;
|
|
105
118
|
exports.getCurrencySymbolFromString = getCurrencySymbolFromString;
|
|
119
|
+
exports.maskCreditCardNumber = maskCreditCardNumber;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var rateMessages = require('../data/rate-messages.json.cjs');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Builds warning messages for a rate by combining messages from different sources:
|
|
7
|
+
* 1. Messages for serviceCode:shipDay combination
|
|
8
|
+
* 2. Messages for serviceCode:packageType combination
|
|
9
|
+
* 3. Messages for serviceCode only
|
|
10
|
+
* 4. Existing warning messages from the rate
|
|
11
|
+
*/
|
|
12
|
+
const buildRateWarningMessages = ({
|
|
13
|
+
serviceCode,
|
|
14
|
+
packageType,
|
|
15
|
+
shipDay,
|
|
16
|
+
existingWarningMessages = []
|
|
17
|
+
}) => {
|
|
18
|
+
const keys = [shipDay && `${serviceCode}:${shipDay}`, packageType && `${serviceCode}:${packageType}`, serviceCode].filter(Boolean);
|
|
19
|
+
return [...keys.flatMap(key => {
|
|
20
|
+
var _a;
|
|
21
|
+
return (_a = rateMessages.default[key]) !== null && _a !== void 0 ? _a : [];
|
|
22
|
+
}), ...existingWarningMessages];
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
exports.buildRateWarningMessages = buildRateWarningMessages;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
const getDefaultWarehouse = warehouses => {
|
|
4
|
-
|
|
4
|
+
var _a;
|
|
5
|
+
return (_a = warehouses === null || warehouses === void 0 ? void 0 : warehouses.find(w => w.isDefault)) !== null && _a !== void 0 ? _a : warehouses === null || warehouses === void 0 ? void 0 : warehouses[0];
|
|
5
6
|
};
|
|
6
7
|
const getWarehouseById = (warehouseId, warehouses) => {
|
|
7
8
|
return warehouses === null || warehouses === void 0 ? void 0 : warehouses.find(w => w.warehouseId === warehouseId);
|
|
@@ -85,7 +85,7 @@ const Component = ({
|
|
|
85
85
|
refetch: refetchSchema
|
|
86
86
|
} = reactApi.useGetCarrierConnectionForm({
|
|
87
87
|
carrierName: selectedCarrier !== null && selectedCarrier !== void 0 ? selectedCarrier : "apicode-dummy-carrier",
|
|
88
|
-
enabled:
|
|
88
|
+
enabled: !!selectedCarrier
|
|
89
89
|
});
|
|
90
90
|
React.useEffect(() => {
|
|
91
91
|
if (selectedCarrier && needsRefetch) {
|
|
@@ -152,7 +152,9 @@ const Component = ({
|
|
|
152
152
|
const updatedSchema = Object.assign({}, schema);
|
|
153
153
|
// camelize required fields, as casing varies between carriers
|
|
154
154
|
if (updatedSchema.required && Array.isArray(updatedSchema.required)) {
|
|
155
|
-
updatedSchema.required = updatedSchema.required.map(
|
|
155
|
+
updatedSchema.required = updatedSchema.required.map(item => {
|
|
156
|
+
return typeof item === "string" ? humps__namespace.camelize(item) : item;
|
|
157
|
+
});
|
|
156
158
|
}
|
|
157
159
|
// camelize property keys
|
|
158
160
|
// fail safe to ensure schema properties and required array match in the event the camelizeKeys from shipengine/js-api isn't consistent
|
|
@@ -174,7 +176,9 @@ const Component = ({
|
|
|
174
176
|
const updatedUiSchema = Object.assign({}, uiSchemaClone);
|
|
175
177
|
// add nickname to ui:order and camelize the values to ensure consistency with jsonSchema properties and required array
|
|
176
178
|
if (!hasNicknameProperty && updatedUiSchema["ui:order"]) {
|
|
177
|
-
|
|
179
|
+
// ui:order is typically an array of strings, but apparently can also be an array of arrays of strings, so we need to recursively camelize the items
|
|
180
|
+
const camelizeUIOrderItem = item => typeof item === "string" ? humps__namespace.camelize(item) : item.map(i => humps__namespace.camelize(i));
|
|
181
|
+
updatedUiSchema["ui:order"] = [...updatedUiSchema["ui:order"], "nickname"].map(camelizeUIOrderItem);
|
|
178
182
|
}
|
|
179
183
|
return updatedUiSchema;
|
|
180
184
|
}, [uiSchema, hasNicknameProperty]);
|
|
@@ -46,6 +46,7 @@ const Component = _a => {
|
|
|
46
46
|
data: accountSettings
|
|
47
47
|
} = reactApi.useGetAccountSettings();
|
|
48
48
|
const {
|
|
49
|
+
createNewShipmentForNotFound,
|
|
49
50
|
shipment: shipment$1,
|
|
50
51
|
salesOrder,
|
|
51
52
|
isLoading: isConfiguringShipment,
|
|
@@ -59,19 +60,24 @@ const Component = _a => {
|
|
|
59
60
|
useWarehouses: (_b = propFeatures === null || propFeatures === void 0 ? void 0 : propFeatures.shipmentForm) === null || _b === void 0 ? void 0 : _b.useWarehouses,
|
|
60
61
|
warehouseId
|
|
61
62
|
}));
|
|
63
|
+
// Track if we have a shipment_not_found error to avoid reusing the bad shipment ID
|
|
64
|
+
const hasShipmentNotFoundError = configureShipmentErrors === null || configureShipmentErrors === void 0 ? void 0 : configureShipmentErrors.some(error => error.message === "shipment_not_found");
|
|
65
|
+
const shipmentId = _multiplexedId && "shipmentId" in _multiplexedId ? _multiplexedId.shipmentId : undefined;
|
|
62
66
|
const {
|
|
63
67
|
data: insuranceAccount,
|
|
64
68
|
isInitialLoading: insuranceIsLoading
|
|
65
69
|
} = reactApi.useGetInsuranceAccount((shipment$1 === null || shipment$1 === void 0 ? void 0 : shipment$1.insuranceProvider) === reactApi.SE.InsuranceProviderType.SHIPSURANCE ? reactApi.SE.InsuranceProviderType.SHIPSURANCE : undefined);
|
|
66
70
|
const {
|
|
67
71
|
data: labelsResponse,
|
|
68
|
-
|
|
72
|
+
isFetching: isLabelsLoading,
|
|
69
73
|
error: listLabelsErrors,
|
|
70
74
|
refetch: refetchLabels
|
|
71
75
|
} = reactApi.useListLabels({
|
|
72
|
-
enabled:
|
|
76
|
+
enabled:
|
|
77
|
+
// Don't enable if we have a shipment_not_found error (avoid reusing bad ID)
|
|
78
|
+
hasShipmentNotFoundError ? false : _multiplexedId && "shipmentId" in _multiplexedId ? true : !!(shipment$1 === null || shipment$1 === void 0 ? void 0 : shipment$1.shipmentId),
|
|
73
79
|
queryFnParams: {
|
|
74
|
-
shipmentId:
|
|
80
|
+
shipmentId: (shipment$1 === null || shipment$1 === void 0 ? void 0 : shipment$1.shipmentId) || (!hasShipmentNotFoundError ? shipmentId : undefined)
|
|
75
81
|
}
|
|
76
82
|
});
|
|
77
83
|
/**
|
|
@@ -175,6 +181,8 @@ const Component = _a => {
|
|
|
175
181
|
data: shipment$1 || salesOrder,
|
|
176
182
|
errors: errors.length ? errors : undefined,
|
|
177
183
|
isLoading: isLabelsLoading || isConfiguringShipment || insuranceIsLoading,
|
|
184
|
+
onCreateNewShipment: createNewShipmentForNotFound,
|
|
185
|
+
shipmentId: shipmentId,
|
|
178
186
|
children: element && getElement(element)
|
|
179
187
|
});
|
|
180
188
|
};
|
|
@@ -73,7 +73,7 @@ const ConfirmationAndSubmissionStep = ({
|
|
|
73
73
|
}),
|
|
74
74
|
children: [jsxRuntime.jsx(ccProviderLogo.CcProviderLogo, {
|
|
75
75
|
provider: provider,
|
|
76
|
-
width:
|
|
76
|
+
width: 56
|
|
77
77
|
}), jsxRuntime.jsx(giger.Typography, {
|
|
78
78
|
variant: "body2",
|
|
79
79
|
children: `**** **** **** ${last4 !== null && last4 !== void 0 ? last4 : "****"}`
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var _tslib = require('../../../../_virtual/_tslib.cjs');
|
|
4
|
+
var useScrubErrors = require('../../../../hooks/use-scrub-errors.cjs');
|
|
4
5
|
var reactApi = require('@shipengine/react-api');
|
|
5
6
|
var checks = require('../../../../utilities/checks.cjs');
|
|
6
7
|
var warehouses = require('../../../../utilities/shipengine/warehouses.cjs');
|
|
7
8
|
var React = require('react');
|
|
9
|
+
var reactI18next = require('react-i18next');
|
|
8
10
|
var useManageWarehouses = require('../../../../features/manage-warehouses/use-manage-warehouses.cjs');
|
|
9
11
|
var elementsContextProvider = require('../../../../elements-provider/elements-context-provider.cjs');
|
|
10
12
|
|
|
@@ -15,6 +17,9 @@ const useConfirmationAndSubmissionStep = ({
|
|
|
15
17
|
globalFeatures,
|
|
16
18
|
getToken
|
|
17
19
|
} = elementsContextProvider.useElements();
|
|
20
|
+
const {
|
|
21
|
+
t
|
|
22
|
+
} = reactI18next.useTranslation();
|
|
18
23
|
const [isSubmittingOnboarding, setIsSubmittingOnboarding] = React.useState(false);
|
|
19
24
|
const {
|
|
20
25
|
createWarehouse,
|
|
@@ -35,6 +40,15 @@ const useConfirmationAndSubmissionStep = ({
|
|
|
35
40
|
mutateAsync: createFundingSource,
|
|
36
41
|
reset: resetCreateFundingSource
|
|
37
42
|
} = reactApi.useCreateFundingSource();
|
|
43
|
+
const displayableCreateFundingSourceErrors = useScrubErrors.useScrubErrors({
|
|
44
|
+
errors: createFundingSourceErrors !== null && createFundingSourceErrors !== void 0 ? createFundingSourceErrors : undefined,
|
|
45
|
+
predicate: React.useCallback(e => e.message.includes("An unexpected error occurred."), []),
|
|
46
|
+
scrubber: React.useCallback(() => {
|
|
47
|
+
return `${t("common:errorMessages.fundingSourceCreationFailed", {
|
|
48
|
+
email: globalFeatures.supportEmailAddress
|
|
49
|
+
})} `;
|
|
50
|
+
}, [globalFeatures.supportEmailAddress, t])
|
|
51
|
+
});
|
|
38
52
|
const {
|
|
39
53
|
error: updatePaymentMethodErrors,
|
|
40
54
|
isLoading: isUpdatingPaymentMethod,
|
|
@@ -296,7 +310,9 @@ const useConfirmationAndSubmissionStep = ({
|
|
|
296
310
|
setIsSubmittingOnboarding(false);
|
|
297
311
|
}), [onboardSeller, updateExistingFundingSource, onStepComplete, createFundingSourceErrors, registerCarrierErrors, updatePaymentMethodErrors, updateWarehouseErrors]);
|
|
298
312
|
return {
|
|
299
|
-
createFundingSourceErrors
|
|
313
|
+
createFundingSourceErrors: displayableCreateFundingSourceErrors === null || displayableCreateFundingSourceErrors === void 0 ? void 0 : displayableCreateFundingSourceErrors.map(message => ({
|
|
314
|
+
message
|
|
315
|
+
})),
|
|
300
316
|
createOnboardingSubmissionHandler,
|
|
301
317
|
isLoading: {
|
|
302
318
|
connectingCarriers: isRegisteringCarriers,
|
|
@@ -61,6 +61,7 @@ const OnboardingWizard = ({
|
|
|
61
61
|
isLoadingTermsAgreementStep,
|
|
62
62
|
fundingSourceRequiredTerms,
|
|
63
63
|
fundingSourceMetadata,
|
|
64
|
+
hasFreeStampsConnected,
|
|
64
65
|
handleSubmitTermsAgreement,
|
|
65
66
|
refetchCarriers,
|
|
66
67
|
refetchFundingSources,
|
|
@@ -167,8 +168,10 @@ const OnboardingWizard = ({
|
|
|
167
168
|
return jsxRuntime.jsx(termsAgreementStep.TermsAgreementStep, {
|
|
168
169
|
carrierProfilesToRegister: carrierProfilesToRegister,
|
|
169
170
|
enabledCarrierProfiles: enabledCarrierProfiles,
|
|
171
|
+
fundingSourceRequiredTerms: fundingSourceRequiredTerms,
|
|
170
172
|
insuranceProviderProfiles: insuranceProviderProfiles,
|
|
171
|
-
onSubmit: handleSubmitTermsAgreement
|
|
173
|
+
onSubmit: handleSubmitTermsAgreement,
|
|
174
|
+
showStampsLogo: hasFreeStampsConnected
|
|
172
175
|
});
|
|
173
176
|
},
|
|
174
177
|
label: t("onboarding:stepLabel.termsAgreement")
|
package/dist/cjs/workflows/onboarding/components/terms-agreement-form/terms-agreement-form.cjs
CHANGED
|
@@ -20,6 +20,7 @@ var submitButton = require('../../../../components/field/submit-button/submit-bu
|
|
|
20
20
|
const TermsAgreementForm = ({
|
|
21
21
|
carrierTerms,
|
|
22
22
|
hideTerms,
|
|
23
|
+
requiredTerms = [],
|
|
23
24
|
insuranceProviderTerms,
|
|
24
25
|
isSubmitDisabled,
|
|
25
26
|
onSubmit
|
|
@@ -98,7 +99,9 @@ const TermsAgreementForm = ({
|
|
|
98
99
|
title: t("onboarding:termsAndAgreementLinkText.auctanePrivacyPolicy")
|
|
99
100
|
}]
|
|
100
101
|
}
|
|
101
|
-
}),
|
|
102
|
+
}), requiredTerms.map(term => jsxRuntime.jsx(displayTerm.DisplayTerm, {
|
|
103
|
+
term: term
|
|
104
|
+
}, term.termType)), !!carrierTerms.length && jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
102
105
|
children: [jsxRuntime.jsx(spacer.Spacer, {}), jsxRuntime.jsx(giger.Typography, {
|
|
103
106
|
bold: true,
|
|
104
107
|
variant: "body1",
|
package/dist/cjs/workflows/onboarding/components/terms-agreement-step/terms-agreement-step.cjs
CHANGED
|
@@ -16,7 +16,9 @@ const TermsAgreementStep = ({
|
|
|
16
16
|
carrierProfilesToRegister,
|
|
17
17
|
insuranceProviderProfiles,
|
|
18
18
|
onSubmit,
|
|
19
|
-
enabledCarrierProfiles
|
|
19
|
+
enabledCarrierProfiles,
|
|
20
|
+
fundingSourceRequiredTerms,
|
|
21
|
+
showStampsLogo = false
|
|
20
22
|
}) => {
|
|
21
23
|
var _a, _b, _c, _d, _e;
|
|
22
24
|
const {
|
|
@@ -49,8 +51,16 @@ const TermsAgreementStep = ({
|
|
|
49
51
|
});
|
|
50
52
|
}
|
|
51
53
|
const renderCarrierLogos = () => {
|
|
54
|
+
var _a;
|
|
52
55
|
if (!carrierProfilesToRegister.length) return null;
|
|
53
|
-
|
|
56
|
+
const stampsCarrierProfile = {
|
|
57
|
+
carrierCode: "stamps_com",
|
|
58
|
+
carrierName: (_a = carrierFriendlyNames["stamps_com"]) === null || _a === void 0 ? void 0 : _a.name
|
|
59
|
+
};
|
|
60
|
+
// kind of a goofy way to just display stamps/usps logo without sending it in the payload to register
|
|
61
|
+
// we don't want to register stamps as a carrier if it's not being used as the primary payment method
|
|
62
|
+
const carriersToDisplay = showStampsLogo ? [stampsCarrierProfile, ...carrierProfilesToRegister] : carrierProfilesToRegister;
|
|
63
|
+
return carriersToDisplay.map(p => {
|
|
54
64
|
var _a;
|
|
55
65
|
return jsxRuntime.jsx(carrierLogo.CarrierLogo, {
|
|
56
66
|
carrierCode: p.carrierCode,
|
|
@@ -101,7 +111,8 @@ const TermsAgreementStep = ({
|
|
|
101
111
|
carrierTerms: carrierTerms,
|
|
102
112
|
hideTerms: hideTerms,
|
|
103
113
|
insuranceProviderTerms: insuranceProviderTerms,
|
|
104
|
-
onSubmit: onSubmit
|
|
114
|
+
onSubmit: onSubmit,
|
|
115
|
+
requiredTerms: fundingSourceRequiredTerms
|
|
105
116
|
})
|
|
106
117
|
})]
|
|
107
118
|
});
|