@commercelayer/react-components 4.4.0-beta.4 → 4.4.0-beta.6

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 (95) hide show
  1. package/lib/cjs/components/errors/Errors.d.ts +1 -1
  2. package/lib/cjs/components/errors/Errors.js +1 -1
  3. package/lib/cjs/components/gift_cards/GiftCardOrCouponCode.d.ts +4 -4
  4. package/lib/cjs/components/in_stock_subscriptions/InStockSubscriptionButton.d.ts +35 -0
  5. package/lib/cjs/components/in_stock_subscriptions/InStockSubscriptionButton.js +1 -0
  6. package/lib/cjs/components/in_stock_subscriptions/InStockSubscriptionsContainer.d.ts +9 -0
  7. package/lib/cjs/components/in_stock_subscriptions/InStockSubscriptionsContainer.js +1 -0
  8. package/lib/cjs/components/line_items/LineItem.js +1 -1
  9. package/lib/cjs/components/line_items/LineItemImage.js +1 -1
  10. package/lib/cjs/components/line_items/LineItemQuantity.js +1 -1
  11. package/lib/cjs/components/orders/CheckoutLink.js +1 -1
  12. package/lib/cjs/components/parcels/ParcelsCount.d.ts +1 -1
  13. package/lib/cjs/components/payment_source/BraintreePayment.js +1 -1
  14. package/lib/cjs/components/payment_source/CheckoutComPayment.js +1 -1
  15. package/lib/cjs/components/payment_source/KlarnaPayment.d.ts +1 -1
  16. package/lib/cjs/components/payment_source/KlarnaPayment.js +1 -1
  17. package/lib/cjs/components/payment_source/StripeExpressPayment.js +1 -1
  18. package/lib/cjs/components/payment_source/StripePayment.js +1 -1
  19. package/lib/cjs/components/prices/Price.d.ts +1 -1
  20. package/lib/cjs/components/shipments/ShipmentsCount.d.ts +1 -1
  21. package/lib/cjs/components/stock_transfers/StockTransfer.js +1 -1
  22. package/lib/cjs/components/utils/AddressCardsTemplate.d.ts +1 -1
  23. package/lib/cjs/components/utils/GenericFieldComponent.d.ts +2 -2
  24. package/lib/cjs/components/utils/PaymentCardsTemplate.d.ts +4 -10
  25. package/lib/cjs/components/utils/getAllErrors.d.ts +1 -1
  26. package/lib/cjs/context/InStockSubscriptionContext.d.ts +7 -0
  27. package/lib/cjs/context/InStockSubscriptionContext.js +1 -0
  28. package/lib/cjs/context/LineItemChildrenContext.d.ts +3 -3
  29. package/lib/cjs/context/LineItemContext.d.ts +1 -1
  30. package/lib/cjs/context/LineItemOptionChildrenContext.d.ts +0 -1
  31. package/lib/cjs/context/PaymentMethodContext.d.ts +2 -2
  32. package/lib/cjs/context/ShipmentChildrenContext.d.ts +5 -5
  33. package/lib/cjs/context/StockTransferChildrenContext.d.ts +2 -2
  34. package/lib/cjs/index.d.ts +2 -0
  35. package/lib/cjs/index.js +1 -1
  36. package/lib/cjs/reducers/InStockSubscriptionReducer.d.ts +33 -0
  37. package/lib/cjs/reducers/InStockSubscriptionReducer.js +1 -0
  38. package/lib/cjs/reducers/LineItemReducer.d.ts +1 -1
  39. package/lib/cjs/reducers/PaymentMethodReducer.d.ts +6 -6
  40. package/lib/cjs/reducers/PaymentMethodReducer.js +1 -1
  41. package/lib/cjs/reducers/PlaceOrderReducer.d.ts +1 -3
  42. package/lib/cjs/reducers/PlaceOrderReducer.js +1 -1
  43. package/lib/cjs/reducers/ShipmentReducer.d.ts +1 -1
  44. package/lib/cjs/utils/addressesManager.d.ts +2 -2
  45. package/lib/cjs/utils/expressPaymentHelper.js +1 -1
  46. package/lib/cjs/utils/getLineItemsCount.js +1 -1
  47. package/lib/cjs/utils/shipments.d.ts +1 -1
  48. package/lib/esm/components/errors/Errors.d.ts +1 -1
  49. package/lib/esm/components/errors/Errors.js +1 -1
  50. package/lib/esm/components/gift_cards/GiftCardOrCouponCode.d.ts +4 -4
  51. package/lib/esm/components/in_stock_subscriptions/InStockSubscriptionButton.d.ts +35 -0
  52. package/lib/esm/components/in_stock_subscriptions/InStockSubscriptionButton.js +1 -0
  53. package/lib/esm/components/in_stock_subscriptions/InStockSubscriptionsContainer.d.ts +9 -0
  54. package/lib/esm/components/in_stock_subscriptions/InStockSubscriptionsContainer.js +1 -0
  55. package/lib/esm/components/line_items/LineItem.js +1 -1
  56. package/lib/esm/components/line_items/LineItemImage.js +1 -1
  57. package/lib/esm/components/line_items/LineItemQuantity.js +1 -1
  58. package/lib/esm/components/orders/CheckoutLink.js +1 -1
  59. package/lib/esm/components/parcels/ParcelsCount.d.ts +1 -1
  60. package/lib/esm/components/payment_source/BraintreePayment.js +1 -1
  61. package/lib/esm/components/payment_source/CheckoutComPayment.js +1 -1
  62. package/lib/esm/components/payment_source/KlarnaPayment.d.ts +1 -1
  63. package/lib/esm/components/payment_source/KlarnaPayment.js +1 -1
  64. package/lib/esm/components/payment_source/StripeExpressPayment.js +1 -1
  65. package/lib/esm/components/payment_source/StripePayment.js +1 -1
  66. package/lib/esm/components/prices/Price.d.ts +1 -1
  67. package/lib/esm/components/shipments/ShipmentsCount.d.ts +1 -1
  68. package/lib/esm/components/stock_transfers/StockTransfer.js +1 -1
  69. package/lib/esm/components/utils/AddressCardsTemplate.d.ts +1 -1
  70. package/lib/esm/components/utils/GenericFieldComponent.d.ts +2 -2
  71. package/lib/esm/components/utils/PaymentCardsTemplate.d.ts +4 -10
  72. package/lib/esm/components/utils/getAllErrors.d.ts +1 -1
  73. package/lib/esm/context/InStockSubscriptionContext.d.ts +7 -0
  74. package/lib/esm/context/InStockSubscriptionContext.js +1 -0
  75. package/lib/esm/context/LineItemChildrenContext.d.ts +3 -3
  76. package/lib/esm/context/LineItemContext.d.ts +1 -1
  77. package/lib/esm/context/LineItemOptionChildrenContext.d.ts +0 -1
  78. package/lib/esm/context/PaymentMethodContext.d.ts +2 -2
  79. package/lib/esm/context/ShipmentChildrenContext.d.ts +5 -5
  80. package/lib/esm/context/StockTransferChildrenContext.d.ts +2 -2
  81. package/lib/esm/index.d.ts +2 -0
  82. package/lib/esm/index.js +1 -1
  83. package/lib/esm/reducers/InStockSubscriptionReducer.d.ts +33 -0
  84. package/lib/esm/reducers/InStockSubscriptionReducer.js +1 -0
  85. package/lib/esm/reducers/LineItemReducer.d.ts +1 -1
  86. package/lib/esm/reducers/PaymentMethodReducer.d.ts +6 -6
  87. package/lib/esm/reducers/PaymentMethodReducer.js +1 -1
  88. package/lib/esm/reducers/PlaceOrderReducer.d.ts +1 -3
  89. package/lib/esm/reducers/PlaceOrderReducer.js +1 -1
  90. package/lib/esm/reducers/ShipmentReducer.d.ts +1 -1
  91. package/lib/esm/utils/addressesManager.d.ts +2 -2
  92. package/lib/esm/utils/expressPaymentHelper.js +1 -1
  93. package/lib/esm/utils/getLineItemsCount.js +1 -1
  94. package/lib/esm/utils/shipments.d.ts +1 -1
  95. package/package.json +11 -4
@@ -6,7 +6,7 @@ export interface AllErrorsParams {
6
6
  messages: BaseError[];
7
7
  field?: string;
8
8
  props: JSX.IntrinsicElements['span'];
9
- lineItem?: LineItem;
9
+ lineItem?: LineItem | null;
10
10
  resource?: TResourceError;
11
11
  returnHtml?: boolean;
12
12
  }
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import { type setInStockSubscription, type InStockSubscriptionState } from '../reducers/InStockSubscriptionReducer';
3
+ export interface InitialInStockSubscriptionContext extends InStockSubscriptionState {
4
+ setInStockSubscription?: typeof setInStockSubscription;
5
+ }
6
+ declare const InStockSubscriptionContext: import("react").Context<InitialInStockSubscriptionContext>;
7
+ export default InStockSubscriptionContext;
@@ -0,0 +1 @@
1
+ import{createContext}from"react";const initial={},InStockSubscriptionContext=createContext(initial);export default InStockSubscriptionContext;
@@ -1,9 +1,9 @@
1
1
  /// <reference types="react" />
2
2
  import { type LineItem } from '@commercelayer/sdk';
3
- export type InitialLineItemContext = Partial<{
4
- lineItem: LineItem;
3
+ export type InitialLineItemChildrenContext = Partial<{
4
+ lineItem: LineItem | null | undefined;
5
5
  }>;
6
6
  declare const LineItemChildrenContext: import("react").Context<Partial<{
7
- lineItem: LineItem;
7
+ lineItem: LineItem | null | undefined;
8
8
  }>>;
9
9
  export default LineItemChildrenContext;
@@ -2,7 +2,7 @@
2
2
  import { type LineItemState } from '../reducers/LineItemReducer';
3
3
  import { type LineItem } from '@commercelayer/sdk';
4
4
  export interface LineItemContextValue extends LineItemState {
5
- lineItems?: LineItem[] | undefined;
5
+ lineItems?: LineItem[] | null;
6
6
  }
7
7
  declare const LineItemContext: import("react").Context<LineItemContextValue>;
8
8
  export default LineItemContext;
@@ -1,7 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import type { LineItemOption } from '@commercelayer/sdk';
3
3
  export interface TLineItemOptions extends LineItemOption {
4
- options?: Record<string, string>;
5
4
  }
6
5
  export interface InitialLineItemContext {
7
6
  lineItemOption: Partial<TLineItemOptions>;
@@ -1,9 +1,9 @@
1
1
  /// <reference types="react" />
2
- import { type UpdatePaymentSource, type PaymentMethodState, type SetPaymentMethodErrors, type SetPaymentSource, setPaymentMethod, type DestroyPaymentSource, type SetPaymentRef, setLoading } from '../reducers/PaymentMethodReducer';
2
+ import { type UpdatePaymentSource, type PaymentMethodState, type SetPaymentMethodErrors, setPaymentSource, setPaymentMethod, type DestroyPaymentSource, type SetPaymentRef, setLoading } from '../reducers/PaymentMethodReducer';
3
3
  type DefaultContext = {
4
4
  setPaymentMethodErrors: SetPaymentMethodErrors;
5
5
  setPaymentMethod: typeof setPaymentMethod;
6
- setPaymentSource: SetPaymentSource;
6
+ setPaymentSource: typeof setPaymentSource;
7
7
  setPaymentRef: SetPaymentRef;
8
8
  destroyPaymentSource: DestroyPaymentSource;
9
9
  updatePaymentSource: UpdatePaymentSource;
@@ -2,13 +2,13 @@
2
2
  import type { DeliveryLeadTime, LineItem, Parcel, Shipment, ShippingMethod, StockTransfer } from '@commercelayer/sdk';
3
3
  export interface InitialShipmentContext {
4
4
  currentShippingMethodId?: string;
5
- deliveryLeadTimes?: DeliveryLeadTime[];
5
+ deliveryLeadTimes?: DeliveryLeadTime[] | null | undefined;
6
6
  keyNumber: number;
7
- lineItems?: LineItem[];
8
- parcels?: Parcel[];
7
+ lineItems?: Array<LineItem | null | undefined>;
8
+ parcels?: Parcel[] | null | undefined;
9
9
  shipment?: Shipment;
10
- shippingMethods?: ShippingMethod[];
11
- stockTransfers?: StockTransfer[];
10
+ shippingMethods?: ShippingMethod[] | null | undefined;
11
+ stockTransfers?: StockTransfer[] | null | undefined;
12
12
  }
13
13
  declare const ShipmentChildrenContext: import("react").Context<InitialShipmentContext>;
14
14
  export default ShipmentChildrenContext;
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
- import { type StockTransfer } from '@commercelayer/sdk';
2
+ import { type LineItem, type StockTransfer } from '@commercelayer/sdk';
3
3
  export interface InitialStockTransferContext {
4
- stockTransfer?: StockTransfer;
4
+ stockTransfer?: StockTransfer | null | LineItem;
5
5
  }
6
6
  declare const StockTransferChildrenContext: import("react").Context<InitialStockTransferContext>;
7
7
  export default StockTransferChildrenContext;
@@ -29,6 +29,8 @@ export * from './components/gift_cards/GiftCardOrCouponForm';
29
29
  export * from './components/gift_cards/GiftCardOrCouponInput';
30
30
  export * from './components/gift_cards/GiftCardOrCouponRemoveButton';
31
31
  export * from './components/gift_cards/GiftCardOrCouponSubmit';
32
+ export * from './components/in_stock_subscriptions/InStockSubscriptionsContainer';
33
+ export * from './components/in_stock_subscriptions/InStockSubscriptionButton';
32
34
  export * from './components/line_items/LineItemsContainer';
33
35
  export * from './components/line_items/LineItem';
34
36
  export * from './components/line_items/LineItemAmount';
package/lib/esm/index.js CHANGED
@@ -1 +1 @@
1
- export*from"./components/errors/Errors";export*from"./components/ExternalFunction";export*from"./components/MetadataInput";export*from"./components/SubmitButton";export*from"./components/addresses/Address";export*from"./components/addresses/AddressCountrySelector";export*from"./components/addresses/AddressField";export*from"./components/addresses/AddressInput";export*from"./components/addresses/AddressStateSelector";export*from"./components/addresses/AddressesContainer";export*from"./components/addresses/AddressesEmpty";export*from"./components/addresses/BillingAddressContainer";export*from"./components/addresses/BillingAddressForm";export*from"./components/addresses/SaveAddressesButton";export*from"./components/addresses/ShippingAddressContainer";export*from"./components/addresses/ShippingAddressForm";export*from"./components/auth/CommerceLayer";export*from"./components/customers/CustomerAddressForm";export*from"./components/customers/CustomerContainer";export*from"./components/customers/CustomerField";export*from"./components/customers/CustomerInput";export*from"./components/customers/SaveCustomerButton";export*from"./components/gift_cards/GiftCard";export*from"./components/gift_cards/GiftCardContainer";export*from"./components/gift_cards/GiftCardCurrencySelector";export*from"./components/gift_cards/GiftCardInput";export*from"./components/gift_cards/GiftCardOrCouponCode";export*from"./components/gift_cards/GiftCardOrCouponForm";export*from"./components/gift_cards/GiftCardOrCouponInput";export*from"./components/gift_cards/GiftCardOrCouponRemoveButton";export*from"./components/gift_cards/GiftCardOrCouponSubmit";export*from"./components/line_items/LineItemsContainer";export*from"./components/line_items/LineItem";export*from"./components/line_items/LineItemAmount";export*from"./components/line_items/LineItemCode";export*from"./components/line_items/LineItemField";export*from"./components/line_items/LineItemImage";export*from"./components/line_items/LineItemName";export*from"./components/line_items/LineItemOption";export*from"./components/line_items/LineItemOptions";export*from"./components/line_items/LineItemQuantity";export*from"./components/line_items/LineItemRemoveLink";export*from"./components/line_items/LineItemsCount";export*from"./components/line_items/LineItemsEmpty";export*from"./components/orders/AddToCartButton";export*from"./components/orders/AdjustmentAmount";export*from"./components/orders/CartLink";export*from"./components/orders/CheckoutLink";export*from"./components/orders/DiscountAmount";export*from"./components/orders/GiftCardAmount";export*from"./components/orders/OrderContainer";export*from"./components/orders/OrderList";export*from"./components/orders/OrderListEmpty";export*from"./components/orders/OrderListRow";export*from"./components/orders/OrderNumber";export*from"./components/orders/OrderStorage";export*from"./components/orders/PaymentMethodAmount";export*from"./components/orders/PlaceOrderButton";export*from"./components/orders/PlaceOrderContainer";export*from"./components/orders/PrivacyAndTermsCheckbox";export*from"./components/orders/ShippingAmount";export*from"./components/orders/SubTotalAmount";export*from"./components/orders/TaxesAmount";export*from"./components/orders/TotalAmount";export*from"./components/parcels/ParcelField";export*from"./components/parcels/ParcelLineItem";export*from"./components/parcels/ParcelLineItemField";export*from"./components/parcels/ParcelLineItemsCount";export*from"./components/parcels/Parcels";export*from"./components/parcels/ParcelsCount";export*from"./components/payment_methods/PaymentMethod";export*from"./components/payment_methods/PaymentMethodName";export*from"./components/payment_methods/PaymentMethodPrice";export*from"./components/payment_methods/PaymentMethodRadioButton";export*from"./components/payment_methods/PaymentMethodsContainer";export*from"./components/payment_source/PaymentSource";export*from"./components/payment_source/PaymentSourceBrandIcon";export*from"./components/payment_source/PaymentSourceBrandName";export*from"./components/payment_source/PaymentSourceDetail";export*from"./components/payment_source/PaymentSourceEditButton";export*from"./components/prices/Price";export*from"./components/prices/PricesContainer";export*from"./components/shipments/Shipment";export*from"./components/shipments/ShipmentField";export*from"./components/shipments/ShipmentsContainer";export*from"./components/shipments/ShipmentsCount";export*from"./components/shipping_methods/ShippingMethod";export*from"./components/shipping_methods/ShippingMethodName";export*from"./components/shipping_methods/ShippingMethodPrice";export*from"./components/shipping_methods/ShippingMethodRadioButton";export*from"./components/skus/AvailabilityContainer";export*from"./components/skus/AvailabilityTemplate";export*from"./components/skus/DeliveryLeadTime";export*from"./components/skus/SkuField";export*from"./components/skus/SkuList";export*from"./components/skus/SkuListsContainer";export*from"./components/skus/Skus";export*from"./components/skus/SkusContainer";export*from"./components/stock_transfers/StockTransfer";export*from"./components/stock_transfers/StockTransferField";export*from"./typings/errors";
1
+ export*from"./components/errors/Errors";export*from"./components/ExternalFunction";export*from"./components/MetadataInput";export*from"./components/SubmitButton";export*from"./components/addresses/Address";export*from"./components/addresses/AddressCountrySelector";export*from"./components/addresses/AddressField";export*from"./components/addresses/AddressInput";export*from"./components/addresses/AddressStateSelector";export*from"./components/addresses/AddressesContainer";export*from"./components/addresses/AddressesEmpty";export*from"./components/addresses/BillingAddressContainer";export*from"./components/addresses/BillingAddressForm";export*from"./components/addresses/SaveAddressesButton";export*from"./components/addresses/ShippingAddressContainer";export*from"./components/addresses/ShippingAddressForm";export*from"./components/auth/CommerceLayer";export*from"./components/customers/CustomerAddressForm";export*from"./components/customers/CustomerContainer";export*from"./components/customers/CustomerField";export*from"./components/customers/CustomerInput";export*from"./components/customers/SaveCustomerButton";export*from"./components/gift_cards/GiftCard";export*from"./components/gift_cards/GiftCardContainer";export*from"./components/gift_cards/GiftCardCurrencySelector";export*from"./components/gift_cards/GiftCardInput";export*from"./components/gift_cards/GiftCardOrCouponCode";export*from"./components/gift_cards/GiftCardOrCouponForm";export*from"./components/gift_cards/GiftCardOrCouponInput";export*from"./components/gift_cards/GiftCardOrCouponRemoveButton";export*from"./components/gift_cards/GiftCardOrCouponSubmit";export*from"./components/in_stock_subscriptions/InStockSubscriptionsContainer";export*from"./components/in_stock_subscriptions/InStockSubscriptionButton";export*from"./components/line_items/LineItemsContainer";export*from"./components/line_items/LineItem";export*from"./components/line_items/LineItemAmount";export*from"./components/line_items/LineItemCode";export*from"./components/line_items/LineItemField";export*from"./components/line_items/LineItemImage";export*from"./components/line_items/LineItemName";export*from"./components/line_items/LineItemOption";export*from"./components/line_items/LineItemOptions";export*from"./components/line_items/LineItemQuantity";export*from"./components/line_items/LineItemRemoveLink";export*from"./components/line_items/LineItemsCount";export*from"./components/line_items/LineItemsEmpty";export*from"./components/orders/AddToCartButton";export*from"./components/orders/AdjustmentAmount";export*from"./components/orders/CartLink";export*from"./components/orders/CheckoutLink";export*from"./components/orders/DiscountAmount";export*from"./components/orders/GiftCardAmount";export*from"./components/orders/OrderContainer";export*from"./components/orders/OrderList";export*from"./components/orders/OrderListEmpty";export*from"./components/orders/OrderListRow";export*from"./components/orders/OrderNumber";export*from"./components/orders/OrderStorage";export*from"./components/orders/PaymentMethodAmount";export*from"./components/orders/PlaceOrderButton";export*from"./components/orders/PlaceOrderContainer";export*from"./components/orders/PrivacyAndTermsCheckbox";export*from"./components/orders/ShippingAmount";export*from"./components/orders/SubTotalAmount";export*from"./components/orders/TaxesAmount";export*from"./components/orders/TotalAmount";export*from"./components/parcels/ParcelField";export*from"./components/parcels/ParcelLineItem";export*from"./components/parcels/ParcelLineItemField";export*from"./components/parcels/ParcelLineItemsCount";export*from"./components/parcels/Parcels";export*from"./components/parcels/ParcelsCount";export*from"./components/payment_methods/PaymentMethod";export*from"./components/payment_methods/PaymentMethodName";export*from"./components/payment_methods/PaymentMethodPrice";export*from"./components/payment_methods/PaymentMethodRadioButton";export*from"./components/payment_methods/PaymentMethodsContainer";export*from"./components/payment_source/PaymentSource";export*from"./components/payment_source/PaymentSourceBrandIcon";export*from"./components/payment_source/PaymentSourceBrandName";export*from"./components/payment_source/PaymentSourceDetail";export*from"./components/payment_source/PaymentSourceEditButton";export*from"./components/prices/Price";export*from"./components/prices/PricesContainer";export*from"./components/shipments/Shipment";export*from"./components/shipments/ShipmentField";export*from"./components/shipments/ShipmentsContainer";export*from"./components/shipments/ShipmentsCount";export*from"./components/shipping_methods/ShippingMethod";export*from"./components/shipping_methods/ShippingMethodName";export*from"./components/shipping_methods/ShippingMethodPrice";export*from"./components/shipping_methods/ShippingMethodRadioButton";export*from"./components/skus/AvailabilityContainer";export*from"./components/skus/AvailabilityTemplate";export*from"./components/skus/DeliveryLeadTime";export*from"./components/skus/SkuField";export*from"./components/skus/SkuList";export*from"./components/skus/SkuListsContainer";export*from"./components/skus/Skus";export*from"./components/skus/SkusContainer";export*from"./components/stock_transfers/StockTransfer";export*from"./components/stock_transfers/StockTransferField";export*from"./typings/errors";
@@ -0,0 +1,33 @@
1
+ import { type CommerceLayerConfig } from '../context/CommerceLayerContext';
2
+ import { type BaseAction } from '../typings/index';
3
+ import { type Dispatch } from 'react';
4
+ import type { BaseError } from '../typings/errors';
5
+ type InStockSubscriptionActionType = 'setErrors';
6
+ type InStockSubscriptionAction = BaseAction<InStockSubscriptionActionType, InStockSubscriptionState>;
7
+ export interface InStockSubscriptionState {
8
+ errors?: BaseError[];
9
+ }
10
+ export declare const inStockSubscriptionInitialState: InStockSubscriptionState;
11
+ interface TSetInStockSubscriptionParams {
12
+ /**
13
+ * Commerce Layer config
14
+ */
15
+ config?: CommerceLayerConfig;
16
+ /**
17
+ * Customer email
18
+ */
19
+ customerEmail?: string;
20
+ /**
21
+ * Sku code
22
+ */
23
+ skuCode: string;
24
+ /**
25
+ * Dispatch function
26
+ */
27
+ dispatch?: Dispatch<InStockSubscriptionAction>;
28
+ }
29
+ export declare function setInStockSubscription<T extends TSetInStockSubscriptionParams>({ config, customerEmail, skuCode, dispatch }: T): Promise<{
30
+ success: boolean;
31
+ }>;
32
+ export default function inStockSubscriptionReducer(state: InStockSubscriptionState, reducer: InStockSubscriptionAction): InStockSubscriptionState;
33
+ export {};
@@ -0,0 +1 @@
1
+ import baseReducer from"../utils/baseReducer";import getSdk from"../utils/getSdk";import getErrors from"../utils/getErrors";const actionType=["setErrors"];export const inStockSubscriptionInitialState={errors:[]};export async function setInStockSubscription({config,customerEmail,skuCode,dispatch}){try{if(config==null)throw new Error("Access token and endpoint is required");const sdk=getSdk(config),attributes={sku_code:skuCode};return customerEmail!=null&&(attributes.customer_email=customerEmail),await sdk.in_stock_subscriptions.create(attributes),{success:!0}}catch(error){const errors=getErrors({error,resource:"in_stock_subscriptions"});return dispatch?.({type:"setErrors",payload:{errors}}),{success:!1}}}export default function inStockSubscriptionReducer(state,reducer){return baseReducer(state,reducer,actionType)}
@@ -26,7 +26,7 @@ export type GetLineItems = (params: GetLineItemsParams) => void;
26
26
  export interface LineItemPayload {
27
27
  loading?: boolean;
28
28
  loader?: LoaderType;
29
- lineItems?: LineItem[];
29
+ lineItems?: LineItem[] | null;
30
30
  errors?: BaseError[];
31
31
  }
32
32
  export interface LineItemState extends LineItemPayload {
@@ -11,7 +11,7 @@ import { type Dispatch, type MutableRefObject } from 'react';
11
11
  import { type CheckoutComConfig } from '../components/payment_source/CheckoutComPayment';
12
12
  import { type ExternalPaymentConfig } from '../components/payment_source/ExternalPayment';
13
13
  import { type ResourceKeys } from '../utils/getPaymentAttributes';
14
- export type PaymentSourceType = AdyenPayment | BraintreePayment | CheckoutComPayment | ExternalPayment | PaypalPayment | StripePayment | WireTransfer;
14
+ export type PaymentSourceType = Order['payment_source'];
15
15
  interface Card {
16
16
  type: string;
17
17
  brand: string;
@@ -62,12 +62,12 @@ export type PaymentMethodActionType = 'setErrors' | 'setPaymentMethods' | 'setPa
62
62
  export type PaymentRef = MutableRefObject<null | HTMLFormElement>;
63
63
  export interface PaymentMethodActionPayload {
64
64
  errors: BaseError[];
65
- paymentMethods: PaymentMethod[];
65
+ paymentMethods: PaymentMethod[] | null;
66
66
  currentPaymentMethodType: PaymentResource;
67
67
  currentPaymentMethodId: string;
68
68
  currentPaymentMethodRef: PaymentRef;
69
69
  config: PaymentMethodConfig;
70
- paymentSource: PaymentSourceTypes;
70
+ paymentSource: Order['payment_source'] | null;
71
71
  loading: boolean;
72
72
  }
73
73
  export declare function setLoading({ loading, dispatch }: {
@@ -115,7 +115,7 @@ export type SetPaymentSourceResponse = {
115
115
  order: Order;
116
116
  paymentSource: PaymentSourceTypes;
117
117
  } | null;
118
- export type SetPaymentSource = (args: {
118
+ export interface SetPaymentSourceParams extends Omit<PaymentMethodState, 'config'> {
119
119
  config?: CommerceLayerConfig;
120
120
  dispatch?: Dispatch<PaymentMethodAction>;
121
121
  getOrder?: getOrderContext;
@@ -125,8 +125,8 @@ export type SetPaymentSource = (args: {
125
125
  paymentSourceId?: string;
126
126
  customerPaymentSourceId?: string;
127
127
  updateOrder?: typeof updateOrder;
128
- } & PaymentMethodState) => Promise<PaymentSourceType | undefined>;
129
- export declare const setPaymentSource: SetPaymentSource;
128
+ }
129
+ export declare function setPaymentSource({ config, dispatch, getOrder, attributes, order, paymentResource, customerPaymentSourceId, paymentSourceId, updateOrder, errors: currentErrors }: SetPaymentSourceParams): Promise<PaymentSourceType | undefined | null>;
130
130
  export type UpdatePaymentSource = (args: {
131
131
  id: string;
132
132
  attributes: Record<string, any>;
@@ -1 +1 @@
1
- import baseReducer from"../utils/baseReducer";import getErrors,{setErrors}from"../utils/getErrors";import getSdk from"../utils/getSdk";import{snakeToCamelCase}from"../utils/snakeToCamelCase";import{replace}from"../utils/replace";import{pick}from"../utils/pick";export function setLoading({loading,dispatch}){dispatch&&dispatch({type:"setLoading",payload:{loading}})}export const setPaymentRef=({ref,dispatch})=>{ref&&dispatch&&dispatch({type:"setPaymentRef",payload:{currentPaymentMethodRef:ref}})},paymentMethodInitialState={errors:[],paymentMethods:void 0},setPaymentMethodErrors=(errors,dispatch)=>{dispatch&&dispatch({type:"setErrors",payload:{errors}})},getPaymentMethods=async({order,dispatch})=>{const paymentMethods=order.available_payment_methods,paymentMethod=order.payment_method,paymentSource=order.payment_source;dispatch({type:"setPaymentMethods",payload:{paymentMethods,currentPaymentMethodId:paymentMethod?.id,currentPaymentMethodType:paymentMethod?.payment_source_type,paymentSource}})};export async function setPaymentMethod({config,dispatch,order,paymentMethodId,updateOrder,setOrderErrors,paymentResource}){let response={success:!1};try{if(config&&order&&dispatch&&paymentResource){localStorage.removeItem("_save_payment_source_to_customer_wallet");const attributes={payment_method:getSdk(config).payment_methods.relationship(paymentMethodId)};updateOrder!=null&&(response=await updateOrder({id:order.id,attributes})),dispatch({type:"setPaymentMethods",payload:{currentPaymentMethodId:paymentMethodId,currentPaymentMethodType:paymentResource,errors:[]}}),setOrderErrors&&setOrderErrors([])}return response}catch(error){const errors=getErrors({error,resource:"orders",field:paymentResource});return console.error("Set payment method",errors),response}}export const setPaymentSource=async({config,dispatch,getOrder,attributes,order,paymentResource,customerPaymentSourceId,paymentSourceId,updateOrder,errors:currentErrors})=>{try{if(config&&order){let paymentSource;const sdk=getSdk(config);if(customerPaymentSourceId)updateOrder&&await updateOrder({id:order.id,attributes:{_customer_payment_source_id:customerPaymentSourceId}});else{if(paymentSourceId){const attrs={id:paymentSourceId,...attributes};paymentSource=attributes!=null?await sdk[paymentResource].update(attrs):await sdk[paymentResource].retrieve(paymentSourceId)}else{const attrs={...attributes,order:sdk.orders.relationship(order.id)};paymentSource=await sdk[paymentResource].create(attrs)}return getOrder&&await getOrder(order.id),dispatch&&dispatch({type:"setPaymentSource",payload:{paymentSource,errors:[]}}),paymentSource}}}catch(error){const errors=getErrors({error,resource:"payment_methods",field:paymentResource});console.error("Set payment source:",errors),dispatch&&setErrors({currentErrors,newErrors:errors,dispatch})}},updatePaymentSource=async({id,attributes,config,dispatch,paymentResource})=>{if(config)try{const paymentSource=await getSdk(config)[paymentResource].update({id,...attributes});dispatch&&dispatch({type:"setPaymentSource",payload:{paymentSource}})}catch(err){console.error("Update payment source:",err)}},destroyPaymentSource=async({paymentSourceId,paymentResource,dispatch})=>{paymentSourceId&&paymentResource&&dispatch&&dispatch({type:"setPaymentSource",payload:{paymentSource:void 0}})},setPaymentMethodConfig=(config,dispatch)=>{dispatch({type:"setPaymentMethodConfig",payload:{config}})};export function getPaymentConfig(paymentResource,config){const resourceKeys=replace(replace(paymentResource,"payments","payment"),"transfers","transfer"),resource=snakeToCamelCase(resourceKeys);return pick(config,[resource])}const type=["setErrors","setPaymentMethodConfig","setPaymentMethods","setPaymentSource","setPaymentRef","setLoading"],paymentMethodReducer=(state,reducer)=>baseReducer(state,reducer,type);export default paymentMethodReducer;
1
+ import baseReducer from"../utils/baseReducer";import getErrors,{setErrors}from"../utils/getErrors";import getSdk from"../utils/getSdk";import{snakeToCamelCase}from"../utils/snakeToCamelCase";import{replace}from"../utils/replace";import{pick}from"../utils/pick";export function setLoading({loading,dispatch}){dispatch&&dispatch({type:"setLoading",payload:{loading}})}export const setPaymentRef=({ref,dispatch})=>{ref&&dispatch&&dispatch({type:"setPaymentRef",payload:{currentPaymentMethodRef:ref}})},paymentMethodInitialState={errors:[],paymentMethods:void 0},setPaymentMethodErrors=(errors,dispatch)=>{dispatch&&dispatch({type:"setErrors",payload:{errors}})},getPaymentMethods=async({order,dispatch})=>{const paymentMethods=order.available_payment_methods,paymentMethod=order.payment_method,paymentSource=order.payment_source;dispatch({type:"setPaymentMethods",payload:{paymentMethods,currentPaymentMethodId:paymentMethod?.id,currentPaymentMethodType:paymentMethod?.payment_source_type,paymentSource}})};export async function setPaymentMethod({config,dispatch,order,paymentMethodId,updateOrder,setOrderErrors,paymentResource}){let response={success:!1};try{if(config&&order&&dispatch&&paymentResource){localStorage.removeItem("_save_payment_source_to_customer_wallet");const attributes={payment_method:getSdk(config).payment_methods.relationship(paymentMethodId)};updateOrder!=null&&(response=await updateOrder({id:order.id,attributes})),dispatch({type:"setPaymentMethods",payload:{currentPaymentMethodId:paymentMethodId,currentPaymentMethodType:paymentResource,errors:[]}}),setOrderErrors&&setOrderErrors([])}return response}catch(error){const errors=getErrors({error,resource:"orders",field:paymentResource});return console.error("Set payment method",errors),response}}export async function setPaymentSource({config,dispatch,getOrder,attributes,order,paymentResource,customerPaymentSourceId,paymentSourceId,updateOrder,errors:currentErrors}){try{if(config&&order){let paymentSource;const sdk=getSdk(config);if(customerPaymentSourceId)updateOrder&&await updateOrder({id:order.id,attributes:{_customer_payment_source_id:customerPaymentSourceId}});else{if(paymentSourceId){const attrs={id:paymentSourceId,...attributes};paymentSource=attributes!=null?await sdk[paymentResource].update(attrs):await sdk[paymentResource].retrieve(paymentSourceId)}else{const attrs={...attributes,order:sdk.orders.relationship(order.id)};paymentSource=await sdk[paymentResource].create(attrs)}return getOrder&&await getOrder(order.id),dispatch&&dispatch({type:"setPaymentSource",payload:{paymentSource,errors:[]}}),paymentSource}}}catch(error){const errors=getErrors({error,resource:"payment_methods",field:paymentResource});console.error("Set payment source:",errors),dispatch&&setErrors({currentErrors,newErrors:errors,dispatch})}}export const updatePaymentSource=async({id,attributes,config,dispatch,paymentResource})=>{if(config)try{const paymentSource=await getSdk(config)[paymentResource].update({id,...attributes});dispatch&&dispatch({type:"setPaymentSource",payload:{paymentSource}})}catch(err){console.error("Update payment source:",err)}},destroyPaymentSource=async({paymentSourceId,paymentResource,dispatch})=>{paymentSourceId&&paymentResource&&dispatch&&dispatch({type:"setPaymentSource",payload:{paymentSource:void 0}})},setPaymentMethodConfig=(config,dispatch)=>{dispatch({type:"setPaymentMethodConfig",payload:{config}})};export function getPaymentConfig(paymentResource,config){const resourceKeys=replace(replace(paymentResource,"payments","payment"),"transfers","transfer"),resource=snakeToCamelCase(resourceKeys);return pick(config,[resource])}const type=["setErrors","setPaymentMethodConfig","setPaymentMethods","setPaymentSource","setPaymentRef","setLoading"],paymentMethodReducer=(state,reducer)=>baseReducer(state,reducer,type);export default paymentMethodReducer;
@@ -48,9 +48,7 @@ interface TSetPlaceOrderParams {
48
48
  order?: Order;
49
49
  state?: PlaceOrderState;
50
50
  setOrderErrors?: (errors: BaseError[]) => void;
51
- paymentSource?: PaymentSourceType & {
52
- approval_url?: string;
53
- };
51
+ paymentSource?: PaymentSourceType;
54
52
  include?: string[];
55
53
  setOrder?: (order: Order) => void;
56
54
  }
@@ -1 +1 @@
1
- import baseReducer from"../utils/baseReducer";import isEmpty from"lodash/isEmpty";import{isDoNotShip,shipmentsFilled}from"../utils/shipments";import{saveBillingAddress,saveShippingAddress,saveToWallet}from"../utils/customerOrderOptions";import getSdk from"../utils/getSdk";import getErrors from"../utils/getErrors";export function setButtonRef(ref,dispatch){ref?.current!=null&&dispatch({type:"setButtonRef",payload:{placeOrderButtonRef:ref}})}export const placeOrderInitialState={errors:[],isPermitted:!1};export function setPlaceOrderErrors(errors,dispatch){dispatch&&dispatch({type:"setErrors",payload:{errors}})}export function placeOrderPermitted({config,order,dispatch,options}){if(order&&config){let isPermitted=!0;order.privacy_url&&order.terms_url&&(isPermitted=localStorage.getItem("privacy-terms")==="true");const billingAddress=order.billing_address,shippingAddress=order.shipping_address,doNotShip=isDoNotShip(order.line_items),shipments=order.shipments,shipment=shipments&&shipmentsFilled(shipments),paymentMethod=order.payment_method,paymentSource=order.payment_source;order.total_amount_with_taxes_cents!==0&&isEmpty(paymentMethod?.id)&&(isPermitted=!1),isEmpty(billingAddress)&&(isPermitted=!1),isEmpty(shippingAddress)&&!doNotShip&&(isPermitted=!1),!isEmpty(shipments)&&!shipment&&(isPermitted=!1),paymentSource?.mismatched_amounts&&(isPermitted=!1),dispatch({type:"setPlaceOrderPermitted",payload:{isPermitted,paymentType:paymentMethod?.payment_source_type,paymentSecret:paymentSource?.client_secret,paymentId:paymentSource?.options?.id,paymentSource,options}})}}export async function setPlaceOrder({state,order,config,setOrderErrors,paymentSource,setOrder,include}){const response={placed:!1};if(state&&config&&order){const sdk=getSdk(config),{options,paymentType}=state;try{if(paymentType==="paypal_payments"&&paymentSource){if(!options?.paypalPayerId&&paymentSource?.approval_url)return window.location.href=paymentSource?.approval_url,response;await sdk[paymentType].update({id:paymentSource.id,paypal_payer_id:options?.paypalPayerId})}if(paymentType==="checkout_com_payments"&&paymentSource&&options?.checkoutCom?.session_id){const payment=await sdk[paymentType].update({id:paymentSource.id,_details:!0,session_id:options?.checkoutCom?.session_id});if(payment?.payment_response?.status!=="Authorized"){const[action]=payment?.payment_response?.actions||[""];throw{errors:[{code:"PAYMENT_NOT_APPROVED_FOR_EXECUTION",message:action?.response_summary,resource:"orders",field:"checkout_com_payments"}]}}}const updateAttributes={id:order.id,_place:!0};switch(saveBillingAddress()&&await sdk.orders.update({id:order.id,_save_billing_address_to_customer_address_book:!0}),saveShippingAddress()&&await sdk.orders.update({id:order.id,_save_shipping_address_to_customer_address_book:!0}),paymentType){case"braintree_payments":{saveToWallet()&&await sdk.orders.update({id:order.id,_save_payment_source_to_customer_wallet:!0});const orderUpdated=await sdk.orders.update(updateAttributes,{include});return setOrder&&setOrder(orderUpdated),setOrderErrors&&setOrderErrors([]),{placed:!0,order:orderUpdated}}default:{const orderUpdated=await sdk.orders.update(updateAttributes,{include});return setOrder&&setOrder(orderUpdated),saveToWallet()&&await sdk.orders.update({id:order.id,_save_payment_source_to_customer_wallet:!0}),setOrderErrors&&setOrderErrors([]),{placed:!0,order:orderUpdated}}}}catch(error){const errors=getErrors({error,resource:"orders",field:paymentType});return setOrderErrors&&setOrderErrors(errors),{...response,errors}}}return response}const type=["setErrors","setPlaceOrderPermitted","setButtonRef"],placeOrderReducer=(state,reducer)=>baseReducer(state,reducer,type);export default placeOrderReducer;
1
+ import baseReducer from"../utils/baseReducer";import isEmpty from"lodash/isEmpty";import{isDoNotShip,shipmentsFilled}from"../utils/shipments";import{saveBillingAddress,saveShippingAddress,saveToWallet}from"../utils/customerOrderOptions";import getSdk from"../utils/getSdk";import getErrors from"../utils/getErrors";export function setButtonRef(ref,dispatch){ref?.current!=null&&dispatch({type:"setButtonRef",payload:{placeOrderButtonRef:ref}})}export const placeOrderInitialState={errors:[],isPermitted:!1};export function setPlaceOrderErrors(errors,dispatch){dispatch&&dispatch({type:"setErrors",payload:{errors}})}export function placeOrderPermitted({config,order,dispatch,options}){if(order&&config){let isPermitted=!0;order.privacy_url&&order.terms_url&&(isPermitted=localStorage.getItem("privacy-terms")==="true");const billingAddress=order.billing_address,shippingAddress=order.shipping_address,doNotShip=isDoNotShip(order.line_items),shipments=order.shipments,shipment=shipments&&shipmentsFilled(shipments),paymentMethod=order.payment_method,paymentSource=order.payment_source;order.total_amount_with_taxes_cents!==0&&isEmpty(paymentMethod?.id)&&(isPermitted=!1),isEmpty(billingAddress)&&(isPermitted=!1),isEmpty(shippingAddress)&&!doNotShip&&(isPermitted=!1),!isEmpty(shipments)&&!shipment&&(isPermitted=!1),paymentSource?.mismatched_amounts&&(isPermitted=!1),dispatch({type:"setPlaceOrderPermitted",payload:{isPermitted,paymentType:paymentMethod?.payment_source_type,paymentSecret:paymentSource?.client_secret,paymentId:paymentSource?.options?.id,paymentSource,options}})}}export async function setPlaceOrder({state,order,config,setOrderErrors,paymentSource,setOrder,include}){const response={placed:!1};if(state&&config&&order){const sdk=getSdk(config),{options,paymentType}=state;try{if(paymentType==="paypal_payments"&&paymentSource?.type==="paypal_payments"){if(!options?.paypalPayerId&&paymentSource?.approval_url)return window.location.href=paymentSource?.approval_url,response;await sdk[paymentType].update({id:paymentSource.id,paypal_payer_id:options?.paypalPayerId})}if(paymentType==="checkout_com_payments"&&paymentSource&&options?.checkoutCom?.session_id){const payment=await sdk[paymentType].update({id:paymentSource.id,_details:!0,session_id:options?.checkoutCom?.session_id});if(payment?.payment_response?.status!=="Authorized"){const[action]=payment?.payment_response?.actions||[""];throw{errors:[{code:"PAYMENT_NOT_APPROVED_FOR_EXECUTION",message:action?.response_summary,resource:"orders",field:"checkout_com_payments"}]}}}const updateAttributes={id:order.id,_place:!0};switch(saveBillingAddress()&&await sdk.orders.update({id:order.id,_save_billing_address_to_customer_address_book:!0}),saveShippingAddress()&&await sdk.orders.update({id:order.id,_save_shipping_address_to_customer_address_book:!0}),paymentType){case"braintree_payments":{saveToWallet()&&await sdk.orders.update({id:order.id,_save_payment_source_to_customer_wallet:!0});const orderUpdated=await sdk.orders.update(updateAttributes,{include});return setOrder&&setOrder(orderUpdated),setOrderErrors&&setOrderErrors([]),{placed:!0,order:orderUpdated}}default:{const orderUpdated=await sdk.orders.update(updateAttributes,{include});return setOrder&&setOrder(orderUpdated),saveToWallet()&&await sdk.orders.update({id:order.id,_save_payment_source_to_customer_wallet:!0}),setOrderErrors&&setOrderErrors([]),{placed:!0,order:orderUpdated}}}}catch(error){const errors=getErrors({error,resource:"orders",field:paymentType});return setOrderErrors&&setOrderErrors(errors),{...response,errors}}}return response}const type=["setErrors","setPlaceOrderPermitted","setButtonRef"],placeOrderReducer=(state,reducer)=>baseReducer(state,reducer,type);export default placeOrderReducer;
@@ -9,7 +9,7 @@ export type ShipmentLineItem = LineItem & {
9
9
  };
10
10
  export interface ShipmentActionPayload {
11
11
  errors: BaseError[];
12
- shipments: Shipment[];
12
+ shipments: Shipment[] | null;
13
13
  deliveryLeadTimes: DeliveryLeadTime[];
14
14
  }
15
15
  export type ShipmentState = Partial<ShipmentActionPayload>;
@@ -5,7 +5,7 @@ type BillingAddressController = (params: {
5
5
  billing_address?: AddressCreate;
6
6
  billingAddressId?: string;
7
7
  errors?: BaseError[];
8
- requiresBillingInfo?: boolean;
8
+ requiresBillingInfo?: boolean | null;
9
9
  }) => boolean;
10
10
  export declare const billingAddressController: BillingAddressController;
11
11
  type ShippingAddressController = (params: {
@@ -20,7 +20,7 @@ type CountryLockController = (params: {
20
20
  addresses?: Address[] | null;
21
21
  billing_address?: TCustomerAddress;
22
22
  billingAddressId?: string;
23
- countryCodeLock?: string;
23
+ countryCodeLock?: string | null;
24
24
  shipToDifferentAddress?: boolean;
25
25
  shipping_address?: AddressCreate;
26
26
  shippingAddressId?: string;
@@ -1 +1 @@
1
- import getSdk from"./getSdk";const availablePaymentMethods=["stripe_payments"];export function getAvailableExpressPayments(paymentMethods){return paymentMethods.filter(payment=>payment.payment_source_type?availablePaymentMethods.includes(payment.payment_source_type):!1)}export async function setExpressFakeAddress({orderId,config,address,email}){const params={include:["shipments.available_shipping_methods"]},sdk=getSdk(config),fakeAddress=await sdk.addresses.create(address),resource={id:orderId,billing_address:sdk.addresses.relationship(fakeAddress.id),_shipping_address_same_as_billing:!0};return email!=null&&(resource.customer_email=email),await sdk.orders.update(resource,params),await sdk.orders.retrieve(orderId,params)}export function getExpressShippingMethods(order){const isSingleShipment=order?.shipments?.length===1,shippingMethods=order?.shipments?.map(shipment=>shipment.available_shipping_methods);if(isSingleShipment)return shippingMethods==null?null:shippingMethods.flat().map(method=>({id:method?.id??"",label:method?.name??"",amount:method?.price_amount_for_shipment_cents??0,detail:""}));{if(shippingMethods==null)return null;const shippingOptionsAmount=[];return shippingMethods.forEach(methods=>{if(methods!=null){const[firstMethod]=methods;firstMethod!=null&&shippingOptionsAmount.push(firstMethod.price_amount_for_shipment_cents??0)}}),[{id:"shipping",label:"Shipping",amount:shippingOptionsAmount.reduce((a,b)=>a+b,0),detail:""}]}}export async function setExpressShippingMethod({config,orderId,selectFirst=!0,selectedShippingMethodId,params}){const sdk=getSdk(config),order=await sdk.orders.retrieve(orderId,params),shippingMethods=getExpressShippingMethods(order);if(order?.shipments==null)throw new Error("No shipments found");const isSingleShipment=order.shipments.length===1,[shipmentId]=order.shipments.map(shipment=>shipment.id);if(shipmentId==null)throw new Error("No shipment found");if(shippingMethods==null||shippingMethods?.length===0)throw new Error("No shipping methods found");if(isSingleShipment)if(selectFirst){const[firstShippingMethodId]=shippingMethods.map(method=>method.id);firstShippingMethodId!=null&&await sdk.shipments.update({id:shipmentId,shipping_method:sdk.shipping_methods.relationship(firstShippingMethodId)})}else selectedShippingMethodId!=null&&await sdk.shipments.update({id:shipmentId,shipping_method:sdk.shipping_methods.relationship(selectedShippingMethodId)});else for(const shipment of order?.shipments??[]){const[firstShippingMethodId]=shipment?.available_shipping_methods?.map(method=>method.id)??[];firstShippingMethodId!=null&&await sdk.shipments.update({id:shipment.id,shipping_method:sdk.shipping_methods.relationship(firstShippingMethodId)})}return await sdk.orders.retrieve(order.id,params)}export async function setExpressPlaceOrder({config,orderId,paymentResource,paymentSourceId}){const sdk=getSdk(config);return await sdk.orders.retrieve(orderId,{include:["shipments.shipping_method","payment_source","payment_method"]}),await sdk[paymentResource].update({id:paymentSourceId,order:sdk.orders.relationship(orderId)}),await sdk.orders.update({id:orderId,payment_source:sdk[paymentResource].relationship(paymentSourceId)}),await sdk.orders.update({id:orderId,_place:!0})}export function expressRedirectUrl({order,config:{accessToken,endpoint}}){if(accessToken==null)throw new Error("No access token found");if(endpoint==null)throw new Error("No endpoint found");const[slug]=endpoint.split(".commercelayer");if(slug==null)throw new Error("No slug found");const href=order?.checkout_url!=null?order?.checkout_url:`${slug}.commercelayer.app/checkout/${order.id}?accessToken=${accessToken}`;window.location.pathname.includes("/checkout")||window.location.pathname.includes(`/${order.id}`)?window.location.reload():window.location.href=href}
1
+ import getSdk from"./getSdk";const availablePaymentMethods=["stripe_payments"];export function getAvailableExpressPayments(paymentMethods){return paymentMethods.filter(payment=>payment.payment_source_type?availablePaymentMethods.includes(payment.payment_source_type):!1)}export async function setExpressFakeAddress({orderId,config,address,email}){const params={include:["shipments.available_shipping_methods"]},sdk=getSdk(config),fakeAddress=await sdk.addresses.create(address),resource={id:orderId,billing_address:sdk.addresses.relationship(fakeAddress.id),_shipping_address_same_as_billing:!0};return email!=null&&(resource.customer_email=email),await sdk.orders.update(resource,params),await sdk.orders.retrieve(orderId,params)}export function getExpressShippingMethods(order){const isSingleShipment=order?.shipments?.length===1,shippingMethods=order?.shipments?.map(shipment=>shipment.available_shipping_methods);if(isSingleShipment)return shippingMethods==null?null:shippingMethods.flat().map(method=>({id:method?.id??"",label:method?.name??"",amount:method?.price_amount_for_shipment_cents??0,detail:""}));{if(shippingMethods==null)return null;const shippingOptionsAmount=[];return shippingMethods.forEach(methods=>{if(methods!=null){const[firstMethod]=methods;firstMethod!=null&&shippingOptionsAmount.push(firstMethod.price_amount_for_shipment_cents??0)}}),[{id:"shipping",label:"Shipping",amount:shippingOptionsAmount.reduce((a,b)=>a+b,0),detail:""}]}}export async function setExpressShippingMethod({config,orderId,selectFirst=!0,selectedShippingMethodId,params}){const sdk=getSdk(config),order=await sdk.orders.retrieve(orderId,params),shippingMethods=getExpressShippingMethods(order);if(order?.shipments==null)throw new Error("No shipments found");const isSingleShipment=order.shipments.length===1,[shipmentId]=order.shipments.map(shipment=>shipment.id);if(shipmentId==null)throw new Error("No shipment found");if(shippingMethods==null||shippingMethods?.length===0)throw new Error("No shipping methods found");if(isSingleShipment)if(selectFirst){const[firstShippingMethodId]=shippingMethods.map(method=>method.id);firstShippingMethodId!=null&&await sdk.shipments.update({id:shipmentId,shipping_method:sdk.shipping_methods.relationship(firstShippingMethodId)})}else selectedShippingMethodId!=null&&await sdk.shipments.update({id:shipmentId,shipping_method:sdk.shipping_methods.relationship(selectedShippingMethodId)});else for(const shipment of order?.shipments??[]){const[firstShippingMethodId]=shipment?.available_shipping_methods?.map(method=>method.id)??[];firstShippingMethodId!=null&&await sdk.shipments.update({id:shipment.id,shipping_method:sdk.shipping_methods.relationship(firstShippingMethodId)})}return await sdk.orders.retrieve(order.id,params)}export async function setExpressPlaceOrder({config,orderId,paymentResource,paymentSourceId}){const sdk=getSdk(config);return await sdk.orders.retrieve(orderId,{include:["shipments.shipping_method","payment_source","payment_method"]}),await sdk[paymentResource].update({id:paymentSourceId,order:sdk.orders.relationship(orderId)}),await sdk.orders.update({id:orderId,payment_source:sdk[paymentResource].relationship(paymentSourceId)}),await sdk[paymentResource].update({id:paymentSourceId,_update:!0}),await sdk.orders.update({id:orderId,_place:!0})}export function expressRedirectUrl({order,config:{accessToken,endpoint}}){if(accessToken==null)throw new Error("No access token found");if(endpoint==null)throw new Error("No endpoint found");const[slug]=endpoint.split(".commercelayer");if(slug==null)throw new Error("No slug found");const href=order?.checkout_url!=null?order?.checkout_url:`${slug}.commercelayer.app/checkout/${order.id}?accessToken=${accessToken}`;window.location.pathname.includes("/checkout")||window.location.pathname.includes(`/${order.id}`)?window.location.reload():window.location.href=href}
@@ -1 +1 @@
1
- export default function getLineItemsCount({lineItems,quantity=0,typeAccepted=["skus","gift_cards","bundles","adjustments"]}){return lineItems.filter(l=>typeAccepted.includes(l.item_type)&&l?.total_amount_cents!==void 0&&l.total_amount_cents>=0).forEach(l=>{l.quantity&&(quantity+=l.quantity)}),quantity}
1
+ export default function getLineItemsCount({lineItems,quantity=0,typeAccepted=["skus","gift_cards","bundles","adjustments"]}){return lineItems.filter(l=>typeAccepted.includes(l.item_type)&&l?.total_amount_cents!=null&&l?.total_amount_cents>=0).forEach(l=>{l.quantity&&(quantity+=l.quantity)}),quantity}
@@ -1,3 +1,3 @@
1
1
  import { type LineItem, type Shipment } from '@commercelayer/sdk';
2
2
  export declare function shipmentsFilled(shipments: Shipment[]): boolean;
3
- export declare function isDoNotShip(lineItems?: LineItem[]): boolean;
3
+ export declare function isDoNotShip(lineItems?: LineItem[] | null): boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@commercelayer/react-components",
3
- "version": "4.4.0-beta.4",
3
+ "version": "4.4.0-beta.6",
4
4
  "description": "The Official Commerce Layer React Components",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/esm/index.js",
@@ -35,6 +35,10 @@
35
35
  "require": "./lib/cjs/components/gift_cards/*.js",
36
36
  "import": "./lib/esm/components/gift_cards/*.js"
37
37
  },
38
+ "./in_stock_subscriptions/*": {
39
+ "require": "./lib/cjs/components/in_stock_subscriptions/*.js",
40
+ "import": "./lib/esm/components/in_stock_subscriptions/*.js"
41
+ },
38
42
  "./hooks/*": {
39
43
  "require": "./lib/cjs/hooks/*.js",
40
44
  "import": "./lib/esm/hooks/*.js"
@@ -97,6 +101,9 @@
97
101
  "gift_cards/*": [
98
102
  "lib/esm/components/gift_cards/*.d.ts"
99
103
  ],
104
+ "in_stock_subscriptions/*": [
105
+ "lib/esm/components/in_stock_subscriptions/*.d.ts"
106
+ ],
100
107
  "hooks/*": [
101
108
  "lib/esm/hooks/*.d.ts"
102
109
  ],
@@ -161,7 +168,7 @@
161
168
  "@ac-dev/countries-service": "^1.2.0",
162
169
  "@ac-dev/states-service": "^1.1.1",
163
170
  "@adyen/adyen-web": "^5.40.0",
164
- "@commercelayer/sdk": "^4.27.0",
171
+ "@commercelayer/sdk": "^5.0.0",
165
172
  "@stripe/react-stripe-js": "^2.1.0",
166
173
  "@stripe/stripe-js": "^1.52.1",
167
174
  "axios": "^1.3.6",
@@ -180,9 +187,9 @@
180
187
  "@testing-library/react": "^14.0.0",
181
188
  "@types/braintree-web": "^3.75.23",
182
189
  "@types/lodash": "^4.14.194",
183
- "@types/node": "^18.15.13",
190
+ "@types/node": "^18.16.0",
184
191
  "@types/prop-types": "^15.7.5",
185
- "@types/react": "^18.0.37",
192
+ "@types/react": "^18.0.38",
186
193
  "@types/react-table": "^7.7.14",
187
194
  "@types/react-test-renderer": "^18.0.0",
188
195
  "@types/react-window": "^1.8.5",