@shipengine/elements 0.9.15 → 0.10.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.
@@ -3,8 +3,13 @@ import * as SE from "@shipengine/types";
3
3
  import { UseShippingPresetsOptionsProps } from "@shipengine/elements-ui";
4
4
  import { UseRatesFormProps, UseShipmentFormProps } from "./hooks";
5
5
  export type ShipmentFormMode = "browse_rates" | "select_service";
6
+ export type Features = {
7
+ shipmentForm?: Templates.ShipmentFormFeatures;
8
+ rateForm?: Templates.RateFormFeatures;
9
+ };
6
10
  export type ConfigureShipmentProps = {
7
11
  errors?: Templates.ShipmentFormProps["errors"];
12
+ features?: Features;
8
13
  isLoading?: Templates.ShipmentFormProps["isLoading"];
9
14
  onAddressValidation?: UseShipmentFormProps["onAddressValidation"];
10
15
  onApplyPreset?: UseShipmentFormProps["onApplyPreset"];
@@ -23,4 +28,4 @@ export type ConfigureShipmentProps = {
23
28
  shippingPresets?: UseShippingPresetsOptionsProps;
24
29
  warehouseId?: string;
25
30
  };
26
- export declare const ConfigureShipment: ({ onAddressValidation, onApplyPreset, onBeforeLabelCreate, onChangeAddress, onLabelCreateFailure, onLabelCreateSuccess, onRateSaved, onRatesCalculated, onShipmentUpdated, printLabelLayout, salesOrder, shipment, ...props }: ConfigureShipmentProps) => import("@emotion/react/jsx-runtime").JSX.Element;
31
+ export declare const ConfigureShipment: ({ features, onAddressValidation, onApplyPreset, onBeforeLabelCreate, onChangeAddress, onLabelCreateFailure, onLabelCreateSuccess, onRateSaved, onRatesCalculated, onShipmentUpdated, printLabelLayout, salesOrder, shipment, ...props }: ConfigureShipmentProps) => import("@emotion/react/jsx-runtime").JSX.Element;
@@ -4,6 +4,6 @@ export type UseCustomsProps = {
4
4
  shipment?: SE.SalesOrderShipment;
5
5
  };
6
6
  export declare const useCustoms: ({ onUpdate, shipment }: UseCustomsProps) => {
7
- handleUpdateCustoms: (customs: SE.Customs) => Promise<void>;
7
+ handleUpdateCustoms: (customs: SE.Customs) => Promise<SE.SalesOrderShipment | undefined>;
8
8
  customsErrors: SE.CodedError[] | undefined;
9
9
  };
@@ -18,11 +18,11 @@ export declare const useShipmentForm: ({ onAddressValidation, onApplyPreset, onC
18
18
  errors: SE.CodedError[] | undefined;
19
19
  onApplyPreset: (preset: ShippingPreset) => Promise<void>;
20
20
  onChangeAddress: (shipTo: SE.Address, { shouldValidate }: import("dist/elements-ui/components/templates").OnChangeAddressOptions) => Promise<void>;
21
- onSubmit: (values: Partial<SE.SalesOrderShipment>) => Promise<void>;
21
+ onSubmit: (values: Partial<SE.SalesOrderShipment>) => Promise<SE.SalesOrderShipment | undefined>;
22
22
  onSubmitParseShipTo: ({ fullAddress }: {
23
23
  fullAddress: string;
24
24
  }) => Promise<SE.AddressParseResponse | undefined>;
25
- onUpdateCustoms: (customs: SE.Customs) => Promise<void>;
25
+ onUpdateCustoms: (customs: SE.Customs) => Promise<SE.SalesOrderShipment | undefined>;
26
26
  salesOrder: SE.SalesOrder;
27
27
  shipment: SE.SalesOrderShipment | undefined;
28
28
  warehouses: SE.Warehouse[] | undefined;
package/index.cjs CHANGED
@@ -19003,6 +19003,7 @@ const useCustoms = ({
19003
19003
  if (updatedShipment) {
19004
19004
  yield onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(updatedShipment);
19005
19005
  }
19006
+ return updatedShipment;
19006
19007
  }), [onUpdate, shipment, updateShipment]);
19007
19008
  return {
19008
19009
  handleUpdateCustoms,
@@ -19479,6 +19480,7 @@ const useShipmentForm = ({
19479
19480
  yield onShipmentUpdated === null || onShipmentUpdated === void 0 ? void 0 : onShipmentUpdated(updatedShipment);
19480
19481
  yield onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(updatedShipment);
19481
19482
  }
19483
+ return updatedShipment;
19482
19484
  }), [onShipmentUpdated, onSubmit, updateShipment]);
19483
19485
  const errors = [...(addressErrors !== null && addressErrors !== void 0 ? addressErrors : []), ...(customsErrors !== null && customsErrors !== void 0 ? customsErrors : []), ...(presetErrors !== null && presetErrors !== void 0 ? presetErrors : []), ...(updateShipmentErrors !== null && updateShipmentErrors !== void 0 ? updateShipmentErrors : [])];
19484
19486
  return {
@@ -19499,6 +19501,7 @@ const useShipmentForm = ({
19499
19501
 
19500
19502
  const ConfigureShipment = _a => {
19501
19503
  var {
19504
+ features,
19502
19505
  onAddressValidation,
19503
19506
  onApplyPreset,
19504
19507
  onBeforeLabelCreate,
@@ -19512,7 +19515,7 @@ const ConfigureShipment = _a => {
19512
19515
  salesOrder,
19513
19516
  shipment
19514
19517
  } = _a,
19515
- props = __rest(_a, ["onAddressValidation", "onApplyPreset", "onBeforeLabelCreate", "onChangeAddress", "onLabelCreateFailure", "onLabelCreateSuccess", "onRateSaved", "onRatesCalculated", "onShipmentUpdated", "printLabelLayout", "salesOrder", "shipment"]);
19518
+ props = __rest(_a, ["features", "onAddressValidation", "onApplyPreset", "onBeforeLabelCreate", "onChangeAddress", "onLabelCreateFailure", "onLabelCreateSuccess", "onRateSaved", "onRatesCalculated", "onShipmentUpdated", "printLabelLayout", "salesOrder", "shipment"]);
19516
19519
  const _b = useRatesForm({
19517
19520
  onBeforeLabelCreate,
19518
19521
  onLabelCreateFailure,
@@ -19543,10 +19546,23 @@ const ConfigureShipment = _a => {
19543
19546
  salesOrder,
19544
19547
  shipment
19545
19548
  });
19549
+ const [rateFormDisabled, setRateFormDisabled] = react.useState(false);
19550
+ const handleCharsetWarning = react.useCallback(charsetWarning => {
19551
+ if (charsetWarning === null || charsetWarning === void 0 ? void 0 : charsetWarning.error) {
19552
+ setRateFormDisabled(true);
19553
+ } else {
19554
+ setRateFormDisabled(false);
19555
+ }
19556
+ }, []);
19546
19557
  return jsxRuntime.jsxs(jsxRuntime.Fragment, {
19547
19558
  children: [jsxRuntime.jsx(elementsUi.Templates.ShipmentForm, Object.assign({}, shipmentFormProps, props, {
19548
- onDirty: resetRates
19549
- })), jsxRuntime.jsx(elementsUi.Templates.RateForm, Object.assign({}, rateFormProps))]
19559
+ onDirty: resetRates,
19560
+ onCharsetWarning: handleCharsetWarning,
19561
+ features: features === null || features === void 0 ? void 0 : features.shipmentForm
19562
+ })), jsxRuntime.jsx(elementsUi.Templates.RateForm, Object.assign({}, rateFormProps, {
19563
+ disabled: rateFormDisabled,
19564
+ features: features === null || features === void 0 ? void 0 : features.rateForm
19565
+ }))]
19550
19566
  });
19551
19567
  };
19552
19568
 
package/index.js CHANGED
@@ -18999,6 +18999,7 @@ const useCustoms = ({
18999
18999
  if (updatedShipment) {
19000
19000
  yield onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(updatedShipment);
19001
19001
  }
19002
+ return updatedShipment;
19002
19003
  }), [onUpdate, shipment, updateShipment]);
19003
19004
  return {
19004
19005
  handleUpdateCustoms,
@@ -19475,6 +19476,7 @@ const useShipmentForm = ({
19475
19476
  yield onShipmentUpdated === null || onShipmentUpdated === void 0 ? void 0 : onShipmentUpdated(updatedShipment);
19476
19477
  yield onSubmit === null || onSubmit === void 0 ? void 0 : onSubmit(updatedShipment);
19477
19478
  }
19479
+ return updatedShipment;
19478
19480
  }), [onShipmentUpdated, onSubmit, updateShipment]);
19479
19481
  const errors = [...(addressErrors !== null && addressErrors !== void 0 ? addressErrors : []), ...(customsErrors !== null && customsErrors !== void 0 ? customsErrors : []), ...(presetErrors !== null && presetErrors !== void 0 ? presetErrors : []), ...(updateShipmentErrors !== null && updateShipmentErrors !== void 0 ? updateShipmentErrors : [])];
19480
19482
  return {
@@ -19495,6 +19497,7 @@ const useShipmentForm = ({
19495
19497
 
19496
19498
  const ConfigureShipment = _a => {
19497
19499
  var {
19500
+ features,
19498
19501
  onAddressValidation,
19499
19502
  onApplyPreset,
19500
19503
  onBeforeLabelCreate,
@@ -19508,7 +19511,7 @@ const ConfigureShipment = _a => {
19508
19511
  salesOrder,
19509
19512
  shipment
19510
19513
  } = _a,
19511
- props = __rest(_a, ["onAddressValidation", "onApplyPreset", "onBeforeLabelCreate", "onChangeAddress", "onLabelCreateFailure", "onLabelCreateSuccess", "onRateSaved", "onRatesCalculated", "onShipmentUpdated", "printLabelLayout", "salesOrder", "shipment"]);
19514
+ props = __rest(_a, ["features", "onAddressValidation", "onApplyPreset", "onBeforeLabelCreate", "onChangeAddress", "onLabelCreateFailure", "onLabelCreateSuccess", "onRateSaved", "onRatesCalculated", "onShipmentUpdated", "printLabelLayout", "salesOrder", "shipment"]);
19512
19515
  const _b = useRatesForm({
19513
19516
  onBeforeLabelCreate,
19514
19517
  onLabelCreateFailure,
@@ -19539,10 +19542,23 @@ const ConfigureShipment = _a => {
19539
19542
  salesOrder,
19540
19543
  shipment
19541
19544
  });
19545
+ const [rateFormDisabled, setRateFormDisabled] = useState(false);
19546
+ const handleCharsetWarning = useCallback(charsetWarning => {
19547
+ if (charsetWarning === null || charsetWarning === void 0 ? void 0 : charsetWarning.error) {
19548
+ setRateFormDisabled(true);
19549
+ } else {
19550
+ setRateFormDisabled(false);
19551
+ }
19552
+ }, []);
19542
19553
  return jsxs(Fragment, {
19543
19554
  children: [jsx(Templates.ShipmentForm, Object.assign({}, shipmentFormProps, props, {
19544
- onDirty: resetRates
19545
- })), jsx(Templates.RateForm, Object.assign({}, rateFormProps))]
19555
+ onDirty: resetRates,
19556
+ onCharsetWarning: handleCharsetWarning,
19557
+ features: features === null || features === void 0 ? void 0 : features.shipmentForm
19558
+ })), jsx(Templates.RateForm, Object.assign({}, rateFormProps, {
19559
+ disabled: rateFormDisabled,
19560
+ features: features === null || features === void 0 ? void 0 : features.rateForm
19561
+ }))]
19546
19562
  });
19547
19563
  };
19548
19564
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shipengine/elements",
3
- "version": "0.9.15",
3
+ "version": "0.10.0",
4
4
  "peerDependencies": {
5
5
  "@packlink/giger": "*",
6
6
  "react-i18next": "*",
@@ -12,9 +12,9 @@
12
12
  "types": "./index.d.ts",
13
13
  "dependencies": {
14
14
  "react": "^18.2.0",
15
- "@shipengine/elements-core": "0.9.15",
16
- "@shipengine/elements-ui": "0.9.15",
17
- "@shipengine/types": "0.9.15",
15
+ "@shipengine/elements-core": "0.10.0",
16
+ "@shipengine/elements-ui": "0.10.0",
17
+ "@shipengine/types": "0.10.0",
18
18
  "@emotion/react": "^11.10.0",
19
19
  "@packlink/brands": "^3.18.0"
20
20
  }