{"version":3,"file":"static/chunks/435-684c9c3ff78bf5ef.js","mappings":"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","sources":["webpack://_N_E/./src/context/CartContext.tsx","webpack://_N_E/./src/utils/Shopify/products.ts","webpack://_N_E/./src/utils/productionProductConstants.ts","webpack://_N_E/./src/utils/baseEnvConstant.ts","webpack://_N_E/./src/utils/constants.ts","webpack://_N_E/./src/utils/productConstants.ts"],"sourcesContent":["\"use client\";\n\nimport { NEXT_PUBLIC_SHOPIFY_STORE_DOMAIN } from \"@/utils/constants\";\nimport {\n createCart,\n fetchCart,\n fetchCheckoutData,\n} from \"@/utils/Shopify/products\";\nimport React, {\n createContext,\n useContext,\n useState,\n ReactNode,\n useEffect,\n} from \"react\";\n\ninterface CartContextType {\n cart: null;\n setCart: any;\n itemCount: number;\n setItemCount: (count: number) => void;\n}\n\nconst CartContext = createContext(undefined);\n\nexport const CartProvider: React.FC<{ children: ReactNode }> = ({\n children,\n}) => {\n const [itemCount, setItemCount] = useState(0);\n const [cart, setCart] = useState(null);\n\n useEffect(() => {\n const CURRENT_STORE_DOMAIN = NEXT_PUBLIC_SHOPIFY_STORE_DOMAIN\n ? NEXT_PUBLIC_SHOPIFY_STORE_DOMAIN\n : \"\";\n\n const savedDomain = localStorage.getItem(\"storeDomain\");\n\n if (savedDomain && savedDomain !== CURRENT_STORE_DOMAIN) {\n localStorage.removeItem(\"cartCheckoutData\");\n localStorage.setItem(\"storeDomain\", CURRENT_STORE_DOMAIN);\n } else if (!savedDomain) {\n localStorage.setItem(\"storeDomain\", CURRENT_STORE_DOMAIN);\n }\n }, []);\n\n useEffect(() => {\n const fetchCartData = async () => {\n const storedData = localStorage.getItem(\"cartCheckoutData\");\n if (storedData) {\n const { cartId, checkoutid } = JSON.parse(storedData);\n if (cartId) {\n const updatedCart = await fetchCart(cartId);\n if (!updatedCart || !updatedCart.lines) {\n const newCart = await createCart();\n setCart(newCart);\n setItemCount(0);\n localStorage.setItem(\n \"cartCheckoutData\",\n JSON.stringify({ cartId: newCart, checkoutId: null })\n );\n }\n setCart(updatedCart);\n setItemCount(\n updatedCart.lines.edges.reduce(\n (total: any, edge: any) => total + edge.node.quantity,\n 0\n )\n );\n\n if (checkoutid) {\n const checkout = await fetchCheckoutData(checkoutid);\n if (checkout?.completedAt) {\n localStorage.removeItem(\"cartCheckoutData\"); // Clear cart on checkout completion\n setCart(null); // Clear the cart state\n setItemCount(0); // Reset item count\n }\n }\n }\n } else {\n const newCart = await createCart();\n localStorage.setItem(\n \"cartCheckoutData\",\n JSON.stringify({ cartId: newCart, checkoutId: null })\n );\n setCart(newCart);\n setItemCount(0); // Reset item count\n }\n };\n fetchCartData();\n }, []);\n\n useEffect(() => {\n const storedData = localStorage.getItem(\"cartCheckoutData\");\n if (!storedData) {\n // No cartCheckoutData found, so we clear the cart state\n setCart(null);\n setItemCount(0);\n }\n }, []);\n\n return (\n \n {children}\n \n );\n};\n\nexport const useCart = () => {\n const context = useContext(CartContext);\n if (context === undefined) {\n throw new Error(\"useCart must be used within a CartProvider\");\n }\n return context;\n};\n","import { NEXT_PUBLIC_SHOPIFY_STORE_DOMAIN } from \"@/utils/constants\";\nimport { validProductIds } from \"../baseEnvConstant\";\n\n\nconst shopifyAccessToken = process.env.NEXT_PUBLIC_SHOPIFY_STOREFRONT_ACCESS_TOKEN;\n\nconst headers: HeadersInit = {\n 'Content-Type': 'application/json',\n};\n\n\nif (shopifyAccessToken) {\n headers['X-Shopify-Storefront-Access-Token'] = shopifyAccessToken;\n}\n\nexport const fetchProducts = async () => {\n const query = `\n query {\n products(first: 50) {\n edges {\n node {\n id\n title\n \n \n variants(first: 10) {\n edges {\n node {\n id\n title\n priceV2 {\n amount\n currencyCode\n }\n compareAtPriceV2 {\n amount\n currencyCode\n }\n }\n }\n }\n }\n }\n }\n }\n `;\n const response = await fetch(`https://${NEXT_PUBLIC_SHOPIFY_STORE_DOMAIN}/api/2023-01/graphql.json`, {\n method: 'POST',\n headers: headers,\n body: JSON.stringify({ query }),\n });\n\n const data = await response.json();\n const allProducts = data.data.products.edges;\n\n // Filter products that match the valid product IDs\n const validProducts = allProducts.filter((productEdge: any) => {\n const product = productEdge.node;\n // Check if the product id is in the valid product ID list\n return validProductIds.includes(product.id);\n });\n return validProducts;\n};\n\n\n\nexport const createCart = async () => {\n const mutation = `\n mutation {\n cartCreate {\n cart {\n id\n }\n }\n }\n `;\n\n const response = await fetch(`https://${NEXT_PUBLIC_SHOPIFY_STORE_DOMAIN}/api/2023-01/graphql.json`, {\n method: 'POST',\n headers: headers,\n body: JSON.stringify({ query: mutation }),\n });\n\n const data = await response.json();\n return data.data.cartCreate.cart.id;\n};\n\nexport const addProductToCart = async (cartId: string, variantId: string, quantity: number) => {\n variantId = 'gid://shopify/ProductVariant/' + variantId;\n const mutation = `\n mutation($cartId: ID!, $lines: [CartLineInput!]!) {\n cartLinesAdd(cartId: $cartId, lines: $lines) {\n cart {\n id\n lines(first: 5) {\n edges {\n node {\n id\n quantity\n merchandise {\n ... on ProductVariant { \n id\n sku\n product{\n id\n title\n\n}\n \n priceV2 {\n amount\n currencyCode\n }\n }\n }\n }\n }\n }\n }\n }\n }\n `;\n\n const variables = {\n cartId,\n lines: [\n {\n merchandiseId: variantId,\n quantity,\n },\n ],\n };\n\n const response = await fetch(`https://${process.env.NEXT_PUBLIC_SHOPIFY_STORE_DOMAIN}/api/2023-01/graphql.json`, {\n method: 'POST',\n headers: headers,\n body: JSON.stringify({ query: mutation, variables }),\n });\n\n const data = await response.json();\n return data.data.cartLinesAdd.cart;\n};\n\nexport const fetchCart = async (cartId: string) => {\n const query = `\n query($cartId: ID!) {\n cart(id: $cartId) {\n id\n lines(first: 50) {\n edges {\n node {\n id\n quantity\n merchandise {\n ... on ProductVariant { \n id\n sku \n product{\n id\n title\n images(first: 10) {\n edges {\n node {\n src\n altText\n }\n }\n }\n } \n priceV2 {\n amount\n currencyCode\n }\n selectedOptions { \n name \n value\n }\n }\n }\n }\n }\n }\n }\n }\n `;\n\n const variables = { cartId };\n\n if (shopifyAccessToken) {\n headers['X-Shopify-Storefront-Access-Token'] = shopifyAccessToken;\n }\n\n const response = await fetch(`https://${process.env.NEXT_PUBLIC_SHOPIFY_STORE_DOMAIN}/api/2023-01/graphql.json`, {\n method: 'POST',\n headers: headers,\n body: JSON.stringify({ query, variables }),\n });\n\n const data = await response.json();\n return data.data.cart;\n};\n\nexport const updateCartLineQuantity = async (cartId: string, lineId: string, quantity: number) => {\n const mutation = `\n mutation($cartId: ID!, $lines: [CartLineUpdateInput!]!) {\n cartLinesUpdate(cartId: $cartId, lines: $lines) {\n cart {\n id\n lines(first: 5) {\n edges {\n node {\n id\n quantity\n merchandise {\n ... on ProductVariant {\n id\n product{\n title\n}\n \n priceV2 {\n amount\n currencyCode\n }\n }\n }\n }\n }\n }\n }\n }\n }\n `;\n\n const variables = {\n cartId,\n lines: [\n {\n id: lineId,\n quantity,\n },\n ],\n };\n\n const response = await fetch(`https://${process.env.NEXT_PUBLIC_SHOPIFY_STORE_DOMAIN}/api/2023-01/graphql.json`, {\n method: 'POST',\n headers: headers,\n body: JSON.stringify({ query: mutation, variables }),\n });\n\n const data = await response.json();\n return data.data.cartLinesUpdate.cart;\n};\n\nexport const clearCart = async (cartId: string) => {\n // Fetch the cart lines\n const fetchCartLinesQuery = `\n query getCartLines($cartId: ID!) {\n cart(id: $cartId) {\n id\n lines(first: 50) { # You can adjust the number of lines if needed\n edges {\n node {\n id # Get the line item ID\n }\n }\n }\n }\n }\n `;\n\n // Fetch the cart lines from Shopify\n const fetchCartLinesResponse = await fetch(`https://${process.env.NEXT_PUBLIC_SHOPIFY_STORE_DOMAIN}/api/2023-01/graphql.json`, {\n method: 'POST',\n headers: headers,\n body: JSON.stringify({\n query: fetchCartLinesQuery,\n variables: { cartId },\n }),\n });\n\n const cartData = await fetchCartLinesResponse.json();\n\n // Check if there are any cart lines and extract their IDs\n const lineIds = cartData.data.cart?.lines.edges.map((edge: any) => edge.node.id) || [];\n\n // If no cart lines are found, return immediately with the existing cart\n if (lineIds.length === 0) {\n return cartData.data.cart; // Return the existing empty cart\n }\n\n // Remove all cart lines using the cartLinesRemove mutation\n const mutation = `\n mutation($cartId: ID!, $lineIds: [ID!]!) {\n cartLinesRemove(cartId: $cartId, lineIds: $lineIds) {\n cart {\n id\n lines(first: 5) {\n edges {\n node {\n id\n }\n }\n }\n }\n }\n }\n `;\n\n // Send the request to remove all lines\n const removeCartResponse = await fetch(`https://${process.env.NEXT_PUBLIC_SHOPIFY_STORE_DOMAIN}/api/2023-01/graphql.json`, {\n method: 'POST',\n headers: headers,\n body: JSON.stringify({\n query: mutation,\n variables: {\n cartId,\n lineIds, // Pass the extracted lineIds to remove all cart items\n },\n }),\n });\n\n const removeData = await removeCartResponse.json();\n\n // Return the updated cart (or an error message if failed)\n return removeData.data.cartLinesRemove.cart;\n};\n\n\nexport const removeProductFromCart = async (cartId: string, lineId: string) => {\n const mutation = `\n mutation($cartId: ID!, $lineIds: [ID!]!) {\n cartLinesRemove(cartId: $cartId, lineIds: $lineIds) {\n cart {\n id\n lines(first: 10) {\n edges {\n node {\n id\n quantity\n merchandise {\n ... on ProductVariant {\n id\n product{\n title\n }\n priceV2 {\n amount\n currencyCode\n }\n }\n }\n }\n }\n }\n }\n userErrors {\n field\n message\n }\n }\n }\n `;\n\n const variables = {\n cartId,\n lineIds: [lineId],\n };\n\n const response = await fetch(`https://${process.env.NEXT_PUBLIC_SHOPIFY_STORE_DOMAIN}/api/2023-01/graphql.json`, {\n method: 'POST',\n headers: headers,\n body: JSON.stringify({ query: mutation, variables }),\n });\n\n const data = await response.json();\n return data.data.cartLinesRemove.cart;\n};\n\nexport const createCheckout = async (cartId: string) => {\n const mutation = `\n mutation($lineItems: [CheckoutLineItemInput!]!) {\n checkoutCreate(input: { lineItems: $lineItems }) {\n checkout {\n id\n webUrl # URL to redirect user to the checkout page\n lineItems(first:10) {\n edges {\n node {\n \n quantity\n \n }\n }\n }\n subtotalPriceV2 {\n amount\n currencyCode\n }\n }\n userErrors {\n field\n message\n }\n }\n }\n `;\n const cart = await fetchCart(cartId);\n const cartLines = cart ? cart.lines.edges : [];\n\n if (!cartLines.length) {\n throw new Error('No items found in the cart.');\n }\n\n const lineItems = cartLines.map((edge: any) => ({\n variantId: edge.node.merchandise.id,\n quantity: edge.node.quantity,\n }));\n\n const variables = {\n lineItems,\n orderStatusUrl: \"http://localhost:3000/shop\",\n };\n\n const response = await fetch(`https://${process.env.NEXT_PUBLIC_SHOPIFY_STORE_DOMAIN}/api/2023-01/graphql.json`, {\n method: 'POST',\n headers: headers,\n body: JSON.stringify({ query: mutation, variables }),\n });\n\n const data = await response.json();\n\n if (data.data.checkoutCreate.userErrors.length) {\n throw new Error(data.data.checkoutCreate.userErrors[0].message);\n }\n\n return data.data.checkoutCreate.checkout;\n};\n\n\nexport const fetchCheckoutData = async (checkoutId: string) => {\n const query = ` query checkoutQuery($checkoutId: ID!) { node(id: $checkoutId) { ... on Checkout { id completedAt lineItems(first: 10) { edges { node { title quantity } } } } } } `;\n const response = await fetch(`https://${process.env.NEXT_PUBLIC_SHOPIFY_STORE_DOMAIN}/api/2023-01/graphql.json`, {\n method: 'POST',\n headers: headers,\n body: JSON.stringify({\n query: query,\n variables: { checkoutId },\n }),\n });\n const { data } = await response.json();\n return data?.node;\n}\n","interface Product {\n productId: number;\n variantIds: number[];\n}\n\nexport const prodSlugMappings: { [key: string]: Product } = {\n book: {\n productId: 4167455015011,\n variantIds: [30318551203939, 30318551138403], //ebook,paperback\n },\n band: { productId: 6546274156643, variantIds: [39286140895331] },\n orbit: { productId: 4167630651491, variantIds: [30318615822435] },\n range: {\n productId: 6633840476259,\n variantIds: [39622385401955, 42967035674723],\n }, //white,black\n mark: {\n productId: 6878347133027,\n variantIds: [42967033872483, 42967033905251],\n }, //white,black\n set: {\n productId: 7009601257571,\n variantIds: [42967038230627, 42967038263395],\n }, //white,black\n};\n\nexport const prodValidProductIds = [\n \"gid://shopify/Product/4167455015011\",\n \"gid://shopify/Product/6633840476259\",\n \"gid://shopify/Product/6546274156643\",\n \"gid://shopify/Product/6878347133027\",\n \"gid://shopify/Product/4167630651491\",\n \"gid://shopify/Product/7009601257571\",\n];\n\nexport const prodBannerProductId = \"7009601257571\";\nexport const prodBannerVariantId = [\"42967038263395\", \"42967038230627\"]; //black,white\nexport const prodRecommendedSetProductId = \"7009601257571\";\nexport const prodRecommendedSetVariantId = [\"42967038230627\", \"42967038263395\"]; //white,black\n","import {\n devSlugMappings,\n devValidProductIds,\n devBannerProductId,\n devBannerVariantId,\n devRecommendedSetProductId,\n devRecommendedSetVariantId,\n} from \"./productConstants\";\n\nimport {\n prodSlugMappings,\n prodValidProductIds,\n prodBannerProductId,\n prodBannerVariantId,\n prodRecommendedSetProductId,\n prodRecommendedSetVariantId,\n} from \"./productionProductConstants\";\ninterface Product {\n productId: number;\n variantIds: number[];\n}\n\nlet slugMappings: { [key: string]: Product } = {};\nlet validProductIds: any;\nlet bannerProductId: any;\nlet bannerVariantId: any;\nlet recommendedSetProductId: any;\nlet recommendedSetVariantId: any;\n\nif (\n process.env.NEXT_PUBLIC_SHOPIFY_STORE_DOMAIN?.includes(\n \"dev-store.alethahealth.com\"\n )\n) {\n slugMappings = devSlugMappings;\n validProductIds = devValidProductIds;\n bannerProductId = devBannerProductId;\n bannerVariantId = devBannerVariantId;\n recommendedSetProductId = devRecommendedSetProductId;\n recommendedSetVariantId = devRecommendedSetVariantId;\n} else {\n slugMappings = prodSlugMappings;\n validProductIds = prodValidProductIds;\n bannerProductId = prodBannerProductId;\n bannerVariantId = prodBannerVariantId;\n recommendedSetProductId = prodRecommendedSetProductId;\n recommendedSetVariantId = prodRecommendedSetVariantId;\n}\n\nexport const setProductDetails = (\n slug: string,\n product: { productId?: number; variantIds?: number[] }\n) => {\n const mapping = slugMappings[slug];\n\n if (mapping) {\n product.productId = mapping.productId;\n product.variantIds = mapping.variantIds;\n }\n\n};\n\nexport {\n validProductIds,\n bannerProductId,\n bannerVariantId,\n recommendedSetProductId,\n recommendedSetVariantId,\n};\n","export const YOUTUBE_VIDEO_URL_TEMP =\n \"https://www.youtube.com/embed/cVj_Jb5NMR4?si=89biwWnHD2Ylkmms\";\n\nexport const NEXT_PUBLIC_API_BASE_URL = process.env.NEXT_PUBLIC_API_BASE_URL;\nexport const S3_HOST_NAME = process.env.NEXT_PUBLIC_S3_HOST_NAME;\nexport const S3_BASE_URL = process.env.NEXT_PUBLIC_S3_BASE_URL;\nexport const NEXT_PUBLIC_SHOPIFY_STORE_DOMAIN =\n process.env.NEXT_PUBLIC_SHOPIFY_STORE_DOMAIN;\n\nexport const HOME_PAGE_ID = 1;\nexport const SHOP_PAGE_ID = 2;\nexport const LEARN_PAGE_ID = 3;\nexport const REVALIDATE_TIME = 30;\n\nexport const FIRST_ROW = 1;\nexport const SECOND_ROW = 2;\nexport const THIRD_ROW = 3;\nexport const FOURTH_ROW = 4;\nexport const FIVFTH_ROW = 5;\nexport const SIXTH_ROW = 6;\n\nexport const PAGES = \"/pages\";\nexport const USA_REGION_ID = 2;\nexport const HOME_SLUG = \"home\";\nexport const ABOUT_US_SLUG = \"aboutus\";\nexport const USES = \"uses\";\nexport const SUBSCRIBERS = \"/subscribers\";\nexport const PRODUCT_LIST = \"/products\";\n\nexport const HOME_META_SLUG = \"home\";\nexport const ABOUT_META_SLUG = \"about\";\nexport const HOW_TO_USE_META_SLUG = \"how to\";\nexport const LEARN_META_SLUG = \"learn\";\nexport const AFFFILATES_META_SLUG = \"affilates\";\n\nexport const MANUAL_META_SLUG = \"manuals\";\nexport const PATENT_META_SLUG = \"patents\";\nexport const CONTACT_META_SLUG = \"contact\";\n\nexport const getTypes = (type: number) => {\n switch (type) {\n case 11:\n return \"Ebook\";\n case 12:\n return \"Paperback\";\n case 13:\n return \"Red\";\n case 14:\n return \"Green\";\n case 3:\n return \"Yellow\";\n case 4:\n return \"Black\";\n case 5:\n return \"White\";\n case 10:\n return \"Orange\"; // Added orange\n default:\n return \"Default Type\"; // Default message if no match\n }\n};\n","interface Product {\n productId: number;\n variantIds: number[];\n}\n\nexport const devSlugMappings: { [key: string]: Product } = {\n book: {\n productId: 9631149359380,\n variantIds: [49650942116116, 49650942083348],\n }, //ebook,paperback\n band: { productId: 9632397197588, variantIds: [49654021849364] },\n orbit: { productId: 9632397033748, variantIds: [49654020604180] },\n range: {\n productId: 9632397525268,\n variantIds: [49654022734100, 49730583757076],\n }, //white,black\n mark: {\n productId: 9631149949204,\n variantIds: [49730599584020, 49730599616788],\n }, //white,black\n set: {\n productId: 9631150244116,\n variantIds: [49730528248084, 49730528280852],\n }, //white,black\n};\n\nexport const setHrefValue = (slug: string) => {\n if (slug === \"book\") {\n return \"/book\";\n } else if (slug === \"band\") {\n return \"/band\";\n } else if (slug === \"orbit\") {\n return \"/orbit\";\n } else if (slug === \"range\") {\n return \"/range\";\n } else if (slug === \"mark\") {\n return \"/mark\";\n }\n};\n\nexport const devValidProductIds = [\n \"gid://shopify/Product/9631149949204\",\n \"gid://shopify/Product/9632397033748\",\n \"gid://shopify/Product/9632397197588\",\n \"gid://shopify/Product/9632397525268\",\n \"gid://shopify/Product/9631149359380\",\n \"gid://shopify/Product/9631150244116\",\n];\n\nexport const devBannerProductId = \"9631150244116\";\nexport const devBannerVariantId = [\"49730528280852\", \"49730528248084\"]; //black,white\nexport const devRecommendedSetProductId = \"9631150244116\";\nexport const devRecommendedSetVariantId = [\"49730528248084\", \"49730528280852\"]; //white,black\n"],"names":["CartContext","createContext","undefined","CartProvider","children","itemCount","setItemCount","useState","cart","setCart","useEffect","CURRENT_STORE_DOMAIN","NEXT_PUBLIC_SHOPIFY_STORE_DOMAIN","savedDomain","localStorage","getItem","removeItem","setItem","async","storedData","cartId","checkoutid","JSON","parse","updatedCart","fetchCart","lines","newCart","createCart","stringify","checkoutId","edges","reduce","total","edge","node","quantity","checkout","fetchCheckoutData","completedAt","fetchCartData","Provider","value","useCart","context","useContext","Error","shopifyAccessToken","process","headers","fetchProducts","response","fetch","method","body","query","json","data","products","filter","productEdge","product","validProductIds","includes","id","cartCreate","addProductToCart","variantId","variables","merchandiseId","cartLinesAdd","updateCartLineQuantity","lineId","cartLinesUpdate","clearCart","cartData","fetchCartLinesResponse","lineIds","map","length","removeCartResponse","cartLinesRemove","removeProductFromCart","createCheckout","cartLines","lineItems","merchandise","orderStatusUrl","checkoutCreate","userErrors","message","prodSlugMappings","book","productId","variantIds","band","orbit","range","mark","set","prodValidProductIds","prodBannerVariantId","prodRecommendedSetVariantId","bannerProductId","bannerVariantId","recommendedSetProductId","recommendedSetVariantId","slugMappings","devSlugMappings","devValidProductIds","devBannerProductId","devBannerVariantId","devRecommendedSetProductId","devRecommendedSetVariantId","setProductDetails","slug","mapping","NEXT_PUBLIC_API_BASE_URL","S3_BASE_URL","USA_REGION_ID","PRODUCT_LIST","getTypes","type","setHrefValue"],"sourceRoot":""}