{"version":3,"sources":["utils.js","backend/api.js","static/images/logo.png","components/header/index.jsx","components/landing/index.jsx","components/newsletter/index.jsx","components/dashboard/index.jsx","components/tracking/index.js","components/search/order.jsx","components/notification/success.jsx","components/partials/Timer.jsx","components/partials/Maintenance.jsx","App.js","icons.js","index.js","static/css/button.module.css","static/css/header.module.css","Socket.js","state/selectors.js","static/css/modal.module.css","static/css/newsletter.module.css","static/css/tracking.module.css","static/css/order.module.css","state/atoms.js","static/css/app.module.css","static/css/maintenance.module.css","components/partials/Modal.jsx","static/css/landing.module.css","static/css/notification.module.css"],"names":["display2Decimal","number","Math","round","display7Decimal","pad","n","ucfirst","str","charAt","toUpperCase","slice","mapByKeys","obj","Object","keys","PUBLIC_URI","window","location","hostname","ajaxRequest","getProducts","async","data","axios","get","concat","map","key","addOrdersIntoPending","post","order","getCurrency","getPendingOrder","transaction_id","subscribeToNewsLetter","email","getRate","cancel","CancelToken","source","information","cancelToken","token","getOrder","id","getBitfinexOrderId","getSettings","Header","stopTimer","showLinks","setShowLinks","useState","isMobile","inputIdRef","useRef","cart","setCart","useRecoilState","CartState","checkoutStatus","setCheckoutStatus","CheckoutState","cartquantity","useRecoilValue","CartQuantitySelector","timer","TimerSelector","useLocation","history","useHistory","showBadge","pathname","includes","showCart","showOrderSearch","showTimer","undefined","hours","seconds","showHeader","useEffect","current","value","_jsxs","className","styles","HeaderMobile","children","logoContainer","_jsx","Link","to","logo","src","Logo","alt","controlContainer","style","display","buttonStyles","transparent","onClick","handleMainSiteClick","href","FontAwesomeIcon","icon","target","rel","form","method","onSubmit","e","preventDefault","push","type","name","placeholder","ref","size","minutes","handleCartClick","cartLogo","badge","burger","Landing","spin","NewsLetter","register","handleSubmit","setValue","clearErrors","formState","errors","useForm","isProcessing","setIsProccessing","modal","setModal","ModalState","newsLetterMessage","NewsLetterMessageSelector","showNewsLetterMessage","length","handleOnSubmit","toast","success","response","info","error","Modal","title","top","show","handleOnClose","modalFunctions","_errors$email","_errors$email2","NewsletterMobile","Newsletter","required","validate","isEmail","v","test","String","toLowerCase","disabled","Products","lazy","Checkout","Cart","DashBoard","match","restartTimer","products","setProducts","ProductsState","currency","setCurrency","CurrencyState","handleGetCurrency","nextProductsState","produce","draft","product","handleSetProducts","ToastContainer","hideProgressBar","position","closeOnClick","autoClose","limit","transition","Flip","closeButton","Suspense","fallback","Route","exact","path","component","render","props","Tracking","_mapByKeys","isLoading","setIsLoading","status","setStatus","setOrder","useParams","broadcast_server","connected","on","txid","confirmations","Redirect","TrackingMobile","hasOwnProperty","_Fragment","groupOfProducts","item","selectedColor","quantity","_id","Order","handleSearchOrder","statusMessage","message","color","getStatusMessage","OrderMobile","order_id","first_name","last_name","address1","address2","city","region","country","postal_code","Success","Timer","setSeconds","setTimer","TimerState","startTimer","timerId","setInterval","duration","intervalToDuration","start","end","localSeconds","clearInterval","default_timer","canPurchase","scrollTo","days","months","years","alert","reload","addTime","Maintenance","App","settings","setSettings","SettingsState","handleGetSettings","maintenance","AppMobile","Router","Switch","OrderSearch","Dashboard","library","add","faShoppingCart","faCartPlus","faPlusCircle","faMinusCircle","faWindowClose","faCheckCircle","faTimesCircle","faSpinner","faQuestionCircle","faHome","faArrowCircleDown","faArrowCircleUp","faSearch","ReactDOM","React","StrictMode","RecoilRoot","Socket","document","getElementById","module","exports","BROADCAST_SERVER_URL","io","transports","forceNew","secure","reconnect","rejectUnauthorized","isSocketErrorDisplayed","setIsSocketErrorDisplayed","displayError","emit","default_cart","setTimeout","connect","console","log","ProductsSelector","selector","CartSelector","forEach","CurrencySelector","NewsLetterMessageState","ModalSelector","SettingsSelector","customAlphabet","nanoid","currencyConversion","subTotal","grandTotal","shippingFee","isShippingFeePaid","isEmailSent","currencyUsed","atom","default","elastos","customStyles","content","left","right","bottom","marginRight","transform","width","padding","overlay","backgroundColor","ModalComponent","showClose","modalIsOpen","setIsOpen","closeModal","isOpen","contentLabel","ariaHideApp","modalHeaderMobile","modalHeader","btnStyles","btnClose","modalBody","openModal","ModalContainer","createPortal"],"mappings":"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","file":"static/js/main.85bd6bb5.chunk.js","sourcesContent":["export const display2Decimal = (number) => Math.round(number * 1e2) / 1e2\nexport const display7Decimal = (number) => Math.round(number * 1e7) / 1e7\nexport const displayNoDecimal = (number) => Math.round(number * 1e1) / 1e1\nexport const pad = (n) => (n < 10 ? \"0\" + n : n)\nexport const ucfirst = (str) => {\n if (typeof str !== \"string\") {\n return str\n }\n\n return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\nexport const mapByKeys = (obj) => {\n return Object.keys(obj)\n}\n","import axios from \"axios\"\nexport const PUBLIC_URI = \"https://\" + window.location.hostname + \"/backend/\"\nlet ajaxRequest = null\nexport const getProducts = async () => {\n const { data } = await axios.get(`${PUBLIC_URI}products`)\n const products = Object.keys(data).map((key) => data[key])\n return products\n}\nexport const addOrdersIntoPending = async (order) => {\n const { data } = await axios.post(`${PUBLIC_URI}store`, order)\n return data\n}\nexport const getCurrency = async () => {\n const { data } = await axios.get(`${PUBLIC_URI}currency`)\n return data\n}\nexport const getPendingOrder = async (transaction_id) => {\n const { data } = await axios.get(`${PUBLIC_URI}tracking/${transaction_id}`)\n return data\n}\nexport const subscribeToNewsLetter = async (email) => {\n const { data } = await axios.post(`${PUBLIC_URI}newsletter/`, { email })\n return data\n}\nexport const getRate = async (information) => {\n if (ajaxRequest) {\n ajaxRequest.cancel()\n }\n ajaxRequest = axios.CancelToken.source()\n const { data } = await axios.post(`${PUBLIC_URI}rates/`, information, {\n cancelToken: ajaxRequest.token,\n })\n return data\n}\nexport const getOrder = async (id) => {\n if (ajaxRequest) {\n ajaxRequest.cancel()\n }\n ajaxRequest = axios.CancelToken.source()\n const { data } = await axios.post(\n `${PUBLIC_URI}order/search/`,\n { id },\n {\n cancelToken: ajaxRequest.token,\n }\n )\n return data\n}\nexport const getBitfinexOrderId = async (order) => {\n if (ajaxRequest) {\n ajaxRequest.cancel()\n }\n ajaxRequest = axios.CancelToken.source()\n const { data } = await axios.post(\n `${PUBLIC_URI}bitfinex/create_invoice/`,\n { order },\n {\n cancelToken: ajaxRequest.token,\n }\n )\n return data\n}\n\nexport const getSettings = async ()=>{\n if (ajaxRequest) {\n ajaxRequest.cancel()\n }\n ajaxRequest = axios.CancelToken.source()\n const { data } = await axios.get(\n `${PUBLIC_URI}settings/`,\n {\n cancelToken: ajaxRequest.token,\n }\n )\n return data \n}","export default __webpack_public_path__ + \"static/media/logo.603ecccc.png\";","import React, { useState, useRef, useEffect } from \"react\"\nimport { Link, useLocation, useHistory } from \"react-router-dom\"\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\"\nimport { isMobile } from \"react-device-detect\"\nimport { useRecoilState, useRecoilValue } from \"recoil\"\nimport { CartQuantitySelector, TimerSelector } from \"state/selectors\"\nimport { pad } from \"utils\"\nimport Logo from \"static/images/logo.png\"\nimport buttonStyles from \"static/css/button.module.css\"\nimport styles from \"static/css/header.module.css\"\nimport { CartState, CheckoutState } from \"state/atoms\"\nconst Header = ({ stopTimer }) => {\n const [showLinks, setShowLinks] = useState(isMobile ? false : true)\n const inputIdRef = useRef(null)\n const [cart, setCart] = useRecoilState(CartState)\n const [checkoutStatus, setCheckoutStatus] = useRecoilState(CheckoutState)\n const cartquantity = useRecoilValue(CartQuantitySelector)\n const timer = useRecoilValue(TimerSelector)\n const location = useLocation()\n const history = useHistory()\n const showBadge = cartquantity > 0 && !location.pathname.includes(\"checkout\")\n const showCart = !location.pathname.includes(\"checkout\")\n const showOrderSearch = !location.pathname.includes(\"checkout\")\n const showTimer =\n timer.hours !== undefined &&\n timer.seconds !== undefined &&\n cartquantity > 0 &&\n location.pathname.includes(\"checkout\")\n let showHeader =\n !location.pathname.includes(\"/tracking\") &&\n !location.pathname.includes(\"/order/success\")\n const handleMainSiteClick = () => {\n setCheckoutStatus(false)\n window.location.href = \"https://www.elabox.com/\"\n }\n const handleCartClick = () => {\n history.push(\"/cart\")\n }\n const handleSearchOrder = (e) => {\n e.preventDefault()\n history.push(`/order/search/${inputIdRef.current.value}`)\n }\n useEffect(() => {\n if (!location.pathname.includes(\"order/search\")) {\n if (inputIdRef.current) {\n inputIdRef.current.value = \"\"\n }\n }\n }, [location.pathname])\n if (!showHeader) {\n return null\n }\n return (\n
\n
\n
\n

Beta

\n \n \"Elabox\n \n
\n \n \n \n Main Site\n \n \n \n \n {showOrderSearch && (\n \n \n \n \n )}\n
\n
\n {showTimer && (\n
\n {pad(timer.minutes)}:{pad(timer.seconds)}\n
\n )}\n {showCart && (\n \n )}\n\n {showBadge && (\n \n {cartquantity > 9 ? \"9+\" : cartquantity}\n \n )}\n {isMobile && (\n {\n setShowLinks(!showLinks)\n }}\n />\n )}\n \n )\n}\nexport default Header\n","import React from \"react\"\nimport Logo from \"static/images/logo.png\"\nimport styles from \"static/css/landing.module.css\"\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\"\nexport default function Landing() {\n return (\n
\n \n
\n )\n}\n","import { useState } from \"react\"\nimport { useForm } from \"react-hook-form\"\nimport Modal from \"components/partials/Modal\"\nimport { useRecoilState, useRecoilValue } from \"recoil\"\nimport { ModalState } from \"state/atoms\"\nimport styles from \"static/css/newsletter.module.css\"\nimport buttonStyles from \"static/css/button.module.css\"\nimport { subscribeToNewsLetter } from \"backend/api\"\nimport { toast } from \"react-toastify\"\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\"\nimport { NewsLetterMessageSelector } from \"state/selectors\"\nimport { isMobile } from \"react-device-detect\"\nexport default function NewsLetter() {\n const {\n register,\n handleSubmit,\n setValue,\n clearErrors,\n formState: { errors },\n } = useForm({})\n const [isProcessing, setIsProccessing] = useState(false)\n const [modal, setModal] = useRecoilState(ModalState)\n const newsLetterMessage = useRecoilValue(NewsLetterMessageSelector)\n const showNewsLetterMessage = newsLetterMessage?.length > 0\n const handleOnClose = () => {\n setModal(\"\")\n setValue(\"email\", \"\")\n clearErrors()\n }\n const handleOnSubmit = async (data) => {\n try {\n setIsProccessing(true)\n await subscribeToNewsLetter(data.email)\n toast.success(\"Email confirmation sent. Check your Inbox\")\n } catch ({ response }) {\n if (response.data.includes(\"Email already subscribed\")) {\n toast.info(response.data)\n } else {\n toast.error(response.data)\n }\n } finally {\n setIsProccessing(false)\n }\n }\n return (\n
\n \n {(modalFunctions) => (\n \n

You want this option?

\n {showNewsLetterMessage &&

{newsLetterMessage}

}\n
\n {\n const re =\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\n return re.test(String(v).toLowerCase())\n },\n },\n })}\n />\n {errors.email?.type === \"required\" && (\n This field is required\n )}\n {errors.email?.type === \"isEmail\" && (\n Valid email is required\n )}\n \n {isProcessing ? (\n \n ) : (\n \"Subscribe\"\n )}\n \n \n
\n )}\n \n \n )\n}\n","import React, { Suspense, useEffect, lazy } from \"react\"\nimport { Route } from \"react-router-dom\"\nimport { useRecoilState } from \"recoil\"\nimport { ToastContainer, Flip } from \"react-toastify\"\nimport produce from \"immer\"\nimport { getCurrency } from \"backend/api\"\nimport { getProducts } from \"backend/api\"\nimport { CurrencyState, ProductsState } from \"state/atoms\"\nimport Landing from \"components/landing\"\nimport NewsLetter from \"components/newsletter\"\nimport { display2Decimal } from \"utils\"\nconst Products = lazy(() => import(\"components/dashboard/products\"))\nconst Checkout = lazy(() => import(\"components/dashboard/checkout\"))\nconst Cart = lazy(() => import(\"components/dashboard/cart\"))\nexport default function DashBoard({ match, restartTimer, stopTimer }) {\n const [products, setProducts] = useRecoilState(ProductsState)\n const [currency, setCurrency] = useRecoilState(CurrencyState)\n useEffect(() => {\n const handleGetCurrency = async () => {\n const currency = await getCurrency()\n setCurrency(currency)\n }\n handleGetCurrency()\n }, [])\n useEffect(() => {\n const handleSetProducts = async () => {\n const products = await getProducts()\n const nextProductsState = produce(products, (draft) => {\n draft = draft.map((product) => {\n if (product.name === \"Elabox\") {\n product[\"selectedColor\"] = \"Black & White\"\n }\n return product\n })\n })\n setProducts(nextProductsState)\n }\n handleSetProducts()\n }, [])\n return (\n
\n \n \n }>\n \n \n (\n \n )}\n />\n \n
\n )\n}\n","import { useEffect, useState } from \"react\"\nimport { Redirect, useParams } from \"react-router-dom\"\nimport { isMobile } from \"react-device-detect\"\nimport { getPendingOrder } from \"backend/api\"\nimport { broadcast_server } from \"Socket\"\nimport { ucfirst, mapByKeys } from \"utils\"\nimport styles from \"static/css/tracking.module.css\"\nimport Landing from \"components/landing\"\nexport default function Tracking() {\n const [isLoading, setIsLoading] = useState(true)\n const [status, setStatus] = useState({})\n const [order, setOrder] = useState({})\n const { transaction_id } = useParams()\n useEffect(() => {\n const getOrder = async () => {\n const order = await getPendingOrder(transaction_id)\n setOrder(order)\n }\n if (broadcast_server.connected) {\n getOrder()\n }\n broadcast_server.on(\"connect\", async () => {\n getOrder()\n })\n broadcast_server.on(\"transaction_status\", async (data) => {\n if (data.txid === transaction_id) {\n if (data.status === \"processing\" || data.status === \"completed\") {\n const order = await getPendingOrder(transaction_id)\n setOrder(order)\n setStatus(data)\n setIsLoading(false)\n }\n }\n })\n }, [])\n if (status.confirmations > 1 || order.status === \"completed\") {\n return \n }\n if (isLoading) {\n return \n }\n return (\n
\n

\n {order.hasOwnProperty(\"status\") &&\n (order.status === \"failed\" ||\n order.status === \"processing\" ||\n order.status === \"completed\") ? (\n <>\n Transaction ID: {transaction_id}\n Status: {ucfirst(order.status)}\n \n Confirmations:{\" \"}\n {!status.hasOwnProperty(\"confirmations\")\n ? 0\n : status.confirmations}\n \n Items:\n {order.groupOfProducts &&\n mapByKeys(order.groupOfProducts)?.map((key) => {\n const products = order.groupOfProducts[key]\n return products.map((product) => {\n return (\n \n {product.name} ({product.selectedColor}) X{\" \"}\n {product.quantity}\n \n )\n })\n })}\n \n ) : (\n <>\n Not Found\n \n )}\n

\n
\n )\n}\n","import { useEffect, useState } from \"react\"\nimport { useParams } from \"react-router-dom\"\nimport { getOrder } from \"backend/api\"\nimport { ucfirst, mapByKeys } from \"utils\"\nimport styles from \"static/css/order.module.css\"\nimport Landing from \"components/landing\"\nimport { isMobile } from \"react-device-detect\"\nexport default function Order() {\n const [isLoading, setIsLoading] = useState(true)\n const [order, setOrder] = useState({})\n const { id } = useParams()\n const getStatusMessage = (status) => {\n let message = \"\"\n switch (status) {\n case \"completed\":\n message =

Status: Completed

\n break\n case \"processing\":\n message =

Status: Processing

\n break\n case \"waiting_for_txtid\":\n message =

Status: Waiting for transaction id

\n break\n case \"failed\":\n message = (\n <>\n

\n We found your Order, but payment transaction details are missing.\n

\n

\n If this was already paid, Please email{\" \"}\n \n contact@elabox.com\n {\" \"}\n to notify us\n

\n \n )\n break\n case \"cancelled\":\n message = (\n <>\n

\n We found your Order, but payment transaction details are missing.\n

\n

\n If this was already paid, Please email{\" \"}\n \n contact@elabox.com\n {\" \"}\n to notify us\n

\n \n )\n break\n default:\n break\n }\n return message\n }\n useEffect(() => {\n const handleSearchOrder = async () => {\n const order = await getOrder(id)\n setOrder(order)\n setIsLoading(false)\n }\n handleSearchOrder()\n }, [id])\n const statusMessage = getStatusMessage(order.status)\n if (isLoading) {\n return \n }\n return (\n
\n
\n {order.hasOwnProperty(\"status\") &&\n (order.status === \"pending\" ||\n order.status === \"processing\" ||\n order.status === \"waiting_for_txtid\" ||\n order.status === \"completed\") ? (\n <>\n

Order ID: {order.order_id}

\n

Transaction ID: {order.transaction_id}

\n

\n Name: {ucfirst(order.info.first_name)}{\" \"}\n {ucfirst(order.info.last_name)}\n

\n {statusMessage}\n

\n Address: {order.info.address1},{order.info.address2}\n
\n {order.info.city},{order.info.region},{order.info.country},\n {order.info.postal_code}\n

\n {/*

Status: {ucfirst(order.status)}

*/}\n

Items:

\n {order.groupOfProducts &&\n mapByKeys(order.groupOfProducts)?.map((key) => {\n const products = order.groupOfProducts[key]\n return products.map((product) => {\n return (\n

\n {product.name} ({product.selectedColor}) X{\" \"}\n {product.quantity}\n

\n )\n })\n })}\n \n ) : (\n <>\n {order.status === \"cancelled\" || order.status === \"failed\" ? (\n statusMessage\n ) : (\n

Not Found

\n )}\n \n )}\n
\n
\n )\n}\n","import React from 'react'\nimport { Link } from 'react-router-dom'\nimport styles from 'static/css/notification.module.css'\nimport buttonStyles from 'static/css/button.module.css'\nexport default function Success() {\n return (\n
\n

This order is completed

\n

We sent an email to you.

\n \n \n \n
\n )\n}\n","import { useEffect, useState } from 'react'\nimport { intervalToDuration } from 'date-fns'\nimport { broadcast_server } from 'Socket'\nimport { useRecoilState } from 'recoil'\nimport {\n CartState,\n TimerState,\n default_timer,\n CheckoutState,\n} from 'state/atoms'\nexport default function Timer({ children }) {\n const [seconds, setSeconds] = useState(300)\n const [timer, setTimer] = useRecoilState(TimerState)\n const [cart, setCart] = useRecoilState(CartState)\n const [checkoutStatus, setCheckoutStatus] = useRecoilState(CheckoutState)\n const startTimer = async (localSeconds) => {\n window.timerId = setInterval(() => {\n const duration = intervalToDuration({\n start: 0,\n end: localSeconds * 1000,\n })\n setTimer(duration)\n localSeconds -= 1\n setSeconds(localSeconds)\n }, 1000)\n }\n const restartTimer = () => {\n let addTime = seconds + 300\n if (addTime > 600) {\n addTime = 600\n }\n clearInterval(window.timerId)\n startTimer(addTime)\n }\n const stopTimer = () => {\n clearInterval(window.timerId)\n setTimer(default_timer)\n }\n useEffect(() => {\n if (broadcast_server.connected) {\n setCart({ ...cart, canPurchase: true })\n }\n broadcast_server.on('connect', () => {\n setCart({ ...cart, canPurchase: true })\n })\n }, [])\n useEffect(() => {\n if (window.location.href.includes('checkout')) {\n startTimer(seconds)\n } else {\n stopTimer()\n }\n window.scrollTo(0, 0)\n }, [window.location.href])\n useEffect(() => {\n const { days, hours, minutes, months, seconds, years } = timer\n if (\n days === 0 &&\n hours === 0 &&\n minutes === 0 &&\n months === 0 &&\n seconds === 0 &&\n years === 0\n ) {\n alert('Time is up! You failed to complete this order.')\n if (cart) {\n setCheckoutStatus(false)\n }\n window.location.reload()\n }\n }, [timer])\n return children({ restartTimer, stopTimer })\n}\n","import React from 'react'\nimport styles from \"static/css/maintenance.module.css\"\nimport Logo from \"static/images/logo.png\"\nexport default function Maintenance() {\n return (\n
\n \"Elabox\n

Maintenance

\n
\n )\n}\n","import {useEffect,useState} from \"react\"\nimport { BrowserRouter as Router, Switch, Route } from \"react-router-dom\"\nimport { isMobile } from \"react-device-detect\"\nimport {useRecoilState} from \"recoil\"\nimport Header from \"components/header\"\nimport Dashboard from \"components/dashboard\"\nimport Tracking from \"components/tracking\"\nimport OrderSearch from \"components/search/order\"\nimport Success from \"components/notification/success\"\nimport styles from \"static/css/app.module.css\"\nimport Timer from \"components/partials/Timer\"\nimport { SettingsState } from \"state/atoms\"\nimport { getSettings } from \"backend/api\"\nimport Maintenance from \"components/partials/Maintenance\"\nimport Landing from \"components/landing\"\nfunction App() {\n const [isLoading, setIsLoading] = useState(true)\n const [settings, setSettings] = useRecoilState(SettingsState)\n useEffect(() => {\n const handleGetSettings= async ()=>{\n const settings = await getSettings()\n setSettings(settings)\n setIsLoading(false)\n }\n handleGetSettings()\n }, [])\n if(isLoading){\n return \n }\n if(settings.maintenance){\n return \n }\n return (\n
\n \n {\n \n {({ restartTimer, stopTimer }) => (\n <>\n
\n \n \n \n \n (\n \n )}\n />\n \n \n )}\n \n }\n \n
\n )\n}\n\nexport default App\n","import { library } from \"@fortawesome/fontawesome-svg-core\"\nimport {\n faShoppingCart,\n faCartPlus,\n faPlusCircle,\n faMinusCircle,\n faWindowClose,\n faCheckCircle,\n faTimesCircle,\n faSpinner,\n faQuestionCircle,\n faHome,\n faArrowCircleDown,\n faArrowCircleUp,\n faSearch,\n} from \"@fortawesome/free-solid-svg-icons\"\nexport default function InitializeIcon() {\n library.add(\n faShoppingCart,\n faCartPlus,\n faPlusCircle,\n faMinusCircle,\n faWindowClose,\n faCheckCircle,\n faTimesCircle,\n faSpinner,\n faQuestionCircle,\n faHome,\n faArrowCircleDown,\n faArrowCircleUp,\n faSearch\n )\n}\n","import React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport { RecoilRoot } from \"recoil\"\nimport initIcons from \"icons\"\nimport Socket from \"Socket\"\nimport \"static/css/index.css\"\nimport \"react-toastify/dist/ReactToastify.css\"\nimport App from \"./App\"\n// import reportWebVitals from './reportWebVitals'\ninitIcons()\nReactDOM.render(\n \n \n \n \n \n \n ,\n document.getElementById(\"root\")\n)\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\n// reportWebVitals()\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"transparent\":\"button_transparent__2X5pm\",\"info\":\"button_info__W8dHW\",\"light\":\"button_light__HfI4N\",\"danger\":\"button_danger__16ajd\",\"default\":\"button_default__2rvsl\",\"block\":\"button_block__1PnMv\",\"disabled\":\"button_disabled__3nl3V\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Header\":\"header_Header__1hmiM\",\"logo\":\"header_logo__6pbmi\",\"cartLogo\":\"header_cartLogo__cue3E\",\"badge\":\"header_badge__xvE9h\",\"timer\":\"header_timer__6_mqI\",\"logoContainer\":\"header_logoContainer__1OFQh\",\"controlContainer\":\"header_controlContainer__3uQ7q\",\"form\":\"header_form__10k1G\",\"HeaderMobile\":\"header_HeaderMobile__1R18_\",\"burger\":\"header_burger__3DaqT\"};","import { useEffect, useState } from 'react'\nimport { toast } from 'react-toastify'\nimport io from 'socket.io-client'\nimport { default_cart } from 'state/atoms'\nconst BROADCAST_SERVER_URL = window.location.hostname\nexport const broadcast_server = io(BROADCAST_SERVER_URL, {\n transports: ['websocket'],\n forceNew: true,\n secure: true,\n reconnect: true,\n rejectUnauthorized: false,\n path: '/broadcast',\n})\nfunction Socket({ children }) {\n const [isSocketErrorDisplayed, setIsSocketErrorDisplayed] = useState(false)\n const displayError = () => {\n if (!isSocketErrorDisplayed) {\n toast.error('Connection error. Please refresh the page.')\n setIsSocketErrorDisplayed(true)\n }\n }\n useEffect(() => {\n broadcast_server.on('connect', () => {\n broadcast_server.emit('subscribe', default_cart.order_id)\n })\n broadcast_server.on('connect_error', () => {\n displayError()\n setTimeout(() => {\n broadcast_server.connect()\n }, 1000)\n })\n broadcast_server.on('disconnect', () => {\n console.log('broadcast server disconnected')\n displayError()\n broadcast_server.emit('unsubscribe', default_cart.order_id)\n })\n }, [])\n return children\n}\nexport default Socket\n","import { selector } from 'recoil'\nimport {\n CartState,\n CurrencyState,\n ModalState,\n NewsLetterMessageState,\n ProductsState,\n TimerState,\n} from 'state/atoms'\nimport { mapByKeys } from 'utils'\nexport const ProductsSelector = selector({\n key: 'ProductsSelector', // unique ID (with respect to other atoms/selectors)\n get: async ({ get }) => {\n const products = get(ProductsState)\n return products\n },\n})\nexport const CartSelector = selector({\n key: 'CartSelector',\n get: ({ get }) => {\n const cart = get(CartState)\n return cart\n },\n})\nexport const CartQuantitySelector = selector({\n key: 'CartQuantitySelector',\n get: ({ get }) => {\n const cart = get(CartState)\n let quantity = 0\n mapByKeys(cart.groupOfProducts).map((key) => {\n const products = cart.groupOfProducts[key]\n products.forEach((product) => {\n quantity += product.quantity\n })\n })\n return quantity\n },\n})\n\nexport const TimerSelector = selector({\n key: 'TimerSelector',\n get: ({ get }) => {\n return get(TimerState)\n },\n})\nexport const CurrencySelector = selector({\n key: 'CurrencySelector',\n get: ({ get }) => {\n return get(CurrencyState)\n },\n})\nexport const NewsLetterMessageSelector=selector({\n key:\"NewsLetterMessageSelector\",\n get:({get})=>{\n return get(NewsLetterMessageState)\n }\n})\n\nexport const ModalSelector = selector({\n key:\"ModalSelector\",\n get:({get})=>{\n return get(ModalState)\n }\n})\n\nexport const SettingsSelector = selector({\n key:\"SettingsSelector\",\n get:({get})=>{\n return get(SettingsSelector)\n }\n})","// extracted by mini-css-extract-plugin\nmodule.exports = {\"modalHeader\":\"modal_modalHeader__3WtSs\",\"modalBody\":\"modal_modalBody__2i7HS\",\"btnClose\":\"modal_btnClose__1oJzt\",\"errorMessage\":\"modal_errorMessage__LoDl_\",\"modalHeaderMobile\":\"modal_modalHeaderMobile__dOzki\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"error\":\"newsletter_error__3Tlu8\",\"Newsletter\":\"newsletter_Newsletter__rUX60\",\"NewsletterMobile\":\"newsletter_NewsletterMobile__1DNYe\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Tracking\":\"tracking_Tracking__2bPdL\",\"logo\":\"tracking_logo__3Uf_L\",\"status\":\"tracking_status__1QyFv\",\"item\":\"tracking_item__1E3js\",\"TrackingMobile\":\"tracking_TrackingMobile__1MIDG\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Order\":\"order_Order__2y9aR\",\"logo\":\"order_logo__38ET3\",\"status\":\"order_status__3EwsX\",\"item\":\"order_item__bqXfr\",\"OrderMobile\":\"order_OrderMobile__1bIdd\"};","import { atom } from \"recoil\"\nimport { customAlphabet } from \"nanoid\"\nconst nanoid = customAlphabet(\n \"0123456789ABCDEFGHJKLMNOPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\",\n 10\n)\nexport const default_cart = {\n order_id: nanoid(),\n transaction_id: \"\",\n currencyConversion: {},\n info: {},\n groupOfProducts: {},\n subTotal: 0.0,\n grandTotal: 0.0,\n shippingFee: 0.0,\n canPurchase: false,\n isShippingFeePaid: false,\n isEmailSent: false,\n currencyUsed: \"USD\",\n}\nexport const default_timer = {\n days: undefined,\n hours: undefined,\n minutes: undefined,\n months: undefined,\n seconds: undefined,\n years: undefined,\n}\nexport const ProductsState = atom({\n key: \"ProductsState\", // unique ID (with respect to other atoms/selectors)\n default: [], // default value (aka initial value)\n})\nexport const CartState = atom({\n key: \"CartState\",\n default: default_cart,\n})\n\nexport const TimerState = atom({\n key: \"TimerState\",\n default: default_timer,\n})\nexport const CurrencyState = atom({\n key: \"CurrencyState\",\n default: {\n elastos: 0,\n },\n})\nexport const ModalState = atom({\n key: \"ModalState\",\n default: \"\",\n})\n\nexport const AddressState = atom({\n key: \"AddressState\",\n default: \"processing\",\n})\n\nexport const CheckoutState = atom({\n key: \"CheckoutState\",\n default: false,\n})\nexport const NewsLetterMessageState = atom({\n key: \"NewsLetterMessageState\",\n default: \"\",\n})\n\nexport const SettingsState = atom({\n key:\"SettingsState\",\n default:{\n maintenance: false\n } \n})","// extracted by mini-css-extract-plugin\nmodule.exports = {\"App\":\"app_App__2qw4I\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Maintenance\":\"maintenance_Maintenance__olkeD\",\"Logo\":\"maintenance_Logo__3KNaE\"};","import React, { useState, useEffect } from \"react\"\nimport ReactDOM from \"react-dom\"\nimport Modal from \"react-modal\"\nimport { isMobile } from \"react-device-detect\"\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\"\nimport styles from \"static/css/modal.module.css\"\nimport btnStyles from \"static/css/button.module.css\"\nconst customStyles = {\n content: {\n top: \"50%\",\n left: \"50%\",\n right: \"auto\",\n bottom: \"auto\",\n marginRight: \"-50%\",\n transform: \"translate(-50%, -50%)\",\n width: isMobile ? \"80%\" : \"50%\",\n padding: \"0\",\n },\n overlay: {\n backgroundColor: \"rgba(46, 49, 49, 0.60)\",\n },\n}\nexport function ModalComponent({\n title,\n show,\n top,\n children,\n handleOnClose,\n showClose = true,\n}) {\n const [modalIsOpen, setIsOpen] = useState(false)\n useEffect(() => {\n setIsOpen(show)\n }, [show])\n function openModal() {\n setIsOpen(true)\n }\n\n function closeModal() {\n setIsOpen(false)\n handleOnClose()\n }\n\n return (\n \n
\n

{title}

\n {showClose && (\n \n \n \n )}\n
\n
\n {children({ openModal, closeModal })}\n
\n \n )\n}\nexport default function ModalContainer({\n title,\n show,\n top = \"50%\",\n children,\n handleOnClose,\n showClose,\n}) {\n return ReactDOM.createPortal(\n ,\n document.getElementById(\"modal\")\n )\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Landing\":\"landing_Landing__2UGY6\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"Success\":\"notification_Success__3Ra-p\",\"logo\":\"notification_logo__16OQf\"};"],"sourceRoot":""}