@commercelayer/react-components 4.0.0-alpha.6 → 4.0.0-alpha.7
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/lib/cjs/components/addresses/Address.d.ts +4 -9
- package/lib/cjs/components/addresses/Address.js +1 -1
- package/lib/cjs/components/addresses/AddressField.d.ts +8 -12
- package/lib/cjs/components/addresses/AddressField.js +1 -1
- package/lib/cjs/components/addresses/AddressesContainer.d.ts +2 -9
- package/lib/cjs/components/addresses/AddressesContainer.js +1 -1
- package/lib/cjs/components/addresses/AddressesEmpty.d.ts +14 -0
- package/lib/cjs/components/addresses/AddressesEmpty.js +1 -0
- package/lib/cjs/components/customers/CustomerContainer.d.ts +2 -2
- package/lib/cjs/components/customers/CustomerContainer.js +1 -1
- package/lib/cjs/components/orders/OrderContainer.d.ts +4 -18
- package/lib/cjs/components/orders/OrderContainer.js +1 -1
- package/lib/cjs/components/orders/OrderList.d.ts +2 -2
- package/lib/cjs/components/orders/OrderList.js +1 -1
- package/lib/cjs/components/orders/OrderListEmpty.d.ts +1 -1
- package/lib/cjs/components/orders/OrderListRow.d.ts +9 -5
- package/lib/cjs/components/orders/OrderListRow.js +1 -1
- package/lib/cjs/components/utils/AddressCardsTemplate.d.ts +6 -6
- package/lib/cjs/components/utils/AddressCardsTemplate.js +1 -1
- package/lib/cjs/context/OrderContext.d.ts +3 -3
- package/lib/cjs/index.d.ts +2 -1
- package/lib/cjs/index.js +1 -1
- package/lib/cjs/reducers/AddressReducer.d.ts +17 -23
- package/lib/cjs/reducers/AddressReducer.js +1 -1
- package/lib/cjs/reducers/CustomerReducer.d.ts +2 -2
- package/lib/cjs/reducers/CustomerReducer.js +1 -1
- package/lib/cjs/reducers/OrderReducer.d.ts +3 -6
- package/lib/cjs/reducers/OrderReducer.js +1 -1
- package/lib/cjs/utils/addressesManager.d.ts +5 -4
- package/lib/esm/components/addresses/Address.d.ts +4 -9
- package/lib/esm/components/addresses/Address.js +1 -1
- package/lib/esm/components/addresses/AddressField.d.ts +8 -12
- package/lib/esm/components/addresses/AddressField.js +1 -1
- package/lib/esm/components/addresses/AddressesContainer.d.ts +2 -9
- package/lib/esm/components/addresses/AddressesContainer.js +1 -1
- package/lib/esm/components/addresses/AddressesEmpty.d.ts +14 -0
- package/lib/esm/components/addresses/AddressesEmpty.js +1 -0
- package/lib/esm/components/customers/CustomerContainer.d.ts +2 -2
- package/lib/esm/components/customers/CustomerContainer.js +1 -1
- package/lib/esm/components/orders/OrderContainer.d.ts +4 -18
- package/lib/esm/components/orders/OrderContainer.js +1 -1
- package/lib/esm/components/orders/OrderList.d.ts +2 -2
- package/lib/esm/components/orders/OrderList.js +1 -1
- package/lib/esm/components/orders/OrderListEmpty.d.ts +1 -1
- package/lib/esm/components/orders/OrderListRow.d.ts +9 -5
- package/lib/esm/components/orders/OrderListRow.js +1 -1
- package/lib/esm/components/utils/AddressCardsTemplate.d.ts +6 -6
- package/lib/esm/components/utils/AddressCardsTemplate.js +1 -1
- package/lib/esm/context/OrderContext.d.ts +3 -3
- package/lib/esm/index.d.ts +2 -1
- package/lib/esm/index.js +1 -1
- package/lib/esm/reducers/AddressReducer.d.ts +17 -23
- package/lib/esm/reducers/AddressReducer.js +1 -1
- package/lib/esm/reducers/CustomerReducer.d.ts +2 -2
- package/lib/esm/reducers/CustomerReducer.js +1 -1
- package/lib/esm/reducers/OrderReducer.d.ts +3 -6
- package/lib/esm/reducers/OrderReducer.js +1 -1
- package/lib/esm/utils/addressesManager.d.ts +5 -4
- package/lib/tsconfig.prod.esm.tsbuildinfo +1 -1
- package/lib/tsconfig.prod.tsbuildinfo +1 -1
- package/package.json +9 -9
|
@@ -15,7 +15,7 @@ export declare type GetOrderParams = Partial<{
|
|
|
15
15
|
persistKey: string;
|
|
16
16
|
state: OrderState;
|
|
17
17
|
}>;
|
|
18
|
-
export declare type GetOrder = (params: GetOrderParams) => Promise<
|
|
18
|
+
export declare type GetOrder = (params: GetOrderParams) => Promise<undefined | Order>;
|
|
19
19
|
declare type CreateOrderParams = Pick<AddToCartParams, 'config' | 'dispatch' | 'persistKey' | 'state' | 'orderMetadata' | 'orderAttributes' | 'setLocalOrder'>;
|
|
20
20
|
export declare type CreateOrder = (params?: CreateOrderParams) => Promise<string>;
|
|
21
21
|
export declare type AddToCartParams = Partial<{
|
|
@@ -59,7 +59,7 @@ export interface OrderPayload {
|
|
|
59
59
|
}
|
|
60
60
|
export declare type AddToCartValues = Pick<AddToCartParams, 'bundleCode' | 'lineItem' | 'quantity' | 'skuCode' | 'skuId' | 'option' | 'buyNowMode' | 'checkoutUrl'>;
|
|
61
61
|
export declare type AddToCartImportValues = Pick<AddToCartImportParams, 'lineItems'>;
|
|
62
|
-
export declare type getOrderContext = (id: string) => Promise<
|
|
62
|
+
export declare type getOrderContext = (id: string) => Promise<undefined | Order>;
|
|
63
63
|
export declare type OrderState = Partial<OrderPayload>;
|
|
64
64
|
export interface OrderActions {
|
|
65
65
|
type: OrderActionType;
|
|
@@ -78,10 +78,7 @@ export interface UpdateOrderArgs {
|
|
|
78
78
|
}
|
|
79
79
|
export declare function updateOrder({ id, attributes, dispatch, config, include, state }: UpdateOrderArgs): Promise<{
|
|
80
80
|
success: boolean;
|
|
81
|
-
error?:
|
|
82
|
-
} | {
|
|
83
|
-
success: boolean;
|
|
84
|
-
error: unknown;
|
|
81
|
+
error?: unknown;
|
|
85
82
|
}>;
|
|
86
83
|
export declare const setOrder: (order: Order, dispatch?: Dispatch<OrderActions>) => void;
|
|
87
84
|
export interface AddResourceToInclude {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.orderInitialState=exports.removeGiftCardOrCouponCode=exports.setGiftCardOrCouponCode=exports.saveAddressToCustomerAddressBook=exports.setOrderErrors=exports.unsetOrderState=exports.addToCart=exports.addResourceToInclude=exports.setOrder=exports.updateOrder=exports.getApiOrder=exports.createOrder=void 0;const tslib_1=require("tslib"),localStorage_1=require("../utils/localStorage"),baseReducer_1=tslib_1.__importDefault(require("../utils/baseReducer")),isEmpty_1=tslib_1.__importDefault(require("lodash/isEmpty")),size_1=tslib_1.__importDefault(require("lodash/size")),map_1=tslib_1.__importDefault(require("lodash/map")),getSdk_1=tslib_1.__importDefault(require("../utils/getSdk")),getErrors_1=tslib_1.__importStar(require("../utils/getErrors")),organization_1=tslib_1.__importDefault(require("../utils/organization")),actionType=["setLoading","setOrderId","setOrder","setSingleQuantity","setCurrentSkuCodes","setCurrentSkuPrices","setErrors","setCurrentItem","setSaveAddressToCustomerAddressBook","setIncludesResource"],createOrder=async params=>{if(params){const{persistKey,state,dispatch,config,orderMetadata:metadata,orderAttributes={},setLocalOrder}=params;if(state?.orderId)return state.orderId;const sdk=(0,getSdk_1.default)(config);try{const o=await sdk?.orders.create({metadata,...orderAttributes});return dispatch&&dispatch({type:"setOrderId",payload:{orderId:o?.id}}),persistKey&&setLocalOrder&&setLocalOrder(persistKey,o.id),o.id}catch(error){const errors=(0,getErrors_1.default)(error,"orders");console.error("Create order",errors),dispatch&&(0,getErrors_1.setErrors)({currentErrors:state?.errors,newErrors:errors,dispatch})}}return""};exports.createOrder=createOrder;const getApiOrder=async params=>{const{id,dispatch,config,clearWhenPlaced,persistKey,deleteLocalOrder,state}=params,sdk=(0,getSdk_1.default)(config);try{const options={};state?.include&&state.include.length>0&&(options.include=state.include);const order=await sdk.orders.retrieve(id,options);return clearWhenPlaced&&order.status==="placed"||order.status==="approved"||order.status==="cancelled"?(persistKey&&deleteLocalOrder&&deleteLocalOrder(persistKey),dispatch&&dispatch({type:"setOrder",payload:{order:void 0,orderId:""}})):dispatch&&dispatch({type:"setOrder",payload:{order,orderId:order.id}}),order}catch(error){const errors=(0,getErrors_1.default)(error,"orders");console.error("Retrieve order",errors),dispatch&&(0,getErrors_1.setErrors)({currentErrors:state?.errors,newErrors:errors,dispatch});return}};exports.getApiOrder=getApiOrder;async function updateOrder({id,attributes,dispatch,config,include,state}){const sdk=(0,getSdk_1.default)(config);try{const resource={...attributes,id};await sdk.orders.update(resource,{include});const order=await(0,exports.getApiOrder)({id,config,dispatch,state});return dispatch&&order&&dispatch({type:"setOrder",payload:{order}}),{success:!0}}catch(error){const errors=(0,getErrors_1.default)(error,"orders");return dispatch&&(setOrderErrors({errors,dispatch}),dispatch({type:"setErrors",payload:{errors}})),{success:!1,error}}}exports.updateOrder=updateOrder;const setOrder=(order,dispatch)=>{dispatch&&dispatch({type:"setOrder",payload:{order}})};exports.setOrder=setOrder;function addResourceToInclude({resourcesIncluded=[],dispatch,newResource,newResourceLoaded,resourceIncludedLoaded}){const payload={include:void 0,includeLoaded:void 0};if(newResource){const resources=typeof newResource=="string"?[newResource]:newResource;payload.include=[...resourcesIncluded,...resources],resources.forEach(resource=>{
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.orderInitialState=exports.removeGiftCardOrCouponCode=exports.setGiftCardOrCouponCode=exports.saveAddressToCustomerAddressBook=exports.setOrderErrors=exports.unsetOrderState=exports.addToCart=exports.addResourceToInclude=exports.setOrder=exports.updateOrder=exports.getApiOrder=exports.createOrder=void 0;const tslib_1=require("tslib"),localStorage_1=require("../utils/localStorage"),baseReducer_1=tslib_1.__importDefault(require("../utils/baseReducer")),isEmpty_1=tslib_1.__importDefault(require("lodash/isEmpty")),size_1=tslib_1.__importDefault(require("lodash/size")),map_1=tslib_1.__importDefault(require("lodash/map")),getSdk_1=tslib_1.__importDefault(require("../utils/getSdk")),getErrors_1=tslib_1.__importStar(require("../utils/getErrors")),organization_1=tslib_1.__importDefault(require("../utils/organization")),actionType=["setLoading","setOrderId","setOrder","setSingleQuantity","setCurrentSkuCodes","setCurrentSkuPrices","setErrors","setCurrentItem","setSaveAddressToCustomerAddressBook","setIncludesResource"],createOrder=async params=>{if(params){const{persistKey,state,dispatch,config,orderMetadata:metadata,orderAttributes={},setLocalOrder}=params;if(state?.orderId)return state.orderId;const sdk=(0,getSdk_1.default)(config);try{const o=await sdk?.orders.create({metadata,...orderAttributes});return dispatch&&dispatch({type:"setOrderId",payload:{orderId:o?.id}}),persistKey&&setLocalOrder&&setLocalOrder(persistKey,o.id),o.id}catch(error){const errors=(0,getErrors_1.default)(error,"orders");console.error("Create order",errors),dispatch&&(0,getErrors_1.setErrors)({currentErrors:state?.errors,newErrors:errors,dispatch})}}return""};exports.createOrder=createOrder;const getApiOrder=async params=>{const{id,dispatch,config,clearWhenPlaced,persistKey,deleteLocalOrder,state}=params,sdk=(0,getSdk_1.default)(config);try{const options={};state?.include&&state.include.length>0&&(options.include=state.include);const order=await sdk.orders.retrieve(id,options);return clearWhenPlaced&&order.status==="placed"||order.status==="approved"||order.status==="cancelled"?(persistKey&&deleteLocalOrder&&deleteLocalOrder(persistKey),dispatch&&dispatch({type:"setOrder",payload:{order:void 0,orderId:""}})):dispatch&&dispatch({type:"setOrder",payload:{order,orderId:order.id}}),order}catch(error){const errors=(0,getErrors_1.default)(error,"orders");console.error("Retrieve order",errors),dispatch&&(0,getErrors_1.setErrors)({currentErrors:state?.errors,newErrors:errors,dispatch});return}};exports.getApiOrder=getApiOrder;async function updateOrder({id,attributes,dispatch,config,include,state}){const sdk=(0,getSdk_1.default)(config);try{const resource={...attributes,id};await sdk.orders.update(resource,{include});const order=await(0,exports.getApiOrder)({id,config,dispatch,state});return dispatch&&order&&dispatch({type:"setOrder",payload:{order}}),{success:!0}}catch(error){const errors=(0,getErrors_1.default)(error,"orders");return dispatch&&(setOrderErrors({errors,dispatch}),dispatch({type:"setErrors",payload:{errors}})),{success:!1,error}}}exports.updateOrder=updateOrder;const setOrder=(order,dispatch)=>{dispatch&&dispatch({type:"setOrder",payload:{order}})};exports.setOrder=setOrder;function addResourceToInclude({resourcesIncluded=[],dispatch,newResource,newResourceLoaded,resourceIncludedLoaded}){const payload={include:void 0,includeLoaded:void 0};if(newResource){const resources=typeof newResource=="string"?[newResource]:newResource;payload.include=[...resourcesIncluded,...resources],resources.forEach(resource=>{const includeLoaded={...payload.includeLoaded,[resource]:!0};payload.includeLoaded=includeLoaded})}else delete payload.include;const payloadIncludeLoaded={...resourceIncludedLoaded,...newResourceLoaded,...payload.includeLoaded&&payload.includeLoaded};payload.includeLoaded=payloadIncludeLoaded,dispatch&&dispatch({type:"setIncludesResource",payload:{...payload,withoutIncludes:!1}})}exports.addResourceToInclude=addResourceToInclude;const addToCart=async params=>{const{skuCode,bundleCode,skuId,quantity,option,config,dispatch,lineItem,state,errors=[],buyNowMode,checkoutUrl}=params;try{if(!config)throw{errors:[{code:"INVALID_RESOURCE",resource:"orders",title:"Markup error",message:"You are trying to place an order outside the OrderContainer component"}]};const sdk=(0,getSdk_1.default)(config),id=await(0,exports.createOrder)(params);if(id){const order=sdk.orders.relationship(id),name=lineItem?.name,imageUrl=lineItem?.imageUrl;if(buyNowMode)if(state?.order?.line_items)await Promise.all(state?.order?.line_items.map(async lineItem2=>{await sdk.line_items.delete(lineItem2.id)}));else{const{line_items:lineItems}=await sdk.orders.retrieve(id,{fields:["line_items"],include:["line_items"]});lineItems&&lineItems?.length>0&&await Promise.all(lineItems.map(async lineItem2=>{await sdk.line_items.delete(lineItem2.id)}))}const attrs={order,sku_code:skuCode,name,image_url:imageUrl,quantity:quantity||1,_update_quantity:!0,bundle_code:bundleCode};skuId&&(attrs.item=sdk.skus.relationship(skuId));const newLineItem=await sdk.line_items.create(attrs);if((0,isEmpty_1.default)(option))await(0,exports.getApiOrder)({id,...params,state});else{let c=0;(0,map_1.default)(option,async opt=>{const{options,skuOptionId}=opt,skuOption=sdk.sku_options.relationship(skuOptionId),lineItemRel=sdk.line_items.relationship(newLineItem.id),lineItemOptionsAttributes={quantity:1,options,sku_option:skuOption,line_item:lineItemRel};await sdk.line_item_options.create(lineItemOptionsAttributes),c+=1,c===(0,size_1.default)(option)&&await(0,exports.getApiOrder)({id,...params})})}if(!(0,isEmpty_1.default)(errors)&&dispatch&&dispatch({type:"setErrors",payload:{errors:[]}}),buyNowMode){const{organization}=(0,organization_1.default)(config.endpoint),params2=`${id}?accessToken=${config.accessToken}`,redirectUrl=checkoutUrl?`${checkoutUrl}/${params2}`:`https://${organization}.checkout.commercelayer.app/${params2}`;location.href=redirectUrl}return{success:!0,orderId:id}}return{success:!1,orderId:void 0}}catch(error){const errors2=(0,getErrors_1.default)(error,"orders");return console.error("Add to cart",errors2),dispatch&&(0,getErrors_1.setErrors)({currentErrors:state?.errors,newErrors:errors2,dispatch}),{success:!1,orderId:void 0}}};exports.addToCart=addToCart;const unsetOrderState=dispatch=>{dispatch({type:"setOrderId",payload:{orderId:""}}),dispatch({type:"setOrder",payload:{order:void 0}})};exports.unsetOrderState=unsetOrderState;function setOrderErrors({dispatch,errors=[]}){return dispatch&&dispatch({type:"setErrors",payload:{errors}}),{success:!1}}exports.setOrderErrors=setOrderErrors;const saveAddressToCustomerAddressBook=({type,value,dispatch})=>{const k=`_save_${type}_to_customer_address_book`,v=`${value.toString()}`;(0,localStorage_1.setCustomerOrderParam)(k,v),dispatch&&dispatch({type:"setSaveAddressToCustomerAddressBook",payload:{[k]:v}})};exports.saveAddressToCustomerAddressBook=saveAddressToCustomerAddressBook;const setGiftCardOrCouponCode=async({code,codeType,dispatch,config,order,include,state})=>{try{if(config&&order&&code&&dispatch){const attributes={[codeType]:code},{success,error}=await updateOrder({id:order.id,attributes,config,include,dispatch,state});if(!success)throw error;return dispatch({type:"setErrors",payload:{errors:[]}}),{success}}return{success:!1}}catch(error){const errors=(0,getErrors_1.default)(error,"orders",codeType);return dispatch&&setOrderErrors({errors,dispatch}),{success:!1}}};exports.setGiftCardOrCouponCode=setGiftCardOrCouponCode;const removeGiftCardOrCouponCode=async({codeType,dispatch,config,order,include,state})=>{try{if(config&&order&&dispatch){const attributes={[codeType]:""};return await updateOrder({id:order.id,attributes,config,include,dispatch,state}),dispatch({type:"setErrors",payload:{errors:[]}}),{success:!0}}return{success:!1}}catch(error){const errors=(0,getErrors_1.default)(error,"orders",codeType);return console.error("Remove gift card o coupon code",errors),dispatch&&setOrderErrors({errors,dispatch}),{success:!1}}};exports.removeGiftCardOrCouponCode=removeGiftCardOrCouponCode,exports.orderInitialState={loading:!0,orderId:"",order:void 0,errors:[],include:void 0,withoutIncludes:!0};const orderReducer=(state,reducer)=>(0,baseReducer_1.default)(state,reducer,actionType);exports.default=orderReducer;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { BaseError } from '../typings/errors';
|
|
2
|
-
import { AddressCreate } from '@commercelayer/sdk';
|
|
2
|
+
import { Address, AddressCreate } from '@commercelayer/sdk';
|
|
3
|
+
import { TCustomerAddress } from '../reducers/CustomerReducer';
|
|
3
4
|
declare type BillingAddressController = (params: {
|
|
4
5
|
billing_address?: AddressCreate;
|
|
5
6
|
billingAddressId?: string;
|
|
@@ -16,12 +17,12 @@ declare type ShippingAddressController = (params: {
|
|
|
16
17
|
}) => boolean;
|
|
17
18
|
export declare const shippingAddressController: ShippingAddressController;
|
|
18
19
|
declare type CountryLockController = (params: {
|
|
19
|
-
addresses?:
|
|
20
|
-
billing_address?:
|
|
20
|
+
addresses?: Address[] | null;
|
|
21
|
+
billing_address?: TCustomerAddress;
|
|
21
22
|
billingAddressId?: string;
|
|
22
23
|
countryCodeLock?: string;
|
|
23
24
|
shipToDifferentAddress?: boolean;
|
|
24
|
-
shipping_address?:
|
|
25
|
+
shipping_address?: AddressCreate;
|
|
25
26
|
shippingAddressId?: string;
|
|
26
27
|
}) => boolean;
|
|
27
28
|
export declare const countryLockController: CountryLockController;
|
|
@@ -1,18 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
2
|
import type { Address as AddressType } from '@commercelayer/sdk';
|
|
3
3
|
import { AddressCardsTemplateChildren } from '../utils/AddressCardsTemplate';
|
|
4
|
-
|
|
5
|
-
children:
|
|
4
|
+
interface Props extends Omit<JSX.IntrinsicElements['div'], 'children' | 'onSelect'> {
|
|
5
|
+
children: JSX.Element[] | JSX.Element | AddressCardsTemplateChildren;
|
|
6
6
|
selectedClassName?: string;
|
|
7
7
|
disabledClassName?: string;
|
|
8
8
|
onSelect?: (address: AddressType) => void;
|
|
9
9
|
addresses?: AddressType[];
|
|
10
10
|
deselect?: boolean;
|
|
11
|
-
} & JSX.IntrinsicElements['div'];
|
|
12
|
-
export declare function Address(props: Props): JSX.Element;
|
|
13
|
-
export declare namespace Address {
|
|
14
|
-
var propTypes: {
|
|
15
|
-
children: import("prop-types").Validator<NonNullable<ReactNode | (() => JSX.Element)>>;
|
|
16
|
-
};
|
|
17
11
|
}
|
|
12
|
+
export declare function Address(props: Props): JSX.Element;
|
|
18
13
|
export default Address;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as _jsx}from"react/jsx-runtime";import{
|
|
1
|
+
import{jsx as _jsx,Fragment as _Fragment}from"react/jsx-runtime";import{useContext,useState,useEffect}from"react";import AddressChildrenContext from"../../context/AddressChildrenContext";import CustomerContext from"../../context/CustomerContext";import BillingAddressContext from"../../context/BillingAddressContext";import ShippingAddressContext from"../../context/ShippingAddressContext";import isEmpty from"lodash/isEmpty";import AddressContext from"../../context/AddressContext";import OrderContext from"../../context/OrderContext";import AddressCardsTemplate from"../utils/AddressCardsTemplate";export function Address(props){const{children,className,selectedClassName="",disabledClassName="",onSelect,addresses=[],deselect=!1,...p}=props,{addresses:addressesContext}=useContext(CustomerContext),{setBillingAddress,billingCustomerAddressId}=useContext(BillingAddressContext),{setShippingAddress,shippingCustomerAddressId}=useContext(ShippingAddressContext),{shipToDifferentAddress,billingAddressId,shippingAddressId}=useContext(AddressContext),{order}=useContext(OrderContext),[selected,setSelected]=useState(null),items=isEmpty(addresses)?addressesContext&&addressesContext||[]:addresses;useEffect(()=>{items&&!deselect&&items.forEach((address,k)=>{billingCustomerAddressId&&address.reference===billingCustomerAddressId&&selected===null&&setSelected(k),!billingAddressId&&k===selected&&setBillingAddress&&setBillingAddress(address.id,{customerAddressId:address.reference}),shippingCustomerAddressId&&address.reference===shippingCustomerAddressId&&selected===null&&setSelected(k),!shippingAddressId&&k===selected&&setShippingAddress&&setShippingAddress(address.id,{customerAddressId:address.reference})}),deselect&&(async()=>(setBillingAddress&&await setBillingAddress(""),setShippingAddress&&await setShippingAddress("")))()},[deselect,billingCustomerAddressId,shippingCustomerAddressId,addressesContext,shipToDifferentAddress]);const handleSelect=async(k,addressId,customerAddressId,disabled,address)=>{!disabled&&setSelected(k),setBillingAddress&&await setBillingAddress(addressId,{customerAddressId}),!disabled&&setShippingAddress&&await setShippingAddress(addressId,{customerAddressId}),onSelect&&onSelect(address)},countryLock=order?.shipping_country_code_lock,components=typeof children=="function"?[]:items.filter(address=>!(setShippingAddress&&countryLock&&countryLock!==address.country_code)).map((address,k)=>{const addressProps={address},disabled=setShippingAddress&&countryLock&&countryLock!==address.country_code||!1,addressSelectedClass=selected===k?`${className||""} ${deselect?"":selectedClassName}`:className,customerAddressId=address?.reference||"",finalClassName=disabled?`${className||""} ${disabledClassName}`:addressSelectedClass;return _jsx(AddressChildrenContext.Provider,{value:addressProps,children:_jsx("div",{className:finalClassName,onClick:()=>{handleSelect(k,address.id,customerAddressId,disabled,address)},"data-disabled":disabled,...p,children})},k)}),parentProps={customerAddresses:items,selected,handleSelect,countryLock,...props};return typeof children=="function"?_jsx(AddressCardsTemplate,{...parentProps,children}):_jsx(_Fragment,{children:components})}export default Address;
|
|
@@ -1,43 +1,39 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
2
|
import { AddressFieldView } from '../../reducers/AddressReducer';
|
|
3
3
|
import type { Address } from '@commercelayer/sdk';
|
|
4
|
-
|
|
4
|
+
import { ChildrenFunction } from '../../typings/index';
|
|
5
|
+
interface ChildrenProps extends Omit<Props, 'children' | 'name'> {
|
|
5
6
|
address: Address;
|
|
6
|
-
}
|
|
7
|
+
}
|
|
8
|
+
declare type ChildrenProp = ChildrenFunction<ChildrenProps>;
|
|
7
9
|
declare type Props = {
|
|
8
10
|
type?: 'field';
|
|
9
11
|
label?: never;
|
|
10
12
|
onClick?: never;
|
|
11
|
-
children?:
|
|
13
|
+
children?: ChildrenProp;
|
|
12
14
|
name: AddressFieldView;
|
|
13
15
|
className?: string;
|
|
14
16
|
} | {
|
|
15
17
|
type?: 'edit';
|
|
16
18
|
label: string | ReactNode;
|
|
17
19
|
onClick: (address: Address) => void;
|
|
18
|
-
children?:
|
|
20
|
+
children?: ChildrenProp;
|
|
19
21
|
name?: AddressFieldView;
|
|
20
22
|
className?: string;
|
|
21
23
|
} | {
|
|
22
24
|
type?: 'delete';
|
|
23
25
|
label: string;
|
|
24
26
|
onClick: () => void;
|
|
25
|
-
children?:
|
|
27
|
+
children?: ChildrenProp;
|
|
26
28
|
name?: AddressFieldView;
|
|
27
29
|
className?: string;
|
|
28
30
|
} | {
|
|
29
31
|
type?: 'edit' | 'field' | 'delete';
|
|
30
32
|
label?: never;
|
|
31
33
|
onClick?: never;
|
|
32
|
-
children:
|
|
34
|
+
children: ChildrenProp;
|
|
33
35
|
name?: never;
|
|
34
36
|
className?: string;
|
|
35
37
|
};
|
|
36
38
|
export declare function AddressField(props: Props): JSX.Element;
|
|
37
|
-
export declare namespace AddressField {
|
|
38
|
-
var propTypes: {
|
|
39
|
-
children: import("prop-types").Requireable<(...args: any[]) => any>;
|
|
40
|
-
};
|
|
41
|
-
var displayName: string;
|
|
42
|
-
}
|
|
43
39
|
export default AddressField;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as _jsx}from"react/jsx-runtime";import{useContext}from"react";import AddressChildrenContext from"../../context/AddressChildrenContext";import Parent from"../utils/Parent";import
|
|
1
|
+
import{jsx as _jsx}from"react/jsx-runtime";import{useContext}from"react";import AddressChildrenContext from"../../context/AddressChildrenContext";import Parent from"../utils/Parent";import CustomerContext from"../../context/CustomerContext";export function AddressField(props){const{name,type="field",label,onClick,...p}=props,{address}=useContext(AddressChildrenContext),text=name&&address?address?.[name]:"",{deleteCustomerAddress}=useContext(CustomerContext),handleClick=e=>{e.stopPropagation(),e.preventDefault(),type==="delete"&&deleteCustomerAddress&&address?.reference&&deleteCustomerAddress({customerAddressId:address?.reference}),address&&onClick&&onClick(address)},parentProps={address,...props};return props.children?_jsx(Parent,{...parentProps,children:props.children}):type==="field"?_jsx("p",{"data-testid":`address-field-${name??""}`,...p,name,children:text}):_jsx("a",{"data-testid":`address-field-${name??""}`,...p,onClick:handleClick,children:label})}export default AddressField;
|
|
@@ -1,15 +1,8 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
|
|
2
|
+
interface Props {
|
|
3
3
|
children: ReactNode;
|
|
4
4
|
shipToDifferentAddress?: boolean;
|
|
5
5
|
isBusiness?: boolean;
|
|
6
|
-
};
|
|
7
|
-
export declare function AddressesContainer(props: Props): JSX.Element;
|
|
8
|
-
export declare namespace AddressesContainer {
|
|
9
|
-
var propTypes: {
|
|
10
|
-
children: import("prop-types").Validator<NonNullable<ReactNode | (() => JSX.Element)>>;
|
|
11
|
-
shipToDifferentAddress: import("prop-types").Requireable<boolean>;
|
|
12
|
-
};
|
|
13
|
-
var displayName: string;
|
|
14
6
|
}
|
|
7
|
+
export declare function AddressesContainer(props: Props): JSX.Element;
|
|
15
8
|
export default AddressesContainer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as _jsx}from"react/jsx-runtime";import AddressesContext,{defaultAddressContext}from"../../context/AddressContext";import{useContext,useEffect,useReducer}from"react";import addressReducer,{addressInitialState,setAddressErrors,setCloneAddress}from"../../reducers/AddressReducer";import OrderContext from"../../context/OrderContext";import CommerceLayerContext from"../../context/CommerceLayerContext";
|
|
1
|
+
import{jsx as _jsx}from"react/jsx-runtime";import AddressesContext,{defaultAddressContext}from"../../context/AddressContext";import{useContext,useEffect,useReducer}from"react";import addressReducer,{addressInitialState,setAddressErrors,setCloneAddress,saveAddresses}from"../../reducers/AddressReducer";import OrderContext from"../../context/OrderContext";import CommerceLayerContext from"../../context/CommerceLayerContext";export function AddressesContainer(props){const{children,shipToDifferentAddress=!1,isBusiness}=props,[state,dispatch]=useReducer(addressReducer,addressInitialState),{order,orderId,updateOrder}=useContext(OrderContext),config=useContext(CommerceLayerContext);useEffect(()=>(dispatch({type:"setShipToDifferentAddress",payload:{shipToDifferentAddress,isBusiness}}),()=>{dispatch({type:"cleanup",payload:{}})}),[shipToDifferentAddress,isBusiness]);const contextValue={...state,setAddressErrors:(errors,resource)=>setAddressErrors({errors,resource,dispatch,currentErrors:state.errors}),setAddress:params=>defaultAddressContext.setAddress({...params,dispatch}),saveAddresses:async()=>await saveAddresses({config,dispatch,updateOrder,order,orderId,state}),setCloneAddress:(id,resource)=>setCloneAddress(id,resource,dispatch)};return _jsx(AddressesContext.Provider,{value:contextValue,children})}export default AddressesContainer;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { ChildrenFunction } from '../../typings/index';
|
|
3
|
+
interface Props extends Omit<JSX.IntrinsicElements['span'], 'children'> {
|
|
4
|
+
/**
|
|
5
|
+
* Function allow you to customize the component
|
|
6
|
+
*/
|
|
7
|
+
children?: ChildrenFunction<Omit<Props, 'children'>>;
|
|
8
|
+
/**
|
|
9
|
+
* Label to show. Default: 'No addresses available.'
|
|
10
|
+
*/
|
|
11
|
+
emptyText?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare function AddressesEmpty(props: Props): JSX.Element | null;
|
|
14
|
+
export default AddressesEmpty;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as _jsx}from"react/jsx-runtime";import Parent from"../utils/Parent";import CustomerContext from"../../context/CustomerContext";import{useContext}from"react";export function AddressesEmpty(props){const{children,emptyText="No addresses available.",...p}=props,{addresses}=useContext(CustomerContext),parentProps={emptyText,...p};return addresses==null||addresses.length>0?null:children!==void 0?_jsx(Parent,{...parentProps,children}):_jsx("span",{"data-testid":"addresses-empty",...p,children:emptyText})}export default AddressesEmpty;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
|
|
2
|
+
interface Props {
|
|
3
3
|
children: ReactNode;
|
|
4
4
|
/**
|
|
5
5
|
* Customer type
|
|
6
6
|
*/
|
|
7
7
|
isGuest?: boolean;
|
|
8
|
-
}
|
|
8
|
+
}
|
|
9
9
|
export declare function CustomerContainer(props: Props): JSX.Element;
|
|
10
10
|
export default CustomerContainer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as _jsx}from"react/jsx-runtime";import{useContext,useEffect,useReducer}from"react";import customerReducer,{customerInitialState,getCustomerAddresses,getCustomerOrders,getCustomerPaymentSources,setCustomerEmail,setCustomerErrors,deleteCustomerAddress,createCustomerAddress}from"../../reducers/CustomerReducer";import OrderContext from"../../context/OrderContext";import CommerceLayerContext from"../../context/CommerceLayerContext";import
|
|
1
|
+
import{jsx as _jsx}from"react/jsx-runtime";import{useContext,useEffect,useReducer}from"react";import customerReducer,{customerInitialState,getCustomerAddresses,getCustomerOrders,getCustomerPaymentSources,setCustomerEmail,setCustomerErrors,deleteCustomerAddress,createCustomerAddress,saveCustomerUser}from"../../reducers/CustomerReducer";import OrderContext from"../../context/OrderContext";import CommerceLayerContext from"../../context/CommerceLayerContext";import CustomerContext from"../../context/CustomerContext";export function CustomerContainer(props){const{children,isGuest=!1}=props,[state,dispatch]=useReducer(customerReducer,customerInitialState),{order,addResourceToInclude,include,updateOrder,includeLoaded}=useContext(OrderContext),config=useContext(CommerceLayerContext);useEffect(()=>{!include?.includes("available_customer_payment_sources.payment_source")&&!isGuest?addResourceToInclude({newResource:"available_customer_payment_sources.payment_source"}):!includeLoaded?.["available_customer_payment_sources.payment_source"]&&!isGuest&&addResourceToInclude({newResourceLoaded:{"available_customer_payment_sources.payment_source":!0}})},[include,includeLoaded]),useEffect(()=>{config.accessToken&&state.addresses==null&&!isGuest&&getCustomerAddresses({config,dispatch}),order?.available_customer_payment_sources&&!isGuest&&getCustomerPaymentSources({dispatch,order}),config.accessToken&&!order&&!include&&!includeLoaded&&getCustomerOrders({config,dispatch})},[config.accessToken,order,isGuest]);const contextValue={isGuest,...state,saveCustomerUser:async customerEmail=>{await saveCustomerUser({config,customerEmail,dispatch,updateOrder,order})},setCustomerErrors:errors=>setCustomerErrors(errors,dispatch),setCustomerEmail:customerEmail=>setCustomerEmail(customerEmail,dispatch),getCustomerPaymentSources:()=>getCustomerPaymentSources({dispatch,order}),deleteCustomerAddress:async({customerAddressId})=>await deleteCustomerAddress({customerAddressId,dispatch,config,addresses:state.addresses}),createCustomerAddress:async address=>await createCustomerAddress({address,config,dispatch,state})};return _jsx(CustomerContext.Provider,{value:contextValue,children})}export default CustomerContainer;
|
|
@@ -1,26 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
2
|
import { BaseMetadataObject } from '../../typings/index';
|
|
3
3
|
import type { OrderCreate, Order } from '@commercelayer/sdk';
|
|
4
|
-
|
|
5
|
-
children:
|
|
4
|
+
interface Props {
|
|
5
|
+
children: JSX.Element[] | JSX.Element;
|
|
6
6
|
metadata?: BaseMetadataObject;
|
|
7
7
|
attributes?: OrderCreate;
|
|
8
8
|
orderId?: string;
|
|
9
9
|
fetchOrder?: (order: Order) => void;
|
|
10
|
-
};
|
|
11
|
-
export declare function OrderContainer(props: Props): JSX.Element;
|
|
12
|
-
export declare namespace OrderContainer {
|
|
13
|
-
var propTypes: {
|
|
14
|
-
children: import("prop-types").Validator<NonNullable<ReactNode | (() => JSX.Element)>>;
|
|
15
|
-
orderId: import("prop-types").Requireable<string>;
|
|
16
|
-
metadata: import("prop-types").Requireable<{
|
|
17
|
-
[x: string]: string | null | undefined;
|
|
18
|
-
}>;
|
|
19
|
-
attributes: import("prop-types").Requireable<object>;
|
|
20
|
-
};
|
|
21
|
-
var defaultProps: {
|
|
22
|
-
metadata: {};
|
|
23
|
-
};
|
|
24
|
-
var displayName: string;
|
|
25
10
|
}
|
|
11
|
+
export declare function OrderContainer(props: Props): JSX.Element;
|
|
26
12
|
export default OrderContainer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as _jsx}from"react/jsx-runtime";import{useEffect,useReducer,useContext,useMemo,useState}from"react";import orderReducer,{createOrder,getApiOrder,setOrderErrors,setOrder,orderInitialState,updateOrder}from"../../reducers/OrderReducer";import CommerceLayerContext from"../../context/CommerceLayerContext";import OrderContext,{defaultOrderContext}from"../../context/OrderContext";import
|
|
1
|
+
import{jsx as _jsx}from"react/jsx-runtime";import{useEffect,useReducer,useContext,useMemo,useState}from"react";import orderReducer,{createOrder,getApiOrder,setOrderErrors,setOrder,orderInitialState,updateOrder}from"../../reducers/OrderReducer";import CommerceLayerContext from"../../context/CommerceLayerContext";import OrderContext,{defaultOrderContext}from"../../context/OrderContext";import OrderStorageContext from"../../context/OrderStorageContext";import compareObjAttribute from"../../utils/compareObjAttribute";export function OrderContainer(props){const{orderId,children,metadata,attributes,fetchOrder}=props,[state,dispatch]=useReducer(orderReducer,orderInitialState),[lock,setLock]=useState(!1),[lockOrder,setLockOrder]=useState(!0),config=useContext(CommerceLayerContext),{persistKey,clearWhenPlaced,getLocalOrder,setLocalOrder,deleteLocalOrder}=useContext(OrderStorageContext);useEffect(()=>{state.withoutIncludes||dispatch({type:"setLoading",payload:{loading:!0}})},[state.withoutIncludes]),useEffect(()=>{if(attributes&&state?.order&&!lock){const updateAttributes=compareObjAttribute({attributes,object:state.order});Object.keys(updateAttributes).length>0&&(updateOrder({id:state.order.id,attributes:updateAttributes,dispatch,config,include:state.include,state}),setLock(!0))}return()=>{if(attributes&&state?.order){const updateAttributes=compareObjAttribute({attributes,object:state.order});state.order&&Object.keys(updateAttributes).length===0&&setLock(!1)}}},[attributes,state?.order,lock]),useEffect(()=>{const localOrder=persistKey?getLocalOrder(persistKey):orderId,startRequest=Object.keys(state?.includeLoaded||{}).filter(key=>state?.includeLoaded?.[key]===!0),getOrder=async()=>{localOrder&&await getApiOrder({id:localOrder,dispatch,config,persistKey,clearWhenPlaced:!!(persistKey&&clearWhenPlaced),deleteLocalOrder,state})};return config.accessToken&&!state.loading?localOrder&&!state.order&&state.include?.length===startRequest.length&&!state.withoutIncludes&&!lockOrder?getOrder():state?.order&&fetchOrder?fetchOrder(state.order):state.withoutIncludes&&!state.include?.length&&startRequest.length===0&&getOrder():[config.accessToken,!state.order,state.loading,state.withoutIncludes].every(Boolean)?dispatch({type:"setLoading",payload:{loading:!1}}):[config.accessToken,!state.order,state.loading,!state.withoutIncludes].every(Boolean)&&dispatch({type:"setLoading",payload:{loading:!1}}),()=>{!state.order&&state.loading&&!state.withoutIncludes&&(state.include?.length===0&&startRequest.length>0?dispatch({type:"setLoading",payload:{loading:!1}}):state.include&&state.include?.length>0&&(dispatch({type:"setIncludesResource",payload:{include:[]}}),setLockOrder(!1)))}},[config.accessToken,state.includeLoaded,state.include,orderId,state.order,state.loading,state.withoutIncludes,lockOrder]);const orderValue=useMemo(()=>({...state,setOrder:order=>setOrder(order,dispatch),getOrder:async id=>await getApiOrder({id,dispatch,config,state}),setOrderErrors:errors=>setOrderErrors({dispatch,errors}),createOrder:async()=>await createOrder({persistKey,dispatch,config,state,orderMetadata:metadata,orderAttributes:attributes,setLocalOrder}),addToCart:async values=>await defaultOrderContext.addToCart({...values,persistKey,dispatch,state,config,errors:state.errors,orderMetadata:metadata||{},orderAttributes:attributes,setLocalOrder}),saveAddressToCustomerAddressBook:args=>defaultOrderContext.saveAddressToCustomerAddressBook({...args,dispatch}),setGiftCardOrCouponCode:async({code,codeType})=>await defaultOrderContext.setGiftCardOrCouponCode({code,codeType,dispatch,order:state.order,config,include:state.include,state}),removeGiftCardOrCouponCode:async({codeType})=>await defaultOrderContext.removeGiftCardOrCouponCode({codeType,dispatch,order:state.order,config,include:state.include,state}),addResourceToInclude:args=>defaultOrderContext.addResourceToInclude({...args,dispatch,resourcesIncluded:state.include,resourceIncludedLoaded:state.includeLoaded}),updateOrder:async args=>await defaultOrderContext.updateOrder({...args,dispatch,config,include:state.include,state})}),[state,config.accessToken]);return _jsx(OrderContext.Provider,{value:orderValue,children})}export default OrderContainer;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
2
|
import { InitialOrderListContext } from '../../context/OrderListChildrenContext';
|
|
3
3
|
import { Column } from 'react-table';
|
|
4
4
|
import type { Order } from '@commercelayer/sdk';
|
|
@@ -9,7 +9,7 @@ export declare type OrderListColumn = Column & {
|
|
|
9
9
|
titleClassName?: string;
|
|
10
10
|
};
|
|
11
11
|
declare type Props = {
|
|
12
|
-
children:
|
|
12
|
+
children: JSX.Element[] | JSX.Element;
|
|
13
13
|
/**
|
|
14
14
|
* Columns to show
|
|
15
15
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createElement as _createElement}from"react";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{useContext,useMemo,useState,useEffect,useCallback}from"react";import CustomerContext from"../../context/CustomerContext";import OrderListChildrenContext from"../../context/OrderListChildrenContext";import{useTable,useSortBy,useBlockLayout}from"react-table";import{FixedSizeList}from"react-window";import scrollbarWidth from"../../utils/scrollbarWidth";import{sortDescIcon,sortAscIcon}from"../../utils/icons";export function OrderList({children,columns,loadingElement,showActions=!1,actionsComponent,actionsContainerClassName,infiniteScroll,windowOptions,theadClassName,rowTrClassName,...p}){const[loading,setLoading]=useState(!0),{orders}=useContext(CustomerContext),data=useMemo(()=>orders??[],[orders]),cols=useMemo(()=>columns,[columns]),tablePlugins=[useSortBy];infiniteScroll&&tablePlugins.push(useBlockLayout);const defaultColumn=useMemo(()=>({width:windowOptions?.column||150}),[windowOptions?.column]),table=useTable({data,columns:cols,...infiniteScroll&&{defaultColumn}},...tablePlugins),TableHtmlElement=infiniteScroll?"div":"table",TheadHtmlElement=infiniteScroll?"div":"thead",TbodyHtmlElement=infiniteScroll?"div":"tbody",ThHtmlElement=infiniteScroll?"div":"th",TrHtmlElement=infiniteScroll?"div":"tr";useEffect(()=>(orders!==void 0&&setLoading(!1),()=>{setLoading(!0)}),[orders]);const scrollBarSize=infiniteScroll?useMemo(()=>scrollbarWidth(),[]):0,LoadingComponent=loadingElement||_jsx("div",{children:"Loading..."}),headerComponent=table.headerGroups.map((headerGroup,i)=>{const columns2=headerGroup.headers.map((column,k)=>_createElement(ThHtmlElement,{className:column?.className,...column.getHeaderProps(column?.getSortByToggleProps&&column?.getSortByToggleProps()),key:k},_jsxs("span",{
|
|
1
|
+
import{createElement as _createElement}from"react";import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{useContext,useMemo,useState,useEffect,useCallback}from"react";import CustomerContext from"../../context/CustomerContext";import OrderListChildrenContext from"../../context/OrderListChildrenContext";import{useTable,useSortBy,useBlockLayout}from"react-table";import{FixedSizeList}from"react-window";import scrollbarWidth from"../../utils/scrollbarWidth";import{sortDescIcon,sortAscIcon}from"../../utils/icons";export function OrderList({children,columns,loadingElement,showActions=!1,actionsComponent,actionsContainerClassName,infiniteScroll,windowOptions,theadClassName,rowTrClassName,...p}){const[loading,setLoading]=useState(!0),{orders}=useContext(CustomerContext),data=useMemo(()=>orders??[],[orders]),cols=useMemo(()=>columns,[columns]),tablePlugins=[useSortBy];infiniteScroll&&tablePlugins.push(useBlockLayout);const defaultColumn=useMemo(()=>({width:windowOptions?.column||150}),[windowOptions?.column]),table=useTable({data,columns:cols,...infiniteScroll&&{defaultColumn}},...tablePlugins),TableHtmlElement=infiniteScroll?"div":"table",TheadHtmlElement=infiniteScroll?"div":"thead",TbodyHtmlElement=infiniteScroll?"div":"tbody",ThHtmlElement=infiniteScroll?"div":"th",TrHtmlElement=infiniteScroll?"div":"tr";useEffect(()=>(orders!==void 0&&setLoading(!1),()=>{setLoading(!0)}),[orders]);const scrollBarSize=infiniteScroll?useMemo(()=>scrollbarWidth(),[]):0,LoadingComponent=loadingElement||_jsx("div",{children:"Loading..."}),headerComponent=table.headerGroups.map((headerGroup,i)=>{const columns2=headerGroup.headers.map((column,k)=>{const sortLabel=column.isSorted?column.isSortedDesc?"desc":"asc":"";return _createElement(ThHtmlElement,{"data-testid":`thead-${k}`,"data-sort":`${sortLabel}`,className:column?.className,...column.getHeaderProps(column?.getSortByToggleProps&&column?.getSortByToggleProps()),key:k},_jsxs("span",{className:column?.titleClassName,children:[column.render("Header"),column.isSorted?column.isSortedDesc?sortDescIcon:sortAscIcon:""]}))});return _createElement(TrHtmlElement,{...headerGroup.getHeaderGroupProps(),key:i},columns2)}),components=infiniteScroll?useCallback(({index,style})=>{const row=table.rows[index];row&&table.prepareRow(row);const childProps={orders,order:orders?.[index],row,showActions,actionsComponent,actionsContainerClassName,infiniteScroll};return _jsx(TrHtmlElement,{...row?.getRowProps({style}),className:rowTrClassName,children:_jsx(OrderListChildrenContext.Provider,{value:childProps,children})})},[table.prepareRow,table.rows]):table.rows.map((row,i)=>{table.prepareRow(row);const childProps={orders,order:orders?.[i],row,showActions,actionsComponent,actionsContainerClassName,infiniteScroll};return _createElement(TrHtmlElement,{...row.getRowProps(),className:rowTrClassName,key:i},_jsx(OrderListChildrenContext.Provider,{value:childProps,children}))});return loading&&orders==null?_jsx(_Fragment,{children:LoadingComponent}):orders?.length===0?_jsx(OrderListChildrenContext.Provider,{value:{orders},children}):_jsxs(TableHtmlElement,{...p,...table.getTableProps(),children:[_jsx(TheadHtmlElement,{className:theadClassName,children:headerComponent}),_jsx(TbodyHtmlElement,{...table.getTableBodyProps(),children:infiniteScroll?_jsx(FixedSizeList,{height:windowOptions?.height||400,itemCount:table.rows.length,itemSize:windowOptions?.itemSize||100,width:windowOptions?.width||table.totalColumnsWidth+scrollBarSize,children:components}):components})]})}export default OrderList;
|
|
@@ -4,7 +4,7 @@ interface Props extends Omit<JSX.IntrinsicElements['span'], 'children'> {
|
|
|
4
4
|
/**
|
|
5
5
|
* Function allow you to customize the component
|
|
6
6
|
*/
|
|
7
|
-
children?: ChildrenFunction<Props
|
|
7
|
+
children?: ChildrenFunction<Omit<Props, 'children'>>;
|
|
8
8
|
/**
|
|
9
9
|
* Label to show. Default: 'No orders available.'
|
|
10
10
|
*/
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { Cell, Row } from 'react-table';
|
|
2
|
+
import type { Cell, Row } from 'react-table';
|
|
3
3
|
import type { Order } from '@commercelayer/sdk';
|
|
4
|
-
|
|
4
|
+
interface ChildrenProps extends Omit<Props, 'children'> {
|
|
5
5
|
/**
|
|
6
6
|
* The order resource
|
|
7
7
|
*/
|
|
@@ -14,17 +14,21 @@ declare type ChildrenProps = Omit<Props, 'children'> & {
|
|
|
14
14
|
* The current cell
|
|
15
15
|
*/
|
|
16
16
|
cell: Cell[];
|
|
17
|
+
/**
|
|
18
|
+
* All table cells
|
|
19
|
+
*/
|
|
20
|
+
cells: Cell[];
|
|
17
21
|
/**
|
|
18
22
|
* Infinite scroll enabled
|
|
19
23
|
*/
|
|
20
24
|
infiniteScroll: boolean;
|
|
21
|
-
}
|
|
22
|
-
|
|
25
|
+
}
|
|
26
|
+
interface Props extends Omit<JSX.IntrinsicElements['td'], 'children'> {
|
|
23
27
|
children?: (props: ChildrenProps) => JSX.Element;
|
|
24
28
|
/**
|
|
25
29
|
* The order field to show
|
|
26
30
|
*/
|
|
27
31
|
field: keyof Order;
|
|
28
|
-
}
|
|
32
|
+
}
|
|
29
33
|
export declare function OrderListRow({ field, children, ...p }: Props): JSX.Element;
|
|
30
34
|
export default OrderListRow;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createElement as _createElement}from"react";import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";import{useContext}from"react";import Parent from"../utils/Parent";import OrderListChildrenContext from"../../context/OrderListChildrenContext";import isDate from"../../utils/isDate";import last from"lodash/last";export function OrderListRow({field,children,...p}){const{order,row,showActions,actionsComponent,actionsContainerClassName,infiniteScroll}=useContext(OrderListChildrenContext),cell=row?.cells.filter(cell2=>cell2.column.id===field),isLastRow=last(row?.cells)?.column.id===field,As=infiniteScroll?"div":"td",ActionRow=()=>showActions&&isLastRow&&actionsComponent&&_jsx(As,{
|
|
1
|
+
import{createElement as _createElement}from"react";import{jsx as _jsx,Fragment as _Fragment,jsxs as _jsxs}from"react/jsx-runtime";import{useContext}from"react";import Parent from"../utils/Parent";import OrderListChildrenContext from"../../context/OrderListChildrenContext";import isDate from"../../utils/isDate";import last from"lodash/last";export function OrderListRow({field,children,...p}){const{order,row,showActions,actionsComponent,actionsContainerClassName,infiniteScroll}=useContext(OrderListChildrenContext),cell=row?.cells.filter(cell2=>cell2.column.id===field),isLastRow=last(row?.cells)?.column.id===field,As=infiniteScroll?"div":"td",ActionRow=()=>showActions&&isLastRow&&actionsComponent&&_jsx(As,{"data-testid":"action-cell",...p,className:actionsContainerClassName,children:_jsx(Parent,{...parentProps,children:actionsComponent})})||null,parentProps={...p,field,order,row,cell,infiniteScroll};return children?_jsxs(_Fragment,{children:[_jsx(Parent,{...parentProps,children}),_jsx(ActionRow,{})]}):_jsxs(_Fragment,{children:[cell?.map((cell2,k)=>{const cellValue=cell2.value,value=isDate(cellValue)?new Date(Date.parse(cellValue)).toLocaleString():cell2.render("Cell");return _createElement(As,{"data-testid":`cell-${k}`,...p,...cell2.getCellProps(),key:k},value)}),_jsx(ActionRow,{})]})}export default OrderListRow;
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { Address } from '@commercelayer/sdk';
|
|
2
|
+
import type { Address } from '@commercelayer/sdk';
|
|
3
3
|
import AddressChildrenContext from '../../context/AddressChildrenContext';
|
|
4
4
|
import { ChildrenFunction } from '../../typings/index';
|
|
5
5
|
declare type ChildrenProps = Pick<Props, 'customerAddresses' | 'className'> & {
|
|
6
6
|
AddressProvider: typeof AddressChildrenContext.Provider;
|
|
7
7
|
};
|
|
8
|
-
export
|
|
8
|
+
export interface CustomerAddress extends Address {
|
|
9
9
|
onClick: () => void;
|
|
10
10
|
handleSelect?: () => void;
|
|
11
|
-
}
|
|
11
|
+
}
|
|
12
12
|
export declare type AddressCardsTemplateChildren = ChildrenFunction<ChildrenProps>;
|
|
13
13
|
export declare type AddressCardsType = ChildrenProps;
|
|
14
14
|
export declare type HandleSelect = (k: number, addressId: string, customerAddressId: string, disabled: boolean, address: Address) => Promise<void>;
|
|
15
|
-
|
|
15
|
+
interface Props {
|
|
16
16
|
customerAddresses: CustomerAddress[];
|
|
17
17
|
countryLock?: string;
|
|
18
18
|
children: AddressCardsTemplateChildren;
|
|
@@ -22,6 +22,6 @@ declare type Props = {
|
|
|
22
22
|
selected?: number | null;
|
|
23
23
|
className?: string;
|
|
24
24
|
handleSelect: HandleSelect;
|
|
25
|
-
}
|
|
26
|
-
export default function AddressCardsTemplate({ customerAddresses, children, deselect, countryLock, selected, selectedClassName, className, disabledClassName, handleSelect
|
|
25
|
+
}
|
|
26
|
+
export default function AddressCardsTemplate({ customerAddresses, children, deselect, countryLock, selected, selectedClassName, className, disabledClassName, handleSelect }: Props): JSX.Element;
|
|
27
27
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as _jsx}from"react/jsx-runtime";import Parent from"../utils/Parent";import{useContext}from"react";import AddressChildrenContext from"../../context/AddressChildrenContext";import ShippingAddressContext from"../../context/ShippingAddressContext";export default function AddressCardsTemplate({customerAddresses,children,deselect,countryLock,selected,selectedClassName,className,disabledClassName,handleSelect}){const{setShippingAddress}=useContext(ShippingAddressContext),value={customerAddresses:customerAddresses.map((address,k)=>{const attributes=address,disabled=setShippingAddress&&countryLock&&countryLock!==address.country_code||!1,addressSelectedClass=selected===k?`${className} ${deselect?"":selectedClassName}`:className,finalClassName=disabled?`${className} ${disabledClassName}`:addressSelectedClass,customerAddressId=address?.reference||"";return{...attributes,className:finalClassName,onClick:()=>handleSelect(k,address.id,customerAddressId,disabled,address)}}),AddressProvider:AddressChildrenContext.Provider};return _jsx(Parent,{...value,children})}
|
|
1
|
+
import{jsx as _jsx}from"react/jsx-runtime";import Parent from"../utils/Parent";import{useContext}from"react";import AddressChildrenContext from"../../context/AddressChildrenContext";import ShippingAddressContext from"../../context/ShippingAddressContext";export default function AddressCardsTemplate({customerAddresses,children,deselect,countryLock,selected,selectedClassName,className,disabledClassName,handleSelect}){const{setShippingAddress}=useContext(ShippingAddressContext),value={customerAddresses:customerAddresses.map((address,k)=>{const attributes=address,disabled=setShippingAddress&&countryLock&&countryLock!==address.country_code||!1,addressSelectedClass=selected===k?`${className??""} ${(deselect?"":selectedClassName)??""}`:className,finalClassName=disabled?`${className??""} ${disabledClassName??""}`:addressSelectedClass,customerAddressId=address?.reference||"";return{...attributes,className:finalClassName,onClick:async()=>await handleSelect(k,address.id,customerAddressId,disabled,address)}}),AddressProvider:AddressChildrenContext.Provider};return _jsx(Parent,{...value,children})}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { Order } from '@commercelayer/sdk';
|
|
3
3
|
import { AddToCart, OrderState, CreateOrder, SetGiftCardOrCouponCode, RemoveGiftCardOrCouponCode, SaveAddressToCustomerAddressBook, addResourceToInclude, updateOrder, getOrderContext } from '../reducers/OrderReducer';
|
|
4
4
|
import { BaseError } from '../typings/errors';
|
|
5
|
-
|
|
5
|
+
interface DefaultContext extends OrderState {
|
|
6
6
|
createOrder: CreateOrder;
|
|
7
7
|
addToCart: AddToCart;
|
|
8
8
|
setOrderErrors: (errors: BaseError[]) => void;
|
|
@@ -13,7 +13,7 @@ declare type DefaultContext = {
|
|
|
13
13
|
getOrder: getOrderContext;
|
|
14
14
|
updateOrder: typeof updateOrder;
|
|
15
15
|
setOrder: (order: Order) => void;
|
|
16
|
-
}
|
|
16
|
+
}
|
|
17
17
|
export declare const defaultOrderContext: {
|
|
18
18
|
addToCart: AddToCart;
|
|
19
19
|
createOrder: CreateOrder;
|
|
@@ -23,7 +23,7 @@ export declare const defaultOrderContext: {
|
|
|
23
23
|
removeGiftCardOrCouponCode: RemoveGiftCardOrCouponCode;
|
|
24
24
|
saveAddressToCustomerAddressBook: SaveAddressToCustomerAddressBook;
|
|
25
25
|
addResourceToInclude: typeof addResourceToInclude;
|
|
26
|
-
getOrder: () => Promise<
|
|
26
|
+
getOrder: () => Promise<undefined>;
|
|
27
27
|
updateOrder: typeof updateOrder;
|
|
28
28
|
};
|
|
29
29
|
declare const OrderContext: import("react").Context<DefaultContext>;
|
package/lib/esm/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export * from './components/addresses/AddressField';
|
|
|
8
8
|
export * from './components/addresses/AddressInput';
|
|
9
9
|
export * from './components/addresses/AddressStateSelector';
|
|
10
10
|
export * from './components/addresses/AddressesContainer';
|
|
11
|
+
export * from './components/addresses/AddressesEmpty';
|
|
11
12
|
export * from './components/addresses/BillingAddressContainer';
|
|
12
13
|
export * from './components/addresses/BillingAddressForm';
|
|
13
14
|
export * from './components/addresses/SaveAddressesButton';
|
|
@@ -49,10 +50,10 @@ export * from './components/orders/GiftCardAmount';
|
|
|
49
50
|
export * from './components/orders/ItemContainer';
|
|
50
51
|
export * from './components/orders/OrderContainer';
|
|
51
52
|
export * from './components/orders/OrderList';
|
|
53
|
+
export * from './components/orders/OrderListEmpty';
|
|
52
54
|
export * from './components/orders/OrderListRow';
|
|
53
55
|
export * from './components/orders/OrderNumber';
|
|
54
56
|
export * from './components/orders/OrderStorage';
|
|
55
|
-
export * from './components/orders/OrderListEmpty';
|
|
56
57
|
export * from './components/orders/PlaceOrderButton';
|
|
57
58
|
export * from './components/orders/PlaceOrderContainer';
|
|
58
59
|
export * from './components/orders/PrivacyAndTermsCheckbox';
|
package/lib/esm/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export*from"./components/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/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/LineItem";export*from"./components/line_items/LineItemAmount";export*from"./components/line_items/LineItemCode";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/LineItemsContainer";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/ItemContainer";export*from"./components/orders/OrderContainer";export*from"./components/orders/OrderList";export*from"./components/orders/
|
|
1
|
+
export*from"./components/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/LineItem";export*from"./components/line_items/LineItemAmount";export*from"./components/line_items/LineItemCode";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/LineItemsContainer";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/ItemContainer";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/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/payment_methods/PaymentMethod";export*from"./components/payment_methods/PaymentMethodAmount";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/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/QuantitySelector";export*from"./components/skus/SkuField";export*from"./components/skus/SkuList";export*from"./components/skus/SkuListsContainer";export*from"./components/skus/SkuOption";export*from"./components/skus/SkuOptionInput";export*from"./components/skus/SkuOptionsContainer";export*from"./components/skus/Skus";export*from"./components/skus/SkusContainer";export*from"./components/skus/VariantSelector";export*from"./components/skus/VariantsContainer";export*from"./components/stock_transfers/StockTransfer";export*from"./components/stock_transfers/StockTransferField";
|
|
@@ -25,33 +25,27 @@ export interface AddressAction {
|
|
|
25
25
|
payload: Partial<AddressActionPayload>;
|
|
26
26
|
}
|
|
27
27
|
export declare const addressInitialState: AddressState;
|
|
28
|
-
export
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
export declare type SetAddressParams<V extends AddressSchema> = {
|
|
28
|
+
export declare type SetAddressErrors = <V extends BaseError[]>(args: {
|
|
29
|
+
errors: V;
|
|
30
|
+
resource: Extract<ResourceErrorType, 'billing_address' | 'shipping_address'>;
|
|
31
|
+
dispatch?: Dispatch<AddressAction>;
|
|
32
|
+
currentErrors?: V;
|
|
33
|
+
}) => void;
|
|
34
|
+
export interface SetAddressParams<V extends AddressSchema> {
|
|
37
35
|
values: V;
|
|
38
36
|
resource: AddressResource;
|
|
39
37
|
dispatch?: Dispatch<AddressAction>;
|
|
40
|
-
};
|
|
41
|
-
export interface SetAddress {
|
|
42
|
-
<V extends AddressSchema>(params: SetAddressParams<V>): void;
|
|
43
|
-
}
|
|
44
|
-
export interface SaveAddresses {
|
|
45
|
-
(params: {
|
|
46
|
-
orderId?: string;
|
|
47
|
-
order?: Order | null;
|
|
48
|
-
updateOrder?: typeof updateOrder;
|
|
49
|
-
config: CommerceLayerConfig;
|
|
50
|
-
state: AddressState;
|
|
51
|
-
dispatch: Dispatch<AddressAction>;
|
|
52
|
-
getCustomerAddresses?: () => Promise<void>;
|
|
53
|
-
}): Promise<void>;
|
|
54
38
|
}
|
|
39
|
+
export declare type SetAddress = <V extends AddressSchema>(params: SetAddressParams<V>) => void;
|
|
40
|
+
export declare type SaveAddresses = (params: {
|
|
41
|
+
orderId?: string;
|
|
42
|
+
order?: Order | null;
|
|
43
|
+
updateOrder?: typeof updateOrder;
|
|
44
|
+
config: CommerceLayerConfig;
|
|
45
|
+
state: AddressState;
|
|
46
|
+
dispatch: Dispatch<AddressAction>;
|
|
47
|
+
getCustomerAddresses?: () => Promise<void>;
|
|
48
|
+
}) => Promise<void>;
|
|
55
49
|
export declare const setAddressErrors: SetAddressErrors;
|
|
56
50
|
export declare const setAddress: SetAddress;
|
|
57
51
|
declare type SetCloneAddress = (id: string, resource: AddressResource, dispatch: Dispatch<AddressAction>) => void;
|