@commercelayer/react-components 3.12.2 → 3.12.3

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.
@@ -1 +1 @@
1
- import{jsx as _jsx}from"react/jsx-runtime";import{useEffect,useReducer,useContext,useMemo}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{unsetOrderState}from"../reducers/OrderReducer";import components from"../config/components";import OrderStorageContext from"../context/OrderStorageContext";import compareObjAttribute from"../utils/compareObjAttribute";const propTypes=components.OrderContainer.propTypes,defaultProps=components.OrderContainer.defaultProps,displayName=components.OrderContainer.displayName,OrderContainer=props=>{const{orderId,children,metadata,attributes}=props,[state,dispatch]=useReducer(orderReducer,orderInitialState),config=useContext(CommerceLayerContext),{persistKey,clearWhenPlaced,getLocalOrder,setLocalOrder,deleteLocalOrder}=useContext(OrderStorageContext);useEffect(()=>{var _a;const startRequest=Object.keys((state==null?void 0:state.includeLoaded)||{}).filter(key=>{var _a2;return((_a2=state==null?void 0:state.includeLoaded)===null||_a2===void 0?void 0:_a2[key])===!0});if(config.accessToken){const localOrder=persistKey?getLocalOrder(persistKey):orderId;localOrder&&(dispatch({type:"setOrderId",payload:{orderId:localOrder}}),!state.order&&startRequest.length===((_a=state.include)===null||_a===void 0?void 0:_a.length)&&getApiOrder({id:localOrder,dispatch,config,persistKey,clearWhenPlaced:!!(persistKey&&clearWhenPlaced),deleteLocalOrder,state}))}return()=>unsetOrderState(dispatch)},[config.accessToken,orderId,state.includeLoaded,state.include]),useEffect(()=>{if(state.orderId&&attributes&&state.order){const updateAttributes=compareObjAttribute({attributes,object:state.order});Object.keys(updateAttributes).length>0&&updateOrder({id:state.orderId,attributes:updateAttributes,dispatch,config,include:state.include,state})}},[attributes,state.orderId,state.order]);const orderValue=useMemo(()=>Object.assign(Object.assign({},state),{setOrder:order=>setOrder(order,dispatch),getOrder:id=>getApiOrder({id,dispatch,config,state}),setOrderErrors:errors=>setOrderErrors({dispatch,errors}),createOrder:async()=>await createOrder({persistKey,dispatch,config,state,orderMetadata:metadata,orderAttributes:attributes}),addToCart:values=>defaultOrderContext.addToCart(Object.assign(Object.assign({},values),{persistKey,dispatch,state,config,errors:state.errors,orderMetadata:metadata||{},orderAttributes:attributes,setLocalOrder})),saveAddressToCustomerAddressBook:args=>defaultOrderContext.saveAddressToCustomerAddressBook(Object.assign(Object.assign({},args),{dispatch})),setGiftCardOrCouponCode:({code,codeType})=>defaultOrderContext.setGiftCardOrCouponCode({code,codeType,dispatch,order:state.order,config,include:state.include,state}),removeGiftCardOrCouponCode:({codeType})=>defaultOrderContext.removeGiftCardOrCouponCode({codeType,dispatch,order:state.order,config,include:state.include,state}),addResourceToInclude:args=>defaultOrderContext.addResourceToInclude(Object.assign(Object.assign({},args),{dispatch,resourcesIncluded:state.include,resourceIncludedLoaded:state.includeLoaded})),updateOrder:async args=>await defaultOrderContext.updateOrder(Object.assign(Object.assign({},args),{dispatch,config,include:state.include,state}))}),[state]);return _jsx(OrderContext.Provider,Object.assign({value:orderValue},{children}))};OrderContainer.propTypes=propTypes,OrderContainer.defaultProps=defaultProps,OrderContainer.displayName=displayName;export default OrderContainer;
1
+ import{jsx as _jsx}from"react/jsx-runtime";import{useEffect,useReducer,useContext,useMemo}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 components from"../config/components";import OrderStorageContext from"../context/OrderStorageContext";import compareObjAttribute from"../utils/compareObjAttribute";import checkIncludeResources from"../utils/checkIncludeResource";const propTypes=components.OrderContainer.propTypes,defaultProps=components.OrderContainer.defaultProps,displayName=components.OrderContainer.displayName,OrderContainer=props=>{const{orderId,children,metadata,attributes}=props,[state,dispatch]=useReducer(orderReducer,orderInitialState),config=useContext(CommerceLayerContext),{persistKey,clearWhenPlaced,getLocalOrder,setLocalOrder,deleteLocalOrder}=useContext(OrderStorageContext);useEffect(()=>{var _a;const startRequest=Object.keys((state==null?void 0:state.includeLoaded)||{}).filter(key=>{var _a2;return((_a2=state==null?void 0:state.includeLoaded)===null||_a2===void 0?void 0:_a2[key])===!0});if(config.accessToken){const localOrder=persistKey?getLocalOrder(persistKey):orderId;localOrder&&!state.order&&startRequest.length===((_a=state.include)===null||_a===void 0?void 0:_a.length)?getApiOrder({id:localOrder,dispatch,config,persistKey,clearWhenPlaced:!!(persistKey&&clearWhenPlaced),deleteLocalOrder,state}):(state==null?void 0:state.order)&&(state==null?void 0:state.include)&&(checkIncludeResources({order:state.order,resourceInclude:state.include})||getApiOrder({id:state.orderId,dispatch,config,persistKey,deleteLocalOrder,state}))}},[config.accessToken,state.includeLoaded,state.include,orderId,state.order]),useEffect(()=>{if(state.orderId&&attributes&&state.order){const updateAttributes=compareObjAttribute({attributes,object:state.order});Object.keys(updateAttributes).length>0&&updateOrder({id:state.orderId,attributes:updateAttributes,dispatch,config,include:state.include,state})}},[attributes,state.orderId,state.order]);const orderValue=useMemo(()=>Object.assign(Object.assign({},state),{setOrder:order=>setOrder(order,dispatch),getOrder:id=>getApiOrder({id,dispatch,config,state}),setOrderErrors:errors=>setOrderErrors({dispatch,errors}),createOrder:async()=>await createOrder({persistKey,dispatch,config,state,orderMetadata:metadata,orderAttributes:attributes}),addToCart:values=>defaultOrderContext.addToCart(Object.assign(Object.assign({},values),{persistKey,dispatch,state,config,errors:state.errors,orderMetadata:metadata||{},orderAttributes:attributes,setLocalOrder})),saveAddressToCustomerAddressBook:args=>defaultOrderContext.saveAddressToCustomerAddressBook(Object.assign(Object.assign({},args),{dispatch})),setGiftCardOrCouponCode:({code,codeType})=>defaultOrderContext.setGiftCardOrCouponCode({code,codeType,dispatch,order:state.order,config,include:state.include,state}),removeGiftCardOrCouponCode:({codeType})=>defaultOrderContext.removeGiftCardOrCouponCode({codeType,dispatch,order:state.order,config,include:state.include,state}),addResourceToInclude:args=>defaultOrderContext.addResourceToInclude(Object.assign(Object.assign({},args),{dispatch,resourcesIncluded:state.include,resourceIncludedLoaded:state.includeLoaded})),updateOrder:async args=>await defaultOrderContext.updateOrder(Object.assign(Object.assign({},args),{dispatch,config,include:state.include,state}))}),[state]);return _jsx(OrderContext.Provider,Object.assign({value:orderValue},{children}))};OrderContainer.propTypes=propTypes,OrderContainer.defaultProps=defaultProps,OrderContainer.displayName=displayName;export default OrderContainer;
@@ -1,2 +1,2 @@
1
1
  /// <reference types="react" />
2
- import{Sku}from'@commercelayer/sdk';import{ExcludeTag}from'../typings/index';declare type Conditional=({attribute:'image_url';tagElement:'img';}&JSX.IntrinsicElements['img'])|({attribute:Exclude<keyof Sku,'image_url'>;tagElement:ExcludeTag<'img'>;}&JSX.IntrinsicElements[ExcludeTag<'img'>]);declare type ChildrenProps=Omit<Props,'children'|'attribute'>&{element:Sku[keyof Sku];};declare type Props={children?:(props:ChildrenProps)=>JSX.Element;}&Conditional;declare function SkuField<P extends Props>({attribute,tagElement,children,...p}:P):JSX.Element;declare namespace SkuField{var propTypes:{children:import("prop-types").Requireable<(...args:any[])=>any>;attribute:import("prop-types").Requireable<string>;tagElement:import("prop-types").Requireable<string>;};}export default SkuField;
2
+ import{ConditionalElement}from'../typings/index';import{TResources}from'./utils/GenericFieldComponent';declare type SkuFieldChildrenProps=Omit<Props,'children'|'attribute'|'element'>;declare type TCondition=ConditionalElement<Exclude<TResources['Sku'],'resource'>>;declare type Props={children?:(props:SkuFieldChildrenProps)=>JSX.Element;}&TCondition;export default function SkuField<P extends Props>(props:P):JSX.Element;export{};
@@ -1 +1 @@
1
- import{__rest}from"tslib";import{jsx as _jsx}from"react/jsx-runtime";import SkuChildrenContext from"../context/SkuChildrenContext";import{useContext}from"react";import Parent from"./utils/Parent";import components from"../config/components";export default function SkuField(_a){var{attribute,tagElement,children}=_a,p=__rest(_a,["attribute","tagElement","children"]);const{sku}=useContext(SkuChildrenContext),element=sku&&sku[attribute]||"",Tag=tagElement;if(Tag==="img"&&!children){const src=element,name=sku==null?void 0:sku.name;return _jsx("img",Object.assign({alt:name,src},p))}const parentProps=Object.assign({element,tagElement},p);return children?_jsx(Parent,Object.assign({},parentProps,{children})):_jsx(Tag,{children:element})}SkuField.propTypes=components.SkuField.propTypes;
1
+ import{__rest}from"tslib";import{jsx as _jsx}from"react/jsx-runtime";import SkuChildrenContext from"../context/SkuChildrenContext";import GenericFieldComponent from"./utils/GenericFieldComponent";export default function SkuField(props){const{attribute,tagElement,children}=props,p=__rest(props,["attribute","tagElement","children"]);return _jsx(GenericFieldComponent,Object.assign({resource:"skus",attribute,tagElement,context:SkuChildrenContext},p,{children}))}
@@ -1 +1 @@
1
- import{jsx as _jsx}from"react/jsx-runtime";import StockTransferChildrenContext from"../context/StockTransferChildrenContext";import GenericFieldComponent from"./utils/GenericFieldComponent";export default function StockTransferField(props){const{attribute,tagElement,children}=props;return _jsx(GenericFieldComponent,Object.assign({resource:"stock_transfers",attribute,tagElement,context:StockTransferChildrenContext},{children}))}
1
+ import{__rest}from"tslib";import{jsx as _jsx}from"react/jsx-runtime";import StockTransferChildrenContext from"../context/StockTransferChildrenContext";import GenericFieldComponent from"./utils/GenericFieldComponent";export default function StockTransferField(props){const{attribute,tagElement,children}=props,p=__rest(props,["attribute","tagElement","children"]);return _jsx(GenericFieldComponent,Object.assign({resource:"stock_transfers",attribute,tagElement,context:StockTransferChildrenContext},p,{children}))}
@@ -1 +1 @@
1
- import{__rest}from"tslib";import{jsx as _jsx}from"react/jsx-runtime";import OrderContext from"../../context/OrderContext";import getAmount from"../../utils/getAmount";import Parent from"./Parent";import{useState,useEffect,useContext}from"react";import{baseOrderPricePropTypes}from"../../typings/index";import{isEmpty}from"lodash";const BaseOrderPrice=props=>{const{format="formatted",base,type,children}=props,p=__rest(props,["format","base","type","children"]),{order}=useContext(OrderContext),[price,setPrice]=useState(""),[cents,setCents]=useState(0);useEffect(()=>{const p2=getAmount({base,type,format,obj:order||{}}),c=getAmount({base,type,format:"cents",obj:order||{}});return setPrice(p2),setCents(c),()=>{isEmpty(order)&&setPrice("")}},[order]);const parentProps=Object.assign({priceCents:cents,price},p);return children?_jsx(Parent,Object.assign({},parentProps,{children})):_jsx("span",Object.assign({},p,{children:price}))};BaseOrderPrice.propTypes=baseOrderPricePropTypes;export default BaseOrderPrice;
1
+ import{__rest}from"tslib";import{jsx as _jsx}from"react/jsx-runtime";import OrderContext from"../../context/OrderContext";import getAmount from"../../utils/getAmount";import Parent from"./Parent";import{useState,useEffect,useContext}from"react";import{baseOrderPricePropTypes}from"../../typings/index";import isEmpty from"lodash/isEmpty";const BaseOrderPrice=props=>{const{format="formatted",base,type,children}=props,p=__rest(props,["format","base","type","children"]),{order}=useContext(OrderContext),[price,setPrice]=useState(""),[cents,setCents]=useState(0);useEffect(()=>{const p2=getAmount({base,type,format,obj:order||{}}),c=getAmount({base,type,format:"cents",obj:order||{}});return setPrice(p2),setCents(c),()=>{isEmpty(order)&&setPrice("")}},[order]);const parentProps=Object.assign({priceCents:cents,price},p);return children?_jsx(Parent,Object.assign({},parentProps,{children})):_jsx("span",Object.assign({},p,{children:price}))};BaseOrderPrice.propTypes=baseOrderPricePropTypes;export default BaseOrderPrice;
@@ -0,0 +1 @@
1
+ import{ResourceIncluded}from'../reducers/OrderReducer';import type{Order}from'@commercelayer/sdk';declare type Params={order:Order;resourceInclude:ResourceIncluded[];};export default function checkIncludeResources({order,resourceInclude,}:Params):boolean;export{};
@@ -0,0 +1 @@
1
+ export default function checkIncludeResources({order,resourceInclude}){const checkKeys=[];return resourceInclude.forEach(v=>{if(v.includes(".")){const[first]=v.split(".");(order==null?void 0:order[first])===void 0&&checkKeys.push(!1)}else(order==null?void 0:order[v])===void 0&&checkKeys.push(!1)}),checkKeys.length===0}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@commercelayer/react-components",
3
- "version": "3.12.2",
3
+ "version": "3.12.3",
4
4
  "description": "The Official Commerce Layer React Components",
5
5
  "module": "lib/index.js",
6
6
  "types": "lib/index.d.ts",