@bikdotai/bik-component-library 0.0.548-beta.0 → 0.0.548-beta.1
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("react/jsx-runtime"),
|
|
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 +1 @@
|
|
|
1
|
-
import{jsxs as
|
|
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};
|