{"version":3,"sources":["assets/images/main/divany.png","assets/images/main/kuhnia.png","assets/images/main/spalnia.png","assets/images/main/livingroom.png","assets/images/main/office.png","assets/utils/constants.js","assets/api/MainApi.js","components/CityPopup/CityPopup.js","assets/images/privacypolicy.pdf","components/Footer/Footer.js","components/SofaPreloader/SofaPreloader.js","components/SubCategory/Filters/Filters.js","components/FiltersPopup/FiltersPopup.js","components/MiniPreloader/MiniPreloader.js","assets/icons/icons.js","assets/utils/utils.js","assets/icons/categoryIcons.js","components/ProductCard/ProductCard.js","components/Сrumbs/Сrumbs.js","components/SubCategory/SubCategory.js","components/Category/CategoryCard/CategoryCard.js","components/Category/Category.js","utils/utils.js","assets/images/more.svg","components/CartPopup/CartPopup.js","components/CartPage/Cart/Cart.js","components/CartPage/PaymentMethod/PaymentMethod.js","components/CartPage/UserData/UserData.js","components/SuccessPopup/SuccessPopup.js","components/CartPage/CartPage.js","components/SubmitActionPopup/SubmitActionPopup.js","components/Requisites/Requisites.js","components/Profile/Account/Account.js","components/Profile/Addresses/Addresses.js","components/Profile/TrackOrder/Orders.js","components/Profile/Profile.js","components/Favourites/Favourites.js","components/Refund/Refund.js","utils/MainApi.js","components/Login/Login.js","components/Recovery/Recovery.js","components/Register/Register.js","components/ColorPopup/ColorPopup.js","components/MainPreloader/MainPreloader.js","components/Main/Banner/Banner.js","assets/hooks/useWindowSize.js","components/Main/Products/Products.js","components/Main/PromotedCards/PromotedCard/PromotedCard.js","components/Main/PromotedCards/PromotedCards.js","components/Main/Reviews/ReviewCard/ReviewCard.js","components/Main/Reviews/Reviews.js","assets/images/main/reviews/1.png","assets/images/main/reviews/2.png","assets/images/main/reviews/3.png","assets/images/main/reviews/4.png","components/Main/Main.js","components/ProductPage/ProductPage.js","components/NewHeader/CatalogDrop/CatalogDrop.js","components/NewHeader/MenuPopup/MenuPopup.js","components/NewHeader/PopularCategory/PopularCategory.js","components/NewHeader/RoomsDrop/RoomsDrop.js","assets/utils/ImageOnLoad.js","components/NewHeader/SearchDrop/SearchCard/SearchCard.js","components/NewHeader/SearchDrop/SearchDrop.js","components/NewHeader/NewHeader.js","components/Room/Room.js","components/CallPopup/CallPopup.js","components/App/App.js","reportWebVitals.js","ScrollToTop.js","index.js"],"names":["MAIN_URL","getCityId","name","cityMap","getAmountByCity","seller_cities","localStorage","getItem","id","result","filter","item","_id","Number","amount","promotedCardsLinks","sofa","title","path","type","img","divanImg","items","kitchen","kuhniaImg","bedroom","spalniaImg","livingroom","livingroomImg","office","officeImg","CONTACT_PHONE","FORMATED_PHONE","replace","WORK_TIME","mainApi","res","ok","json","statusCode","status","then","Promise","reject","message","msg","detail","func","params","console","log","refreshJWT","catch","err","fetch","method","credentials","headers","Accept","this","_checkResponse","translit_name","URLSearchParams","category_translit_name","last_id","limit","data","sub_category_translit_name","text","email","password","firstname","surname","phone_number","body","JSON","stringify","_checkResponseWithCookies","getRandomSub","city_id","first_name","last_name","phone","baseUrl","CityPopup","props","React","useState","searchValue","setSearchValue","className","isCityPopupOpen","onClick","handleCityPopupClose","width","height","viewBox","fill","xmlns","d","stroke","strokeWidth","strokeLinecap","placeholder","value","onChange","e","target","maxLength","fillRule","clipRule","cities","toLowerCase","includes","length","map","i","city","setItem","window","location","reload","cityValue","firstColumnLinks","to","Footer","rel","href","privacypolicy","SofaPreloader","Filters","handleUpdateByFilters","filters","handleResetFilters","divRef","isMoreLoading","inStock","price","min","max","depth","brands","filtersValue","setFiltersValue","undefined","openedFilter","setOpendFilter","filtersValues","setFiltersValues","isPriceOpen","isBrandsOpen","brandsValue","setBrandsValue","handleBrandsChange","inputValue","isReseting","handleFilterOpen","handleMinChange","filters_from_func","handleMaxChange","criterions","clipPath","transform","criteriy","brand","indexOf","newBrands","handleBrandSelect","scrollTo","top","behavior","FiltersPopup","isFilterPopupOpen","handleFilterPopupClose","setFiltersUpd","MiniPreloader","isLinkColor","strokeDasharray","x1","y1","x2","y2","gradientUnits","stopColor","offset","stopOpacity","PhoneIcon","mainClassName","fillClassName","CartIcon","strokeClassName","GeoIcon","LogoIcon","cx","cy","rx","ry","CatalogIcon","x","y","RoomsIcon","strokeLinejoin","SearchIcon","FavoriteIcon","ArrowIcon","MenuIcon","CloseIcon","getCorrectWordForm","count","getPrice","firstc_data","getIconByType","MatIcon","ChairIcon","WardrobeIcon","SofaIcon","TableIcon","PedestalIcon","HangerIcon","HallwayIcon","KitchenIcon","DecorIcon","LinenIcon","FloorCoveringIcon","LivingRoomIcon","BedroomIcon","BedIcon","OfficeIcon","ChildrenRoomIcon","UniversalIcon","sendMetriс","ym","ProductCard","product","cart","handleToCartBtn","setCartPopupOpen","link","handleLikeBtn","favouritesProducts","handleCallPopupOpen","isInFavorite","isInCart","priceValue","photos","photo","setPhoto","setSlide","stopPropagation","preventDefault","onMouseLeave","style","gridTemplateColumns","slice","onMouseEnter","handlePhotoSlide","src","alt","toLocaleString","Сrumbs","links","SubCategory","handleColorPopupOpen","createRef","url","useRouteMatch","isPreloaderVisible","setPreloaderVisible","useParams","sub_category","category","setFilterPopupOpen","listRef","useRef","subcategory","setSubcategory","setItems","itemsCount","setItemsCount","isItemPreloaderVisible","setItemPreloaderVisible","useEffect","price_sort","translit_value","last_price","getSubcategory","getItemsBySubAndCategory","res2","finally","priceSortByDecrease","setPriceSortByDecrease","setFilters","defMaxValue","array","Object","values","join","setMoreLoading","ref","Helmet","handleSortChange","prevList","concat","CategoryCard","item_count","Category","selectedCategory","setSelectedCategory","subcategories","setSubcategories","getSubcategoriesByCategory","products","manufacturer","key_words","description","specifications","weight","material","colour","discount","article","variations","product_id","categories","sub_catigories","sub_category_id","testOrders","order_number","full_price","isDelivery","address","order_items","CartPopup","isCartPopupOpen","setCart","handleCartPopupClose","allCartProductsCount","handleAddCounter","new_cart","dataLayer","push","ecommerce","currencyCode","add","quantity","handleMinusCounter","remove","handleRemoveFromCart","setTimeout","document","getElementById","scrollHeight","barcode","moreIcon","filt_item","totalPrice","Cart","PaymentMethod","UserData","currentUser","setUserDataValid","personalValues","loggedIn","setPersonalValues","errorMassage","validState","nameValidity","setNameValidity","surnameValidity","setSurnameValidity","phoneValidity","setPhoneValidity","emailValidity","setEmailValidity","prevValue","inputMode","onKeyDown","keyCode","handlePhoneDelite","formattedInputValue","firstSimbols","substring","validator","isEmail","validity","valid","validationMessage","SuccessPopup","handleClose","isOpen","ai_id","CartPage","setSubmitActionPopupOpen","history","useHistory","userDataValid","isSuccessPopupOpen","setSuccessPopupOpen","createdOrder","setCreatedOrder","step","setStep","goBack","cartPrevArray","parse","cart_to_api","item_id","toString","createOrder","cartArray","purchase","actionField","goal_id","handleCreateOrder","SubmitActionPopup","isSubmitActionPopupOpen","handleSubmitActionPopupClose","handleSubmitActionPopupSubmit","requisites","ogrn","inn","legal_address","postal_address","actual_address","fax","work_time","Requisites","Account","nameValue","setNameValue","surnameValue","setSurnameValue","phoneValue","setPhoneValue","emailValue","setEmailValue","formatedPhoneNumber","setLoggedIn","setCurrentUser","removeItem","addresses","formated_address","flat","entrance","floor","isPrivateHouse","Addresses","idChangeOpen","setIdChangeOpen","addAddressOpen","setAddAddressOpen","privateHouseSelected","setPrivateHouseSelected","adressValue","setAdressValue","setAdressValidity","flatValue","setFlatValue","setFlatValidity","entranceValue","setEntranceValue","floorValue","setFloorValue","handleAdressChange","handleFlatChange","handleEntranceChange","handleFloorChange","handleChangeOpen","Orders","selectedStatus","setSelectedStatus","isSelectorOpen","setSelectorOpen","orderNumberOpen","setOrderNumberOpen","toUpperCase","product_i","Profile","page","Favourites","list","Refund","r","_BASE_URL","token","code","Login","from","passValue","setPassValue","passValidity","setPassValidity","submitError","setSubmitError","login","checkJwt","user","Recovery","codeValue","setCodeValue","codeValidity","setCodeValidity","passCheckValue","setPassCheckValue","passCheckValidity","setPassCheckValidity","timerValue","setTimerValue","sendCounter","setSendCounter","sendAgainAvailible","setSendAgainAvailible","timer","setInterval","clearInterval","firstStepToken","setFirstStepToken","secondStepToken","setSecondStepToken","firstStepError","setFirstStepError","secondStepError","setSecondStepError","recoveryCheckCode","recoveryStep1","recoverySendCodeAgian","recoverySetPass","Register","regToken","new_phone","generated_utc","moment","format","timeLeft","setTimeLeft","registerCheckCode","register","ColorPopup","isColorPopupOpen","handleColorPopupClose","availibleColors","selectedColor","MainPreloader","Banner","slides","setSlides","index","setIndex","getBanners","current","slide","flex","opacity","transition","zIndex","item_data","titles","i2","Array","clearTimeout","handleSliderClick","useWindowSize","windowSize","setWindowSize","handleResize","innerWidth","innerHeight","addEventListener","removeEventListener","Products","setProducts","getHitsOrNews","productsByWindowSize","PromotedCard","ANIMATION_WAIT_TIME","PromotedCards","sequence","wrapper","cursor","repeat","Infinity","locale","ReviewCard","avatar","stars","date","reviews","Reviews","Main","parseFeatureKey","key","parseFeatureValue","BuyInfo","selectedByColorProduct","selectedProduct","handleColorOpen","addToCart","isMobile","ProductPage","color","setSelectedProduct","getExactItem","selectedPhotoId","setSelectedPhotoId","active_color","unselectable","left","scrollWidth","brand_name","features","CatalogDrop","isOpened","setOpened","catalogBtnRef","dorpRef","checkIfClickedOutside","contains","onclick","setSelectCategory","closeDropdown","filteredCategories","handleSelectCategory","MenuPopup","rooms","close","filteredRooms","selectedType","setSelectedType","sub","PopularCategory","topCategories","categoriesByWindowSize","RoomsDrop","roomsBtnRef","ImageOnLoad","keyValue","loaded","setLoaded","onLoad","complete","useImageLoaded","SearchCard","SearchDrop","isSearchPreloaderVisible","searchItems","NewHeader","useLocation","isDropDownOpened","setDropDownOpened","setSearchPreloaderVisible","setSearchItems","delayDebounceFn","isMenuOpen","setMenuOpen","setRooms","isRoomsOpen","setRoomsOpen","isCatalogOpen","setCatalogOpen","setCategories","setTopCategories","getRooms","getAllCategories","getTopCategories","scrollWindowPosition","setScrollWindowPosition","popupScrollPosition","setPopupScrollPosition","handleScroll","position","pageYOffset","passive","overflow","pathname","Room","room","selectedRoom","setSelectedRoom","getSubcategoriesByRoom","CallPopup","App","setScreenWidth","setCityPopupOpen","setColorPopupOpen","setCityValue","filterProducts","setSubcategoryPreloaderVisible","filtersUpd","keys","forEach","Math","setCartAllProductsCount","product_from_cart","item2","cart_item","counter","setFavouritesProducts","liked","liked_item","setSelectedColor","setAvailibleColors","isCallPopupOpen","setCallPopupOpen","exact","colors","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ScrollToTop","prevProps","Component","withRouter","ReactDOM","render"],"mappings":"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","file":"static/js/main.aa33c610.chunk.js","sourcesContent":["export default __webpack_public_path__ + \"static/media/divany.c349c563.png\";","export default __webpack_public_path__ + \"static/media/kuhnia.7fa0e5e8.png\";","export default __webpack_public_path__ + \"static/media/spalnia.eb100dc1.png\";","export default __webpack_public_path__ + \"static/media/livingroom.17a2cf76.png\";","export default __webpack_public_path__ + \"static/media/office.db3499c3.png\";","import divanImg from '../images/main/divany.png'\nimport kuhniaImg from '../images/main/kuhnia.png'\nimport spalniaImg from '../images/main/spalnia.png'\nimport livingroomImg from '../images/main/livingroom.png'\nimport officeImg from '../images/main/office.png'\n\n\n\n\nexport const MAIN_URL = 'https://app.divanchik72.com'\n\n\nexport const MAIN_CATEGORIES = [\n {\n _id: \"6311e48798148dd237e42d69\",\n name: \"Диваны\",\n translit_name: \"divany\"\n },\n {\n _id: \"6311d445e16cedc75f16fc35\",\n name: \"Матрасы\",\n translit_name: \"matrasy\"\n },\n {\n _id: \"6311dde898148dd237e42d65\",\n name: \"Кресла и стулья\",\n translit_name: \"kresla-i-stulja\"\n },\n {\n _id: \"6311de0198148dd237e42d67\",\n name: \"Шкафы\",\n translit_name: \"shkafy\"\n },\n\n {\n _id: \"6311e99837bd3559590eb648\",\n name: \"Столы\",\n translit_name: \"stoly\"\n },\n {\n _id: \"6311ec4437bd3559590eb64c\",\n name: \"Тумбы и комоды\",\n translit_name: \"tumby-i-komody\"\n },\n\n {\n _id: \"6314dacb40f4478cd81ce630\",\n name: \"Кухни\",\n translit_name: \"kuhni\"\n },\n\n {\n _id: \"63136f3e40f4478cd81ce626\",\n name: \"Мебель для прихожей\",\n translit_name: \"mebel-dlja-prihozhej\"\n },\n {\n _id: \"6312102283702bc22d4eb39e\",\n name: \"Кровати\",\n translit_name: \"krovati\"\n },\n {\n _id: \"6311fee737bd3559590eb653\",\n name: \"Мебель для детской\",\n translit_name: \"mebel-dlja-detskoj\"\n },\n {\n _id: \"6311f92e37bd3559590eb650\",\n name: \"Вешалки\",\n translit_name: \"veshalki\"\n },\n {\n _id: \"6317298b24dfa4170cda62a4\",\n name: \"Декор для дома\",\n translit_name: \"dekor-dlja-doma\"\n }\n\n]\n\n\nexport function getCityId(name) {\n let cityMap = {\n \"Новый Уренгой\": \"63777e52c505252a8fc59c09\",\n \"Надым\": \"63777e62c505252a8fc59c0a\",\n \"Тобольск\": \"63777e74c505252a8fc59c0b\",\n }\n if (cityMap[name]) return cityMap[name]\n else return \"63777e74c505252a8fc59c0b\"\n\n\n\n}\n\n\nexport function getAmountByCity(seller_cities) {\n const name = localStorage.getItem('city') ? localStorage.getItem('city') : 'Тобольск'\n let cityMap = {\n \"Новый Уренгой\": \"63777e52c505252a8fc59c09\",\n \"Надым\": \"63777e62c505252a8fc59c0a\",\n \"Тобольск\": \"63777e74c505252a8fc59c0b\",\n }\n let id = cityMap[name] ? cityMap[name] : \"63777e74c505252a8fc59c0b\"\n\n let result = seller_cities.filter((item) => item._id === id)[0]\n\n return Number(result.amount)\n}\n\n\n\n\nexport const promotedCardsLinks = {\n sofa: {\n title: `Диваны и кресла\nв каждый дом`,\n path: `/categories/divany`,\n type: 'divani-kresla',\n img: divanImg,\n items: [\n {\n name: 'Прямые диваны',\n path: `/sub-category/divany/divany-prjamye`,\n },\n // {\n // name: 'Диваны п-образной формы',\n // path: `/sub-category/divany/divany-p-obraznoj-formy`,\n // },\n {\n name: 'Угловые диваны',\n path: `/sub-category/divany/divany-uglovye`,\n },\n {\n name: 'Кресла',\n path: `/sub-category/kresla-i-stulja/kresla`,\n },\n {\n name: 'Стулья',\n path: `/sub-category/kresla-i-stulja/stulja`,\n },\n ],\n },\n kitchen: {\n title: `Кухонная\nзона`,\n path: `/room/kuhnja`,\n type: 'kuhnia',\n img: kuhniaImg,\n items: [\n {\n name: 'Фартуки',\n path: `/sub-category/kuhni/fartuki`,\n },\n {\n name: 'Кухонные гарнитуры',\n path: `/sub-category/kuhni/kuhonnye-garnitury`,\n },\n {\n name: 'Скамьи',\n path: `/sub-category/kuhni/kuhonnye-skami`,\n },\n {\n name: 'Столешницы',\n path: `/sub-category/kuhni/stoleshnitsy`,\n },\n ],\n },\n bedroom: {\n title: `Спальня`,\n path: `/room/spalnja`,\n type: 'spalnia',\n img: spalniaImg,\n items: [\n {\n name: 'Односпальные',\n path: `/sub-category/krovati/odnospalnye-shirina-ot-80-sm`,\n },\n {\n name: 'Двуспальные',\n path: `/sub-category/krovati/dvuspalnye-shirina-ot-160-sm`,\n },\n ],\n },\n livingroom: {\n title: `Гостиная`,\n path: `/room/gostinaja`,\n type: 'livingroom',\n img: livingroomImg,\n items: [\n {\n name: 'Журнальные столы',\n path: `/sub-category/stoly/zhurnalnye-stoly`,\n },\n {\n name: 'Ковры',\n path: `/sub-category/dekor-dlja-doma/kovry`,\n },\n {\n name: 'Стеллажи',\n path: `/sub-category/shkafy/stellazhi`,\n },\n ],\n },\n office: {\n title: `Офис`,\n path: `/room/ofis`,\n type: 'office',\n img: officeImg,\n items: [\n {\n name: 'Офисные кресла',\n path: `/sub-category/kresla-i-stulja/ofisnye-kresla`,\n },\n {\n name: 'Столы для работы',\n path: `/sub-category/stoly/stoly-dlja-raboty`,\n },\n ],\n }\n}\n\n\nexport const CONTACT_PHONE = '+7 919 940 12 08'\nexport const FORMATED_PHONE = CONTACT_PHONE.replace(/\\D/g, '')\n\nexport const WORK_TIME = ['Пн-Cб 09–20', 'Вс 09–19']\n","import { MAIN_URL } from \"../utils/constants\";\n\nclass MainApi {\n // constructor({ baseUrl }) {\n // MAIN_URL = baseUrl;\n // }\n\n _checkResponse(res) {\n if (res.ok) {\n return res.json();\n } else {\n const statusCode = res.status;\n return res.json().then((res) => {\n return Promise.reject({\n statusCode: statusCode,\n message: res.msg,\n detail: res.detail,\n });\n });\n }\n }\n\n _checkResponseWithCookies({ res, func, params }) {\n if (res.ok) {\n return res.json();\n } else {\n const statusCode = res.status;\n return res.json().then((res) => {\n if (statusCode === 422 && res.detail === \"Signature has expired\") {\n console.log(\"ss\");\n return mainApi\n .refreshJWT()\n .then((res) => {\n return func(params);\n })\n .catch((err) => {\n return Promise.reject(err);\n });\n } else {\n return Promise.reject({\n statusCode: statusCode,\n message: res.msg,\n detail: res.detail,\n });\n }\n });\n }\n }\n\n refreshJWT() {\n return fetch(`${MAIN_URL}/users/refresh-jwt`, {\n method: \"POST\",\n credentials: \"include\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n }).then(this._checkResponse);\n }\n\n\n\n getExactCategory({ translit_name }) {\n let params = {\n translit_name: translit_name\n }\n\n return fetch(`${MAIN_URL}/categories/get-exact?` + new URLSearchParams(params), {\n method: \"GET\",\n credentials: \"include\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n\n }).then(this._checkResponse);\n }\n\n getSubcategoriesByCategory({ category_translit_name, last_id, limit }) {\n let params = {}\n if (category_translit_name) params.category_translit_name = category_translit_name\n if (last_id) params.last_id = last_id\n if (limit) params.limit = limit\n\n return fetch(`${MAIN_URL}/sub-categories/get-all?` + new URLSearchParams(params), {\n method: \"GET\",\n credentials: \"include\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n\n }).then(this._checkResponse);\n }\n\n\n getItemsBySubAndCategory({ data }) {\n let params = {}\n if (data) params.data = data\n\n return fetch(`${MAIN_URL}/items/get-all?` + new URLSearchParams(params), {\n method: \"GET\",\n credentials: \"include\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n\n }).then(this._checkResponse);\n }\n\n getSubcategory({ category_translit_name, translit_name }) {\n let params = {}\n if (category_translit_name) params.category_translit_name = category_translit_name\n if (translit_name) params.translit_name = translit_name\n\n return fetch(`${MAIN_URL}/sub-categories/get-exact?` + new URLSearchParams(params), {\n method: \"GET\",\n credentials: \"include\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n\n }).then(this._checkResponse);\n }\n\n getExactItem({ category_translit_name, sub_category_translit_name, _id }) {\n let params = {}\n if (category_translit_name) params.category_translit_name = category_translit_name\n if (sub_category_translit_name) params.sub_category_translit_name = sub_category_translit_name\n if (_id) params._id = _id\n\n return fetch(`${MAIN_URL}/items/get-exact?` + new URLSearchParams(params), {\n method: \"GET\",\n credentials: \"include\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n\n }).then(this._checkResponse);\n }\n\n\n\n searchItems({ text, limit }) {\n let params = {}\n if (text) params.text = text\n if (limit) params.limit = limit\n\n return fetch(`${MAIN_URL}/search/items?` + new URLSearchParams(params), {\n method: \"GET\",\n credentials: \"include\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n\n }).then(this._checkResponse);\n }\n\n\n\n\n getRandomSub() {\n return fetch(`${MAIN_URL}/sub-categories/get-random`, {\n method: \"GET\",\n credentials: \"include\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n\n }).then(this._checkResponse);\n }\n\n register({ email, password, firstname, surname, phone_number }) {\n return fetch(`${MAIN_URL}/users/signup`, {\n method: 'POST',\n credentials: 'include',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n \"email\": email,\n \"password\": password,\n \"first_name\": firstname,\n \"last_name\": surname,\n \"phone\": phone_number,\n }\n )\n }).then(this._checkResponse)\n };\n\n getUser() {\n return fetch(`${MAIN_URL}/users/get-me`, {\n method: \"GET\",\n credentials: \"include\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n\n }).then((res) => mainApi._checkResponseWithCookies({\n res: res,\n func: mainApi.getRandomSub,\n params: {}\n }))\n }\n\n createOrder({ data, city_id, first_name, last_name, phone, email }) {\n return fetch(`${MAIN_URL}/orders/create`, {\n method: 'POST',\n credentials: 'include',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n data: data,\n city_id: city_id,\n first_name: first_name,\n last_name: last_name,\n phone: phone,\n email: email,\n }\n )\n }).then(this._checkResponse)\n };\n\n getHitsOrNews({ type }) {\n let params = {}\n if (type) params.type = type\n\n\n return fetch(`${MAIN_URL}/items/hits-or-new-items?` + new URLSearchParams(params), {\n method: \"GET\",\n credentials: \"include\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n\n }).then(this._checkResponse);\n }\n\n getBanners() {\n return fetch(`${MAIN_URL}/big-image/get`, {\n method: \"GET\",\n credentials: \"include\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n\n }).then(this._checkResponse);\n }\n\n getRooms({ last_id, limit }) {\n let params = {}\n if (last_id) params.last_id = last_id\n if (limit) params.limit = limit\n\n\n return fetch(`${MAIN_URL}/rooms/get-all?` + new URLSearchParams(params), {\n method: \"GET\",\n credentials: \"include\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n\n }).then(this._checkResponse);\n }\n\n getSubcategoriesByRoom({ translit_name, last_id, limit }) {\n let params = {}\n if (translit_name) params.translit_name = translit_name\n if (last_id) params.last_id = last_id\n if (limit) params.limit = limit\n\n return fetch(`${MAIN_URL}/rooms-to-sub-categories/get-all?` + new URLSearchParams(params), {\n method: \"GET\",\n credentials: \"include\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n\n }).then(this._checkResponse);\n }\n\n getAllCategories({ last_id, limit }) {\n let params = {}\n\n if (last_id) params.last_id = last_id\n if (limit) params.limit = limit\n\n return fetch(`${MAIN_URL}/categories/get-all?` + new URLSearchParams(params), {\n method: \"GET\",\n credentials: \"include\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n\n }).then(this._checkResponse);\n }\n\n getTopCategories() {\n return fetch(`${MAIN_URL}/categories/get-top`, {\n method: \"GET\",\n credentials: \"include\",\n headers: {\n Accept: \"application/json\",\n \"Content-Type\": \"application/json\",\n },\n\n }).then(this._checkResponse);\n }\n\n\n\n}\n\n\nconst mainApi = new MainApi({\n baseUrl: MAIN_URL,\n});\n\nexport default mainApi;\n","import React from 'react'\n\nimport './CityPopup.css';\n\n\n\n\n\nfunction CityPopup(props) {\n const [searchValue, setSearchValue] = React.useState('');\n\n\n\n\n function handleCitySelection(city) {\n localStorage.setItem('city', city.name);\n console.log(city.name)\n props.handleCityPopupClose()\n window.location.reload()\n }\n function handleClose() {\n props.handleCityPopupClose()\n }\n function handleSearchChange(e) {\n setSearchValue(e.target.value)\n }\n return (\n
\n
\n { handleClose() }} className=\"city-popup__close\" width=\"22\" height=\"22\" viewBox=\"0 0 22 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n \n \n

Укажите или выберите город

\n

Поиск города

\n
\n \n \n \n \n \n
\n
\n {props.cities.filter((item) => {\n if (item.name.toLowerCase().includes(searchValue.toLowerCase())) return true\n else return false\n }).length === 0 ?\n

Такой город не найден

\n :\n\n props.cities.filter((item) => {\n if (item.name.toLowerCase().includes(searchValue.toLowerCase())) return true\n else return false\n }).map((item, i) => (\n
{ handleCitySelection(item) }} key={`city-popup__city${i}`} className=\"city-popup__city\">\n
\n

{item.name}

\n
\n ))}\n\n
\n
\n\n
\n );\n}\n\nexport default CityPopup;\n","export default __webpack_public_path__ + \"static/media/privacypolicy.2c43b39e.pdf\";","import React from 'react'\nimport { Link } from 'react-router-dom';\n\nimport './Footer.css';\nimport privacypolicy from '../../assets/images/privacypolicy.pdf'\nimport { CONTACT_PHONE, FORMATED_PHONE, WORK_TIME } from '../../assets/utils/constants';\n\nconst firstColumnLinks = [\n // {\n // text: 'Доставка и самовывоз',\n // to: '/delivery'\n // },\n {\n text: 'Обмен и возврат',\n to: '/refund'\n },\n {\n text: 'Реквизиты',\n to: '/requisites'\n },\n // {\n // text: 'Отслеживание и отмена заказов',\n // to: '/tracking'\n // },\n]\n\nconst secondColumnLinks = [\n {\n text: 'О компании',\n to: '/about-company'\n },\n {\n text: 'Другие документы',\n to: '/work-with-us'\n },\n]\n\nfunction Footer() {\n\n return (\n \n );\n}\n\nexport default Footer;\n","import React from 'react';\nimport './SofaPreloader.css';\n\nconst SofaPreloader = () => {\n return (\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n );\n};\n\nexport default SofaPreloader;\n","import React, { useEffect, useState } from 'react'\nimport './Filters.css';\n\n\n\n\nfunction Filters({ handleUpdateByFilters, filters, divRef, handleResetFilters, isMoreLoading }) {\n const [allBrands, setAllBrands] = useState([])\n const [filtersValue, setFiltersValue] = useState({\n inStock: false,\n price: {\n min: '',\n max: '',\n },\n width: {\n min: '',\n max: '',\n },\n height: {\n min: '',\n max: '',\n },\n depth: {\n min: '',\n max: '',\n },\n brands: [],\n\n\n })\n\n const [openedFilter, setOpendFilter] = useState(undefined)\n const [filtersValues, setFiltersValues] = useState(undefined)\n\n // React.useEffect(() => {\n // if (Object.keys( filters).length !== 0) {\n // setFiltersValue({\n // inStock: false,\n // price: {\n // min: filters.price.min,\n // max: filters.price.max,\n // },\n // width: {\n // min: filters.width.min,\n // max: filters.width.max,\n // },\n // height: {\n // min: filters.height.min,\n // max: filters.height.max,\n // },\n // depth: {\n // min: filters.depth.min,\n // max: filters.depth.max,\n // },\n // brands: [],\n // })\n // setAllBrands( filters.brands)\n // }\n // }, [ filters])\n\n\n function handleStockSelect() {\n setFiltersValue({\n ...filtersValue,\n inStock: !filtersValue.inStock\n })\n handleUpdateByFilters({\n filters_from_func: filtersValues ? filtersValues : [], inStock: !filtersValue.inStock\n })\n }\n\n // function handleCloseAll() {\n // setPriceOpen(false)\n // setWidthOpen(false)\n // setHeightOpen(false)\n // setDepthOpen(false)\n // setBrandsOpen(false)\n // }\n\n const [isPriceOpen, setPriceOpen] = useState(false)\n\n\n const [isWidthOpen, setWidthOpen] = useState(false)\n\n\n const [isHeightOpen, setHeightOpen] = useState(false)\n\n\n const [isDepthOpen, setDepthOpen] = useState(false)\n\n\n\n const [isBrandsOpen, setBrandsOpen] = useState(false)\n\n const [brandsValue, setBrandsValue] = useState('')\n\n\n\n function handleBrandsChange(e) {\n let inputValue = e.target.value\n setBrandsValue(inputValue)\n }\n\n\n\n\n const [isReseting, setReseting] = useState(false)\n\n\n function handleReset() {\n window.scrollTo({ top: 0, behavior: 'smooth' })\n handleResetFilters()\n setFiltersValues(undefined)\n handleUpdateByFilters({\n filters_from_func: [], inStock: filtersValue.inStock\n })\n setOpendFilter(undefined)\n // setFiltersValue({\n // inStock: false,\n // price: {\n // min: filters.price.min,\n // max: filters.price.max,\n // },\n // width: {\n // min: filters.width.min,\n // max: filters.width.max,\n // },\n // height: {\n // min: filters.height.min,\n // max: filters.height.max,\n // },\n // depth: {\n // min: filters.depth.min,\n // max: filters.depth.max,\n // },\n // brands: [],\n // })\n }\n\n\n\n\n\n function handleFilterOpen(item) {\n if (openedFilter && openedFilter.translit_name === item.translit_name) {\n setOpendFilter('')\n } else {\n setOpendFilter(item)\n }\n\n }\n\n function handleMinChange(e) {\n let inputValue = e.target.value.replace(/\\D/g, '')\n if (filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].max && Number(inputValue) > Number(filtersValues[openedFilter.translit_name].max)) {\n setFiltersValues({\n ...filtersValues,\n [openedFilter.translit_name]: {\n min: filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].max ? filtersValues[openedFilter.translit_name].max : '',\n max: inputValue,\n translit_name: filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].translit_name ? filtersValues[openedFilter.translit_name].translit_name : openedFilter.translit_name,\n type: filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].type ? filtersValues[openedFilter.translit_name].type : openedFilter.type,\n }\n })\n handleUpdateByFilters({\n filters_from_func: {\n ...filtersValues,\n [openedFilter.translit_name]: {\n min: filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].max ? filtersValues[openedFilter.translit_name].max : '',\n max: inputValue,\n translit_name: filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].translit_name ? filtersValues[openedFilter.translit_name].translit_name : openedFilter.translit_name,\n type: filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].type ? filtersValues[openedFilter.translit_name].type : openedFilter.type,\n }\n }, inStock: filtersValue.inStock\n })\n } else {\n setFiltersValues({\n ...filtersValues,\n [openedFilter.translit_name]: {\n min: inputValue,\n max: filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].max ? filtersValues[openedFilter.translit_name].max : '',\n translit_name: filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].translit_name ? filtersValues[openedFilter.translit_name].translit_name : openedFilter.translit_name,\n type: filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].type ? filtersValues[openedFilter.translit_name].type : openedFilter.type,\n }\n })\n handleUpdateByFilters({\n filters_from_func: {\n ...filtersValues,\n [openedFilter.translit_name]: {\n min: inputValue,\n max: filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].max ? filtersValues[openedFilter.translit_name].max : '',\n translit_name: filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].translit_name ? filtersValues[openedFilter.translit_name].translit_name : openedFilter.translit_name,\n type: filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].type ? filtersValues[openedFilter.translit_name].type : openedFilter.type,\n }\n }, inStock: filtersValue.inStock\n })\n }\n\n }\n\n function handleBrandSelect(brand) {\n\n\n if (filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].criterions.indexOf(brand) !== -1) {\n let newBrands = filtersValues[openedFilter.translit_name].criterions.filter((item) => {\n if (item === brand) return false\n else return true\n })\n setFiltersValues({\n ...filtersValues,\n [openedFilter.translit_name]: {\n criterions: newBrands,\n\n translit_name: filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].translit_name ? filtersValues[openedFilter.translit_name].translit_name : openedFilter.translit_name,\n type: filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].type ? filtersValues[openedFilter.translit_name].type : openedFilter.type,\n }\n })\n handleUpdateByFilters({\n filters_from_func: {\n ...filtersValues,\n [openedFilter.translit_name]: {\n criterions: newBrands,\n\n translit_name: filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].translit_name ? filtersValues[openedFilter.translit_name].translit_name : openedFilter.translit_name,\n type: filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].type ? filtersValues[openedFilter.translit_name].type : openedFilter.type,\n }\n }, inStock: filtersValue.inStock\n })\n } else {\n setFiltersValues({\n ...filtersValues,\n [openedFilter.translit_name]: {\n criterions: filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].criterions ? [...filtersValues[openedFilter.translit_name].criterions, brand] : [brand],\n\n translit_name: filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].translit_name ? filtersValues[openedFilter.translit_name].translit_name : openedFilter.translit_name,\n type: filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].type ? filtersValues[openedFilter.translit_name].type : openedFilter.type,\n }\n })\n handleUpdateByFilters({\n filters_from_func: {\n ...filtersValues,\n [openedFilter.translit_name]: {\n criterions: filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].criterions ? [...filtersValues[openedFilter.translit_name].criterions, brand] : [brand],\n\n translit_name: filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].translit_name ? filtersValues[openedFilter.translit_name].translit_name : openedFilter.translit_name,\n type: filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].type ? filtersValues[openedFilter.translit_name].type : openedFilter.type,\n }\n }, inStock: filtersValue.inStock\n })\n }\n\n }\n\n function handleMaxChange(e) {\n let inputValue = e.target.value.replace(/\\D/g, '')\n if (filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].min && Number(inputValue) < Number(filtersValues[openedFilter.translit_name].min)) {\n setFiltersValues({\n ...filtersValues,\n [openedFilter.translit_name]: {\n min: inputValue,\n max: filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].min ? filtersValues[openedFilter.translit_name].min : '',\n translit_name: filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].translit_name ? filtersValues[openedFilter.translit_name].translit_name : openedFilter.translit_name,\n type: filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].type ? filtersValues[openedFilter.translit_name].type : openedFilter.type,\n }\n })\n handleUpdateByFilters({\n filters_from_func: {\n ...filtersValues,\n [openedFilter.translit_name]: {\n min: inputValue,\n max: filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].min ? filtersValues[openedFilter.translit_name].min : '',\n translit_name: filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].translit_name ? filtersValues[openedFilter.translit_name].translit_name : openedFilter.translit_name,\n type: filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].type ? filtersValues[openedFilter.translit_name].type : openedFilter.type,\n }\n }, inStock: filtersValue.inStock\n })\n } else {\n setFiltersValues({\n ...filtersValues,\n [openedFilter.translit_name]: {\n min: filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].min ? filtersValues[openedFilter.translit_name].min : '',\n max: inputValue,\n translit_name: filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].translit_name ? filtersValues[openedFilter.translit_name].translit_name : openedFilter.translit_name,\n type: filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].type ? filtersValues[openedFilter.translit_name].type : openedFilter.type,\n }\n })\n handleUpdateByFilters({\n filters_from_func: {\n ...filtersValues,\n [openedFilter.translit_name]: {\n min: filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].min ? filtersValues[openedFilter.translit_name].min : '',\n max: inputValue,\n translit_name: filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].translit_name ? filtersValues[openedFilter.translit_name].translit_name : openedFilter.translit_name,\n type: filtersValues && filtersValues[openedFilter.translit_name] && filtersValues[openedFilter.translit_name].type ? filtersValues[openedFilter.translit_name].type : openedFilter.type,\n }\n }, inStock: filtersValue.inStock\n })\n }\n\n }\n\n // useEffect(() => {\n // console.log({ filtersValues, filtersValue })\n // // setItems()\n // // // setItemsCount()\n // if (filtersValues) {\n // handleUpdateByFilters({ filters_from_func: filtersValues, inStock: filtersValue.inStock })\n // } else {\n // handleUpdateByFilters({ filters_from_func: [], inStock: filtersValue.inStock })\n // }\n\n // }, [filtersValues, filtersValue])\n\n return (\n
\n\n
\n

Только в наличии

\n
\n
\n
\n
\n {filters && filters.length > 0 && filters.map((item, i) => (\n <>\n {item.type === \"min_max\" ?\n
\n
{\n handleFilterOpen(item)\n }}>\n \n \n \n

{item.name}

\n
\n {openedFilter && openedFilter.translit_name === item.translit_name ?\n
\n

от

\n \n
\n

до

\n \n
\n : <>}\n
\n : <>}\n {item.type === \"array_choose\" ?\n
\n
{\n handleFilterOpen(item)\n }}>\n \n \n \n

Производитель

\n
\n {openedFilter && openedFilter.translit_name === item.translit_name ?\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n\n
\n
\n {item.criterions ?\n <>\n {item.criterions.filter((item) => {\n if (item.name.toLowerCase().includes(brandsValue.toLowerCase())) return true\n else return false\n }).length > 0 ? item.criterions.filter((item) => {\n if (item.name.toLowerCase().includes(brandsValue.toLowerCase())) return true\n else return false\n }).map((criteriy, i) => (\n
handleBrandSelect(criteriy)}>\n
\n \n \n \n
\n

{criteriy.name}

\n
\n )) :

Такого бренда нет

}\n : <>}\n\n\n
\n
\n : <>}\n
\n : <>}\n \n\n ))}\n\n\n\n\n {/*
\n
\n \n \n \n

Бренд

\n
\n {isBrandsOpen ?\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n\n
\n
\n {allBrands ?\n <>\n {allBrands.filter((item) => {\n if (item.toLowerCase().includes(brandsValue.toLowerCase())) return true\n else return false\n }).length > 0 ? allBrands.filter((item) => {\n if (item.toLowerCase().includes(brandsValue.toLowerCase())) return true\n else return false\n }).map((item, i) => (\n
handleBrandSelect(item)}>\n
\n \n \n \n
\n

{item}

\n
\n )) :

Такого бренда нет

}\n : <>}\n\n\n
\n
\n : <>}\n
*/}\n
\n

Сбросить фильтры

\n {/* \n \n */}\n \n \n \n\n
\n\n
\n );\n}\n\nexport default Filters;\n","import './FiltersPopup.css';\nimport React from \"react\";\nimport Filters from '../SubCategory/Filters/Filters';\n\n\n\n\n\n\nfunction FiltersPopup({isFilterPopupOpen, handleFilterPopupClose, setFiltersUpd, filters, handleUpdateByFilters, handleResetFilters }) {\n return (\n
\n
\n
\n \n \n \n
\n

Фильтры

\n
\n \n
\n
\n
\n\n
\n
\n );\n}\n\nexport default FiltersPopup;\n","import React from 'react'\nimport './MiniPreloader.css'\n\nconst MiniPreloader = ({isLinkColor}) => {\n return (\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n\n
\n\n\n
\n )\n};\n\nexport default MiniPreloader","export function PhoneIcon({ mainClassName, fillClassName }) {\n return (\n \n \n \n );\n}\n\n\nexport function CartIcon({ mainClassName, strokeClassName }) {\n return (\n \n \n \n );\n}\n\n\nexport function GeoIcon({ mainClassName, fillClassName }) {\n return (\n \n {/* */}\n \n \n );\n}\n\n\nexport function LogoIcon({ mainClassName, fillClassName }) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\n\nexport function CatalogIcon({ mainClassName, fillClassName }) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport function CatalogIconHeader({ mainClassName, fillClassName }) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\n\n\n\nexport function RoomsIcon({ mainClassName, strokeClassName }) {\n return (\n \n \n \n );\n}\n\n\nexport function SearchIcon({ mainClassName, fillClassName }) {\n return (\n \n \n \n \n );\n}\n\n\nexport function FavoriteIcon({ mainClassName, strokeClassName }) {\n return (\n \n \n \n );\n}\n\nexport function ArrowIcon({ mainClassName, fillClassName }) {\n return (\n \n \n \n );\n}\n\n\nexport function MenuIcon({ mainClassName, fillClassName }) {\n return (\n \n \n \n );\n}\n\nexport function CloseIcon({ mainClassName, fillClassName }) {\n return (\n \n \n \n );\n }\n","import { BedIcon, BedroomIcon, ChairIcon, ChildrenRoomIcon, DecorIcon, FloorCoveringIcon, HallwayIcon, HangerIcon, KitchenIcon, LinenIcon, LivingRoomIcon, MatIcon, OfficeIcon, PedestalIcon, SofaIcon, TableIcon, UniversalIcon, WardrobeIcon } from \"../icons/categoryIcons\";\n\nexport function copyText({ text, setCopied }) {\n var textArea = document.createElement(\"textarea\");\n textArea.style.position = 'fixed';\n textArea.style.top = 0;\n textArea.style.left = 0;\n textArea.style.width = '2em';\n textArea.style.height = '2em';\n textArea.style.padding = 0;\n textArea.style.border = 'none';\n textArea.style.outline = 'none';\n textArea.style.boxShadow = 'none';\n textArea.style.background = 'transparent';\n textArea.value = text;\n document.body.appendChild(textArea);\n textArea.focus();\n textArea.select();\n\n try {\n var successful = document.execCommand('copy');\n var msg = successful ? 'successful' : 'unsuccessful';\n\n setCopied(text)\n setTimeout(() => {\n setCopied('')\n }, 1500);\n console.log('Copying text command was ' + msg);\n } catch (err) {\n console.log('Oops, unable to copy');\n }\n\n document.body.removeChild(textArea);\n}\n\n\nexport function getCorrectWordForm(count) {\n let lastDigit = count % 10;\n if (count >= 11 && count <= 19) {\n return 'товаров';\n }\n switch (lastDigit) {\n case 1:\n return 'товар';\n case 2:\n case 3:\n case 4:\n return 'товара';\n default:\n return 'товаров';\n }\n}\n\n\nexport const getPrice = (item) => {\n\n const name = localStorage.getItem('city') ? localStorage.getItem('city') : 'Тобольск'\n let cityMap = {\n \"Новый Уренгой\": \"63777e52c505252a8fc59c09\",\n \"Надым\": \"63777e62c505252a8fc59c0a\",\n \"Тобольск\": \"63777e74c505252a8fc59c0b\",\n }\n let id = cityMap[name] ? cityMap[name] : \"63777e74c505252a8fc59c0b\"\n let value = item.firstc_data.price[id]\n return Number(value)\n}\n\n\nexport function getIconByType({ type, mainClassName, fillClassName, strokeClassName }) {\n if (!type) return\n switch (type) {\n case 'mat':\n return MatIcon({ mainClassName, fillClassName });\n\n case 'chair':\n return ChairIcon({ mainClassName, fillClassName });\n\n case 'wardrobe':\n return WardrobeIcon({ mainClassName, fillClassName });\n\n case 'sofa':\n return SofaIcon({ mainClassName, fillClassName });\n\n case 'table':\n return TableIcon({ mainClassName, fillClassName });\n\n case 'pedestal':\n return PedestalIcon({ mainClassName, fillClassName });\n\n case 'hanger':\n return HangerIcon({ mainClassName, fillClassName });\n\n case 'hallway':\n return HallwayIcon({ mainClassName, fillClassName });\n\n case 'kitchen':\n return KitchenIcon({ mainClassName, fillClassName });\n\n case 'decor':\n return DecorIcon({ mainClassName, fillClassName });\n\n case 'linen':\n return LinenIcon({ mainClassName, fillClassName });\n\n case 'floor_covering':\n return FloorCoveringIcon({ mainClassName, strokeClassName });\n\n case 'living_room':\n return LivingRoomIcon({ mainClassName, fillClassName });\n\n case 'bedroom':\n return BedroomIcon({ mainClassName, fillClassName });\n\n case 'bed':\n return BedIcon({ mainClassName, fillClassName });\n\n case 'office':\n return OfficeIcon({ mainClassName, fillClassName });\n\n case 'children_room':\n return ChildrenRoomIcon({ mainClassName, fillClassName });\n\n case 'universal':\n return UniversalIcon({ mainClassName, fillClassName });\n\n default:\n break;\n }\n}\n\n\n\nexport const sendMetriс = (type, value) => {\n window.ym(92911435, type, value)\n}\n","export function MatIcon({ mainClassName, fillClassName }) {\n return (\n \n \n \n );\n}\n\nexport function ChairIcon({ mainClassName, fillClassName }) {\n return (\n \n \n \n \n );\n}\n\nexport function WardrobeIcon({ mainClassName, fillClassName }) {\n return (\n \n \n \n \n );\n}\n\nexport function SofaIcon({ mainClassName, fillClassName }) {\n return (\n \n \n \n );\n}\n\nexport function TableIcon({ mainClassName, fillClassName }) {\n return (\n \n \n \n );\n}\n\n\nexport function PedestalIcon({ mainClassName, fillClassName }) {\n return (\n \n \n \n \n );\n}\n\n\nexport function HangerIcon({ mainClassName, fillClassName }) {\n return (\n \n \n \n );\n}\n\n\nexport function HallwayIcon({ mainClassName, fillClassName }) {\n return (\n \n \n \n );\n}\n\nexport function KitchenIcon({ mainClassName, fillClassName }) {\n return (\n \n \n \n \n );\n}\n\nexport function DecorIcon({ mainClassName, fillClassName }) {\n return (\n \n \n \n \n \n );\n}\n\nexport function LinenIcon({ mainClassName, fillClassName }) {\n return (\n \n \n \n \n );\n}\n\n\nexport function FloorCoveringIcon({ mainClassName, strokeClassName }) {\n return (\n \n \n \n );\n}\n\n\nexport function LivingRoomIcon({ mainClassName, fillClassName }) {\n return (\n \n \n \n \n );\n}\n\nexport function BedroomIcon({ mainClassName, fillClassName }) {\n return (\n \n \n \n );\n}\n\n\nexport function BedIcon({ mainClassName, fillClassName }) {\n return (\n \n \n \n );\n}\n\nexport function OfficeIcon({ mainClassName, fillClassName }) {\n return (\n \n \n \n \n \n \n \n );\n}\n\n\nexport function ChildrenRoomIcon({ mainClassName, fillClassName }) {\n return (\n \n \n \n );\n}\n\nexport function UniversalIcon({ mainClassName, fillClassName }) {\n return (\n \n \n \n \n );\n }\n\n","import React, { useState } from 'react'\nimport { Link } from 'react-router-dom';\nimport { CartIcon, PhoneIcon } from '../../assets/icons/icons';\nimport { getAmountByCity, MAIN_URL } from '../../assets/utils/constants';\n\nimport './ProductCard.css';\nimport { sendMetriс } from '../../assets/utils/utils';\n\n\n\n\n\nfunction ProductCard({\n product,\n cart,\n handleToCartBtn,\n setCartPopupOpen,\n link,\n handleLikeBtn,\n favouritesProducts,\n handleCallPopupOpen,\n}) {\n\n function addToCart() {\n handleToCartBtn(product)\n if (cart && cart.filter((item) => {\n if (product._id === item._id) return true\n else return false\n }).length === 0) {\n setCartPopupOpen(true)\n }\n\n }\n\n const amount = getAmountByCity(product.seller_cities)\n\n const price = () => {\n\n const name = localStorage.getItem('city') ? localStorage.getItem('city') : 'Тобольск'\n let cityMap = {\n \"Новый Уренгой\": \"63777e52c505252a8fc59c09\",\n \"Надым\": \"63777e62c505252a8fc59c0a\",\n \"Тобольск\": \"63777e74c505252a8fc59c0b\",\n }\n let id = cityMap[name] ? cityMap[name] : \"63777e74c505252a8fc59c0b\"\n let value = product.firstc_data.price[id]\n return Number(value)\n }\n\n const isInFavorite = favouritesProducts && favouritesProducts.filter((item) => {\n if (item._id === product._id) return true\n else return false\n }).length > 0\n\n\n const isInCart = cart && cart.filter((item) => {\n if (product._id === item._id) return true\n else return false\n }).length > 0\n\n const priceValue = price()\n\n const [photo, setPhoto] = useState(product.photos[0] !== 'Не указано' ? `${MAIN_URL}/get-file/${product.photos[0]}` : '')\n const [slide, setSlide] = useState(0)\n\n function handlePhotoSlide(i) {\n console.log(i)\n setSlide(i)\n setPhoto(`${MAIN_URL}/get-file/${product.photos[i]}`)\n }\n\n return (\n\n \n
{\n e.stopPropagation();\n e.preventDefault();\n handleLikeBtn(product)\n }}>\n\n \n \n \n \n\n\n
\n\n
\n
{\n if (photo !== `${MAIN_URL}/get-file/${product.photos[0]}`) {\n setPhoto(`${MAIN_URL}/get-file/${product.photos[0]}`)\n }\n }}>\n {product.photos.length > 1 ?\n
4 ? 4 : product.photos.length}, minMax(0, 1fr))`,\n }}>\n {product.photos.slice(0, 4).map((item, i) => (\n
{\n handlePhotoSlide(i)\n }}>\n {i === 0 ? : null}\n
\n ))}\n
\n : null}\n {product.photos.length > 1 ?\n
4 ? 4 : product.photos.length}, minMax(0, 1fr))`,\n }}>\n {product.photos.slice(0, 4).map((item, i) => (\n
\n ))}\n
: null}\n {product.name}\n
\n
\n

{Number(priceValue) > 0 ? `${priceValue.toLocaleString('us')} ₽` : \"\"}

\n\n
\n

{product.name}

\n

0 ? '' : 'product-card__amount_zero'}`}>{amount > 0 ? `На складе ${amount} шт.` : `Нет в наличии`}

\n
\n {amount === 0 ?\n \n :\n
{\n e.stopPropagation();\n e.preventDefault();\n addToCart()\n }}>\n {isInCart ?\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n :\n <>\n

В корзину

\n {CartIcon({ mainClassName: 'product-card__cart-btn-icon', strokeClassName: 'product-card__cart-btn-icon-stroke' })}\n }\n\n
\n }\n \n\n );\n}\n\nexport default ProductCard;\n","import React from 'react'\nimport { Link } from 'react-router-dom';\n\nimport './Сrumbs.css';\n\n\n\n\n\nfunction Сrumbs({links}) {\n\n return (\n\n
\n {links && links.map((link, i) => (\n
\n {link.name}\n

/

\n
\n ))}\n
\n\n );\n}\n\nexport default Сrumbs;\n","import React, { createRef, useEffect, useRef, useState } from 'react'\nimport { Helmet } from 'react-helmet';\nimport { useParams, useRouteMatch } from 'react-router';\n// import { Route } from 'react-router-dom';\nimport mainApi from '../../assets/api/MainApi';\nimport { getCityId } from '../../assets/utils/constants';\nimport FiltersPopup from '../FiltersPopup/FiltersPopup';\nimport MiniPreloader from '../MiniPreloader/MiniPreloader';\n// import Preloader from '../Preloader/Preloader';\nimport ProductCard from '../ProductCard/ProductCard';\n// import ProductPage from '../ProductPage/ProductPage';\nimport SofaPreloader from '../SofaPreloader/SofaPreloader';\nimport Crumbs from '../Сrumbs/Сrumbs'\nimport Filters from './Filters/Filters';\nimport './SubCategory.css';\n\nconst product_limit = 12\n\n\n\n\nfunction SubCategory({\n\n setFiltersUpd,\n handleLikeBtn,\n favouritesProducts,\n setCartPopupOpen,\n cart,\n handleToCartBtn,\n handleColorPopupOpen,\n handleCallPopupOpen,\n}) {\n let divRef = createRef();\n const { url } = useRouteMatch();\n // const history = useHistory();\n const [isPreloaderVisible, setPreloaderVisible] = useState(true)\n let { sub_category, category } = useParams();\n const [selectedCategory, setSelectedCategory] = useState(undefined)\n const [isFilterPopupOpen, setFilterPopupOpen] = useState(false);\n\n function handleFilterPopupClose() {\n setFilterPopupOpen(false)\n }\n\n const listRef = useRef()\n // const [pageValue, setPageValue] = useState(0);\n // const [prevScrollPosition, setPrevScrollPosition] = useState(-1);\n // const [scrollPosition, setScrollPosition] = useState(0);\n\n // const [scrollTraking, setScrollTraking] = useState(true);\n\n const [subcategory, setSubcategory] = useState(undefined)\n const [items, setItems] = useState(undefined)\n const [itemsCount, setItemsCount] = useState(undefined)\n\n\n const [isItemPreloaderVisible, setItemPreloaderVisible] = useState(true)\n useEffect(() => {\n if (sub_category && category) {\n console.log('1mk')\n setItemPreloaderVisible(true)\n setPreloaderVisible(true)\n setItems(undefined)\n // setPageValue(0)\n // setPrevScrollPosition(0)\n // setScrollPosition(0)\n\n let data = {}\n data.category_translit_name = category\n data.city_id = localStorage.getItem('city') ? getCityId(localStorage.getItem('city')) : '63777e74c505252a8fc59c0b'\n data.sub_category_translit_name = sub_category\n data.price_sort = true\n data.filters = [\n {\n translit_name: 'ROOT.amount',\n type: 'slider_bool',\n translit_value: '0'\n }\n ]\n data.last_id = null\n data.last_price = null\n data.limit = product_limit\n console.log(data)\n\n\n mainApi.getSubcategory({\n translit_name: sub_category,\n category_translit_name: category\n })\n .then((res) => {\n console.log(res)\n\n setSubcategory(res)\n mainApi.getItemsBySubAndCategory({ data: JSON.stringify(data) })\n .then((res2) => {\n console.log(res2)\n setItemsCount(res2.count)\n setItems(res2.data)\n })\n .catch((err) => {\n console.log(err)\n })\n .finally(() => {\n\n setItemPreloaderVisible(false)\n setPreloaderVisible(false)\n })\n })\n .catch((err) => {\n console.log(err)\n setPreloaderVisible(false)\n })\n\n\n\n\n }\n }, [sub_category, category])\n\n const [priceSortByDecrease, setPriceSortByDecrease] = useState(true);\n\n function handleResetFilters() {\n console.log('2mk')\n\n setItemPreloaderVisible(true)\n setFilterPopupOpen(false)\n let data = {}\n data.category_translit_name = category\n data.sub_category_translit_name = sub_category\n data.price_sort = priceSortByDecrease\n data.filters = [\n {\n translit_name: 'ROOT.amount',\n type: 'slider_bool',\n translit_value: '0'\n }\n ]\n data.last_id = null\n data.last_price = null\n data.city_id = localStorage.getItem('city') ? getCityId(localStorage.getItem('city')) : '63777e74c505252a8fc59c0b'\n data.limit = product_limit\n console.log(data)\n\n setItems(undefined)\n // setPageValue(0)\n // setPrevScrollPosition(0)\n // setScrollPosition(0)\n\n mainApi.getItemsBySubAndCategory({ data: JSON.stringify(data) })\n .then((res) => {\n console.log(res)\n setItemsCount(res.count)\n setItems(res.data)\n })\n .catch((err) => {\n console.log(err)\n })\n .finally(() => {\n setItemPreloaderVisible(false)\n })\n }\n\n const [filters, setFilters] = useState([])\n function handleUpdateByFilters({ filters_from_func, inStock }) {\n\n console.log('3mk', filters_from_func, inStock)\n\n setItemPreloaderVisible(true)\n const defMaxValue = '999999999'\n const defMinValue = '0'\n let array = Object.values(filters_from_func)\n array = array.map((item) => {\n\n if (item.type === 'min_max') {\n return {\n translit_name: item.translit_name,\n type: item.type,\n translit_value: item.max ? item.min ? `${item.min}-${item.max}` : `${defMinValue}-${item.max}` : item.min ? `${item.min}-${defMaxValue}` : `${defMinValue}-${defMaxValue}`\n }\n }\n else if (item.type === 'array_choose' && item.criterions.length > 0) {\n return {\n translit_name: item.translit_name,\n type: item.type,\n translit_value: item.criterions.map((item) => item.translit_value).join(',')\n }\n }\n else return null\n\n })\n array = array.filter((item) => item !== null)\n array = [...array, {\n translit_name: 'ROOT.amount',\n type: 'slider_bool',\n translit_value: inStock ? '1' : '0'\n }]\n console.log(array)\n setFilters(array)\n let data = {}\n data.category_translit_name = category\n data.city_id = localStorage.getItem('city') ? getCityId(localStorage.getItem('city')) : '63777e74c505252a8fc59c0b'\n data.sub_category_translit_name = sub_category\n data.price_sort = priceSortByDecrease\n data.filters = array\n data.last_id = null\n data.last_price = null\n data.limit = product_limit\n\n setItems(undefined)\n // setPageValue(0)\n // setPrevScrollPosition(0)\n // setScrollPosition(0)\n\n mainApi.getItemsBySubAndCategory({ data: JSON.stringify(data) })\n .then((res) => {\n console.log(res)\n setItemsCount(res.count)\n setItems(res.data)\n })\n .catch((err) => {\n console.log(err)\n })\n .finally(() => {\n setItemPreloaderVisible(false)\n })\n\n\n }\n\n\n function handleSortChange(value) {\n console.log('4mk')\n\n setPriceSortByDecrease(value)\n setItemPreloaderVisible(true)\n let data = {}\n data.category_translit_name = category\n data.sub_category_translit_name = sub_category\n data.city_id = localStorage.getItem('city') ? getCityId(localStorage.getItem('city')) : '63777e74c505252a8fc59c0b'\n data.price_sort = value\n data.filters = filters.length > 0 ? filters : [\n {\n translit_name: 'ROOT.amount',\n type: 'slider_bool',\n translit_value: '0'\n }\n ]\n data.last_id = null\n data.last_price = null\n data.limit = product_limit\n\n setItems(undefined)\n // setPageValue(0)\n // setPrevScrollPosition(0)\n // setScrollPosition(0)\n\n mainApi.getItemsBySubAndCategory({ data: JSON.stringify(data) })\n .then((res) => {\n console.log(res)\n setItemsCount(res.count)\n setItems(res.data)\n })\n .catch((err) => {\n console.log(err)\n })\n .finally(() => {\n setItemPreloaderVisible(false)\n })\n }\n\n\n\n\n\n\n const [isMoreLoading, setMoreLoading] = useState(false)\n\n function handleLoadMore() {\n if (isMoreLoading) return\n setMoreLoading(true)\n let last_id = items[items.length - 1]._id\n\n const name = localStorage.getItem('city') ? localStorage.getItem('city') : 'Тобольск'\n let cityMap = {\n \"Новый Уренгой\": \"63777e52c505252a8fc59c09\",\n \"Надым\": \"63777e62c505252a8fc59c0a\",\n \"Тобольск\": \"63777e74c505252a8fc59c0b\",\n }\n let id = cityMap[name] ? cityMap[name] : \"63777e74c505252a8fc59c0b\"\n let last_price = items[items.length - 1].firstc_data.price[id]\n\n console.log({ filters })\n console.log('ss')\n\n let data = {}\n data.category_translit_name = category\n data.city_id = localStorage.getItem('city') ? getCityId(localStorage.getItem('city')) : '63777e74c505252a8fc59c0b'\n data.sub_category_translit_name = sub_category\n data.price_sort = priceSortByDecrease\n data.filters = filters.length > 0 ? filters : [\n {\n translit_name: 'ROOT.amount',\n type: 'slider_bool',\n translit_value: '0'\n }\n ]\n data.last_id = last_id\n data.last_price = last_price\n data.limit = product_limit\n console.log(data)\n mainApi.getItemsBySubAndCategory({ data: JSON.stringify(data) })\n .then((res) => {\n console.log(res)\n setItems(prevList => prevList.concat(res.data))\n })\n .catch((err) => {\n console.log(err)\n })\n .finally(() => {\n setMoreLoading(false)\n // setItemPreloaderVisible(false)\n })\n }\n\n return (\n
\n {subcategory ?\n \n Диванчик - {`${subcategory.category.name} / ${subcategory.name}`}\n \n : null}\n {\n isPreloaderVisible ?\n
\n \n
\n :\n <>\n {subcategory ?\n <>\n \n \n

{itemsCount} {itemsCount % 10 === 1 && 'модель'}{itemsCount % 10 >= 2 && itemsCount % 10 <= 4 && 'модели'}{((itemsCount % 10 >= 5 && itemsCount % 10 <= 9) || (itemsCount % 10 === 0)) && 'моделей'}

\n

{subcategory.name}

\n\n
\n
\n \n
\n
\n
\n
{ setFilterPopupOpen(true) }}>\n \n \n \n

Фильтры

\n
\n
{ handleSortChange(!priceSortByDecrease) }}>\n \n \n \n

{!priceSortByDecrease ? 'Убывание цены' : 'Увеличение цены'}

\n
\n
\n {isItemPreloaderVisible ?\n
\n \n
\n : items && items.length > 0 ? <>\n
\n {items.map((product, i) => (\n \n ))}\n
\n {/* в масииве = {items?.length}/ колличество по данным с бека = {itemsCount} */}\n {items?.length !== itemsCount ?\n \n : null}\n :

Товары по указанным фильтрам не найдены

}\n
\n
\n \n\n : <>}\n \n }\n\n\n\n\n\n
\n );\n}\n\nexport default SubCategory;\n","\nimport { Link } from 'react-router-dom';\nimport { MAIN_URL } from '../../../assets/utils/constants';\nimport './CategoryCard.css';\n\n\n\n\n\nfunction CategoryCard({item, url, category}) {\n\n return (\n \n {item.name}\n

{item.name} ({item.item_count})

\n {/*

{item.name}

\n
\n {item.name} */}\n \n );\n}\n\nexport default CategoryCard;\n","import React, { useEffect, useState } from 'react'\nimport { Helmet } from 'react-helmet';\nimport { Switch, useParams, useRouteMatch } from 'react-router';\nimport { Route, Link } from 'react-router-dom';\nimport mainApi from '../../assets/api/MainApi';\nimport { MAIN_URL } from '../../assets/utils/constants';\nimport SofaPreloader from '../SofaPreloader/SofaPreloader';\n\n\nimport SubCategory from '../SubCategory/SubCategory';\nimport Crumbs from '../Сrumbs/Сrumbs'\nimport './Category.css';\nimport CategoryCard from './CategoryCard/CategoryCard';\n\n\n\n\n\nfunction Category() {\n const { url } = useRouteMatch();\n\n let { category } = useParams();\n\n const [selectedCategory, setSelectedCategory] = useState(undefined);\n const [subcategories, setSubcategories] = useState(undefined)\n\n\n const [isPreloaderVisible, setPreloaderVisible] = useState(true)\n useEffect(() => {\n\n if (category) {\n setPreloaderVisible(true)\n mainApi.getSubcategoriesByCategory({\n category_translit_name: category,\n limit: 25,\n })\n .then((res2) => {\n console.log(res2.data)\n setSubcategories(res2.data)\n setSelectedCategory(res2.category)\n })\n .catch((err) => {\n console.log(err)\n })\n .finally(() => {\n setPreloaderVisible(false)\n })\n\n\n }\n\n }, [category])\n\n\n\n return (\n <>\n {selectedCategory ?\n \n Диванчик - {selectedCategory.name}\n \n : null}\n {isPreloaderVisible ?\n
\n \n\n
\n :\n
\n {selectedCategory ?\n <>\n \n

{selectedCategory.name}

\n
\n {subcategories ?\n subcategories.length > 0 ? subcategories.map((item, i) => (\n \n ))\n\n :\n

Пусто

\n : <>}\n
\n \n : <>}\n\n\n
\n }\n \n\n );\n}\n\nexport default Category;\n","export const products = [\n {\n name: 'Диван Монти 1599',\n link: 'divan_monti_1599',\n manufacturer: 'Студия диванов',\n category: {\n name: 'Мягкая мебель',\n link: 'myagkaya_mebel',\n },\n sub_category: {\n name: 'Диваны-кровати',\n link: 'divany-krovati',\n },\n key_words: ['Диван', 'Монти', '156'],\n description: 'Диван тыры-пыры',\n specifications: {\n weight: 1000,\n material: 'ЛДСП, дубовая доска, медная пружина, ЛДСП, дубовая доска, медная пружина',\n colour: 'Коричневый',\n width: 1000,\n height: 2000,\n depth: 500,\n },\n discount: 0,\n amount: 10,\n article: '0010000001',\n photos: ['https://i.ibb.co/TLjzF7B/image.png', 'https://i.ibb.co/WHC6kPx/image.png'],\n price: 1400,\n _id: '1',\n variations: [\n {\n product_id: {\n name: 'Диван Монти 156',\n link: 'divan_monti_156',\n manufacturer: 'Яна-фабрика',\n category: {\n name: 'Мягкая мебель',\n link: 'myagkaya_mebel',\n },\n sub_category: {\n name: 'Диваны-кровати',\n link: 'divany-krovati',\n },\n key_words: ['Диван', 'Монти', '156'],\n description: 'Диван тыры-пыры',\n specifications: {\n weight: 'Не указано',\n material: 'ЛДСП, дубовая доска, медная пружина',\n colour: 'Красный',\n width: 1000,\n height: 2000,\n depth: 500,\n },\n discount: 10,\n amount: 10,\n article: '0010000001',\n photos: ['https://i.ibb.co/TLjzF7B/image.png', 'https://i.ibb.co/WHC6kPx/image.png', 'https://i.ibb.co/WHC6kPx/image.png', 'https://i.ibb.co/WHC6kPx/image.png', 'https://i.ibb.co/WHC6kPx/image.png', 'https://i.ibb.co/WHC6kPx/image.png', 'https://i.ibb.co/WHC6kPx/image.png'],\n price: 1500,\n _id: '222',\n },\n },\n\n {\n product_id: {\n name: 'Диван Монти 156',\n link: 'divan_monti_156',\n manufacturer: 'Яна-фабрика',\n category: {\n name: 'Мягкая мебель',\n link: 'myagkaya_mebel',\n },\n sub_category: {\n name: 'Диваны-кровати',\n link: 'divany-krovati',\n },\n key_words: ['Диван', 'Монти', '156'],\n description: 'Диван тыры-пыры',\n specifications: {\n weight: 'Не указано',\n material: 'ЛДСП, дубовая доска, медная пружина',\n colour: 'Оранжевый',\n width: 1000,\n height: 2000,\n depth: 500,\n },\n discount: 10,\n amount: 10,\n article: '0010000001',\n photos: ['https://i.ibb.co/TLjzF7B/image.png', 'https://i.ibb.co/WHC6kPx/image.png', 'https://i.ibb.co/WHC6kPx/image.png', 'https://i.ibb.co/WHC6kPx/image.png', 'https://i.ibb.co/WHC6kPx/image.png', 'https://i.ibb.co/WHC6kPx/image.png', 'https://i.ibb.co/WHC6kPx/image.png'],\n price: 1500,\n _id: '2224',\n },\n },\n {\n product_id: {\n name: 'Диван Монти 156',\n link: 'divan_monti_156',\n manufacturer: 'Яна-фабрика',\n category: {\n name: 'Мягкая мебель',\n link: 'myagkaya_mebel',\n },\n sub_category: {\n name: 'Диваны-кровати',\n link: 'divany-krovati',\n },\n key_words: ['Диван', 'Монти', '156'],\n description: 'Диван тыры-пыры',\n specifications: {\n weight: 'Не указано',\n material: 'ЛДСП, дубовая доска, медная пружина',\n colour: 'Розовый',\n width: 1000,\n height: 2000,\n depth: 500,\n },\n discount: 10,\n amount: 10,\n article: '0010000001',\n photos: ['https://i.ibb.co/TLjzF7B/image.png', 'https://i.ibb.co/WHC6kPx/image.png', 'https://i.ibb.co/WHC6kPx/image.png', 'https://i.ibb.co/WHC6kPx/image.png', 'https://i.ibb.co/WHC6kPx/image.png', 'https://i.ibb.co/WHC6kPx/image.png', 'https://i.ibb.co/WHC6kPx/image.png'],\n price: 1500,\n _id: '2226',\n },\n }\n ]\n\n },\n {\n name: 'Диван Монти 156',\n link: 'divan_monti_156',\n manufacturer: 'Яна-фабрика',\n category: {\n name: 'Мягкая мебель',\n link: 'myagkaya_mebel',\n },\n sub_category: {\n name: 'Диваны-кровати',\n link: 'divany-krovati',\n },\n key_words: ['Диван', 'Монти', '156'],\n description: 'Диван тыры-пыры',\n specifications: {\n weight: 'Не указано',\n material: 'ЛДСП, дубовая доска, медная пружина',\n colour: 'Коричневый',\n width: 1000,\n height: 2000,\n depth: 500,\n },\n discount: 10,\n amount: 10,\n article: '0010000001',\n photos: ['https://i.ibb.co/TLjzF7B/image.png', 'https://i.ibb.co/WHC6kPx/image.png', 'https://i.ibb.co/WHC6kPx/image.png', 'https://i.ibb.co/WHC6kPx/image.png', 'https://i.ibb.co/WHC6kPx/image.png', 'https://i.ibb.co/WHC6kPx/image.png', 'https://i.ibb.co/WHC6kPx/image.png'],\n price: 1500,\n _id: '2',\n\n },\n {\n name: 'Диван Монти 158',\n link: 'divan_monti_158',\n manufacturer: 'Студия диванов',\n category: {\n name: 'Мягкая мебель',\n link: 'myagkaya_mebel',\n },\n sub_category: {\n name: 'Диваны-кровати',\n link: 'divany-krovati',\n },\n key_words: ['Диван', 'Монти', '156'],\n description: 'Диван тыры-пыры',\n specifications: {\n weight: 200,\n material: 'ЛДСП, дубовая доска, медная пружина',\n colour: 'Коричневый',\n width: 1000,\n height: 2000,\n depth: 500,\n },\n discount: 10,\n amount: 10,\n article: '0010000001',\n photos: ['https://i.ibb.co/TLjzF7B/image.png', 'https://i.ibb.co/WHC6kPx/image.png'],\n price: 100,\n _id: '3',\n\n },\n {\n name: 'Диван Монти 159',\n link: 'divan_monti_159',\n manufacturer: 'Студия диванов',\n category: {\n name: 'Мягкая мебель',\n link: 'myagkaya_mebel',\n },\n sub_category: {\n name: 'Диваны-кровати',\n link: 'divany-krovati',\n },\n key_words: ['Диван', 'Монти', '156'],\n description: 'Диван тыры-пыры',\n specifications: {\n weight: 'Не указано',\n material: 'ЛДСП, дубовая доска, медная пружина',\n colour: 'Коричневый',\n width: 100,\n height: 200,\n depth: 50,\n },\n discount: 10,\n amount: 0,\n article: '0010000001',\n photos: ['https://i.ibb.co/TLjzF7B/image.png', 'https://i.ibb.co/WHC6kPx/image.png'],\n price: 100,\n _id: '4',\n\n },\n {\n name: 'Диван Монти 1510',\n link: 'divan_monti_1510',\n manufacturer: 'Тобольск люкс',\n category: {\n name: 'Мягкая мебель',\n link: 'myagkaya_mebel',\n },\n sub_category: {\n name: 'Диваны-кровати',\n link: 'divany-krovati',\n },\n key_words: ['Диван', 'Монти', '156'],\n description: 'Диван тыры-пыры',\n specifications: {\n weight: 'Не указано',\n material: 'ЛДСП',\n colour: 'Коричневый',\n width: 1000,\n height: 2000,\n depth: 500,\n },\n discount: 24,\n amount: 10,\n article: '0010000001',\n photos: ['https://i.ibb.co/TLjzF7B/image.png', 'https://i.ibb.co/WHC6kPx/image.png'],\n price: 1500,\n _id: '5',\n\n },\n {\n name: 'Диван Монти',\n link: 'divan_monti',\n manufacturer: 'Копиван',\n category: {\n name: 'Мягкая мебель',\n link: 'myagkaya_mebel',\n },\n sub_category: {\n name: 'Диваны-кровати',\n link: 'divany-krovati',\n },\n key_words: ['Диван', 'Монти', '156'],\n description: 'Диван тыры-пыры',\n specifications: {\n weight: 'Не указано',\n material: 'ЛДСП, дубовая доска, медная пружина',\n colour: 'Коричневый',\n width: 1000,\n height: 2000,\n depth: 500,\n },\n discount: 0,\n amount: 0,\n article: '0010000001',\n photos: ['https://i.ibb.co/TLjzF7B/image.png', 'https://i.ibb.co/WHC6kPx/image.png'],\n price: 1500,\n _id: '6',\n\n },\n {\n name: 'Диван Монти 1532',\n link: 'divan_monti_1532',\n manufacturer: 'Копиван',\n category: {\n name: 'Мягкая мебель',\n link: 'myagkaya_mebel',\n },\n sub_category: {\n name: 'Диваны-кровати',\n link: 'divany-krovati',\n },\n key_words: ['Диван', 'Монти', '156'],\n description: 'Диван тыры-пыры',\n specifications: {\n weight: 'Не указано',\n material: 'ЛДСП, дубовая доска, медная пружина',\n colour: 'Коричневый',\n width: 1000,\n height: 2000,\n depth: 500,\n },\n discount: 0,\n amount: 0,\n article: '0010000001',\n photos: ['https://i.ibb.co/TLjzF7B/image.png', 'https://i.ibb.co/WHC6kPx/image.png'],\n price: 1500,\n _id: '7',\n\n },\n {\n name: 'Раскладушка типо дивана',\n link: 'divan_monti_156',\n manufacturer: 'Студия диванов',\n category: {\n name: 'Мягкая мебель',\n link: 'myagkaya_mebel',\n },\n sub_category: {\n name: 'Диваны-кровати2',\n link: 'divany-krovati2',\n },\n key_words: ['Диван', 'Монти', '156'],\n description: 'Диван тыры-пыры',\n specifications: {\n weight: 'Не указано',\n material: 'ЛДСП, дубовая доска, медная пружина',\n colour: 'Коричневый',\n width: 1000,\n height: 2000,\n depth: 500,\n },\n discount: 10,\n amount: 10,\n article: '0010000001',\n photos: ['https://i.ibb.co/TLjzF7B/image.png', 'https://i.ibb.co/WHC6kPx/image.png'],\n price: 1,\n _id: '8',\n\n },\n {\n name: 'Диван Монти 1500',\n link: 'divan_monti_1500',\n manufacturer: 'Дианчикус',\n category: {\n name: 'Мягкая мебель',\n link: 'myagkaya_mebel',\n },\n sub_category: {\n name: 'Диваны-кровати2',\n link: 'divany-krovati2',\n },\n key_words: ['Диван', 'Монти', '157'],\n description: 'Диван тыры-пыры',\n specifications: {\n weight: 'Не указано',\n material: 'ЛДСП, дубовая доска, медная пружина',\n colour: 'Коричневый',\n width: 10,\n height: 20,\n depth: 5,\n },\n discount: 0,\n amount: 0,\n article: '0010000002',\n photos: ['https://i.ibb.co/TLjzF7B/image.png', 'https://i.ibb.co/WHC6kPx/image.png'],\n price: 12500,\n _id: '9',\n\n },\n\n\n]\n\n\n\nexport const categories = [\n {\n name: 'Мягкая мебель',\n sub_catigories: [{\n sub_category_id: {\n name: 'Диваны-кровати',\n link: 'divany-krovati',\n photo: 'https://i.ibb.co/2dW4mhz/image.png'\n }\n\n },\n {\n sub_category_id: {\n name: 'Диваны-кровати2',\n link: 'divany-krovati2',\n photo: 'https://i.ibb.co/nmxWQpN/image.png'\n }\n\n },\n {\n sub_category_id: {\n name: 'Диваны-кровати3',\n link: 'divany-krovati3',\n photo: 'https://i.ibb.co/yQ97xZh/image.png'\n }\n\n },],\n link: 'myagkaya_mebel'\n },\n {\n name: 'Кухня',\n sub_catigories: [{\n sub_category_id: {\n name: 'Модульные кухни',\n link: 'kuhni-modulnie',\n photo: 'https://i.ibb.co/qRKqDpk/image.png'\n }\n\n },],\n link: 'kuhnya',\n\n },\n // {\n // name: 'Сантехника',\n // link: 'santekhnika'\n // },\n // {\n // name: 'Спальня',\n // link: 'spalnya'\n // },\n // {\n // name: 'Прихожая',\n // link: 'prihozhaya'\n // },\n // {\n // name: 'Детская',\n // link: 'detskaya'\n // },\n // {\n // name: 'Шкафы-купе',\n // link: 'shkafy-kupe'\n // },\n // {\n // name: 'Офис',\n // link: 'ofis'\n // },\n // {\n // name: 'Малая-форма',\n // link: 'malaya-forma'\n // },\n]\n\nexport const cities = [\n {\n name: 'Тобольск'\n },\n {\n name: 'Надым'\n },\n {\n name: 'Новый Уренгой'\n },\n]\n\nexport const deliveryMethods = [\n {\n name: 'Самовывоз',\n adresses: [\n {\n name: 'Магазин Диванчик по адресу: 7-й микрорайон, 2А, Тобольск, Тюменская область',\n workTime: {\n monday: '9:00 – 21:00',\n tuesday: '9:00 – 21:00',\n wednesday: '9:00 – 21:00',\n thursday: '9:00 – 21:00',\n friday: '9:00 – 21:00',\n saturday: '9:00 – 20:00',\n sunday: '9:00 – 20:00',\n }\n }\n ],\n price: 0,\n storageLife: '3 Дня',\n\n\n },\n\n {\n name: 'Доставка',\n price: 1500,\n\n }\n]\n\nexport const testOrders = [\n {\n order_number: '120802',\n full_price: 15000,\n isDelivery: false,\n address: 'Магазин Диванчик по адресу: 7-й микрорайон, 2А, Тобольск, Тюменская область',\n status: 'В работе',\n order_items: [\n {\n name: 'Диван Монти 156',\n link: 'divan_monti_156',\n manufacturer: 'Студия диванов',\n category: {\n name: 'Мягкая мебель',\n link: 'myagkaya_mebel',\n },\n sub_category: {\n name: 'Диваны-кровати',\n link: 'divany-krovati',\n },\n key_words: ['Диван', 'Монти', '156'],\n description: 'Диван тыры-пыры',\n specifications: {\n width: 1000,\n height: 2000,\n depth: 500,\n },\n discount: 0,\n amount: 10,\n article: '0010000001',\n photos: ['https://i.ibb.co/TLjzF7B/image.png', 'https://i.ibb.co/WHC6kPx/image.png'],\n price: 14000,\n _id: '1',\n count: 10,\n },\n {\n name: 'Диван-кровать SCANDICA Норман черный, 15.2 КГ',\n link: 'divan_monti_1599',\n manufacturer: 'Студия диванов',\n category: {\n name: 'Мягкая мебель',\n link: 'myagkaya_mebel',\n },\n sub_category: {\n name: 'Диваны-кровати',\n link: 'divany-krovati',\n },\n key_words: ['Диван', 'Монти', '156'],\n description: 'Диван тыры-пыры',\n specifications: {\n width: 1000,\n height: 2000,\n depth: 500,\n },\n discount: 0,\n amount: 10,\n article: '0010000001',\n photos: ['https://i.ibb.co/TLjzF7B/image.png', 'https://i.ibb.co/WHC6kPx/image.png'],\n price: 1400,\n _id: '2',\n count: 1,\n },\n ]\n },\n {\n order_number: '120803',\n full_price: 15000,\n isDelivery: false,\n address: 'Магазин Диванчик по адресу: 7-й микрорайон, 2А, Тобольск, Тюменская область',\n status: 'Доставлен',\n order_items: [\n {\n name: 'Диван Монти 156',\n link: 'divan_monti_156',\n manufacturer: 'Студия диванов',\n category: {\n name: 'Мягкая мебель',\n link: 'myagkaya_mebel',\n },\n sub_category: {\n name: 'Диваны-кровати',\n link: 'divany-krovati',\n },\n key_words: ['Диван', 'Монти', '156'],\n description: 'Диван тыры-пыры',\n specifications: {\n width: 1000,\n height: 2000,\n depth: 500,\n },\n discount: 0,\n amount: 10,\n article: '0010000001',\n photos: ['https://i.ibb.co/TLjzF7B/image.png', 'https://i.ibb.co/WHC6kPx/image.png'],\n price: 14000,\n _id: '1',\n count: 10,\n },\n {\n name: 'Диван-кровать SCANDICA Норман черный, 15.2 КГ',\n link: 'divan_monti_1599',\n manufacturer: 'Студия диванов',\n category: {\n name: 'Мягкая мебель',\n link: 'myagkaya_mebel',\n },\n sub_category: {\n name: 'Диваны-кровати',\n link: 'divany-krovati',\n },\n key_words: ['Диван', 'Монти', '156'],\n description: 'Диван тыры-пыры',\n specifications: {\n width: 1000,\n height: 2000,\n depth: 500,\n },\n discount: 0,\n amount: 10,\n article: '0010000001',\n photos: ['https://i.ibb.co/TLjzF7B/image.png', 'https://i.ibb.co/WHC6kPx/image.png'],\n price: 1400,\n _id: '2',\n count: 1,\n },\n ]\n },\n {\n order_number: '120805',\n full_price: 15000,\n isDelivery: false,\n address: 'Магазин Диванчик по адресу: 7-й микрорайон, 2А, Тобольск, Тюменская область',\n status: 'Отмененный',\n order_items: [\n {\n name: 'Диван Монти 156',\n link: 'divan_monti_156',\n manufacturer: 'Студия диванов',\n category: {\n name: 'Мягкая мебель',\n link: 'myagkaya_mebel',\n },\n sub_category: {\n name: 'Диваны-кровати',\n link: 'divany-krovati',\n },\n key_words: ['Диван', 'Монти', '156'],\n description: 'Диван тыры-пыры',\n specifications: {\n width: 1000,\n height: 2000,\n depth: 500,\n },\n discount: 0,\n amount: 10,\n article: '0010000001',\n photos: ['https://i.ibb.co/TLjzF7B/image.png', 'https://i.ibb.co/WHC6kPx/image.png'],\n price: 14000,\n _id: '1',\n count: 10,\n },\n {\n name: 'Диван Монти 156',\n link: 'divan_monti_156',\n manufacturer: 'Студия диванов',\n category: {\n name: 'Мягкая мебель',\n link: 'myagkaya_mebel',\n },\n sub_category: {\n name: 'Диваны-кровати',\n link: 'divany-krovati',\n },\n key_words: ['Диван', 'Монти', '156'],\n description: 'Диван тыры-пыры',\n specifications: {\n width: 1000,\n height: 2000,\n depth: 500,\n },\n discount: 0,\n amount: 10,\n article: '0010000001',\n photos: ['https://i.ibb.co/TLjzF7B/image.png', 'https://i.ibb.co/WHC6kPx/image.png'],\n price: 14000,\n _id: '1',\n count: 10,\n },\n {\n name: 'Диван Монти 156',\n link: 'divan_monti_156',\n manufacturer: 'Студия диванов',\n category: {\n name: 'Мягкая мебель',\n link: 'myagkaya_mebel',\n },\n sub_category: {\n name: 'Диваны-кровати',\n link: 'divany-krovati',\n },\n key_words: ['Диван', 'Монти', '156'],\n description: 'Диван тыры-пыры',\n specifications: {\n width: 1000,\n height: 2000,\n depth: 500,\n },\n discount: 0,\n amount: 10,\n article: '0010000001',\n photos: ['https://i.ibb.co/TLjzF7B/image.png', 'https://i.ibb.co/WHC6kPx/image.png'],\n price: 14000,\n _id: '1',\n count: 10,\n },\n {\n name: 'Диван Монти 156',\n link: 'divan_monti_156',\n manufacturer: 'Студия диванов',\n category: {\n name: 'Мягкая мебель',\n link: 'myagkaya_mebel',\n },\n sub_category: {\n name: 'Диваны-кровати',\n link: 'divany-krovati',\n },\n key_words: ['Диван', 'Монти', '156'],\n description: 'Диван тыры-пыры',\n specifications: {\n width: 1000,\n height: 2000,\n depth: 500,\n },\n discount: 0,\n amount: 10,\n article: '0010000001',\n photos: ['https://i.ibb.co/TLjzF7B/image.png', 'https://i.ibb.co/WHC6kPx/image.png'],\n price: 14000,\n _id: '1',\n count: 10,\n },\n {\n name: 'Диван Монти 156',\n link: 'divan_monti_156',\n manufacturer: 'Студия диванов',\n category: {\n name: 'Мягкая мебель',\n link: 'myagkaya_mebel',\n },\n sub_category: {\n name: 'Диваны-кровати',\n link: 'divany-krovati',\n },\n key_words: ['Диван', 'Монти', '156'],\n description: 'Диван тыры-пыры',\n specifications: {\n width: 1000,\n height: 2000,\n depth: 500,\n },\n discount: 0,\n amount: 10,\n article: '0010000001',\n photos: ['https://i.ibb.co/TLjzF7B/image.png', 'https://i.ibb.co/WHC6kPx/image.png'],\n price: 14000,\n _id: '1',\n count: 10,\n },\n {\n name: 'Диван Монти 156',\n link: 'divan_monti_156',\n manufacturer: 'Студия диванов',\n category: {\n name: 'Мягкая мебель',\n link: 'myagkaya_mebel',\n },\n sub_category: {\n name: 'Диваны-кровати',\n link: 'divany-krovati',\n },\n key_words: ['Диван', 'Монти', '156'],\n description: 'Диван тыры-пыры',\n specifications: {\n width: 1000,\n height: 2000,\n depth: 500,\n },\n discount: 0,\n amount: 10,\n article: '0010000001',\n photos: ['https://i.ibb.co/TLjzF7B/image.png', 'https://i.ibb.co/WHC6kPx/image.png'],\n price: 14000,\n _id: '1',\n count: 10,\n },\n {\n name: 'Диван Монти 156',\n link: 'divan_monti_156',\n manufacturer: 'Студия диванов',\n category: {\n name: 'Мягкая мебель',\n link: 'myagkaya_mebel',\n },\n sub_category: {\n name: 'Диваны-кровати',\n link: 'divany-krovati',\n },\n key_words: ['Диван', 'Монти', '156'],\n description: 'Диван тыры-пыры',\n specifications: {\n width: 1000,\n height: 2000,\n depth: 500,\n },\n discount: 0,\n amount: 10,\n article: '0010000001',\n photos: ['https://i.ibb.co/TLjzF7B/image.png', 'https://i.ibb.co/WHC6kPx/image.png'],\n price: 14000,\n _id: '1',\n count: 10,\n },\n {\n name: 'Диван Монти 156',\n link: 'divan_monti_156',\n manufacturer: 'Студия диванов',\n category: {\n name: 'Мягкая мебель',\n link: 'myagkaya_mebel',\n },\n sub_category: {\n name: 'Диваны-кровати',\n link: 'divany-krovati',\n },\n key_words: ['Диван', 'Монти', '156'],\n description: 'Диван тыры-пыры',\n specifications: {\n width: 1000,\n height: 2000,\n depth: 500,\n },\n discount: 0,\n amount: 10,\n article: '0010000001',\n photos: ['https://i.ibb.co/TLjzF7B/image.png', 'https://i.ibb.co/WHC6kPx/image.png'],\n price: 14000,\n _id: '1',\n count: 10,\n },\n {\n name: 'Диван-кровать SCANDICA Норман черный, 15.2 КГ',\n link: 'divan_monti_1599',\n manufacturer: 'Студия диванов',\n category: {\n name: 'Мягкая мебель',\n link: 'myagkaya_mebel',\n },\n sub_category: {\n name: 'Диваны-кровати',\n link: 'divany-krovati',\n },\n key_words: ['Диван', 'Монти', '156'],\n description: 'Диван тыры-пыры',\n specifications: {\n width: 1000,\n height: 2000,\n depth: 500,\n },\n discount: 0,\n amount: 10,\n article: '0010000001',\n photos: ['https://i.ibb.co/TLjzF7B/image.png', 'https://i.ibb.co/WHC6kPx/image.png'],\n price: 1400,\n _id: '2',\n count: 1,\n },\n ]\n }\n]","export default __webpack_public_path__ + \"static/media/more.8b250ec6.svg\";","import './CartPopup.css';\nimport React from \"react\";\n\n\nimport { Link } from 'react-router-dom';\nimport moreIcon from '../../assets/images/more.svg'\nimport { MAIN_URL } from '../../assets/utils/constants';\nimport { getCorrectWordForm, sendMetriс } from '../../assets/utils/utils';\n\n\n\nfunction CartPopup({\n isCartPopupOpen,\n cart,\n setCart,\n handleCartPopupClose,\n handleLikeBtn,\n favouritesProducts,\n allCartProductsCount,\n}) {\n\n\n\n React.useEffect(() => {\n if (isCartPopupOpen) {\n setTimeout(() => {\n var items = document.getElementById(\"cart-popup-items\");\n items.scrollTo({ top: items.scrollHeight, behavior: 'smooth' });\n }, 300);\n }\n\n\n }, [isCartPopupOpen]);\n\n function handleAddCounter(id) {\n const product = cart.filter((item, i) => item._id === id)[0]\n let new_cart = cart.map((item) => {\n if (item._id === id) {\n return {\n ...item,\n count: item.count + 1\n }\n }\n return item\n })\n setCart(new_cart)\n window.dataLayer.push({\n ecommerce: {\n currencyCode: \"RUB\",\n add: {\n products: [\n {\n id: product?._id,\n name: product?.name,\n category: product ? `${product.category.name}/${product.sub_category.name}` : '',\n price: getPrice(product),\n quantity: 1,\n },\n ],\n },\n }\n })\n localStorage.setItem(\"cart\", JSON.stringify(new_cart));\n }\n\n function handleMinusCounter(id) {\n const product = cart.filter((item, i) => item._id === id)[0]\n let new_cart = cart.map((item) => {\n if (item._id === id) {\n return {\n ...item,\n count: item.count - 1\n }\n }\n return item\n })\n setCart(new_cart)\n localStorage.setItem(\"cart\", JSON.stringify(new_cart));\n window.dataLayer.push({\n ecommerce: {\n currencyCode: \"RUB\",\n remove: {\n products: [\n {\n id: product?._id,\n name: product?.name,\n category: product ? `${product.category.name}/${product.sub_category.name}` : '',\n price: getPrice(product),\n quantity: 1,\n },\n ],\n },\n }\n })\n }\n\n function handleRemoveFromCart(id) {\n const product = cart.filter((item, i) => item._id === id)[0]\n if (cart.length > 1) {\n let new_cart = cart.filter((item) => {\n if (item._id === id) return false\n return true\n })\n setCart(new_cart)\n localStorage.setItem(\"cart\", JSON.stringify(new_cart));\n } else {\n setCart([])\n localStorage.setItem(\"cart\", JSON.stringify([]));\n handleCartPopupClose()\n }\n window.dataLayer.push({\n ecommerce: {\n currencyCode: \"RUB\",\n remove: {\n products: [\n {\n id: product?._id,\n name: product?.name,\n category: product ? `${product.category.name}/${product.sub_category.name}` : '',\n price: getPrice(product),\n quantity: product.count,\n },\n ],\n },\n }\n })\n\n }\n\n const getPrice = (item) => {\n\n const name = localStorage.getItem('city') ? localStorage.getItem('city') : 'Тобольск'\n let cityMap = {\n \"Новый Уренгой\": \"63777e52c505252a8fc59c09\",\n \"Надым\": \"63777e62c505252a8fc59c0a\",\n \"Тобольск\": \"63777e74c505252a8fc59c0b\",\n }\n let id = cityMap[name] ? cityMap[name] : \"63777e74c505252a8fc59c0b\"\n let value = item.firstc_data.price[id]\n return Number(value)\n }\n\n console.log(cart)\n\n return (\n
\n
\n
\n

Корзина

\n
\n \n \n \n
\n
\n\n
\n {cart && cart.length > 0 ?\n cart.map((item, i) => (\n <>\n
\n \n {item.name}\n \n\n
\n

Артикул: {item.firstc_data.barcode}

\n
\n

{item.name}

\n
\n {\n if (item.count > 1) {\n handleMinusCounter(item._id)\n }\n return\n }} className={`cart-popup__count-less ${item.count === 1 ? 'cart-popup__count-less_inactive' : ''}`} width=\"15\" height=\"16\" viewBox=\"0 0 15 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n \n \n

{item.count}

\n handleAddCounter(item._id)} className=\"cart-popup__count-more\" src={moreIcon} alt=\"add\" />\n
\n

{(item.count * getPrice(item)).toLocaleString('us')} ₽

\n
\n
\n\n\n
\n\n { handleLikeBtn(item) }} className='cart-popup__icon-like' width=\"38\" height=\"34\" viewBox=\"0 0 38 34\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n {\n if (filt_item._id === item._id) return true\n else return false\n }).length > 0 ? 'cart-popup__icon-like-bg_active' : ''}`} d=\"M3.34327 17.0933L19 32.75L34.6567 17.0933C36.3972 15.3528 37.375 12.9922 37.375 10.5308C37.375 5.40514 33.2199 1.25 28.0942 1.25C25.6328 1.25 23.2722 2.22779 21.5317 3.96828L19 6.5L16.4683 3.96828C14.7278 2.22779 12.3672 1.25 9.90578 1.25C4.78014 1.25 0.625 5.40515 0.625 10.5308C0.625 12.9922 1.60279 15.3528 3.34327 17.0933Z\" fill=\"var(--contrast-color)\" />\n {\n if (filt_item._id === item._id) return true\n else return false\n }).length > 0 ? 'cart-popup__icon-like-stroke_active' : ''}`} d=\"M19 32.75L18.6464 33.1036C18.8417 33.2988 19.1583 33.2988 19.3536 33.1036L19 32.75ZM3.34327 17.0933L2.98972 17.4468L2.98972 17.4468L3.34327 17.0933ZM16.4683 3.96828L16.1147 4.32183L16.1147 4.32183L16.4683 3.96828ZM19 6.5L18.6464 6.85355C18.8417 7.04882 19.1583 7.04882 19.3536 6.85355L19 6.5ZM21.5317 3.96828L21.1782 3.61472L21.1782 3.61472L21.5317 3.96828ZM19.3536 32.3964L3.69683 16.7397L2.98972 17.4468L18.6464 33.1036L19.3536 32.3964ZM34.3032 16.7397L18.6464 32.3964L19.3536 33.1036L35.0103 17.4468L34.3032 16.7397ZM16.1147 4.32183L18.6464 6.85355L19.3536 6.14645L16.8218 3.61472L16.1147 4.32183ZM19.3536 6.85355L21.8853 4.32183L21.1782 3.61472L18.6464 6.14645L19.3536 6.85355ZM28.0942 0.75C25.5002 0.75 23.0124 1.78047 21.1782 3.61472L21.8853 4.32183C23.532 2.67511 25.7654 1.75 28.0942 1.75V0.75ZM36.875 10.5308C36.875 12.8596 35.9499 15.093 34.3032 16.7397L35.0103 17.4468C36.8445 15.6126 37.875 13.1248 37.875 10.5308H36.875ZM37.875 10.5308C37.875 5.129 33.496 0.75 28.0942 0.75V1.75C32.9437 1.75 36.875 5.68129 36.875 10.5308H37.875ZM9.90578 1.75C12.2346 1.75 14.468 2.67512 16.1147 4.32183L16.8218 3.61472C14.9876 1.78047 12.4998 0.75 9.90578 0.75V1.75ZM1.125 10.5308C1.125 5.68129 5.05629 1.75 9.90578 1.75V0.75C4.504 0.75 0.125 5.129 0.125 10.5308H1.125ZM3.69683 16.7397C2.05011 15.093 1.125 12.8596 1.125 10.5308H0.125C0.125 13.1248 1.15547 15.6126 2.98972 17.4468L3.69683 16.7397Z\" fill=\"#121212\" />\n \n\n\n handleRemoveFromCart(item._id)} className=\"cart-popup__icon-trash\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n \n \n\n
\n
\n
\n
\n\n\n\n\n {/* MOBILE */}\n
\n
\n \n {item.name}\n \n
\n
\n { handleLikeBtn(item) }} className='cart-popup__icon-like' width=\"38\" height=\"34\" viewBox=\"0 0 38 34\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n {\n if (filt_item._id === item._id) return true\n else return false\n }).length > 0 ? 'cart-popup__icon-like-bg_active' : ''}`} d=\"M3.34327 17.0933L19 32.75L34.6567 17.0933C36.3972 15.3528 37.375 12.9922 37.375 10.5308C37.375 5.40514 33.2199 1.25 28.0942 1.25C25.6328 1.25 23.2722 2.22779 21.5317 3.96828L19 6.5L16.4683 3.96828C14.7278 2.22779 12.3672 1.25 9.90578 1.25C4.78014 1.25 0.625 5.40515 0.625 10.5308C0.625 12.9922 1.60279 15.3528 3.34327 17.0933Z\" fill=\"var(--contrast-color)\" />\n {\n if (filt_item._id === item._id) return true\n else return false\n }).length > 0 ? 'cart-popup__icon-like-stroke_active' : ''}`} d=\"M19 32.75L18.6464 33.1036C18.8417 33.2988 19.1583 33.2988 19.3536 33.1036L19 32.75ZM3.34327 17.0933L2.98972 17.4468L2.98972 17.4468L3.34327 17.0933ZM16.4683 3.96828L16.1147 4.32183L16.1147 4.32183L16.4683 3.96828ZM19 6.5L18.6464 6.85355C18.8417 7.04882 19.1583 7.04882 19.3536 6.85355L19 6.5ZM21.5317 3.96828L21.1782 3.61472L21.1782 3.61472L21.5317 3.96828ZM19.3536 32.3964L3.69683 16.7397L2.98972 17.4468L18.6464 33.1036L19.3536 32.3964ZM34.3032 16.7397L18.6464 32.3964L19.3536 33.1036L35.0103 17.4468L34.3032 16.7397ZM16.1147 4.32183L18.6464 6.85355L19.3536 6.14645L16.8218 3.61472L16.1147 4.32183ZM19.3536 6.85355L21.8853 4.32183L21.1782 3.61472L18.6464 6.14645L19.3536 6.85355ZM28.0942 0.75C25.5002 0.75 23.0124 1.78047 21.1782 3.61472L21.8853 4.32183C23.532 2.67511 25.7654 1.75 28.0942 1.75V0.75ZM36.875 10.5308C36.875 12.8596 35.9499 15.093 34.3032 16.7397L35.0103 17.4468C36.8445 15.6126 37.875 13.1248 37.875 10.5308H36.875ZM37.875 10.5308C37.875 5.129 33.496 0.75 28.0942 0.75V1.75C32.9437 1.75 36.875 5.68129 36.875 10.5308H37.875ZM9.90578 1.75C12.2346 1.75 14.468 2.67512 16.1147 4.32183L16.8218 3.61472C14.9876 1.78047 12.4998 0.75 9.90578 0.75V1.75ZM1.125 10.5308C1.125 5.68129 5.05629 1.75 9.90578 1.75V0.75C4.504 0.75 0.125 5.129 0.125 10.5308H1.125ZM3.69683 16.7397C2.05011 15.093 1.125 12.8596 1.125 10.5308H0.125C0.125 13.1248 1.15547 15.6126 2.98972 17.4468L3.69683 16.7397Z\" fill=\"#121212\" />\n \n\n handleRemoveFromCart(item._id)} className=\"cart-popup__icon-trash\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n \n \n\n
\n

Артикул: {item.firstc_data.barcode}

\n
\n

{item.name}

\n\n\n
\n
\n
\n
\n
\n {\n if (item.count > 1) {\n handleMinusCounter(item._id)\n }\n return\n }} className={`cart-popup__count-less ${item.count === 1 ? 'cart-popup__count-less_inactive' : ''}`} width=\"15\" height=\"16\" viewBox=\"0 0 15 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n \n \n

{item.count}

\n handleAddCounter(item._id)} className=\"cart-popup__count-more\" src={moreIcon} alt=\"add\" />\n
\n

{(item.count * getPrice(item)).toLocaleString('us')} ₽

\n
\n\n\n\n
\n \n ))\n\n : <>}\n\n
\n
\n

{allCartProductsCount.count} {getCorrectWordForm(allCartProductsCount.count)} на {allCartProductsCount.totalPrice.toLocaleString('us')} ₽

\n {\n sendMetriс('reachGoal', 'CART_POPUP_GO_CART')\n handleCartPopupClose()\n }}>\n

Оформить заказ

\n \n
{\n sendMetriс('reachGoal', 'CART_POPUP_RETURN_TO_GOODS')\n handleCartPopupClose()\n }}>\n

Продолжить покупки

\n
\n
\n
\n
{\n sendMetriс('reachGoal', 'CART_POPUP_RETURN_TO_GOODS')\n handleCartPopupClose()\n }}>\n\n
\n
\n );\n}\n\nexport default CartPopup;\n","import React from 'react'\n// import { Route, Link } from 'react-router-dom';\nimport { Link } from 'react-router-dom';\n\nimport './Cart.css';\n\nimport moreIcon from '../../../assets/images/more.svg'\nimport { MAIN_URL } from '../../../assets/utils/constants';\n\n\n\nfunction Cart(props) {\n\n\n\n function handleAddCounter(id) {\n const product = props.cart.filter((item, i) => item._id === id)[0]\n let cart = props.cart.map((item) => {\n if (item._id === id) {\n return {\n ...item,\n count: item.count + 1\n }\n }\n return item\n })\n props.setCart(cart)\n localStorage.setItem(\"cart\", JSON.stringify(cart));\n window.dataLayer.push({\n ecommerce: {\n currencyCode: \"RUB\",\n add: {\n products: [\n {\n id: product?._id,\n name: product?.name,\n category: product ? `${product.category.name}/${product.sub_category.name}` : '',\n price: getPrice(product),\n quantity: 1,\n },\n ],\n },\n }\n })\n }\n\n function handleMinusCounter(id) {\n const product = props.cart.filter((item, i) => item._id === id)[0]\n let cart = props.cart.map((item) => {\n if (item._id === id) {\n return {\n ...item,\n count: item.count - 1\n }\n }\n return item\n })\n props.setCart(cart)\n localStorage.setItem(\"cart\", JSON.stringify(cart));\n window.dataLayer.push({\n ecommerce: {\n currencyCode: \"RUB\",\n remove: {\n products: [\n {\n id: product?._id,\n name: product?.name,\n category: product ? `${product.category.name}/${product.sub_category.name}` : '',\n price: getPrice(product),\n quantity: 1,\n },\n ],\n },\n }\n })\n }\n\n function handleRemoveFromCart(id) {\n const product = props.cart.filter((item, i) => item._id === id)[0]\n\n if (props.cart.length > 1) {\n let cart = props.cart.filter((item) => {\n if (item._id === id) return false\n return true\n })\n props.setCart(cart)\n localStorage.setItem(\"cart\", JSON.stringify(cart));\n } else {\n props.setCart([])\n localStorage.setItem(\"cart\", JSON.stringify([]));\n }\n\n window.dataLayer.push({\n ecommerce: {\n currencyCode: \"RUB\",\n remove: {\n products: [\n {\n id: product?._id,\n name: product?.name,\n category: product ? `${product.category.name}/${product.sub_category.name}` : '',\n price: getPrice(product),\n quantity: product.count,\n },\n ],\n },\n }\n })\n }\n\n const getPrice = (item) => {\n\n const name = localStorage.getItem('city') ? localStorage.getItem('city') : 'Тобольск'\n let cityMap = {\n \"Новый Уренгой\": \"63777e52c505252a8fc59c09\",\n \"Надым\": \"63777e62c505252a8fc59c0a\",\n \"Тобольск\": \"63777e74c505252a8fc59c0b\",\n }\n let id = cityMap[name] ? cityMap[name] : \"63777e74c505252a8fc59c0b\"\n let value = item.firstc_data.price[id]\n return Number(value)\n }\n\n\n return (\n\n
\n
\n {props.cart && props.cart.length > 0 ?\n props.cart.map((item, i) => (\n <>\n\n
\n \n {item.name}\n \n\n
\n

Артикул: {item.firstc_data.barcode}

\n
\n

{item.name}

\n
\n {\n if (item.count > 1) {\n handleMinusCounter(item._id)\n }\n return\n }} className={`cart__count-less ${item.count === 1 ? 'cart__count-less_inactive' : ''}`} width=\"15\" height=\"16\" viewBox=\"0 0 15 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n \n \n

{item.count}

\n handleAddCounter(item._id)} className=\"cart__count-more\" src={moreIcon} alt=\"add\" />\n
\n

{(item.count * getPrice(item)).toLocaleString('us')} ₽

\n
\n
\n\n\n
\n { props.handleLikeBtn(item) }} className='cart__icon-like' width=\"38\" height=\"34\" viewBox=\"0 0 38 34\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n {\n if (filt_item._id === item._id) return true\n else return false\n }).length > 0 ? 'cart__icon-like-bg_active' : ''}`} d=\"M3.34327 17.0933L19 32.75L34.6567 17.0933C36.3972 15.3528 37.375 12.9922 37.375 10.5308C37.375 5.40514 33.2199 1.25 28.0942 1.25C25.6328 1.25 23.2722 2.22779 21.5317 3.96828L19 6.5L16.4683 3.96828C14.7278 2.22779 12.3672 1.25 9.90578 1.25C4.78014 1.25 0.625 5.40515 0.625 10.5308C0.625 12.9922 1.60279 15.3528 3.34327 17.0933Z\" fill=\"var(--contrast-color)\" />\n {\n if (filt_item._id === item._id) return true\n else return false\n }).length > 0 ? 'cart__icon-like-stroke_active' : ''}`} d=\"M19 32.75L18.6464 33.1036C18.8417 33.2988 19.1583 33.2988 19.3536 33.1036L19 32.75ZM3.34327 17.0933L2.98972 17.4468L2.98972 17.4468L3.34327 17.0933ZM16.4683 3.96828L16.1147 4.32183L16.1147 4.32183L16.4683 3.96828ZM19 6.5L18.6464 6.85355C18.8417 7.04882 19.1583 7.04882 19.3536 6.85355L19 6.5ZM21.5317 3.96828L21.1782 3.61472L21.1782 3.61472L21.5317 3.96828ZM19.3536 32.3964L3.69683 16.7397L2.98972 17.4468L18.6464 33.1036L19.3536 32.3964ZM34.3032 16.7397L18.6464 32.3964L19.3536 33.1036L35.0103 17.4468L34.3032 16.7397ZM16.1147 4.32183L18.6464 6.85355L19.3536 6.14645L16.8218 3.61472L16.1147 4.32183ZM19.3536 6.85355L21.8853 4.32183L21.1782 3.61472L18.6464 6.14645L19.3536 6.85355ZM28.0942 0.75C25.5002 0.75 23.0124 1.78047 21.1782 3.61472L21.8853 4.32183C23.532 2.67511 25.7654 1.75 28.0942 1.75V0.75ZM36.875 10.5308C36.875 12.8596 35.9499 15.093 34.3032 16.7397L35.0103 17.4468C36.8445 15.6126 37.875 13.1248 37.875 10.5308H36.875ZM37.875 10.5308C37.875 5.129 33.496 0.75 28.0942 0.75V1.75C32.9437 1.75 36.875 5.68129 36.875 10.5308H37.875ZM9.90578 1.75C12.2346 1.75 14.468 2.67512 16.1147 4.32183L16.8218 3.61472C14.9876 1.78047 12.4998 0.75 9.90578 0.75V1.75ZM1.125 10.5308C1.125 5.68129 5.05629 1.75 9.90578 1.75V0.75C4.504 0.75 0.125 5.129 0.125 10.5308H1.125ZM3.69683 16.7397C2.05011 15.093 1.125 12.8596 1.125 10.5308H0.125C0.125 13.1248 1.15547 15.6126 2.98972 17.4468L3.69683 16.7397Z\" fill=\"#121212\" />\n \n\n handleRemoveFromCart(item._id)} className=\"cart__icon-trash\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n \n \n\n
\n
\n
\n
\n\n\n\n\n {/* MOBILE */}\n
\n
\n \n {item.name}\n \n
\n
\n { props.handleLikeBtn(item) }} className='cart__icon-like' width=\"38\" height=\"34\" viewBox=\"0 0 38 34\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n {\n if (filt_item._id === item._id) return true\n else return false\n }).length > 0 ? 'cart__icon-like-bg_active' : ''}`} d=\"M3.34327 17.0933L19 32.75L34.6567 17.0933C36.3972 15.3528 37.375 12.9922 37.375 10.5308C37.375 5.40514 33.2199 1.25 28.0942 1.25C25.6328 1.25 23.2722 2.22779 21.5317 3.96828L19 6.5L16.4683 3.96828C14.7278 2.22779 12.3672 1.25 9.90578 1.25C4.78014 1.25 0.625 5.40515 0.625 10.5308C0.625 12.9922 1.60279 15.3528 3.34327 17.0933Z\" fill=\"var(--contrast-color)\" />\n {\n if (filt_item._id === item._id) return true\n else return false\n }).length > 0 ? 'cart__icon-like-stroke_active' : ''}`} d=\"M19 32.75L18.6464 33.1036C18.8417 33.2988 19.1583 33.2988 19.3536 33.1036L19 32.75ZM3.34327 17.0933L2.98972 17.4468L2.98972 17.4468L3.34327 17.0933ZM16.4683 3.96828L16.1147 4.32183L16.1147 4.32183L16.4683 3.96828ZM19 6.5L18.6464 6.85355C18.8417 7.04882 19.1583 7.04882 19.3536 6.85355L19 6.5ZM21.5317 3.96828L21.1782 3.61472L21.1782 3.61472L21.5317 3.96828ZM19.3536 32.3964L3.69683 16.7397L2.98972 17.4468L18.6464 33.1036L19.3536 32.3964ZM34.3032 16.7397L18.6464 32.3964L19.3536 33.1036L35.0103 17.4468L34.3032 16.7397ZM16.1147 4.32183L18.6464 6.85355L19.3536 6.14645L16.8218 3.61472L16.1147 4.32183ZM19.3536 6.85355L21.8853 4.32183L21.1782 3.61472L18.6464 6.14645L19.3536 6.85355ZM28.0942 0.75C25.5002 0.75 23.0124 1.78047 21.1782 3.61472L21.8853 4.32183C23.532 2.67511 25.7654 1.75 28.0942 1.75V0.75ZM36.875 10.5308C36.875 12.8596 35.9499 15.093 34.3032 16.7397L35.0103 17.4468C36.8445 15.6126 37.875 13.1248 37.875 10.5308H36.875ZM37.875 10.5308C37.875 5.129 33.496 0.75 28.0942 0.75V1.75C32.9437 1.75 36.875 5.68129 36.875 10.5308H37.875ZM9.90578 1.75C12.2346 1.75 14.468 2.67512 16.1147 4.32183L16.8218 3.61472C14.9876 1.78047 12.4998 0.75 9.90578 0.75V1.75ZM1.125 10.5308C1.125 5.68129 5.05629 1.75 9.90578 1.75V0.75C4.504 0.75 0.125 5.129 0.125 10.5308H1.125ZM3.69683 16.7397C2.05011 15.093 1.125 12.8596 1.125 10.5308H0.125C0.125 13.1248 1.15547 15.6126 2.98972 17.4468L3.69683 16.7397Z\" fill=\"#121212\" />\n \n\n handleRemoveFromCart(item._id)} className=\"cart__icon-trash\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n \n \n\n
\n

Артикул: {item.barcode}

\n
\n

{item.name}

\n\n\n
\n\n
\n
\n
\n
\n {\n if (item.count > 1) {\n handleMinusCounter(item._id)\n }\n return\n }} className={`cart__count-less ${item.count === 1 ? 'cart__count-less_inactive' : ''}`} width=\"15\" height=\"16\" viewBox=\"0 0 15 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n \n \n

{item.count}

\n handleAddCounter(item._id)} className=\"cart__count-more\" src={moreIcon} alt=\"add\" />\n
\n

{(item.count * getPrice(item)).toLocaleString('us')} ₽

\n
\n\n\n\n
\n \n ))\n\n : <>}\n
\n
\n );\n}\n\nexport default Cart;\n","import React from 'react'\n\n\nimport './PaymentMethod.css';\n\n// const methods = [\n// 'Наличными или картой (переводом) при получении',\n// 'Картой онлайн',\n// 'Безналичный расчет для юр. лиц'\n// ]\n\n\n\nfunction PaymentMethod(props) {\n\n return (\n
\n
\n
{ props.setPaymentMethod('Наличными или картой (переводом) при получении') }}>\n
\n
\n
\n

Наличными или картой (переводом) при получении

\n
\n
{\n return\n // props.setPaymentMethod('Картой онлайн')\n }}>\n
\n
\n
\n

Картой онлайн

\n
\n
{\n return\n // props.setPaymentMethod('Безналичный расчет для юр. лиц')\n }}>\n
\n
\n
\n

Безналичный расчет для юр. лиц

\n
\n\n
\n
\n );\n}\n\nexport default PaymentMethod;\n","import React, { useEffect, useState } from 'react'\nimport { Link } from 'react-router-dom';\n\nimport validator from 'validator'\n\nimport './UserData.css';\n\n\n\n\n\nfunction UserData({\n currentUser,\n setUserDataValid,\n loggedIn,\n personalValues,\n setPersonalValues,\n}) {\n\n\n const [nameValidity, setNameValidity] = useState({\n errorMassage: '',\n validState: false\n });\n\n\n const [surnameValidity, setSurnameValidity] = useState({\n errorMassage: '',\n validState: false\n });\n\n\n const [phoneValidity, setPhoneValidity] = useState({\n errorMassage: '',\n validState: false\n });\n\n\n const [emailValidity, setEmailValidity] = useState({\n errorMassage: '',\n validState: false\n });\n\n\n\n\n function handleNameChange(e) {\n let inputValue = e.target.value.replace(/[^a-zA-Zа-яА-ЯёЁ]/g, '')\n\n setPersonalValues(prevValue => ({\n ...prevValue,\n first_name: inputValue,\n }))\n if (inputValue.length < 1) {\n setNameValidity({\n errorMassage: 'Заполните поле',\n validState: false\n })\n } else {\n setNameValidity({\n errorMassage: (''),\n validState: true\n })\n }\n }\n\n function handleSurnameChange(e) {\n let inputValue = e.target.value.replace(/[^a-zA-Zа-яА-ЯёЁ]/g, '')\n setPersonalValues(prevValue => ({\n ...prevValue,\n last_name: inputValue,\n }))\n if (inputValue.length < 1) {\n setSurnameValidity({\n errorMassage: 'Заполните поле',\n validState: false\n })\n } else {\n setSurnameValidity({\n errorMassage: (''),\n validState: true\n })\n }\n }\n\n function handlePhoneChange(e) {\n\n let inputValue = e.target.value.replace(/\\D/g, '')\n let formattedInputValue = '';\n if (!inputValue) {\n setPersonalValues(prevValue => ({\n ...prevValue,\n phone: '',\n }))\n setPhoneValidity({\n errorMassage: 'Можно вводить только цифры',\n validState: false\n })\n }\n else {\n if (['7', '8', '9'].indexOf(inputValue[0]) > -1) {\n setPhoneValidity({\n errorMassage: '',\n validState: false\n })\n if (inputValue[0] === '9') inputValue = '7' + inputValue;\n\n let firstSimbols = (inputValue[0] === '8') ? '8' : '+7';\n formattedInputValue = firstSimbols + ' '\n\n if (inputValue.length > 1) {\n formattedInputValue += '(' + inputValue.substring(1, 4)\n }\n if (inputValue.length >= 5) {\n formattedInputValue += ') ' + inputValue.substring(4, 7)\n }\n if (inputValue.length >= 8) {\n formattedInputValue += '-' + inputValue.substring(7, 9)\n }\n if (inputValue.length >= 10) {\n formattedInputValue += '-' + inputValue.substring(9, 11)\n }\n if (inputValue.length >= 11) {\n setPhoneValidity({\n errorMassage: '',\n validState: true\n });\n } else {\n setPhoneValidity({\n errorMassage: '',\n validState: false\n });\n }\n } else {\n formattedInputValue = '+' + inputValue.substring(0, 16)\n if (inputValue.length >= 11) {\n setPhoneValidity({\n errorMassage: 'Только номера РФ',\n validState: false\n });\n } else {\n setPhoneValidity({\n errorMassage: 'Только номера РФ',\n validState: false\n });\n }\n }\n\n\n setPersonalValues(prevValue => ({\n ...prevValue,\n phone: formattedInputValue,\n }))\n }\n\n }\n\n function handlePhoneDelite(e) {\n if (e.keyCode === 8 && e.target.value.replace(/\\D/g, '').length === 1) {\n setPersonalValues(prevValue => ({\n ...prevValue,\n phone: '',\n }))\n }\n if (e.keyCode === 8 && e.target.value.replace(/\\D/g, '').length < 11) {\n setPhoneValidity({\n errorMassage: '',\n validState: false\n });\n }\n\n }\n\n\n function handleEmailChange(e) {\n let inputValue = e.target.value\n\n setPersonalValues(prevValue => ({\n ...prevValue,\n email: inputValue,\n }))\n if (!inputValue) {\n setEmailValidity({\n errorMassage: '',\n validState: false\n })\n }\n if (inputValue.length >= 2) {\n if (validator.isEmail(inputValue)) {\n setEmailValidity({\n errorMassage: '',\n validState: true\n })\n } else {\n setEmailValidity({\n errorMassage: (!e.target.validity.valid ? e.target.validationMessage : 'Введите валидный email'),\n validState: false\n })\n }\n }\n }\n\n useEffect(() => {\n\n if (nameValidity.validState && surnameValidity.validState && phoneValidity.validState && emailValidity.validState) {\n setUserDataValid(true)\n } else {\n setUserDataValid(false)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [nameValidity, surnameValidity, phoneValidity, emailValidity])\n\n\n return (\n
\n
\n
\n
\n
\n \n

Имя *

\n
\n {!nameValidity.validState && nameValidity.errorMassage &&

{nameValidity.errorMassage}

}\n
\n
\n
\n \n

Фамилия *

\n
\n {!surnameValidity.validState && surnameValidity.errorMassage &&

{surnameValidity.errorMassage}

}\n
\n
\n\n
\n
\n
\n handlePhoneDelite(e)} placeholder='+7 (___) ___ __ __' className=\"cart-user-data__input\" name=\"text\" type=\"phone\" value={personalValues.phone} onChange={handlePhoneChange} maxLength=\"250\">\n

Контактный телефон *

\n
\n {!phoneValidity.validState && phoneValidity.errorMassage &&

{phoneValidity.errorMassage}

}\n
\n
\n
\n \n

Электронная почта *

\n
\n {!emailValidity.validState && emailValidity.errorMassage &&

{emailValidity.errorMassage}

}\n
\n\n
\n\n
\n
\n );\n}\n\nexport default UserData;\n","import './SuccessPopup.css';\nimport React from \"react\";\n\n\n\n\n\n\n\nfunction SuccessPopup({\n handleClose,\n isOpen,\n ai_id,\n}) {\n\n return (\n
\n
\n
\n \n \n \n
\n

Вы успешно оформили заказ {ai_id ? ai_id : ''}!

\n

В ближайшее время с вами свяжется менеджер для уточнения деталей заказа

\n
\n
\n

Вернуться к покупкам

\n
\n
\n\n
\n
\n\n
\n
\n );\n}\n\nexport default SuccessPopup;\n","import React, { useState } from 'react'\n// import { Route, Link } from 'react-router-dom';\nimport Cart from './Cart/Cart';\nimport { useHistory } from 'react-router-dom';\n\n\nimport './CartPage.css';\nimport DeliveryMethod from './DeliveryMethod/DeliveryMethod';\n\nimport { deliveryMethods } from '../../utils/utils';\nimport PaymentMethod from './PaymentMethod/PaymentMethod';\nimport UserData from './UserData/UserData';\n\n\nimport emptyIcon from '../../assets/images/empry-cart.png'\nimport { getCorrectWordForm, getPrice, sendMetriс } from '../../assets/utils/utils';\nimport SuccessPopup from '../SuccessPopup/SuccessPopup';\nimport { getCityId } from '../../assets/utils/constants';\nimport mainApi from '../../assets/api/MainApi';\nimport MiniPreloader from '../MiniPreloader/MiniPreloader';\nimport { Helmet } from 'react-helmet';\n// import { copyText } from '../../assets/utils/utils';\n\n\n\nfunction CartPage({\n allCartProductsCount,\n setSubmitActionPopupOpen,\n handleLikeBtn,\n favouritesProducts,\n setCart,\n cart,\n currentUser,\n loggedIn,\n\n}) {\n\n const history = useHistory();\n const [userDataValid, setUserDataValid] = useState(false);\n\n\n\n const [personalValues, setPersonalValues] = useState({\n first_name: \"\",\n last_name: \"\",\n phone: \"\",\n email: \"\",\n });\n\n\n const [isSuccessPopupOpen, setSuccessPopupOpen] = useState(false)\n function handleCloseSuccessPopup() {\n setSuccessPopupOpen(false)\n history.goBack()\n }\n const [isPreloaderVisible, setPreloaderVisible] = useState(false)\n const [createdOrder, setCreatedOrder] = useState(undefined)\n function handleCreateOrder() {\n if (isPreloaderVisible) return\n let cartPrevArray = JSON.parse(localStorage.getItem(\"cart\"));\n setPreloaderVisible(true)\n let cart_to_api = cart.map((item) => {\n return {\n item_id: item._id,\n amount: item.count.toString(),\n }\n })\n let city_id = localStorage.getItem('city') ? getCityId(localStorage.getItem('city')) : '63777e74c505252a8fc59c0b'\n console.log(cart_to_api, city_id, personalValues)\n\n mainApi.createOrder({\n data: cart_to_api,\n city_id: city_id,\n first_name: personalValues.first_name,\n last_name: personalValues.last_name,\n phone: personalValues.phone.replace(/\\D/g, ''),\n email: personalValues.email,\n })\n .then((res) => {\n console.log(res)\n setCreatedOrder(res)\n setSuccessPopupOpen(true)\n let cartArray = []\n setCart(cartArray)\n localStorage.setItem(\"cart\", JSON.stringify(cartArray));\n sendMetriс('reachGoal', 'CREATE_ORDER_2')\n window.dataLayer.push({\n ecommerce: {\n currencyCode: \"RUB\",\n purchase: {\n products: cartPrevArray.map((product, i) => {\n return {\n id: product?._id,\n name: product?.name,\n category: product ? `${product.category.name}/${product.sub_category.name}` : '',\n price: getPrice(product),\n quantity: product.count,\n }\n }),\n actionField: {\n id: `№${('00000000' + res.ai_id).slice(-8)}`,\n goal_id: 291857837,\n }\n },\n }\n })\n })\n .catch((err) => {\n console.log(err)\n })\n .finally(() => {\n setPreloaderVisible(false)\n })\n\n }\n\n const [step, setStep] = useState(0)\n\n return (\n
\n \n Диванчик - Корзина\n \n \n {allCartProductsCount.count && allCartProductsCount.count > 0 ?\n <>\n
\n
{\n if (step === 0) {\n history.goBack()\n\n sendMetriс('reachGoal', 'CREATE_ORDER_GO_BACK_TO_GOODS')\n\n } else {\n sendMetriс('reachGoal', 'CREATE_ORDER_RETURN_TO_1')\n setStep(0)\n }\n }}>\n \n \n \n \n

{step === 0 ? 'Вернуться к покупкам' : 'Вернуться к товарам'}

\n
\n {step === 0 ?\n <>\n
\n\n

Корзина

\n
{ setSubmitActionPopupOpen(true) }}>\n

Очистить корзину

\n
\n\n
\n \n \n\n : null}\n {/*
\n

2 Способ и дата получения

\n
\n \n
\n

3 Способ Оплаты

\n
\n */}\n {step === 1 ?\n <>\n
\n

Контакты

\n\n
\n \n \n : null}\n\n
\n
\n
\n

В корзине

\n

{allCartProductsCount.count} {getCorrectWordForm(allCartProductsCount.count)}

\n

{allCartProductsCount.totalPrice.toLocaleString('us')} ₽

\n {/*

{deliveryMethod[0].toUpperCase() + deliveryMethod.slice(1)}:

*/}\n {/*

{deliveryMethod === 'Самовывоз'.toLowerCase() ? 'Магазин Диванчик по адресу: 7-й микрорайон, 2А, Тобольск, Тюменская область' : fullAdressValue ? fullAdressValue : 'Укажите адрес'}

*/}\n {/*

Дата: {deliveryMethod === 'Самовывоз'.toLowerCase() ? 'Завтра после 17:00' : '2 Октября - 16 Ноября'}

*/}\n {/*

Оплата: {paymentMethod}

*/}\n \n
\n {/* */}\n
\n \n :\n
\n {/* Пустая корзина */}\n \n \n \n \n \n \n\n

В вашей корзине пусто

\n

Вам надо выбрать товар, который Вас интересует, чтобы оформить покупку.

\n
history.goBack()}>\n \n \n \n \n

Вернуться к покупкам

\n
\n
}\n\n
\n );\n}\n\nexport default CartPage;\n","import './SubmitActionPopup.css';\nimport React from \"react\";\n\n\n\n\n\n\n\nfunction SubmitActionPopup(props) {\n \n return (\n
\n
\n
\n \n \n \n
\n

Вы уверены что хотите очистить корзину?

\n
\n
\n

Очистить корзину

\n
\n
\n

Вернуться в корзину

\n
\n
\n\n
\n
\n\n
\n
\n );\n}\n\nexport default SubmitActionPopup;\n","import React from 'react'\nimport { Helmet } from 'react-helmet';\nimport './Requisites.css';\n\nconst requisites = [\n {\n title: 'ИП Халиуллина Наталья Владимировна',\n ogrn: '304720628800023',\n inn: '720603954640',\n legal_address: '629303, ЯНАО, г. Новый Уренгой, мкр. Мирный, д. 2, корпус 4, кв. 139',\n postal_address: '626157, Тюменская область, г.Тобольск, 7 микрорайон, строение 2А',\n actual_address: '626157, Тюменская область, г.Тобольск, 7 микрорайон, строение 2А (м/с «Диванчик»)',\n phone: '8 (3456) 24-06-30',\n fax: '34-40-42',\n email: 'Ola.0802@mail.ru - бухгалтерия',\n work_time: 'Пн.- Сб. 9:30 - 20:00/ Вс. 9.30 -19.00'\n },\n // {\n // title: 'ИП Пенкина Ольга Николаевна',\n // ogrn: '312890324200015',\n // inn: '661200610507',\n // legal_address: '629730, ЯНАО, г. Надым, ул.Ямальская, дом 7, кв.11',\n // postal_address: '626157, Тюменская область, г.Тобольск, 7 микрорайон, строение 2А',\n // actual_address: '626157, Тюменская область, г.Тобольск, 7 микрорайон, строение 2А (м/с «Диванчик»)',\n // phone: '8 (3456) 24-06-30',\n // fax: '34-40-42',\n // email: 'Ola.0802@mail.ru - бухгалтерия',\n // work_time: 'Пн.- Сб. 9:30 - 20:00/ Вс. 9.30 -19.00'\n // },\n // {\n // title: 'ИП Мазарак Юлия Борисовна',\n // ogrn: '313890311600018',\n // inn: '450206494229',\n // legal_address: '629730, ЯНАО, г. Надым, пр. Ленинградский, дом 20, кв.24',\n // postal_address: '626157, Тюменская область, г.Тобольск, 7 микрорайон, строение 2А',\n // actual_address: '626157, Тюменская область, г.Тобольск, 7 микрорайон, строение 2А (м/с «Диванчик»)',\n // phone: '8 (3456) 24-06-30',\n // fax: '34-40-42',\n // email: 'Ola.0802@mail.ru - бухгалтерия',\n // work_time: 'Пн.- Сб. 9:30 - 20:00/ Вс. 9.30 -19.00'\n // },\n]\n\n\n\nfunction Requisites(props) {\n\n\n return (\n
\n \n Диванчик - Реквизиты\n \n {requisites.map((item, i) => (\n
\n

{item.title}

\n
\n

ОГРН/ИНН {item.ogrn}/{item.inn}

\n

Юридический адрес: {item.legal_address}

\n

Почтовый адрес: {item.postal_address}

\n

Фактический адрес: {item.actual_address}

\n

Телефон/факс {item.phone}/{item.fax}

\n

Электронная почта: {item.email}

\n

Режим работы: {item.work_time}

\n
\n\n
\n ))}\n\n
\n );\n}\n\nexport default Requisites;\n","import React from 'react'\nimport './Account.css';\n\nimport validator from 'validator'\nimport { useHistory } from 'react-router-dom';\n\n\n\n\nfunction Account(props) {\n const history = useHistory();\n\n const [nameValue, setNameValue] = React.useState('');\n const [nameValidity, setNameValidity] = React.useState({\n errorMassage: '',\n validState: false\n });\n\n const [surnameValue, setSurnameValue] = React.useState('');\n const [surnameValidity, setSurnameValidity] = React.useState({\n errorMassage: '',\n validState: false\n });\n\n const [phoneValue, setPhoneValue] = React.useState('');\n const [phoneValidity, setPhoneValidity] = React.useState({\n errorMassage: '',\n validState: false\n });\n\n const [emailValue, setEmailValue] = React.useState('');\n const [emailValidity, setEmailValidity] = React.useState({\n errorMassage: '',\n validState: false\n });\n\n React.useEffect(() => {\n if (props.currentUser) {\n console.log(props.currentUser)\n setNameValue(props.currentUser.firstname)\n setNameValidity({\n errorMassage: (''),\n validState: true\n })\n setSurnameValue(props.currentUser.surname)\n setSurnameValidity({\n errorMassage: (''),\n validState: true\n })\n setPhoneValue(props.currentUser.formatedPhoneNumber)\n setPhoneValidity({\n errorMassage: '',\n validState: true\n });\n setEmailValue(props.currentUser.email)\n setEmailValidity({\n errorMassage: '',\n validState: true\n })\n }\n\n }, [props.currentUser])\n\n\n function handleNameChange(e) {\n let inputValue = e.target.value.replace(/[^a-zA-Zа-яА-ЯёЁ]/g, '')\n\n setNameValue(inputValue)\n if (inputValue.length < 1) {\n setNameValidity({\n errorMassage: 'Заполните поле',\n validState: false\n })\n } else {\n setNameValidity({\n errorMassage: (''),\n validState: true\n })\n }\n }\n\n function handleSurnameChange(e) {\n let inputValue = e.target.value.replace(/[^a-zA-Zа-яА-ЯёЁ]/g, '')\n setSurnameValue(inputValue)\n if (inputValue.length < 1) {\n setSurnameValidity({\n errorMassage: 'Заполните поле',\n validState: false\n })\n } else {\n setSurnameValidity({\n errorMassage: (''),\n validState: true\n })\n }\n }\n\n function handlePhoneChange(e) {\n\n let inputValue = e.target.value.replace(/\\D/g, '')\n let formattedInputValue = '';\n if (!inputValue) {\n setPhoneValue('')\n setPhoneValidity({\n errorMassage: 'Можно вводить только цифры',\n validState: false\n })\n }\n else {\n if (['7', '8', '9'].indexOf(inputValue[0]) > -1) {\n setPhoneValidity({\n errorMassage: '',\n validState: false\n })\n if (inputValue[0] === '9') inputValue = '7' + inputValue;\n\n let firstSimbols = (inputValue[0] === '8') ? '8' : '+7';\n formattedInputValue = firstSimbols + ' '\n\n if (inputValue.length > 1) {\n formattedInputValue += '(' + inputValue.substring(1, 4)\n }\n if (inputValue.length >= 5) {\n formattedInputValue += ') ' + inputValue.substring(4, 7)\n }\n if (inputValue.length >= 8) {\n formattedInputValue += '-' + inputValue.substring(7, 9)\n }\n if (inputValue.length >= 10) {\n formattedInputValue += '-' + inputValue.substring(9, 11)\n }\n if (inputValue.length >= 11) {\n setPhoneValidity({\n errorMassage: '',\n validState: true\n });\n } else {\n setPhoneValidity({\n errorMassage: '',\n validState: false\n });\n }\n } else {\n formattedInputValue = '+' + inputValue.substring(0, 16)\n if (inputValue.length >= 11) {\n setPhoneValidity({\n errorMassage: 'Только номера РФ',\n validState: false\n });\n } else {\n setPhoneValidity({\n errorMassage: 'Только номера РФ',\n validState: false\n });\n }\n }\n\n setPhoneValue(formattedInputValue)\n }\n\n }\n\n function handlePhoneDelite(e) {\n if (e.keyCode === 8 && e.target.value.replace(/\\D/g, '').length === 1) {\n setPhoneValue('')\n }\n if (e.keyCode === 8 && e.target.value.replace(/\\D/g, '').length < 11) {\n setPhoneValidity({\n errorMassage: '',\n validState: false\n });\n }\n\n }\n\n\n\n\n function handleEmailChange(e) {\n let inputValue = e.target.value\n setEmailValue(inputValue);\n if (!inputValue) {\n setEmailValidity({\n errorMassage: '',\n validState: false\n })\n }\n if (inputValue.length >= 2) {\n if (validator.isEmail(inputValue)) {\n setEmailValidity({\n errorMassage: '',\n validState: true\n })\n } else {\n setEmailValidity({\n errorMassage: (!e.target.validity.valid ? e.target.validationMessage : 'Введите валидный email'),\n validState: false\n })\n }\n }\n }\n\n function handleExit() {\n props.setLoggedIn(false)\n props.setCurrentUser(undefined)\n localStorage.removeItem('jwt');\n // localStorage.removeItem('_id');\n // localStorage.removeItem('email');\n history.push('/login');\n }\n\n return (\n
\n
\n
\n
\n
\n \n

Имя *

\n
\n {!nameValidity.validState && nameValidity.errorMassage &&

{nameValidity.errorMassage}

}\n
\n
\n
\n \n

Фамилия *

\n
\n {!surnameValidity.validState && surnameValidity.errorMassage &&

{surnameValidity.errorMassage}

}\n
\n
\n\n
\n
\n
\n handlePhoneDelite(e)} placeholder='+7 (___) ___ __ __' className=\"account__input\" name=\"text\" type=\"phone\" value={phoneValue} onChange={handlePhoneChange} maxLength=\"250\">\n

Контактный телефон *

\n
\n {!phoneValidity.validState && phoneValidity.errorMassage &&

{phoneValidity.errorMassage}

}\n
\n
\n
\n \n

Электронная почта *

\n
\n {!emailValidity.validState && emailValidity.errorMassage &&

{emailValidity.errorMassage}

}\n
\n\n
\n\n
\n
\n
{\n if (props.currentUser && ((phoneValue !== props.currentUser.formatedPhoneNumber || emailValue !== props.currentUser.email || surnameValue !== props.currentUser.surname || nameValue !== props.currentUser.firstname) && phoneValidity.validState && emailValidity.validState && nameValidity.validState && surnameValidity.validState)) {\n console.log('change')\n }\n }} className={`account__btn account__btn_submit ${props.currentUser && ((phoneValue !== props.currentUser.formatedPhoneNumber || emailValue !== props.currentUser.email || surnameValue !== props.currentUser.surname || nameValue !== props.currentUser.firstname) && phoneValidity.validState && emailValidity.validState && nameValidity.validState && surnameValidity.validState) ? 'account__btn_submit-active' : 'account__btn_submit-inactive'}`}>\n

Сохранить изменения

\n
\n {/* {props.currentUser && ((phoneValue !== props.currentUser.formatedPhoneNumber || emailValue !== props.currentUser.email || surnameValue !== props.currentUser.surname || nameValue !== props.currentUser.firstname)) ? <> :\n
{\n handleExit()\n }} className={`account__btn account__btn_exit`}>\n

Выйти из аккаунта

\n
\n } */}\n
{\n handleExit()\n }} className={`account__btn account__btn_exit`}>\n

Выйти из аккаунта

\n
\n
\n\n
\n\n\n );\n}\n\nexport default Account;\n","import React from 'react'\nimport './Addresses.css';\n\nconst addresses = [\n {\n _id: '00001',\n formated_address: 'Тобольск, Тюменьская область, улица Панфиловцев, 65, кв 3, подъезд 1 , этаж 2',\n address: 'Тобольск, Тюменьская область, улица Панфиловцев, 65',\n flat: '3',\n entrance: '1',\n floor: '2',\n isPrivateHouse: false,\n },\n {\n _id: '00002',\n formated_address: 'Тобольск, Тюменьская область, улица Панфиловцев, 65, кв 5, подъезд 1 , этаж 2',\n address: 'Тобольск, Тюменьская область, улица Панфиловцев, 65',\n flat: '5',\n entrance: '1',\n floor: '2',\n isPrivateHouse: false,\n },\n {\n _id: '00003',\n formated_address: 'Тобольск, Тюменьская область, улица Панфиловцев, 65, кв 5, подъезд 1 , этаж 2',\n address: 'Тобольск, Тюменьская область, улица Панфиловцев, 65',\n isPrivateHouse: true,\n },\n]\n\n\nfunction Addresses(props) {\n\n const [idChangeOpen, setIdChangeOpen] = React.useState('');\n const [addAddressOpen, setAddAddressOpen] = React.useState(false);\n\n const [privateHouseSelected, setPrivateHouseSelected] = React.useState(false);\n const [adressValue, setAdressValue] = React.useState('');\n // eslint-disable-next-line no-unused-vars\n const [adressValidity, setAdressValidity] = React.useState({\n errorMassage: '',\n validState: false\n });\n\n const [flatValue, setFlatValue] = React.useState('');\n // eslint-disable-next-line no-unused-vars\n const [flatValidity, setFlatValidity] = React.useState({\n errorMassage: '',\n validState: false\n });\n\n\n const [entranceValue, setEntranceValue] = React.useState('');\n const [floorValue, setFloorValue] = React.useState('');\n\n\n function handleAdressChange(e) {\n let inputValue = e.target.value\n setAdressValue(inputValue)\n if (inputValue.length < 1) {\n setAdressValidity({\n errorMassage: 'Заполните поле',\n validState: false\n })\n } else {\n setAdressValidity({\n errorMassage: (''),\n validState: true\n })\n }\n }\n\n function handleFlatChange(e) {\n let inputValue = e.target.value\n setFlatValue(inputValue)\n if (inputValue.length < 1) {\n setFlatValidity({\n errorMassage: 'Заполните поле',\n validState: false\n })\n } else {\n setFlatValidity({\n errorMassage: (''),\n validState: true\n })\n }\n }\n\n function handleEntranceChange(e) {\n let inputValue = e.target.value.replace(/\\D/g, '')\n setEntranceValue(inputValue)\n }\n\n function handleFloorChange(e) {\n let inputValue = e.target.value.replace(/\\D/g, '')\n setFloorValue(inputValue)\n }\n\n\n function handleChangeOpen(item) {\n setAddAddressOpen(false)\n if (item.isPrivateHouse) {\n setPrivateHouseSelected(item.isPrivateHouse)\n setAdressValue(item.address)\n setAdressValidity({\n errorMassage: (''),\n validState: true\n })\n\n setFlatValue('')\n setEntranceValue('')\n setFloorValue('')\n setIdChangeOpen(item._id)\n }\n else {\n setPrivateHouseSelected(item.isPrivateHouse)\n setAdressValue(item.address)\n setAdressValidity({\n errorMassage: (''),\n validState: true\n })\n setFlatValue(item.flat)\n setFlatValidity({\n errorMassage: (''),\n validState: true\n })\n if (item.floor) setFloorValue(item.floor)\n if (item.entrance) setEntranceValue(item.entrance)\n setIdChangeOpen(item._id)\n }\n\n }\n\n function handleAddAdressOpen() {\n setPrivateHouseSelected(false)\n setIdChangeOpen('')\n setEntranceValue('')\n setFloorValue('')\n setAdressValue('')\n setAdressValidity({\n errorMassage: (''),\n validState: false\n })\n setFlatValue('')\n setFlatValidity({\n errorMassage: (''),\n validState: false\n })\n setAddAddressOpen(true)\n }\n\n function handleChangeAddress(item) {\n\n }\n\n function handleAddAddress() {\n\n }\n\n return (\n
\n {addresses.map((item, i) => (\n
\n

{item.formated_address}

\n {idChangeOpen === item._id ? <> :\n
\n\n

{ handleChangeOpen(item) }} className=\"addresses__item-controls-change\">Изменить

\n

Удалить

\n
}\n\n {idChangeOpen === item._id ?\n
\n
setPrivateHouseSelected(!privateHouseSelected)}>\n
\n \n \n \n
\n

Частный дом

\n
\n
\n \n

Город, улица, дом *

\n
\n {\n privateHouseSelected ? <>\n :\n
\n
\n \n

Квартира *

\n
\n
\n \n

Подъезд

\n
\n
\n \n

Этаж

\n
\n
\n }\n
\n
{ setIdChangeOpen('') }}>\n

Отмена

\n
\n
\n

{ handleChangeAddress(item) }}>Сохранить

\n
\n
\n
\n\n :\n <>}\n\n
\n ))}\n\n {addAddressOpen ?\n
\n
setPrivateHouseSelected(!privateHouseSelected)}>\n
\n \n \n \n
\n

Частный дом

\n
\n
\n \n

Город, улица, дом *

\n
\n {\n privateHouseSelected ? <>\n :\n
\n
\n \n

Квартира *

\n
\n
\n \n

Подъезд

\n
\n
\n \n

Этаж

\n
\n
\n }\n
\n
{ setAddAddressOpen(false) }}>\n

Отмена

\n
\n
\n

Сохранить

\n
\n
\n
\n\n :\n <>}\n {\n addAddressOpen ? <> :\n
{ handleAddAdressOpen() }}>\n

{ handleAddAddress() }}>Добавить адрес

\n
\n }\n\n\n
\n\n\n );\n}\n\nexport default Addresses;\n","import React from 'react'\nimport './Orders.css';\n\nimport { testOrders } from '../../../utils/utils'\nimport { Link } from 'react-router-dom/cjs/react-router-dom.min';\n\n\nfunction Orders(props) {\n\n const [selectedStatus, setSelectedStatus] = React.useState('все');\n const [isSelectorOpen, setSelectorOpen] = React.useState(false);\n\n const [orderNumberOpen, setOrderNumberOpen] = React.useState('');\n\n\n return (\n
\n {/*

Отслеживание
и управление заказом

*/}\n
\n
{ setSelectorOpen(!isSelectorOpen) }}>\n {selectedStatus.toLowerCase() === 'все' ?

Все

: <>}\n {selectedStatus.toLowerCase() === 'в работе' ?

В работе

: <>}\n {selectedStatus.toLowerCase() === 'доставлен' ?

Доставлен

: <>}\n {selectedStatus.toLowerCase() === 'отмененный' ?

Отмененный

: <>}\n \n \n \n
\n {\n isSelectorOpen ?\n
\n {selectedStatus.toLowerCase() === 'все' ? <> :

{\n setSelectedStatus('все')\n setSelectorOpen(!isSelectorOpen)\n }} className=\"order__select-dropdown-item\">Все

}\n {selectedStatus.toLowerCase() === 'в работе' ? <> :

{\n setSelectedStatus('в работе')\n setSelectorOpen(!isSelectorOpen)\n }} className=\"order__select-dropdown-item\">В работе

}\n {selectedStatus.toLowerCase() === 'доставлен' ? <> :

{\n setSelectedStatus('доставлен')\n setSelectorOpen(!isSelectorOpen)\n }} className=\"order__select-dropdown-item\">Доставлен

}\n {selectedStatus.toLowerCase() === 'отмененный' ? <> :

{\n setSelectedStatus('отмененный')\n setSelectorOpen(!isSelectorOpen)\n }} className=\"order__select-dropdown-item\">Отмененный

}\n\n\n\n\n
\n : <>\n }\n
\n
\n {testOrders.filter((item) => {\n if (selectedStatus.toLowerCase() === 'все') return true\n else {\n if (selectedStatus.toLowerCase() === item.status.toLowerCase()) return true\n else return false\n }\n }).map((item, i) => (\n
\n
\n

Заказ №{item.order_number}

\n
\n

{item.status.toLowerCase()[0].toUpperCase()}{item.status.toLowerCase().slice(1)}

\n
\n
\n

Стоимость заказа: {item.full_price.toLocaleString('us')} руб.

\n

{item.isDelivery ? `Адрес доставки: ${item.address}` : `Самовывоз: ${item.address}`}

\n {orderNumberOpen === item.order_number ? <> :

{ setOrderNumberOpen(item.order_number) }}>Посмотреть состав заказа

}\n {orderNumberOpen === item.order_number ?\n
\n {item.order_items.map((product, product_i) => (\n
\n \n {product.name}\n \n\n
\n

Артикул: {product.article}

\n

{product.name}

\n
\n
\n

{product.count} шт.

\n

{product.discount && product.discount > 0 ? ((product.price - (product.price / 100 * product.discount)) * product.count).toLocaleString('us') : (product.count * product.price).toLocaleString('us')} ₽

\n
\n
\n ))}\n

{ setOrderNumberOpen('') }}>Скрыть

\n
\n :\n <>}\n\n\n
\n ))}\n
\n
\n\n\n );\n}\n\nexport default Orders;\n","import React from 'react'\nimport './Profile.css';\n\nimport { useParams } from 'react-router';\nimport { Link } from 'react-router-dom/cjs/react-router-dom.min';\nimport Account from './Account/Account';\nimport Addresses from './Addresses/Addresses';\nimport TrackOrder from './TrackOrder/Orders';\n\n\n\nfunction Profile(props) {\n let { page } = useParams();\n\n \n\n return (\n
\n

Личный кабинет

\n
\n Профиль\n Адреса\n Заказы\n
\n \n
\n {page && page.toLowerCase() === 'account' ? : <>}\n {page && page.toLowerCase() === 'addresses' ? : <>}\n {page && page.toLowerCase() === 'orders' ? : <>}\n
\n
\n );\n}\n\nexport default Profile;\n","import React from 'react'\nimport { Helmet } from 'react-helmet';\nimport { useHistory } from 'react-router-dom';\n\nimport ProductCard from '../ProductCard/ProductCard';\n\nimport './Favourites.css';\n\n\n\n\n\nfunction Favourites({\n favouritesProducts,\n handleLikeBtn,\n setCartPopupOpen,\n cart,\n handleToCartBtn,\n handleCallPopupOpen,\n}) {\n\n const history = useHistory();\n return (\n
\n \n Диванчик - Избранное\n \n

Избранное

\n {favouritesProducts && favouritesProducts.length > 0 ?\n
\n {\n favouritesProducts.map((product, i) => (\n \n ))\n\n }\n
\n :\n
\n \n \n \n \n

В избранном пусто

\n

Вам надо выбрать интересующий Вас товар

\n
history.goBack()}>\n \n \n \n \n

Вернуться к покупкам

\n
\n
}\n
\n );\n}\n\nexport default Favourites;\n","import React from 'react'\nimport { Helmet } from 'react-helmet';\nimport './Refund.css';\n\n\nconst list = [\n 'Потребитель вправе отказаться от товара в любое время до его передачи, а после передачи товара - в течение семи дней;',\n 'Возврат товара надлежащего качества возможен в случае, если сохранены его товарный вид, потребительские свойства, а также документ, подтверждающий факт и условия покупки указанного товара;',\n 'Потребитель не вправе отказаться от товара надлежащего качества, имеющего индивидуально-определенные свойства, если указанный товар может быть использован исключительно приобретающим его человеком;',\n 'При отказе потребителя от товара продавец должен возвратить ему денежную сумму, уплаченную потребителем по договору, за исключением расходов продавца на доставку от потребителя возвращенного товара, не позднее чем через десять дней со дня предъявления потребителем соответствующего требования;',\n]\n\nfunction Refund(props) {\n\n\n\n return (\n
\n \n Диванчик - Политика обмена и возврата\n \n

Как вернуть товар?

\n

Процедура возврата товара регламентируется статьей 26.1 федерального закона «О защите прав потребителей».

\n
\n {list.map((item, i) => (\n
\n \n \n \n

{item}

\n
\n ))}\n\n
\n
\n );\n}\n\nexport default Refund;\n","\nclass MainApi {\n constructor({ baseUrl }) {\n this._BASE_URL = baseUrl\n }\n register({ email, password, firstname, surname, phone_number }) {\n return fetch(`${this._BASE_URL}/users/signup`, {\n method: 'POST',\n credentials: 'include',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n \"email\": email,\n \"password\": password,\n \"firstname\": firstname,\n \"surname\": surname,\n \"phone_number\": phone_number,\n }\n )\n }).then(this._checkResponse)\n };\n\n registerCheckCode({ token, code }) {\n return fetch(`${this._BASE_URL}/users/signup-code`, {\n method: 'POST',\n credentials: 'include',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${token}`\n },\n body: JSON.stringify({\n \"code\": code\n }\n )\n }).then(this._checkResponse)\n };\n\n registerGetNewCode({ token }) {\n return fetch(`${this._BASE_URL}/users/signup-new-code`, {\n method: 'GET',\n credentials: 'include',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${token}`\n },\n }).then(this._checkResponse)\n };\n\n\n checkJwt({ token }) {\n return fetch(`${this._BASE_URL}/users/check-jwt`, {\n method: 'GET',\n credentials: 'include',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${token}`\n },\n }).then(this._checkResponse)\n };\n\n login({ password, phone_number }) {\n return fetch(`${this._BASE_URL}/users/signin`, {\n method: 'POST',\n credentials: 'include',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n \"password\": password,\n \"phone_number\": phone_number,\n }\n )\n }).then(this._checkResponse)\n };\n\n recoveryStep1({ phone_number }) {\n return fetch(`${this._BASE_URL}/users/recovery-pass-stage-1`, {\n method: 'POST',\n credentials: 'include',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n \"phone_number\": phone_number,\n }\n )\n }).then(this._checkResponse)\n };\n\n recoveryCheckCode({ code, token }) {\n return fetch(`${this._BASE_URL}/users/recovery-code`, {\n method: 'POST',\n credentials: 'include',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${token}`\n },\n body: JSON.stringify({\n \"code\": code,\n }\n )\n }).then(this._checkResponse)\n };\n\n recoverySendCodeAgian({ token }) {\n return fetch(`${this._BASE_URL}/users/recovery-new-code`, {\n method: 'GET',\n credentials: 'include',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${token}`\n },\n }).then(this._checkResponse)\n };\n\n\n recoverySetPass({ password, token }) {\n return fetch(`${this._BASE_URL}/users/recovery-set-password`, {\n method: 'POST',\n credentials: 'include',\n headers: {\n 'Accept': 'application/json',\n 'Content-Type': 'application/json',\n 'Authorization': `Bearer ${token}`\n },\n body: JSON.stringify({\n \"password\": password,\n }\n )\n }).then(this._checkResponse)\n };\n\n // getBarcode(product_id) {\n // return fetch(`${this._BASE_URL}/products/get-barcode`, {\n // method: 'POST',\n // credentials: 'include',\n // headers: {\n // 'Accept': 'application/json',\n // 'Content-Type': 'application/json'\n // },\n // body: JSON.stringify({\n // \"product_id\": product_id\n // }\n // )\n // }).then(this._checkResponse)\n // };\n\n // getProducts() {\n // return fetch(`${this._BASE_URL}/products/all`, {\n // method: 'GET',\n // credentials: 'include',\n // headers: {\n // 'Accept': 'application/json',\n // 'Content-Type': 'application/json'\n // },\n\n // }).then(this._checkResponse)\n // };\n // getCategories() {\n // return fetch(`${this._BASE_URL}/categories`, {\n // method: 'GET',\n // credentials: 'include',\n // headers: {\n // 'Accept': 'application/json',\n // 'Content-Type': 'application/json'\n // },\n\n // }).then(this._checkResponse)\n // };\n\n\n _checkResponse(res) {\n if (res.ok) {\n return res.json();\n }\n else {\n var statusCode = res.status\n return res.json().then((res) => {\n return Promise.reject({\n statusCode: statusCode,\n message: res.message\n })\n })\n }\n ;\n }\n\n}\n\nconst mainApi = new MainApi({\n baseUrl: 'https://shop-divanchik.ru/api'\n // baseUrl: 'http://localhost:3003'\n});\nexport default mainApi\n","import React from 'react'\nimport { Link, useParams } from 'react-router-dom/cjs/react-router-dom.min';\nimport './Login.css';\nimport mainApi from '../../utils/MainApi';\nimport { useHistory } from 'react-router-dom';\n\n\n\n\nfunction Login(props) {\n let { from } = useParams();\n\n const history = useHistory()\n const [phoneValue, setPhoneValue] = React.useState('');\n const [phoneValidity, setPhoneValidity] = React.useState({\n errorMassage: '',\n validState: false\n });\n\n const [passValue, setPassValue] = React.useState('');\n const [passValidity, setPassValidity] = React.useState({\n errorMassage: '',\n validState: false\n });\n\n function handlePassChange(e) {\n let inputValue = e.target.value\n if (!inputValue) {\n setPassValue('')\n setPassValidity({\n errorMassage: '',\n validState: false\n })\n }\n else {\n setPassValue(inputValue)\n if (inputValue.length >= 8) {\n setPassValidity({\n errorMassage: '',\n validState: true\n })\n }\n }\n }\n\n\n function handlePhoneChange(e) {\n\n let inputValue = e.target.value.replace(/\\D/g, '')\n let formattedInputValue = '';\n if (!inputValue) {\n setPhoneValue('')\n setPhoneValidity({\n errorMassage: 'Можно вводить только цифры',\n validState: false\n })\n }\n else {\n if (['7', '8', '9'].indexOf(inputValue[0]) > -1) {\n setPhoneValidity({\n errorMassage: '',\n validState: false\n })\n if (inputValue[0] === '9') inputValue = '7' + inputValue;\n\n let firstSimbols = (inputValue[0] === '8') ? '8' : '+7';\n formattedInputValue = firstSimbols + ' '\n\n if (inputValue.length > 1) {\n formattedInputValue += '(' + inputValue.substring(1, 4)\n }\n if (inputValue.length >= 5) {\n formattedInputValue += ') ' + inputValue.substring(4, 7)\n }\n if (inputValue.length >= 8) {\n formattedInputValue += '-' + inputValue.substring(7, 9)\n }\n if (inputValue.length >= 10) {\n formattedInputValue += '-' + inputValue.substring(9, 11)\n }\n if (inputValue.length >= 11) {\n setPhoneValidity({\n errorMassage: '',\n validState: true\n });\n } else {\n setPhoneValidity({\n errorMassage: '',\n validState: false\n });\n }\n } else {\n formattedInputValue = '+' + inputValue.substring(0, 16)\n if (inputValue.length >= 11) {\n setPhoneValidity({\n errorMassage: 'Только номера РФ',\n validState: false\n });\n } else {\n setPhoneValidity({\n errorMassage: 'Только номера РФ',\n validState: false\n });\n }\n }\n\n setPhoneValue(formattedInputValue)\n }\n\n }\n\n function handlePhoneDelite(e) {\n if (e.keyCode === 8 && e.target.value.replace(/\\D/g, '').length === 1) {\n setPhoneValue('')\n }\n if (e.keyCode === 8 && e.target.value.replace(/\\D/g, '').length < 11) {\n setPhoneValidity({\n errorMassage: '',\n validState: false\n });\n }\n\n }\n\n const [submitError, setSubmitError] = React.useState('');\n\n function handleSubmit() {\n setSubmitError('')\n if (phoneValidity.validState && passValidity.validState) {\n mainApi.login({ phone_number: phoneValue, password: passValue })\n .then((res) => {\n localStorage.setItem('jwt', res.token);\n mainApi.checkJwt({ token: res.token })\n .then((data) => {\n console.log(data)\n props.setLoggedIn(true)\n props.setCurrentUser(data.user)\n if (from ) {\n if(from === 'cart'){\n history.push('/cart')\n }\n \n } else {\n history.push('/')\n }\n\n })\n .catch((err) => {\n console.log(err)\n })\n })\n .catch((err) => {\n setSubmitError(err.message)\n setTimeout(() => {\n setSubmitError('')\n }, 6000);\n })\n }\n }\n\n\n\n return (\n
\n
\n
\n

Войдите в свой аккаунт Диванчик

\n

Используйте телефон для регистрации и входа в аккаунт

\n
\n
\n

Войти в кабинет

\n
\n
\n
\n handlePhoneDelite(e)} placeholder='+7 (___) ___-__-__' className=\"login__input\" name=\"text\" type=\"phone\" value={phoneValue} onChange={handlePhoneChange} maxLength=\"250\">\n

Телефон *

\n
\n {!phoneValidity.validState && phoneValidity.errorMassage &&

{phoneValidity.errorMassage}

}\n
\n
\n
\n \n

Пароль *

\n
\n {!passValidity.validState && passValidity.errorMassage &&

{passValidity.errorMassage}

}\n
\n
\n Забыли пароль?\n
{\n if (phoneValidity.validState && passValidity.validState) {\n handleSubmit()\n }\n }}>\n

Войти

\n
\n {submitError ?

{submitError}

: <>}\n\n \n

Регистрация

\n \n\n
\n
\n
\n );\n}\n\nexport default Login;\n","import React from 'react'\n// import { Link } from 'react-router-dom/cjs/react-router-dom.min';\nimport { useHistory } from 'react-router-dom';\n\nimport './Recovery.css';\n\nimport mainApi from '../../utils/MainApi';\n\n\nfunction Recovery(props) {\n const history = useHistory()\n\n const [phoneValue, setPhoneValue] = React.useState('');\n const [phoneValidity, setPhoneValidity] = React.useState({\n errorMassage: '',\n validState: false\n });\n const [codeValue, setCodeValue] = React.useState('');\n const [codeValidity, setCodeValidity] = React.useState({\n errorMassage: '',\n validState: false\n });\n\n const [passValue, setPassValue] = React.useState('');\n const [passValidity, setPassValidity] = React.useState({\n errorMassage: '',\n validState: false\n });\n\n\n const [passCheckValue, setPassCheckValue] = React.useState('');\n const [passCheckValidity, setPassCheckValidity] = React.useState({\n errorMassage: '',\n validState: false\n });\n\n\n function handlePhoneChange(e) {\n\n let inputValue = e.target.value.replace(/\\D/g, '')\n let formattedInputValue = '';\n if (!inputValue) {\n setPhoneValue('')\n setPhoneValidity({\n errorMassage: 'Можно вводить только цифры',\n validState: false\n })\n }\n else {\n if (['7', '8', '9'].indexOf(inputValue[0]) > -1) {\n setPhoneValidity({\n errorMassage: '',\n validState: false\n })\n if (inputValue[0] === '9') inputValue = '7' + inputValue;\n\n let firstSimbols = (inputValue[0] === '8') ? '8' : '+7';\n formattedInputValue = firstSimbols + ' '\n\n if (inputValue.length > 1) {\n formattedInputValue += '(' + inputValue.substring(1, 4)\n }\n if (inputValue.length >= 5) {\n formattedInputValue += ') ' + inputValue.substring(4, 7)\n }\n if (inputValue.length >= 8) {\n formattedInputValue += '-' + inputValue.substring(7, 9)\n }\n if (inputValue.length >= 10) {\n formattedInputValue += '-' + inputValue.substring(9, 11)\n }\n if (inputValue.length >= 11) {\n setPhoneValidity({\n errorMassage: '',\n validState: true\n });\n } else {\n setPhoneValidity({\n errorMassage: '',\n validState: false\n });\n }\n } else {\n formattedInputValue = '+' + inputValue.substring(0, 16)\n if (inputValue.length >= 11) {\n setPhoneValidity({\n errorMassage: 'Только номера РФ',\n validState: false\n });\n } else {\n setPhoneValidity({\n errorMassage: 'Только номера РФ',\n validState: false\n });\n }\n }\n\n setPhoneValue(formattedInputValue)\n }\n\n }\n\n function handlePhoneDelite(e) {\n if (e.keyCode === 8 && e.target.value.replace(/\\D/g, '').length === 1) {\n setPhoneValue('')\n }\n if (e.keyCode === 8 && e.target.value.replace(/\\D/g, '').length < 11) {\n setPhoneValidity({\n errorMassage: '',\n validState: false\n });\n }\n\n }\n\n\n\n const [step, setStep] = React.useState(0);\n // function handleNextStep() {\n // setStep(step + 1)\n // }\n\n\n\n function handlePassChange(e) {\n let inputValue = e.target.value\n if (!inputValue) {\n setPassValue('')\n setPassValidity({\n errorMassage: '',\n validState: false\n })\n }\n else {\n setPassValue(inputValue)\n if (inputValue.length >= 8) {\n setPassValidity({\n errorMassage: '',\n validState: true\n })\n }\n }\n }\n function handlePassCheckChange(e) {\n let inputValue = e.target.value\n if (!inputValue) {\n setPassCheckValue('')\n setPassCheckValidity({\n errorMassage: '',\n validState: false\n })\n }\n else {\n setPassCheckValue(inputValue)\n if (inputValue.length >= 8) {\n // setPassCheckValidity({\n // errorMassage: '',\n // validState: true\n // })\n }\n }\n }\n\n // React.useEffect(() => {\n // if (codeValidity.validState) {\n // setTimeout(() => {\n // setStep(2)\n // }, 300);\n // }\n\n // }, [codeValidity.validState])\n\n React.useEffect(() => {\n if (passValue && passValue.length >= 8 && passCheckValue.length >= 8) {\n if (passCheckValue === passValue) {\n setPassCheckValidity({\n errorMassage: '',\n validState: true\n })\n setPassValidity({\n errorMassage: '',\n validState: true\n })\n } else {\n setPassCheckValidity({\n errorMassage: 'Пароли не совпадают',\n validState: false\n })\n }\n }\n\n }, [passValue, passCheckValue])\n\n\n\n\n const timerDefValue = 60\n const [timerValue, setTimerValue] = React.useState(timerDefValue);\n const [sendCounter, setSendCounter] = React.useState(0);\n const [sendAgainAvailible, setSendAgainAvailible] = React.useState(false);\n\n\n React.useEffect(() => {\n\n if (step === 1) {\n if (!sendAgainAvailible) {\n if (timerValue === 0) {\n setSendAgainAvailible(true)\n setTimerValue(timerDefValue)\n } else {\n const timer = setInterval(() => {\n setTimerValue(timerValue - 1)\n clearInterval(timer)\n }, 1000);\n }\n\n }\n\n }\n\n }, [step, timerValue, sendAgainAvailible])\n\n \n const [firstStepToken, setFirstStepToken] = React.useState('');\n const [secondStepToken, setSecondStepToken] = React.useState('');\n const [firstStepError, setFirstStepError] = React.useState('');\n const [secondStepError, setSecondStepError] = React.useState('');\n\n function handleFirstStep() {\n if (phoneValidity.validState) {\n mainApi.recoveryStep1({ phone_number: phoneValue })\n .then((res) => {\n setFirstStepToken(res.token)\n setStep(1)\n })\n .catch((err) => {\n setFirstStepError(err.message)\n setTimeout(() => {\n setFirstStepError('')\n }, 10000);\n })\n }\n\n\n }\n\n function handleCodeChange(e) {\n let inputValue = e.target.value.replace(/\\D/g, '')\n if (!inputValue) {\n setCodeValue('')\n setCodeValidity({\n errorMassage: '',\n validState: false\n })\n }\n else {\n setCodeValue(inputValue.slice(0, 4))\n setCodeValidity({\n errorMassage: '',\n validState: false\n })\n if (inputValue.length >= 4) {\n\n mainApi.recoveryCheckCode({\n token: firstStepToken,\n code: inputValue.slice(0, 4)\n })\n .then((res) => {\n setCodeValidity({\n errorMassage: '',\n validState: true\n })\n setSecondStepToken(res.token)\n setTimeout(() => {\n setStep(2)\n }, 1000);\n })\n .catch((err) => {\n console.log(err)\n setCodeValidity({\n errorMassage: err.message,\n validState: false,\n })\n })\n }\n }\n }\n function handleSendCodeAgain() {\n if (sendCounter < 2) {\n mainApi.recoverySendCodeAgian({ token: firstStepToken })\n .then(() => {\n setSendCounter(sendCounter + 1)\n })\n .catch((err) => {\n console.log(err)\n })\n }\n\n\n }\n\n function handleSubmit() {\n mainApi.recoverySetPass({ password: passValue, token: secondStepToken })\n .then((res) => {\n localStorage.setItem('jwt', res.token);\n mainApi.checkJwt({ token: res.token })\n .then((data) => {\n console.log(data)\n props.setLoggedIn(true)\n props.setCurrentUser(data.user)\n history.push('/')\n })\n .catch((err) => {\n console.log(err)\n })\n })\n .catch((err) => {\n setSecondStepError(err.message)\n setTimeout(() => {\n setSecondStepError('')\n }, 10000);\n })\n }\n\n\n return (\n
\n
\n
\n

Восстановление пароля

\n

Используйте номер телефона, указанный при регистрации

\n
\n
\n {step === 0 ?

Номер телефона

: <>}\n {step === 1 ?

Код из СМС

: <>}\n {step === 2 ?

Новый пароль

: <>}\n\n {step === 0 ?

Введите ваш номер телефона для восстановления пароля

: <>}\n {step === 1 ?

Мы выслали код на номер
{phoneValue}

: <>}\n {step === 2 ?

Введите ваш новый пароль

: <>}\n\n {step === 0 ?\n
\n
\n
\n handlePhoneDelite(e)} placeholder='+7 (___) ___-__-__' className=\"recovery__input\" name=\"text\" type=\"phone\" value={phoneValue} onChange={handlePhoneChange} maxLength=\"250\">\n

Телефон *

\n
\n {!phoneValidity.validState && phoneValidity.errorMassage &&

{phoneValidity.errorMassage}

}\n
\n {/*
\n
\n \n

Пароль *

\n
\n {!passValidity.validState && passValidity.errorMassage &&

{passValidity.errorMassage}

}\n
*/}\n
: <>}\n {step === 1 ?\n
\n
\n
\n \n

Код подтверждения *

\n
\n {!codeValidity.validState && codeValidity.errorMassage &&

{codeValidity.errorMassage}

}\n
\n
: <>}\n\n {step === 2 ?\n
\n\n
\n
\n \n

Придумайте новый пароль *

\n
\n {!passValidity.validState && passValidity.errorMassage &&

{passValidity.errorMassage}

}\n
\n
\n
\n \n

Повторите пароль *

\n
\n {!passCheckValidity.validState && passCheckValidity.errorMassage &&

{passCheckValidity.errorMassage}

}\n
\n
: <>}\n {step === 0 ?\n
{\n if (step === 0 && phoneValidity.validState) {\n handleFirstStep()\n }\n\n }} className={`recovery__btn recovery__btn_login ${phoneValidity.validState ? '' : 'recovery__btn_inactive'}`}>\n

Восстановить

\n
: <>}\n {firstStepError ?

{firstStepError}

: <>}\n\n {step === 1 ?\n

{\n if (sendAgainAvailible) {\n setSendAgainAvailible(false)\n handleSendCodeAgain()\n }\n }} className={`recovery__code-timeout ${sendAgainAvailible ? sendCounter === 2 ? '' : 'recovery__code-timeout_active' : ''}`}>\n {sendAgainAvailible ? sendCounter === 2 ? 'Если смс все еще не пришла, обратитесь в службу поддержки: +7 (919) 940-12-08' :\n 'Выслать код повторно' : sendCounter === 2 ? 'Если смс все еще не пришла, обратитесь в службу поддержки: +7 (919) 940-12-08' : `Выслать код повторно: ${timerValue}`\n }

\n\n : <>}\n {step === 2 ?\n
{\n if (step === 2 && passValidity.validState && passCheckValidity.validState) {\n handleSubmit()\n }\n\n }} className={`recovery__btn recovery__btn_login ${passValidity.validState && passCheckValidity.validState ? '' : 'recovery__btn_inactive'}`}>\n

Сохранить пароль

\n
: <>}\n {secondStepError ?

{secondStepError}

: <>}\n\n
\n
\n
\n );\n}\n\nexport default Recovery;\n","import React, { useEffect, useState } from 'react'\nimport { Link } from 'react-router-dom/cjs/react-router-dom.min';\nimport { useHistory } from 'react-router-dom';\n\nimport validator from 'validator'\n\nimport mainApi from '../../assets/api/MainApi';\n\nimport './Register.css';\nimport moment from 'moment-timezone';\n\n\n\n\nfunction Register({ currentUser, setCurrentUser, setLoggedIn }) {\n const history = useHistory()\n\n\n const [nameValue, setNameValue] = React.useState('');\n const [nameValidity, setNameValidity] = React.useState({\n errorMassage: '',\n validState: false\n });\n\n const [surnameValue, setSurnameValue] = React.useState('');\n const [surnameValidity, setSurnameValidity] = React.useState({\n errorMassage: '',\n validState: false\n });\n\n const [emailValue, setEmailValue] = React.useState('');\n const [emailValidity, setEmailValidity] = React.useState({\n errorMassage: '',\n validState: false\n });\n\n\n const [phoneValue, setPhoneValue] = React.useState('');\n const [phoneValidity, setPhoneValidity] = React.useState({\n errorMassage: '',\n validState: false\n });\n const [codeValue, setCodeValue] = React.useState('');\n const [codeValidity, setCodeValidity] = React.useState({\n errorMassage: '',\n validState: false\n });\n\n const [passValue, setPassValue] = React.useState('');\n const [passValidity, setPassValidity] = React.useState({\n errorMassage: '',\n validState: false\n });\n\n\n const [passCheckValue, setPassCheckValue] = React.useState('');\n const [passCheckValidity, setPassCheckValidity] = React.useState({\n errorMassage: '',\n validState: false\n });\n\n function handleNameChange(e) {\n let inputValue = e.target.value.replace(/[^a-zA-Zа-яА-ЯёЁ]/g, '')\n\n setNameValue(inputValue)\n if (inputValue.length < 1) {\n setNameValidity({\n errorMassage: 'Заполните поле',\n validState: false\n })\n } else {\n setNameValidity({\n errorMassage: (''),\n validState: true\n })\n }\n }\n\n function handleSurnameChange(e) {\n let inputValue = e.target.value.replace(/[^a-zA-Zа-яА-ЯёЁ]/g, '')\n setSurnameValue(inputValue)\n if (inputValue.length < 1) {\n setSurnameValidity({\n errorMassage: 'Заполните поле',\n validState: false\n })\n } else {\n setSurnameValidity({\n errorMassage: (''),\n validState: true\n })\n }\n }\n\n function handleEmailChange(e) {\n let inputValue = e.target.value\n setEmailValue(inputValue);\n if (!inputValue) {\n setEmailValidity({\n errorMassage: '',\n validState: false\n })\n }\n if (inputValue.length >= 2) {\n if (validator.isEmail(inputValue)) {\n setEmailValidity({\n errorMassage: '',\n validState: true\n })\n } else {\n setEmailValidity({\n errorMassage: (!e.target.validity.valid ? e.target.validationMessage : 'Введите валидный email'),\n validState: false\n })\n }\n }\n }\n\n\n function handlePhoneChange(e) {\n\n let inputValue = e.target.value.replace(/\\D/g, '')\n let formattedInputValue = '';\n if (!inputValue) {\n setPhoneValue('')\n setPhoneValidity({\n errorMassage: 'Можно вводить только цифры',\n validState: false\n })\n }\n else {\n if (['7', '8', '9'].indexOf(inputValue[0]) > -1) {\n setPhoneValidity({\n errorMassage: '',\n validState: false\n })\n if (inputValue[0] === '9') inputValue = '7' + inputValue;\n\n let firstSimbols = (inputValue[0] === '8') ? '8' : '+7';\n formattedInputValue = firstSimbols + ' '\n\n if (inputValue.length > 1) {\n formattedInputValue += '(' + inputValue.substring(1, 4)\n }\n if (inputValue.length >= 5) {\n formattedInputValue += ') ' + inputValue.substring(4, 7)\n }\n if (inputValue.length >= 8) {\n formattedInputValue += '-' + inputValue.substring(7, 9)\n }\n if (inputValue.length >= 10) {\n formattedInputValue += '-' + inputValue.substring(9, 11)\n }\n if (inputValue.length >= 11) {\n setPhoneValidity({\n errorMassage: '',\n validState: true\n });\n } else {\n setPhoneValidity({\n errorMassage: '',\n validState: false\n });\n }\n } else {\n formattedInputValue = '+' + inputValue.substring(0, 16)\n if (inputValue.length >= 11) {\n setPhoneValidity({\n errorMassage: 'Только номера РФ',\n validState: false\n });\n } else {\n setPhoneValidity({\n errorMassage: 'Только номера РФ',\n validState: false\n });\n }\n }\n\n setPhoneValue(formattedInputValue)\n }\n\n }\n\n function handlePhoneDelite(e) {\n if (e.keyCode === 8 && e.target.value.replace(/\\D/g, '').length === 1) {\n setPhoneValue('')\n }\n if (e.keyCode === 8 && e.target.value.replace(/\\D/g, '').length < 11) {\n setPhoneValidity({\n errorMassage: '',\n validState: false\n });\n }\n\n }\n\n\n\n const [step, setStep] = React.useState(0);\n // function handleNextStep() {\n // setStep(step + 1)\n // }\n const [regToken, setRegToken] = React.useState('');\n\n function handleCodeChange(e) {\n let inputValue = e.target.value.replace(/\\D/g, '')\n if (!inputValue) {\n setCodeValue('')\n setCodeValidity({\n errorMassage: '',\n validState: false\n })\n }\n else {\n setCodeValue(inputValue.slice(0, 4))\n setCodeValidity({\n errorMassage: '',\n validState: false\n })\n if (inputValue.length >= 4) {\n\n mainApi.registerCheckCode({\n token: regToken,\n code: inputValue.slice(0, 4)\n })\n .then((res) => {\n setCodeValidity({\n errorMassage: '',\n validState: true\n })\n localStorage.setItem('jwt', res.token);\n mainApi.checkJwt({ token: res.token })\n .then((data) => {\n console.log(data)\n setLoggedIn(true)\n setCurrentUser(data.user)\n history.push('/')\n })\n .catch((err) => {\n console.log(err)\n })\n })\n .catch((err) => {\n console.log(err)\n setCodeValidity({\n errorMassage: err.message,\n validState: false,\n })\n })\n }\n }\n }\n\n function handlePassChange(e) {\n let inputValue = e.target.value\n if (!inputValue) {\n setPassValue('')\n setPassValidity({\n errorMassage: '',\n validState: false\n })\n }\n else {\n setPassValue(inputValue)\n if (inputValue.length >= 8) {\n setPassValidity({\n errorMassage: '',\n validState: true\n })\n }\n }\n }\n function handlePassCheckChange(e) {\n let inputValue = e.target.value\n if (!inputValue) {\n setPassCheckValue('')\n setPassCheckValidity({\n errorMassage: '',\n validState: false\n })\n }\n else {\n setPassCheckValue(inputValue)\n if (inputValue.length >= 8) {\n // setPassCheckValidity({\n // errorMassage: '',\n // validState: true\n // })\n }\n }\n }\n\n // React.useEffect(() => {\n // if (codeValidity.validState) {\n // setTimeout(() => {\n // handleSubmit()\n // }, 300);\n // }\n\n // }, [codeValidity.validState])\n\n React.useEffect(() => {\n if (passValue && passValue.length >= 8 && passCheckValue.length >= 8) {\n if (passCheckValue === passValue) {\n setPassCheckValidity({\n errorMassage: '',\n validState: true\n })\n setPassValidity({\n errorMassage: '',\n validState: true\n })\n } else {\n setPassCheckValidity({\n errorMassage: 'Пароли не совпадают',\n validState: false\n })\n }\n }\n\n }, [passValue, passCheckValue])\n\n\n\n function handleSubmit() {\n mainApi.register({\n email: emailValue.slice(),\n password: passValue,\n firstname: nameValue,\n surname: surnameValue,\n phone_number: phoneValue.replace(/\\D/g, '')\n })\n .then((res) => {\n setCurrentUser(res)\n setStep(1)\n })\n .catch((err) => {\n console.log(err)\n })\n }\n\n const [timeLeft, setTimeLeft] = useState(currentUser && currentUser.new_phone && currentUser.new_phone.generated_utc ? Number(moment().format('X')) - Number(moment(`${currentUser.new_phone.generated_utc}+00:00`).format('X')) : 61)\n\n\n\n\n useEffect(() => {\n if (currentUser) {\n const timer = setInterval(() => {\n\n setTimeLeft(Number(moment().format('X')) - Number(moment(`${currentUser.new_phone.generated_utc}+00:00`).format('X')))\n clearInterval(timer)\n }, 1000);\n\n } else {\n setTimeLeft(0)\n }\n\n }, [currentUser, timeLeft])\n\n function handleSendCodeAgain() {\n // if (sendCounter < 2) {\n // mainApi.registerGetNewCode({ token: regToken })\n // .then(() => {\n // // setSendCounter(sendCounter + 1)\n // })\n // .catch((err) => {\n // console.log(err)\n // })\n // }\n\n\n }\n\n useEffect(() => {\n if (currentUser) {\n if (!currentUser.phone) {\n setStep(1)\n }\n }\n }, [currentUser])\n\n return (\n
\n
\n
\n

Зарегестрируйте свой аккаунт Диванчик

\n

Используйте телефон для регистрации и входа в аккаунт

\n
\n
\n\n {step === 1 ?

Код из СМС

: <>}\n\n\n {step === 1 ?

Мы выслали код на номер
{currentUser.new_phone.phone}

: <>}\n\n\n {step === 0 ?\n <>\n

Ваши имя и фамилия

\n
\n
\n
\n \n

Имя *

\n
\n {!nameValidity.validState && nameValidity.errorMassage &&

{nameValidity.errorMassage}

}\n
\n
\n
\n \n

Фамилия *

\n
\n {!surnameValidity.validState && surnameValidity.errorMassage &&

{surnameValidity.errorMassage}

}\n
\n
\n

Ваши конактные данные

\n
\n
\n
\n handlePhoneDelite(e)} placeholder='+7 (___) ___-__-__' className=\"register__input\" name=\"text\" type=\"phone\" value={phoneValue} onChange={handlePhoneChange} maxLength=\"250\">\n

Телефон *

\n
\n {!phoneValidity.validState && phoneValidity.errorMassage &&

{phoneValidity.errorMassage}

}\n
\n
\n
\n \n

Email *

\n
\n {!emailValidity.validState && emailValidity.errorMassage &&

{emailValidity.errorMassage}

}\n
\n
\n

Пароль (мин. 8 символов)

\n
\n
\n
\n \n

Пароль *

\n
\n {!passValidity.validState && passValidity.errorMassage &&

{passValidity.errorMassage}

}\n
\n
\n
\n \n

Повторите пароль *

\n
\n {!passCheckValidity.validState && passCheckValidity.errorMassage &&

{passCheckValidity.errorMassage}

}\n
\n
\n Есть аккаунт? Войти\n \n : <>}\n {step === 1 ?\n
\n
\n
\n \n

Код подтверждения *

\n
\n {!codeValidity.validState && codeValidity.errorMassage &&

{codeValidity.errorMassage}

}\n
\n
: <>}\n\n\n {step === 0 ?\n
{\n if (step === 0 && nameValidity.validState && surnameValidity.validState && emailValidity.validState && phoneValidity.validState && passValidity.validState && passCheckValidity.validState) {\n handleSubmit()\n }\n\n }} className={`register__btn register__btn_login ${nameValidity.validState && surnameValidity.validState && emailValidity.validState && phoneValidity.validState && passValidity.validState && passCheckValidity.validState ? '' : 'register__btn_inactive'}`}>\n

Зарегестрироваться

\n
: <>}\n\n {step === 1 ?\n

{\n if ((61 - Number(timeLeft) >= 0 && currentUser)) {\n \n handleSendCodeAgain()\n }\n }} className={`register__code-timeout ${(61 - Number(timeLeft) >= 0 && currentUser) ? \" \" : 'register__code-timeout_active'}`}>\n\n {61 - Number(timeLeft) >= 0 && currentUser ? `${('0' + (~~((61 - timeLeft) / 60))).slice(-2)}:${('0' + (61 - timeLeft) % 60).slice(-2)}` : `Выслать код повторно`}

\n\n : <>}\n\n\n
\n
\n
\n );\n}\n\nexport default Register;\n","import './ColorPopup.css';\nimport React from \"react\";\nimport { Link } from 'react-router-dom/cjs/react-router-dom.min';\n\n\n\n\nfunction ColorPopup(props) {\n\n\n\n\n\n return (\n
\n
\n
\n

Выберете цвет

\n
\n \n \n \n
\n
\n\n
\n {/* {props.selectedColor && props.selectedColor} */}\n {props.availibleColors && props.availibleColors.map((item, i) => (\n \n

{item.name}

\n \n ))}\n
\n\n
\n
\n\n
\n
\n );\n}\n\nexport default ColorPopup;\n","\nimport React from 'react'\nimport './MainPreloader.css'\n\nconst MainPreloader = () => {\n return (\n
\n
\n \n
\n
\n )\n};\n\nexport default MainPreloader\n","\nimport React, { useEffect, useRef, useState } from 'react'\nimport { Link } from 'react-router-dom';\nimport mainApi from '../../../assets/api/MainApi';\nimport { MAIN_URL } from '../../../assets/utils/constants';\n\n\nimport './Banner.css';\n\n\n\n\nfunction Banner() {\n const [slides, setSlides] = useState(undefined)\n const timer = useRef(null)\n\n const [index, setIndex] = useState(0)\n\n\n useEffect(() => {\n mainApi.getBanners()\n .then((res) => {\n console.log(res.data)\n setSlides(res.data)\n })\n .catch((err) => {\n console.log(err)\n })\n }, [])\n\n useEffect(() => {\n if (!slides) return\n timer.current = setTimeout(() => {\n if (index < slides.length - 1) {\n setIndex(index + 1)\n\n } else {\n setIndex(0)\n\n }\n }, 6500);\n\n\n }, [index, slides])\n\n\n const getPrice = (item) => {\n\n const name = localStorage.getItem('city') ? localStorage.getItem('city') : 'Тобольск'\n let cityMap = {\n \"Новый Уренгой\": \"63777e52c505252a8fc59c09\",\n \"Надым\": \"63777e62c505252a8fc59c0a\",\n \"Тобольск\": \"63777e74c505252a8fc59c0b\",\n }\n let id = cityMap[name] ? cityMap[name] : \"63777e74c505252a8fc59c0b\"\n let value = item.firstc_data.price[id]\n return Number(value)\n }\n\n\n function handleSliderClick(i) {\n clearTimeout(timer.current)\n setIndex(i)\n }\n\n return (\n
\n {slides && slides.length > 0 ? slides.map((slide, i) => (\n \n
\n {slide.titles && slide.titles.length > 0 ? slide.titles.map((title, i2) => (\n

{title}

\n )) : null}\n
\n
\n

{getPrice(slide.item_data.item) > 0 ? `${getPrice(slide.item_data.item).toLocaleString('us')}₽` : ''}

\n

{slide.item_data.name}

\n
\n \n\n \n )) : null}\n {slides && slides.length > 0 ?\n
\n {Array.from({ length: slides.length }).map((item, i) => (\n
{\n handleSliderClick(i)\n }}>
\n ))}\n
\n : null}\n\n
\n );\n}\n\nexport default Banner;\n","import { useState, useEffect } from \"react\";\n\n\nexport default function useWindowSize() {\n // Initialize state with undefined width/height so server and client renders match\n // Learn more here: https://joshwcomeau.com/react/the-perils-of-rehydration/\n const [windowSize, setWindowSize] = useState({\n width: undefined,\n height: undefined,\n });\n useEffect(() => {\n // Handler to call on window resize\n function handleResize() {\n // Set window width/height to state\n setWindowSize({\n width: window.innerWidth,\n height: window.innerHeight,\n });\n }\n // Add event listener\n window.addEventListener(\"resize\", handleResize);\n // Call handler right away so state gets updated with initial window size\n handleResize();\n // Remove event listener on cleanup\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []); // Empty array ensures that effect is only run on mount\n return windowSize;\n}","import React, { useEffect, useState } from 'react'\nimport mainApi from '../../../assets/api/MainApi';\nimport useWindowSize from '../../../assets/hooks/useWindowSize';\nimport MiniPreloader from '../../MiniPreloader/MiniPreloader';\nimport ProductCard from '../../ProductCard/ProductCard';\n\n\nimport './Products.css';\n\n\nfunction Products({\n type,\n handleLikeBtn,\n favouritesProducts,\n setCartPopupOpen,\n cart,\n handleToCartBtn,\n handleCallPopupOpen,\n}) {\n\n const windowSize = useWindowSize()\n const [products, setProducts] = useState(undefined)\n const [isPreloaderVisible, setPreloaderVisible] = useState(true)\n useEffect(() => {\n if (!type) return\n setPreloaderVisible(true)\n mainApi.getHitsOrNews({ type: type })\n .then((res) => {\n console.log(res.data)\n setProducts(res.data)\n })\n .catch((err) => {\n console.log(err)\n })\n .finally(() => {\n setPreloaderVisible(false)\n })\n }, [type])\n\n const productsByWindowSize = products && products.length > 0 ?\n windowSize.width <= 1300 ?\n windowSize.width <= 970 ?\n windowSize.width <= 550 ?\n products.slice(0, 4)\n :\n products.slice(0, 3)\n\n\n :\n products.slice(0, 4)\n :\n products\n\n : undefined\n return (\n
\n {type === 'hits' ?\n
\n \n \n \n

Хиты продаж

\n
\n :\n

Новинки

\n }\n {isPreloaderVisible ?\n
\n \n
\n :\n
\n {productsByWindowSize && productsByWindowSize.length > 0 ? productsByWindowSize.map((item, i) => (\n \n )) : null}\n
\n }\n\n\n
\n );\n}\n\nexport default Products;\n","import React from 'react'\nimport { Link } from 'react-router-dom';\n\nimport './PromotedCard.css';\n\n\nfunction PromotedCard({ item }) {\n\n return (\n \n
\n

\n {item.title}\n

\n
\n {item.items.map((link, i) => (\n {\n e.stopPropagation();\n }}>\n {link.name}\n \n ))}\n
\n
\n \n \n );\n}\n\nexport default PromotedCard;\n","import React from 'react'\nimport { Link } from 'react-router-dom';\nimport { TypeAnimation } from 'react-type-animation';\n\n\nimport './PromotedCards.css';\nimport PromotedCard from './PromotedCard/PromotedCard';\nimport { promotedCardsLinks } from '../../../assets/utils/constants';\n\n\nconst ANIMATION_WAIT_TIME = 3000\n\nfunction PromotedCards() {\n\n\n\n return (\n\n
\n

Найдите {\n console.log('Done typing!'); // Place optional callbacks anywhere in the array\n }\n ]}\n wrapper=\"span\"\n cursor={false}\n repeat={Infinity}\n className=\"banner__title-span\"\n /> мечты

\n
\n \n \n \n \n \n
\n\n
\n\n\n );\n}\n\nexport default PromotedCards;\n","import moment from 'moment-timezone';\nimport React from 'react'\n\n\nimport './ReviewCard.css';\n\nimport 'moment/locale/ru' // without this line it didn't work\nmoment.locale('ru')\n\n\nfunction ReviewCard({ item }) {\n\n return (\n
\n

{item.text}

\n
\n
\n \n
\n

{item.user.name}

\n
\n {Array.from({ length: item.stars }).map(() => (\n \n \n \n ))}\n
\n\n
\n
\n

{moment(item.date, 'DD.MM.YYYY').format('DD MMMM YYYY')}

\n
\n
\n );\n}\n\nexport default ReviewCard;\n","import React from 'react'\nimport ReviewCard from './ReviewCard/ReviewCard';\n\n\nimport './Reviews.css';\n\nimport reviewAvatar1 from '../../../assets/images/main/reviews/1.png'\nimport reviewAvatar2 from '../../../assets/images/main/reviews/2.png'\nimport reviewAvatar3 from '../../../assets/images/main/reviews/3.png'\nimport reviewAvatar4 from '../../../assets/images/main/reviews/4.png'\n\n\nconst reviews = [\n {\n text: 'Добрый день! Обновили диван и решили оставить отзыв. Он смотрится великолепно, цвет - мятный, соответствует фото. Аккуратные швы, красивая форма, выглядит основательно. Как я хотел, жёсткий - спать на нём очень удобно, сидеть - тоже. Остаётся прямая спина. Лёгко разложили. Привезли в упаковке, в указанный срок.',\n user: {\n avatar: reviewAvatar1,\n name: 'Андрей',\n },\n date: '20.01.2023',\n stars: 5,\n },\n {\n text: 'Диван действительно очень хороший. Брали его опираясь только на отзывы, и не прогодали. Жёсткий, цвет насыщенный, в сборке проблем нет.',\n user: {\n avatar: reviewAvatar2,\n name: 'Ирина',\n },\n date: '16.12.2022',\n stars: 5,\n },\n {\n text: 'Мы переехали в дом, который строили 5 лет! И возникла необходимость в покупке нового дивана для гостей, потому что намечалось празднование новоселья. В наш интерьер отлично подошёл диван жёлтого цвета, яркий, стильный, модный! Рекомендую к покупке!',\n user: {\n avatar: reviewAvatar3,\n name: 'Анастасия',\n },\n date: '03.10.2022',\n stars: 5,\n },\n {\n text: 'Прекрасный диван во всех отношениях — цвет, размер, цена. Механизм раскладывания очень удобный, сам диван твёрдый не проседает когда садишься на него, ткань очень качественная и красивая, за такие деньги не диван — а мечта. Спасибо, магазин диванчик!',\n user: {\n avatar: reviewAvatar4,\n name: 'Евгений',\n },\n date: '21.09.2022',\n stars: 5,\n },\n]\n\nfunction Reviews() {\n\n\n\n return (\n\n
\n

Отзывы наших покупателей

\n
\n {reviews.map((item, i)=>(\n \n ))}\n\n
\n
\n );\n}\n\nexport default Reviews;\n","export default __webpack_public_path__ + \"static/media/1.8a62f580.png\";","export default __webpack_public_path__ + \"static/media/2.93a9280d.png\";","export default __webpack_public_path__ + \"static/media/3.0d8fc082.png\";","export default __webpack_public_path__ + \"static/media/4.955cde97.png\";","import React from 'react'\nimport { Helmet } from 'react-helmet';\nimport { Link } from 'react-router-dom';\nimport Banner from './Banner/Banner';\n\nimport './Main.css';\nimport Products from './Products/Products';\nimport PromotedCards from './PromotedCards/PromotedCards';\nimport Reviews from './Reviews/Reviews';\n\n\n\nfunction Main({\n handleLikeBtn,\n favouritesProducts,\n setCartPopupOpen,\n cart,\n handleToCartBtn,\n handleCallPopupOpen,\n}) {\n\n\n\n return (\n\n
\n \n Диванчик - Главная\n \n \n \n \n \n \n
\n\n );\n}\n\nexport default Main;\n","import React, { useEffect, useState } from 'react'\nimport { useParams, useRouteMatch, useHistory } from 'react-router';\nimport moment from 'moment-timezone';\nimport 'moment/locale/ru'\n\nimport Crumbs from '../Сrumbs/Сrumbs'\n\nimport './ProductPage.css';\nimport mainApi from '../../assets/api/MainApi';\nimport { getAmountByCity, MAIN_URL } from '../../assets/utils/constants';\nimport SofaPreloader from '../SofaPreloader/SofaPreloader';\nimport { Helmet } from 'react-helmet';\nimport { getPrice, sendMetriс } from '../../assets/utils/utils';\n\nfunction parseFeatureKey(item) {\n switch (item.key) {\n case 'height':\n return 'Высота'\n\n case 'width':\n return 'Ширина'\n\n case 'depth':\n return 'Глубина'\n\n case 'weight':\n return 'Вес'\n\n case 'colour':\n return 'Цвет'\n\n case 'material':\n return 'Материал'\n\n\n default:\n return item.key\n }\n}\n\nfunction parseFeatureValue(item) {\n switch (item.key) {\n case 'height':\n case 'width':\n case 'depth':\n return `${item.value} мм`\n\n case 'weight':\n return `${item.value} кг`\n\n\n\n default:\n return `${item.value}`\n }\n}\n\nmoment.locale('ru')\n\n\nfunction BuyInfo({\n selectedByColorProduct,\n handleLikeBtn,\n isInFavorite,\n isInCart,\n price,\n selectedProduct,\n handleColorOpen,\n addToCart,\n isMobile,\n handleCallPopupOpen,\n}) {\n return (\n
\n
\n
{\n if (selectedByColorProduct) {\n handleLikeBtn(selectedByColorProduct)\n }\n else {\n handleLikeBtn(selectedProduct)\n }\n }}>\n \n \n \n

{isInFavorite ? 'В избранном' : 'В избранное'}

\n
\n\n
\n\n
\n {price > 0 ?

{price.toLocaleString('us')} ₽

: null}\n\n {selectedProduct.amount > 0 ?\n \n :\n \n }\n\n
\n {selectedProduct.variations && selectedProduct.variations.length > 0 ?\n
\n
\n

{selectedByColorProduct ? selectedByColorProduct.specifications.colour : selectedProduct && selectedProduct.specifications.colour}

\n

Цвет

\n
\n \n \n \n
\n : <>}\n\n\n

0 ? '' : 'product-page__amount_zero'}`}>{selectedProduct.amount > 0 ? `На складе ${selectedProduct.amount} шт.` : `Нет в наличии`}

\n
\n )\n}\n\nfunction ProductPage({\n handleToCartBtn,\n cart,\n handleColorPopupOpen,\n handleLikeBtn,\n favouritesProducts,\n handleCallPopupOpen,\n}) {\n const { url } = useRouteMatch();\n const history = useHistory();\n let { id, color, category, sub_category } = useParams();\n\n const [isPreloaderVisible, setPreloaderVisible] = useState(true)\n const [selectedProduct, setSelectedProduct] = useState(undefined);\n const [selectedByColorProduct, setSelectedByColorProduct] = useState(null);\n\n useEffect(() => {\n if (category && sub_category && id) {\n setPreloaderVisible(true)\n console.log(category, sub_category, id)\n mainApi.getExactItem({\n category_translit_name: category,\n sub_category_translit_name: sub_category,\n _id: id\n })\n .then((res) => {\n console.log(res)\n setSelectedProduct({\n ...res,\n amount: getAmountByCity(res.seller_cities)\n })\n window.dataLayer.push({\n ecommerce: {\n currencyCode: \"RUB\",\n detail: {\n products: [\n {\n id: res?._id,\n name: res?.name,\n category: res ? `${res.category.name}/${res.sub_category.name}` : '',\n price: getPrice(res),\n },\n ],\n },\n }\n })\n })\n .catch((err) => {\n console.log(err)\n })\n .finally(() => {\n setPreloaderVisible(false)\n })\n\n\n }\n }, [category, sub_category, id])\n\n const [selectedPhotoId, setSelectedPhotoId] = useState(1);\n\n function handleNextFotoClick() {\n var items = document.getElementById(\"mini-photos\");\n if (selectedByColorProduct) {\n if (selectedPhotoId + 1 > selectedByColorProduct.photos.slice(0, 5).length) {\n setSelectedPhotoId(1)\n\n items.scrollTo({ left: 0, behavior: 'smooth' });\n }\n else {\n setSelectedPhotoId(selectedPhotoId + 1)\n items.scrollTo({ left: ((items.scrollWidth / selectedByColorProduct.photos.slice(0, 5).length) * selectedPhotoId), behavior: 'smooth' });\n }\n\n\n } else {\n if (selectedPhotoId + 1 > selectedProduct.photos.slice(0, 5).length) {\n setSelectedPhotoId(1)\n\n items.scrollTo({ left: 0, behavior: 'smooth' });\n }\n else {\n setSelectedPhotoId(selectedPhotoId + 1)\n items.scrollTo({ left: ((items.scrollWidth / selectedProduct.photos.slice(0, 5).length) * selectedPhotoId), behavior: 'smooth' });\n }\n }\n\n }\n\n function handlePrevFotoClick() {\n var items = document.getElementById(\"mini-photos\");\n if (selectedPhotoId === 1) {\n\n setSelectedPhotoId(selectedProduct.photos.slice(0, 5).length)\n items.scrollTo({ left: items.scrollWidth, behavior: 'smooth' });\n }\n else {\n setSelectedPhotoId(selectedPhotoId - 1)\n items.scrollTo({ left: ((items.scrollWidth / selectedProduct.photos.slice(0, 5).length) * (selectedPhotoId - 2)), behavior: 'smooth' });\n }\n }\n\n\n\n function handleColorOpen() {\n console.log(color)\n if (!color) {\n handleColorPopupOpen({ product: selectedProduct, active_color: selectedProduct.specifications.colour })\n } else {\n handleColorPopupOpen({ product: selectedProduct, active_color: color })\n }\n\n }\n\n useEffect(() => {\n setSelectedPhotoId(1)\n }, [color])\n\n const price = () => {\n\n const name = localStorage.getItem('city') ? localStorage.getItem('city') : 'Тобольск'\n let cityMap = {\n \"Новый Уренгой\": \"63777e52c505252a8fc59c09\",\n \"Надым\": \"63777e62c505252a8fc59c0a\",\n \"Тобольск\": \"63777e74c505252a8fc59c0b\",\n }\n let id = cityMap[name] ? cityMap[name] : \"63777e74c505252a8fc59c0b\"\n let value = selectedProduct.firstc_data.price[id]\n return Number(value)\n }\n\n const isInFavorite = selectedProduct && favouritesProducts && favouritesProducts.filter((item) => {\n if (item && item._id === selectedProduct._id) return true\n else return false\n }).length > 0\n\n const isInCart = selectedProduct && cart && cart.filter((item) => {\n if (selectedProduct._id === item._id) return true\n else return false\n }).length > 0\n\n function addToCart() {\n handleToCartBtn(selectedProduct)\n if (isInCart) {\n // history.push('/cart')\n\n }\n\n }\n\n const priceValue = selectedProduct ? price() : 0\n\n return (\n
\n {selectedProduct ?\n \n Диванчик - {selectedProduct.name}\n \n : null}\n\n {isPreloaderVisible ?\n
\n \n
\n :\n <>\n {selectedProduct ?\n \n : null}\n\n {selectedProduct &&\n
\n
\n

{selectedProduct.name}

\n
\n
\n
\n {selectedProduct.photos && selectedProduct.photos.slice(0, 5).map((item, i) => (\n
{ setSelectedPhotoId(i + 1) }}>\n {`${selectedProduct.name}\n
\n ))}\n
\n\n
\n\n
\n {selectedProduct.photos.length > 1 ?\n <>\n
\n \n \n \n \n
\n
\n \n \n \n \n
\n \n : <>}\n\n
\n\n\n {`${selectedProduct.name}\n
\n
\n\n
\n \n\n
\n {selectedProduct.description ?\n <>\n

Описание

\n

{selectedProduct.description}

\n : <>}\n\n
\n\n {selectedProduct && selectedProduct.firstc_data.brand_name ?\n
\n

Производитель

\n
\n

{selectedProduct.firstc_data.brand_name}

\n
\n : <>}\n\n
\n

Артикул

\n
\n

{selectedProduct.firstc_data.barcode}

\n
\n\n\n {selectedProduct.features && selectedProduct.features.length > 0 ?\n selectedProduct.features.map((item) => (\n
\n

\n {parseFeatureKey(item)}\n

\n
\n

{parseFeatureValue(item)}

\n
\n ))\n : <>}\n\n
\n\n
\n\n
\n\n
\n \n\n
\n\n\n\n
\n }\n \n }\n\n
\n\n\n );\n}\n\nexport default ProductPage;\n","import React, { useEffect, useRef, useState, } from 'react'\nimport { Link } from 'react-router-dom';\nimport mainApi from '../../../assets/api/MainApi';\nimport { ArrowIcon } from '../../../assets/icons/icons';\nimport { getIconByType } from '../../../assets/utils/utils';\nimport MiniPreloader from '../../MiniPreloader/MiniPreloader';\n\n\n\n\n\n\nimport './CatalogDrop.css';\n\n\nfunction CatalogDrop({ isOpened, setOpened, categories, catalogBtnRef }) {\n const dorpRef = useRef()\n\n\n useEffect(() => {\n const checkIfClickedOutside = e => {\n // If the menu is open and the clicked target is not within the menu,\n // then close the menu\n\n if (isOpened && dorpRef.current && !dorpRef.current.contains(e.target)) {\n setOpened(false)\n }\n }\n\n document.addEventListener(\"mousedown\", checkIfClickedOutside)\n\n return () => {\n // Cleanup the event listener\n document.removeEventListener(\"mousedown\", checkIfClickedOutside)\n }\n }, [isOpened])\n\n useEffect(() => {\n // catalogBtnRef.current.onclick = null;\n if (isOpened) {\n catalogBtnRef.current.onclick = null;\n } else {\n setTimeout(() => {\n catalogBtnRef.current.onclick = () => {\n\n setOpened(true)\n };\n }, 300);\n\n }\n }, [isOpened])\n\n const [selectedCategory, setSelectCategory] = useState(undefined)\n const [isPreloaderVisible, setPreloaderVisible] = useState(false)\n const [subcategories, setSubcategories] = useState(undefined)\n\n function closeDropdown() {\n console.log('sas')\n setOpened(false)\n setTimeout(() => {\n setOpened(false)\n }, 1);\n }\n\n function handleSelectCategory(item) {\n if(selectedCategory === item) return\n console.log(item)\n setSelectCategory(item)\n setPreloaderVisible(true)\n mainApi.getSubcategoriesByCategory({\n category_translit_name: item.translit_name,\n limit: 25,\n })\n .then((res2) => {\n console.log(res2.data)\n setSubcategories(res2.data)\n // setSelectedCategory(res2.category)\n })\n .catch((err) => {\n console.log(err)\n })\n .finally(() => {\n setPreloaderVisible(false)\n })\n }\n\n\n\n\n const filteredCategories = categories ? categories.filter((item) => item.type) : undefined\n\n useEffect(() => {\n if (!categories) return\n const filteredCategories = categories ? categories.filter((item) => item.type) : undefined\n let item = filteredCategories[0]\n setSelectCategory(item)\n setPreloaderVisible(true)\n mainApi.getSubcategoriesByCategory({\n category_translit_name: item.translit_name,\n limit: 25,\n })\n .then((res2) => {\n console.log(res2.data)\n setSubcategories(res2.data)\n // setSelectedCategory(res2.category)\n })\n .catch((err) => {\n console.log(err)\n })\n .finally(() => {\n setPreloaderVisible(false)\n })\n }, [categories])\n\n return (\n <>\n {filteredCategories && filteredCategories.length > 0 ?\n
\n
\n
\n {filteredCategories.map((item, i) => (\n
{\n handleSelectCategory(item)\n }}>\n
\n {getIconByType({\n type: item.type,\n mainClassName: 'catalog-drop__card-icon',\n fillClassName: 'catalog-drop__card-icon-fill',\n strokeClassName: 'catalog-drop__card-icon-stroke'\n })}\n

{item.name}

\n
\n \n
\n ))}\n
\n {isPreloaderVisible ?\n
\n \n
\n :\n
\n {subcategories && subcategories.length > 0 ?\n subcategories.map((item, i) => (\n {item.name}\n ))\n : null}\n
\n }\n\n
\n
\n\n
\n : null}\n \n\n\n\n );\n}\n\nexport default CatalogDrop;\n","import React, { useEffect, useRef, useState, } from 'react'\nimport { Link } from 'react-router-dom';\n\nimport mainApi from '../../../assets/api/MainApi';\nimport { ArrowIcon, CatalogIcon, CloseIcon, RoomsIcon } from '../../../assets/icons/icons';\nimport { getIconByType } from '../../../assets/utils/utils';\nimport MiniPreloader from '../../MiniPreloader/MiniPreloader';\n\n\n\n\n\n\n\nimport './MenuPopup.css';\n\n\nfunction MenuPopup({ isOpened, setOpened, categories, rooms }) {\n\n\n const [selectedCategory, setSelectCategory] = useState(undefined)\n const [isPreloaderVisible, setPreloaderVisible] = useState(false)\n const [subcategories, setSubcategories] = useState(undefined)\n\n function close() {\n console.log('sas')\n setOpened(false)\n setTimeout(() => {\n setOpened(false)\n }, 1);\n }\n\n function handleSelectCategory(item) {\n if (item === selectedCategory) {\n setSelectCategory(undefined)\n setSubcategories(undefined)\n return\n }\n console.log(item)\n setSelectCategory(item)\n setPreloaderVisible(true)\n mainApi.getSubcategoriesByCategory({\n category_translit_name: item.translit_name,\n limit: 25,\n })\n .then((res2) => {\n console.log(res2.data)\n setSubcategories(res2.data)\n // setSelectedCategory(res2.category)\n })\n .catch((err) => {\n console.log(err)\n })\n .finally(() => {\n setPreloaderVisible(false)\n })\n }\n\n\n\n const filteredRooms = rooms ? rooms.filter((item) => item.type) : undefined\n\n const filteredCategories = categories ? categories.filter((item) => item.type) : undefined\n\n const [selectedType, setSelectedType] = useState('catalog')\n\n return (\n <>\n {filteredCategories && filteredCategories.length > 0 && filteredRooms && filteredRooms.length > 0 ?\n
\n
\n \n
\n \n \n
\n {selectedType === 'catalog' ?\n
\n {filteredCategories.map((item, i) => (\n
\n
{\n handleSelectCategory(item)\n }}>\n
\n {getIconByType({\n type: item.type,\n mainClassName: 'menu-popup__card-icon',\n fillClassName: 'menu-popup__card-icon-fill',\n strokeClassName: 'menu-popup__card-icon-stroke'\n })}\n

{item.name}

\n
\n \n
\n {selectedCategory && selectedCategory._id === item._id ?\n isPreloaderVisible ?\n
\n \n
\n : subcategories && subcategories.length > 0 ?\n
\n {subcategories.map((sub, i) => (\n \n {sub.name}\n {/* */}\n \n\n ))}\n
\n : null\n : null}\n
\n ))}\n
\n : null}\n\n {selectedType === 'rooms' ?\n
\n {filteredRooms.map((item, i) => (\n \n
\n {getIconByType({\n type: item.type,\n mainClassName: 'menu-popup__card-icon',\n fillClassName: 'menu-popup__card-icon-fill',\n strokeClassName: 'menu-popup__card-icon-stroke'\n })}\n

{item.name}

\n
\n \n \n ))}\n
\n : null}\n
\n
\n : null}\n \n\n\n\n );\n}\n\nexport default MenuPopup;\n","\nimport React from 'react'\nimport { Link } from 'react-router-dom';\nimport useWindowSize from '../../../assets/hooks/useWindowSize';\nimport { getIconByType } from '../../../assets/utils/utils';\nimport './PopularCategory.css'\n\nconst PopularCategory = ({ topCategories }) => {\n const windowSize = useWindowSize()\n\n const categoriesByWindowSize = topCategories && topCategories.length > 0 ?\n windowSize.width <= 1300 ?\n windowSize.width <= 670 ?\n topCategories\n :\n topCategories.slice(0, 6)\n :\n topCategories\n\n : undefined\n\n return (\n
\n
\n {categoriesByWindowSize && categoriesByWindowSize.length > 0 ?\n categoriesByWindowSize.map((item, i) => (\n \n
\n {getIconByType({\n type: item.type,\n mainClassName: 'popular-category__item-icon',\n fillClassName: 'popular-category__item-icon-fill',\n strokeClassName: 'popular-category__item-icon-stroke',\n })}\n
\n

{item.name}

\n \n ))\n : null}\n
\n\n
\n )\n};\n\nexport default PopularCategory\n","import React, { useEffect, useRef, } from 'react'\nimport { Link } from 'react-router-dom';\nimport { ArrowIcon } from '../../../assets/icons/icons';\nimport { getIconByType } from '../../../assets/utils/utils';\n\n\n\n\n\n\nimport './RoomsDrop.css';\n\n\nfunction RoomsDrop({ isOpened, setOpened, rooms, roomsBtnRef }) {\n const dorpRef = useRef()\n\n\n useEffect(() => {\n const checkIfClickedOutside = e => {\n // If the menu is open and the clicked target is not within the menu,\n // then close the menu\n if (isOpened && dorpRef.current && !dorpRef.current.contains(e.target)) {\n setOpened(false)\n }\n }\n\n document.addEventListener(\"mousedown\", checkIfClickedOutside)\n\n return () => {\n // Cleanup the event listener\n document.removeEventListener(\"mousedown\", checkIfClickedOutside)\n }\n }, [isOpened])\n\n useEffect(() => {\n // catalogBtnRef.current.onclick = null;\n if (isOpened) {\n roomsBtnRef.current.onclick = null;\n } else {\n setTimeout(() => {\n roomsBtnRef.current.onclick = () => {\n\n setOpened(true)\n };\n }, 300);\n\n }\n }, [isOpened])\n\n\n function closeDropdown() {\n console.log('sas')\n setOpened(false)\n setTimeout(() => {\n setOpened(false)\n }, 1);\n }\n\n const filteredRooms = rooms ? rooms.filter((item) => item.type) : undefined\n\n\n\n\n return (\n <>\n {filteredRooms && filteredRooms.length > 0 ?\n
\n
\n {filteredRooms.map((item, i) => (\n \n
\n {getIconByType({\n type: item.type,\n mainClassName: 'rooms-drop__card-icon',\n fillClassName: 'rooms-drop__card-icon-fill',\n strokeClassName: 'rooms-drop__card-icon-stroke'\n })}\n

{item.name}

\n
\n \n \n ))}\n
\n
\n : null}\n \n\n );\n}\n\nexport default RoomsDrop;\n","import { useEffect, useRef, useState } from \"react\"\n\nconst useImageLoaded = () => {\n const [loaded, setLoaded] = useState(false)\n const ref = useRef()\n \n const onLoad = () => {\n setLoaded(true)\n }\n\n useEffect(() => {\n if (ref.current && ref.current.complete) {\n onLoad()\n }\n })\n\n return [ref, loaded, onLoad]\n}\n\nexport const ImageOnLoad = ({ src, className, alt, keyValue }) => {\n const [ref, loaded, onLoad] = useImageLoaded()\n\n return (\n <>\n {loaded ?\n {alt}\n :\n
\n {alt}\n
\n\n }\n\n\n \n\n )\n}","\n\nimport { Link } from 'react-router-dom';\nimport { MAIN_URL } from '../../../../assets/utils/constants';\nimport { ImageOnLoad } from '../../../../assets/utils/ImageOnLoad';\nimport { getPrice } from '../../../../assets/utils/utils';\nimport './SearchCard.css'\n\nconst SearchCard = ({ item, closeDropdown }) => {\n console.log(item)\n const price = getPrice(item)\n return (\n \n \n
\n

{item.name}

\n\n

{item.category.name} / {item.sub_category.name}

\n
\n

{price > 0 ? `${price.toLocaleString('us')}₽` : ''}

\n \n )\n};\n\nexport default SearchCard\n","import React, { useEffect, useRef, } from 'react'\nimport MiniPreloader from '../../MiniPreloader/MiniPreloader';\nimport SearchCard from './SearchCard/SearchCard';\n\n\n\n\n\nimport './SearchDrop.css';\n\n\nfunction SearchDrop({ isSearchPreloaderVisible, isOpened, setOpened, searchItems }) {\n const dorpRef = useRef()\n\n\n useEffect(() => {\n const checkIfClickedOutside = e => {\n // If the menu is open and the clicked target is not within the menu,\n // then close the menu\n if (isOpened && dorpRef.current && !dorpRef.current.contains(e.target)) {\n setOpened(false)\n }\n }\n\n document.addEventListener(\"mousedown\", checkIfClickedOutside)\n\n return () => {\n // Cleanup the event listener\n document.removeEventListener(\"mousedown\", checkIfClickedOutside)\n }\n }, [isOpened])\n\n\n function closeDropdown() {\n console.log('sas')\n setOpened(false)\n setTimeout(() => {\n setOpened(false)\n }, 1);\n }\n\n\n\n\n\n\n return (\n
\n {isSearchPreloaderVisible ?\n
\n \n
\n :\n
\n {searchItems && searchItems.length > 0 ?\n searchItems.map((item, i) => (\n \n ))\n :\n
\n

Ничего не найдено

\n
\n }\n
\n }\n
\n );\n}\n\nexport default SearchDrop;\n","import React, { useEffect, useRef, useState } from 'react'\nimport { Link } from 'react-router-dom';\nimport mainApi from '../../assets/api/MainApi';\nimport { CartIcon, CatalogIcon, CatalogIconHeader, CloseIcon, FavoriteIcon, GeoIcon, LogoIcon, MenuIcon, RoomsIcon, SearchIcon } from '../../assets/icons/icons';\nimport CatalogDrop from './CatalogDrop/CatalogDrop';\nimport MenuPopup from './MenuPopup/MenuPopup';\n\n\n\n\nimport './NewHeader.css';\nimport PopularCategory from './PopularCategory/PopularCategory';\nimport RoomsDrop from './RoomsDrop/RoomsDrop';\nimport SearchDrop from './SearchDrop/SearchDrop';\nimport { useLocation } from 'react-router-dom/cjs/react-router-dom.min';\nimport { CONTACT_PHONE, FORMATED_PHONE, WORK_TIME } from '../../assets/utils/constants';\n\n\nfunction NewHeader({\n favouritesProducts,\n allCartProductsCount,\n}) {\n\n const location = useLocation()\n\n\n const [searchValue, setSearchValue] = useState('')\n const [isDropDownOpened, setDropDownOpened] = useState(false)\n const [isSearchPreloaderVisible, setSearchPreloaderVisible] = useState(false)\n const [searchItems, setSearchItems] = useState(undefined)\n\n\n function hendleSearchChange(e) {\n let inputValue = e.target.value\n setSearchValue(inputValue)\n if (e.target.value === '') {\n setDropDownOpened(false)\n }\n else {\n setDropDownOpened(true)\n\n setSearchPreloaderVisible(true)\n }\n }\n\n function handleDropDownOpen() {\n if (searchValue !== '') setDropDownOpened(true)\n }\n\n\n\n\n\n\n\n useEffect(() => {\n const delayDebounceFn = setTimeout(() => {\n console.log(searchValue)\n if (!searchValue) return\n mainApi.searchItems({\n text: searchValue.toLowerCase(),\n limit: 5,\n })\n .then((res) => {\n console.log(res.data)\n setSearchItems(res.data)\n })\n .catch((err) => {\n console.log(err)\n })\n .finally(() => {\n setSearchPreloaderVisible(false)\n })\n }, 500)\n\n return () => clearTimeout(delayDebounceFn)\n }, [searchValue])\n\n const [isMenuOpen, setMenuOpen] = useState(false)\n\n\n const [rooms, setRooms] = useState(undefined)\n const [isRoomsOpen, setRoomsOpen] = useState(false)\n\n const [isCatalogOpen, setCatalogOpen] = useState(false)\n const [categories, setCategories] = useState(undefined)\n const [topCategories, setTopCategories] = useState(undefined)\n useEffect(() => {\n mainApi.getRooms({ limit: 25 })\n .then((res) => {\n console.log(res.data)\n setRooms(res.data)\n })\n .catch((err) => {\n console.log(err)\n })\n mainApi.getAllCategories({ limit: 25 })\n .then((res) => {\n console.log(res.data)\n setCategories(res.data)\n })\n .catch((err) => {\n console.log(err)\n })\n\n mainApi.getTopCategories()\n .then((res) => {\n console.log(res.data)\n setTopCategories(res.data)\n })\n .catch((err) => {\n console.log(err)\n })\n }, [])\n\n const [scrollWindowPosition, setScrollWindowPosition] = useState(0);\n const [popupScrollPosition, setPopupScrollPosition] = useState(0);\n\n const handleScroll = () => {\n const position = window.pageYOffset;\n\n setScrollWindowPosition(position);\n };\n\n useEffect(() => {\n window.addEventListener('scroll', handleScroll, { passive: true });\n\n return () => {\n window.removeEventListener('scroll', handleScroll);\n };\n }, []);\n\n\n useEffect(() => {\n if (isMenuOpen) {\n document.body.style.overflow = 'hidden';\n document.body.style.top = `-${scrollWindowPosition}px`;\n setPopupScrollPosition(scrollWindowPosition)\n setTimeout(() => {\n document.body.style.position = 'fixed';\n document.body.style.width = '100%';\n document.body.style.height = '100%';\n }, 10);\n\n console.log(window.pageYOffset)\n\n } else {\n document.body.style.overflow = 'unset';\n document.body.style.position = 'unset';\n document.body.style.width = 'unset';\n document.body.style.height = 'unset';\n document.body.style.top = `unset`;\n console.log(popupScrollPosition)\n window.scrollTo(0, popupScrollPosition)\n setScrollWindowPosition(popupScrollPosition)\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isMenuOpen]);\n\n const catalogBtnRef = useRef(null)\n const roomsBtnRef = useRef(null)\n return (\n
\n \n \n
\n
\n \n \n \n \n \n

Тобольск

\n
\n
\n {CONTACT_PHONE}\n
\n

{WORK_TIME[0]}

\n

{WORK_TIME[1]}

\n\n
\n
\n
\n
\n \n
\n {favouritesProducts && favouritesProducts.length > 0 ?\n

{favouritesProducts.length}

\n : null}\n \n
\n

Избранное

\n \n \n
\n {allCartProductsCount && allCartProductsCount.count && allCartProductsCount.count > 0 ?\n

{allCartProductsCount.count}

\n : null}\n \n
\n

Корзина

\n \n
\n \n
\n
\n
\n \n \n \n
\n \n
\n \n \n
\n\n
\n
\n \n \n
\n \n
\n
\n
\n \n
\n {favouritesProducts && favouritesProducts.length > 0 ?\n

{favouritesProducts.length}

\n : null}\n \n
\n

Избранное

\n \n \n
\n {allCartProductsCount && allCartProductsCount.count && allCartProductsCount.count > 0 ?\n

{allCartProductsCount.count}

\n : null}\n \n
\n

Корзина

\n \n
\n
\n\n
\n {location.pathname !== '/cart' ?\n \n : null}\n\n
\n );\n}\n\nexport default NewHeader;\n","import React, { useEffect, useState } from 'react'\nimport { Helmet } from 'react-helmet';\nimport { Switch, useParams, useRouteMatch } from 'react-router';\n\nimport mainApi from '../../assets/api/MainApi';\nimport CategoryCard from '../Category/CategoryCard/CategoryCard';\n\nimport SofaPreloader from '../SofaPreloader/SofaPreloader';\n\n\n\nimport Crumbs from '../Сrumbs/Сrumbs'\nimport './Room.css';\n\n\n\n\n\n\nfunction Room() {\n const { url } = useRouteMatch();\n\n let { room } = useParams();\n\n const [selectedRoom, setSelectedRoom] = useState(undefined);\n const [subcategories, setSubcategories] = useState(undefined)\n\n\n const [isPreloaderVisible, setPreloaderVisible] = useState(true)\n useEffect(() => {\n\n if (room) {\n setPreloaderVisible(true)\n mainApi.getSubcategoriesByRoom({\n translit_name: room,\n limit: 25,\n })\n .then((res2) => {\n console.log(res2.data)\n setSubcategories(res2.data)\n setSelectedRoom(res2.room)\n })\n .catch((err) => {\n console.log(err)\n })\n .finally(() => {\n setPreloaderVisible(false)\n })\n\n\n }\n\n }, [room])\n\n\n\n return (\n <>\n {selectedRoom ?\n \n Диванчик - {selectedRoom.name}\n \n : null}\n {isPreloaderVisible ?\n
\n \n\n
\n :\n
\n {selectedRoom ?\n <>\n \n

{selectedRoom.name}

\n
\n {subcategories ?\n subcategories.length > 0 ? subcategories.map((item, i) => (\n \n ))\n\n :\n

Пусто

\n : <>}\n
\n \n : <>}\n\n\n
\n }\n \n\n );\n}\n\nexport default Room;\n","import { CONTACT_PHONE, FORMATED_PHONE } from '../../assets/utils/constants';\nimport './CallPopup.css';\nimport React from \"react\";\n\n\n\n\n\n\n\nfunction CallPopup({\n handleClose,\n isOpen,\n}) {\n\n return (\n
\n
\n
\n \n \n \n
\n

Товар временно недоступен

\n

Уважаемый клиент, к сожалению, выбранный Вами товар в настоящее время отсутствует на складе. Для получения дополнительной информации о возможности заказа данного товара, пожалуйста, свяжитесь с нашим менеджером по указанному номеру телефона:

\n {CONTACT_PHONE}\n\n
\n
\n

Вернуться к покупкам

\n
\n
\n\n
\n
\n\n
\n
\n );\n}\n\nexport default CallPopup;\n","import React, { useEffect, useState } from 'react'\nimport Header from '../Header/Header';\nimport './App.css';\nimport mainApi from '../../assets/api/MainApi';\nimport { Switch, Route, Redirect } from 'react-router-dom';\nimport CityPopup from '../CityPopup/CityPopup';\nimport Footer from '../Footer/Footer';\nimport Category from '../Category/Category';\n// import AdminProducts from '../AdminProducts/AdminProducts';\n\nimport { products, categories, cities } from '../../utils/utils';\nimport FiltersPopup from '../FiltersPopup/FiltersPopup';\nimport CartPopup from '../CartPopup/CartPopup';\nimport CartPage from '../CartPage/CartPage';\nimport SubmitActionPopup from '../SubmitActionPopup/SubmitActionPopup';\nimport Requisites from '../Requisites/Requisites';\nimport Profile from '../Profile/Profile';\nimport Favourites from '../Favourites/Favourites';\nimport Refund from '../Refund/Refund';\nimport Login from '../Login/Login';\nimport Recovery from '../Recovery/Recovery';\nimport Register from '../Register/Register';\nimport ColorPopup from '../ColorPopup/ColorPopup';\n// import Preloader from '../Preloader/Preloader';\nimport MainPreloader from '../MainPreloader/MainPreloader';\nimport Main from '../Main/Main';\nimport { useHistory } from 'react-router-dom/cjs/react-router-dom.min';\nimport SubCategory from '../SubCategory/SubCategory';\nimport ProductPage from '../ProductPage/ProductPage';\nimport NewHeader from '../NewHeader/NewHeader';\nimport Room from '../Room/Room';\nimport CallPopup from '../CallPopup/CallPopup';\nimport { sendMetriс } from '../../assets/utils/utils';\n\n// import useScrollPosition from '../../utils/useScrollPosition';\n\n\n\n\n\nfunction App() {\n // const scrollPosition = useScrollPosition();\n\n const [loggedIn, setLoggedIn] = useState(undefined);\n const [currentUser, setCurrentUser] = useState(undefined);\n\n const [screenWidth, setScreenWidth] = useState(window.innerWidth);\n const [isCityPopupOpen, setCityPopupOpen] = useState(false);\n\n const [isSubmitActionPopupOpen, setSubmitActionPopupOpen] = useState(false);\n const [isCartPopupOpen, setCartPopupOpen] = useState(false);\n const [isColorPopupOpen, setColorPopupOpen] = useState(false);\n\n const [allProducts,] = useState(products);\n const [allCategories,] = useState(categories);\n\n // const [allProducts, setAllProducts] = useState(products);\n // const [allCategories, setAllCategories] = useState(categories);\n\n const [cityValue, setCityValue] = useState('Тобольск');\n useEffect(() => {\n // mainApi.getBarcode(id)\n // mainApi.getCategories()\n // .then((res) => {\n // console.log(res.categories)\n // setAllCategories(res.categories)\n // mainApi.getProducts()\n // .then((response) => {\n // setAllProducts(response.products)\n\n // })\n // .catch((err) => {\n // console.log(err)\n // })\n // })\n // .catch((err) => {\n // console.log(err)\n // })\n\n }, [])\n\n const history = useHistory()\n\n useEffect(() => {\n setLoggedIn(false)\n // mainApi.getUser()\n // .then((res) => {\n // console.log(res)\n\n // setCurrentUser(res)\n // if (!res.phone) {\n // history.push(`/signup`)\n // setLoggedIn(false)\n // } else {\n // setLoggedIn(true)\n // }\n // })\n // .catch((err) => {\n // setLoggedIn(false)\n // })\n\n }, [])\n\n useEffect(() => {\n let city = localStorage.getItem('city')\n if (city) setCityValue(city)\n }, [isCityPopupOpen]);\n\n function handleResize() {\n setScreenWidth(window.innerWidth)\n window.removeEventListener('resize', handleResize);\n }\n useEffect(() => {\n window.addEventListener('resize', handleResize);\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n });\n\n function handleCityPopupOpen() {\n setCityPopupOpen(true)\n }\n function handleCityPopupClose() {\n setCityPopupOpen(false)\n }\n\n // function handleFilterPopupClose() {\n // setFilterPopupOpen(false)\n // }\n\n function handleColorPopupClose() {\n setColorPopupOpen(false)\n }\n\n function handleSubmitActionPopupClose() {\n setSubmitActionPopupOpen(false)\n }\n\n function handleSubmitActionPopupSubmit() {\n let cartPrevArray = JSON.parse(localStorage.getItem(\"cart\"));\n let cartArray = []\n setCart(cartArray)\n localStorage.setItem(\"cart\", JSON.stringify(cartArray));\n setSubmitActionPopupOpen(false)\n window.dataLayer.push({\n ecommerce: {\n currencyCode: \"RUB\",\n remove: {\n products: cartPrevArray.map((product, i) => {\n return {\n id: product?._id,\n name: product?.name,\n category: product ? `${product.category.name}/${product.sub_category.name}` : '',\n price: getPrice(product),\n quantity: product.count,\n }\n }),\n },\n }\n })\n }\n\n\n function handleCartPopupClose() {\n setCartPopupOpen(false)\n }\n\n const [filterProducts, setFilterProducts] = useState([]);\n const [subcategoryPreloaderVisible, setSubcategoryPreloaderVisible] = useState(false);\n function handlePreloaderVisible() {\n setSubcategoryPreloaderVisible(true)\n setTimeout(() => {\n setSubcategoryPreloaderVisible(false)\n // window.scrollTo({ top: 0, behavior: 'smooth' })\n }, 1000);\n }\n\n const [filters, setFilters] = useState({});\n const [filtersUpd, setFiltersUpd] = useState({});\n\n useEffect(() => {\n if (Object.keys(filtersUpd).length !== 0 && filterProducts.length > 0) {\n handlePreloaderVisible()\n }\n\n\n }, [filtersUpd, filterProducts]);\n\n useEffect(() => {\n\n if (filterProducts && filterProducts.length > 0) {\n let filters = {\n inStock: true,\n price: {\n min: '',\n max: '',\n },\n width: {\n min: '',\n max: '',\n },\n height: {\n min: '',\n max: '',\n },\n depth: {\n min: '',\n max: '',\n },\n brands: [],\n }\n filterProducts.forEach((item, i) => {\n if (i === 0) {\n filters.price.max = item.price\n filters.price.min = item.price\n filters.width.max = item.specifications.width\n filters.width.min = item.specifications.width\n filters.height.max = item.specifications.height\n filters.height.min = item.specifications.height\n filters.depth.max = item.specifications.depth\n filters.depth.min = item.specifications.depth\n filters.brands = [item.manufacturer]\n }\n if (filters.brands.filter((brand) => {\n if (brand.toLowerCase() === item.manufacturer.toLowerCase()) return true\n else return false\n }).length === 0) filters.brands = [...filters.brands, item.manufacturer]\n if (item.price > filters.price.max) filters.price.max = Math.floor(item.price)\n if (item.price < filters.price.min) filters.price.min = Math.floor(item.price)\n if (item.discount > 0 && item.price - (item.price / 100 * item.discount) < filters.price.min) filters.price.min = Math.floor(item.price - (item.price / 100 * item.discount))\n if (item.discount > 0 && item.price - (item.price / 100 * item.discount) > filters.price.max) filters.price.max = Math.floor(item.price - (item.price / 100 * item.discount))\n if (item.specifications.width > filters.width.max) filters.width.max = Math.floor(item.specifications.width)\n if (item.specifications.width < filters.width.min) filters.width.min = Math.floor(item.specifications.width)\n if (item.specifications.height > filters.height.max) filters.height.max = Math.floor(item.specifications.height)\n if (item.specifications.height < filters.height.min) filters.height.min = Math.floor(item.specifications.height)\n if (item.specifications.depth > filters.depth.max) filters.depth.max = Math.floor(item.specifications.depth)\n if (item.specifications.depth < filters.depth.min) filters.depth.min = Math.floor(item.specifications.depth)\n })\n setFilters(filters)\n\n } else setFilters({})\n\n }, [filterProducts]);\n\n const [cart, setCart] = useState([]);\n\n useEffect(() => {\n let cartArray = JSON.parse(localStorage.getItem(\"cart\"));\n if (!cartArray || cartArray === []) {\n cartArray = []\n setCart(cartArray)\n localStorage.setItem(\"cart\", JSON.stringify(cartArray));\n } else {\n setCart(cartArray)\n }\n\n }, []);\n\n const [allCartProductsCount, setCartAllProductsCount] = useState({\n count: 0,\n totalPrice: 0\n });\n\n const getPrice = (item) => {\n\n const name = localStorage.getItem('city') ? localStorage.getItem('city') : 'Тобольск'\n let cityMap = {\n \"Новый Уренгой\": \"63777e52c505252a8fc59c09\",\n \"Надым\": \"63777e62c505252a8fc59c0a\",\n \"Тобольск\": \"63777e74c505252a8fc59c0b\",\n }\n let id = cityMap[name] ? cityMap[name] : \"63777e74c505252a8fc59c0b\"\n let value = item.firstc_data.price[id]\n return Number(value)\n }\n\n\n useEffect(() => {\n let counter = {\n count: 0,\n totalPrice: 0\n }\n if (cart) {\n cart.forEach(item => {\n counter.count = counter.count + Number(item.count)\n if (item.discount && item.discount > 0) {\n counter.totalPrice = counter.totalPrice + ((getPrice(item) - (item.price / 100 * item.discount)) * item.count)\n } else {\n counter.totalPrice = Number(counter.totalPrice) + (getPrice(item) * Number(item.count))\n }\n\n\n });\n }\n setCartAllProductsCount(counter)\n\n }, [cart]);\n\n // useEffect(() => {\n // console.log(cart)\n\n // }, [cart]);\n\n function handleToCartBtn(item) {\n\n let cartArray = JSON.parse(localStorage.getItem(\"cart\"));\n const product_from_cart = cartArray.filter((item2, i) => item2._id === item._id)[0]\n console.log(product_from_cart)\n if (product_from_cart) {\n item.count = product_from_cart.count\n } else {\n item.count = 1\n }\n\n if (!cartArray || cartArray === []) {\n sendMetriс('reachGoal', 'ADD_TO_CART_BTN')\n cartArray = [item]\n setCart(cartArray)\n localStorage.setItem(\"cart\", JSON.stringify(cartArray));\n window.dataLayer.push({\n ecommerce: {\n currencyCode: \"RUB\",\n add: {\n products: [\n {\n id: item?._id,\n name: item?.name,\n category: item ? `${item.category.name}/${item.sub_category.name}` : '',\n price: getPrice(item),\n quantity: item.count,\n },\n ],\n },\n }\n })\n }\n else if (cartArray && cartArray.filter((cart_item) => {\n if (cart_item._id === item._id) return true\n else return false\n }).length > 0) {\n cartArray = cartArray.filter((cart_item) => {\n if (cart_item._id === item._id) return false\n else return true\n })\n setCart(cartArray)\n localStorage.setItem(\"cart\", JSON.stringify(cartArray));\n sendMetriс('reachGoal', 'REMOVE_FROM_CART_BTN')\n window.dataLayer.push({\n ecommerce: {\n currencyCode: \"RUB\",\n remove: {\n products: [\n {\n id: item?._id,\n name: item?.name,\n category: item ? `${item.category.name}/${item.sub_category.name}` : '',\n price: getPrice(item),\n quantity: item.count,\n },\n ],\n },\n }\n })\n } else {\n sendMetriс('reachGoal', 'ADD_TO_CART_BTN')\n cartArray = [...cartArray, item]\n setCart(cartArray)\n localStorage.setItem(\"cart\", JSON.stringify(cartArray));\n window.dataLayer.push({\n ecommerce: {\n currencyCode: \"RUB\",\n add: {\n products: [\n {\n id: item?._id,\n name: item?.name,\n category: item ? `${item.category.name}/${item.sub_category.name}` : '',\n price: getPrice(item),\n quantity: item.count,\n },\n ],\n },\n }\n })\n }\n\n }\n\n\n const [favouritesProducts, setFavouritesProducts] = useState([]);\n\n useEffect(() => {\n let liked = JSON.parse(localStorage.getItem(\"favourites\"));\n if (!liked || liked === []) {\n liked = []\n setFavouritesProducts(liked)\n localStorage.setItem(\"favourites\", JSON.stringify(liked));\n } else {\n setFavouritesProducts(liked)\n }\n\n }, []);\n\n function handleLikeBtn(item) {\n\n let liked = JSON.parse(localStorage.getItem(\"favourites\"));\n if (!liked || liked === []) {\n liked = [item]\n sendMetriс('reachGoal', 'ADD_TO_FAVORITES')\n\n // let cartJson = JSON.stringify(cartArray)\n // console.log(cartJson)\n setFavouritesProducts(liked)\n localStorage.setItem(\"favourites\", JSON.stringify(liked));\n }\n else if (liked && liked.filter((liked_item) => {\n if (liked_item._id === item._id) return true\n else return false\n }).length > 0) {\n sendMetriс('reachGoal', 'REMOVE_FROM_FAVORITES')\n\n liked = liked.filter((liked_item) => {\n if (liked_item._id === item._id) return false\n else return true\n })\n setFavouritesProducts(liked)\n localStorage.setItem(\"favourites\", JSON.stringify(liked));\n } else {\n liked = [...liked, item]\n sendMetriс('reachGoal', 'ADD_TO_FAVORITES')\n setFavouritesProducts(liked)\n localStorage.setItem(\"favourites\", JSON.stringify(liked));\n }\n\n }\n\n\n const [selectedColor, setSelectedColor] = useState('');\n const [availibleColors, setAvailibleColors] = useState([]);\n\n function handleColorPopupOpen({ product, active_color }) {\n console.log(product, active_color)\n let colors = [{ name: product.specifications.colour, link: `/categories/${product.category.link}/${product.sub_category.link}/${product.link}` }]\n if (product.variations) {\n product.variations.forEach((item) => {\n colors = [...colors, { name: item.product_id.specifications.colour, link: `/categories/${product.category.link}/${product.sub_category.link}/${product.link}/${item.product_id.specifications.colour}` }]\n })\n }\n console.log(colors)\n\n\n setSelectedColor(active_color)\n setAvailibleColors(colors)\n setColorPopupOpen(true)\n }\n\n const [isCallPopupOpen, setCallPopupOpen] = useState(false)\n\n function handleCallPopupOpen() {\n setCallPopupOpen(true)\n }\n\n // console.log(scrollPosition)\n return (\n // ${isCartPopupOpen ? 'app-stop-scrol' : ''}\n
\n {loggedIn !== undefined ?\n <>\n \n \n \n { setCallPopupOpen(false) }} />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {loggedIn ?\n \n :\n \n }\n\n \n \n \n \n {/* \n \n */}\n \n
\n \n : }\n\n
\n );\n}\n\nexport default App;\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from \"react\";\nimport { withRouter } from \"react-router-dom\";\n\nclass ScrollToTop extends React.Component {\n componentDidUpdate(prevProps) {\n if (\n this.props.location.pathname !== prevProps.location.pathname\n ) {\n window.scrollTo(0, 0);\n }\n }\n\n render() {\n return null;\n }\n}\n\n\nexport default withRouter(ScrollToTop);","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { BrowserRouter } from 'react-router-dom'\n\nimport './index.css';\nimport App from './components/App/App';\nimport reportWebVitals from './reportWebVitals';\nimport ScrollToTop from './ScrollToTop';\n\nReactDOM.render(\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\nreportWebVitals();\n"],"sourceRoot":""}