@commercelayer/react-components 2.47.1 → 2.48.0

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,7 +1,7 @@
1
1
  import { FunctionComponent, PropsWithoutRef, ReactNode } from 'react';
2
2
  import { FunctionChildren } from '../typings/index';
3
3
  import { AddToCartReturn } from '../reducers/OrderReducer';
4
- import { VariantOptions } from './VariantSelector';
4
+ import { VariantOption } from './VariantSelector';
5
5
  declare type ChildrenProps = {
6
6
  handleClick: () => AddToCartReturn;
7
7
  } & Omit<AddToCartButtonProps, 'children'>;
@@ -14,7 +14,7 @@ declare type AddToCartButtonProps = {
14
14
  bundleCode?: string;
15
15
  disabled?: boolean;
16
16
  skuListId?: string;
17
- lineItem?: VariantOptions['lineItem'];
17
+ lineItem?: VariantOption['lineItem'];
18
18
  } & PropsWithoutRef<JSX.IntrinsicElements['button']>;
19
19
  declare const AddToCartButton: FunctionComponent<AddToCartButtonProps>;
20
20
  export default AddToCartButton;
@@ -1,8 +1,9 @@
1
1
  import { FunctionComponent, ReactNode } from 'react';
2
+ import { VariantHandleCallback } from './utils/VariantTemplate';
2
3
  import { BaseSelectorType } from '../typings/index';
3
4
  import { FunctionChildren } from '../typings/index';
4
5
  import { VariantsObject, SetSkuCode } from '../reducers/VariantReducer';
5
- export interface VariantOptions {
6
+ export interface VariantOption {
6
7
  label: string;
7
8
  code: string;
8
9
  lineItem?: {
@@ -17,11 +18,12 @@ declare type VariantSelectorChildrenProps = FunctionChildren<Omit<VariantSelecto
17
18
  }>;
18
19
  declare type VariantSelectorProps = {
19
20
  children?: VariantSelectorChildrenProps;
20
- options: VariantOptions[];
21
+ options: VariantOption[];
21
22
  type?: BaseSelectorType;
22
23
  loader?: ReactNode;
23
24
  placeholder?: string;
24
25
  skuCode?: string;
26
+ handleCallback?: VariantHandleCallback;
25
27
  } & JSX.IntrinsicElements['input'] & JSX.IntrinsicElements['select'];
26
28
  declare const VariantSelector: FunctionComponent<VariantSelectorProps>;
27
29
  export default VariantSelector;
@@ -2,7 +2,7 @@ import { FunctionComponent, ReactNode } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { BaseSelectorType } from '../../typings/index';
4
4
  import { VariantsObject, SetSkuCode } from '../../reducers/VariantReducer';
5
- import { VariantOptions } from '../VariantSelector';
5
+ import { VariantOption } from '../VariantSelector';
6
6
  export declare const propTypes: {
7
7
  variants: PropTypes.Validator<any>;
8
8
  onChange: PropTypes.Requireable<(...args: any[]) => any>;
@@ -21,14 +21,16 @@ export declare const propTypes: {
21
21
  placeholder: PropTypes.Requireable<string>;
22
22
  skuCode: PropTypes.Requireable<string>;
23
23
  };
24
+ export declare type VariantHandleCallback = (variant: VariantOption) => void;
24
25
  export declare type VariantTemplateProps = {
25
26
  variants: VariantsObject | Record<string, any>;
26
27
  handleChange?: SetSkuCode;
27
- options: VariantOptions[];
28
+ options: VariantOption[];
28
29
  type?: BaseSelectorType;
29
30
  loader?: ReactNode;
30
31
  placeholder?: string;
31
32
  skuCode?: string;
33
+ handleCallback?: VariantHandleCallback;
32
34
  } & JSX.IntrinsicElements['input'] & JSX.IntrinsicElements['select'];
33
35
  declare const VariantTemplate: FunctionComponent<VariantTemplateProps>;
34
36
  export default VariantTemplate;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.propTypes=void 0;const tslib_1=require("tslib");const jsx_runtime_1=require("react/jsx-runtime");const react_1=require("react");const lodash_1=require("lodash");const prop_types_1=(0,tslib_1.__importDefault)(require("prop-types"));exports.propTypes={variants:prop_types_1.default.any.isRequired,onChange:prop_types_1.default.func,options:prop_types_1.default.arrayOf(prop_types_1.default.shape({label:prop_types_1.default.string.isRequired,code:prop_types_1.default.string.isRequired,lineItem:prop_types_1.default.shape({name:prop_types_1.default.string.isRequired,imageUrl:prop_types_1.default.string})}).isRequired).isRequired,name:prop_types_1.default.string,children:prop_types_1.default.func,type:prop_types_1.default.oneOf(["select","radio"]),loader:prop_types_1.default.element,placeholder:prop_types_1.default.string,skuCode:prop_types_1.default.string};const VariantTemplate=e=>{const{id:t,variants:s,type:r,placeholder:a,options:p,skuCode:i,handleChange:n}=e,o=(0,tslib_1.__rest)(e,["id","variants","type","placeholder","options","skuCode","handleChange"]);const d=(0,lodash_1.keys)(s).map(((e,a)=>{const d=i===e;return r==="select"?(0,jsx_runtime_1.jsx)("option",Object.assign({"data-sku-id":s[e].id,value:s[e].code},{children:p.length>0?p[a].label:s[e].name}),s[e].id):(0,jsx_runtime_1.jsxs)(react_1.Fragment,{children:[(0,jsx_runtime_1.jsx)("input",Object.assign({id:t&&`${t}-${a}`,defaultChecked:d,type:"radio",value:s[e].code,onChange:t=>n&&n(t.target.value,s[e].id)},o),void 0),p.length>0?p[a].label:s[e].name]},s[e].id)}));if(r==="select"){return(0,jsx_runtime_1.jsxs)("select",Object.assign({id:t,onChange:e=>{const t=e.target.value;const s=e.target.selectedIndex;const r=e.target[s].dataset.skuId;n&&n(t,r)},value:i||""},o,{children:[(0,jsx_runtime_1.jsx)("option",Object.assign({disabled:!!i},{children:a}),void 0),d]}),void 0)}return(0,jsx_runtime_1.jsx)(react_1.Fragment,{children:d},void 0)};VariantTemplate.propTypes=exports.propTypes;exports.default=VariantTemplate;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.propTypes=void 0;const tslib_1=require("tslib");const jsx_runtime_1=require("react/jsx-runtime");const react_1=require("react");const lodash_1=require("lodash");const prop_types_1=(0,tslib_1.__importDefault)(require("prop-types"));exports.propTypes={variants:prop_types_1.default.any.isRequired,onChange:prop_types_1.default.func,options:prop_types_1.default.arrayOf(prop_types_1.default.shape({label:prop_types_1.default.string.isRequired,code:prop_types_1.default.string.isRequired,lineItem:prop_types_1.default.shape({name:prop_types_1.default.string.isRequired,imageUrl:prop_types_1.default.string})}).isRequired).isRequired,name:prop_types_1.default.string,children:prop_types_1.default.func,type:prop_types_1.default.oneOf(["select","radio"]),loader:prop_types_1.default.element,placeholder:prop_types_1.default.string,skuCode:prop_types_1.default.string};const VariantTemplate=e=>{const{id:t,variants:s,type:a,placeholder:r,options:p,skuCode:i,handleChange:n,handleCallback:o}=e,l=(0,tslib_1.__rest)(e,["id","variants","type","placeholder","options","skuCode","handleChange","handleCallback"]);const d=(0,lodash_1.keys)(s).map(((e,r)=>{const d=i===e;const _=p.length>0?p[r].label:s[e].name;return a==="select"?(0,jsx_runtime_1.jsx)("option",Object.assign({"data-sku-id":s[e].id,"data-label":_,value:s[e].code},{children:_}),s[e].id):(0,jsx_runtime_1.jsxs)(react_1.Fragment,{children:[(0,jsx_runtime_1.jsx)("input",Object.assign({id:t&&`${t}-${r}`,defaultChecked:d,type:"radio",value:s[e].code,onChange:t=>{const a=t.target.value;n&&n(a,s[e].id);o&&o({code:a,label:_})}},l),void 0),_]},s[e].id)}));if(a==="select"){return(0,jsx_runtime_1.jsxs)("select",Object.assign({id:t,title:"Variant selector",onChange:e=>{const t=e.target.value;const s=e.target.selectedIndex;const a=e.target[s].dataset.skuId;const r=e.target[s].dataset.label;n&&n(t,a);o&&o({code:t,label:r})},value:i||""},l,{children:[(0,jsx_runtime_1.jsx)("option",Object.assign({disabled:!!i},{children:r}),void 0),d]}),void 0)}return(0,jsx_runtime_1.jsx)(react_1.Fragment,{children:d},void 0)};VariantTemplate.propTypes=exports.propTypes;exports.default=VariantTemplate;
@@ -1,5 +1,5 @@
1
1
  import { Sku } from '@commercelayer/sdk';
2
- import { VariantOptions } from '../components/VariantSelector';
2
+ import { VariantOption } from '../components/VariantSelector';
3
3
  import { Dispatch } from 'react';
4
4
  import { CommerceLayerConfig } from '../context/CommerceLayerContext';
5
5
  import { Items, CustomLineItem, SetCustomLineItems } from './ItemReducer';
@@ -15,7 +15,7 @@ export interface SetSkuCodeVariant {
15
15
  (params: SetSkuCodeVariantParams): void;
16
16
  }
17
17
  declare type SetVariantSkuCodesParams = {
18
- skuCodes: VariantOptions[];
18
+ skuCodes: VariantOption[];
19
19
  dispatch: Dispatch<VariantAction>;
20
20
  setCustomLineItems?: SetCustomLineItems;
21
21
  };
@@ -37,7 +37,7 @@ export interface VariantPayload {
37
37
  currentQuantity?: number;
38
38
  currentPrices?: Sku[];
39
39
  setSkuCode?: SetSkuCode;
40
- setSkuCodes?: (skuCodes: VariantOptions[]) => void;
40
+ setSkuCodes?: (skuCodes: VariantOption[]) => void;
41
41
  }
42
42
  export interface VariantState extends VariantPayload {
43
43
  skuCodes: string[];
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.variantInitialState=exports.unsetVariantState=exports.getVariants=exports.setSkuCode=exports.setVariantSkuCodes=void 0;const tslib_1=require("tslib");const baseReducer_1=(0,tslib_1.__importDefault)(require("../utils/baseReducer"));const getSkus_1=(0,tslib_1.__importDefault)(require("../utils/getSkus"));const lodash_1=require("lodash");const getSdk_1=(0,tslib_1.__importDefault)(require("../utils/getSdk"));const setVariantSkuCodes=({skuCodes:t,dispatch:e,setCustomLineItems:s})=>{const a={};const r=t.map((t=>{if((0,lodash_1.has)(t,"lineItem")){a[t.code]=t.lineItem}return t.code}));if(!(0,lodash_1.isEmpty)(a)){s&&s(a)}e({type:"setSkuCodes",payload:{skuCodes:r}})};exports.setVariantSkuCodes=setVariantSkuCodes;const setSkuCode=t=>{const{id:e,code:s,config:a,setItem:r,dispatch:o}=t;if(e){const t=(0,getSdk_1.default)(a);t.skus.retrieve(e,{include:["sku_options"]}).then((t=>{r&&r({[`${s}`]:t})})).catch((t=>{debugger;o({type:"setErrors",payload:{errors:t}})}))}};exports.setSkuCode=setSkuCode;const getVariants=t=>{const{config:e,state:s,skuCode:a,dispatch:r,setItem:o,filters:i}=t;const n=(0,getSdk_1.default)(e);n.skus.list({filters:Object.assign({code_in:s.skuCodes.join(",")},i)}).then((t=>{const s=(0,getSkus_1.default)(t);if(a){(0,exports.setSkuCode)({code:s[a].code,id:s[a].id,config:e,dispatch:r,setItem:o})}r({type:"setVariants",payload:{variants:s}});r({type:"setLoading",payload:{loading:false}})})).catch((t=>{r({type:"setErrors",payload:{errors:t}})}))};exports.getVariants=getVariants;const unsetVariantState=t=>{t({type:"setSkuCode",payload:{skuCode:""}});t({type:"setVariants",payload:{variants:{}}});t({type:"setLoading",payload:{loading:false}})};exports.unsetVariantState=unsetVariantState;exports.variantInitialState={loading:false,variants:{},skuCodes:[],skuCode:"",errors:[],currentSkuId:"",currentSkuInventory:{available:false,quantity:0,levels:[]},currentQuantity:1,currentPrices:[]};const actionType=["setLoading","setVariants","setSkuCodes","setSkuCode","setCurrentSkuId","setCurrentSkuInventory","setCurrentPrices","setErrors"];const variantReducer=(t,e)=>(0,baseReducer_1.default)(t,e,actionType);exports.default=variantReducer;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.variantInitialState=exports.unsetVariantState=exports.getVariants=exports.setSkuCode=exports.setVariantSkuCodes=void 0;const tslib_1=require("tslib");const baseReducer_1=(0,tslib_1.__importDefault)(require("../utils/baseReducer"));const getSkus_1=(0,tslib_1.__importDefault)(require("../utils/getSkus"));const lodash_1=require("lodash");const getSdk_1=(0,tslib_1.__importDefault)(require("../utils/getSdk"));const setVariantSkuCodes=({skuCodes:e,dispatch:t,setCustomLineItems:s})=>{const a={};const r=e.map((e=>{if((0,lodash_1.has)(e,"lineItem")){a[e.code]=e.lineItem}return e.code}));if(!(0,lodash_1.isEmpty)(a)){s&&s(a)}t({type:"setSkuCodes",payload:{skuCodes:r}})};exports.setVariantSkuCodes=setVariantSkuCodes;const setSkuCode=e=>{const{id:t,code:s,config:a,setItem:r,dispatch:o}=e;if(t){const e=(0,getSdk_1.default)(a);e.skus.retrieve(t,{include:["sku_options"]}).then((e=>{r&&r({[`${s}`]:e})})).catch((e=>{debugger;o({type:"setErrors",payload:{errors:e}})}))}};exports.setSkuCode=setSkuCode;const getVariants=e=>{const{config:t,state:s,skuCode:a,dispatch:r,setItem:o,filters:i}=e;const n=(0,getSdk_1.default)(t);n.skus.list({filters:Object.assign({code_in:s.skuCodes.join(",")},i)}).then((e=>{const i=(0,getSkus_1.default)(e,s.skuCodes);if(a){(0,exports.setSkuCode)({code:i[a].code,id:i[a].id,config:t,dispatch:r,setItem:o})}r({type:"setVariants",payload:{variants:i}});r({type:"setLoading",payload:{loading:false}})})).catch((e=>{r({type:"setErrors",payload:{errors:e}})}))};exports.getVariants=getVariants;const unsetVariantState=e=>{e({type:"setSkuCode",payload:{skuCode:""}});e({type:"setVariants",payload:{variants:{}}});e({type:"setLoading",payload:{loading:false}})};exports.unsetVariantState=unsetVariantState;exports.variantInitialState={loading:false,variants:{},skuCodes:[],skuCode:"",errors:[],currentSkuId:"",currentSkuInventory:{available:false,quantity:0,levels:[]},currentQuantity:1,currentPrices:[]};const actionType=["setLoading","setVariants","setSkuCodes","setSkuCode","setCurrentSkuId","setCurrentSkuInventory","setCurrentPrices","setErrors"];const variantReducer=(e,t)=>(0,baseReducer_1.default)(e,t,actionType);exports.default=variantReducer;
@@ -1,3 +1,3 @@
1
1
  import { Sku } from '@commercelayer/sdk';
2
- declare const getSkus: (skus: Sku[]) => Record<string, any>;
2
+ declare const getSkus: (skus: Sku[], sortBy: string[]) => Record<string, any>;
3
3
  export default getSkus;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:true});const getSkus=e=>{const t={};e.forEach((e=>{if(e===null||e===void 0?void 0:e.code)t[e.code]=e}));return t};exports.default=getSkus;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:true});const getSkus=(e,t)=>{const o={};t.forEach((t=>{e.forEach((e=>{if((e===null||e===void 0?void 0:e.code)===t)o[e.code]=e}))}));return o};exports.default=getSkus;
@@ -1,7 +1,7 @@
1
1
  import { FunctionComponent, PropsWithoutRef, ReactNode } from 'react';
2
2
  import { FunctionChildren } from '../typings/index';
3
3
  import { AddToCartReturn } from '../reducers/OrderReducer';
4
- import { VariantOptions } from './VariantSelector';
4
+ import { VariantOption } from './VariantSelector';
5
5
  declare type ChildrenProps = {
6
6
  handleClick: () => AddToCartReturn;
7
7
  } & Omit<AddToCartButtonProps, 'children'>;
@@ -14,7 +14,7 @@ declare type AddToCartButtonProps = {
14
14
  bundleCode?: string;
15
15
  disabled?: boolean;
16
16
  skuListId?: string;
17
- lineItem?: VariantOptions['lineItem'];
17
+ lineItem?: VariantOption['lineItem'];
18
18
  } & PropsWithoutRef<JSX.IntrinsicElements['button']>;
19
19
  declare const AddToCartButton: FunctionComponent<AddToCartButtonProps>;
20
20
  export default AddToCartButton;
@@ -1,8 +1,9 @@
1
1
  import { FunctionComponent, ReactNode } from 'react';
2
+ import { VariantHandleCallback } from './utils/VariantTemplate';
2
3
  import { BaseSelectorType } from '../typings/index';
3
4
  import { FunctionChildren } from '../typings/index';
4
5
  import { VariantsObject, SetSkuCode } from '../reducers/VariantReducer';
5
- export interface VariantOptions {
6
+ export interface VariantOption {
6
7
  label: string;
7
8
  code: string;
8
9
  lineItem?: {
@@ -17,11 +18,12 @@ declare type VariantSelectorChildrenProps = FunctionChildren<Omit<VariantSelecto
17
18
  }>;
18
19
  declare type VariantSelectorProps = {
19
20
  children?: VariantSelectorChildrenProps;
20
- options: VariantOptions[];
21
+ options: VariantOption[];
21
22
  type?: BaseSelectorType;
22
23
  loader?: ReactNode;
23
24
  placeholder?: string;
24
25
  skuCode?: string;
26
+ handleCallback?: VariantHandleCallback;
25
27
  } & JSX.IntrinsicElements['input'] & JSX.IntrinsicElements['select'];
26
28
  declare const VariantSelector: FunctionComponent<VariantSelectorProps>;
27
29
  export default VariantSelector;
@@ -2,7 +2,7 @@ import { FunctionComponent, ReactNode } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { BaseSelectorType } from '../../typings/index';
4
4
  import { VariantsObject, SetSkuCode } from '../../reducers/VariantReducer';
5
- import { VariantOptions } from '../VariantSelector';
5
+ import { VariantOption } from '../VariantSelector';
6
6
  export declare const propTypes: {
7
7
  variants: PropTypes.Validator<any>;
8
8
  onChange: PropTypes.Requireable<(...args: any[]) => any>;
@@ -21,14 +21,16 @@ export declare const propTypes: {
21
21
  placeholder: PropTypes.Requireable<string>;
22
22
  skuCode: PropTypes.Requireable<string>;
23
23
  };
24
+ export declare type VariantHandleCallback = (variant: VariantOption) => void;
24
25
  export declare type VariantTemplateProps = {
25
26
  variants: VariantsObject | Record<string, any>;
26
27
  handleChange?: SetSkuCode;
27
- options: VariantOptions[];
28
+ options: VariantOption[];
28
29
  type?: BaseSelectorType;
29
30
  loader?: ReactNode;
30
31
  placeholder?: string;
31
32
  skuCode?: string;
33
+ handleCallback?: VariantHandleCallback;
32
34
  } & JSX.IntrinsicElements['input'] & JSX.IntrinsicElements['select'];
33
35
  declare const VariantTemplate: FunctionComponent<VariantTemplateProps>;
34
36
  export default VariantTemplate;
@@ -1 +1 @@
1
- import{__rest}from"tslib";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{Fragment}from"react";import{keys}from"lodash";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=e=>{const{id:s,variants:r,type:t,placeholder:o,options:a,skuCode:p,handleChange:i}=e,n=__rest(e,["id","variants","type","placeholder","options","skuCode","handleChange"]);const d=keys(r).map(((e,o)=>{const d=p===e;return t==="select"?_jsx("option",Object.assign({"data-sku-id":r[e].id,value:r[e].code},{children:a.length>0?a[o].label:r[e].name}),r[e].id):_jsxs(Fragment,{children:[_jsx("input",Object.assign({id:s&&`${s}-${o}`,defaultChecked:d,type:"radio",value:r[e].code,onChange:s=>i&&i(s.target.value,r[e].id)},n),void 0),a.length>0?a[o].label:r[e].name]},r[e].id)}));if(t==="select"){return _jsxs("select",Object.assign({id:s,onChange:e=>{const s=e.target.value;const r=e.target.selectedIndex;const t=e.target[r].dataset.skuId;i&&i(s,t)},value:p||""},n,{children:[_jsx("option",Object.assign({disabled:!!p},{children:o}),void 0),d]}),void 0)}return _jsx(Fragment,{children:d},void 0)};VariantTemplate.propTypes=propTypes;export default VariantTemplate;
1
+ import{__rest}from"tslib";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{Fragment}from"react";import{keys}from"lodash";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=e=>{const{id:s,variants:t,type:r,placeholder:a,options:o,skuCode:n,handleChange:p,handleCallback:i}=e,l=__rest(e,["id","variants","type","placeholder","options","skuCode","handleChange","handleCallback"]);const d=keys(t).map(((e,a)=>{const d=n===e;const c=o.length>0?o[a].label:t[e].name;return r==="select"?_jsx("option",Object.assign({"data-sku-id":t[e].id,"data-label":c,value:t[e].code},{children:c}),t[e].id):_jsxs(Fragment,{children:[_jsx("input",Object.assign({id:s&&`${s}-${a}`,defaultChecked:d,type:"radio",value:t[e].code,onChange:s=>{const r=s.target.value;p&&p(r,t[e].id);i&&i({code:r,label:c})}},l),void 0),c]},t[e].id)}));if(r==="select"){return _jsxs("select",Object.assign({id:s,title:"Variant selector",onChange:e=>{const s=e.target.value;const t=e.target.selectedIndex;const r=e.target[t].dataset.skuId;const a=e.target[t].dataset.label;p&&p(s,r);i&&i({code:s,label:a})},value:n||""},l,{children:[_jsx("option",Object.assign({disabled:!!n},{children:a}),void 0),d]}),void 0)}return _jsx(Fragment,{children:d},void 0)};VariantTemplate.propTypes=propTypes;export default VariantTemplate;
@@ -1,5 +1,5 @@
1
1
  import { Sku } from '@commercelayer/sdk';
2
- import { VariantOptions } from '../components/VariantSelector';
2
+ import { VariantOption } from '../components/VariantSelector';
3
3
  import { Dispatch } from 'react';
4
4
  import { CommerceLayerConfig } from '../context/CommerceLayerContext';
5
5
  import { Items, CustomLineItem, SetCustomLineItems } from './ItemReducer';
@@ -15,7 +15,7 @@ export interface SetSkuCodeVariant {
15
15
  (params: SetSkuCodeVariantParams): void;
16
16
  }
17
17
  declare type SetVariantSkuCodesParams = {
18
- skuCodes: VariantOptions[];
18
+ skuCodes: VariantOption[];
19
19
  dispatch: Dispatch<VariantAction>;
20
20
  setCustomLineItems?: SetCustomLineItems;
21
21
  };
@@ -37,7 +37,7 @@ export interface VariantPayload {
37
37
  currentQuantity?: number;
38
38
  currentPrices?: Sku[];
39
39
  setSkuCode?: SetSkuCode;
40
- setSkuCodes?: (skuCodes: VariantOptions[]) => void;
40
+ setSkuCodes?: (skuCodes: VariantOption[]) => void;
41
41
  }
42
42
  export interface VariantState extends VariantPayload {
43
43
  skuCodes: string[];
@@ -1 +1 @@
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:e,dispatch:t,setCustomLineItems:s})=>{const o={};const a=e.map((e=>{if(has(e,"lineItem")){o[e.code]=e.lineItem}return e.code}));if(!isEmpty(o)){s&&s(o)}t({type:"setSkuCodes",payload:{skuCodes:a}})};export const setSkuCode=e=>{const{id:t,code:s,config:o,setItem:a,dispatch:r}=e;if(t){const e=getSdk(o);e.skus.retrieve(t,{include:["sku_options"]}).then((e=>{a&&a({[`${s}`]:e})})).catch((e=>{debugger;r({type:"setErrors",payload:{errors:e}})}))}};export const getVariants=e=>{const{config:t,state:s,skuCode:o,dispatch:a,setItem:r,filters:n}=e;const i=getSdk(t);i.skus.list({filters:Object.assign({code_in:s.skuCodes.join(",")},n)}).then((e=>{const s=getSkus(e);if(o){setSkuCode({code:s[o].code,id:s[o].id,config:t,dispatch:a,setItem:r})}a({type:"setVariants",payload:{variants:s}});a({type:"setLoading",payload:{loading:false}})})).catch((e=>{a({type:"setErrors",payload:{errors:e}})}))};export const unsetVariantState=e=>{e({type:"setSkuCode",payload:{skuCode:""}});e({type:"setVariants",payload:{variants:{}}});e({type:"setLoading",payload:{loading:false}})};export const variantInitialState={loading:false,variants:{},skuCodes:[],skuCode:"",errors:[],currentSkuId:"",currentSkuInventory:{available:false,quantity:0,levels:[]},currentQuantity:1,currentPrices:[]};const actionType=["setLoading","setVariants","setSkuCodes","setSkuCode","setCurrentSkuId","setCurrentSkuInventory","setCurrentPrices","setErrors"];const variantReducer=(e,t)=>baseReducer(e,t,actionType);export default variantReducer;
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:e,dispatch:t,setCustomLineItems:s})=>{const o={};const a=e.map((e=>{if(has(e,"lineItem")){o[e.code]=e.lineItem}return e.code}));if(!isEmpty(o)){s&&s(o)}t({type:"setSkuCodes",payload:{skuCodes:a}})};export const setSkuCode=e=>{const{id:t,code:s,config:o,setItem:a,dispatch:r}=e;if(t){const e=getSdk(o);e.skus.retrieve(t,{include:["sku_options"]}).then((e=>{a&&a({[`${s}`]:e})})).catch((e=>{debugger;r({type:"setErrors",payload:{errors:e}})}))}};export const getVariants=e=>{const{config:t,state:s,skuCode:o,dispatch:a,setItem:r,filters:n}=e;const i=getSdk(t);i.skus.list({filters:Object.assign({code_in:s.skuCodes.join(",")},n)}).then((e=>{const n=getSkus(e,s.skuCodes);if(o){setSkuCode({code:n[o].code,id:n[o].id,config:t,dispatch:a,setItem:r})}a({type:"setVariants",payload:{variants:n}});a({type:"setLoading",payload:{loading:false}})})).catch((e=>{a({type:"setErrors",payload:{errors:e}})}))};export const unsetVariantState=e=>{e({type:"setSkuCode",payload:{skuCode:""}});e({type:"setVariants",payload:{variants:{}}});e({type:"setLoading",payload:{loading:false}})};export const variantInitialState={loading:false,variants:{},skuCodes:[],skuCode:"",errors:[],currentSkuId:"",currentSkuInventory:{available:false,quantity:0,levels:[]},currentQuantity:1,currentPrices:[]};const actionType=["setLoading","setVariants","setSkuCodes","setSkuCode","setCurrentSkuId","setCurrentSkuInventory","setCurrentPrices","setErrors"];const variantReducer=(e,t)=>baseReducer(e,t,actionType);export default variantReducer;
@@ -1,3 +1,3 @@
1
1
  import { Sku } from '@commercelayer/sdk';
2
- declare const getSkus: (skus: Sku[]) => Record<string, any>;
2
+ declare const getSkus: (skus: Sku[], sortBy: string[]) => Record<string, any>;
3
3
  export default getSkus;
@@ -1 +1 @@
1
- const getSkus=o=>{const e={};o.forEach((o=>{if(o===null||o===void 0?void 0:o.code)e[o.code]=o}));return e};export default getSkus;
1
+ const getSkus=(o,e)=>{const t={};e.forEach((e=>{o.forEach((o=>{if((o===null||o===void 0?void 0:o.code)===e)t[o.code]=o}))}));return t};export default getSkus;