@bikdotai/bik-component-library 0.0.548-beta.1 → 0.0.548-beta.2

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
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../../_virtual/_tslib.js"),t=require("react/jsx-runtime"),o=require("../../assets/icons/arrow_left.svg.js"),r=require("../../assets/icons/box.svg.js"),c=require("../../assets/icons/search.svg.js"),n=require("lodash"),s=require("react"),i=require("../../constants/Theme.js"),l=require("../checkBox/CheckBox.js"),u=require("../icon-button/IconButton.js"),d=require("../input/Input.js"),a=require("../spinner/Spinner.js"),h=require("../TypographyStyle.js"),p=require("./emptyState.js"),v=require("./product.js"),g=require("./ProductPickerShimmer.js"),j=require("./reducers.js"),f=require("./style.js"),y=require("./type.js"),C=require("./utility.js");const b=e=>{let{children:o,fetchMore:r,loadingComponent:c,containerRef:n}=e;const[i,l]=s.useState(!1),u=s.useRef(0);return s.useEffect((()=>{if(!n.current)return;const e=n.current,t=()=>{if(i)return;const t=e.querySelector("#sentinel");if(!t)return;const o=e.getBoundingClientRect(),c=t.getBoundingClientRect();c.top<=o.bottom&&c.bottom>=o.top&&(l(!0),u.current=e.scrollTop,r().then((()=>{e.scrollTo({top:u.current-10,behavior:"smooth"}),l(!1)})))};return e.addEventListener("scroll",t),()=>{e.removeEventListener("scroll",t)}}),[r,i,n]),t.jsxs("div",{children:[o,t.jsx("div",{id:"sentinel",style:{height:"10px"}}),i&&c]})};exports.ProductsScreen=P=>{var k,x;const{data:O,collectionsDispatch:m,selectedData:S,selectedCollectionsDispatch:I,productFetcher:T,storeId:E,setScreen:q,setSaveDisabled:R,hideInCollectionSearch:A,customCollectionRestriction:D,hideProductCheckbox:V,outOfStockAction:L=y.OUT_OF_STOCK_ACTION.BLUR,hideVariantCheckbox:w=!1,selectProductsFromCustomCollection:B=!1,pickerType:F,hideProductVariants:_,fbStatusFetcher:H,onProductDetailClick:M,showProductDetailInfoIcon:U,scrollContainerRef:J}=P,K=s.useContext(j.CollectionIdContext),N=s.useRef(0),W=s.useRef(!1),[z,G]=s.useState(!1),[Q,X]=s.useState(""),[Y,Z]=s.useState(!1),[$,ee]=s.useState(O),te=s.useRef(!1);s.useEffect((()=>{const e=setTimeout((()=>{Q.length?(Z(!0),P.searchInCollectionFetcher(E,K,Q).then((e=>{const t=n.cloneDeep(O);t.products=e,ee(t);const o=C.getVariantIdsToFetchAtProductLevel(null!=e?e:{});re(o,null!=e?e:{},!0),R(!1),Z(!1)}))):ee(O)}),800);return()=>clearTimeout(e)}),[Q]),s.useCallback((()=>{if(!J||!(null==J?void 0:J.current))return;const{scrollTop:e,clientHeight:t,scrollHeight:o}=J.current;console.log({scrollTop:e,clientHeight:t,scrollHeight:o}),e+t>=o-20&&!te.current&&!W.current&&(R(!0),G(!0),W.current=!0,console.log("handleScroll productFetcher",{collectionId:K,storeId:E,o:10,nc:N.current}),T(K,E,10,N.current).then((r=>{var c,n;if(Object.keys(r).length||(te.current=!0),Object.keys(r).length){const s=$;s.products=Object.assign(Object.assign({},$.products),r),ee(s);const i=C.getVariantIdsToFetchAtProductLevel(r);re(i,r),console.log("new scroll position",e+t-100),N.current+=1;const l=(null===(c=J.current)||void 0===c?void 0:c.scrollHeight)-o+e;null===(n=J.current)||void 0===n||n.scrollTo({top:l-100,behavior:"smooth"})}W.current=!1,G(!1),R(!1)})).catch())}),[K,$,J,E]),s.useEffect((()=>{var e,t,o,r;console.log("useEffect productScreen, collectionId",{collectionId:K}),te.current=!1,N.current=Math.floor((null===(t=Object.keys(null!==(e=O.products)&&void 0!==e?e:{}))||void 0===t?void 0:t.length)/10);const c=C.getVariantIdsToFetchAtProductLevel(null!==(o=O.products)&&void 0!==o?o:{});re(c,null!==(r=O.products)&&void 0!==r?r:{})}),[K]);const oe=!!D&&O.isSmartCollection;s.useEffect((()=>{(null==O?void 0:O.products)||ce(10)}),[]);const re=(e,t,o)=>{H||(o?C.markVariantsAsApprovedProductsLevel(t,m,K,$,ee):C.markVariantsAsApprovedProductsLevel(t,m,K)),e.length>0&&H&&H(E,e).then((e=>{const r=Object.assign({},t);Object.keys(t).forEach((o=>{var c,n;Object.keys(null!==(n=null===(c=null==t?void 0:t[o])||void 0===c?void 0:c.variants)&&void 0!==n?n:{}).forEach((c=>{var n,s;const i=null===(n=null==t?void 0:t[o].variants)||void 0===n?void 0:n[c];i&&"REJECTED"===e[c]?i.fbStatus="REJECTED":i&&"APPROVED"===e[c]&&(i.fbStatus="APPROVED");const l=null===(s=null==r?void 0:r[o])||void 0===s?void 0:s.variants;l&&l[c]&&(l[c]=i)}))})),o?(ee((e=>{const t=Object.assign({},e);return t.products=r,t})),m({type:"productsPaged",data:{collectionId:K,products:r}})):m({type:"productsPaged",data:{collectionId:K,products:r}})})).catch((e=>{o?C.markVariantsAsApprovedProductsLevel(t,m,K,$,ee):C.markVariantsAsApprovedProductsLevel(t,m,K)}))},ce=e=>{R(!0),Z(!0),T(K,E,e,0).then((t=>{if(Object.keys(t).length||(te.current=!0),Object.keys(t).length){ee(Object.assign(Object.assign({},$),{products:t}));const e=C.getVariantIdsToFetchAtProductLevel(t);re(e,t),N.current=1}e||I({type:"selected",data:{id:K,val:Object.assign(Object.assign({},O),{products:t})}}),R(!1),Z(!1)})).catch()},ne=(e,t)=>{const o=C.liftTheStateUp(t,O);I({type:e,data:Object.assign(Object.assign({},o),{isRestricted:D})})},se=!!(null==S?void 0:S[K])&&!!Object.keys(null!==(x=null===(k=null==S?void 0:S[K])||void 0===k?void 0:k.products)&&void 0!==x?x:{}).length;return s.useRef(null),console.log({scrollContainerRef:J}),t.jsxs("div",{children:[t.jsxs(f.ProductScreenHeader,{children:[t.jsx(u.IconButton,{Icon:o.default,height:16,onClick:()=>{q("collections")}}),t.jsx(h.BodyCaption,Object.assign({style:{color:i.COLORS.content.secondary}},{children:O.name}))]}),!A&&t.jsx("div",Object.assign({style:{padding:16,height:"76px",borderBottom:"1px solid #E0E0E0"}},{children:t.jsx(d.Input,{noKeyDownChange:!0,noErrorHint:!0,rightIcon:{icon:()=>Y&&Q.length?t.jsx(a.Spinner,{size:"small",color:i.COLORS.content.primary}):t.jsx(c.default,{})},id:"listInput",height:"24px",type:"text",value:Q,onChangeText:e=>{e.length&&e.trim().length?X(e):X("")},placeholder:"Search products in this collection..."})})),t.jsxs(b,Object.assign({containerRef:J,fetchMore:()=>e.__awaiter(void 0,void 0,void 0,(function*(){console.log("fetchMore called"),yield T(K,E,10,N.current),N.current+=1})),loadingComponent:t.jsx(g.ProductPickerShimmer,{limit:1})},{children:[Object.keys((null==$?void 0:$.products)||[]).length>0&&!oe&&!Q.length&&!V&&"-1"!==K&&t.jsxs(f.ProductScreenCollectionCardStyle,{children:[t.jsx(l.CheckBox,{isChecked:se,isPartiallyChecked:C.isCollectionPartiallyChecked(K,$,S,_),onValueChange:function(e){e?ce():I({type:"unselected",data:{id:K}})}}),t.jsx("div",Object.assign({style:{width:40,height:40}},{children:t.jsx(r.default,{})})),t.jsx(h.TitleRegular,{children:"All Products"})]}),Object.keys((null==$?void 0:$.products)||[]).length?Object.keys($.products||[]).map((e=>t.jsx(v.ProductGroup,{outOfStockAction:L,collectionId:K,isProductPartiallyChecked:C.isProductPartiallyChecked(K,e,S,$,_),productId:e,data:$.products[e],selectedData:S,selectedCollectionsDispatch:I,viewOnly:!B&&!!oe,upliftAdditions:ne,hideProductCheckbox:V,hideVariantCheckbox:w,hideProductVariants:_,pickerType:F,onProductDetailClick:M,showProductDetailInfoIcon:U},e))):Y?t.jsx(g.ProductPickerShimmer,{limit:10}):t.jsx(p.EmptyState,{title:"No products to show",subtitle:Q.length?"We couldn't find the product you were looking for":"We couldn’t find any product in this collection."})]})),z&&t.jsx(g.ProductPickerShimmer,{limit:1})]})};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("../../assets/icons/arrow_left.svg.js"),r=require("../../assets/icons/box.svg.js"),c=require("../../assets/icons/search.svg.js"),o=require("lodash"),s=require("react"),n=require("../../constants/Theme.js"),i=require("../checkBox/CheckBox.js"),l=require("../icon-button/IconButton.js"),u=require("../input/Input.js"),d=require("../spinner/Spinner.js"),a=require("../TypographyStyle.js"),h=require("./emptyState.js"),p=require("./product.js"),j=require("./ProductPickerShimmer.js"),g=require("./reducers.js"),v=require("./style.js"),f=require("./type.js"),y=require("./utility.js");const b=t=>{let{children:r,fetchMore:c,loadingComponent:o=e.jsx(j.ProductPickerShimmer,{limit:1}),containerRef:n}=t;const i=s.useRef(!1),[l,u]=s.useState(!1),d=s.useRef(null);return s.useEffect((()=>{if(!n.current||!d.current)return;const e=n.current,t=d.current,r=()=>{if(l)return;const r=e.getBoundingClientRect(),o=t.getBoundingClientRect();o.top<=r.bottom&&o.bottom>=r.top&&(u(!0),c().then((e=>{Object.keys(e).length||(i.current=!0),u(!1)})))};return e.addEventListener("scroll",r),()=>{e.removeEventListener("scroll",r)}}),[c,l,n]),e.jsxs("div",{children:[r,!i.current&&e.jsx("div",Object.assign({ref:d,style:{minHeight:"10px"}},{children:o}))]})};exports.ProductsScreen=C=>{var P,O;const{data:k,collectionsDispatch:x,selectedData:m,selectedCollectionsDispatch:S,productFetcher:I,storeId:E,setScreen:R,setSaveDisabled:q,hideInCollectionSearch:A,customCollectionRestriction:T,hideProductCheckbox:D,outOfStockAction:V=f.OUT_OF_STOCK_ACTION.BLUR,hideVariantCheckbox:L=!1,selectProductsFromCustomCollection:B=!1,pickerType:F,hideProductVariants:w,fbStatusFetcher:_,onProductDetailClick:M,showProductDetailInfoIcon:H,scrollContainerRef:U}=C,J=s.useContext(g.CollectionIdContext),K=s.useRef(0),N=s.useRef(!1),[W,z]=s.useState(""),[G,Q]=s.useState(!1),[X,Y]=s.useState(k),Z=s.useRef(!1);s.useEffect((()=>{const e=setTimeout((()=>{W.length?(Q(!0),C.searchInCollectionFetcher(E,J,W).then((e=>{const t=o.cloneDeep(k);t.products=e,Y(t);const r=y.getVariantIdsToFetchAtProductLevel(null!=e?e:{});ee(r,null!=e?e:{},!0),q(!1),Q(!1)}))):Y(k)}),800);return()=>clearTimeout(e)}),[W]),s.useEffect((()=>{var e,t,r,c;Z.current=!1,K.current=Math.floor((null===(t=Object.keys(null!==(e=k.products)&&void 0!==e?e:{}))||void 0===t?void 0:t.length)/10);const o=y.getVariantIdsToFetchAtProductLevel(null!==(r=k.products)&&void 0!==r?r:{});ee(o,null!==(c=k.products)&&void 0!==c?c:{})}),[J]);const $=!!T&&k.isSmartCollection;s.useEffect((()=>{(null==k?void 0:k.products)||te(10)}),[]);const ee=(e,t,r)=>{_||(r?y.markVariantsAsApprovedProductsLevel(t,x,J,X,Y):y.markVariantsAsApprovedProductsLevel(t,x,J)),e.length>0&&_&&_(E,e).then((e=>{const c=Object.assign({},t);Object.keys(t).forEach((r=>{var o,s;Object.keys(null!==(s=null===(o=null==t?void 0:t[r])||void 0===o?void 0:o.variants)&&void 0!==s?s:{}).forEach((o=>{var s,n;const i=null===(s=null==t?void 0:t[r].variants)||void 0===s?void 0:s[o];i&&"REJECTED"===e[o]?i.fbStatus="REJECTED":i&&"APPROVED"===e[o]&&(i.fbStatus="APPROVED");const l=null===(n=null==c?void 0:c[r])||void 0===n?void 0:n.variants;l&&l[o]&&(l[o]=i)}))})),r?(Y((e=>{const t=Object.assign({},e);return t.products=c,t})),x({type:"productsPaged",data:{collectionId:J,products:c}})):x({type:"productsPaged",data:{collectionId:J,products:c}})})).catch((e=>{r?y.markVariantsAsApprovedProductsLevel(t,x,J,X,Y):y.markVariantsAsApprovedProductsLevel(t,x,J)}))},te=e=>{q(!0),Q(!0),I(J,E,e,0).then((t=>{if(Object.keys(t).length||(Z.current=!0),Object.keys(t).length){Y(Object.assign(Object.assign({},X),{products:t}));const e=y.getVariantIdsToFetchAtProductLevel(t);ee(e,t),K.current=1}e||S({type:"selected",data:{id:J,val:Object.assign(Object.assign({},k),{products:t})}}),q(!1),Q(!1)})).catch()},re=(e,t)=>{const r=y.liftTheStateUp(t,k);S({type:e,data:Object.assign(Object.assign({},r),{isRestricted:T})})},ce=!!(null==m?void 0:m[J])&&!!Object.keys(null!==(O=null===(P=null==m?void 0:m[J])||void 0===P?void 0:P.products)&&void 0!==O?O:{}).length;return s.useRef(null),e.jsxs("div",{children:[e.jsxs(v.ProductScreenHeader,{children:[e.jsx(l.IconButton,{Icon:t.default,height:16,onClick:()=>{R("collections")}}),e.jsx(a.BodyCaption,Object.assign({style:{color:n.COLORS.content.secondary}},{children:k.name}))]}),!A&&e.jsx("div",Object.assign({style:{padding:16,height:"76px",borderBottom:"1px solid #E0E0E0"}},{children:e.jsx(u.Input,{noKeyDownChange:!0,noErrorHint:!0,rightIcon:{icon:()=>G&&W.length?e.jsx(d.Spinner,{size:"small",color:n.COLORS.content.primary}):e.jsx(c.default,{})},id:"listInput",height:"24px",type:"text",value:W,onChangeText:e=>{e.length&&e.trim().length?z(e):z("")},placeholder:"Search products in this collection..."})})),Object.keys((null==X?void 0:X.products)||[]).length>0&&!$&&!W.length&&!D&&"-1"!==J&&e.jsxs(v.ProductScreenCollectionCardStyle,{children:[e.jsx(i.CheckBox,{isChecked:ce,isPartiallyChecked:y.isCollectionPartiallyChecked(J,X,m,w),onValueChange:function(e){e?te():S({type:"unselected",data:{id:J}})}}),e.jsx("div",Object.assign({style:{width:40,height:40}},{children:e.jsx(r.default,{})})),e.jsx(a.TitleRegular,{children:"All Products"})]}),e.jsx(b,Object.assign({fetchMore:()=>(N.current=!0,I(J,E,10,K.current).then((e=>{if(Object.keys(e).length||(Z.current=!0),Object.keys(e).length){const t=X;t.products=Object.assign(Object.assign({},X.products),e),Y(Object.assign({},t));const r=y.getVariantIdsToFetchAtProductLevel(e);ee(r,e)}return N.current=!1,K.current+=1,e}))),loadingComponent:e.jsx(j.ProductPickerShimmer,{limit:1}),containerRef:U},{children:Object.keys((null==X?void 0:X.products)||[]).length?Object.keys(X.products||[]).map((t=>e.jsx(p.ProductGroup,{outOfStockAction:V,collectionId:J,isProductPartiallyChecked:y.isProductPartiallyChecked(J,t,m,X,w),productId:t,data:X.products[t],selectedData:m,selectedCollectionsDispatch:S,viewOnly:!B&&!!$,upliftAdditions:re,hideProductCheckbox:D,hideVariantCheckbox:L,hideProductVariants:w,pickerType:F,onProductDetailClick:M,showProductDetailInfoIcon:H},t))):G?e.jsx(j.ProductPickerShimmer,{limit:10}):e.jsx(h.EmptyState,{title:"No products to show",subtitle:W.length?"We couldn't find the product you were looking for":"We couldn’t find any product in this collection."})}))]})};
@@ -1 +1 @@
1
- import{__awaiter as t}from"../../_virtual/_tslib.js";import{jsxs as o,jsx as e}from"react/jsx-runtime";import c from"../../assets/icons/arrow_left.svg.js";import n from"../../assets/icons/box.svg.js";import r from"../../assets/icons/search.svg.js";import{cloneDeep as i}from"lodash";import{useContext as l,useRef as s,useState as d,useEffect as u,useCallback as a}from"react";import{COLORS as h}from"../../constants/Theme.js";import{CheckBox as p}from"../checkBox/CheckBox.js";import{IconButton as m}from"../icon-button/IconButton.js";import{Input as g}from"../input/Input.js";import{Spinner as v}from"../spinner/Spinner.js";import{BodyCaption as f,TitleRegular as j}from"../TypographyStyle.js";import{EmptyState as b}from"./emptyState.js";import{ProductGroup as y}from"./product.js";import{ProductPickerShimmer as C}from"./ProductPickerShimmer.js";import{CollectionIdContext as O}from"./reducers.js";import{ProductScreenHeader as k,ProductScreenCollectionCardStyle as P}from"./style.js";import{OUT_OF_STOCK_ACTION as I}from"./type.js";import{getVariantIdsToFetchAtProductLevel as E,markVariantsAsApprovedProductsLevel as S,isCollectionPartiallyChecked as x,isProductPartiallyChecked as D,liftTheStateUp as T}from"./utility.js";const R=R=>{var B,V;const{data:A,collectionsDispatch:H,selectedData:F,selectedCollectionsDispatch:M,productFetcher:L,storeId:_,setScreen:J,setSaveDisabled:W,hideInCollectionSearch:q,customCollectionRestriction:z,hideProductCheckbox:K,outOfStockAction:N=I.BLUR,hideVariantCheckbox:U=!1,selectProductsFromCustomCollection:G=!1,pickerType:Q,hideProductVariants:X,fbStatusFetcher:Y,onProductDetailClick:Z,showProductDetailInfoIcon:$,scrollContainerRef:tt}=R,ot=l(O),et=s(0),ct=s(!1),[nt,rt]=d(!1),[it,lt]=d(""),[st,dt]=d(!1),[ut,at]=d(A),ht=s(!1);u((()=>{const t=setTimeout((()=>{it.length?(dt(!0),R.searchInCollectionFetcher(_,ot,it).then((t=>{const o=i(A);o.products=t,at(o);const e=E(null!=t?t:{});mt(e,null!=t?t:{},!0),W(!1),dt(!1)}))):at(A)}),800);return()=>clearTimeout(t)}),[it]),a((()=>{if(!tt||!(null==tt?void 0:tt.current))return;const{scrollTop:t,clientHeight:o,scrollHeight:e}=tt.current;console.log({scrollTop:t,clientHeight:o,scrollHeight:e}),t+o>=e-20&&!ht.current&&!ct.current&&(W(!0),rt(!0),ct.current=!0,console.log("handleScroll productFetcher",{collectionId:ot,storeId:_,o:10,nc:et.current}),L(ot,_,10,et.current).then((c=>{var n,r;if(Object.keys(c).length||(ht.current=!0),Object.keys(c).length){const i=ut;i.products=Object.assign(Object.assign({},ut.products),c),at(i);const l=E(c);mt(l,c),console.log("new scroll position",t+o-100),et.current+=1;const s=(null===(n=tt.current)||void 0===n?void 0:n.scrollHeight)-e+t;null===(r=tt.current)||void 0===r||r.scrollTo({top:s-100,behavior:"smooth"})}ct.current=!1,rt(!1),W(!1)})).catch())}),[ot,ut,tt,_]),u((()=>{var t,o,e,c;console.log("useEffect productScreen, collectionId",{collectionId:ot}),ht.current=!1,et.current=Math.floor((null===(o=Object.keys(null!==(t=A.products)&&void 0!==t?t:{}))||void 0===o?void 0:o.length)/10);const n=E(null!==(e=A.products)&&void 0!==e?e:{});mt(n,null!==(c=A.products)&&void 0!==c?c:{})}),[ot]);const pt=!!z&&A.isSmartCollection;u((()=>{(null==A?void 0:A.products)||gt(10)}),[]);const mt=(t,o,e)=>{Y||(e?S(o,H,ot,ut,at):S(o,H,ot)),t.length>0&&Y&&Y(_,t).then((t=>{const c=Object.assign({},o);Object.keys(o).forEach((e=>{var n,r;Object.keys(null!==(r=null===(n=null==o?void 0:o[e])||void 0===n?void 0:n.variants)&&void 0!==r?r:{}).forEach((n=>{var r,i;const l=null===(r=null==o?void 0:o[e].variants)||void 0===r?void 0:r[n];l&&"REJECTED"===t[n]?l.fbStatus="REJECTED":l&&"APPROVED"===t[n]&&(l.fbStatus="APPROVED");const s=null===(i=null==c?void 0:c[e])||void 0===i?void 0:i.variants;s&&s[n]&&(s[n]=l)}))})),e?(at((t=>{const o=Object.assign({},t);return o.products=c,o})),H({type:"productsPaged",data:{collectionId:ot,products:c}})):H({type:"productsPaged",data:{collectionId:ot,products:c}})})).catch((t=>{e?S(o,H,ot,ut,at):S(o,H,ot)}))},gt=t=>{W(!0),dt(!0),L(ot,_,t,0).then((o=>{if(Object.keys(o).length||(ht.current=!0),Object.keys(o).length){at(Object.assign(Object.assign({},ut),{products:o}));const t=E(o);mt(t,o),et.current=1}t||M({type:"selected",data:{id:ot,val:Object.assign(Object.assign({},A),{products:o})}}),W(!1),dt(!1)})).catch()},vt=(t,o)=>{const e=T(o,A);M({type:t,data:Object.assign(Object.assign({},e),{isRestricted:z})})},ft=!!(null==F?void 0:F[ot])&&!!Object.keys(null!==(V=null===(B=null==F?void 0:F[ot])||void 0===B?void 0:B.products)&&void 0!==V?V:{}).length;return s(null),console.log({scrollContainerRef:tt}),o("div",{children:[o(k,{children:[e(m,{Icon:c,height:16,onClick:()=>{J("collections")}}),e(f,Object.assign({style:{color:h.content.secondary}},{children:A.name}))]}),!q&&e("div",Object.assign({style:{padding:16,height:"76px",borderBottom:"1px solid #E0E0E0"}},{children:e(g,{noKeyDownChange:!0,noErrorHint:!0,rightIcon:{icon:()=>st&&it.length?e(v,{size:"small",color:h.content.primary}):e(r,{})},id:"listInput",height:"24px",type:"text",value:it,onChangeText:t=>{t.length&&t.trim().length?lt(t):lt("")},placeholder:"Search products in this collection..."})})),o(w,Object.assign({containerRef:tt,fetchMore:()=>t(void 0,void 0,void 0,(function*(){console.log("fetchMore called"),yield L(ot,_,10,et.current),et.current+=1})),loadingComponent:e(C,{limit:1})},{children:[Object.keys((null==ut?void 0:ut.products)||[]).length>0&&!pt&&!it.length&&!K&&"-1"!==ot&&o(P,{children:[e(p,{isChecked:ft,isPartiallyChecked:x(ot,ut,F,X),onValueChange:function(t){t?gt():M({type:"unselected",data:{id:ot}})}}),e("div",Object.assign({style:{width:40,height:40}},{children:e(n,{})})),e(j,{children:"All Products"})]}),Object.keys((null==ut?void 0:ut.products)||[]).length?Object.keys(ut.products||[]).map((t=>e(y,{outOfStockAction:N,collectionId:ot,isProductPartiallyChecked:D(ot,t,F,ut,X),productId:t,data:ut.products[t],selectedData:F,selectedCollectionsDispatch:M,viewOnly:!G&&!!pt,upliftAdditions:vt,hideProductCheckbox:K,hideVariantCheckbox:U,hideProductVariants:X,pickerType:Q,onProductDetailClick:Z,showProductDetailInfoIcon:$},t))):st?e(C,{limit:10}):e(b,{title:"No products to show",subtitle:it.length?"We couldn't find the product you were looking for":"We couldn’t find any product in this collection."})]})),nt&&e(C,{limit:1})]})},w=t=>{let{children:c,fetchMore:n,loadingComponent:r,containerRef:i}=t;const[l,a]=d(!1),h=s(0);return u((()=>{if(!i.current)return;const t=i.current,o=()=>{if(l)return;const o=t.querySelector("#sentinel");if(!o)return;const e=t.getBoundingClientRect(),c=o.getBoundingClientRect();c.top<=e.bottom&&c.bottom>=e.top&&(a(!0),h.current=t.scrollTop,n().then((()=>{t.scrollTo({top:h.current-10,behavior:"smooth"}),a(!1)})))};return t.addEventListener("scroll",o),()=>{t.removeEventListener("scroll",o)}}),[n,l,i]),o("div",{children:[c,e("div",{id:"sentinel",style:{height:"10px"}}),l&&r]})};export{R as ProductsScreen};
1
+ import{jsxs as t,jsx as e}from"react/jsx-runtime";import o from"../../assets/icons/arrow_left.svg.js";import n from"../../assets/icons/box.svg.js";import c from"../../assets/icons/search.svg.js";import{cloneDeep as r}from"lodash";import{useContext as i,useRef as s,useState as l,useEffect as d}from"react";import{COLORS as a}from"../../constants/Theme.js";import{CheckBox as u}from"../checkBox/CheckBox.js";import{IconButton as h}from"../icon-button/IconButton.js";import{Input as p}from"../input/Input.js";import{Spinner as m}from"../spinner/Spinner.js";import{BodyCaption as g,TitleRegular as f}from"../TypographyStyle.js";import{EmptyState as j}from"./emptyState.js";import{ProductGroup as v}from"./product.js";import{ProductPickerShimmer as b}from"./ProductPickerShimmer.js";import{CollectionIdContext as y}from"./reducers.js";import{ProductScreenHeader as O,ProductScreenCollectionCardStyle as k}from"./style.js";import{OUT_OF_STOCK_ACTION as C}from"./type.js";import{getVariantIdsToFetchAtProductLevel as P,markVariantsAsApprovedProductsLevel as E,isCollectionPartiallyChecked as I,isProductPartiallyChecked as x,liftTheStateUp as D}from"./utility.js";const S=S=>{var T,w;const{data:B,collectionsDispatch:V,selectedData:A,selectedCollectionsDispatch:F,productFetcher:L,storeId:M,setScreen:H,setSaveDisabled:J,hideInCollectionSearch:W,customCollectionRestriction:z,hideProductCheckbox:K,outOfStockAction:N=C.BLUR,hideVariantCheckbox:U=!1,selectProductsFromCustomCollection:_=!1,pickerType:q,hideProductVariants:G,fbStatusFetcher:Q,onProductDetailClick:X,showProductDetailInfoIcon:Y,scrollContainerRef:Z}=S,$=i(y),tt=s(0),et=s(!1),[ot,nt]=l(""),[ct,rt]=l(!1),[it,st]=l(B),lt=s(!1);d((()=>{const t=setTimeout((()=>{ot.length?(rt(!0),S.searchInCollectionFetcher(M,$,ot).then((t=>{const e=r(B);e.products=t,st(e);const o=P(null!=t?t:{});at(o,null!=t?t:{},!0),J(!1),rt(!1)}))):st(B)}),800);return()=>clearTimeout(t)}),[ot]),d((()=>{var t,e,o,n;lt.current=!1,tt.current=Math.floor((null===(e=Object.keys(null!==(t=B.products)&&void 0!==t?t:{}))||void 0===e?void 0:e.length)/10);const c=P(null!==(o=B.products)&&void 0!==o?o:{});at(c,null!==(n=B.products)&&void 0!==n?n:{})}),[$]);const dt=!!z&&B.isSmartCollection;d((()=>{(null==B?void 0:B.products)||ut(10)}),[]);const at=(t,e,o)=>{Q||(o?E(e,V,$,it,st):E(e,V,$)),t.length>0&&Q&&Q(M,t).then((t=>{const n=Object.assign({},e);Object.keys(e).forEach((o=>{var c,r;Object.keys(null!==(r=null===(c=null==e?void 0:e[o])||void 0===c?void 0:c.variants)&&void 0!==r?r:{}).forEach((c=>{var r,i;const s=null===(r=null==e?void 0:e[o].variants)||void 0===r?void 0:r[c];s&&"REJECTED"===t[c]?s.fbStatus="REJECTED":s&&"APPROVED"===t[c]&&(s.fbStatus="APPROVED");const l=null===(i=null==n?void 0:n[o])||void 0===i?void 0:i.variants;l&&l[c]&&(l[c]=s)}))})),o?(st((t=>{const e=Object.assign({},t);return e.products=n,e})),V({type:"productsPaged",data:{collectionId:$,products:n}})):V({type:"productsPaged",data:{collectionId:$,products:n}})})).catch((t=>{o?E(e,V,$,it,st):E(e,V,$)}))},ut=t=>{J(!0),rt(!0),L($,M,t,0).then((e=>{if(Object.keys(e).length||(lt.current=!0),Object.keys(e).length){st(Object.assign(Object.assign({},it),{products:e}));const t=P(e);at(t,e),tt.current=1}t||F({type:"selected",data:{id:$,val:Object.assign(Object.assign({},B),{products:e})}}),J(!1),rt(!1)})).catch()},ht=(t,e)=>{const o=D(e,B);F({type:t,data:Object.assign(Object.assign({},o),{isRestricted:z})})},pt=!!(null==A?void 0:A[$])&&!!Object.keys(null!==(w=null===(T=null==A?void 0:A[$])||void 0===T?void 0:T.products)&&void 0!==w?w:{}).length;return s(null),t("div",{children:[t(O,{children:[e(h,{Icon:o,height:16,onClick:()=>{H("collections")}}),e(g,Object.assign({style:{color:a.content.secondary}},{children:B.name}))]}),!W&&e("div",Object.assign({style:{padding:16,height:"76px",borderBottom:"1px solid #E0E0E0"}},{children:e(p,{noKeyDownChange:!0,noErrorHint:!0,rightIcon:{icon:()=>ct&&ot.length?e(m,{size:"small",color:a.content.primary}):e(c,{})},id:"listInput",height:"24px",type:"text",value:ot,onChangeText:t=>{t.length&&t.trim().length?nt(t):nt("")},placeholder:"Search products in this collection..."})})),Object.keys((null==it?void 0:it.products)||[]).length>0&&!dt&&!ot.length&&!K&&"-1"!==$&&t(k,{children:[e(u,{isChecked:pt,isPartiallyChecked:I($,it,A,G),onValueChange:function(t){t?ut():F({type:"unselected",data:{id:$}})}}),e("div",Object.assign({style:{width:40,height:40}},{children:e(n,{})})),e(f,{children:"All Products"})]}),e(R,Object.assign({fetchMore:()=>(et.current=!0,L($,M,10,tt.current).then((t=>{if(Object.keys(t).length||(lt.current=!0),Object.keys(t).length){const e=it;e.products=Object.assign(Object.assign({},it.products),t),st(Object.assign({},e));const o=P(t);at(o,t)}return et.current=!1,tt.current+=1,t}))),loadingComponent:e(b,{limit:1}),containerRef:Z},{children:Object.keys((null==it?void 0:it.products)||[]).length?Object.keys(it.products||[]).map((t=>e(v,{outOfStockAction:N,collectionId:$,isProductPartiallyChecked:x($,t,A,it,G),productId:t,data:it.products[t],selectedData:A,selectedCollectionsDispatch:F,viewOnly:!_&&!!dt,upliftAdditions:ht,hideProductCheckbox:K,hideVariantCheckbox:U,hideProductVariants:G,pickerType:q,onProductDetailClick:X,showProductDetailInfoIcon:Y},t))):ct?e(b,{limit:10}):e(j,{title:"No products to show",subtitle:ot.length?"We couldn't find the product you were looking for":"We couldn’t find any product in this collection."})}))]})},R=o=>{let{children:n,fetchMore:c,loadingComponent:r=e(b,{limit:1}),containerRef:i}=o;const a=s(!1),[u,h]=l(!1),p=s(null);return d((()=>{if(!i.current||!p.current)return;const t=i.current,e=p.current,o=()=>{if(u)return;const o=t.getBoundingClientRect(),n=e.getBoundingClientRect();n.top<=o.bottom&&n.bottom>=o.top&&(h(!0),c().then((t=>{Object.keys(t).length||(a.current=!0),h(!1)})))};return t.addEventListener("scroll",o),()=>{t.removeEventListener("scroll",o)}}),[c,u,i]),t("div",{children:[n,!a.current&&e("div",Object.assign({ref:p,style:{minHeight:"10px"}},{children:r}))]})};export{S as ProductsScreen};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bikdotai/bik-component-library",
3
- "version": "0.0.548-beta.1",
3
+ "version": "0.0.548-beta.2",
4
4
  "description": "Bik Component Library",
5
5
  "repository": {
6
6
  "type": "git",