PageSourceSearch

https://gtogecko.com/assets/CartPage-DvAiDCwN.js

js gtogecko.com collected 2026-09-24 13:28:20 UTC 2,930 bytes, 1 lines download raw bytes

1import{f as C,r as m,j as a,H as g,L as c}from"./index-u4_wL9eM.js";import{c as k}from"./shop-Bgn3hXbM.js";const q=()=>{var d,u,h;const{cartItems:s,updateQuantity:r,removeFromCart:x,clearCart:j}=C(),[n,i]=m.useState(!1),[o,l]=m.useState(null),v=s.reduce((t,e)=>t+parseFloat(e.product.price.amount)*e.quantity,0),N=((h=(u=(d=s[0])==null?void 0:d.product)==null?void 0:u.price)==null?void 0:h.currencyCode)||"USD",y=async()=>{i(!0),l(null);try{const t=s.map(p=>({variantId:p.variantId,quantity:p.quantity})),e=await k(t);j(),window.location.href=e.webUrl}catch(t){l(t.message),i(!1)}};return a.jsxs("div",{className:"shop-page",children:[a.jsxs(g,{children:[a.jsx("title",{children:"Cart - GTO Gecko Shop"}),a.jsx("meta",{name:"robots",content:"noindex"})]}),a.jsx("section",{className:"shop-hero",children:a.jsx("div",{className:"container",children:a.jsx("h1",{children:"Your Cart"})})}),a.jsx("div",{className:"container cart-container",children:s.length===0?a.jsxs("div",{className:"cart-empty",children:[a.jsx("p",{children:"Your cart is empty."}),a.jsx(c,{to:"/shop",className:"primary-btn",children:"Continue Shopping"})]}):a.jsxs(a.Fragment,{children:[a.jsx("div",{className:"cart-items",children:s.map(t=>a.jsxs("div",{className:"cart-item",children:[t.product.image&&a.jsx(c,{to:`/shop/${t.product.handle}`,className:"cart-item-image",children:a.jsx("img",{src:t.product.image,alt:t.product.title})}),a.jsxs("div",{className:"cart-item-details",children:[a.jsx(c,{to:`/shop/${t.product.handle}`,className:"cart-item-title",children:t.product.title}),a.jsx("p",{className:"cart-item-variant",children:t.product.variantTitle}),a.jsxs("p",{className:"cart-item-price",children:["$",parseFloat(t.product.price.amount).toFixed(2)]})]}),a.jsx("div",{className:"cart-item-quantity",children:a.jsxs("div",{className:"quantity-controls",children:[a.jsx("button",{onClick:()=>r(t.variantId,t.quantity-1),children:"-"}),a.jsx("input",{type:"number",min:"1",value:t.quantity,onChange:e=>r(t.variantId,Math.max(1,parseInt(e.target.value)||1))}),a.jsx("button",{onClick:()=>r(t.variantId,t.quantity+1),children:"+"})]})}),a.jsxs("div",{className:"cart-item-line-total",children:["$",(parseFloat(t.product.price.amount)*t.quantity).toFixed(2)]}),a.jsx("button",{className:"cart-item-remove",onClick:()=>x(t.variantId),"aria-label":"Remove item",children:"×"})]},t.variantId))}),a.jsxs("div",{className:"cart-summary",children:[a.jsxs("div",{className:"cart-subtotal",children:[a.jsx("span",{children:"Subtotal"}),a.jsxs("span",{children:["$",v.toFixed(2)," ",N]})]}),a.jsx("p",{className:"cart-note",children:"Shipping and taxes calculated at checkout."}),o&&a.jsx("p",{className:"shop-error",children:o}),a.jsx("button",{className:"primary-btn checkout-btn",onClick:y,disabled:n,children:n?"Redirecting...":"Checkout"}),a.jsx(c,{to:"/shop",className:"continue-shopping",children:"Continue Shopping"})]})]})})]})};export{q as default};

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.