@commercelayer/react-components 4.0.0-alpha.12 → 4.0.0-alpha.14
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/line_items/LineItem.d.ts +4 -11
- package/lib/cjs/components/line_items/LineItem.js +1 -1
- package/lib/cjs/components/line_items/LineItemAmount.d.ts +0 -13
- package/lib/cjs/components/line_items/LineItemAmount.js +1 -1
- package/lib/cjs/components/line_items/LineItemCode.d.ts +6 -11
- package/lib/cjs/components/line_items/LineItemCode.js +1 -1
- package/lib/cjs/components/line_items/LineItemField.d.ts +14 -0
- package/lib/cjs/components/line_items/LineItemField.js +1 -0
- package/lib/cjs/components/line_items/LineItemImage.d.ts +4 -11
- package/lib/cjs/components/line_items/LineItemImage.js +1 -1
- package/lib/cjs/components/line_items/LineItemName.d.ts +6 -11
- package/lib/cjs/components/line_items/LineItemName.js +1 -1
- package/lib/cjs/components/line_items/LineItemOption.d.ts +5 -16
- package/lib/cjs/components/line_items/LineItemOption.js +1 -1
- package/lib/cjs/components/line_items/LineItemOptions.d.ts +2 -5
- package/lib/cjs/components/line_items/LineItemOptions.js +1 -1
- package/lib/cjs/components/line_items/LineItemRemoveLink.js +1 -1
- package/lib/cjs/components/line_items/LineItemsContainer.d.ts +2 -14
- package/lib/cjs/components/line_items/LineItemsContainer.js +1 -1
- package/lib/cjs/components/orders/AddToCartButton.d.ts +29 -6
- package/lib/cjs/components/orders/AddToCartButton.js +1 -1
- package/lib/cjs/components/orders/OrderContainer.js +1 -1
- package/lib/cjs/components/prices/Price.js +1 -1
- package/lib/cjs/components/prices/PricesContainer.js +1 -1
- package/lib/cjs/components/skus/AvailabilityContainer.d.ts +3 -9
- package/lib/cjs/components/skus/AvailabilityContainer.js +1 -1
- package/lib/cjs/components/skus/AvailabilityTemplate.d.ts +23 -4
- package/lib/cjs/components/skus/AvailabilityTemplate.js +1 -1
- package/lib/cjs/components/skus/SkuField.js +1 -1
- package/lib/cjs/components/skus/SkusContainer.d.ts +2 -2
- package/lib/cjs/components/utils/AddressCardsTemplate.d.ts +3 -4
- package/lib/cjs/components/utils/BaseInput.d.ts +1 -1
- package/lib/cjs/components/utils/GenericFieldComponent.d.ts +4 -4
- package/lib/cjs/components/utils/GenericFieldComponent.js +1 -1
- package/lib/cjs/components/utils/PaymentCardsTemplate.d.ts +3 -3
- package/lib/cjs/context/ExternalFunctionContext.d.ts +2 -2
- package/lib/cjs/context/ExternalFunctionContext.js +1 -1
- package/lib/cjs/context/LineItemContext.d.ts +1 -1
- package/lib/cjs/context/OrderContext.d.ts +2 -2
- package/lib/cjs/index.d.ts +2 -15
- package/lib/cjs/index.js +1 -1
- package/lib/cjs/reducers/AvailabilityReducer.d.ts +4 -14
- package/lib/cjs/reducers/AvailabilityReducer.js +1 -1
- package/lib/cjs/reducers/OrderReducer.d.ts +36 -22
- package/lib/cjs/reducers/OrderReducer.js +1 -1
- package/lib/cjs/reducers/PriceReducer.d.ts +12 -19
- package/lib/cjs/reducers/PriceReducer.js +1 -1
- package/lib/cjs/reducers/SkuReducer.d.ts +3 -3
- package/lib/cjs/typings/errors.d.ts +4 -4
- package/lib/esm/components/line_items/LineItem.d.ts +4 -11
- package/lib/esm/components/line_items/LineItem.js +1 -1
- package/lib/esm/components/line_items/LineItemAmount.d.ts +0 -13
- package/lib/esm/components/line_items/LineItemAmount.js +1 -1
- package/lib/esm/components/line_items/LineItemCode.d.ts +6 -11
- package/lib/esm/components/line_items/LineItemCode.js +1 -1
- package/lib/esm/components/line_items/LineItemField.d.ts +14 -0
- package/lib/esm/components/line_items/LineItemField.js +1 -0
- package/lib/esm/components/line_items/LineItemImage.d.ts +4 -11
- package/lib/esm/components/line_items/LineItemImage.js +1 -1
- package/lib/esm/components/line_items/LineItemName.d.ts +6 -11
- package/lib/esm/components/line_items/LineItemName.js +1 -1
- package/lib/esm/components/line_items/LineItemOption.d.ts +5 -16
- package/lib/esm/components/line_items/LineItemOption.js +1 -1
- package/lib/esm/components/line_items/LineItemOptions.d.ts +2 -5
- package/lib/esm/components/line_items/LineItemOptions.js +1 -1
- package/lib/esm/components/line_items/LineItemRemoveLink.js +1 -1
- package/lib/esm/components/line_items/LineItemsContainer.d.ts +2 -14
- package/lib/esm/components/line_items/LineItemsContainer.js +1 -1
- package/lib/esm/components/orders/AddToCartButton.d.ts +29 -6
- package/lib/esm/components/orders/AddToCartButton.js +1 -1
- package/lib/esm/components/orders/OrderContainer.js +1 -1
- package/lib/esm/components/prices/Price.js +1 -1
- package/lib/esm/components/prices/PricesContainer.js +1 -1
- package/lib/esm/components/skus/AvailabilityContainer.d.ts +3 -9
- package/lib/esm/components/skus/AvailabilityContainer.js +1 -1
- package/lib/esm/components/skus/AvailabilityTemplate.d.ts +23 -4
- package/lib/esm/components/skus/AvailabilityTemplate.js +1 -1
- package/lib/esm/components/skus/SkuField.js +1 -1
- package/lib/esm/components/skus/SkusContainer.d.ts +2 -2
- package/lib/esm/components/utils/AddressCardsTemplate.d.ts +3 -4
- package/lib/esm/components/utils/BaseInput.d.ts +1 -1
- package/lib/esm/components/utils/GenericFieldComponent.d.ts +4 -4
- package/lib/esm/components/utils/GenericFieldComponent.js +1 -1
- package/lib/esm/components/utils/PaymentCardsTemplate.d.ts +3 -3
- package/lib/esm/context/ExternalFunctionContext.d.ts +2 -2
- package/lib/esm/context/ExternalFunctionContext.js +1 -1
- package/lib/esm/context/LineItemContext.d.ts +1 -1
- package/lib/esm/context/OrderContext.d.ts +2 -2
- package/lib/esm/index.d.ts +2 -15
- package/lib/esm/index.js +1 -1
- package/lib/esm/reducers/AvailabilityReducer.d.ts +4 -14
- package/lib/esm/reducers/AvailabilityReducer.js +1 -1
- package/lib/esm/reducers/OrderReducer.d.ts +36 -22
- package/lib/esm/reducers/OrderReducer.js +1 -1
- package/lib/esm/reducers/PriceReducer.d.ts +12 -19
- package/lib/esm/reducers/PriceReducer.js +1 -1
- package/lib/esm/reducers/SkuReducer.d.ts +3 -3
- package/lib/esm/typings/errors.d.ts +4 -4
- package/lib/tsconfig.prod.esm.tsbuildinfo +1 -1
- package/lib/tsconfig.prod.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/lib/cjs/components/orders/ItemContainer.d.ts +0 -11
- package/lib/cjs/components/orders/ItemContainer.js +0 -1
- package/lib/cjs/components/skus/QuantitySelector.d.ts +0 -17
- package/lib/cjs/components/skus/QuantitySelector.js +0 -1
- package/lib/cjs/components/skus/SkuOption.d.ts +0 -14
- package/lib/cjs/components/skus/SkuOption.js +0 -1
- package/lib/cjs/components/skus/SkuOptionInput.d.ts +0 -15
- package/lib/cjs/components/skus/SkuOptionInput.js +0 -1
- package/lib/cjs/components/skus/SkuOptionsContainer.d.ts +0 -14
- package/lib/cjs/components/skus/SkuOptionsContainer.js +0 -1
- package/lib/cjs/components/skus/VariantSelector.d.ts +0 -29
- package/lib/cjs/components/skus/VariantSelector.js +0 -1
- package/lib/cjs/components/skus/VariantsContainer.d.ts +0 -8
- package/lib/cjs/components/skus/VariantsContainer.js +0 -1
- package/lib/cjs/components/utils/VariantTemplate.d.ts +0 -36
- package/lib/cjs/components/utils/VariantTemplate.js +0 -1
- package/lib/cjs/context/ItemContext.d.ts +0 -13
- package/lib/cjs/context/ItemContext.js +0 -1
- package/lib/cjs/context/SkuOptionChildrenContext.d.ts +0 -8
- package/lib/cjs/context/SkuOptionChildrenContext.js +0 -1
- package/lib/cjs/context/SkuOptionsContext.d.ts +0 -3
- package/lib/cjs/context/SkuOptionsContext.js +0 -1
- package/lib/cjs/context/VariantsContext.d.ts +0 -3
- package/lib/cjs/context/VariantsContext.js +0 -1
- package/lib/cjs/reducers/ItemReducer.d.ts +0 -69
- package/lib/cjs/reducers/ItemReducer.js +0 -1
- package/lib/cjs/reducers/SkuOptionsReducer.d.ts +0 -26
- package/lib/cjs/reducers/SkuOptionsReducer.js +0 -1
- package/lib/cjs/reducers/VariantReducer.d.ts +0 -64
- package/lib/cjs/reducers/VariantReducer.js +0 -1
- package/lib/cjs/utils/getCurrentItemKey.d.ts +0 -6
- package/lib/cjs/utils/getCurrentItemKey.js +0 -1
- package/lib/esm/components/orders/ItemContainer.d.ts +0 -11
- package/lib/esm/components/orders/ItemContainer.js +0 -1
- package/lib/esm/components/skus/QuantitySelector.d.ts +0 -17
- package/lib/esm/components/skus/QuantitySelector.js +0 -1
- package/lib/esm/components/skus/SkuOption.d.ts +0 -14
- package/lib/esm/components/skus/SkuOption.js +0 -1
- package/lib/esm/components/skus/SkuOptionInput.d.ts +0 -15
- package/lib/esm/components/skus/SkuOptionInput.js +0 -1
- package/lib/esm/components/skus/SkuOptionsContainer.d.ts +0 -14
- package/lib/esm/components/skus/SkuOptionsContainer.js +0 -1
- package/lib/esm/components/skus/VariantSelector.d.ts +0 -29
- package/lib/esm/components/skus/VariantSelector.js +0 -1
- package/lib/esm/components/skus/VariantsContainer.d.ts +0 -8
- package/lib/esm/components/skus/VariantsContainer.js +0 -1
- package/lib/esm/components/utils/VariantTemplate.d.ts +0 -36
- package/lib/esm/components/utils/VariantTemplate.js +0 -1
- package/lib/esm/context/ItemContext.d.ts +0 -13
- package/lib/esm/context/ItemContext.js +0 -1
- package/lib/esm/context/SkuOptionChildrenContext.d.ts +0 -8
- package/lib/esm/context/SkuOptionChildrenContext.js +0 -1
- package/lib/esm/context/SkuOptionsContext.d.ts +0 -3
- package/lib/esm/context/SkuOptionsContext.js +0 -1
- package/lib/esm/context/VariantsContext.d.ts +0 -3
- package/lib/esm/context/VariantsContext.js +0 -1
- package/lib/esm/reducers/ItemReducer.d.ts +0 -69
- package/lib/esm/reducers/ItemReducer.js +0 -1
- package/lib/esm/reducers/SkuOptionsReducer.d.ts +0 -26
- package/lib/esm/reducers/SkuOptionsReducer.js +0 -1
- package/lib/esm/reducers/VariantReducer.d.ts +0 -64
- package/lib/esm/reducers/VariantReducer.js +0 -1
- package/lib/esm/utils/getCurrentItemKey.d.ts +0 -6
- package/lib/esm/utils/getCurrentItemKey.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{jsx as _jsx}from"react/jsx-runtime";import{useEffect,useReducer,useContext}from"react";import variantReducer,{variantInitialState,unsetVariantState,setSkuCode,getVariants,setVariantSkuCodes}from"../../reducers/VariantReducer";import CommerceLayerContext from"../../context/CommerceLayerContext";import VariantsContext from"../../context/VariantsContext";import isEmpty from"lodash/isEmpty";import isEqual from"lodash/isEqual";import getCurrentItemKey from"../../utils/getCurrentItemKey";import ItemContext from"../../context/ItemContext";export function VariantsContainer(props){const{children,skuCode="",filters={}}=props,config=useContext(CommerceLayerContext);if(config.accessToken==null)throw new Error("Cannot use `VariantsContainer` outside of `CommerceLayer`");const{setItem,setItems,items,item:currentItem,setCustomLineItems,skuCode:itemSkuCode,setSkuCode:setItemSkuCode}=useContext(ItemContext),[state,dispatch]=useReducer(variantReducer,variantInitialState),sCode=getCurrentItemKey(currentItem)||skuCode||state.skuCode||itemSkuCode||"";useEffect(()=>{if(!isEmpty(items)&&!isEmpty(state.variants)&&!isEqual(items,state.variants)){const mergeItems={...items,...state.variants};setItems&&setItems(mergeItems)}return console.log("state.skuCodes",state.skuCodes),state.skuCodes.length>=1&&config.accessToken&&(dispatch({type:"setLoading",payload:{loading:!0}}),getVariants({config,state,dispatch,setItem,skuCode:sCode,filters})),()=>unsetVariantState(dispatch)},[config?.accessToken]);const variantValue={...state,skuCode:sCode,setSkuCode:(code,id,lineItem={})=>{!isEmpty(lineItem)&&setCustomLineItems&&setCustomLineItems({[code]:lineItem}),setSkuCode({code,id,config,setItem,dispatch,setItemSkuCode})},setSkuCodes:skuCodes=>setVariantSkuCodes({skuCodes,dispatch,setCustomLineItems})};return _jsx(VariantsContext.Provider,{value:variantValue,children})}export default VariantsContainer;
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { FunctionComponent, ReactNode } from 'react';
|
|
2
|
-
import PropTypes from 'prop-types';
|
|
3
|
-
import { BaseSelectorType } from '../../typings/index';
|
|
4
|
-
import { VariantsObject, SetSkuCode } from '../../reducers/VariantReducer';
|
|
5
|
-
import { VariantOption } from '../skus/VariantSelector';
|
|
6
|
-
export declare const propTypes: {
|
|
7
|
-
variants: PropTypes.Validator<any>;
|
|
8
|
-
onChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
9
|
-
options: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
|
|
10
|
-
label: PropTypes.Validator<string>;
|
|
11
|
-
code: PropTypes.Validator<string>;
|
|
12
|
-
lineItem: PropTypes.Requireable<PropTypes.InferProps<{
|
|
13
|
-
name: PropTypes.Validator<string>;
|
|
14
|
-
imageUrl: PropTypes.Requireable<string>;
|
|
15
|
-
}>>;
|
|
16
|
-
}>>[]>;
|
|
17
|
-
name: PropTypes.Requireable<string>;
|
|
18
|
-
children: PropTypes.Requireable<(...args: any[]) => any>;
|
|
19
|
-
type: PropTypes.Requireable<BaseSelectorType>;
|
|
20
|
-
loader: PropTypes.Requireable<PropTypes.ReactElementLike>;
|
|
21
|
-
placeholder: PropTypes.Requireable<string>;
|
|
22
|
-
skuCode: PropTypes.Requireable<string>;
|
|
23
|
-
};
|
|
24
|
-
export declare type VariantHandleCallback = (variant: VariantOption) => void;
|
|
25
|
-
export declare type VariantTemplateProps = {
|
|
26
|
-
variants: VariantsObject | Record<string, any>;
|
|
27
|
-
handleChange?: SetSkuCode;
|
|
28
|
-
options: VariantOption[];
|
|
29
|
-
type?: BaseSelectorType;
|
|
30
|
-
loader?: ReactNode;
|
|
31
|
-
placeholder?: string;
|
|
32
|
-
skuCode?: string;
|
|
33
|
-
handleCallback?: VariantHandleCallback;
|
|
34
|
-
} & JSX.IntrinsicElements['input'] & JSX.IntrinsicElements['select'];
|
|
35
|
-
declare const VariantTemplate: FunctionComponent<VariantTemplateProps>;
|
|
36
|
-
export default VariantTemplate;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from"react/jsx-runtime";import{Fragment}from"react";import PropTypes from"prop-types";export const propTypes={variants:PropTypes.any.isRequired,onChange:PropTypes.func,options:PropTypes.arrayOf(PropTypes.shape({label:PropTypes.string.isRequired,code:PropTypes.string.isRequired,lineItem:PropTypes.shape({name:PropTypes.string.isRequired,imageUrl:PropTypes.string})}).isRequired).isRequired,name:PropTypes.string,children:PropTypes.func,type:PropTypes.oneOf(["select","radio"]),loader:PropTypes.element,placeholder:PropTypes.string,skuCode:PropTypes.string};const VariantTemplate=props=>{const{id,variants,type,placeholder,options,skuCode,handleChange,handleCallback,...prs}=props,vars=Object.keys(variants).map((v,k)=>{const checked=skuCode===v,label=options.length>0?options[k]?.label:variants[v].name;return type==="select"?_jsx("option",{"data-sku-id":variants[v].id,"data-label":label,value:variants[v].code,children:label},variants[v].id):_jsxs(Fragment,{children:[_jsx("input",{id:`${id??"radio"}-${k}`,defaultChecked:checked,type:"radio",value:variants[v].code,onChange:e=>{const code=e.target.value;handleChange&&handleChange(code,variants[v].id),handleCallback&&handleCallback({code,label})},...prs}),label]},variants[v].id)});return console.log("vars",vars,variants),type==="select"?_jsxs("select",{id,title:"Variant selector",onChange:e=>{const v=e.target.value,i=e.target.selectedIndex,id2=e.target[i]?.dataset?.skuId,label=e.target[i]?.dataset?.label;handleChange&&handleChange(v,id2),handleCallback&&handleCallback({code:v,label})},value:skuCode||"",...prs,children:[_jsx("option",{disabled:!!skuCode,children:placeholder}),vars]}):_jsx(_Fragment,{children:vars})};export default VariantTemplate;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { ItemState, Items, ItemQuantity, ItemOptions, ItemPrices, CustomLineItems } from '../reducers/ItemReducer';
|
|
3
|
-
export interface InitItemContext extends Partial<ItemState> {
|
|
4
|
-
item: Items;
|
|
5
|
-
items: Items;
|
|
6
|
-
quantity: ItemQuantity;
|
|
7
|
-
option: ItemOptions;
|
|
8
|
-
prices: ItemPrices;
|
|
9
|
-
lineItems: CustomLineItems;
|
|
10
|
-
}
|
|
11
|
-
export declare const initialItemContext: InitItemContext;
|
|
12
|
-
declare const ItemContext: import("react").Context<InitItemContext>;
|
|
13
|
-
export default ItemContext;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{createContext}from"react";export const initialItemContext={item:{},items:{},quantity:{},option:{},prices:{},lineItems:{}};const ItemContext=createContext(initialItemContext);export default ItemContext;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { SkuOption } from '@commercelayer/sdk';
|
|
3
|
-
export interface SkuOptionChildrenInitalState {
|
|
4
|
-
skuOption?: SkuOption | null;
|
|
5
|
-
skuCode: string;
|
|
6
|
-
}
|
|
7
|
-
declare const SkuOptionChildrenContext: import("react").Context<SkuOptionChildrenInitalState>;
|
|
8
|
-
export default SkuOptionChildrenContext;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{createContext}from"react";const initial={skuCode:""},SkuOptionChildrenContext=createContext(initial);export default SkuOptionChildrenContext;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{createContext}from"react";import{skuOptionsInitialState}from"../reducers/SkuOptionsReducer";const SkuOptionsContext=createContext(skuOptionsInitialState);export default SkuOptionsContext;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{createContext}from"react";import{variantInitialState}from"../reducers/VariantReducer";const VariantsContext=createContext(variantInitialState);export default VariantsContext;
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { BaseUnsetState } from '../typings/index';
|
|
2
|
-
import { Price } from '@commercelayer/sdk';
|
|
3
|
-
import { Dispatch } from 'react';
|
|
4
|
-
import { SkuInventory } from './AvailabilityReducer';
|
|
5
|
-
export interface Items {
|
|
6
|
-
[skuCode: string]: SkuInventory;
|
|
7
|
-
}
|
|
8
|
-
export interface ItemPrices {
|
|
9
|
-
[skuCode: string]: Price;
|
|
10
|
-
}
|
|
11
|
-
export interface ItemQuantity {
|
|
12
|
-
[skuCode: string]: number;
|
|
13
|
-
}
|
|
14
|
-
export interface ItemOption {
|
|
15
|
-
[key: string]: {
|
|
16
|
-
skuOptionId: string;
|
|
17
|
-
options: {
|
|
18
|
-
[key: string]: string;
|
|
19
|
-
};
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
export interface ItemOptions {
|
|
23
|
-
[skuCode: string]: ItemOption;
|
|
24
|
-
}
|
|
25
|
-
export declare type CustomLineItem = {
|
|
26
|
-
name?: string;
|
|
27
|
-
imageUrl?: string | null;
|
|
28
|
-
};
|
|
29
|
-
export interface CustomLineItems {
|
|
30
|
-
[skuCode: string]: CustomLineItem;
|
|
31
|
-
}
|
|
32
|
-
declare type ItemParams = {
|
|
33
|
-
type: ItemActionType;
|
|
34
|
-
key: 'items' | 'item' | 'quantity' | 'option' | 'prices' | 'lineItem' | 'lineItems' | 'skuCode';
|
|
35
|
-
};
|
|
36
|
-
declare type DataType = Items | ItemQuantity | ItemOptions | ItemPrices | CustomLineItems | CustomLineItem | string;
|
|
37
|
-
export interface SetItemState {
|
|
38
|
-
(data: DataType, params: ItemParams, dispatch: Dispatch<ItemAction>): void;
|
|
39
|
-
}
|
|
40
|
-
export declare const setItemState: SetItemState;
|
|
41
|
-
export declare const unsetItemState: BaseUnsetState<ItemAction>;
|
|
42
|
-
export declare type SetCustomLineItems = (lineItems: CustomLineItems) => void;
|
|
43
|
-
export declare type SetCustomLineItem = (lineItem: CustomLineItem) => void;
|
|
44
|
-
export interface ItemState {
|
|
45
|
-
skuCode?: string;
|
|
46
|
-
items?: Items;
|
|
47
|
-
item?: Items;
|
|
48
|
-
lineItems?: CustomLineItems;
|
|
49
|
-
lineItem?: CustomLineItem;
|
|
50
|
-
quantity?: ItemQuantity;
|
|
51
|
-
option?: ItemOptions;
|
|
52
|
-
prices?: ItemPrices;
|
|
53
|
-
setItems?: (items: Items) => void;
|
|
54
|
-
setItem?: (item: Items) => void;
|
|
55
|
-
setQuantity?: (quantity: ItemQuantity) => void;
|
|
56
|
-
setOption?: (option: ItemOptions) => void;
|
|
57
|
-
setPrices?: (prices: ItemPrices) => void;
|
|
58
|
-
setSkuCode?: (skuCode: string) => void;
|
|
59
|
-
setCustomLineItems: SetCustomLineItems;
|
|
60
|
-
setCustomLineItem?: SetCustomLineItem;
|
|
61
|
-
}
|
|
62
|
-
declare type ItemActionType = 'setItem' | 'setItems' | 'setQuantity' | 'setOption' | 'setPrices' | 'setCustomLineItems' | 'setCustomLineItem' | 'setSkuCode';
|
|
63
|
-
export interface ItemAction {
|
|
64
|
-
type: ItemActionType;
|
|
65
|
-
payload: Partial<ItemState>;
|
|
66
|
-
}
|
|
67
|
-
export declare const itemInitialState: Partial<ItemState>;
|
|
68
|
-
declare const itemReducer: (state: Partial<ItemState>, reducer: ItemAction) => Partial<ItemState>;
|
|
69
|
-
export default itemReducer;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import baseReducer from"../utils/baseReducer";export const setItemState=(data,params,dispatch)=>{dispatch({type:params.type,payload:{[`${params.key}`]:data}})},unsetItemState=dispatch=>{dispatch({type:"setItem",payload:{item:{}}}),dispatch({type:"setItems",payload:{items:{}}}),dispatch({type:"setQuantity",payload:{quantity:{}}}),dispatch({type:"setOption",payload:{option:{}}}),dispatch({type:"setCustomLineItems",payload:{lineItems:{}}}),dispatch({type:"setCustomLineItem",payload:{lineItem:{}}})};const actionType=["setItem","setItems","setQuantity","setOption","setPrices","setCustomLineItems","setCustomLineItem","setSkuCode"];export const itemInitialState={items:{},item:{},quantity:{},option:{},prices:{},lineItems:{},lineItem:{},skuCode:""};const itemReducer=(state,reducer)=>baseReducer(state,reducer,actionType);export default itemReducer;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { Dispatch } from 'react';
|
|
2
|
-
import { SkuOption } from '@commercelayer/sdk';
|
|
3
|
-
import { BaseUnsetState } from '../typings/index';
|
|
4
|
-
import { BaseError } from '../typings/errors';
|
|
5
|
-
export interface SkuOptionsState {
|
|
6
|
-
skuCode?: string;
|
|
7
|
-
skuOptions?: SkuOption[];
|
|
8
|
-
errors?: BaseError[];
|
|
9
|
-
}
|
|
10
|
-
interface GetSkuOptionsParams {
|
|
11
|
-
dispatch: Dispatch<SkuOptionsAction>;
|
|
12
|
-
skuOptions?: SkuOption[];
|
|
13
|
-
}
|
|
14
|
-
export interface GetSkuOptions {
|
|
15
|
-
(params: GetSkuOptionsParams): void;
|
|
16
|
-
}
|
|
17
|
-
export declare const getSkuOptions: GetSkuOptions;
|
|
18
|
-
export declare const unsetSkuOptionsState: BaseUnsetState<SkuOptionsAction>;
|
|
19
|
-
export declare type SkuOptionsActionType = 'setSkuOptions' | 'setErrors';
|
|
20
|
-
export interface SkuOptionsAction {
|
|
21
|
-
type: SkuOptionsActionType;
|
|
22
|
-
payload: SkuOptionsState;
|
|
23
|
-
}
|
|
24
|
-
export declare const skuOptionsInitialState: SkuOptionsState;
|
|
25
|
-
declare const skuOptionsReducer: (state: SkuOptionsState, reducer: SkuOptionsAction) => SkuOptionsState;
|
|
26
|
-
export default skuOptionsReducer;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import baseReducer from"../utils/baseReducer";export const getSkuOptions=async params=>{const{skuOptions,dispatch}=params;dispatch({type:"setSkuOptions",payload:{skuOptions}})},unsetSkuOptionsState=dispatch=>{dispatch({type:"setSkuOptions",payload:{skuOptions:[]}}),dispatch({type:"setErrors",payload:{errors:[]}})};const actionType=["setSkuOptions","setErrors"];export const skuOptionsInitialState={skuCode:"",skuOptions:[]};const skuOptionsReducer=(state,reducer)=>baseReducer(state,reducer,actionType);export default skuOptionsReducer;
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { Sku } from '@commercelayer/sdk';
|
|
2
|
-
import { VariantOption } from '../components/skus/VariantSelector';
|
|
3
|
-
import { Dispatch } from 'react';
|
|
4
|
-
import { CommerceLayerConfig } from '../context/CommerceLayerContext';
|
|
5
|
-
import { Items, CustomLineItem, SetCustomLineItems } from './ItemReducer';
|
|
6
|
-
import { BaseError } from '../typings/errors';
|
|
7
|
-
interface SetSkuCodeVariantParams {
|
|
8
|
-
code: string;
|
|
9
|
-
id: string;
|
|
10
|
-
config: CommerceLayerConfig;
|
|
11
|
-
dispatch: Dispatch<VariantAction>;
|
|
12
|
-
setItem: ((item: Items) => void) | undefined;
|
|
13
|
-
setItemSkuCode?: ((skuCode: string) => void) | undefined;
|
|
14
|
-
}
|
|
15
|
-
export declare type SetSkuCodeVariant = (params: SetSkuCodeVariantParams) => void;
|
|
16
|
-
interface SetVariantSkuCodesParams {
|
|
17
|
-
skuCodes: VariantOption[];
|
|
18
|
-
dispatch: Dispatch<VariantAction>;
|
|
19
|
-
setCustomLineItems?: SetCustomLineItems;
|
|
20
|
-
}
|
|
21
|
-
export declare type SetVariantSkuCodes = (params: SetVariantSkuCodesParams) => void;
|
|
22
|
-
export interface VariantsObject {
|
|
23
|
-
[key: string]: Sku;
|
|
24
|
-
}
|
|
25
|
-
export declare type SetSkuCode = (code: string, id: string, lineItem?: CustomLineItem) => void;
|
|
26
|
-
export interface VariantPayload {
|
|
27
|
-
loading?: boolean;
|
|
28
|
-
variants?: VariantsObject | Record<string, any>;
|
|
29
|
-
skuCodes?: string[];
|
|
30
|
-
skuCode?: string;
|
|
31
|
-
errors?: BaseError[];
|
|
32
|
-
currentSkuId?: string;
|
|
33
|
-
currentSkuInventory?: any;
|
|
34
|
-
currentQuantity?: number;
|
|
35
|
-
currentPrices?: Sku[];
|
|
36
|
-
setSkuCode?: SetSkuCode;
|
|
37
|
-
setSkuCodes?: (skuCodes: VariantOption[]) => void;
|
|
38
|
-
}
|
|
39
|
-
export interface VariantState extends VariantPayload {
|
|
40
|
-
skuCodes: string[];
|
|
41
|
-
variants: VariantsObject | Record<string, any>;
|
|
42
|
-
}
|
|
43
|
-
export interface VariantAction {
|
|
44
|
-
type: VariantActionType;
|
|
45
|
-
payload: VariantPayload;
|
|
46
|
-
}
|
|
47
|
-
export declare const setVariantSkuCodes: SetVariantSkuCodes;
|
|
48
|
-
export declare type UnsetVariantState = (dispatch: Dispatch<VariantAction>) => void;
|
|
49
|
-
export declare const setSkuCode: SetSkuCodeVariant;
|
|
50
|
-
interface GetVariantsParams {
|
|
51
|
-
config: CommerceLayerConfig;
|
|
52
|
-
state: VariantState;
|
|
53
|
-
skuCode: string;
|
|
54
|
-
dispatch: Dispatch<VariantAction>;
|
|
55
|
-
filters: Record<string, any>;
|
|
56
|
-
setItem: ((item: Items) => void) | undefined;
|
|
57
|
-
}
|
|
58
|
-
export declare type GetVariants = (params: GetVariantsParams) => void;
|
|
59
|
-
export declare const getVariants: GetVariants;
|
|
60
|
-
export declare const unsetVariantState: UnsetVariantState;
|
|
61
|
-
export declare const variantInitialState: VariantState;
|
|
62
|
-
export declare type VariantActionType = 'setLoading' | 'setVariants' | 'setSkuCodes' | 'setSkuCode' | 'setCurrentSkuId' | 'setCurrentSkuInventory' | 'setCurrentPrices' | 'setErrors';
|
|
63
|
-
declare const variantReducer: (state: VariantState, reducer: VariantAction) => VariantState;
|
|
64
|
-
export default variantReducer;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import baseReducer from"../utils/baseReducer";import getSkus from"../utils/getSkus";import{isEmpty,has}from"lodash";import getSdk from"../utils/getSdk";export const setVariantSkuCodes=({skuCodes,dispatch,setCustomLineItems})=>{const lineItems={},sCodes=skuCodes.map(s=>(has(s,"lineItem")&&(lineItems[s.code]=s.lineItem),s.code));!isEmpty(lineItems)&&setCustomLineItems&&setCustomLineItems(lineItems),dispatch({type:"setSkuCodes",payload:{skuCodes:sCodes}})},setSkuCode=params=>{const{id,code,config,setItem,dispatch,setItemSkuCode}=params;id&&getSdk(config).skus.retrieve(id,{include:["sku_options"]}).then(sku=>{setItem&&setItem({[`${code}`]:sku}),setItemSkuCode&&setItemSkuCode(code)}).catch(errors=>{dispatch({type:"setErrors",payload:{errors}})})},getVariants=params=>{const{config,state,skuCode,dispatch,setItem,filters}=params;getSdk(config).skus.list({filters:{code_in:state.skuCodes.join(","),...filters}}).then(skus=>{const skusObj=getSkus(skus,state.skuCodes);skuCode&&setSkuCode({code:skusObj[skuCode].code,id:skusObj[skuCode].id,config,dispatch,setItem}),dispatch({type:"setVariants",payload:{variants:skusObj}}),dispatch({type:"setLoading",payload:{loading:!1}})}).catch(errors=>{dispatch({type:"setErrors",payload:{errors}})})},unsetVariantState=dispatch=>{dispatch({type:"setSkuCode",payload:{skuCode:""}}),dispatch({type:"setVariants",payload:{variants:{}}}),dispatch({type:"setLoading",payload:{loading:!1}})},variantInitialState={loading:!1,variants:{},skuCodes:[],skuCode:"",errors:[],currentSkuId:"",currentSkuInventory:{available:!1,quantity:0,levels:[]},currentQuantity:1,currentPrices:[]};const actionType=["setLoading","setVariants","setSkuCodes","setSkuCode","setCurrentSkuId","setCurrentSkuInventory","setCurrentPrices","setErrors"],variantReducer=(state,reducer)=>baseReducer(state,reducer,actionType);export default variantReducer;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import first from"lodash/first";import keys from"lodash/keys";const getCurrentItemKey=item=>first(keys(item))||"";export default getCurrentItemKey;
|