@faststore/core 3.91.2 → 3.91.3-dev.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.
Files changed (119) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +79 -79
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/cache/config.json +3 -3
  5. package/.next/cache/webpack/client-production/0.pack +0 -0
  6. package/.next/cache/webpack/client-production/index.pack +0 -0
  7. package/.next/cache/webpack/server-production/0.pack +0 -0
  8. package/.next/cache/webpack/server-production/index.pack +0 -0
  9. package/.next/images-manifest.json +1 -1
  10. package/.next/prerender-manifest.js +1 -1
  11. package/.next/prerender-manifest.json +1 -1
  12. package/.next/react-loadable-manifest.json +28 -28
  13. package/.next/required-server-files.json +1 -1
  14. package/.next/routes-manifest.json +1 -1
  15. package/.next/server/chunks/2792.js +1 -1
  16. package/.next/server/chunks/3836.js +1 -1
  17. package/.next/server/chunks/4168.js +1 -1
  18. package/.next/server/chunks/4803.js +1 -1
  19. package/.next/server/chunks/5683.js +1 -1
  20. package/.next/server/chunks/6789.js +1 -1
  21. package/.next/server/chunks/7098.js +1 -1
  22. package/.next/server/chunks/870.js +1 -1
  23. package/.next/server/chunks/948.js +1 -1
  24. package/.next/server/chunks/9563.js +1 -1
  25. package/.next/server/chunks/9630.js +1 -1
  26. package/.next/server/chunks/9740.js +1 -1
  27. package/.next/server/chunks/9853.js +1 -1
  28. package/.next/server/chunks/UISKUMatrixSidebar.js +1 -1
  29. package/.next/server/functions-config-manifest.json +1 -1
  30. package/.next/server/middleware-build-manifest.js +1 -1
  31. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  32. package/.next/server/pages/404.js +1 -1
  33. package/.next/server/pages/500.js +1 -1
  34. package/.next/server/pages/[...slug].js +1 -1
  35. package/.next/server/pages/[slug]/p.js +1 -1
  36. package/.next/server/pages/_error.js +1 -1
  37. package/.next/server/pages/api/graphql.js +1 -1
  38. package/.next/server/pages/checkout.js +1 -1
  39. package/.next/server/pages/en-US/404.html +1 -1
  40. package/.next/server/pages/en-US/500.html +1 -1
  41. package/.next/server/pages/en-US/checkout.html +1 -1
  42. package/.next/server/pages/en-US/login.html +1 -1
  43. package/.next/server/pages/en-US/s.html +1 -1
  44. package/.next/server/pages/en-US.html +1 -1
  45. package/.next/server/pages/index.js +1 -1
  46. package/.next/server/pages/login.js +1 -1
  47. package/.next/server/pages/pvt/account/403.js +1 -1
  48. package/.next/server/pages/pvt/account/404.js +1 -1
  49. package/.next/server/pages/pvt/account/[...unknown].js +1 -1
  50. package/.next/server/pages/pvt/account/orders/[id].js +1 -1
  51. package/.next/server/pages/pvt/account/orders.js +1 -1
  52. package/.next/server/pages/pvt/account/profile.js +1 -1
  53. package/.next/server/pages/pvt/account/security.js +1 -1
  54. package/.next/server/pages/pvt/account/user-details.js +1 -1
  55. package/.next/server/pages/pvt/account.js +1 -1
  56. package/.next/server/pages/s.js +1 -1
  57. package/.next/server/pages-manifest.json +1 -1
  58. package/.next/static/chunks/2284.dffe7b0e5a5bfb4a.js +1 -0
  59. package/.next/static/chunks/{2927.23bae2c79f0ac0f3.js → 2927.5a79877943a6bf7c.js} +1 -1
  60. package/.next/static/chunks/3399.3e1f685c992c345b.js +1 -0
  61. package/.next/static/chunks/3836.612763339fc4c64c.js +1 -0
  62. package/.next/static/chunks/5859.1023ecc1175e7e5a.js +1 -0
  63. package/.next/static/chunks/{6031-a7dfc540189ff57c.js → 6031-b0b111f48a7d504d.js} +2 -2
  64. package/.next/static/chunks/6789.960162355435a81d.js +1 -0
  65. package/.next/static/chunks/7191-5f9bc40c648eda05.js +1 -0
  66. package/.next/static/chunks/{9173-51ba7ca2f546f879.js → 9173-2dea6acd60aa8030.js} +1 -1
  67. package/.next/static/chunks/{9399.132e63584d15075f.js → 9399.48251a278809f7d3.js} +1 -1
  68. package/.next/static/chunks/CartItem.092df07db9e8b271.js +1 -0
  69. package/.next/static/chunks/Gift.08db4da8c89cacf1.js +1 -0
  70. package/.next/static/chunks/UISKUMatrixSidebar.87ba393b7d738e99.js +1 -0
  71. package/.next/static/chunks/{UIToast.de15325248043ce5.js → UIToast.19a8664c01a00d3a.js} +1 -1
  72. package/.next/static/chunks/{main-595f5e3b626b9fff.js → main-ec03882c4375091d.js} +1 -1
  73. package/.next/static/chunks/pages/{[...slug]-7878c4679614a34d.js → [...slug]-5d0cf270dda4b839.js} +1 -1
  74. package/.next/static/chunks/pages/[slug]/p-28fab8021db28766.js +1 -0
  75. package/.next/static/chunks/pages/_app-69a5536f585549e0.js +1 -0
  76. package/.next/static/chunks/pages/index-900b6104074a72b8.js +1 -0
  77. package/.next/static/chunks/pages/pvt/account/orders-369a813fa114b381.js +1 -0
  78. package/.next/static/chunks/pages/{s-a056370e5ad4366b.js → s-9ba90a9525cf19e8.js} +1 -1
  79. package/.next/static/chunks/{webpack-95c6847556354c4b.js → webpack-befe37790ea11a4b.js} +1 -1
  80. package/.next/static/css/{244373752cfc52c7.css → 9f8fb1ef9b49d844.css} +1 -1
  81. package/.next/static/{e1Iy_PbcFsZ57QejzRzyL → jsgIfezCdBnXngIoyg7Az}/_buildManifest.js +1 -1
  82. package/.next/trace +138 -138
  83. package/.turbo/turbo-build.log +17 -17
  84. package/.turbo/turbo-test.log +5 -5
  85. package/CHANGELOG.md +11 -0
  86. package/discovery.config.default.js +1 -1
  87. package/next.config.js +3 -1
  88. package/package.json +7 -7
  89. package/src/components/account/orders/MyAccountListOrders/MyAccountFilterSlider/MyAccountFilterSlider.tsx +0 -8
  90. package/src/components/account/orders/MyAccountListOrders/MyAccountFilterSlider/section.module.scss +0 -2
  91. package/src/components/account/orders/MyAccountListOrders/MyAccountListOrders.tsx +1 -28
  92. package/src/components/account/orders/MyAccountListOrders/MyAccountSelectedTags/MyAccountSelectedTags.tsx +3 -20
  93. package/src/components/templates/ProductListingPage/ProductListingPage.tsx +1 -0
  94. package/src/components/ui/Image/Image.tsx +4 -5
  95. package/src/components/ui/Image/loader.ts +60 -26
  96. package/src/pages/_app.tsx +3 -0
  97. package/src/pages/pvt/account/orders/index.tsx +0 -6
  98. package/src/pages/s.tsx +1 -0
  99. package/src/sdk/search/Sentinel.tsx +4 -4
  100. package/src/sdk/search/useMyAccountFilter.ts +0 -7
  101. package/src/sdk/ui/useScrollRestoration.tsx +65 -0
  102. package/.next/static/chunks/2284.be64169724492654.js +0 -1
  103. package/.next/static/chunks/3399.b1311b661da6b316.js +0 -1
  104. package/.next/static/chunks/3836.5a76d717d95d1f2d.js +0 -1
  105. package/.next/static/chunks/5859.0b4ee873dc86bef7.js +0 -1
  106. package/.next/static/chunks/6789.856de844108ee5da.js +0 -1
  107. package/.next/static/chunks/7191-eef95438b827504b.js +0 -1
  108. package/.next/static/chunks/CartItem.afa42120880fcb94.js +0 -1
  109. package/.next/static/chunks/Gift.9d0570cbe866077f.js +0 -1
  110. package/.next/static/chunks/UISKUMatrixSidebar.2cfa8552a84d2f5f.js +0 -1
  111. package/.next/static/chunks/pages/[slug]/p-5f89d29d02064f15.js +0 -1
  112. package/.next/static/chunks/pages/_app-e8ac4d8f914feb94.js +0 -1
  113. package/.next/static/chunks/pages/index-f285046ed161df07.js +0 -1
  114. package/.next/static/chunks/pages/pvt/account/orders-34821345bd7401d9.js +0 -1
  115. package/src/components/account/orders/MyAccountListOrders/MyAccountFilterSlider/MyAccountFilterFacetPlacedBy/MyAccountFilterFacetPlacedBy.tsx +0 -172
  116. package/src/components/account/orders/MyAccountListOrders/MyAccountFilterSlider/MyAccountFilterFacetPlacedBy/index.ts +0 -2
  117. package/src/components/account/orders/MyAccountListOrders/MyAccountFilterSlider/MyAccountFilterFacetPlacedBy/styles.scss +0 -96
  118. package/src/sdk/account/useShopperSuggestions.ts +0 -151
  119. /package/.next/static/{e1Iy_PbcFsZ57QejzRzyL → jsgIfezCdBnXngIoyg7Az}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1957],{16886:function(e,t,a){"use strict";a.d(t,{Z:function(){return MyAccountLayout_MyAccountLayout}});var r=a(56890),n=a(42210),i=a(40727),l=a(83339),o=a(33339),s=a(77085),c=a.n(s),d=a(60679),u=a(31549),Nav=e=>{var{items:t}=e,a=(0,o.useRouter)().pathname;return(0,u.jsx)("ul",{className:c().nav,children:t.map(e=>{var{route:t,title:r}=e;return(0,u.jsx)("li",{className:c().navItem,"data-is-selected":a.includes(t),children:(0,u.jsx)(i.Z,{href:t,tabIndex:0,children:r})},t)})})},MyAccountMenu_MyAccountMenu=e=>{var{avatarImageUrl:t,accountName:a,items:r}=e,{isDesktop:n}=(0,d.Z)();return(0,u.jsxs)("div",{className:c().menu,children:[n?(0,u.jsxs)("div",{className:c().account,children:[(0,u.jsxs)("div",{className:c().avatarContainer,children:[t?(0,u.jsx)("img",{className:c().avatar,src:t}):(0,u.jsx)("span",{className:c().avatar,children:null==a?void 0:a[0]}),(0,u.jsx)("h2",{children:a})]}),(0,u.jsx)(l.Z,{className:c().switchButton,variant:"secondary",size:"small",children:"Switch"})]}):null,(0,u.jsx)(Nav,{items:r})]})},f=[n.d3],MyAccountLayout_MyAccountLayout=e=>{var{children:t,accountName:a,isRepresentative:n=!0}=e,i=n?r.Z:r.Z.filter(e=>{var{route:t}=e;return!f.includes(t)});return(0,u.jsxs)("section",{className:c().layout,children:[(0,u.jsx)(MyAccountMenu_MyAccountMenu,{accountName:a,items:i}),(0,u.jsx)("div",{"data-fs-account-layout-content":!0,children:t})]})}},73754:function(e,t,a){"use strict";var r=a(31549);t.Z=function(e){var{pageTitle:t}=e;return(0,r.jsx)("header",{"data-fs-account-header":!0,children:(0,r.jsx)("h1",{"data-fs-account-header-title":!0,children:t})})}},2562:function(e,t,a){"use strict";var r=a(15759),n=a(31549);t.Z=function(e){var t,{status:a,statusFallback:i}=e;return(0,n.jsx)("span",{"data-fs-my-account-badge":!0,"data-fs-my-account-badge-variant":function(e){var t,{status:a}=e;return(null===(t=r._y[a])||void 0===t?void 0:t.variant)||"neutral"}({status:a}),children:(null===(t=r._y[a])||void 0===t?void 0:t.label)||i||"-"})}},96896:function(e,t,a){"use strict";a.d(t,{p:function(){return useFormatPrice}});var r=a(97358),n=a(44194),useFormatPrice=()=>{var{locale:e}=(0,r.kP)();return(0,n.useCallback)((t,a)=>new Intl.NumberFormat(e,{style:"currency",currency:a,minimumFractionDigits:2}).format(t/100),[e])}},59039:function(e,t,a){"use strict";a.r(t),a.d(t,{__N_SSP:function(){return V},default:function(){return ListOrdersPage}});var r=a(33067),n=a(35935),i=a(16886),l=a(19173),o=a(81772),s=a(76924),c=a(31549),after=function(){return(0,c.jsx)(c.Fragment,{})},before=function(){return(0,c.jsx)(c.Fragment,{})},d=a(34235),u=a(44194),f=a(33339),p=a(16652),v=a(96396),y=a(83339),m=a(2614),b=a(6133),h=a(13922),g=a(91844),j=a(15699),x=a(64199),w=a(52815),O=a(26174),_=a(93779);function ownKeys(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function _objectSpread(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(a),!0).forEach(function(t){(0,r.Z)(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):ownKeys(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var P=(0,u.forwardRef)((e,t)=>{var{to:a,from:r,setDisabled:n}=e,i=(0,u.useRef)(null),l=(0,u.useRef)(null),{0:o,1:s}=(0,u.useState)(),{0:d,1:f}=(0,u.useState)(),{0:p,1:v}=(0,u.useState)({from:r,to:a});function onEnd(e){if(!e.from||!e.to){s(void 0),f(void 0),n(!1);return}new Date(e.from)>new Date(e.to)?(s("Invalid date range"),n(!0)):(s(void 0),f(void 0),n(!1))}return(0,u.useImperativeHandle)(t,()=>({clear:()=>{s(void 0),f(void 0),v({from:"",to:""}),i.current&&(i.current.value=""),l.current&&(l.current.value="")},getDataRangeFacet:()=>({key:"dateRange",value:p})})),(0,c.jsx)("div",{"data-fs-list-orders-filters-date-range":!0,children:(0,c.jsxs)("div",{"data-fs-list-orders-filters-date-range-inputs":!0,children:[(0,c.jsx)(_.Z,{id:"date-range-from",label:"From",type:"date",inputMode:"text",error:o,inputRef:i,value:p.from,onChange:e=>{var t;return t=e.target.value,void(v(_objectSpread(_objectSpread({},p),{},{from:String(t)})),null==onEnd||onEnd(_objectSpread(_objectSpread({},p),{},{from:String(t)})))},onBlur:()=>!o&&(null==onEnd?void 0:onEnd(p))}),(0,c.jsx)(_.Z,{id:"date-range-to",label:"To",type:"date",inputMode:"text",error:d,inputRef:l,value:p.to,onChange:e=>{var t;return t=e.target.value,void(v(_objectSpread(_objectSpread({},p),{},{to:String(t)})),null==onEnd||onEnd(_objectSpread(_objectSpread({},p),{},{to:String(t)})))},onBlur:()=>!d&&(null==onEnd?void 0:onEnd(p))})]})})}),S=a(42256),A=a(83982),E=a(37041),F=a(74988),D=[{purchase_agent_id:"1",name:"Robert Fox",email:"robert.fox@example.com"},{purchase_agent_id:"2",name:"Ronald Wilson",email:"ronald.wilson@example.com"},{purchase_agent_id:"3",name:"Cameron Williamson",email:"cameron.williamson@example.com"},{purchase_agent_id:"4",name:"Brooklyn Simmons",email:"brooklyn.simmons@example.com"}],account_useShopperSuggestions=function(){var e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",{0:a,1:r}=(0,u.useState)({shoppers:D}),{0:n,1:i}=(0,u.useState)(null),{0:l,1:o}=(0,u.useState)(!1),s=(0,u.useCallback)((e=(0,F.Z)(function*(e){if(!(null!=e&&e.trim())){r({shoppers:D}),o(!1);return}o(!0),i(null);try{var t=yield new Promise(t=>{setTimeout(()=>{var a=e.trim().toLowerCase(),r=D.filter(e=>e.name.toLowerCase().includes(a)||e.email.toLowerCase().includes(a));t(r)},300)});r({shoppers:t})}catch(e){i(e instanceof Error?e:Error("Failed to search for shoppers")),r({shoppers:[]})}finally{o(!1)}}),function(t){return e.apply(this,arguments)}),[]);return(0,u.useEffect)(()=>{if(t||null!==a){var e=setTimeout(()=>{s(t)},300);return()=>{clearTimeout(e)}}},[t]),{data:a,error:n,isLoading:l,findShopperById:(0,u.useMemo)(()=>e=>null==a?void 0:a.shoppers.find(t=>t.purchase_agent_id===e),[])}},MyAccountFilterFacetPlacedBy_MyAccountFilterFacetPlacedBy=function(e){var{selected:t,dispatch:a}=e,r=(0,u.useRef)(null),{0:n,1:i}=(0,u.useState)(""),{0:l,1:o}=(0,u.useState)(null),{0:s,1:d}=(0,u.useState)(!1),{data:f,isLoading:p,findShopperById:v}=account_useShopperSuggestions(n),y=(null==f?void 0:f.shoppers)||[],b=(0,u.useMemo)(()=>{var e;return null===(e=t.find(e=>"purchaseAgentId"===e.key))||void 0===e?void 0:e.value},[t]),clearAll=()=>{i(""),o(null),r.current&&(r.current.value="")};(0,u.useEffect)(()=>{if(b&&!l){var e=v(b);e&&o(e)}else b||clearAll()},[b,l]);var h=(0,u.useMemo)(()=>!p&&n&&0===y.length,[p,n,y]);return(0,c.jsxs)("div",{"data-fs-list-orders-filters-placed-by":!0,children:[(0,c.jsxs)("div",{"data-fs-list-orders-filters-placed-by-input":!0,children:[(0,c.jsx)(S.Z,{id:"placed-by-input",placeholder:"Enter the shopper's name...",ref:r,value:l?l.name:n,readOnly:!!l,onFocus:()=>{l||d(!0)},onChange:e=>{l||(i(e.target.value),d(!0))},onBlur:()=>{setTimeout(()=>{d(!1),!l&&(i(""),r.current&&(r.current.value=""))},100)},type:"text",inputMode:"text"}),p&&(0,c.jsx)("div",{"data-fs-list-orders-filters-placed-by-loader":!0,children:(0,c.jsx)(A.Z,{})}),l&&(0,c.jsx)(E.Z,{size:"small","aria-label":"Clear shopper","data-fs-list-orders-filters-placed-by-clear":!0,icon:(0,c.jsx)(m.Z,{name:"X"}),onClick:function(){l&&a({type:"toggleFacet",payload:{key:"purchaseAgentId",value:l.purchase_agent_id}}),clearAll()}})]}),s&&h&&(0,c.jsx)("div",{"data-fs-list-orders-filters-placed-by-dropdown":!0,"data-fs-list-orders-filters-placed-by-empty":!0,"aria-label":"No shoppers found with query",children:(0,c.jsxs)("p",{children:['No shoppers found with "',n,'"']})}),s&&y.length>0&&(0,c.jsx)("div",{"data-fs-list-orders-filters-placed-by-dropdown":!0,"aria-label":"Shopper selection dropdown",children:(0,c.jsx)("ul",{children:y.map(e=>(0,c.jsx)("li",{children:(0,c.jsx)("button",{type:"button",onMouseDown:e=>e.preventDefault(),onClick:()=>{o(e),d(!1),a({type:"setFacet",payload:{facet:{key:"purchaseAgentId",value:e.purchase_agent_id},unique:!0}})},"data-fs-list-orders-filters-placed-by-option":!0,children:(0,c.jsx)("span",{"data-fs-list-orders-filters-placed-by-option-name":!0,children:e.name})})},e.purchase_agent_id))})})]})},C=a(49048),Z=a.n(C),MyAccountFilterSlider_MyAccountFilterSlider=function(e){var{facets:t,testId:a,dispatch:r,expanded:n,selected:i,title:l,clearButtonLabel:o,applyButtonLabel:s,searchInputRef:d}=e,f=(0,u.useRef)(null),{0:p,1:v}=(0,u.useState)(!1),handleFilterChange=e=>{var{selectedFacets:t,text:a}=e,r=t.reduce((e,t)=>{var{key:a,value:r}=t;return"dateInitial"===a&&(e.dateInitial=r),"dateFinal"===a&&(e.dateFinal=r),"status"===a&&(e.status=Array.isArray(e.status)?[...e.status,r]:[r]),"purchaseAgentId"===a&&(e.purchaseAgentId=r),e},{}),n=new URLSearchParams;a&&n.set("text",a),Object.entries(r).forEach(e=>{var[t,a]=e;Array.isArray(a)?a.forEach(e=>n.append(t,e)):n.set(t,a)}),window.location.href="/pvt/account/orders?".concat(n.toString())};return(0,c.jsx)(g.Z,{overlayProps:{className:"section ".concat(Z().section," section-filter-slider")},title:l,size:"partial",direction:"rightSide",clearBtnProps:{variant:"secondary",onClick:()=>{var e;null===(e=f.current)||void 0===e||e.clear(),r({type:"selectFacets",payload:[]})},children:null!=o?o:"Clear All"},applyBtnProps:{variant:"primary",onClick:()=>{var e,t,a,r,n,l,o,s,c,u=null===(e=f.current)||void 0===e?void 0:null===(t=e.getDataRangeFacet)||void 0===t?void 0:t.call(e),p=null==u?void 0:null===(a=u.value)||void 0===a?void 0:null===(r=a.from)||void 0===r?void 0:null===(n=r.trim)||void 0===n?void 0:n.call(r),v=null==u?void 0:null===(l=u.value)||void 0===l?void 0:null===(o=l.to)||void 0===o?void 0:null===(s=o.trim)||void 0===s?void 0:s.call(o),y=[];p&&y.push({key:"dateInitial",value:p}),v&&y.push({key:"dateFinal",value:v}),handleFilterChange({selectedFacets:[...i,...y],text:null===(c=d.current)||void 0===c?void 0:c.inputRef.value})},disabled:p,children:null!=s?s:"Apply"},onClose:()=>{},children:(0,c.jsx)(j.Z,{testId:"mobile-".concat(a),indicesExpanded:n,onAccordionChange:e=>r({type:"toggleExpanded",payload:e}),children:t.map((e,t)=>{var{__typename:l,label:o}=e,s=n.has(t);return(0,c.jsxs)(x.Z,{testId:"mobile-".concat(a),index:t,type:l,label:o,children:["StoreFacetBoolean"===l&&s&&(0,c.jsx)(w.Z,{children:e.values.map(t=>{var n,i,l=(null==a?void 0:a.trim().toLowerCase())||"",o=(null===(n=e.label)||void 0===n?void 0:n.trim().toLowerCase())||"",s=(null===(i=t.label)||void 0===i?void 0:i.trim().toLowerCase())||"",d="".concat(l,"-").concat(o,"-").concat(s);return(0,c.jsx)(O.Z,{id:d,testId:"mobile-".concat(l),onFacetChange:e=>r({type:"toggleFacet",payload:e}),selected:t.selected,value:t.value,quantity:t.quantity,facetKey:e.key,label:t.label},d)})}),"StoreFacetPlacedBy"===l&&s&&(0,c.jsx)(MyAccountFilterFacetPlacedBy_MyAccountFilterFacetPlacedBy,{selected:i,dispatch:r}),"StoreFacetRange"===l&&s&&(0,c.jsx)(P,{ref:f,from:e.from,to:e.to,setDisabled:v})]},"".concat(a,"-").concat(o,"-").concat(t))})})})},k=a(73754),useDebounce=(e,t,a)=>{var{0:r,1:n}=(0,u.useState)(a);return(0,u.useEffect)(()=>{if(r!==a){var n=setTimeout(()=>{e(r)},t);return()=>{clearTimeout(n)}}},[r]),n},R=a(9664),M=["value"];function useMyAccountFilter_ownKeys(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function useMyAccountFilter_objectSpread(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?useMyAccountFilter_ownKeys(Object(a),!0).forEach(function(t){(0,r.Z)(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):useMyAccountFilter_ownKeys(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var reducer=(e,t)=>{var{expanded:a,selected:r}=e,{type:n,payload:i}=t;switch(n){case"toggleExpanded":return a.has(i)?a.delete(i):a.add(i),useMyAccountFilter_objectSpread(useMyAccountFilter_objectSpread({},e),{},{expanded:new Set(a)});case"selectFacets":if(i!==r)return useMyAccountFilter_objectSpread(useMyAccountFilter_objectSpread({},e),{},{selected:i});break;case"toggleFacet":return useMyAccountFilter_objectSpread(useMyAccountFilter_objectSpread({},e),{},{selected:(0,R.wB)(e.selected,i)});case"setFacet":return useMyAccountFilter_objectSpread(useMyAccountFilter_objectSpread({},e),{},{selected:(0,R.uL)(e.selected,i.facet,i.unique)});default:throw Error("Action ".concat(n," not implemented"))}return e},useMyAccountFilter=e=>{var{allFacets:t,selectedFacets:a}=e,{0:{selected:r,expanded:n},1:i}=(0,u.useReducer)(reducer,null,()=>({expanded:new Set([0,1]),selected:a})),l=(0,u.useMemo)(()=>r.reduce((e,t)=>{var a;return e.has(t.key)||e.set(t.key,new Map),null===(a=e.get(t.key))||void 0===a||a.set(t.value,t),e},new Map),[r]);return{facets:(0,u.useMemo)(()=>t.map(e=>"StoreFacetBoolean"===e.__typename?useMyAccountFilter_objectSpread(useMyAccountFilter_objectSpread({},e),{},{values:e.values.map(t=>{var a,{value:r}=t;return useMyAccountFilter_objectSpread(useMyAccountFilter_objectSpread({},(0,d.Z)(t,M)),{},{value:r.toLowerCase(),selected:!!(null===(a=l.get(e.key))||void 0===a?void 0:a.has(r.toLowerCase()))})})}):e),[t,l]),selected:r,expanded:n,dispatch:i}},I=a(60679),L=a(15759),B=a(2562),N=a(96896),T=a(97358);function ExpandButton(e){var{isExpanded:t,onToggle:a,label:r,ariaControls:n}=e;return(0,c.jsx)(y.Z,{"aria-expanded":t,"aria-controls":n,"data-fs-list-orders-table-expand-button":!0,size:"small",variant:"primary",inverse:!0,iconPosition:"right",icon:t?(0,c.jsx)(m.Z,{width:16,height:16,name:"CaretUp","aria-label":"Collapse"}):(0,c.jsx)(m.Z,{width:16,height:16,name:"CaretDown","aria-label":"Expand"}),onClick:e=>{e.preventDefault(),e.stopPropagation(),a(e)},children:t?"View less":null!=r?r:"View all"})}function MyAccountListOrdersTable_ownKeys(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function MyAccountListOrdersTable_objectSpread(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?MyAccountListOrdersTable_ownKeys(Object(a),!0).forEach(function(t){(0,r.Z)(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):MyAccountListOrdersTable_ownKeys(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}function formatOrderDate(e,t){return new Date(e).toLocaleDateString(t,{year:"numeric",month:"2-digit",day:"2-digit"})}function Pagination(e){var{page:t,total:a,perPage:r}=e,n=Math.ceil(a/r),i=1===t?1:(t-1)*r+1,l=a>i+r-1?i+r-1:a,handlePageChange=e=>{var t=new URLSearchParams(window.location.search);1===e||0===e?t.delete("page"):t.set("page",String(e)),window.location.href="/pvt/account/orders".concat(t.toString()?"?".concat(t):"")};return(0,c.jsxs)("div",{"data-fs-list-orders-table-pagination":!0,children:[(0,c.jsx)("p",{children:"".concat(i," — ").concat(l," of ").concat(a)}),(0,c.jsx)(E.Z,{size:"small",variant:"tertiary",disabled:1===t,onClick:()=>handlePageChange(t-1),icon:(0,c.jsx)(m.Z,{name:"CaretLeft"}),"aria-label":"Previous Page"}),(0,c.jsx)(E.Z,{size:"small",variant:"tertiary",disabled:t===n,onClick:()=>handlePageChange(t+1),icon:(0,c.jsx)(m.Z,{name:"CaretRight"}),"aria-label":"Next Page"})]})}function MyAccountListOrdersTable(e){var{listOrders:t,total:a,perPage:r,filters:n}=e,{isDesktop:i}=(0,I.Z)(),{locale:l}=(0,T.kP)(),o=(0,N.p)(),{0:s,1:d}=(0,u.useState)({}),handleToggle=(e,t)=>{d(a=>{var r;return MyAccountListOrdersTable_objectSpread(MyAccountListOrdersTable_objectSpread({},a),{},{[e]:MyAccountListOrdersTable_objectSpread(MyAccountListOrdersTable_objectSpread({},a[e]),{},{[t]:!(null!==(r=a[e])&&void 0!==r&&r[t])})})})};return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)("table",{"data-fs-list-orders-table":!0,children:(0,c.jsx)("tbody",{"data-fs-list-orders-table-body":!0,children:t.list.map(e=>{var t,a,r,n,d,u,f=(null==e?void 0:null===(t=e.customFields)||void 0===t?void 0:null===(a=t.find(e=>{var{type:t}=e;return"order"===t}))||void 0===a?void 0:a.value)||[],p=(null==e?void 0:null===(r=e.customFields)||void 0===r?void 0:null===(n=r.find(e=>{var{type:t}=e;return"item"===t}))||void 0===n?void 0:n.value)||[],v=f&&f.length>0||p&&p.length>0,y=(null===(d=s[e.orderId])||void 0===d?void 0:d.item)||!1,m=(null===(u=s[e.orderId])||void 0===u?void 0:u.order)||!1,{displayed:b,shouldShowButton:h}=getLevel({level:p,isExpanded:y,max:5}),{displayed:g,shouldShowButton:j}=getLevel({level:f,isExpanded:m,max:5}),x="/pvt/account/orders/".concat(e.orderId),w=e.ShippingEstimatedDate?formatOrderDate(e.ShippingEstimatedDate,l):"-",O=e.creationDate?formatOrderDate(e.creationDate,l):"-",_=o(e.totalValue,e.currencyCode),P=e.ShippingEstimatedDate?"Delivery by ".concat(formatOrderDate(e.ShippingEstimatedDate,l)):"-",S="additional-info-".concat(e.orderId,"-order"),A="additional-info-".concat(e.orderId,"-item");return(0,c.jsxs)("tr",{"data-fs-list-orders-table-row":!0,onClick:()=>{window.location.href=x},onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),window.location.href=x)},tabIndex:0,"aria-label":"View order ".concat(e.orderId," details"),children:[(0,c.jsx)("td",{"data-fs-list-orders-table-cell":!0,children:(0,c.jsxs)("div",{"data-fs-list-orders-table-product-info-main":!0,children:[(0,c.jsx)("p",{"data-fs-list-orders-table-product-info-order-id":!0,title:"ID: ".concat(e.orderId||"-"),children:e.orderId||"-"}),(0,c.jsxs)("p",{"data-fs-list-orders-table-product-info-order-total":!0,title:"Total: ".concat(_),children:["Total: ",_]})]})}),i&&(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)("td",{"data-fs-list-orders-table-cell":!0,children:[(0,c.jsxs)("div",{"data-fs-list-orders-table-product-info":!0,children:[(0,c.jsx)("p",{"data-fs-list-orders-table-product-info-label":!0,children:"Placed on"}),(0,c.jsx)("p",{"data-fs-list-orders-table-product-info-value":!0,title:O,children:O})]}),v&&(0,c.jsxs)("div",{"data-fs-list-orders-table-product-info":!0,children:[(0,c.jsx)("p",{"data-fs-list-orders-table-product-info-label":!0,children:"Delivery by"}),(0,c.jsx)("p",{"data-fs-list-orders-table-product-info-value":!0,title:w,children:w})]})]}),(0,c.jsx)("td",{"data-fs-list-orders-table-cell":!0,children:v&&(0,c.jsxs)(c.Fragment,{children:[g.length>0&&(0,c.jsx)("p",{"data-fs-list-orders-table-product-info-label":!0,id:S,children:"Order fields"}),g.map((e,t)=>(0,c.jsx)("p",{"data-fs-list-orders-table-product-info-order":!0,title:e,"aria-owns":S,children:e},e+t)),j&&(0,c.jsx)(ExpandButton,{ariaControls:S,isExpanded:m,count:f.length-5,onToggle:()=>handleToggle(e.orderId,"order")})]})}),(0,c.jsx)("td",{"data-fs-list-orders-table-cell":!0,children:v&&(0,c.jsxs)(c.Fragment,{children:[b.length>0&&(0,c.jsx)("p",{"data-fs-list-orders-table-product-info-label":!0,id:A,children:"Item fields"}),b.map((e,t)=>(0,c.jsx)("p",{"data-fs-list-orders-table-product-info-item":!0,title:e,"aria-owns":A,children:e},e+t)),h&&(0,c.jsx)(ExpandButton,{ariaControls:A,isExpanded:y,count:p.length-5,onToggle:()=>handleToggle(e.orderId,"item")})]})})]}),(0,c.jsxs)("td",{"data-fs-list-orders-table-cell":!0,children:[(0,c.jsx)(B.Z,{status:e.status,statusFallback:e.statusDescription}),!i&&(0,c.jsx)("p",{children:P})]})]},e.orderId)})})}),i&&(0,c.jsx)(Pagination,{page:n.page,total:a,perPage:r})]})}function getLevel(e){var{level:t,isExpanded:a,max:r}=e,n=t.length>r;return{displayed:a?t:t.slice(0,r),shouldShowButton:n}}function formatFilterDate(e,t){var[a,r,n]=e.split("-").map(Number);return new Date(a,r-1,n).toLocaleDateString(t,{year:"numeric",month:"2-digit",day:"2-digit"})}function Tags(e){var{filters:t,onRemoveFilter:a}=e,{locale:r}=(0,T.kP)(),{dateInitial:n,dateFinal:i,status:l,purchaseAgentId:o}=t,s=n?formatFilterDate(n,r):"",d=i?formatFilterDate(i,r):"",u=(n||i)&&(0,c.jsxs)("div",{"data-fs-list-orders-selected-tag":!0,children:[(0,c.jsx)("span",{"data-fs-list-orders-selected-tag-label":!0,children:(n&&i?"".concat(s," to ").concat(d):s?"from ".concat(s):"to ".concat(d))||""}),(0,c.jsx)("button",{"data-fs-list-orders-selected-tag-clear":!0,onClick:()=>{a("dateInitial",n)},children:"\xd7"})]},"date-range"),f=(l||[]).map(e=>(0,c.jsxs)("div",{"data-fs-list-orders-selected-tag":!0,children:[(0,c.jsx)("span",{children:L.BX[e.toLowerCase()]||e}),(0,c.jsx)("button",{"data-fs-list-orders-selected-tag-clear":!0,onClick:()=>a("status",e),children:"\xd7"})]},"status-".concat(e))),p=o&&(0,c.jsxs)("div",{"data-fs-list-orders-selected-tag":!0,children:[(0,c.jsxs)("span",{children:["Placed by: ",o]}),(0,c.jsx)("button",{"data-fs-list-orders-selected-tag-clear":!0,onClick:()=>a("purchaseAgentId",o),children:"\xd7"})]},"placed-by-".concat(o));return(0,c.jsxs)(c.Fragment,{children:[p,u,f]})}var MyAccountSelectedTags_MyAccountSelectedTags=function(e){var{filters:t,onClearAll:a,onRemoveFilter:r}=e,n=Object.entries(t).some(e=>{var[t,a]=e;return("status"===t||"dateInitial"===t||"dateFinal"===t||"purchaseAgentId"===t)&&a&&(!Array.isArray(a)||a.length>0)});return(0,c.jsx)(c.Fragment,{children:n&&(0,c.jsxs)("div",{"data-fs-list-orders-selected-tags":!0,children:[(0,c.jsx)(Tags,{filters:t,onRemoveFilter:r}),(0,c.jsx)(y.Z,{variant:"tertiary",size:"small","data-fs-list-orders-selected-tags-clear-all-button":!0,onClick:a,children:"Clear All"})]})})},q=a(65841),K=a.n(q),$=["page","clientEmail"];function MyAccountListOrders_ownKeys(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function MyAccountListOrders_objectSpread(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?MyAccountListOrders_ownKeys(Object(a),!0).forEach(function(t){(0,r.Z)(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):MyAccountListOrders_ownKeys(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}function getSelectedFacets(e){var{filters:t}=e;return Object.keys(t).reduce((e,a)=>{if("page"===a||"text"===a||"clientEmail"===a)return e;var r=t[a];if("status"===a&&r.length>0){var n=Array.isArray(r)?r:[r];e.push(...n.map(e=>({key:"status",value:e.toLowerCase()})))}else"dateInitial"===a&&r?e.push({key:"dateInitial",value:String(r)}):"dateFinal"===a&&r?e.push({key:"dateFinal",value:String(r)}):"purchaseAgentId"===a&&r&&e.push({key:"purchaseAgentId",value:String(r)});return e},[])}function MyAccountListOrders(e){var{listOrders:t,total:a,perPage:r,filters:n}=e,i=(0,f.useRouter)(),{isDesktop:l}=(0,I.Z)(),o=(0,u.useRef)(null);(0,u.useEffect)(()=>{var e,t;null!==(e=o.current)&&void 0!==e&&e.inputRef&&(null!=n&&n.text&&null!==(t=o.current)&&void 0!==t&&t.inputRef?o.current.inputRef.value=n.text:o.current.inputRef.value="")},[null==n?void 0:n.text]);var s=useDebounce(e=>{if((e||i.query.text)&&e.trim().toLowerCase()!==(null===(t=i.query.text)||void 0===t?void 0:t.toString().trim().toLowerCase())){var t,a=new URLSearchParams(window.location.search);a.delete("text"),a.delete("page"),e&&a.set("text",e),window.location.href="/pvt/account/orders?".concat(a.toString())}},300,String(i.query.text)),g=getSelectedFacets({filters:n}),j=useMyAccountFilter({allFacets:function(e){var{filters:t}=e;return[{__typename:"StoreFacetBoolean",key:"status",label:"Status",values:L.j4.map(e=>({label:e,quantity:0,selected:!1,value:e.toLowerCase()}))},{__typename:"StoreFacetRange",key:"dateRange",label:"Order Date",from:t.dateInitial,to:t.dateFinal}]}({filters:n}),selectedFacets:g}),{openFilter:x,filter:w}=(0,p.l8)(),O=n.status.length>0||!!n.dateInitial||!!n.dateFinal||!!n.text,_=0===t.list.length;return(0,c.jsxs)("div",{className:K().page,children:[(0,c.jsx)(k.Z,{pageTitle:"Orders"}),(0,c.jsxs)("div",{"data-fs-list-orders-controls":!0,children:[(0,c.jsxs)("div",{"data-fs-list-orders-search-filters":!0,children:[(0,c.jsx)(v.Z,{ref:o,"data-fs-search-input-field-list-orders":!0,placeholder:"Search",onBlur:e=>{s(o.current.inputRef.value)},onKeyDown:e=>{"Enter"===e.key&&s(o.current.inputRef.value)},onSubmit:e=>{s(o.current.inputRef.value)}}),(0,c.jsx)(y.Z,{"data-fs-list-orders-search-filters-button":!0,size:"small",variant:"tertiary",icon:(0,c.jsx)(m.Z,{name:"FadersHorizontal",width:24,height:24,"aria-label":"Open Filters"}),iconPosition:"left",onClick:()=>{j.dispatch({type:"selectFacets",payload:getSelectedFacets({filters:n})}),x()},children:"Filters"})]}),l&&(0,c.jsx)(Pagination,{page:n.page,total:a,perPage:r})]}),(0,c.jsx)(MyAccountSelectedTags_MyAccountSelectedTags,{filters:{status:n.status,dateInitial:n.dateInitial,dateFinal:n.dateFinal},onClearAll:()=>{window.location.href="/pvt/account/orders"},onRemoveFilter:(e,t)=>{var a=MyAccountListOrders_objectSpread({},n),{page:r,clientEmail:i}=a,l=(0,d.Z)(a,$);"status"===e&&Array.isArray(l[e])?l[e]=l[e].filter(e=>e!==t):"dateInitial"===e||"dateFinal"===e?(delete l.dateInitial,delete l.dateFinal):"purchaseAgentId"===e?delete l.purchaseAgentId:delete l[e],"status"===e&&Array.isArray(l[e])?l[e]=l[e].filter(e=>e.toLowerCase()!==t.toLowerCase()):"dateInitial"===e||"dateFinal"===e?(delete l.dateInitial,delete l.dateFinal):"purchaseAgentId"===e?delete l.purchaseAgentId:delete l[e];var o=Object.fromEntries(Object.entries(l).filter(e=>{var[,t]=e;return Array.isArray(t)?t.length>0:!!t})),s=new URLSearchParams(o);window.location.href="/pvt/account/orders?".concat(s.toString())}}),w&&(0,c.jsx)(MyAccountFilterSlider_MyAccountFilterSlider,MyAccountListOrders_objectSpread(MyAccountListOrders_objectSpread({},j),{},{title:"Filters",clearButtonLabel:"Clear All",applyButtonLabel:"View Results",searchInputRef:o,testId:"my-account-filter-slider"})),_?(0,c.jsx)(b.Z,{titleIcon:(0,c.jsx)(m.Z,{name:O?"MagnifyingGlass":"Bag2",width:56,height:56,weight:"thin"}),title:O?"No results found":"You don't have any orders",bkgColor:"light",children:!O&&(0,c.jsx)(h.Z,{"data-fs-list-orders-empty-state-link":!0,href:"/",variant:"secondary",children:"Start shopping"})}):(0,c.jsx)(MyAccountListOrdersTable,{listOrders:t,total:a,perPage:r,filters:n}),!l&&(0,c.jsx)(Pagination,{page:n.page,total:a,perPage:r})]})}var z=a(56272);function orders_ownKeys(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),a.push.apply(a,r)}return a}function orders_objectSpread(e){for(var t=1;t<arguments.length;t++){var a=null!=arguments[t]?arguments[t]:{};t%2?orders_ownKeys(Object(a),!0).forEach(function(t){(0,r.Z)(e,t,a[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):orders_ownKeys(Object(a)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(a,t))})}return e}var U=orders_objectSpread(orders_objectSpread({},o.Z),s.Z),V=!0;function ListOrdersPage(e){var{globalSections:t,accountName:a,listOrders:r,total:o,perPage:s,filters:d,isRepresentative:u}=e,{sections:f,settings:p}=null!=t?t:{};return(0,c.jsx)(z.ZP,{context:{globalSettings:p},children:(0,c.jsxs)(l.ZP,{globalSections:f,components:U,children:[(0,c.jsx)(n.PB,{noindex:!0,nofollow:!0}),(0,c.jsxs)(i.Z,{isRepresentative:u,accountName:a,children:[(0,c.jsx)(before,{}),(0,c.jsx)(MyAccountListOrders,{listOrders:r,filters:d,perPage:s,total:o}),(0,c.jsx)(after,{})]})]})})}},15759:function(e,t,a){"use strict";a.d(t,{BX:function(){return i},_y:function(){return r},j4:function(){return n}});var r={created:{variant:"success",label:"Order Placed"},creating:{variant:"success",label:"Order Placed"},"on-order-completed":{variant:"success",label:"Order Placed"},"on-order-completed-ffm":{variant:"success",label:"Order Placed"},"order-accepted":{variant:"success",label:"Order Placed"},"order-created":{variant:"success",label:"Order Placed"},"waiting-for-seller-confirmation":{variant:"success",label:"Order Placed"},"waiting-for-authorization":{variant:"warning",label:"Pending approval"},"waiting-for-confirmation":{variant:"warning",label:"Pending approval"},"approving-transaction":{variant:"warning",label:"Payment Pending"},"notify-payment":{variant:"warning",label:"Payment Pending"},"payment-pending":{variant:"warning",label:"Payment Pending"},"payment-approved":{variant:"success",label:"Payment Approved"},"approve-payment":{variant:"success",label:"Payment Approved"},"payment-denied":{variant:"neutral",label:"Payment Denied"},"authorize-fulfillment":{variant:"success",label:"Ready for Delivery"},handling:{variant:"success",label:"Ready for Delivery"},invoice:{variant:"success",label:"Ready for Delivery"},"invoice-after-cancellation-deny":{variant:"success",label:"Ready for Delivery"},invoicing:{variant:"success",label:"Ready for Delivery"},packing:{variant:"success",label:"Ready for Delivery"},picking:{variant:"success",label:"Ready for Delivery"},"ready-for-handling":{variant:"success",label:"Ready for Delivery"},"ready-for-invoicing":{variant:"success",label:"Ready for Delivery"},"ready-for-packing":{variant:"success",label:"Ready for Delivery"},"ready-for-picking":{variant:"success",label:"Ready for Delivery"},"release-to-fulfillment":{variant:"success",label:"Ready for Delivery"},"start-handling":{variant:"success",label:"Ready for Delivery"},"waiting-ffmt-authorization":{variant:"success",label:"Ready for Delivery"},"waiting-for-fulfillment":{variant:"success",label:"Ready for Delivery"},"window-to-cancel":{variant:"success",label:"Ready for Delivery"},invoiced:{variant:"success",label:"Invoiced"},"accepting-cancel":{variant:"neutral",label:"Cancellation Requested"},cancel:{variant:"neutral",label:"Cancellation Requested"},canceling:{variant:"neutral",label:"Cancellation Requested"},"cancellation-requested":{variant:"neutral",label:"Cancellation Requested"},"cancellation-requested-with-ack":{variant:"neutral",label:"Cancellation Requested"},"request-cancel":{variant:"neutral",label:"Cancellation Requested"},"waiting-for-seller-decision":{variant:"neutral",label:"Cancellation Requested"},canceled:{variant:"neutral",label:"Canceled"}},n=["Order Placed","Pending approval","Payment Pending","Payment Approved","Payment Denied","Ready for Delivery","Invoiced","Cancellation Requested","Canceled"],i={"order placed":"Order Placed","Pending approval":"Pending approval","payment pending":"Payment Pending","payment approved":"Payment Approved","payment denied":"Payment Denied","ready for delivery":"Ready for Delivery",invoiced:"Invoiced","cancellation requested":"Cancellation Requested",canceled:"Canceled"}},97676:function(e,t,a){(window.__NEXT_P=window.__NEXT_P||[]).push(["/pvt/account/orders",function(){return a(59039)}])},49048:function(e){e.exports={section:"section_section__YPC0_",load:"section_load__1kqk7"}},65841:function(e){e.exports={page:"styles_page__flnO9"}},77085:function(e){e.exports={layout:"section_layout__QJ4xs",menu:"section_menu__WKZdl",account:"section_account__YjCAC",avatarContainer:"section_avatarContainer__1RMsJ",switchButton:"section_switchButton__ul06M",nav:"section_nav__Jjee8",navItem:"section_navItem__yr27R",avatar:"section_avatar__IQLo8"}},82740:function(e,t,a){"use strict";var r=a(44194);let n=(0,r.forwardRef)(function({testId:e="fs-checkbox",partial:t,...a},n){return r.createElement("input",{ref:n,"data-fs-checkbox":!0,"data-testid":e,"data-fs-checkbox-partial":t,type:"checkbox",...a})});t.Z=n},36735:function(e,t,a){"use strict";var r=a(44194);let n=(0,r.forwardRef)(function({testId:e="fs-radio",...t},a){return r.createElement("input",{ref:a,"data-fs-radio":!0,type:"radio","data-testid":e,...t})});t.Z=n},71516:function(e,t,a){"use strict";a.d(t,{A:function(){return useAccordion}});var r=a(44194);let n=(0,r.createContext)(void 0),i=(0,r.forwardRef)(function({testId:e="fs-accordion",indices:t,onChange:a,children:i,...l},o){let s=r.Children.map(i,(e,t)=>{if(e)return(0,r.cloneElement)(e,{index:e.props.index??t})}),c={indices:new Set(t),onChange:a,numberOfItems:s.length};return r.createElement(n.Provider,{value:c},r.createElement("div",{ref:o,"data-fs-accordion":!0,role:"region","data-testid":e,...l},s))});function useAccordion(){let e=(0,r.useContext)(n);if(void 0===e)throw Error("Do not use Accordion components outside the Accordion context.");return e}t.Z=i},67734:function(e,t,a){"use strict";var r=a(44194),n=a(71516),i=a(40783),l=a(2614),o=a(83339);let s=(0,r.forwardRef)(function({testId:e="fs-accordion-button",expandedIcon:t=r.createElement(l.Z,{name:"MinusCircle","data-icon":"expanded"}),collapsedIcon:a=r.createElement(l.Z,{name:"PlusCircle","data-icon":"collapsed"}),children:s,...c},d){let{indices:u,onChange:f,numberOfItems:p}=(0,n.A)(),{index:v,panel:y,button:m,prefixId:b}=(0,i.D)();return r.createElement(o.Z,{ref:d,id:m,variant:"tertiary","data-fs-accordion-button":u.has(v)?"expanded":"collapsed","aria-expanded":u.has(v),icon:u.has(v)?t:a,iconPosition:"right","aria-controls":y,onKeyDown:e=>{if(["ArrowDown","ArrowUp"].includes(e.key))switch(e.key){case"ArrowDown":e.preventDefault(),(()=>{let e=Number(v)+1===p?0:Number(v)+1;return document.getElementById(`${b&&`${b}-`}button--${e}`)})()?.focus();break;case"ArrowUp":e.preventDefault(),(()=>{let e=Number(v)-1<0?p-1:Number(v)-1;return document.getElementById(`${b&&`${b}-`}button--${e}`)})()?.focus()}},onClick:()=>{f(v)},"data-testid":e,...c},s)});t.Z=s},40783:function(e,t,a){"use strict";a.d(t,{D:function(){return useAccordionItem}});var r=a(44194);let n=(0,r.createContext)(void 0),i=(0,r.forwardRef)(function({prefixId:e="",index:t=0,as:a,children:i,testId:l="fs-accordion-item",...o},s){let c=a??"div",d={index:t,prefixId:e,panel:`${e&&`${e}-`}panel--${t}`,button:`${e&&`${e}-`}button--${t}`};return r.createElement(n.Provider,{value:d},r.createElement(c,{ref:s,"data-fs-accordion-item":!0,"data-testid":l,...o},i))});function useAccordionItem(){let e=(0,r.useContext)(n);if(void 0===e)throw Error("Do not use AccordionItem components outside the AccordionItem context.");return e}t.Z=i},27583:function(e,t,a){"use strict";var r=a(44194),n=a(71516),i=a(40783);let l=(0,r.forwardRef)(function({testId:e="fs-accordion-panel",children:t,...a},l){let{indices:o}=(0,n.A)(),{index:s,button:c,panel:d}=(0,i.D)();return r.createElement("div",{ref:l,id:d,"data-fs-accordion-panel":!0,"aria-labelledby":c,role:"region",hidden:!o.has(s),"data-testid":e,...a},t)});t.Z=l},13922:function(e,t,a){"use strict";var r=a(44194);t.Z=function({icon:e,inverse:t,children:a,disabled:n,iconPosition:i,size:l="regular",variant:o="primary",testId:s="fs-link-button",...c}){let d=(0,r.useRef)(null);return r.createElement("a",{ref:d,"data-fs-button":!0,"data-fs-link-button":!0,"data-fs-button-size":l,"data-fs-button-variant":o,"data-fs-button-inverse":t,"data-fs-button-disabled":n,onFocus:function(e){e.preventDefault(),n&&d.current?.blur()},"data-testid":s,...c},r.createElement("div",{"data-fs-button-wrapper":!0},!!e&&"left"===i&&r.createElement("span",{"data-fs-button-icon":!0},e),a&&r.createElement("span",null,a),!!e&&"right"===i&&r.createElement("span",{"data-fs-button-icon":!0},e)))}},95737:function(e,t,a){"use strict";var r=a(44194),n=a(31953),i=a(36735);let l=(0,r.forwardRef)(function({testId:e="fs-radio-field",id:t,label:a,value:l,name:o,...s},c){return r.createElement("div",{ref:c,"data-fs-radio-field":!0,"data-testid":e},r.createElement(i.Z,{id:t,value:"string"==typeof a?a:l,name:o,...s}),r.createElement(n.Z,{htmlFor:t},a))});t.Z=l},96396:function(e,t,a){"use strict";var r=a(44194),n=a(42256),i=a(37041),l=a(2614);let o=(0,r.forwardRef)(function({onSubmit:e,buttonIcon:t,"aria-label":a="search",testId:o="fs-search-input",buttonProps:s,...c},d){let u=(0,r.useRef)(null),f=(0,r.useRef)(null);return(0,r.useImperativeHandle)(d,()=>({inputRef:u.current,formRef:f.current})),r.createElement("form",{ref:f,"data-fs-search-input-field":!0,"data-testid":o,onSubmit:t=>{t.preventDefault(),u.current?.value!==""&&e(u.current.value)},role:"search"},r.createElement(n.Z,{ref:u,"aria-label":a,"data-fs-search-input-field-input":!0,...c}),r.createElement(i.Z,{type:"submit","aria-label":"Submit Search",icon:t??r.createElement(l.Z,{name:"MagnifyingGlass"}),size:"small",...s}))});t.Z=o},6133:function(e,t,a){"use strict";var r=a(44194);t.Z=function({testId:e="fs-empty-state",title:t,titleIcon:a,variant:n="default",bkgColor:i="default",children:l,...o}){return r.createElement("section",{"data-fs-empty-state":!0,"data-fs-empty-state-variant":n,"data-fs-empty-state-bkg-color":i,"data-fs-content":"empty-state","data-testid":e,...o},t&&r.createElement("header",{"data-fs-empty-state-title":!0},a&&r.createElement(r.Fragment,null,a),r.createElement("p",null,t)),l)}},15699:function(e,t,a){"use strict";var r=a(44194),n=a(71516);t.Z=function({testId:e,title:t,indicesExpanded:a,onAccordionChange:i,children:l}){return r.createElement("div",{"data-fs-filter":!0,"data-testid":e},r.createElement("h2",{"data-fs-filter-title":!0},t),r.createElement(n.Z,{indices:a,onChange:i,"data-fs-filter-accordion":!0},l))}},52815:function(e,t,a){"use strict";var r=a(44194),n=a(94564);t.Z=function({children:e}){return r.createElement(n.Z,{"data-fs-filter-list":!0},e)}},26174:function(e,t,a){"use strict";var r=a(44194),n=a(82740),i=a(31953),l=a(40276),o=a(95737);t.Z=function({testId:e,id:t,selected:a,value:s,quantity:c,facetKey:d,label:u,type:f="checkbox",onFacetChange:p}){return r.createElement("li",{key:t,"data-fs-filter-list-item":!0},"checkbox"===f?r.createElement(r.Fragment,null,r.createElement(n.Z,{id:t,checked:a,onChange:()=>p({key:d,value:s},"BOOLEAN"),"data-fs-filter-list-item-checkbox":!0,"data-testid":`${e}-accordion-panel-checkbox`,"data-value":s,"data-quantity":c}),r.createElement(i.Z,{htmlFor:t,className:"text__title-mini-alt","data-fs-filter-list-item-label":!0},u,"number"==typeof c&&c>=0&&r.createElement(l.Z,{"data-fs-filter-list-item-badge":!0},c))):r.createElement(o.Z,{id:t,name:d,value:s,checked:a,onChange:()=>p({key:d,value:s},"BOOLEAN"),"data-fs-filter-list-item-radio":!0,"data-testid":`${e}-accordion-panel-radio`,"data-value":s,label:u}))}},64199:function(e,t,a){"use strict";var r=a(44194),n=a(40783),i=a(67734),l=a(27583);t.Z=function({testId:e,label:t,index:a,children:o,type:s,description:c}){return r.createElement(n.Z,{key:`${t}-${a}`,prefixId:e,testId:`${e}-accordion`,index:a,"data-type":s,"data-fs-filter-accordion-item":!0},r.createElement(i.Z,{testId:`${e}-accordion-button`},t),r.createElement(l.Z,null,c&&r.createElement("span",{"data-fs-filter-accordion-item-description":!0},c),o))}},91844:function(e,t,a){"use strict";var r=a(44194),n=a(13666),i=a(16652),l=a(77215),o=a(45049),s=a(83339);t.Z=function({testId:e="fs-filter-slider",title:t,size:a,direction:c,children:d,applyBtnProps:u,clearBtnProps:f,overlayProps:p,onClose:v,onDismiss:y,footer:m=!0,...b}){let{fade:h,fadeOut:g}=(0,n.b)(),{closeFilter:j,closeRegionSlider:x}=(0,i.l8)();return r.createElement(l.Z,{"data-fs-filter-slider":!0,isOpen:!0,fade:h,onDismiss:()=>{g(),y?.()},size:a,direction:c,onTransitionEnd:()=>{"out"===h&&(j(),x())},testId:e,overlayProps:p,...b},r.createElement("div",{"data-fs-filter-slider-content":!0},r.createElement(o.Z,{onClose:()=>{v(),g()}},r.createElement("h2",{"data-fs-filter-slider-title":!0},t)),d),m&&r.createElement("footer",{"data-fs-filter-slider-footer":!0},f&&r.createElement(s.Z,{"data-fs-filter-slider-footer-button-clear":!0,...f}),u&&r.createElement(s.Z,{"data-fs-filter-slider-footer-button-apply":!0,testId:`${e}-button-apply`,...u,onClick:e=>{u?.onClick?.(e),g()}})))}}},function(e){e.O(0,[6031,9173,9774,2888,179],function(){return e(e.s=97676)}),_N_E=e.O()}]);
@@ -1,172 +0,0 @@
1
- import { useEffect, useMemo, useRef, useState } from 'react'
2
- import { Input, IconButton, Icon, Loader } from '@faststore/ui'
3
- import type { SelectedFacet } from 'src/sdk/search/useMyAccountFilter'
4
- import useShopperSuggestions from 'src/sdk/account/useShopperSuggestions'
5
- import type { Shopper } from 'src/sdk/account/useShopperSuggestions'
6
-
7
- export interface MyAccountFilterFacetPlacedByProps {
8
- /**
9
- * Current selected facets from filter context
10
- */
11
- selected: SelectedFacet[]
12
- /**
13
- * Dispatch from filter context
14
- */
15
- dispatch: (action: { type: 'toggleFacet' | 'setFacet'; payload: any }) => void
16
- }
17
-
18
- function MyAccountFilterFacetPlacedBy({
19
- selected,
20
- dispatch,
21
- }: MyAccountFilterFacetPlacedByProps) {
22
- const inputRef = useRef<HTMLInputElement>(null)
23
- const [query, setQuery] = useState('')
24
- const [selectedShopper, setSelectedShopper] = useState<Shopper | null>(null)
25
- const [isOpen, setIsOpen] = useState(false)
26
-
27
- // Use the new hook for shoppers suggestions
28
- const { data, isLoading, findShopperById } = useShopperSuggestions(query)
29
-
30
- // Get the filtered shoppers from hook data
31
- const filteredShoppers = data?.shoppers || []
32
-
33
- const selectedId = useMemo(
34
- () => selected.find((f) => f.key === 'purchaseAgentId')?.value,
35
- [selected]
36
- )
37
-
38
- const clearAll = () => {
39
- setQuery('')
40
- setSelectedShopper(null)
41
- if (inputRef.current) inputRef.current.value = ''
42
- }
43
-
44
- useEffect(() => {
45
- if (selectedId && !selectedShopper) {
46
- const found = findShopperById(selectedId)
47
- if (found) setSelectedShopper(found)
48
- } else if (!selectedId) {
49
- clearAll()
50
- }
51
- }, [selectedId, selectedShopper])
52
-
53
- function handleSearchOnChange(value: string) {
54
- setQuery(value)
55
- setIsOpen(true)
56
- }
57
-
58
- const isSearchEmpty = useMemo(
59
- () => !isLoading && query && filteredShoppers.length === 0,
60
- [isLoading, query, filteredShoppers]
61
- )
62
-
63
- function handleSelect(shopper: Shopper) {
64
- setSelectedShopper(shopper)
65
- setIsOpen(false)
66
- dispatch({
67
- type: 'setFacet',
68
- payload: {
69
- facet: { key: 'purchaseAgentId', value: shopper.purchase_agent_id },
70
- unique: true,
71
- },
72
- })
73
- }
74
-
75
- function handleClearTag() {
76
- if (selectedShopper) {
77
- // Using toggleFacet here removes the purchaseAgentId from selected facets
78
- // because toggleFacet will remove the facet if it already exists in the selected facets
79
- dispatch({
80
- type: 'toggleFacet',
81
- payload: {
82
- key: 'purchaseAgentId',
83
- value: selectedShopper.purchase_agent_id,
84
- },
85
- })
86
- }
87
- clearAll()
88
- }
89
-
90
- return (
91
- <div data-fs-list-orders-filters-placed-by>
92
- <div data-fs-list-orders-filters-placed-by-input>
93
- <Input
94
- id="placed-by-input"
95
- placeholder="Enter the shopper's name..."
96
- ref={inputRef}
97
- value={selectedShopper ? selectedShopper.name : query}
98
- readOnly={Boolean(selectedShopper)}
99
- onFocus={() => {
100
- if (!selectedShopper) setIsOpen(true)
101
- }}
102
- onChange={(e) => {
103
- if (selectedShopper) return
104
- handleSearchOnChange(e.target.value)
105
- }}
106
- onBlur={() => {
107
- // delay close to allow click selection
108
- setTimeout(() => {
109
- setIsOpen(false)
110
- if (!selectedShopper) {
111
- setQuery('')
112
- if (inputRef.current) inputRef.current.value = ''
113
- }
114
- }, 100)
115
- }}
116
- type="text"
117
- inputMode="text"
118
- />
119
- {isLoading && (
120
- <div data-fs-list-orders-filters-placed-by-loader>
121
- <Loader />
122
- </div>
123
- )}
124
- {selectedShopper && (
125
- <IconButton
126
- size="small"
127
- aria-label="Clear shopper"
128
- data-fs-list-orders-filters-placed-by-clear
129
- icon={<Icon name="X" />}
130
- onClick={handleClearTag}
131
- />
132
- )}
133
- </div>
134
-
135
- {isOpen && isSearchEmpty && (
136
- <div
137
- data-fs-list-orders-filters-placed-by-dropdown
138
- data-fs-list-orders-filters-placed-by-empty
139
- aria-label="No shoppers found with query"
140
- >
141
- <p>No shoppers found with "{query}"</p>
142
- </div>
143
- )}
144
-
145
- {isOpen && filteredShoppers.length > 0 && (
146
- <div
147
- data-fs-list-orders-filters-placed-by-dropdown
148
- aria-label="Shopper selection dropdown"
149
- >
150
- <ul>
151
- {filteredShoppers.map((s) => (
152
- <li key={s.purchase_agent_id}>
153
- <button
154
- type="button"
155
- onMouseDown={(e) => e.preventDefault()}
156
- onClick={() => handleSelect(s)}
157
- data-fs-list-orders-filters-placed-by-option
158
- >
159
- <span data-fs-list-orders-filters-placed-by-option-name>
160
- {s.name}
161
- </span>
162
- </button>
163
- </li>
164
- ))}
165
- </ul>
166
- </div>
167
- )}
168
- </div>
169
- )
170
- }
171
-
172
- export default MyAccountFilterFacetPlacedBy
@@ -1,2 +0,0 @@
1
- export { default } from './MyAccountFilterFacetPlacedBy'
2
- export type { MyAccountFilterFacetPlacedByProps } from './MyAccountFilterFacetPlacedBy'
@@ -1,96 +0,0 @@
1
- [data-fs-list-orders-filters-placed-by] {
2
- --fs-list-orders-filters-placed-by-dropdown-bkg : var(--fs-color-neutral-0);
3
- --fs-list-orders-filters-placed-by-dropdown-border : 1px solid var(--fs-border-color-light);
4
- --fs-list-orders-filters-placed-by-dropdown-radius : var(--fs-border-radius);
5
- --fs-list-orders-filters-placed-by-option-padding : var(--fs-spacing-2) var(--fs-spacing-3);
6
- --fs-list-orders-filters-placed-by-selected-height : var(--fs-control-height);
7
- --fs-list-orders-filters-placed-by-selected-padding : 0 var(--fs-spacing-3);
8
- --fs-list-orders-filters-placed-by-selected-border : var(--fs-input-border-width) solid var(--fs-input-border-color);
9
- --fs-list-orders-filters-placed-by-selected-radius : var(--fs-input-border-radius);
10
- --fs-list-orders-filters-placed-by-empty-text-color : var(--fs-color-text-light);
11
- --fs-list-orders-filters-placed-by-loader-size : 1.25rem;
12
- --fs-list-orders-filters-placed-by-dropdown-shadow : 0 2px 8px rgb(0 0 0 / 10%);
13
-
14
- position: relative;
15
-
16
- // Clear icon inside input when actionable
17
- [data-fs-list-orders-filters-placed-by-input] {
18
- position: relative;
19
-
20
- [data-fs-input] {
21
- width: 100%;
22
- }
23
-
24
- [data-fs-icon-button] {
25
- position: absolute;
26
- top: 50%;
27
- right: var(--fs-spacing-2);
28
- transform: translateY(-50%);
29
- }
30
-
31
- [data-fs-list-orders-filters-placed-by-loader] {
32
- position: absolute;
33
- top: 50%;
34
- right: var(--fs-spacing-2);
35
- display: flex;
36
- align-items: center;
37
- justify-content: center;
38
- transform: translateY(-50%);
39
-
40
- [data-fs-loader] {
41
- width: var(--fs-list-orders-filters-placed-by-loader-size);
42
- height: var(--fs-list-orders-filters-placed-by-loader-size);
43
- }
44
- }
45
- }
46
-
47
- [data-fs-list-orders-filters-placed-by-dropdown] {
48
- position: absolute;
49
- z-index: 10;
50
- width: 100%;
51
- margin-top: var(--fs-spacing-1);
52
- background: var(--fs-list-orders-filters-placed-by-dropdown-bkg);
53
- border: var(--fs-list-orders-filters-placed-by-dropdown-border);
54
- border-radius: var(--fs-list-orders-filters-placed-by-dropdown-radius);
55
- box-shadow: var(--fs-list-orders-filters-placed-by-dropdown-shadow);
56
-
57
- &[data-fs-list-orders-filters-placed-by-empty] {
58
- padding: var(--fs-spacing-3);
59
-
60
- p {
61
- margin: 0;
62
- font-size: var(--fs-text-size-body);
63
- font-style: italic;
64
- color: var(--fs-list-orders-filters-placed-by-empty-text-color);
65
- text-align: center;
66
- }
67
- }
68
-
69
- ul {
70
- max-height: 220px;
71
- padding: 0;
72
- margin: 0;
73
- overflow: auto;
74
- list-style: none;
75
- }
76
-
77
- [data-fs-list-orders-filters-placed-by-option] {
78
- display: flex;
79
- justify-content: flex-start;
80
- width: 100%;
81
- padding: var(--fs-list-orders-filters-placed-by-option-padding);
82
- text-align: left;
83
- cursor: pointer;
84
- background: transparent;
85
- border: 0;
86
-
87
- &:hover, &:focus {
88
- background: var(--fs-color-neutral-bkg);
89
- }
90
-
91
- [data-fs-list-orders-filters-placed-by-option-name] {
92
- font-weight: var(--fs-text-weight-regular);
93
- }
94
- }
95
- }
96
- }
@@ -1,151 +0,0 @@
1
- import { useMemo, useState, useCallback, useEffect } from 'react'
2
-
3
- // This will be replaced with an imported type from a GraphQL schema in the future
4
- export type Shopper = {
5
- purchase_agent_id: string
6
- name: string
7
- email: string
8
- }
9
-
10
- // Mock data for now, will be fetched from API in the future
11
- const MOCK_SHOPPERS: Shopper[] = [
12
- {
13
- purchase_agent_id: '1',
14
- name: 'Robert Fox',
15
- email: 'robert.fox@example.com',
16
- },
17
- {
18
- purchase_agent_id: '2',
19
- name: 'Ronald Wilson',
20
- email: 'ronald.wilson@example.com',
21
- },
22
- {
23
- purchase_agent_id: '3',
24
- name: 'Cameron Williamson',
25
- email: 'cameron.williamson@example.com',
26
- },
27
- {
28
- purchase_agent_id: '4',
29
- name: 'Brooklyn Simmons',
30
- email: 'brooklyn.simmons@example.com',
31
- },
32
- ]
33
-
34
- interface ShopperSuggestionsData {
35
- /**
36
- * Array of shoppers that match the search term
37
- */
38
- shoppers: Shopper[]
39
- }
40
-
41
- interface ShopperSuggestionsResult {
42
- /**
43
- * The data containing matched shoppers
44
- */
45
- data: ShopperSuggestionsData | null
46
- /**
47
- * Error message if any
48
- */
49
- error: Error | null
50
- /**
51
- * Whether the data is currently being loaded
52
- */
53
- isLoading: boolean
54
- /**
55
- * Function to find a shopper by ID
56
- */
57
- findShopperById: (id: string) => Shopper | undefined
58
- }
59
-
60
- /**
61
- * Hook to search for shoppers by name or email
62
- *
63
- * @param searchTerm - The term to search for
64
- * @param options - Additional options for the hook
65
- * @returns Result object with data, loading state, and error
66
- */
67
- export function useShopperSuggestions(
68
- searchTerm = ''
69
- ): ShopperSuggestionsResult {
70
- const [data, setData] = useState<ShopperSuggestionsData | null>({
71
- shoppers: MOCK_SHOPPERS,
72
- })
73
- const [error, setError] = useState<Error | null>(null)
74
- const [isLoading, setIsLoading] = useState(false)
75
-
76
- // Function to search for shoppers
77
- const searchShoppers = useCallback(
78
- async (term: string) => {
79
- // Don't search if term is empty or null
80
- if (!term?.trim()) {
81
- setData({ shoppers: MOCK_SHOPPERS })
82
- setIsLoading(false)
83
- return
84
- }
85
-
86
- setIsLoading(true)
87
- setError(null)
88
-
89
- try {
90
- // Simulate API call with timeout
91
- const results = await new Promise<Shopper[]>((resolve) => {
92
- setTimeout(() => {
93
- // Filter logic to simulate server-side filtering
94
- const q = term.trim().toLowerCase()
95
- const filtered = MOCK_SHOPPERS.filter(
96
- (shopper) =>
97
- shopper.name.toLowerCase().includes(q) ||
98
- shopper.email.toLowerCase().includes(q)
99
- )
100
- resolve(filtered)
101
- }, 300) // Simulate network delay
102
- })
103
-
104
- setData({ shoppers: results })
105
- } catch (err) {
106
- setError(
107
- err instanceof Error
108
- ? err
109
- : new Error('Failed to search for shoppers')
110
- )
111
- setData({ shoppers: [] })
112
- } finally {
113
- setIsLoading(false)
114
- }
115
- },
116
- [] // No dependencies needed for this mock implementation
117
- )
118
-
119
- // Setup debouncing for the search term
120
- useEffect(() => {
121
- // Don't run search if term is empty and we already have null data
122
- if (!searchTerm && data === null) return
123
-
124
- const handler = setTimeout(() => {
125
- searchShoppers(searchTerm)
126
- }, 300)
127
-
128
- return () => {
129
- clearTimeout(handler)
130
- }
131
- }, [searchTerm])
132
-
133
- // Helper function to find a shopper by ID
134
- // We use useMemo instead of useCallback to ensure this function has a stable reference
135
- // and doesn't cause infinite loops in dependencies of other hooks
136
- const findShopperById = useMemo(() => {
137
- // Return a stable function that won't change between renders
138
- return (id: string): Shopper | undefined => {
139
- return data?.shoppers.find((s) => s.purchase_agent_id === id)
140
- }
141
- }, [])
142
-
143
- return {
144
- data,
145
- error,
146
- isLoading,
147
- findShopperById,
148
- }
149
- }
150
-
151
- export default useShopperSuggestions