PageSourceSearch

https://next-legacy.stage32.com/_next/static/chunks/5609-2b271196d6fe2075.js

js stage32.com collected 2026-10-01 10:24:40 UTC 11,110 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5609],{9836:function(t,e,n){n.d(e,{Vw:function(){return a},dF:function(){return o},hd:function(){return i},xR:function(){return c}});var r=n(82530);async function o(t){let{data:e}=await r.Z.get("".concat("https://api.stage32.com","/api/v2/products/shopifyId/").concat(t));return e}async function a(t){let{data:e}=await r.Z.get("".concat("https://api.stage32.com","/api/v2/products/certifications/").concat(t));return e}async function i(t){let{data:e}=await r.Z.get("".concat("https://api.stage32.com","/api/v2/products/recommendations/").concat(t));return e}async function c(t,e){let n="".concat("https://api.stage32.com","/api/v2/products/collection/").concat(t),{data:o}=await r.Z.get(n,{params:e});return o}},229:function(t,e,n){n.d(e,{A:function(){return i}});var r=n(67294),o=n(48583),a=n(14952);function i(){let t=(0,o.Dv)(a.cY),e=(0,r.useRef)(t);return e.current=t,function(){var t,n,r,o,a,i;let c=e.current;return{currency:null==c?void 0:null===(n=c.cost)||void 0===n?void 0:null===(t=n.totalAmount)||void 0===t?void 0:t.currencyCode,value:null==c?void 0:null===(o=c.cost)||void 0===o?void 0:null===(r=o.totalAmount)||void 0===r?void 0:r.amount,items:null==c?void 0:null===(i=c.lines)||void 0===i?void 0:null===(a=i.edges)||void 0===a?void 0:a.map(t=>{var e,n,r,o,a,i,c;let{node:l}=t;return{item_id:null===(e=l.merchandise)||void 0===e?void 0:e.id,item_name:null===(r=l.merchandise)||void 0===r?void 0:null===(n=r.product)||void 0===n?void 0:n.title,discount:parseFloat(null===(a=l.merchandise)||void 0===a?void 0:null===(o=a.price)||void 0===o?void 0:o.amount)-parseFloat(null===(c=l.cost)||void 0===c?void 0:null===(i=c.totalAmount)||void 0===i?void 0:i.amount),item_quantity:l.quantity}})}}}},775:function(t,e,n){n.d(e,{Oq:function(){return l},Wn:function(){return a},gm:function(){return i},o4:function(){return o},tv:function(){return c}});let r="\nid\ncheckoutUrl\ncost {\n  totalAmount {\n      amount\n      currencyCode\n  }\n}\nlines(first: 100) {\n  edges {\n      node {\n          id\n          quantity\n          cost {\n              totalAmount {\n                  amount\n                  currencyCode\n              }\n          }\n          merchandise {\n              ... on ProductVariant {\n                  id\n                  title\n                  image {\n                      url\n                  }\n                  product {\n                      id\n                      title\n                      handle\n                      vendor\n                  }\n                  price {\n                      amount\n                      currencyCode\n                  }\n                  compareAtPrice {\n                      amount\n                      currencyCode\n                  }\n              }\n          }\n      }\n  }\n}\n",o="\nmutation AddToCart($cartId: ID!, $lines: [CartLineInput!]!) {\n    cartLinesAdd(cartId: $cartId, lines: $lines) {\n        cart {\n            ".concat(r,"\n        }\n    }\n}"),a=" \nmutation RemoveFromCart($cartId: ID!, $lineIds: [ID!]!) {\n    cartLinesRemove(cartId: $cartId, lineIds: $lineIds) {\n        cart {\n            ".concat(r,"\n        }\n    }\n}"),i="\nquery GetCart($cartId: ID!) {\n    cart(id: $cartId) {\n        ".concat(r,"\n    }\n}"),c="\nmutation CreateCart {\n  cartCreate {\n    cart {\n      checkoutUrl\n      id\n    }\n  }\n}",l="\nmutation CreateCartForEmail($email: String!) {\n  cartCreate(input: {buyerIdentity: {email: $email}}) {\n    cart {\n      checkoutUrl\n      id\n    }\n  }\n}\n"},39188:function(t,e,n){function r(t,e){return!!t&&!!e&&(t.endsWith(e)||e.endsWith(t))}async function o(t){let{query:e,variables:n={}}=t,r=await fetch("https://".concat("stage32.myshopify.com","/api/2023-07/graphql.json"),{method:"POST",headers:{"Content-Type":"application/json","X-Shopify-Storefront-Access-Token":"58e155595562142e6ca883ad85ec29f7"},body:JSON.stringify({query:e,variables:n})});if(!r.ok)return!1;let{data:o}=await r.json();return o}n.d(e,{Q:function(){return o},y:function(){return r}})},42799:function(t,e,n){n.d(e,{Af:function(){return o},Qs:function(){return a},SM:function(){return r}});let r={enter:"ease-out duration-300",enterFrom:"opacity-0",enterTo:"opacity-100",leave:"ease-in duration-200",leaveFrom:"opacity-100",leaveTo:"opacity-0"},o={enter:"ease-out duration-300",enterFrom:"opacity-0 scale-95",enterTo:"opacity-100 scale-100",leave:"ease-in duration-200",leaveFrom:"opacity-100 scale-100",leaveTo:"opacity-0 scale-95"},a=t=>t.toLowerCase().replace(/(?:^|\s)\w/g,function(t){return t.toUpperCase()})},14952:function(t,e,n){n.d(e,{EQ:function(){return h},cY:function(){return g}});var r=n(85893),o=n(67294),a=n(39188),i=n(36160),c=n(15103),l=n(48583),s=n(41664),u=n.n(s),d=n(775),v=n(51124),m=n(82530);let g=(0,c.cn)({isLoading:!0,id:null,checkoutUrl:"",lines:{edges:[]},cost:{totalAmount:{currencyCode:"",amount:""}}}),f=()=>{let t="shopify:cart:id",[,e]=(0,l.KO)(g),{user:n}=(0,v.a)(),r=(0,o.useRef)(!1),i=(0,o.useRef)(null),c=(0,o.useCallback)(async()=>{var e;let r=n?d.Oq:d.tv,o=n?{query:r,variables:{email:n.email}}:{query:r},i=await (0,a.Q)(o),c=null==i?void 0:null===(e=i.cartCreate)||void 0===e?void 0:e.cart;return c&&n?await m.Z.post("/api/v2/me/cart",{shopify_cart_id:c.id}):window.localStorage.setItem(t,c.id),c},[n]),s=(0,o.useCallback)(async t=>{let e=await (0,a.Q)({query:d.gm,variables:{cartId:t}});return e&&e.cart||(e=await c()),e},[c]),u=(0,o.useCallback)(async t=>{try{let e=await (0,a.Q)({query:d.gm,variables:{cartId:t}});return(null==e?void 0:e.cart)||null}catch(t){return console.error("[Cart] Error fetching cart:",t),null}},[]),f=(0,o.useCallback)(async()=>{try{let{data:t}=await m.Z.get("/api/v2/me/cart");return t.shopify_cart_id}catch(t){return(await c()).id}},[c]),h=(0,o.useCallback)(async()=>window.localStorage.getItem(t),[]),p=(0,o.useCallback)(async(t,e)=>{var n;let r=e.map(t=>({merchandiseId:t,quantity:1})),o=await (0,a.Q)({query:d.o4,variables:{cartId:t,lines:r}});return null==o?void 0:null===(n=o.cartLinesAdd)||void 0===n?void 0:n.cart},[]);(0,o.useEffect)(()=>{let o=(null==n?void 0:n.uuid)||null;async function l(){try{let I;console.log("[Cart] loadCart called, user:",!!n,"hasMerged:",r.current);let b=null,L=!1;
1if(n?(I=await f(),L=!0,console.log("[Cart] User cart ID from backend:",I),r.current||(b=await h(),console.log("[Cart] Local cart ID to potentially merge:",b))):(I=await h()||(await c()).id,L=!1,console.log("[Cart] Using local/anonymous cart:",I)),I){let c=await s(I),f=null==c?void 0:c.cart;if(f){var o,i,l,d,v,m,g,y,C,w;if(console.log("[Cart] Cart loaded, items:",null===(i=f.lines)||void 0===i?void 0:null===(o=i.edges)||void 0===o?void 0:o.length,"isUserCart:",L),n&&b&&b!==I&&!r.current){console.log("[Cart] Attempting to merge local cart into user cart...");let n=await u(b);if(console.log("[Cart] Local cart fetch result:",n?"found with ".concat(null===(m=n.lines)||void 0===m?void 0:null===(v=m.edges)||void 0===v?void 0:v.length," items"):"not found or empty"),n&&(null===(y=n.lines)||void 0===y?void 0:null===(g=y.edges)||void 0===g?void 0:g.length)>0){console.log("[Cart] Local cart has items:",n.lines.edges.length);let o=[];if(n.lines.edges.forEach(t=>{let{node:{merchandise:{id:e}}}=t;f.lines.edges.find(t=>{let{node:{merchandise:{id:n}}}=t;return(0,a.y)(e,n)})||o.push(e)}),console.log("[Cart] Items to merge:",o.length),o.length>0){let n=await p(I,o);if(n)f=n,console.log("[Cart] Merge complete, new item count:",null===(w=f.lines)||void 0===w?void 0:null===(C=w.edges)||void 0===C?void 0:C.length),r.current=!0,localStorage.removeItem(t),console.log("[Cart] Local cart cleared, merge flag set");else{console.error("[Cart] Merge failed - addItemsToCart returned null/undefined"),r.current=!0,e({...f,isLoading:!1,isUserCart:L,mergeError:"Some items from your cart could not be added. Please contact support or try adding them again."});return}}else console.log("[Cart] No new items to merge"),r.current=!0,localStorage.removeItem(t),console.log("[Cart] Local cart cleared, merge flag set")}else console.log("[Cart] Local cart is empty or not found, nothing to merge"),r.current=!0,localStorage.removeItem(t)}console.log("[Cart] Setting final cart state, items:",null===(d=f.lines)||void 0===d?void 0:null===(l=d.edges)||void 0===l?void 0:l.length,"isUserCart:",L),e({...f,isLoading:!1,isUserCart:L});return}}e(t=>({...t,isLoading:!1,isUserCart:!1}))}catch(t){console.error("[Cart] Error loading cart:",t);try{let t=await c();if(t){e({...t,isLoading:!1,isUserCart:!!n});return}}catch(t){console.error("[Cart] Error creating fallback cart:",t)}e(t=>({...t,isLoading:!1,isUserCart:!1}))}}o!==i.current&&(console.log("[Cart] User changed, resetting merge flag. Old:",i.current,"New:",o),r.current=!1,i.current=o,null!==o&&e(t=>({...t,isLoading:!0})));let d=setTimeout(()=>{e(t=>t.isLoading?(console.warn("[Cart] Cart loading timed out, disabling loading state"),{...t,isLoading:!1}):t)},15e3);return void 0!==n&&l(),()=>clearTimeout(d)},[c,s,u,f,h,e,n,p])},h=()=>(f(),null);e.ZP=()=>{var t,e;f();let n=(0,l.Dv)(g),o=null==n?void 0:null===(e=n.lines)||void 0===e?void 0:null===(t=e.edges)||void 0===t?void 0:t.length;return(0,r.jsx)(u(),{href:"/education/cart",legacyBehavior:!0,children:(0,r.jsxs)("div",{className:"relative flex cursor-pointer items-center",children:[!!o&&(0,r.jsx)("div",{children:(0,r.jsx)("div",{className:"flex h-5 w-5 items-center justify-center rounded-full bg-primary text-xs text-white",children:o})}),(0,r.jsx)(i.Z,{className:"h-6 w-6 text-primary"})]})})}},51124:function(t,e,n){n.d(e,{a:function(){return c}});var r=n(8100),o=n(82530),a=n(67294),i=n(39332);let c=function(){let{middleware:t,redirectToIfAuthenticated:e,redirectToIfNotAuthenticated:n,redirectToIfError:c}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{redirectToIfError:"/"},l=(0,i.useRouter)(),{data:s,error:u,mutate:d}=(0,r.ZP)("/api/v2/me",t=>o.Z.get(t).then(t=>t.data.data.attributes).catch(t=>{if(401===t.response.status)return!1;throw t}));return(0,a.useEffect)(()=>{u&&c&&l.push(c),void 0!==s&&("shouldBeAuthenticated"===t&&!s&&n&&l.push(n),"shouldNotBeAuthenticated"===t&&s&&e&&l.push(e),"shouldBeWritersRoomMember"!==t||!1!==s&&s.has_writers_room||l.push("/writers-room"),"shouldBeBlogContentModerator"!==t||!1!==s&&s.is_content_moderator_blog||l.push("/blog"))},[s,u,t,c,n,e]),{user:s,mutateUser:d,csrf:()=>o.Z.get("/auth/csrf-cookie")}}},61661:function(t,e,n){n.d(e,{e:function(){return a}});var r=n(8100),o=n(82530);function a(){let{data:t,mutate:e,isValidating:n}=(0,r.ZP)("/api/v2/purchases/wishlist",t=>o.Z.get(t).then(t=>t.data).catch(t=>{if(401===t.response.status)return[];throw t}),{revalidateOnFocus:!1,revalidateOnReconnect:!1}),a=async t=>{try{await o.Z.post("/api/v2/purchases/wishlist",{shopifyId:t}),e()}catch(t){console.error("Error adding to wishlist:",t)}},i=async t=>{try{await o.Z.delete("/api/v2/purchases/wishlist/".concat(t)),e()}catch(t){console.error("Error removing from wishlist:",t)}};return{data:t,mutate:e,isValidating:n,addToWishlist:a,removeFromWishlist:i}}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.