@shipengine/elements 0.6.47 → 0.7.1

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.
@@ -2,7 +2,8 @@
2
2
  import * as SE from "@shipengine/types";
3
3
  export declare type VoidLabelProps = {
4
4
  labelId?: string;
5
- onViewShipment: (shipment: SE.SalesOrderShipment) => void;
6
5
  onComplete: (request: SE.VoidRequest, shipment: SE.SalesOrderShipment) => void;
6
+ onSuccess?: (label: SE.Label, shipment: SE.SalesOrderShipment) => void;
7
+ onViewShipment: (shipment: SE.SalesOrderShipment) => void;
7
8
  };
8
- export declare const VoidLabel: ({ labelId, onViewShipment, onComplete }: VoidLabelProps) => JSX.Element;
9
+ export declare const VoidLabel: ({ labelId, onComplete, onSuccess, onViewShipment }: VoidLabelProps) => JSX.Element;
package/index.cjs CHANGED
@@ -3003,11 +3003,24 @@ const RateForm = ({
3003
3003
  const updateShipment = elementsCore.useUpdateShipment({
3004
3004
  shipmentId: shipment === null || shipment === void 0 ? void 0 : shipment.shipmentId
3005
3005
  });
3006
+ const [beforeCreateError, setBeforeCreateError] = react.useState(null);
3006
3007
  const handleSubmit = react.useCallback(rateId => __awaiter(void 0, void 0, void 0, function* () {
3008
+ setBeforeCreateError(null);
3007
3009
  const rate = rates === null || rates === void 0 ? void 0 : rates.find(r => r.rateId === rateId);
3008
3010
 
3009
3011
  if (rate) {
3010
- yield onBeforeLabelCreate === null || onBeforeLabelCreate === void 0 ? void 0 : onBeforeLabelCreate(rate, shipment);
3012
+ try {
3013
+ yield onBeforeLabelCreate === null || onBeforeLabelCreate === void 0 ? void 0 : onBeforeLabelCreate(rate, shipment);
3014
+ } catch (e) {
3015
+ setBeforeCreateError({
3016
+ errorSource: "client",
3017
+ errorType: "unknown",
3018
+ errorCode: "unknown",
3019
+ message: e.message
3020
+ });
3021
+ return;
3022
+ }
3023
+
3011
3024
  const label = yield createLabel.trigger({
3012
3025
  rateId
3013
3026
  });
@@ -3036,7 +3049,7 @@ const RateForm = ({
3036
3049
  const carriers = elementsCore.useListCarriers();
3037
3050
  return jsxRuntime.jsx(elementsUi.Templates.RateForm, {
3038
3051
  carriers: carriers.data,
3039
- errors: [...(errors !== null && errors !== void 0 ? errors : []), ...((_a = createLabel.errors) !== null && _a !== void 0 ? _a : [])],
3052
+ errors: [...(errors !== null && errors !== void 0 ? errors : []), ...((_a = createLabel.errors) !== null && _a !== void 0 ? _a : []), ...(beforeCreateError ? [beforeCreateError] : [])],
3040
3053
  loading: _loading,
3041
3054
  onSave: handleSave,
3042
3055
  onSubmit: handleSubmit,
@@ -20673,10 +20686,11 @@ const Shipment = ({
20673
20686
 
20674
20687
  const VoidLabel = ({
20675
20688
  labelId,
20676
- onViewShipment,
20677
- onComplete
20689
+ onComplete,
20690
+ onSuccess,
20691
+ onViewShipment
20678
20692
  }) => {
20679
- var _a, _b, _c;
20693
+ var _a;
20680
20694
 
20681
20695
  const label = elementsCore.useGetLabel({
20682
20696
  labelId
@@ -20684,24 +20698,25 @@ const VoidLabel = ({
20684
20698
  const shipment = elementsCore.useGetShipment({
20685
20699
  shipmentId: (_a = label.data) === null || _a === void 0 ? void 0 : _a.shipmentId
20686
20700
  });
20687
- const salesOrders = elementsCore.useListSalesOrders({
20688
- salesOrderIds: (_b = shipment.data) === null || _b === void 0 ? void 0 : _b.salesOrderIds
20689
- });
20690
20701
  const voidLabel = elementsCore.useVoidLabel({
20691
20702
  labelId
20692
20703
  });
20693
20704
 
20694
20705
  const handleVoidLabelSubmit = () => __awaiter(void 0, void 0, void 0, function* () {
20695
- yield voidLabel.trigger(label.data);
20706
+ const result = yield voidLabel.trigger(label.data); // We should always have label.data and shipment.data if the request was approved,
20707
+ // but we aren't using Suspense so we still need to check.
20708
+
20709
+ if ((result === null || result === void 0 ? void 0 : result.approved) && label.data && shipment.data) {
20710
+ onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(label.data, shipment.data);
20711
+ }
20696
20712
  });
20697
20713
 
20698
20714
  return jsxRuntime.jsx(elementsUi.Templates.VoidLabel, {
20699
- salesOrder: (_c = salesOrders.data) === null || _c === void 0 ? void 0 : _c[0],
20700
- shipment: shipment.data,
20701
20715
  onComplete: onComplete,
20702
20716
  onSubmit: handleVoidLabelSubmit,
20703
20717
  onViewShipment: onViewShipment,
20704
- voidLabel: voidLabel.data
20718
+ shipment: shipment.data,
20719
+ voidRequest: voidLabel.data
20705
20720
  });
20706
20721
  };
20707
20722
 
package/index.js CHANGED
@@ -2999,11 +2999,24 @@ const RateForm = ({
2999
2999
  const updateShipment = useUpdateShipment({
3000
3000
  shipmentId: shipment === null || shipment === void 0 ? void 0 : shipment.shipmentId
3001
3001
  });
3002
+ const [beforeCreateError, setBeforeCreateError] = useState(null);
3002
3003
  const handleSubmit = useCallback(rateId => __awaiter(void 0, void 0, void 0, function* () {
3004
+ setBeforeCreateError(null);
3003
3005
  const rate = rates === null || rates === void 0 ? void 0 : rates.find(r => r.rateId === rateId);
3004
3006
 
3005
3007
  if (rate) {
3006
- yield onBeforeLabelCreate === null || onBeforeLabelCreate === void 0 ? void 0 : onBeforeLabelCreate(rate, shipment);
3008
+ try {
3009
+ yield onBeforeLabelCreate === null || onBeforeLabelCreate === void 0 ? void 0 : onBeforeLabelCreate(rate, shipment);
3010
+ } catch (e) {
3011
+ setBeforeCreateError({
3012
+ errorSource: "client",
3013
+ errorType: "unknown",
3014
+ errorCode: "unknown",
3015
+ message: e.message
3016
+ });
3017
+ return;
3018
+ }
3019
+
3007
3020
  const label = yield createLabel.trigger({
3008
3021
  rateId
3009
3022
  });
@@ -3032,7 +3045,7 @@ const RateForm = ({
3032
3045
  const carriers = useListCarriers();
3033
3046
  return jsx(Templates.RateForm, {
3034
3047
  carriers: carriers.data,
3035
- errors: [...(errors !== null && errors !== void 0 ? errors : []), ...((_a = createLabel.errors) !== null && _a !== void 0 ? _a : [])],
3048
+ errors: [...(errors !== null && errors !== void 0 ? errors : []), ...((_a = createLabel.errors) !== null && _a !== void 0 ? _a : []), ...(beforeCreateError ? [beforeCreateError] : [])],
3036
3049
  loading: _loading,
3037
3050
  onSave: handleSave,
3038
3051
  onSubmit: handleSubmit,
@@ -20669,10 +20682,11 @@ const Shipment = ({
20669
20682
 
20670
20683
  const VoidLabel = ({
20671
20684
  labelId,
20672
- onViewShipment,
20673
- onComplete
20685
+ onComplete,
20686
+ onSuccess,
20687
+ onViewShipment
20674
20688
  }) => {
20675
- var _a, _b, _c;
20689
+ var _a;
20676
20690
 
20677
20691
  const label = useGetLabel({
20678
20692
  labelId
@@ -20680,24 +20694,25 @@ const VoidLabel = ({
20680
20694
  const shipment = useGetShipment({
20681
20695
  shipmentId: (_a = label.data) === null || _a === void 0 ? void 0 : _a.shipmentId
20682
20696
  });
20683
- const salesOrders = useListSalesOrders({
20684
- salesOrderIds: (_b = shipment.data) === null || _b === void 0 ? void 0 : _b.salesOrderIds
20685
- });
20686
20697
  const voidLabel = useVoidLabel({
20687
20698
  labelId
20688
20699
  });
20689
20700
 
20690
20701
  const handleVoidLabelSubmit = () => __awaiter(void 0, void 0, void 0, function* () {
20691
- yield voidLabel.trigger(label.data);
20702
+ const result = yield voidLabel.trigger(label.data); // We should always have label.data and shipment.data if the request was approved,
20703
+ // but we aren't using Suspense so we still need to check.
20704
+
20705
+ if ((result === null || result === void 0 ? void 0 : result.approved) && label.data && shipment.data) {
20706
+ onSuccess === null || onSuccess === void 0 ? void 0 : onSuccess(label.data, shipment.data);
20707
+ }
20692
20708
  });
20693
20709
 
20694
20710
  return jsx(Templates.VoidLabel, {
20695
- salesOrder: (_c = salesOrders.data) === null || _c === void 0 ? void 0 : _c[0],
20696
- shipment: shipment.data,
20697
20711
  onComplete: onComplete,
20698
20712
  onSubmit: handleVoidLabelSubmit,
20699
20713
  onViewShipment: onViewShipment,
20700
- voidLabel: voidLabel.data
20714
+ shipment: shipment.data,
20715
+ voidRequest: voidLabel.data
20701
20716
  });
20702
20717
  };
20703
20718
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shipengine/elements",
3
- "version": "0.6.47",
3
+ "version": "0.7.1",
4
4
  "peerDependencies": {
5
5
  "@packlink/giger": "*",
6
6
  "react-i18next": "*",
@@ -12,10 +12,10 @@
12
12
  "types": "./index.d.ts",
13
13
  "dependencies": {
14
14
  "react": "^18.2.0",
15
- "@shipengine/elements-core": "0.6.47",
15
+ "@shipengine/elements-core": "0.7.1",
16
16
  "i18next-http-backend": "^1.4.1",
17
17
  "i18next-browser-languagedetector": "^6.1.4",
18
- "@shipengine/types": "0.6.47",
19
- "@shipengine/elements-ui": "0.6.47"
18
+ "@shipengine/types": "0.7.1",
19
+ "@shipengine/elements-ui": "0.7.1"
20
20
  }
21
21
  }