{"version":3,"sources":["redux/actions/wishlistActions.js","services/auth.js","redux/actions/compareActions.js","hooks/use-fetch.js","helpers/pathWithQueryString.js","services/product.js","context/UserContext.js","hooks/use-state-storage.js","services/http.js","utils/url.js","redux/reducers/currencyReducer.js","redux/actions/currencyActions.js","redux/reducers/productReducer.js","redux/actions/productActions.js","redux/reducers/cartReducer.js","redux/reducers/wishlistReducer.js","redux/reducers/categoryReducer.js","redux/actions/categoryAction.js","redux/reducers/compareReducer.js","redux/reducers/rootReducer.js","helpers/scroll-top.js","components/PrivateRoute.js","App.js","serviceWorker.js","index.js","redux/actions/cartActions.js","components/Loader/index.js","context/Loading.js"],"names":["ADD_TO_WISHLIST","DELETE_FROM_WISHLIST","DELETE_ALL_FROM_WISHLIST","addToWishlist","item","addToast","dispatch","appearance","autoDismiss","type","payload","deleteFromWishlist","deleteAllFromWishlist","registerUser","a","tryCatch","http","post","REGISTER_URL","error","result","data","loginUser","LOGIN_URL","refreshToken","REFRESH_TOKEN_URL","getCustomer","GET_USER_URL","ADD_TO_COMPARE","DELETE_FROM_COMPARE","addToCompare","deleteFromCompare","useFetch","fetcher","defaultValue","setLoading","noop","deps","reloadDeps","useState","setData","fetch","useCallback","useEffect","pathWithQueryString","path","params","Object","queryString","keys","map","key","join","replace","config","headers","getHomeProducts","HOME_PRODUCT_URL","productDetail","id","get","PRODUCT_URL","getProducts","console","log","GET_PRODUCTS_URL","getAllCategories","GET_CATEGORIES_URL","getProductAttributeDefinitions","GET_PRODUCT_ATTRIBUTE_DEFINITIONS_URL","getProductAttributeValues","GET_PRODUCT_ATTRIBUTE_VALUES_URL","getCityes","GET_CITYES","getDistricts","GET_DISTRICTS","addProduct","ADD_PRODUCT_URL","uploadProductImage","formData","url","UPLOAD_IMAGE_URL","UserContext","createContext","UserContextProvider","children","useContext","LoadingContext","showLoading","hideLoading","history","useHistory","user","setUser","value","setState","store","localStorage","getItem","JSON","parse","removeItem","newValue","setItem","stringify","Key","useStateStorage","token","setToken","removeToken","useToasts","then","res","isSuccess","email","response","catch","login","customer","push","autoDismissTimeout","message","err","finally","logout","context","useMemo","Provider","customAxios","axios","create","baseURL","errorHandler","status","window","location","href","Promise","reject","interceptors","request","use","Authorization","requestHandler","responseHandler","BASE_URL","initState","currencySymbol","currencyName","currencyRate","currencyReducer","state","action","products","productReducer","cartReducer","cartItems","product","ADD_TO_CART","undefined","variation","cartItem","filter","quantity","cartItemId","uuid","selectedProductColor","selectedProductSize","DECREASE_QUANTITY","remainingItems","DELETE_FROM_CART","DELETE_ALL_FROM_CART","wishlistReducer","wishlistItems","wishlistItem","main","sub","categoryReducer","compareReducer","compareItems","compareItem","rootReducer","combineReducers","multilanguage","createMultilanguageReducer","currentLanguageCode","currencyData","productData","cartData","wishlistData","compareData","categories","withRouter","props","scrollTo","PrivateRoute","Component","component","rest","render","to","HomeFashion","lazy","AddProductComp","ShopGridStandard","Product","ProductTabLeft","ProductTabRight","ProductSticky","ProductSlider","ProductFixedImage","BlogStandard","BlogNoSidebar","BlogRightSidebar","BlogDetailsStandard","About","Contact","MyAccount","LoginRegister","Cart","Wishlist","Compare","Checkout","NotFound","connect","pageCount","pageIndex","categoryId","isSubCategoryes","code","allSubCategories","allMainCategories","loadLanguages","languages","en","require","fn","de","Loading","placement","fallback","className","exact","routeProps","match","Boolean","hostname","createStore","load","composeWithDevTools","applyMiddleware","thunk","save","fetchProductsSuccess","fetchProducts","ReactDOM","document","getElementById","navigator","serviceWorker","ready","registration","unregister","addToCart","quantityCount","decreaseQuantity","deleteFromCart","deleteAllFromCart","cartItemStock","color","size","stock","single","name","Overlay","styled","div","Loader","isLoaderShow","heigth","width","ariaLabel","loading","LoadingContextProvider"],"mappings":"oHAAA,4MAAO,IAAMA,EAAkB,kBAClBC,EAAuB,uBACvBC,EAA2B,2BAG3BC,EAAgB,SAACC,EAAMC,GAClC,OAAO,SAAAC,GACDD,GACFA,EAAS,oBAAqB,CAC5BE,WAAY,UACZC,aAAa,IAGjBF,EAAS,CAAEG,KAAMT,EAAiBU,QAASN,MAKlCO,EAAqB,SAACP,EAAMC,GACvC,OAAO,SAAAC,GACDD,GACFA,EAAS,wBAAyB,CAChCE,WAAY,QACZC,aAAa,IAGjBF,EAAS,CAAEG,KAAMR,EAAsBS,QAASN,MAKvCQ,EAAwB,SAAAP,GACnC,OAAO,SAAAC,GACDD,GACFA,EAAS,4BAA6B,CACpCE,WAAY,QACZC,aAAa,IAGjBF,EAAS,CAAEG,KAAMP,O,qOCnCd,SAAeW,EAAtB,kC,4CAAO,WAA4BH,GAA5B,qBAAAI,EAAA,sEACyBC,mBAASC,IAAKC,KAAKC,IAAcR,IAD1D,sCACES,EADF,KACSC,EADT,MAEDD,EAFC,sBAEYA,EAFZ,gCAIEC,EAAOC,MAJT,4C,sBAOA,SAAeC,EAAtB,kC,4CAAO,WAAyBZ,GAAzB,qBAAAI,EAAA,sEACyBC,mBAASC,IAAKC,KAAKM,IAAWb,IADvD,sCACES,EADF,KACSC,EADT,MAEDD,EAFC,sBAEYA,EAFZ,gCAIEC,EAAOC,MAJT,4C,sBAOA,SAAeG,EAAtB,kC,4CAAO,WAA4Bd,GAA5B,qBAAAI,EAAA,sEACyBC,mBAASC,IAAKC,KAAKQ,IAAmBf,IAD/D,sCACES,EADF,KACSC,EADT,MAEDD,EAFC,sBAEYA,EAFZ,gCAIEC,EAAOC,MAJT,4C,sBAOA,SAAeK,EAAtB,kC,4CAAO,WAA2BhB,GAA3B,qBAAAI,EAAA,sEACyBC,mBAASC,IAAKC,KAAKU,IAAcjB,IAD1D,sCACES,EADF,KACSC,EADT,MAEDD,EAFC,sBAEYA,EAFZ,gCAIEC,EAAOC,MAJT,4C,yDCzBP,wIAAO,IAAMO,EAAiB,iBACjBC,EAAsB,sBAGtBC,EAAe,SAAC1B,EAAMC,GACjC,OAAO,SAAAC,GACDD,GACFA,EAAS,mBAAoB,CAC3BE,WAAY,UACZC,aAAa,IAGjBF,EAAS,CAAEG,KAAMmB,EAAgBlB,QAASN,MAKjC2B,EAAoB,SAAC3B,EAAMC,GACtC,OAAO,SAAAC,GACDD,GACFA,EAAS,uBAAwB,CAC/BE,WAAY,QACZC,aAAa,IAGjBF,EAAS,CAAEG,KAAMoB,EAAqBnB,QAASN,O,sHCtB5C,SAAS4B,EACdC,GAGC,IAFDC,EAEA,uDAFe,KAEf,yDADoD,GACpD,IADEC,kBACF,MADeC,OACf,MADqBC,YACrB,MAD4B,GAC5B,MADgCC,kBAChC,MAD6C,GAC7C,EACA,EAAwBC,mBAASL,GAAjC,mBAAOb,EAAP,KAAamB,EAAb,KACMC,EAAQC,sBAAW,sBAAC,sBAAA5B,EAAA,6DACxBqB,GAAW,GADa,KAExBK,EAFwB,SAEVP,IAFU,kCAGxBE,GAAW,GAHa,2CAIvBE,GAMH,OAJAM,qBAAU,WACRF,MACCH,GAEI,CAACjB,EAAMoB,EAAOD,K,6FCXf,SAASI,EAAoBC,EAAMC,GACzCA,EAASA,aAAkBC,OAASD,EAAS,GAC7CD,EAAuB,kBAATA,EAAoBA,EAAO,GACzC,IACMG,EADYD,OAAOE,KAAKH,GACAI,KAAI,SAACC,GAAD,gBAAYA,EAAZ,YAAmBL,EAAOK,OAAQC,KAAK,KACzE,OAAOP,EAAKQ,QAAQ,IAAK,IAAM,IAAML,E,oVCGvC,IAAIM,EAAS,CACXC,QAAS,CACP,eAAgB,wBAIb,SAAeC,IAAtB,+B,4CAAO,kCAAA1C,EAAA,sEACyBC,mBAASC,IAAKC,KAAKwC,MAD5C,sCACEtC,EADF,KACSC,EADT,MAEDD,EAFC,sBAEYA,EAFZ,gCAIEC,EAAOC,MAJT,4C,sBAOA,SAAeqC,EAAtB,kC,4CAAO,WAA6BC,GAA7B,qBAAA7C,EAAA,sEACyBC,mBAASC,IAAK4C,IAAL,UAAYC,IAAZ,YAA2BF,KAD7D,sCACExC,EADF,KACSC,EADT,MAEDD,EAFC,sBAEYA,EAFZ,gCAIEC,EAAOC,MAJT,4C,sBAOA,SAAeyC,EAAtB,kC,4CAAO,WAA2BpD,GAA3B,qBAAAI,EAAA,6DAEJiD,QAAQC,IAAItD,GAFR,SAGyBK,mBAASC,IAAKC,KAAKgD,IAAkBvD,IAH9D,sCAGES,EAHF,KAGSC,EAHT,MAIDD,EAJC,uBAKH4C,QAAQC,IAAI7C,GACNA,EANH,iCASEC,EAAOC,MATT,6C,sBAYA,SAAe6C,EAAtB,kC,4CAAO,WAAgCxD,GAAhC,qBAAAI,EAAA,sEACyBC,mBAC5BC,IAAKC,KAAKkD,IAAoBzD,IAF3B,sCACES,EADF,KACSC,EADT,MAIDD,EAJC,sBAIYA,EAJZ,gCAMEC,EAAOC,MANT,4C,sBASA,SAAe+C,EAAtB,kC,4CAAO,WAA8C1D,GAA9C,qBAAAI,EAAA,sEACyBC,mBAC5BC,IAAKC,KAAKoD,IAAuC3D,IAF9C,sCACES,EADF,KACSC,EADT,MAIDD,EAJC,sBAIYA,EAJZ,gCAMEC,EAAOC,MANT,4C,sBASA,SAAeiD,EAAtB,kC,4CAAO,WAAyC5D,GAAzC,qBAAAI,EAAA,sEACyBC,mBAC5BC,IAAKC,KAAKsD,IAAkC7D,IAFzC,sCACES,EADF,KACSC,EADT,MAIDD,EAJC,sBAIYA,EAJZ,gCAMEC,EAAOC,MANT,4C,sBASA,SAAemD,EAAtB,kC,4CAAO,WAAyB9D,GAAzB,qBAAAI,EAAA,sEACyBC,mBAASC,IAAKC,KAAKwD,IAAY/D,IADxD,sCACES,EADF,KACSC,EADT,MAEDD,EAFC,sBAEYA,EAFZ,gCAIEC,EAAOC,MAJT,4C,sBAOA,SAAeqD,EAAtB,kC,4CAAO,WAA4BhE,GAA5B,qBAAAI,EAAA,sEACyBC,mBAASC,IAAKC,KAAK0D,IAAejE,IAD3D,sCACES,EADF,KACSC,EADT,MAEDD,EAFC,sBAEYA,EAFZ,gCAIEC,EAAOC,MAJT,4C,sBAOA,SAAeuD,EAAtB,kC,4CAAO,WAA0BlE,GAA1B,qBAAAI,EAAA,sEACyBC,mBAASC,IAAKC,KAAK4D,IAAiBnE,IAD7D,sCACES,EADF,KACSC,EADT,MAEDD,EAFC,sBAEYA,EAFZ,gCAIEC,EAAOC,MAJT,4C,sBAOA,SAAeyD,EAAtB,oC,4CAAO,WAAkCpE,EAASqE,GAA3C,uBAAAjE,EAAA,6DACCkE,EAAMpC,EAAoBqC,IAAkBvE,GAD7C,SAGyBK,mBAASC,IAAKC,KAAK+D,EAAKD,EAAUzB,IAH3D,sCAGEnC,EAHF,KAGSC,EAHT,MAIDD,EAJC,sBAIYA,EAJZ,gCAMEC,EAAOC,MANT,6C,2LCjFA,IAAM6D,EAAcC,wBAAc,MAElC,SAASC,EAAT,GAA4C,IAAbC,EAAY,EAAZA,SACpC,EAAqCC,qBAAWC,KAAxCC,EAAR,EAAQA,YAAaC,EAArB,EAAqBA,YACjBC,EAAUC,uBACd,EAAwBpD,mBAAS,MAAjC,mBAAOqD,EAAP,KAAaC,EAAb,KACA,ECnB6B,SAAC1C,EAAKjB,GACnC,MAA0BK,mBAASL,GAAnC,mBAAO4D,EAAP,KAAcC,EAAd,KA0BA,OAxBApD,qBAAU,WACR,IAAMqD,EAAQC,aAAaC,QAAQ/C,GACnC,GAAc,OAAV6C,EACF,IACED,EAASI,KAAKC,MAAMJ,IACpB,MAAO7E,GACP8E,aAAaI,WAAWlD,MAG3B,CAACA,IAeG,CAAC2C,EAbSpD,uBACf,SAAC4D,GACCP,EAASO,GACTL,aAAaM,QAAQpD,EAAKgD,KAAKK,UAAUF,MAE3C,CAACnD,IAGiBT,uBAAY,SAAC+D,GAC/BV,EAAS,MACTE,aAAaI,WAAWI,KACxB,KDNqCC,CAAgB,SAAvD,mBAAOC,EAAP,KAAcC,EAAd,KAAwBC,EAAxB,KACQxG,EAAayG,sBAAbzG,SAERsC,qBAAU,WACJsD,aAAaC,QAAQ,SACvB1E,YAAa,CAAEmF,MAAOR,KAAKC,MAAMH,aAAaC,QAAQ,YAAaa,MACjE,SAACC,GACC,IAAsB,IAAlBA,EAAIC,UACNJ,EAAY,SACZhB,GAAQ,OACH,CACL,IAAQqB,EAAUF,EAAIlB,MAAdoB,MACRxF,YAAY,CAAEwF,UACXH,MAAK,SAACI,GACLtB,EAAQsB,EAASrB,UAElBsB,OAAM,SAACjG,GAGN,MAFA0F,EAAY,SACZhB,GAAQ,GACF1E,SAMhB0E,GAAQ,KAET,CAACgB,IAEJ,IAAMQ,EAAQ3E,uBACZ,SAAChC,GAEC,OADA8E,IACOlE,YAAUZ,GACdqG,MAAK,SAACO,IACL,OAAIA,QAAJ,IAAIA,OAAJ,EAAIA,EAAUL,YACZL,EAASU,EAASxB,MAAMa,OACxBd,EAAQyB,EAASxB,OACjBJ,EAAQ6B,KAAK,KACblH,EAAS,qCAAkB,CACzBE,WAAY,UACZC,aAAa,EACbgH,mBAAoB,OAGtBnH,EAASiH,EAASG,QAAS,CACzBlH,WAAY,UACZC,aAAa,EACbgH,mBAAoB,SAIzBJ,OAAM,SAAUM,GACfrH,EAASqH,EAAID,QAAS,CACpBlH,WAAY,QACZC,aAAa,EACbgH,mBAAoB,SAGvBG,SAAQ,WACPlC,SAGN,CAACmB,IAGGgB,EAASlF,uBAAY,WACzBmE,EAAY,SACZhB,GAAQ,GACRH,EAAQ6B,KAAK,qBACZ,CAACV,IAEEgB,EAAUC,mBACd,iBAAO,CAAElC,OAAMe,QAAOU,QAAOO,SAAQ/B,aACrC,CAACD,EAAMe,EAAOU,EAAOO,EAAQ/B,IAG/B,OACE,kBAACX,EAAY6C,SAAb,CAAsBjC,MAAO+B,GAAUxC,K,squKElG3C,aAEM2C,EAFN,OAEoBC,EAAMC,OAAO,CAC/BC,QAAS,wBACT5E,QAAS,KAeL6E,EAAe,SAACjH,GAAW,IAAD,EAM9B,OALgC,OAAvB,OAALA,QAAK,IAALA,GAAA,UAAAA,EAAOgG,gBAAP,eAAiBkB,UACnBpC,aAAaI,WAAW,SACxBiC,OAAOC,SAASC,KAAgC,KAG3CC,QAAQC,OAAOvH,IAGxB6G,EAAYW,aAAaC,QAAQC,KAC/B,SAACD,GAAD,OAtBqB,SAACA,GAAa,IAAD,EAC5BjC,GAAQ,UAACV,aAAaC,QAAQ,gBAAtB,QAAkC,IAAI7C,QAAQ,MAAO,IAInE,OAHIsD,IACFiC,EAAQrF,QAAQuF,cAAhB,iBAA0CnC,IAErCiC,EAiBMG,CAAeH,MAC5B,SAACzH,GAAD,OAAWiH,EAAajH,MAG1B6G,EAAYW,aAAaxB,SAAS0B,KAChC,SAAC1B,GAAD,OAnBsB,SAACA,EAAUzB,GACjC,OAAOyB,EAkBO6B,CAAgB7B,MAC9B,SAAChG,GAAD,OAAWiH,EAAajH,MAGX6G,O,gCCtCf,geAAMiB,EAAW,gCAEJ/H,EAAY,UAAM+H,EAAN,qBACZ1H,EAAS,UAAM0H,EAAN,kBACTxH,EAAiB,UAAMwH,EAAN,0BACjBtH,EAAY,UAAMsH,EAAN,qBAEZxF,EAAgB,UAAMwF,EAAN,kCAChBhF,EAAgB,UAAMgF,EAAN,yBAChBpE,EAAe,UAAMoE,EAAN,wBACfhE,EAAgB,UAAMgE,EAAN,iCAChBpF,EAAW,UAAMoF,EAAN,YACX9E,EAAkB,UAAM8E,EAAN,4BAElB5E,EAAqC,UAAM4E,EAAN,8CACrC1E,EAAgC,UAAM0E,EAAN,yCAEhCxE,EAAU,UAAMwE,EAAN,uBACVtE,EAAa,UAAMsE,EAAN,2B,+8SChBpBC,G,OAAY,CAChBC,eAAgB,IAChBC,aAAc,MACdC,aAAc,IAoCDC,EAjCS,WAAgC,IAA/BC,EAA8B,uDAAtBL,EAAWM,EAAW,uCACrD,GCR0B,iBDQtBA,EAAO/I,KAAuB,CAChC,IAAM2I,EAAeI,EAAO9I,QAAQ0I,aAEpC,GAAqB,QAAjBA,EACF,OAAO,2BACFG,GADL,IAEEJ,eAAgB,IAChBE,aAAcG,EAAO9I,QAAQ2I,aAC7BD,iBAGJ,GAAqB,QAAjBA,EACF,OAAO,2BACFG,GADL,IAEEJ,eAAgB,SAChBE,aAAcG,EAAO9I,QAAQ2I,aAC7BD,iBAGJ,GAAqB,QAAjBA,EACF,OAAO,2BACFG,GADL,IAEEJ,eAAgB,OAChBE,aAAcG,EAAO9I,QAAQ2I,aAC7BD,iBAKN,OAAOG,GEpCHL,EAAY,CAChBO,SAAU,IAcGC,EAXQ,WAAgC,IAA/BH,EAA8B,uDAAtBL,EAAWM,EAAW,uCACpD,MCPoC,2BDOhCA,EAAO/I,KACF,2BACF8I,GADL,IAEEE,SAAUD,EAAO9I,UAId6I,G,kCENHL,EAAY,GAiHHS,EA/GK,WAAgC,IAA/BJ,EAA8B,uDAAtBL,EAAWM,EAAW,uCAC3CI,EAAYL,EAChBM,EAAUL,EAAO9I,QAEnB,GAAI8I,EAAO/I,OAASqJ,IAAa,CAE/B,QAA0BC,IAAtBF,EAAQG,UAAyB,CACnC,IAAMC,EAAWL,EAAUM,QAAO,SAAA9J,GAAI,OAAIA,EAAKuD,KAAOkG,EAAQlG,MAAI,GAClE,YAAiBoG,IAAbE,EACI,GAAN,mBACKL,GADL,4BAGOC,GAHP,IAIIM,SAAUN,EAAQM,SAAWN,EAAQM,SAAW,EAChDC,WAAYC,UAITT,EAAU1G,KAAI,SAAA9C,GAAI,OACvBA,EAAKgK,aAAeH,EAASG,WAA7B,2BAEShK,GAFT,IAGM+J,SAAUN,EAAQM,SACd/J,EAAK+J,SAAWN,EAAQM,SACxB/J,EAAK+J,SAAW,IAEtB/J,KAKR,IAAM6J,EAAWL,EAAUM,QACzB,SAAA9J,GAAI,OACFA,EAAKuD,KAAOkG,EAAQlG,IACpBkG,EAAQS,sBACRT,EAAQS,uBAAyBlK,EAAKkK,sBACtCT,EAAQU,qBACRV,EAAQU,sBAAwBnK,EAAKmK,uBACpCV,EAAQO,YAAaP,EAAQO,aAAehK,EAAKgK,eACpD,GAEF,YAAiBL,IAAbE,EACI,GAAN,mBACKL,GADL,4BAGOC,GAHP,IAIIM,SAAUN,EAAQM,SAAWN,EAAQM,SAAW,EAChDC,WAAYC,eAIHN,IAAbE,GACCA,EAASK,uBAAyBT,EAAQS,sBACzCL,EAASM,sBAAwBV,EAAQU,oBAWpCX,EAAU1G,KAAI,SAAA9C,GAAI,OACvBA,EAAKgK,aAAeH,EAASG,WAA7B,2BAEShK,GAFT,IAGM+J,SAAUN,EAAQM,SACd/J,EAAK+J,SAAWN,EAAQM,SACxB/J,EAAK+J,SAAW,EACpBG,qBAAsBT,EAAQS,qBAC9BC,oBAAqBV,EAAQU,sBAE/BnK,KAnBA,GAAN,mBACKwJ,GADL,4BAGOC,GAHP,IAIIM,SAAUN,EAAQM,SAAWN,EAAQM,SAAW,EAChDC,WAAYC,UAoBtB,GAAIb,EAAO/I,OAAS+J,IAAmB,CACrC,GAAyB,IAArBX,EAAQM,SAAgB,CAC1B,IAAMM,EAAiB,SAACb,EAAWC,GAAZ,OACrBD,EAAUM,QACR,SAAAD,GAAQ,OAAIA,EAASG,aAAeP,EAAQO,eAEhD,OAAOK,EAAeb,EAAWC,GAEjC,OAAOD,EAAU1G,KAAI,SAAA9C,GAAI,OACvBA,EAAKgK,aAAeP,EAAQO,WAA5B,2BACShK,GADT,IACe+J,SAAU/J,EAAK+J,SAAW,IACrC/J,KAKV,GAAIoJ,EAAO/I,OAASiK,IAAkB,CACpC,IAAMD,EAAiB,SAACb,EAAWC,GAAZ,OACrBD,EAAUM,QAAO,SAAAD,GAAQ,OAAIA,EAASG,aAAeP,EAAQO,eAC/D,OAAOK,EAAeb,EAAWC,GAGnC,OAAIL,EAAO/I,OAASkK,IACXf,EAAUM,QAAO,SAAA9J,GACtB,OAAO,KAIJmJ,G,SChHHL,EAAY,GAgCH0B,EA9BS,WAAgC,IAA/BrB,EAA8B,uDAAtBL,EAAWM,EAAW,uCAC/CqB,EAAgBtB,EACpBM,EAAUL,EAAO9I,QAEnB,GAAI8I,EAAO/I,OAAST,IAAiB,CACnC,IAAM8K,EAAeD,EAAcX,QACjC,SAAA9J,GAAI,OAAIA,EAAKuD,KAAOkG,EAAQlG,MAC5B,GACF,YAAqBoG,IAAjBe,EACI,GAAN,mBAAWD,GAAX,CAA0BhB,IAEnBgB,EAIX,GAAIrB,EAAO/I,OAASR,IAAsB,CACxC,IAAMwK,EAAiB,SAACI,EAAehB,GAAhB,OACrBgB,EAAcX,QAAO,SAAAY,GAAY,OAAIA,EAAanH,KAAOkG,EAAQlG,OACnE,OAAO8G,EAAeI,EAAehB,GAGvC,OAAIL,EAAO/I,OAASP,IACX2K,EAAcX,QAAO,SAAA9J,GAC1B,OAAO,KAIJyK,GCjCH3B,EAAY,CAChB6B,KAAM,GACNC,IAAK,IAeQC,EAZS,WAAgC,IAA/B1B,EAA8B,uDAAtBL,EAAWM,EAAW,uCACrD,MCR6B,oBDQzBA,EAAO/I,KACF,2BACF8I,GADL,IAEEwB,KAAMvB,EAAO9I,QAAQqK,KACrBC,IAAKxB,EAAO9I,QAAQsK,MAIjBzB,G,SEdHL,EAAY,GAwBHgC,EAtBQ,WAAgC,IAA/B3B,EAA8B,uDAAtBL,EAAWM,EAAW,uCAC9C2B,EAAe5B,EACnBM,EAAUL,EAAO9I,QAEnB,GAAI8I,EAAO/I,OAASmB,IAAgB,CAClC,IAAMwJ,EAAcD,EAAajB,QAAO,SAAA9J,GAAI,OAAIA,EAAKuD,KAAOkG,EAAQlG,MAAI,GACxE,YAAoBoG,IAAhBqB,EACI,GAAN,mBAAWD,GAAX,CAAyBtB,IAElBsB,EAIX,GAAI3B,EAAO/I,OAASoB,IAAqB,CACvC,IAAM4I,EAAiB,SAACU,EAActB,GAAf,OACrBsB,EAAajB,QAAO,SAAAkB,GAAW,OAAIA,EAAYzH,KAAOkG,EAAQlG,OAChE,OAAO8G,EAAeU,EAActB,GAGtC,OAAOsB,G,QCJME,EAVKC,0BAAgB,CAClCC,cAAeC,qCAA2B,CAAEC,oBAAqB,OACjEC,aAAcpC,EACdqC,YAAajC,EACbkC,SAAUjC,EACVkC,aAAcjB,EACdkB,YAAaZ,EACba,WAAYd,I,yBCNCe,wBAPK,SAAAC,GAIlB,OAHAtJ,qBAAU,WACR2F,OAAO4D,SAAS,EAAG,MAEdD,EAAM5G,Y,qECEA8G,EANM,SAAC,GAAuC,IAA1BC,EAAyB,EAApCC,UAAyBC,EAAW,iBAClD3F,EAAQV,aAAaC,QAAQ,SAEnC,OAAO,kBAAC,QAAD,iBAAWoG,EAAX,CAAiBC,OAAQ,SAACN,GAAD,OAAYtF,EAAQ,kBAACyF,EAAcH,GAAY,kBAAC,WAAD,CAAUO,GAAG,yB,kBCW1FC,EAAcC,gBAAK,kBAAM,+DAEzBC,EAAiBD,gBAAK,kBAAM,8EAC5BE,EAAmBF,gBAAK,kBAAM,gEAC9BG,EAAUH,gBAAK,kBAAM,6EACrBI,EAAiBJ,gBAAK,kBAC1B,6EAEIK,EAAkBL,gBAAK,kBAC3B,6EAEIM,EAAgBN,gBAAK,kBAAM,6EAC3BO,EAAgBP,gBAAK,kBAAM,6EAC3BQ,EAAoBR,gBAAK,kBAC7B,6EAIIS,GAAeT,gBAAK,kBAAM,+DAC1BU,GAAgBV,gBAAK,kBAAM,wDAC3BW,GAAmBX,gBAAK,kBAAM,+DAC9BY,GAAsBZ,gBAAK,kBAC/B,wDAIIa,GAAQb,gBAAK,kBAAM,uEACnBc,GAAUd,gBAAK,kBAAM,gEACrBe,GAAYf,gBAAK,kBAAM,+DACvBgB,GAAgBhB,gBAAK,kBAAM,sEAE3BiB,GAAOjB,gBAAK,kBAAM,wDAClBkB,GAAWlB,gBAAK,kBAAM,wDACtBmB,GAAUnB,gBAAK,kBAAM,wDACrBoB,GAAWpB,gBAAK,kBAAM,wDAEtBqB,GAAWrB,gBAAK,kBAAM,wDAkMbsB,uBAAUzC,yBAjMb,SAACU,GACX,IAAQ9J,EAAemD,qBAAWC,KAA1BpD,WAER,EAA2BH,aACzB,kBACEkC,YAAiB,CACf+J,UAAW,EACXC,UAAW,EACXvK,GAAI,EACJwK,WAAY,EACZC,iBAAiB,EACjBC,KAAM,OAEV,GACA,CACElM,eAZGmM,EAAP,oBAgBA,EAA4BtM,aAC1B,kBACEkC,YAAiB,CACf+J,UAAW,EACXC,UAAW,EACXvK,GAAI,EACJwK,WAAY,EACZC,iBAAiB,EACjBC,KAAM,OAEV,GACA,CACElM,eAZGoM,EAAP,oBAkCA,OAlBA5L,qBAAU,WLvFe,IAACjC,EKwFxBuL,EAAM3L,ULxFkBI,EKyFV,CAAEqK,KAAMwD,EAAkBzI,MAAOkF,IAAKsD,EAAiBxI,OLxFhE,SAACxF,GACNA,EAAS,CAAEG,KAJgB,kBAIOC,QAASA,SKyF1C,CAAC6N,EAAmBD,IAEvB3L,qBAAU,WACRsJ,EAAM3L,SACJkO,wBAAc,CACZC,UAAW,CACTC,GAAIC,EAAQ,KACZC,GAAID,EAAQ,KACZE,GAAIF,EAAQ,WAIjB,CAAC1C,IAGF,kBAAC6C,EAAA,EAAD,KACE,kBAAC,gBAAD,CAAeC,UAAU,gBACvB,kBAAC7J,EAAA,EAAD,KACE,kBAAC,sBAAD,KACE,kBAAC,EAAD,KACE,kBAAC,WAAD,CACE8J,SACE,yBAAKC,UAAU,2BACb,yBAAKA,UAAU,mBACb,+BACA,kCAKN,kBAAC,SAAD,KACE,kBAAC,QAAD,CACEC,OAAK,EACLrM,KAA+B,IAC/BwJ,UAAWI,IAEb,kBAAC,QAAD,CACE5J,KAA+B,gBAC/BwJ,UAAWI,IAEb,kBAAC,QAAD,CACE5J,KAA+B,gBAC/BwJ,UAAWO,IAEb,kBAAC,EAAD,CACEP,UAAWM,EACX9J,KAA+B,eAC/BqM,OAAK,IAIP,kBAAC,QAAD,CACErM,KAA+B,eAC/B0J,OAAQ,SAAC4C,GAAD,OACN,kBAACtC,EAAD,iBACMsC,EADN,CAEEhM,IAAKgM,EAAWC,MAAMtM,OAAOa,SAInC,kBAAC,QAAD,CACEd,KAA+B,wBAC/BwJ,UAAWS,IAEb,kBAAC,QAAD,CACEjK,KAA+B,yBAC/BwJ,UAAWU,IAEb,kBAAC,QAAD,CACElK,KAA+B,sBAC/BwJ,UAAWW,IAEb,kBAAC,QAAD,CACEnK,KAA+B,sBAC/BwJ,UAAWY,IAEb,kBAAC,QAAD,CACEpK,KAA+B,2BAC/BwJ,UAAWa,IAIb,kBAAC,QAAD,CACErK,KAA+B,iBAC/BwJ,UAAWc,KAEb,kBAAC,QAAD,CACEtK,KAA+B,mBAC/BwJ,UAAWe,KAEb,kBAAC,QAAD,CACEvK,KAA+B,sBAC/BwJ,UAAWgB,KAEb,kBAAC,QAAD,CACExK,KAA+B,yBAC/BwJ,UAAWiB,KAIb,kBAAC,QAAD,CACEzK,KAA+B,SAC/BwJ,UAAWkB,KAEb,kBAAC,QAAD,CACE1K,KAA+B,WAC/BwJ,UAAWmB,KAEb,kBAAC,QAAD,CACE3K,KAA+B,cAC/BwJ,UAAWoB,KAEb,kBAAC,QAAD,CACE5K,KAA+B,kBAC/BwJ,UAAWqB,KAGb,kBAAC,QAAD,CACE7K,KAA+B,QAC/BwJ,UAAWsB,KAEb,kBAAC,QAAD,CACE9K,KAA+B,YAC/BwJ,UAAWuB,KAEb,kBAAC,QAAD,CACE/K,KAA+B,WAC/BwJ,UAAWwB,KAEb,kBAAC,QAAD,CACEhL,KAA+B,YAC/BwJ,UAAWyB,KAGb,kBAAC,QAAD,CACEjL,KAA+B,aAC/BwJ,UAAW0B,KAGb,kBAAC,QAAD,CAAOmB,OAAK,EAAC7C,UAAW0B,gB,OC5NtBsB,QACW,cAA7B/G,OAAOC,SAAS+G,UAEe,UAA7BhH,OAAOC,SAAS+G,UAEhBhH,OAAOC,SAAS+G,SAASF,MACvB,2D,uBCAApJ,GAAQuJ,sBACZlE,EACAmE,iBACAC,+BAAoBC,0BAAgBC,IAAOC,oBAI7C5J,GAAM1F,SXjBuB,SAAAmJ,GAC3B,OAAO,SAAAnJ,GACLA,EARyB,SAAAmJ,GAAQ,MAAK,CACxChJ,KAHoC,yBAIpCC,QAAS+I,GAMEoG,CAAqBpG,KWenBqG,CAAcrG,IAE7BsG,IAASxD,OACP,kBAAC,KAAD,KACE,kBAAC,WAAD,CAAUvG,MAAOA,IACf,kBAAC,GAAD,QAGJgK,SAASC,eAAe,SDgGpB,kBAAmBC,WACrBA,UAAUC,cAAcC,MAAMrJ,MAAK,SAAAsJ,GACjCA,EAAaC,iB,8VEnINxG,EAAc,cACdU,EAAoB,oBACpBE,EAAmB,mBACnBC,EAAuB,uBAGvB4F,EAAY,SACvBnQ,EACAC,EACAmQ,EACAlG,EACAC,GAEA,OAAO,SAAAjK,GACDD,GACFA,EAAS,gBAAiB,CAAEE,WAAY,UAAWC,aAAa,IAElEF,EAAS,CACPG,KAAMqJ,EACNpJ,QAAQ,2BACHN,GADE,IAEL+J,SAAUqG,EACVlG,qBAAsBA,IAElBlK,EAAKkK,qBACLlK,EAAKkK,qBACL,MACJC,oBAAqBA,IAEjBnK,EAAKmK,oBACLnK,EAAKmK,oBACL,YAMCkG,EAAmB,SAACrQ,EAAMC,GACrC,OAAO,SAAAC,GACDD,GACFA,EAAS,6BAA8B,CACrCE,WAAY,UACZC,aAAa,IAGjBF,EAAS,CAAEG,KAAM+J,EAAmB9J,QAASN,MAIpCsQ,EAAiB,SAACtQ,EAAMC,GACnC,OAAO,SAAAC,GACDD,GACFA,EAAS,oBAAqB,CAAEE,WAAY,QAASC,aAAa,IAEpEF,EAAS,CAAEG,KAAMiK,EAAkBhK,QAASN,MAInCuQ,EAAoB,SAAAtQ,GAC/B,OAAO,SAAAC,GACDD,GACFA,EAAS,wBAAyB,CAChCE,WAAY,QACZC,aAAa,IAGjBF,EAAS,CAAEG,KAAMkK,MAKRiG,EAAgB,SAACxQ,EAAMyQ,EAAOC,GACzC,OAAI1Q,EAAK2Q,MACA3Q,EAAK2Q,MAEL3Q,EAAK4J,UACTE,QAAO,SAAA8G,GAAM,OAAIA,EAAOH,QAAUA,KAAO,GACzCC,KAAK5G,QAAO,SAAA8G,GAAM,OAAIA,EAAOC,OAASH,KAAM,GAAGC,Q,gFCzEhDG,E,OAAUC,EAAOC,IAAV,4VAsBE,SAASC,EAAT,GACb,OAD+C,EAAhBC,cAG3B,kBAACJ,EAAD,KACE,kBAAC,IAAD,CAAOK,OAAO,MAAMC,MAAM,MAAMX,MAAM,UAAUY,UAAU,a,oEC1B3D,IAAMlM,EAAiBJ,wBAAc,CACxCuM,SAAS,EACTlM,YAAa,aACbC,YAAa,eAGV,SAASkM,EAAT,GAA+C,IAAbtM,EAAY,EAAZA,SACrC,EAA8B9C,oBAAS,GAAvC,mBAAOmP,EAAP,KAAgBvP,EAAhB,KAEMqD,EAAc9C,uBAAY,WAC5BP,GAAW,MAGTsD,EAAc/C,uBAAY,WAC5BP,GAAW,MAGT0F,EAAUC,mBAAQ,iBAAO,CAAE4J,UAASlM,cAAaC,cAActD,gBAAc,CAACuP,EAASlM,EAAaC,EAAatD,IAEvH,OACI,kBAACoD,EAAewC,SAAhB,CAAyBjC,MAAO+B,GAC3BxC,EACD,kBAACgM,EAAD,CAAQC,aAAcI,Q","file":"static/js/main.431cc0d9.chunk.js","sourcesContent":["export const ADD_TO_WISHLIST = \"ADD_TO_WISHLIST\";\r\nexport const DELETE_FROM_WISHLIST = \"DELETE_FROM_WISHLIST\";\r\nexport const DELETE_ALL_FROM_WISHLIST = \"DELETE_ALL_FROM_WISHLIST\";\r\n\r\n// add to wishlist\r\nexport const addToWishlist = (item, addToast) => {\r\n return dispatch => {\r\n if (addToast) {\r\n addToast(\"Added To Wishlist\", {\r\n appearance: \"success\",\r\n autoDismiss: true\r\n });\r\n }\r\n dispatch({ type: ADD_TO_WISHLIST, payload: item });\r\n };\r\n};\r\n\r\n// delete from wishlist\r\nexport const deleteFromWishlist = (item, addToast) => {\r\n return dispatch => {\r\n if (addToast) {\r\n addToast(\"Removed From Wishlist\", {\r\n appearance: \"error\",\r\n autoDismiss: true\r\n });\r\n }\r\n dispatch({ type: DELETE_FROM_WISHLIST, payload: item });\r\n };\r\n};\r\n\r\n//delete all from wishlist\r\nexport const deleteAllFromWishlist = addToast => {\r\n return dispatch => {\r\n if (addToast) {\r\n addToast(\"Removed All From Wishlist\", {\r\n appearance: \"error\",\r\n autoDismiss: true\r\n });\r\n }\r\n dispatch({ type: DELETE_ALL_FROM_WISHLIST });\r\n };\r\n};\r\n","import { tryCatch } from \"@thalesrc/js-utils\";\r\nimport http from \"./http\";\r\nimport { GET_USER_URL, LOGIN_URL, REFRESH_TOKEN_URL, REGISTER_URL } from \"../utils/url\";\r\n\r\nexport async function registerUser(payload) {\r\n const [error, result] = await tryCatch(http.post(REGISTER_URL, payload));\r\n if (error) throw error;\r\n\r\n return result.data;\r\n}\r\n\r\nexport async function loginUser(payload) {\r\n const [error, result] = await tryCatch(http.post(LOGIN_URL, payload));\r\n if (error) throw error;\r\n\r\n return result.data;\r\n}\r\n\r\nexport async function refreshToken(payload) {\r\n const [error, result] = await tryCatch(http.post(REFRESH_TOKEN_URL, payload));\r\n if (error) throw error;\r\n\r\n return result.data;\r\n}\r\n\r\nexport async function getCustomer(payload) {\r\n const [error, result] = await tryCatch(http.post(GET_USER_URL, payload));\r\n if (error) throw error;\r\n\r\n return result.data;\r\n}\r\n\r\n","export const ADD_TO_COMPARE = \"ADD_TO_COMPARE\";\r\nexport const DELETE_FROM_COMPARE = \"DELETE_FROM_COMPARE\";\r\n\r\n// add to compare\r\nexport const addToCompare = (item, addToast) => {\r\n return dispatch => {\r\n if (addToast) {\r\n addToast(\"Added To Compare\", {\r\n appearance: \"success\",\r\n autoDismiss: true\r\n });\r\n }\r\n dispatch({ type: ADD_TO_COMPARE, payload: item });\r\n };\r\n};\r\n\r\n// delete from compare\r\nexport const deleteFromCompare = (item, addToast) => {\r\n return dispatch => {\r\n if (addToast) {\r\n addToast(\"Removed From Compare\", {\r\n appearance: \"error\",\r\n autoDismiss: true\r\n });\r\n }\r\n dispatch({ type: DELETE_FROM_COMPARE, payload: item });\r\n };\r\n};\r\n","import { useCallback, useEffect, useState } from 'react';\r\nimport { noop } from \"@thalesrc/js-utils\";\r\n\r\nexport function useFetch(\r\n fetcher,\r\n defaultValue = null,\r\n { setLoading = noop, deps = [], reloadDeps = [] } = {}\r\n) {\r\n const [data, setData] = useState(defaultValue);\r\n const fetch = useCallback(async () => {\r\n setLoading(true);\r\n setData(await fetcher());\r\n setLoading(false);\r\n }, deps); // eslint-disable-line\r\n\r\n useEffect(() => {\r\n fetch();\r\n }, reloadDeps); // eslint-disable-line\r\n\r\n return [data, fetch, setData];\r\n}\r\n","/**\r\n *\r\n * @param {string} urlString\r\n * @param {Object} params\r\n * @param {'value'} params.key\r\n * @example getUrlWithParams('/address/streets', { cityCode: '1', districtCode: '4' })\r\n * @returns {String}\r\n */\r\n export function pathWithQueryString(path, params) {\r\n params = params instanceof Object ? params : {};\r\n path = typeof path === 'string' ? path : '';\r\n const paramKeys = Object.keys(params);\r\n const queryString = paramKeys.map((key) => `${key}=${params[key]}`).join('&');\r\n return path.replace('?', '') + '?' + queryString;\r\n}\r\n","import { tryCatch } from \"@thalesrc/js-utils\";\r\nimport http from \"./http\";\r\nimport {\r\n ADD_PRODUCT_URL,\r\n GET_CATEGORIES_URL,\r\n GET_CITYES,\r\n GET_DISTRICTS,\r\n GET_PRODUCTS_URL,\r\n GET_PRODUCT_ATTRIBUTE_DEFINITIONS_URL,\r\n GET_PRODUCT_ATTRIBUTE_VALUES_URL,\r\n HOME_PRODUCT_URL,\r\n PRODUCT_URL,\r\n UPLOAD_IMAGE_URL,\r\n} from \"../utils/url\";\r\nimport { pathWithQueryString } from \"../helpers/pathWithQueryString\";\r\n\r\nlet config = {\r\n headers: {\r\n \"content-type\": \"multipart/form-data\",\r\n },\r\n};\r\n\r\nexport async function getHomeProducts() {\r\n const [error, result] = await tryCatch(http.post(HOME_PRODUCT_URL));\r\n if (error) throw error;\r\n\r\n return result.data;\r\n}\r\n\r\nexport async function productDetail(id) {\r\n const [error, result] = await tryCatch(http.get(`${PRODUCT_URL}/${id}`));\r\n if (error) throw error;\r\n\r\n return result.data;\r\n}\r\n\r\nexport async function getProducts(payload) {\r\n \r\n console.log(payload);\r\n const [error, result] = await tryCatch(http.post(GET_PRODUCTS_URL, payload));\r\n if (error){\r\n console.log(error);\r\n throw error;\r\n } \r\n\r\n return result.data;\r\n}\r\n\r\nexport async function getAllCategories(payload) {\r\n const [error, result] = await tryCatch(\r\n http.post(GET_CATEGORIES_URL, payload)\r\n );\r\n if (error) throw error;\r\n\r\n return result.data;\r\n}\r\n\r\nexport async function getProductAttributeDefinitions(payload) {\r\n const [error, result] = await tryCatch(\r\n http.post(GET_PRODUCT_ATTRIBUTE_DEFINITIONS_URL, payload)\r\n );\r\n if (error) throw error;\r\n\r\n return result.data;\r\n}\r\n\r\nexport async function getProductAttributeValues(payload) {\r\n const [error, result] = await tryCatch(\r\n http.post(GET_PRODUCT_ATTRIBUTE_VALUES_URL, payload)\r\n );\r\n if (error) throw error;\r\n\r\n return result.data;\r\n}\r\n\r\nexport async function getCityes(payload) {\r\n const [error, result] = await tryCatch(http.post(GET_CITYES, payload));\r\n if (error) throw error;\r\n\r\n return result.data;\r\n}\r\n\r\nexport async function getDistricts(payload) {\r\n const [error, result] = await tryCatch(http.post(GET_DISTRICTS, payload));\r\n if (error) throw error;\r\n\r\n return result.data;\r\n}\r\n\r\nexport async function addProduct(payload) {\r\n const [error, result] = await tryCatch(http.post(ADD_PRODUCT_URL, payload));\r\n if (error) throw error;\r\n\r\n return result.data;\r\n}\r\n\r\nexport async function uploadProductImage(payload, formData) {\r\n const url = pathWithQueryString(UPLOAD_IMAGE_URL, payload);\r\n \r\n const [error, result] = await tryCatch(http.post(url, formData, config));\r\n if (error) throw error;\r\n\r\n return result.data;\r\n}\r\n","/* eslint-disable react-hooks/exhaustive-deps */\r\nimport React, {\r\n createContext,\r\n useCallback,\r\n useContext,\r\n useEffect,\r\n useMemo,\r\n useState,\r\n} from \"react\";\r\nimport { useStateStorage } from \"../hooks/use-state-storage\";\r\nimport { getCustomer, loginUser, refreshToken } from \"../services/auth\";\r\nimport { useToasts } from \"react-toast-notifications\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { LoadingContext } from \"./Loading\";\r\n\r\nexport const UserContext = createContext(null);\r\n\r\nexport function UserContextProvider({ children }) {\r\n const { showLoading, hideLoading } = useContext(LoadingContext);\r\n let history = useHistory();\r\n const [user, setUser] = useState(null);\r\n const [token, setToken, removeToken] = useStateStorage(\"token\");\r\n const { addToast } = useToasts();\r\n\r\n useEffect(() => {\r\n if (localStorage.getItem(\"token\")) {\r\n refreshToken({ token: JSON.parse(localStorage.getItem(\"token\")) }).then(\r\n (res) => {\r\n if (res.isSuccess === false) {\r\n removeToken(\"token\");\r\n setUser(false);\r\n } else {\r\n const { email } = res.value;\r\n getCustomer({ email })\r\n .then((response) => {\r\n setUser(response.value);\r\n })\r\n .catch((error) => {\r\n removeToken(\"token\");\r\n setUser(false);\r\n throw error;\r\n });\r\n }\r\n }\r\n );\r\n } else {\r\n setUser(false);\r\n }\r\n }, [removeToken]);\r\n\r\n const login = useCallback(\r\n (payload) => {\r\n showLoading();\r\n return loginUser(payload)\r\n .then((customer) => {\r\n if (customer?.isSuccess) {\r\n setToken(customer.value.token);\r\n setUser(customer.value);\r\n history.push(\"/\");\r\n addToast(\"Giriş Başarılı\", {\r\n appearance: \"success\",\r\n autoDismiss: true,\r\n autoDismissTimeout: 3000,\r\n });\r\n } else {\r\n addToast(customer.message, {\r\n appearance: \"warning\",\r\n autoDismiss: true,\r\n autoDismissTimeout: 3000,\r\n });\r\n }\r\n })\r\n .catch(function (err) {\r\n addToast(err.message, {\r\n appearance: \"error\",\r\n autoDismiss: true,\r\n autoDismissTimeout: 3000,\r\n });\r\n })\r\n .finally(() => {\r\n hideLoading();\r\n });\r\n },\r\n [setToken]\r\n );\r\n\r\n const logout = useCallback(() => {\r\n removeToken(\"token\");\r\n setUser(false);\r\n history.push(\"/login-register\");\r\n }, [removeToken]);\r\n\r\n const context = useMemo(\r\n () => ({ user, token, login, logout, setUser }),\r\n [user, token, login, logout, setUser]\r\n );\r\n\r\n return (\r\n {children}\r\n );\r\n}\r\n","import { useState, useEffect, useCallback } from \"react\";\r\n\r\nexport const useStateStorage = (key, defaultValue) => {\r\n const [value, setState] = useState(defaultValue);\r\n\r\n useEffect(() => {\r\n const store = localStorage.getItem(key);\r\n if (store !== null) {\r\n try {\r\n setState(JSON.parse(store));\r\n } catch (error) {\r\n localStorage.removeItem(key);\r\n }\r\n }\r\n }, [key]);\r\n\r\n const setValue = useCallback(\r\n (newValue) => {\r\n setState(newValue);\r\n localStorage.setItem(key, JSON.stringify(newValue));\r\n },\r\n [key]\r\n );\r\n\r\n const removeValue = useCallback((Key) => {\r\n setState(null)\r\n localStorage.removeItem(Key);\r\n },[])\r\n\r\n return [value, setValue, removeValue];\r\n};\r\n","import axios from \"axios\";\r\n\r\nconst customAxios = axios.create({\r\n baseURL: \"api.bazariyya.com/api\",\r\n headers: {},\r\n});\r\n\r\nconst requestHandler = (request) => {\r\n const token = (localStorage.getItem(\"token\") ?? \"\").replace(/\"/gi, \"\");\r\n if (token) {\r\n request.headers.Authorization = `Bearer ${token}`;\r\n }\r\n return request;\r\n};\r\n\r\nconst responseHandler = (response, history) => {\r\n return response;\r\n};\r\n\r\nconst errorHandler = (error) => {\r\n if (error?.response?.status === 401) {\r\n localStorage.removeItem(\"token\");\r\n window.location.href = process.env.PUBLIC_URL + \"/\";\r\n }\r\n\r\n return Promise.reject(error);\r\n};\r\n\r\ncustomAxios.interceptors.request.use(\r\n (request) => requestHandler(request),\r\n (error) => errorHandler(error)\r\n);\r\n\r\ncustomAxios.interceptors.response.use(\r\n (response) => responseHandler(response),\r\n (error) => errorHandler(error)\r\n);\r\n\r\nexport default customAxios;\r\n","const BASE_URL = \"https://api.bazariyya.com/api\";\r\n\r\nexport const REGISTER_URL = `${BASE_URL}/Account/add-user`;\r\nexport const LOGIN_URL = `${BASE_URL}/Account/token`;\r\nexport const REFRESH_TOKEN_URL = `${BASE_URL}/Account/refresh-token`;\r\nexport const GET_USER_URL = `${BASE_URL}/Account/get-user`;\r\n\r\nexport const HOME_PRODUCT_URL = `${BASE_URL}/Product/get-showcase-products`;\r\nexport const GET_PRODUCTS_URL = `${BASE_URL}/Product/get-products`;\r\nexport const ADD_PRODUCT_URL = `${BASE_URL}/Product/add-product`;\r\nexport const UPLOAD_IMAGE_URL = `${BASE_URL}/Product/upload-product-image`;\r\nexport const PRODUCT_URL = `${BASE_URL}/Product`;\r\nexport const GET_CATEGORIES_URL = `${BASE_URL}/Category/get-categories`;\r\n\r\nexport const GET_PRODUCT_ATTRIBUTE_DEFINITIONS_URL = `${BASE_URL}/Product/get-product-attribute-definitions`;\r\nexport const GET_PRODUCT_ATTRIBUTE_VALUES_URL = `${BASE_URL}/Product/get-product-attribute-values`;\r\n\r\nexport const GET_CITYES = `${BASE_URL}/Address/get-cityes`;\r\nexport const GET_DISTRICTS = `${BASE_URL}/Address/get-districts`;\r\n","import { SET_CURRENCY } from \"../actions/currencyActions\";\r\n\r\nconst initState = {\r\n currencySymbol: \"$\",\r\n currencyName: \"USD\",\r\n currencyRate: 1\r\n};\r\n\r\nconst currencyReducer = (state = initState, action) => {\r\n if (action.type === SET_CURRENCY) {\r\n const currencyName = action.payload.currencyName;\r\n\r\n if (currencyName === \"USD\") {\r\n return {\r\n ...state,\r\n currencySymbol: \"$\",\r\n currencyRate: action.payload.currencyRate,\r\n currencyName\r\n };\r\n }\r\n if (currencyName === \"EUR\") {\r\n return {\r\n ...state,\r\n currencySymbol: \"€\",\r\n currencyRate: action.payload.currencyRate,\r\n currencyName\r\n };\r\n }\r\n if (currencyName === \"GBP\") {\r\n return {\r\n ...state,\r\n currencySymbol: \"£\",\r\n currencyRate: action.payload.currencyRate,\r\n currencyName\r\n };\r\n }\r\n }\r\n\r\n return state;\r\n};\r\n\r\nexport default currencyReducer;\r\n","import axios from \"axios\";\r\nexport const SET_CURRENCY = \"SET_CURRENCY\";\r\n\r\nexport const setCurrency = currencyName => {\r\n return dispatch => {\r\n axios\r\n .get(`https://api.exchangeratesapi.io/latest?base=USD`)\r\n .then(response => {\r\n const rates = response.data.rates;\r\n let currencyRate = 0;\r\n for (const rate in rates) {\r\n if (rate === currencyName) {\r\n currencyRate = rates[rate];\r\n }\r\n }\r\n dispatch({\r\n type: SET_CURRENCY,\r\n payload: { currencyName, currencyRate }\r\n });\r\n })\r\n .catch(err => {\r\n console.log(\"Error: \", err);\r\n });\r\n };\r\n};\r\n","import { FETCH_PRODUCTS_SUCCESS } from \"../actions/productActions\";\r\n\r\nconst initState = {\r\n products: []\r\n};\r\n\r\nconst productReducer = (state = initState, action) => {\r\n if (action.type === FETCH_PRODUCTS_SUCCESS) {\r\n return {\r\n ...state,\r\n products: action.payload\r\n };\r\n }\r\n\r\n return state;\r\n};\r\n\r\nexport default productReducer;\r\n","export const FETCH_PRODUCTS_SUCCESS = \"FETCH_PRODUCTS_SUCCESS\";\r\n\r\nconst fetchProductsSuccess = products => ({\r\n type: FETCH_PRODUCTS_SUCCESS,\r\n payload: products\r\n});\r\n\r\n// fetch products\r\nexport const fetchProducts = products => {\r\n return dispatch => {\r\n dispatch(fetchProductsSuccess(products));\r\n };\r\n};\r\n","import uuid from \"uuid/v4\";\r\nimport {\r\n ADD_TO_CART,\r\n DECREASE_QUANTITY,\r\n DELETE_FROM_CART,\r\n DELETE_ALL_FROM_CART\r\n} from \"../actions/cartActions\";\r\n\r\nconst initState = [];\r\n\r\nconst cartReducer = (state = initState, action) => {\r\n const cartItems = state,\r\n product = action.payload;\r\n\r\n if (action.type === ADD_TO_CART) {\r\n // for non variant products\r\n if (product.variation === undefined) {\r\n const cartItem = cartItems.filter(item => item.id === product.id)[0];\r\n if (cartItem === undefined) {\r\n return [\r\n ...cartItems,\r\n {\r\n ...product,\r\n quantity: product.quantity ? product.quantity : 1,\r\n cartItemId: uuid()\r\n }\r\n ];\r\n } else {\r\n return cartItems.map(item =>\r\n item.cartItemId === cartItem.cartItemId\r\n ? {\r\n ...item,\r\n quantity: product.quantity\r\n ? item.quantity + product.quantity\r\n : item.quantity + 1\r\n }\r\n : item\r\n );\r\n }\r\n // for variant products\r\n } else {\r\n const cartItem = cartItems.filter(\r\n item =>\r\n item.id === product.id &&\r\n product.selectedProductColor &&\r\n product.selectedProductColor === item.selectedProductColor &&\r\n product.selectedProductSize &&\r\n product.selectedProductSize === item.selectedProductSize &&\r\n (product.cartItemId ? product.cartItemId === item.cartItemId : true)\r\n )[0];\r\n\r\n if (cartItem === undefined) {\r\n return [\r\n ...cartItems,\r\n {\r\n ...product,\r\n quantity: product.quantity ? product.quantity : 1,\r\n cartItemId: uuid()\r\n }\r\n ];\r\n } else if (\r\n cartItem !== undefined &&\r\n (cartItem.selectedProductColor !== product.selectedProductColor ||\r\n cartItem.selectedProductSize !== product.selectedProductSize)\r\n ) {\r\n return [\r\n ...cartItems,\r\n {\r\n ...product,\r\n quantity: product.quantity ? product.quantity : 1,\r\n cartItemId: uuid()\r\n }\r\n ];\r\n } else {\r\n return cartItems.map(item =>\r\n item.cartItemId === cartItem.cartItemId\r\n ? {\r\n ...item,\r\n quantity: product.quantity\r\n ? item.quantity + product.quantity\r\n : item.quantity + 1,\r\n selectedProductColor: product.selectedProductColor,\r\n selectedProductSize: product.selectedProductSize\r\n }\r\n : item\r\n );\r\n }\r\n }\r\n }\r\n\r\n if (action.type === DECREASE_QUANTITY) {\r\n if (product.quantity === 1) {\r\n const remainingItems = (cartItems, product) =>\r\n cartItems.filter(\r\n cartItem => cartItem.cartItemId !== product.cartItemId\r\n );\r\n return remainingItems(cartItems, product);\r\n } else {\r\n return cartItems.map(item =>\r\n item.cartItemId === product.cartItemId\r\n ? { ...item, quantity: item.quantity - 1 }\r\n : item\r\n );\r\n }\r\n }\r\n\r\n if (action.type === DELETE_FROM_CART) {\r\n const remainingItems = (cartItems, product) =>\r\n cartItems.filter(cartItem => cartItem.cartItemId !== product.cartItemId);\r\n return remainingItems(cartItems, product);\r\n }\r\n\r\n if (action.type === DELETE_ALL_FROM_CART) {\r\n return cartItems.filter(item => {\r\n return false;\r\n });\r\n }\r\n\r\n return state;\r\n};\r\n\r\nexport default cartReducer;\r\n","import {\r\n ADD_TO_WISHLIST,\r\n DELETE_FROM_WISHLIST,\r\n DELETE_ALL_FROM_WISHLIST\r\n} from \"../actions/wishlistActions\";\r\n\r\nconst initState = [];\r\n\r\nconst wishlistReducer = (state = initState, action) => {\r\n const wishlistItems = state,\r\n product = action.payload;\r\n\r\n if (action.type === ADD_TO_WISHLIST) {\r\n const wishlistItem = wishlistItems.filter(\r\n item => item.id === product.id\r\n )[0];\r\n if (wishlistItem === undefined) {\r\n return [...wishlistItems, product];\r\n } else {\r\n return wishlistItems;\r\n }\r\n }\r\n\r\n if (action.type === DELETE_FROM_WISHLIST) {\r\n const remainingItems = (wishlistItems, product) =>\r\n wishlistItems.filter(wishlistItem => wishlistItem.id !== product.id);\r\n return remainingItems(wishlistItems, product);\r\n }\r\n\r\n if (action.type === DELETE_ALL_FROM_WISHLIST) {\r\n return wishlistItems.filter(item => {\r\n return false;\r\n });\r\n }\r\n\r\n return wishlistItems;\r\n};\r\n\r\nexport default wishlistReducer;\r\n","import { ADD_TO_CATEGORY } from \"../actions/categoryAction\";\r\n\r\nconst initState = {\r\n main: [],\r\n sub: [],\r\n};\r\n\r\nconst categoryReducer = (state = initState, action) => {\r\n if (action.type === ADD_TO_CATEGORY) {\r\n return {\r\n ...state,\r\n main: action.payload.main,\r\n sub: action.payload.sub,\r\n };\r\n }\r\n\r\n return state;\r\n};\r\n\r\nexport default categoryReducer;\r\n","export const ADD_TO_CATEGORY = \"ADD_TO_CATEGORY\";\r\n\r\nexport const setCategory = (payload) => {\r\n return (dispatch) => {\r\n dispatch({ type: ADD_TO_CATEGORY, payload: payload });\r\n };\r\n};\r\n","import { ADD_TO_COMPARE, DELETE_FROM_COMPARE } from \"../actions/compareActions\";\r\n\r\nconst initState = [];\r\n\r\nconst compareReducer = (state = initState, action) => {\r\n const compareItems = state,\r\n product = action.payload;\r\n\r\n if (action.type === ADD_TO_COMPARE) {\r\n const compareItem = compareItems.filter(item => item.id === product.id)[0];\r\n if (compareItem === undefined) {\r\n return [...compareItems, product];\r\n } else {\r\n return compareItems;\r\n }\r\n }\r\n\r\n if (action.type === DELETE_FROM_COMPARE) {\r\n const remainingItems = (compareItems, product) =>\r\n compareItems.filter(compareItem => compareItem.id !== product.id);\r\n return remainingItems(compareItems, product);\r\n }\r\n\r\n return compareItems;\r\n};\r\n\r\nexport default compareReducer;\r\n","import currencyReducer from \"./currencyReducer\";\r\nimport productReducer from \"./productReducer\";\r\nimport cartReducer from \"./cartReducer\";\r\nimport wishlistReducer from \"./wishlistReducer\";\r\nimport categoryReducer from \"./categoryReducer\";\r\nimport compareReducer from \"./compareReducer\";\r\nimport { combineReducers } from \"redux\";\r\nimport { createMultilanguageReducer } from \"redux-multilanguage\";\r\n\r\nconst rootReducer = combineReducers({\r\n multilanguage: createMultilanguageReducer({ currentLanguageCode: \"en\" }),\r\n currencyData: currencyReducer,\r\n productData: productReducer,\r\n cartData: cartReducer,\r\n wishlistData: wishlistReducer,\r\n compareData: compareReducer,\r\n categories: categoryReducer\r\n});\r\n\r\nexport default rootReducer;\r\n","import { useEffect } from \"react\";\r\nimport { withRouter } from \"react-router-dom\";\r\n\r\nconst ScrollToTop = props => {\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n });\r\n return props.children;\r\n};\r\n\r\nexport default withRouter(ScrollToTop);\r\n","import React from \"react\";\r\nimport { Route, Redirect } from \"react-router-dom\";\r\n\r\nconst PrivateRoute = ({ component: Component, ...rest }) => {\r\n const token = localStorage.getItem(\"token\");\r\n\r\n return (token ? : )} />;\r\n};\r\n\r\nexport default PrivateRoute;\r\n","/* eslint-disable react-hooks/exhaustive-deps */\r\nimport PropTypes from \"prop-types\";\r\nimport React, { useEffect, Suspense, lazy, useContext } from \"react\";\r\nimport ScrollToTop from \"./helpers/scroll-top\";\r\nimport { Switch, Route } from \"react-router-dom\";\r\nimport { ToastProvider } from \"react-toast-notifications\";\r\nimport { multilanguage, loadLanguages } from \"redux-multilanguage\";\r\nimport { connect } from \"react-redux\";\r\nimport { BreadcrumbsProvider } from \"react-breadcrumbs-dynamic\";\r\nimport { UserContextProvider } from \"./context/UserContext\";\r\nimport { LoadingContext, LoadingContextProvider } from \"./context/Loading\";\r\nimport \"react-loader-spinner/dist/loader/css/react-spinner-loader.css\";\r\nimport PrivateRoute from \"./components/PrivateRoute\";\r\nimport { setCategory } from \"./redux/actions/categoryAction\";\r\nimport { useFetch } from \"./hooks/use-fetch\";\r\nimport { getAllCategories } from \"./services/product\";\r\n// home pages\r\nconst HomeFashion = lazy(() => import(\"./pages/home/HomeFashion\"));\r\n// product pages\r\nconst AddProductComp = lazy(() => import(\"./pages/AddProduct\"));\r\nconst ShopGridStandard = lazy(() => import(\"./pages/shop/ShopGridStandard\"));\r\nconst Product = lazy(() => import(\"./pages/shop-product/Product\"));\r\nconst ProductTabLeft = lazy(() =>\r\n import(\"./pages/shop-product/ProductTabLeft\")\r\n);\r\nconst ProductTabRight = lazy(() =>\r\n import(\"./pages/shop-product/ProductTabRight\")\r\n);\r\nconst ProductSticky = lazy(() => import(\"./pages/shop-product/ProductSticky\"));\r\nconst ProductSlider = lazy(() => import(\"./pages/shop-product/ProductSlider\"));\r\nconst ProductFixedImage = lazy(() =>\r\n import(\"./pages/shop-product/ProductFixedImage\")\r\n);\r\n\r\n// blog pages\r\nconst BlogStandard = lazy(() => import(\"./pages/blog/BlogStandard\"));\r\nconst BlogNoSidebar = lazy(() => import(\"./pages/blog/BlogNoSidebar\"));\r\nconst BlogRightSidebar = lazy(() => import(\"./pages/blog/BlogRightSidebar\"));\r\nconst BlogDetailsStandard = lazy(() =>\r\n import(\"./pages/blog/BlogDetailsStandard\")\r\n);\r\n\r\n// other pages\r\nconst About = lazy(() => import(\"./pages/other/About\"));\r\nconst Contact = lazy(() => import(\"./pages/other/Contact\"));\r\nconst MyAccount = lazy(() => import(\"./pages/other/MyAccount\"));\r\nconst LoginRegister = lazy(() => import(\"./pages/other/LoginRegister\"));\r\n\r\nconst Cart = lazy(() => import(\"./pages/other/Cart\"));\r\nconst Wishlist = lazy(() => import(\"./pages/other/Wishlist\"));\r\nconst Compare = lazy(() => import(\"./pages/other/Compare\"));\r\nconst Checkout = lazy(() => import(\"./pages/other/Checkout\"));\r\n\r\nconst NotFound = lazy(() => import(\"./pages/other/NotFound\"));\r\nconst App = (props) => {\r\n const { setLoading } = useContext(LoadingContext);\r\n\r\n const [allSubCategories] = useFetch(\r\n () =>\r\n getAllCategories({\r\n pageCount: 0,\r\n pageIndex: 0,\r\n id: 0,\r\n categoryId: 0,\r\n isSubCategoryes: true,\r\n code: \"\",\r\n }),\r\n [],\r\n {\r\n setLoading,\r\n }\r\n );\r\n\r\n const [allMainCategories] = useFetch(\r\n () =>\r\n getAllCategories({\r\n pageCount: 0,\r\n pageIndex: 0,\r\n id: 0,\r\n categoryId: 0,\r\n isSubCategoryes: false,\r\n code: \"\",\r\n }),\r\n [],\r\n {\r\n setLoading,\r\n }\r\n );\r\n\r\n useEffect(() => {\r\n props.dispatch(\r\n setCategory({ main: allMainCategories.value, sub: allSubCategories.value })\r\n );\r\n }, [allMainCategories, allSubCategories]);\r\n\r\n useEffect(() => {\r\n props.dispatch(\r\n loadLanguages({\r\n languages: {\r\n en: require(\"./translations/english.json\"),\r\n fn: require(\"./translations/french.json\"),\r\n de: require(\"./translations/germany.json\"),\r\n },\r\n })\r\n );\r\n }, [props]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* Shop product pages */}\r\n (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* Blog pages */}\r\n \r\n \r\n \r\n \r\n\r\n {/* Other pages */}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nApp.propTypes = {\r\n dispatch: PropTypes.func,\r\n};\r\n\r\nexport default connect()(multilanguage(App));\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === \"localhost\" ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === \"[::1]\" ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === \"production\" && \"serviceWorker\" in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener(\"load\", () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n \"This web app is being served cache-first by a service \" +\r\n \"worker. To learn more, visit https://bit.ly/CRA-PWA\"\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === \"installed\") {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n \"New content is available and will be used when all \" +\r\n \"tabs for this page are closed. See https://bit.ly/CRA-PWA.\"\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log(\"Content is cached for offline use.\");\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error(\"Error during service worker registration:\", error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get(\"content-type\");\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf(\"javascript\") === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n \"No internet connection found. App is running in offline mode.\"\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if (\"serviceWorker\" in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import \"react-app-polyfill/ie11\";\r\nimport \"react-app-polyfill/stable\";\r\nimport React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport { createStore, applyMiddleware } from \"redux\";\r\nimport thunk from \"redux-thunk\";\r\nimport { save, load } from \"redux-localstorage-simple\";\r\nimport { Provider } from \"react-redux\";\r\nimport { fetchProducts } from \"./redux/actions/productActions\";\r\nimport rootReducer from \"./redux/reducers/rootReducer\";\r\nimport products from \"./data/products.json\";\r\nimport App from \"./App\";\r\nimport \"./assets/scss/style.scss\";\r\nimport * as serviceWorker from \"./serviceWorker\";\r\nimport { BrowserRouter } from \"react-router-dom\";\r\n\r\nimport { composeWithDevTools } from \"redux-devtools-extension\";\r\n\r\nconst store = createStore(\r\n rootReducer,\r\n load(),\r\n composeWithDevTools(applyMiddleware(thunk, save()))\r\n);\r\n\r\n// fetch products from json file\r\nstore.dispatch(fetchProducts(products));\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n","export const ADD_TO_CART = \"ADD_TO_CART\";\r\nexport const DECREASE_QUANTITY = \"DECREASE_QUANTITY\";\r\nexport const DELETE_FROM_CART = \"DELETE_FROM_CART\";\r\nexport const DELETE_ALL_FROM_CART = \"DELETE_ALL_FROM_CART\";\r\n\r\n//add to cart\r\nexport const addToCart = (\r\n item,\r\n addToast,\r\n quantityCount,\r\n selectedProductColor,\r\n selectedProductSize\r\n) => {\r\n return dispatch => {\r\n if (addToast) {\r\n addToast(\"Added To Cart\", { appearance: \"success\", autoDismiss: true });\r\n }\r\n dispatch({\r\n type: ADD_TO_CART,\r\n payload: {\r\n ...item,\r\n quantity: quantityCount,\r\n selectedProductColor: selectedProductColor\r\n ? selectedProductColor\r\n : item.selectedProductColor\r\n ? item.selectedProductColor\r\n : null,\r\n selectedProductSize: selectedProductSize\r\n ? selectedProductSize\r\n : item.selectedProductSize\r\n ? item.selectedProductSize\r\n : null\r\n }\r\n });\r\n };\r\n};\r\n//decrease from cart\r\nexport const decreaseQuantity = (item, addToast) => {\r\n return dispatch => {\r\n if (addToast) {\r\n addToast(\"Item Decremented From Cart\", {\r\n appearance: \"warning\",\r\n autoDismiss: true\r\n });\r\n }\r\n dispatch({ type: DECREASE_QUANTITY, payload: item });\r\n };\r\n};\r\n//delete from cart\r\nexport const deleteFromCart = (item, addToast) => {\r\n return dispatch => {\r\n if (addToast) {\r\n addToast(\"Removed From Cart\", { appearance: \"error\", autoDismiss: true });\r\n }\r\n dispatch({ type: DELETE_FROM_CART, payload: item });\r\n };\r\n};\r\n//delete all from cart\r\nexport const deleteAllFromCart = addToast => {\r\n return dispatch => {\r\n if (addToast) {\r\n addToast(\"Removed All From Cart\", {\r\n appearance: \"error\",\r\n autoDismiss: true\r\n });\r\n }\r\n dispatch({ type: DELETE_ALL_FROM_CART });\r\n };\r\n};\r\n\r\n// get stock of cart item\r\nexport const cartItemStock = (item, color, size) => {\r\n if (item.stock) {\r\n return item.stock;\r\n } else {\r\n return item.variation\r\n .filter(single => single.color === color)[0]\r\n .size.filter(single => single.name === size)[0].stock;\r\n }\r\n};\r\n","import React from \"react\";\r\nimport { Audio } from \"react-loader-spinner\";\r\nimport styled from \"styled-components\";\r\n\r\nconst Overlay = styled.div`\r\n display: flex;\r\n justify-content: center;\r\n align-items: center;\r\n position: absolute;\r\n bottom: 0;\r\n top: 0;\r\n right: 0;\r\n left: 0;\r\n\r\n &::before {\r\n content: \"\";\r\n background: rgba(0, 0, 0, 0.6);\r\n position: fixed;\r\n top: 0;\r\n left: 0;\r\n right: 0;\r\n bottom: 0;\r\n z-index: 9999;\r\n }\r\n`;\r\n\r\nexport default function Loader({ isLoaderShow }) {\r\n return (\r\n isLoaderShow && (\r\n \r\n \r\n )\r\n );\r\n}\r\n\r\n","/* eslint-disable react-hooks/exhaustive-deps */\r\nimport React, { createContext, useCallback, useMemo, useState } from \"react\";\r\nimport Loader from \"../components/Loader\";\r\n\r\nexport const LoadingContext = createContext({\r\n loading: false,\r\n showLoading: () => {},\r\n hideLoading: () => {},\r\n});\r\n\r\nexport function LoadingContextProvider({ children }) {\r\n const [loading, setLoading] = useState(false);\r\n\r\n const showLoading = useCallback(() => {\r\n setLoading(true);\r\n });\r\n\r\n const hideLoading = useCallback(() => {\r\n setLoading(false);\r\n });\r\n\r\n const context = useMemo(() => ({ loading, showLoading, hideLoading , setLoading}), [loading, showLoading, hideLoading, setLoading]);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n \r\n );\r\n}\r\n"],"sourceRoot":""}