{"version":3,"sources":["components/navbar/hover/components/navCarCard.jsx","utils/slugManager.js","components/navbar/hover/navCar.jsx","components/navbar/hover/components/navMaintenanceCard.jsx","components/navbar/hover/components/navWorkHours.jsx","components/navbar/hover/navMaintenance.jsx","pages/eparts/components/countDown.jsx","utils/currencyFormatter.js","components/__simple/_price.jsx","components/navbar/hover/components/navPartCard.jsx","components/navbar/hover/navParts.jsx","components/navbar/hover/navAbout.jsx","pages/contact/components/map.jsx","components/error.jsx","components/_input/_input.jsx","components/_input/_textArea.jsx","components/_input/_button.jsx","utils/validation.js","components/_input/_phoneInput.jsx","components/_input/_phoneDropDown.jsx","utils/resetDropDown.js","pages/eparts/components/customPopover.js","pages/eparts/components/partSearch.jsx","components/_input/_dropdown.jsx","pages/contact/components/contactTile.jsx","components/navbar/hover/navContact.jsx","User/popup.jsx","_redux/slices/cartSlice.js","User/components/popupHeader.jsx","utils/localStorageManager.js","_functions/cart.js","User/hooks/useUserCart.js","User/hooks/useUserFavorite.js","User/signIn.jsx","components/_input/_checkInput.jsx","components/_input/_fileInput.jsx","utils/localDB.js","components/sectionHeading.jsx","User/signUp.jsx","User/components/countDown.jsx","User/resetPassword.jsx","User/loginValidation.jsx","components/_input/advancedSearch.jsx","components/__simple/callCenter.jsx","components/navbar/navbar.jsx","components/__simple/_footerHeading.jsx","pages/landengPage/news/components/news.jsx","pages/landengPage/news/components/newsBanner.jsx","components/__simple/_pageheading.jsx","components/__simple/breadcrumb.jsx","components/__simple/_filterButton.jsx","pages/landengPage/sections/counter.jsx","pages/landengPage/generalQuestion.js","pages/landengPage/news/index.jsx","components/footer.jsx","utils/confirmContext.js","utils/compareProvider.js","components/slide.jsx","components/_info.jsx","components/iconText.jsx","components/testimonial.jsx","sections/testimonialSection.jsx","components/__simple/_whyBox.jsx","sections/whyHJSection.jsx","components/offer.jsx","pages/home/sections/homeOfferSection.jsx","utils/shareDataMaker.js","components/__simple/_likeButton.jsx","components/car.jsx","pages/home/sections/homeVehicleSection.jsx","components/adsBanner.jsx","pages/home/index.jsx","components/_input/SimpleButton.jsx","components/banner.jsx","sections/offersSection.jsx","pages/offers/index.jsx","components/_input/_dropdown1.jsx","components/_input/_dateInput_3.jsx","pages/offers/offerServiceReservationByID.jsx","pages/news/components/news.jsx","pages/news/components/newsBanner.jsx","pages/news/index.jsx","pages/news/detail.jsx","pages/employment/components/job.jsx","pages/employment/components/filters.jsx","pages/employment/index.jsx","components/_input/_dateInput_2.jsx","components/_input/_radioInput.jsx","components/_input/_uploadControl.jsx","pages/employment/detail.jsx","components/_input/_radioInputDynamic.jsx","pages/employment/ApplicationForm.jsx","pages/employment/interviewAttendance.jsx","components/__simple/_infoCirclejsx.jsx","_redux/slices/navSlice.js","pages/vehicles/index.jsx","pages/vehicles/vehicleOnline.jsx","pages/vehicles/overviewContext.js","pages/vehicles/components/carBanner.jsx","pages/vehicles/components/carSpecsTile.jsx","pages/vehicles/details/specs.jsx","pages/vehicles/components/featureCard.jsx","pages/vehicles/details/features.jsx","pages/vehicles/details/gallery.jsx","pages/vehicles/components/colorPicker.jsx","pages/vehicles/components/carModel.jsx","components/__simple/_pageLink.jsx","pages/vehicles/components/carFeature.jsx","pages/vehicles/details/overview.jsx","pages/vehicles/details/home.jsx","components/CustomItemServices.js","User/components/CarUser.jsx","components/offerDetail.jsx","pages/offers/detail.jsx","pages/eparts/components/campaign.jsx","pages/eparts/components/part.jsx","components/serviceBox.jsx","components/__simple/_simpleBanner.jsx","components/__simple/_aboutBox.jsx","sections/aboutHJ.jsx","pages/landengPage/sections/landengSlide.jsx","pages/eparts/components/partSlide.jsx","pages/eparts/components/sectionSlideEpart.js","pages/eparts/index.jsx","pages/eparts/components/rate.jsx","pages/eparts/components/ratingSection.jsx","components/simpleCardCar.js","pages/eparts/components/carSection.jsx","components/customTabbyTamara.js","pages/eparts/detail.jsx","pages/cart/component/Item.jsx","pages/cart/component/gift.jsx","pages/cart/component/cart.jsx","pages/cart/component/CartEpart.jsx","pages/cart/component/BouquetCart.jsx","pages/cart/component/ServiceBox.jsx","pages/cart/component/BranchInfo.jsx","pages/cart/component/CouponControl.jsx","pages/cart/component/PaymentsPlatforms.jsx","pages/cart/component/CartDetails.jsx","pages/cart/index.jsx","pages/finance/components/financeRange.jsx","pages/finance/components/financeSearch.jsx","pages/finance/components/financeCar.jsx","pages/finance/index.jsx","components/brandImage.jsx","pages/finance/detail.jsx","pages/about/components/about-awards.jsx","pages/about/components/about-visions.jsx","pages/about/components/about-counter.jsx","pages/about/index.jsx","pages/contact/components/contactList.jsx","pages/contact/components/mapBanner.jsx","pages/contact/index.jsx","scrollToTop.js","_redux/store.js","pages/maintenance/components/maintenance.jsx","pages/maintenance/components/serviceHeaderBanner.jsx","pages/maintenance/maintenanceContext.js","components/_input/_dropdown2.jsx","pages/maintenance/subpages/mainServicePage.jsx","pages/maintenance/components/serviceFeature.jsx","pages/maintenance/subpages/subMainServicePage.jsx","pages/maintenance/subpages/subServicePage.jsx","pages/maintenance/subpages/servicePage.jsx","pages/maintenance/serviceReservation.jsx","pages/maintenance/serviceReservationByID.jsx","pages/maintenance/components/EvaluationType.jsx","pages/maintenance/protectionAndShading.jsx","pages/maintenance/index.jsx","pages/maintenance/components/subServiceBox.jsx","pages/maintenance/m-service.jsx","pages/maintenance/serviceDetail.jsx","components/carFeature.jsx","pages/orderCar/index.jsx","pages/finance/order.jsx","components/_input/_dateInput.jsx","pages/maintenance/order.jsx","pages/Hj/components/adviceTile.jsx","pages/Hj/advises.jsx","User/components/sideNavbar.jsx","User/notifications.jsx","User/home.jsx","User/offers.jsx","User/components/seactionHeader.jsx","User/vehicles.jsx","User/profile.jsx","components/protectedRoute.jsx","pages/_errors/404.jsx","User/components/vehicleDetails.jsx","User/detailsUserVehicles.jsx","User/myBookings.jsx","User/components/ownOrders/ownOrderContext.js","User/components/ownOrders/ownHistory.jsx","User/components/ownOrders/ownOrderDetails.jsx","User/userOrders.jsx","User/components/phoenMenu.jsx","User/components/favoriteItem.jsx","User/favorite.jsx","User/index.jsx","components/contentLoading.jsx","pages/_errors/redirect.jsx","pages/offers/offersByType.jsx","pages/eparts/group.jsx","pages/eparts/testEparts.js","pages/eparts/paginationComponent.js","pages/eparts/customaAlert.js","pages/eparts/sereach.jsx","pages/eparts/campaignOrder.jsx","pages/eparts/components/campaignPart.jsx","pages/eparts/campaignDetails.jsx","pages/eparts/featureDetails.jsx","pages/compare/comp/compare.jsx","pages/compare/index.jsx","pages/offers/order.jsx","components/purchaseConfirm.jsx","components/registrationpup.jsx","pages/search/component/search.jsx","pages/search/component/searchResultContainer.jsx","pages/search/index.jsx","components/customerService.jsx","pages/Alerts/purchaseAlertPage.jsx","pages/privacy/index.jsx","pages/Agreement/index.jsx","pages/ProtectionAndShadingAgreement/index.jsx","components/headerLandengPage.jsx","pages/landengPage/sections/partSearch.jsx","pages/landengPage/sections/map.jsx","pages/landengPage/sections/contactTile.jsx","pages/landengPage/sections/contactList.jsx","pages/landengPage/sections/mapBanner.jsx","pages/landengPage/sections/navbar/navbar.jsx","pages/landengPage/index.jsx","pages/carOverview/index.jsx","App.js","reportWebVitals.js","i18n.js","index.js"],"names":["NavCarCard","img","name","link","prop","Year","to","onClick","className","src","alt","onError","e","target","style","display","Arabic_Patter","slugCombine","SlugPart1","SlugPart2","getCleanSlug","enIndex","url","decodeURI","window","location","href","urlLanguage","localStorage","getItem","urlLastSegment","substring","lastIndexOf","split","arIndex","forEach","item","index","test","toLowerCase","slugSplitter","sugments","slugs","NavCar","trans","useTranslation","t","useState","brands","setBrands","vehicles","setVehicles","filteredVehicles","setFilteredVehicles","filters","setFilters","CarCategories","setCarCategories","brandFilter","setBrandFilter","typeFilter","setTypeFilter","otherBrand","setOtherBrand","_setFilters","filteredBrand","filterHasVehicals","filter","brand","f","c","category","length","brandCategories","_filterVehicles","type","filterData","car","fTypeFilter","useEffect","lang","a","curl2","caches","open","cacheStorage","match","cachedResponse","json","data","axios","request","baseURL","config","controllURL","method","res","data22","Response","JSON","stringify","then","cache","put","curl","post","response","status","data44","console","log","map","fBrandFilter","count","borderRadius","width","height","containerClassName","inline","vehicle","mainURL","image","group","year","id","NavMaintenanceCard","description","price","days","NavWorkHours","department","languageDir","workingHours","setWorkingHours","holidaysList","setHolidaysList","weekDatesList","setWeekDatesList","day","orginal","getHolidays","body","values","responseType","info","catch","error","now","Date","dayOfWeek","getDay","startOfWeek","daysSinceSaturday","setDate","getDate","weekDates","i","date","push","dayNameAr","toLocaleDateString","weekday","dayNameEn","dya","get_month","getMonth","getWeekDates","setTimeout","intialOperationalTimeOfDuty","calenders","responseData","firstPeroid","find","String","Type","startOnetPeriodTime","StartTime","endOnePeriodTime","EndTime","secondPeriod","startPeriodTime","endPeriodTime","items","Object","keys","_day","dayAfterFind","itemDay","hasHoliday","itemHoliday","Day","Month","formatValue","Description","getTimeFormat","value","includes","replace","ele","NavMaintenance","maintenanceOffers","setMaintenanceOffers","categories","setCategories","intialOffers","intialCategories","otherSlug","slugEn","slug","slugAr","Days","responseDataFiltered","MainServiceID","path","_values","slice","offer","cat","SubService1ID","CountDown","Total","start","end","showSeconds","Ref","useRef","timer","setTimer","startTimer","total","parse","seconds","Math","floor","minutes","hours","month","getTimeRemaining","countDownFormat","clearTimer","current","clearInterval","setInterval","getDeadTime","deadline","setSeconds","getSeconds","setMinutes","getMinutes","setHours","getHours","numberFormat","number","showZero","classNameCurrency","displayCurrencyLiter","syntax","code","locale","undefined","concat","Intl","NumberFormat","format","random","Price","i18n","language","parseFloat","NavPartCard","title","endDate","startDate","totalTime","NavParts","compaign","setCompaign","intialCompaign","intialEPartsCategories","ApiObjectData","firstTwoOffers","_","orderBy","moment","CreatedDate","GUID","DateFrom","DateTo","TotalTime","TotalAmountDiscount","com","NavAbout","aboutList","history","useHistory","aboutOwner","setAboutOwner","intial","responseResult","finalResult","cursor","elementID","document","getElementById","scrollIntoView","navigateToElement","Map","latitude","longitude","content","markers","multiMarkers","currentPosition","setCurrentPosition","setMultiPositions","toggle","setToggle","success","position","lat","coords","lng","navigator","geolocation","getCurrentPosition","mm","handleToggle","infoWindowStyle","backgroundColor","color","textAlign","minWidth","fontSize","fontWeight","mapContainerStyle","zoom","center","clickableIcons","options","panControl","mapTypeControl","fullscreenControl","streetViewControl","zoomControl","clickable","onCloseClick","label","toString","ErrorLabel","errorTitle","block","classes","InputField","readOnly","disabled","onChangeValue","onKeyDown","onLeave","onKeyPress","errorLabel","placeholder","secondary","required","extraClasses","passwordStrength","onAcceptPassword","searchIcon","onClicksearchIcon","props","validationMessage","setValidationMessage","weak","middle","powerful","strength","setStrength","htmlFor","event","onBlur","maxLength","onChange","_value","_numericPattern","_alphaCapitalPattern","_alphaSamllPattern","_simplePattern","val","strengthCount","_message","search","handlePasswordStrength","class","TextArea","row","rows","FormButton","isLoading","isPrimary","icon","xmlns","viewBox","fill","d","GetMessages","formValidate","schema","validate","abortEarly","errors","details","message","PhoneInput","enabled","defaultValue","prefix","phonevalue","setPhoneValue","direction","pattern","startsWith","onInput","result","validity","valid","handleChange","PhoneDropDown","mandotory","defaultFlag","placeholderProp","countriesListCode","isLoginProp","defaultFlagPath","isOpened","setIsOpened","isFocus","setIsFocus","DescriptionAr","DescriptionEn","flag","currentcountriesCode","setCurrentcountriesCode","flagText","activeFlag","setActiveFlag","phoneValue","flagRef","inputRef","addEventListener","handleClickOutside","removeEventListener","Country","setCountry","Body","contains","FillAllCountries","bb","DialingCode","parseInt","dir","onFocus","ref","right","focus","handleChangeCountryCode","dropDownResetter","callback","forceReturn","CustomPopover","listMain","level2","level3","isShowIndex","setIsShowIndex","CatMain","setCatMain","SuPCat","setSupCat","fCatSup1","setoptionCatSup","fCatSup2","setoptionCatSup2","dropdownRef","imageTitle","setImageTitle","parentNode","slidesPerView","spaceBetween","resizeObserver","watchSlidesVisibility","watchSlidesProgress","autoplay","loop","option","show","GroupIDMain","ImageUrl","button","drId","indexP","dropdown","getBoundingClientRect","left","dropdownContent","rect","rightSpace","leftSpace","adjustDropdownPosition","GroupIDMainSup1","filterCatSup2","valLevel2","indexLevel2","GroupIDMainSup2","PartSearch","forwardRef","isLoadingFuncProp","isIndex","onChangValuesProp","passEngineGroups","activePage","query","URLSearchParams","useLocation","setBrand","get","queryProduct","setQueryProduct","Brands","ProductGroups","setProductGroups","ProductModel","setProductModel","ProductModelTypes","setProductModelTypes","engineGroups","setEngineGroups","engineGroupsSup","setEngineGroupsSup","engineGroupsSup2","setEngineGroupsSup2","setResGroup","setResProductType","setResProductModel","brandID","resProductTypeQuery","resProductType","resGroupQuery","resGroup","resProductModelQuery","resProductModel","FunCat","Engine_Groups","Engine_GroupsSup","Engine_GroupsSup2","FunVech","FunPro","Product","refreshPage","FProductGroups","setFProductGroups","FProductModelTypes","setFProductModelTypes","text","SSuPCat","setSSupCat","setPro","GetUrl","SendRequset","settingResponse","groups","productModels","reverse","models","BodyBrands","BodyProductGroups","BodyProductModel","BodyProductModelTypes","BodyEngineGroups","requestEngineGroups","BodyEngineGroupsSUP","requestEngineGroupsSUP","BodyEngineGroupsSUP2","requestEngineGroupsSUP2","all","spread","EngineGroups","EngineGroupsSup","EngineGroupsSup2","resVal","productGroupID","setResProduct","setIsHeadingBtn","clearFiltersFunc","useImperativeHandle","DropDownInput","styles","isSecondary","inputName","onSelect","fieldTextClass","classDropdownField","defaultOption","onfilter","isepart","selectedValue","force","roundedFull","optionsRef","isOpen","setIsOpen","selectedOption","setSelectedOption","filterOptions","setfilterOptions","funSelectValueOption","vv","selectOption","buyOnline","ContactTile","Base64","isValid","NavContact","fullName","phone","email","subject","messageContent","setMessage","branches","setBranches","contacts","setContacts","selectedBranch","setSelectedBranch","subjects","setSubjects","rad","x","PI","find_closest_marker","distances","closest","mlat","mlng","dLat","dLong","sin","cos","atan2","sqrt","allContects","branchId","setError","submitRequest","preventDefault","Number","toast","onSubmit","countryCode","phoneNumber","contact","typeIconPath","contactValue","typeValue","contactTitle","typeTitle","Popup","children","cartSlice","createSlice","initialState","reducers","changeCount","nav","action","payload","actions","PopupHeader","welcomeTitle","subTitle","closePopUp","User_Data_Key","saveData","key","encryptData","transformedValue","crypto","AES","encrypt","cryptoKey","setItem","getData","descryptData","keyData","decrypt","enc","Utf8","addToCart","MiniDownPayment","nameEn","modelTypeID","modelCode","brandEn","Tax","Discount","colorId","modelTypes","modelTypesEn","productID","groupEn","BrandID","colorName","colorNameEn","packageId","Orderdate","Translation","ns","objectCart","colorID","groupID","ProductID","add","autoClose","hideProgressBar","closeOnClick","pauseOnHover","draggable","progress","dispatchEvent","Event","useUserCart","USER_CART_ITEMS","cartItems","setcartItems","itemsLength","initSignIN","guid","list","changecartItem","quantity","init","_products","SalesPrice","BrandDescriptionAr","BrandDescriptionEn","Group","ProductImage","SalesPriceDiscount","ItemType","colorNameAr","CarGroupID","modelTypesAr","ProductNo","QTY","err","objectProduct","isGetInitData","returnValue","userID","colorIDSelect","modelTypeIDSelect","modelCodeSelect","packageIdSelect","yearSelect","cartItemsDetails","itemsDetails","newQTY","exists","addQuantityCart","removecartItems","cartID","remove","removeAllcartItems","initCartItems","isCartItem","useUserFavorite","USER_FAVORITE_ITEMS","favoriteItems","setFavoriteItems","setItemslength","isFavoriteItem","changeFavoriteItemState","newItems","currentItems","favoriteItemsDetails","withGroup","_data","groupResult","mapValues","groupBy","fList","omit","groupValues","assign","finalResults","obj","heading","SignIn","onTabChange","onLogin","bodyRef","tabsList","tab","isSending","setIsSending","EMAIL_KEY","PHONE_KEY","IDENTITY_KEY","identityNo","password","confirm","requestForm","setRequestForm","enterType","setEnterType","confirmPhoneNumber","setConfirmPhoneNumber","Joi","object","string","minDomainSegments","tlds","allow","messages","optional","min","or","schemaphoneNumber","schemaidentityNo","schemaConfirm","removeUnspecificError","errorList","errorResult","removeUnspecific2Error","handleSendVerificationCode","sch","codeValid","selectedTabClassName","defaultIndex","handleChangeEnteringType","trim","MD5","handleRequest","userrespons","handleLogin","CheckInput","checked","oncheng","Name","FileInput","onPicker","mimeType","accept","db","SectionHeading","hasRuler","onEdit","editable","infoText","SetStatus","newStatus","SignUp","steps","setSteps","arFirstName","arMiddleName","arLastName","enFirstName","enMiddleName","enLastName","validation","genderID","identity","accountType","commercialIdentity","commercialIdentityImage","identityImage","address","confirmPassword","max","alphanum","accountTypes","setAccountTypes","selectedPrivacy","setSelectedPrivacy","setConfirmValidation","isClientAccount","setIsClientAccount","clicked","toBase64","file","Promise","resolve","reject","reader","FileReader","readAsDataURL","onload","onerror","handleChangeImage","files","size","round","fileBase64","finalFile","substr","indexOf","handleChangeImage2","lowerValues","handleNextStep","specifics","cookies","cookieValue","replaceAll","otherProperities","components","ID","isClient","NeedIdentity","getCorrectSection","contM","onFinish","ResetPassword","activeStep","setActiveStep","validationKey","ticker","setTicker","setClicked","notes","identityType","setIdentityType","setPasswordStrength","handleSteps","createDbRequest","dbName","dbVersion","indexedDB","dbRequest","onupgradeneeded","createObjectStore","keyPath","onsuccess","version","errorCode","proccessUserData","transaction","userStore","objectStore","clear","oncomplete","close","getUserDataByID","LoginValidation","secretKeyValue","encodedData","descriptionAr","descriptionEn","logo","custID","uId","AdvancedSearch","onSearchClick","sections","popRef","searchRef","searchInput","setSearchInput","setSection","searchResult","setSearchResult","filteredSearchResult","setFilteredSearchResult","targetPage","setTargetPage","classList","handleSearchBtn","handleSearchResult","descriptionModel","uniqueID","source","Model","join","BrandAr","BrandEn","Weight","Length","Height","Width","prevousValue","borderStyle","CallCenter","servicePhone","Navbar","popupShow","navRef","navTop","setNavTop","navFlex","setNavFlex","lastScrollY","setLastScrollY","onhamburger","setOnhamburger","showNav","setShowNav","headerFixed","useSelector","state","entities","isFixed","cartCount","iconsBlack","cart","searchPopup","setSearchPopup","showCartNotification","setShowCartNotification","showPopup","setShowPopup","timerRef","activePopUpModel","setActivePopUpModel","handleTabChange","handlePopupStatus","schemaNavContact","countlist","addEvent","setaddEvent","listenForStorage","v","Account","dispatch","listenForStorageToCount","innerWidth","useDispatch","SetTotalTax","setSumItemTotal","setSubTotal","fullTotal","setfullTotal","setMiniDownPayment","currentTotalTax","sum","p","currentSumItemTotal","currentSumfullTotal","currentSubTotal","currentMiniDownPayment","handleScroll","currentScrollY","scrollY","showedListNav","section","handleMouseEnter","handleMouseLeave","clearTimeout","opacity","onMouseLeave","top","exact","onMouseEnter","origin","pathname","lineHeight","zIndex","flexFlow","FooterHeading","News","desc","tag","NewsBanner","background","PageHeading","fixed","subtitle","dangerouslySetInnerHTML","__html","Breadcrumb","links","FilterButton","isActive","onclick","Counter","counterData","subTitel","BackOpicity","backImage","duration","scrollSpyOnce","titelAr","GeneralQuestion","isMoreProp","questionProp","answerProp","onClickProp","NewsPageDaynamic","useParams","page","setActivePage","news","setNews","sliderNews","setSliderNews","newsFilter","setNewsFilter","setFilter","filteredNews","setFilteredNews","dataStatus","setDataStatus","itemCount","setItemCount","isFullScreen","setIsFullScreen","setActiveImage","images","original","thumbnail","indexQ","setIndexQ","openQustion","filterNews","totalItemsCount","pagination","effect","grabCursor","observer","imagePath","excerpt","otherLink","_filter","itemsCountPerPage","pageRangeDisplayed","toggleFullScreen","slideToIndex","stroke","onScreenChange","Anser","SwiperCore","use","SlidePagination","Navigation","Autoplay","EffectFade","Footer","socials","setSocials","setEmail","submitEmail","isEmailExisted","isExisted","social","rel","getFullYear","ConfirmContext","React","createContext","displayName","useCompare","vehicleID","maxColumns","COMPARE_KEY","COMPARE_FORMAT_KEY","properities","setProperities","formatProperities","setFormatProperities","requestData","vehID","currentValues","currentFormatValues","_image","Image","vehObject","Values","PropertyID","ProperityDescriptionAr","ProperityDescriptionEn","_tempArray","_propertyObjectValue","_propertyValue","_props","customizedVehicalesGroup","customizedObj","customizedObjValues","without","_valueIndex","findIndex","_tempValues","_currentValue","index2","index3","_v","warning","onDeleteItem","removeItem","_newCurrentValues","onInsert","Slide","bg","seats","minPrice","HP","cylinders","petrol","RateCareDiscount","ProductId","end_Offer","NewCar","NewCar_DateEnd","Hybird","showPric","hybridImage","viewSliderIcon","viewSliderDetails","viewBtns","sliderBackOpasity","context","useContext","getEndDate","onShow","displayConfirm","isHyper","isNew","defaultColorID","modelYear","cartDetails","carOrder","Info","hjData","hjGallery","setHjGallery","section1Image","firstResult","newhjData","showImg","IconText","Testimonial","TestimonialSection","testimoinals","setTestimoinals","testimonials","breakpoints","navigation","testimonial","Pagination","WhyHJBox","secondTheme","WhyHJSection","whyInfo","setWhyInfo","Offer","totalDays","paymentURL","HomeOfferSection","offers","filteredOffers","setFilteredOffers","offersFilter","setOfferFilter","filterOfferVehicle","off","shareMaker","hashTag","baseUrl","shareObject","LikeButton","long","onToggle","favorite","titleStyle","btnStyle","Car","qty","brandImage","brandIcon","gifts","miniDownPayment","showDetails","hybird","newCar","sharable","discountPrice","isOnline","goBuyDerict","carData","onClickShowSN","btnShowSN","shareOpened","setShareOpened","isToyota","stopPropagation","flexDirection","FacebookShareButton","quote","hashtag","FacebookIcon","TwitterShareButton","TwitterIcon","WhatsappShareButton","WhatsappIcon","TelegramShareButton","TelegramIcon","EmailShareButton","EmailIcon","sn","Boolean","obb","brandAr","groupAr","SN","backGround","HomeVehicleSection","cars","filteredCars","setFilteredCars","carFilter","setCarFilter","filterCars","siteId","countGifts","discount","hybirdImage","rateTaxCar","productId","rateCareDiscount","AdsBanner","adsBanners","setAdsBanners","useRouteMatch","fetchData","backgroundImage","AdsImage","HasRedirect","AdsUrl","Home","setCars","offerPart","setOfferPart","offerPartFilters","setOfferPartFilters","offerVehicle","setOfferVehicle","offerVehicleFilters","setOfferVehicleFilters","slides","setSlides","hjInfo","setHjInfo","setAddVich","isLoadingslides","setLoadingslides","isLoadingInfo","setLoadingInfo","useCallback","curentSlides","curentInfo","homedata","offerPartTypes","offerVehicleTypes","seoPageInfo","setSeoPageInfo","resdata","Helmet","charSet","MetaDescription","MetaGroups","onUpdateSlider","slide","update","seatsNumber","hp","AddVichl","end_at","newCar_DateEnd","SimpleButton","iconPath","hint","Banner","secondImage","btn","offerDate","overlay","backOpasity","isOffer","handelButton","handelActicePackage","packages","acticePackage","setActicePackage","onhandelActicePackage","hidden","showBtn","OfferSections","offersList","showMore","OfferPage","banner","setBanner","setOffers","Responsedata","DropDownInput1","prps","DateInput3","boxShadow","paddingInlineStart","OfferServiceReservationByID","isLogin","setLogin","Branches","dataFullNum","setDataFullNum","indexPanel","setIndexPanel","Note","setNote","setPackages","years","setYears","isSendeng","setIsSendeng","lastName","time","myCarID","SiteID","LoginSchema","meterReading","model","notLoginSchema","setOffer","setOfferSupportedCars","setPackageSupportedCars","acticeService","setActiceService","acticeCar","setActiceCar","FetchOfferSupportedServicesSacondry","FetchOfferSupportedVehicles","GetBranch","tamaraWidgetConfig","country","publicKey","TamaraFAQsFrame","render","setFullDatetime","md","Hours","datetime","ly","fromYear","toYear","newy","offerSupportedCars","packagesSupportedCars","cslug","Mainservice","Lastservice","MainserviceIDS","ServiceID","subService2","setSupportedMainServices","setSupportedLastsServices","setSupportedServices","setLoadingSupportedServices","SupportedLastsServices","SupportedVehicles","setSupportedVehicles","setLoadingSupportedVehicles","listTimeAvailable","setListTimeAvailable","webAvailableReshours","statusText","_lstTime","AvailableHour","warn","checkDataFullNum","_index","reservationOnly","B","VIN","isClearable","selected","filterDate","today","yesterday","placeholderText","dateFormat","customInput","includeTimes","toDateString","showTimeSelect","showTimeSelectOnly","timeIntervals","timeInputLabel","timeCaption","cleanData","subServiceID","TypeServiceID","ServecID","ModelCode","UserID","Amount","ServicesList","myHeaders","Headers","append","raw","headers","SendResreve","mainService","subService1","NewsPage","NewsDetailPage","detail","setDetail","latestNews","createdDate","Job","job","titleLink","JobFilters","jobDepartments","jobBranches","departmentFilter","branchFilter","EmploymentPage","jobs","setJobs","setJobDepartments","setJobBranches","dept","setDept","branch","setBranch","datacash","employments","dataResponse","DateInput2","inputMode","showPicker","RadioInput","groupName","selectValue","value1","text1","value2","text2","radioSelectValue","setRadioSelectValue","radioGroup","UploadControl","EmploymentDetailPage","firstName","selectedGender","selectedNationality","chooseDateOfBirth","selectedStatus","selectedLanguageLevel","selectedComputerLevel","selectedDegree","chooseGraduation","note","skillsList","setSkillsList","certificationList","setCertificationList","statusList","setStatusList","nationalitiesList","setNationalities","gender","setGender","employment","setEmployment","isLoadingBtnSend","setIsLoadingBtnSend","isDataSentBefore","positionId","nationalitiesResponse","genderResponse","skillsResponse","certificationResponse","statusResponse","gap","role","skill","additional","getYears","identificationImage","fileName","loadedImage","RadioInputDynamic","ListValues","EmploymentApplicationFormPage","showFinalPopup","setShowFinalPopup","showFinalPopupMessage","setShowFinalPopupMessage","phoneNumberApplicants","setPhoneNumberApplicants","setReject","formatDate","hour","hour12","minute","schema_Reject","schema_1","cardNumber","cardExpiryDate","placeResidence","numberWives","numberChildren","selectedjob","dateReadyToJob","workedOurCompany","salaryToFrenchBank","socialSecurity","medicalInsurance","applyVia","City","schema_2","durationStudy","specialty","yearOuter","scientificCertificate","schema_3","schema_4","DealingWithOthers","SYS_Cities","setSYS_Cities","filteredCities","setFilteredCities","stepNum","setStepNum","allYear","interviewData","setInterviewData","interviewApplicantsData","setInterviewApplicantsData","GetinterviewApplicants","queryPhone","setDefultEmailandName","OTP","setOTP","checkStepsErrors","seccessSteps","employmentId","j","OTPNumber","OTPString","interviewID","getMaxData","maxID","inputFields_2","submitRequestCertificates","inputFields","submitRequestworkExperience","setInputFields","setInputFields_2","submitRejectRequest","CertificateObject","applicationID","workExperienceObject","employer","durationemploy","JobTitle","lastSalary","reasonLeaving","interviewDate","diffTime22","ceil","diffTime","applymentsData","setApplymentsData","GetEmployment_applymentsData","mobile","appData","maritalStatus","nationality","brithDate","PositionID","englishLevel","computerLevel","degree","graduationYear","SYS_CitiesResponse","Cities","CountryID","value3","handleInputChange_2","newInputFields","handleInputChange","srempNumber","cheangeSteps","step","def","isRejection","phoneNumberOnly","phoneNumberCode","currentEmploy","titel","titelEn","subTitelAr","subTitelEn","interviewDateFormat","selectedReject","strokeWidth","field","Fragment","handleDropDownChange_2","lastGroupindex","clipboard","writeText","EmploymentInterviewAttendance","isDataOTPMatch","applicationData","setApplicationData","attendanceDateTime","InfoCircle","titleEn","titleAr","_icon","navSlice","changeHeader","changeIcons","isFixedHeader","VehiclePage","brandInfo","setBrandInfo","vehiclesFilter","setVehiclesFilter","Featured","setFeatured","homeExtraRes","allCategories","filterVehicles","MetaDescriptionEn","MetaGroupsEn","groupType","carGroupID","modelType","BrandImage","VehicleOnlinePage","gallery","setGallery","cachSNImages","setCachSNImages","filterG","cuCachSNImages","dataVehicles","curl22","cacheStorage22","cachedResponse22","homeExtraRescach","resdataVehicles","data2","productTarget","modelDescription","categor","FetchCarSNImages","OverViewContext","CarBanner","onBuyClick","pdf","breadcrumb","hasOffers","setSectionActive","siteDesc","onHamburger","setOnHamburger","pageName","setPageName","maxWidth","vehicleInfo","isHybird","minHeight","download","CarSpecsTile","modelslug","spec","backupImage","liter","offerIndex","specRef","specHeight","setHeight","showData","vx","getElementsByClassName","Array","from","ev","scrollHeight","features","setFeatures","formatFeatures","scrollTo","offsetTop","behavior","dataFinal","NoteAr","NoteEn","trimEnd","sectionAr","sectionEn","VehicleSpecsPage","setModels","backUpImage","setBackUpImage","BuyOnline","FeatureCard","VehicleFeaturePage","feature","VehicleGalleryPage","setTypes","filteredGallery","setFilteredGallery","innerCarImages","setInnerCarImages","outerCarImages","setOuterCarImages","wheels","setWheels","activePart","setActivePart","innerImages","outerImages","wheelsImages","types","isArray","filterImage","ap","CarColorPicker","active","imageBase64","urlImageColor","BackgroundSize","CarModel","extraSpecsTo","langaugeDir","splittedValues","sendRequest","PageLink","CarFeature","VehicleOverViewPage","mainurl","setIsLoding","currntvehicle","selectedColor","setSelectedColor","setVehicle","isLoadingImages","setIsLoadingImages","vehicleOffers","carColors","setCarColors","carModels","setCarModels","setAllImagesCount","setActiveColor","activeModel","setActiveModel","handleChangeOverViewContent","setActiveOutColor","setActiveINColor","resetColorsValues","resetValues","setINCarColors","setOUTCarColors","afterChangeDataType","getCarModels","responsemodels","curentCars","getCach","datacash2","response2","dataResponse2","cashCarImages","innerCarImagesJson","setInnerCarImagesJson","outerCarImagesJson","setOuterCarImagesJson","fetchCarDesign","activeColor","partnum","setFilterCarImages","codeColor","codeColorIN","codeColorOUT","imagesPart","AllCarImagesIN","AllCarImagesOUT","allcolor","OUTcolorsCode","INcolorsCode","colorCodeItems","cimage","imagesCount","handleRequestChangeOverview","finalItem","product","tax","itemValue","filterCarImages","getActivePartSection","ColorID","cashColors","setCashColors","handleFetchModelAvaliableColors","productTypeID","currentColorID","thisSelectedColorID","_colors","_default","cc","INcolors","OUTcolors","setINCarColorsCode","setOUTCarColorsCode","currentInColor","IN_colors","currentOutColor","Out_colors","jsoncolors","ColorDescription","ColorImage","siteOutColorImage","siteInColorImage","firstItem","colors","currentSelectedColor","allModels","activeINColor","activeOutColor","autoHeight","updateOnWindowResize","Image_URL","maxHeight","ColorDescriptionAr","ColorDescriptionEn","mo","VehicleDetailPage","isLoding","sectionActive","setVehicleInfo","handleSetSectionActive","siteFetchSeoCars","resData","Provider","userManual","backgroundPath","CustomItemServices","moreLink","borderCSS","CarUser","inputDate","onUpdate","fromToYear","withMoreLinke","reload","handleRemoveUserCar","OfferDetail","terms","supportedCars","offerId","SupportedServices","SupportedMainServices","handelActiceCar","handleActicePackage","handelActiceService","OfferDetailPage","showPopupPay","setShowPopupPay","fullDatetime","evt","excerptAr","excerptEn","toastId","allowInstallments","pac","Campaign","CampaignType","Photo","Title","DiscountID","DiscountAmount","toyota","onChooseCompaign","Part","SalesPriceBefor","loading","NetSalePrice","ServiceBox","titlebtn","categoryId","small","imgUrl","subtitleEn","subtitleAr","subtitel","imageUrl","SimpleBanner","AboutBox","AboutHJSection","about","setAbout","LandengSlide","Titel","SubTitel","Desc","BtnText","backImageUrl","viewSocialIcons","PartSlide","SectionSlideEpart","slidEPartsList","setSlidEPartsList","getSparePartsSlide","backOpacity","urlImage","EpartsPage","GetUrlfunc","PWD","setPWD","isPopUpOpened","setIsPopUpOpened","selectedCompaign","setSelectedCompagin","userPhoneNumber","userForm","urlParms","Web_UserID","FirstNameEn","FirstNameAr","LastNameEn","LastNameAr","Phone","Email","IdentityNumber","setUserForm","CompaignLuxes","setCompaignLuxes","CompaignToYota","setCompaignToYota","BodyToYota","GetToYota","BodyLuxes","GetLuxes","Luxes","ToYota","site_SupCategory","setbanner","Sbanner","setSbanner","featuredProductsList","setFeaturedProductsList","featuredCatList","setFeaturedCatList","funFeaturedProductsAndCat","BodyFeaturedProduct","requestFeaturedProduct","BodyFeaturedCat","requestFeaturedCat","responseFeaturedProduct","responseFeaturedCat","favoriteProducts","setFavoriteProducts","fetchUserFavorites","_favorites","favorites","results","RequsetCompaign","RequsetsetSite_categorySP","DescriptionEnTitle","DescriptionArTitle","proValue","prodIndex","catValue","catIndex","CategiorAr","H","b","imageEn","TitleEN","imageAr","TitleAr","P","Percentage","PartRating","readonly","intialValue","initialRating","emptySymbol","fullSymbol","RatingSection","comments","setComments","handleFetchComments","Logo","Stars","Comment","SimpleCardCar","title2Ar","subTitleListAr","title2En","subTitleListEn","imageFull","titleValue","titleIndex","CarSection","guidProductId","compatibilityList","setCompatibilityList","getCompatibility","DescriptionArG","DescriptionEnG","ProductGroupID","CustomTabbyTamara","EpartsDetailPage","setCar","rate","setRate","SetAva","SetDilev","hashTage","sharerInfo","setSharerInfo","PWR","setPWR","AttachImg","setiAttch","setTerms","checkCompatibility","setCheckCompatibility","RequsetProductsWithDetails","SetImgMain","epartsInfo","_sharerInfo","CategiorEn","setProductNo","setCatNameUrl","ex","getCatNameUrl","RequsetProductsWithAlternatives","getTermsPart","getCheckCompatiblityEPart","RequsetAttch","RequsetAva","termsAr","termsEn","handleCalculateRatingStars","productNo","stars","ratingValues","setRatingValues","catNameUrl","star","spe","Comments","totalComments","totalOfSpe","totalOfStars","finalTotal","catId","catSubId","catSubSubIdd","catAr","catEn","subCatAr","subCatEn","subSubCatAr","subSubCatEn","catSubSubId","Att","D","part","handelAddToCart","CheckCompatibility","Item","hasLike","Gift","Cart","onDelete","Pay","CategoryCar","carErrorCount","LodingDelate","setLodingDelate","counter","setCounter","Accessories","GiftS","hasAccessories","setHasAccessories","hasGift","setHasGift","Color","CountGifts","MinPrice","CartInfo","setCartInfo","countF","num","getSerialsBuyOnlineCount","countSN","CuurentValue","Brand","ModelTypes","CarCartInfo","Img","CartItems","onFavoriteItemsChange","Categior","showCategor","categoryAr","categoryEn","PartCartInfo","BouquetCart","ErrorDate","refrechDate","editDate","setEditDate","editCarType","setEditCarType","DiscountRate","ItemsNumer","setServiceInfo","formGroup","setFormGroup","formModelTypeID","setFormModelTypeID","formYear","setFormYear","LodingEditDate","setLodingEditDate","LodingEditCarType","setLodingEditCarType","filteredProductModels","setFilteredProductModels","setDefultDate","offerName","packageName","GetCartInfo","ServiceName","ServiceNameAR","GetServiceInfo","FetchOfferSupportedServices","FetchModels","handleFilteredModels","fModels","Slug","toJSON","updateDateService","updateCarTypeService","BranchesInfo","headingTitle","BranchInfoCard","googleMapPoints","useMemo","CouponControl","couponCode","reset","onReset","codeValue","setCodeValue","PaymentPlatforms","isFreeze","onPaytabsClick","onSadadClick","isToggle","onPaymentClick","isTamara","paymentType","setPaymentType","CartDetails","shippingTime","shippingUnitTime","subTotal","shippingCost","totalDiscount","totalTax","sumItemTotal","CartPage","branchMethod","locationMethod","currentDeliveryMethod","setcurrentDeliveryMethod","thisConfirmContext","carErrors","setCarErrors","develviryType","setDeleviryType","setShipp","setIsGetCartData","branchesDetails","setBranchesDetails","formatResult","Address","WorkingHoursFormat","Latitude","Longitude","TotalTax","TotalDiscount","SetTotalDiscount","SumItemTotal","SubTotal","currentTotalDiscount","calculateDiscount","RequsetBanner","PaymentMAin","RefrancePayment","CAmount","CID","CCode","InfoLocation","InfoBranch","ByLocation","ByBranch","IsReservation","IsPayment","PaymentAmount","FinalTotal","AmountShipping","SubAmountTotal","TotalTaxAmount","MethodPayment","getUserIpAddress","ipv4","couponDetail","coupon","redirect","CartID","URL_Paytabs","handlePayment","user_id","ValueCitie","ValueBranch","Shipping","Cost","onShowRegistrationPup","UnitTime","CountTime","setShipping","setValueCitie","setValueBranch","Size","SetSize","currentSize","Citey","mSize","currentvalue","CostShipping","TimeDelivary","refrechDateCartItems","handleFetchCountries","setCouponDetail","clearCoupon","setClearCoupont","itemInfo","discountResult","itemType","productModelTypeID","getDiscountValueByType","discountType","discountAmount","discountRate","currentIpv4Info","IPv4","country_code","country_name","countryName","cities","setCities","countries","handleCheckCarsCount","listError","Category","cunrrentvalue","A","CarShippingInfo","_id","applyCoupon","FinanceRange","placeHolder","suffix","firstValue","setValues","valueInput","setValueInput","Lastvalues","setLastValues","RTL","setFinalChangeValue","debounce","justifyContent","flexWrap","margin","flexGrow","rtl","renderTrack","onMouseDown","onTouchStart","getTrackBackground","alignSelf","renderThumb","isDragged","alignItems","FinanceSearch","onBankSelected","onQuantitySearchClick","onActiveMenu","onSelectedProduct","onBudgetChange","onSetBanks","onsetDefaultperiod","selectionBank","STATUS_KEY","setActive","setModel","balance","setPart","monthly","setMonthly","activeMenu","setActiveMenu","banks","setBanks","setGroups","fGroups","setFGroups","setLoadingBanks","subCategoryID","modelSearch","setModelSearch","subCategories","setSubCategories","fSubCategories","setFSubCategories","budget","setBudget","maxFinanceAmount","maxFinancePeriod","lastBatch","quantityRange","setQuantityRange","selectOneBankDefoliate","setSelectOneBankDefoliate","initialBanksData","handleActiveBank","customizedResult","onHandleRefechData","bankSelected","prevState","DefaultFinancePeriod","touchRatio","initialSlide","centeredSlides","bank","media","srcSet","mobileImage","er","filteredValues","BrandId","ProductGroupId","ProductTypeId","FinanceCar","groupColor","onApplay","offerID","hasOffer","offerTitle","FinancePage","handleRefechData","products","setProducts","filteredCarsByBrand","setFilteredCarsByBrand","carBrandFilter","financeOffers","setFinanceOffers","carInfo","setCarInfo","isLoadingVehicles","setLoadingVehicles","financeSettings","setFinanceSettings","setProfitRates","isLoadingSendOrder","setLoadingSendOrder","setSelectionBank","period","mangFees","monthPay","firstPay","lastPay","annualRate","approximateResult","setApproximateResult","custType","cn","fullNameAr","fullNameEn","bankID","income","advancedPayment","monthlyPayment","setDefaultBank","setDefaultperiod","setColors","initialBanner","initialFinanceoffers","initialCustGroups","initalSettings","intialProfitRates","resetControls","carsData","getCarsByBrand","initialProductsByBank","thisBankID","OfferID","brandTitle","productImage","groupTitle","modelTypeTitle","colorGroupID","ColorGroupID","ColorName","colorImage","StartDate","EndDate","TotalDays","lastPayment","handleFilterByActiveMenu","thisActiveMenu","thiscarBrandFilter","instance","filteredData","DatawithFinanc","finalFinaniceTotal","minFirstPayPrice","setMinFirstPayPrice","reCountFinanceSettings","selectedFinancePeriod","currentFirstPayPrice","financeData","ManagementFees","AdvancedPaymentRate","LastPaymentRate","managementFees","financeRate","FinanceRate","firstPayPrice","lastPayPrice","financeAmount","addAmount","managementFeesAmount","mounthBrach","finalAmount","sayHelloFromComp1","Banks","activeBank","PriceListTypeID","handleFilterByBank","dp","handleOnApplay","CustGroupCollectingID","nameAr","newErrors","unspesificErrors","FinancePeriod","isLexus","FinanceDetailPage","financeDetails","setFinanceDetails","initialBranches","financeId","fullResult","BankTermID","bankId","BankID","firstPayment","FirstPayment","monthsCount","MonthsNumber","ModelRange","monthsQuantity","MonthlyQuantity","groupId","GroupID","groupDescription","brandDescription","GroupImage","ManagmentFees","getFullPrice","AwardsSection","awards","award","VisionsSection","visions","vision","CounterSection","counter3","counter1","counterTitle1","counter2","counterTitle2","counterTitle3","AboutPage","setAwards","setVisions","bannerPath","lastTitle","lastDesc","ContactList","onGeo","divHeight","MapBanner","activebranche","geoLocation","setGeoLocation","handleChangeLocation","geo","newLocation","ContactPage","paramSubject","setPage","subName","withRouter","unlisten","listen","entitiesReducer","combineReducers","navReducer","cartReducer","configureStore","reducer","MaintenanceServiceBox","serviceID","maxPrice","onServiceOrder","ServiceHeaderBanner","defaultBanner","bannerDescriptor","hasRedirect","requsetBanner","bannerObject","MaintenanceContext","DropDownInput2","currentOption","MainServicePage","PGroupID","PYear","PSerciveID","maintenanceInfo","setMaintenanceInfo","handleServiceOrder","MainService","setMainService","ServiceOptions","setServiceOptions","Service","setService","lodingService","setLodingService","settings","setSettings","filteredSettings","setFilteredSettings","firstByLink22","setFirstByLink22","ttGroup","PGroupData","setYear","handelSelectBrand","firstByLink","setFirstByLink","firstByLink33","setFirstByLink33","SerciveID","setSerciveID","FetchPrice","main","sub1","sub2","serviceOptions","fetchMainService","setModelCode","fetchSettings","settingResponseCash","currentSettings","setGroupData","currentvModelCode","setVModelCode","setType","setGroup","vModelCode","vYear","fetchService","currentgroupData","ListTreeGroups","listVArray","setinfoPrice","modelC","SID","mc","modelID","image1Path","image2Path","image3Path","Level","SubService2ID","ServiceFeatureList","SubMainServicePage","SubService","setSubService","MainInfo","setMainInfo","Special","setSpecial","IDMain","fetchSubService","fetchMainInfo","Sp","SubServicePage","SubID","SubInfo","setSubInfo","fetchSubnfo","ServicePage","ServiceReservation","PVIN","PServiceID","resOrderID","setResOrderID","VINDetails","setVINDetails","infoPrice","orderReservation","setOrderReservation","FetchOrderReservation","MaintenanceOrderID","GetVINDetails","CarGroup","PBrandID","ttmodelType","threeDaysFromNow","DateIn","CustNameAr","CustNameEn","Mobile","FetchInfoService","maintenanceObj","setMaintenanceObj","Defult","setDefult","first","setServiceID","firstFetchPrice","g","showDisabledMonthNavigation","OrderID","CustID","s","OrderStatusID","xmlnsXlink","xmlnsSvgjs","transform","ServiceReservationByID","codephone","EvaluationType","countOptions","click","mandatory","defultActive","activeItem","setActiveItem","ProtectionAndShading","PUser","paramGUID","setSadadInfo","allselectServices","setAllSelectServices","selectService","acticeMenu","setActiceMenu","desAr","desEn","selsub0","setselsub0","isToggleSwitch","setIsToggleSwitch","evaluation_false_0","evaluation_false_1","evaluation_false_2","evaluation_false_3","evaluation_true_0","evaluations","setEvaluations","evaluationOptions","defultValue","paymentStatus","URL","searchParams","orderId","paymentMethodCallback","paymentTypeCallback","StatusPaymentPayTabsSalesOrdersService","StatusPaymentTamaraSalesOrdersService","StatusPaymentSadadSalesOrdersService","allServiceID","setAllServiceID","filterservice","mainNote","hasTintingService","noteTinting","MainWebGroup","listofServices","url_payment","invoiceID","sadadNumber","datasadad","_val","_Srtvice","Mandatory","evalua","prevServices","service","prevServiceIDs","reduce","MaintenancePage","ServicesDataJson","setServiceDataJson","second","getMainUserData","objectservicesJON","setMainServiceID","setSubServiceID","setTypeServiceID","GetVehicales","setSubService1","setSubService2","setselMain","setselsub1","setselsub2","fetchSubService2","MainServic","setMainServic","opiton","selMain","SubService1","setFirestOptionService1","selsub1","SubService2","getFirestOption","setFirestOption","selsub2","setVIN","checkErrors","Vehicales","setVehicales","currentServiceID","component","MainSericePage","carAr","carEn","thisSchema","SubServiceBox","linkTxt","MaintenanceServicePage","CATid","upImage","CAT","setCAT","RequsetCAT","setRCAT","RequsetRCAT","RCAT","contentEn","contentAr","upDescEn","upDescAr","upTitleEn","upTitleAr","RC","BN","bannerEn","bannerAr","MaintenanceServiceDetailPage","ServicId","upDesc","upTitle","desd","iconName","iconStyle","OrderCarPage","setproduct","selectedProduct","selectedModel","showProductSection","setShowProductSection","fColors","setFColors","fProductGroups","productGroups","fProducts","setFProduct","setFModels","supportedColors","setIsLoading","defultMobile","setDefultMobile","schemacn","userTypeList","setUserTypeList","userType","setUserType","cnValue","setCnValue","identityValue","setIdentityValue","getAllUserType","handleFilterModelsByProduct","getAllGroups","getAllBrands","getAllProducts","typeID","selectedTypeID","handleShowVehicleDetails","handleFetchColors","filteredProducts","filteredProductsbyGroupID","uniqueModels","uniqBy","mY","handleSendRequest","result22","result33","basicInfo","userId","custId","Web_UserId","defultColor","filterColors","setCashCarImages","objectColor","ModelTypesEn","Petrol","SeatsNumber","Cylinders","OrderFinancePage","setOfferId","vehicleDetails","setVehicleDetails","setSupportedColors","userData","setUserData","initialVehicle","initialColors","initialTerms","ee","StartModel","EndModel","respone","hoursePower","HorsePower","cylinder","Cylinder","Liter","Seats","handleRequestOrder","getNewUserID","alert","hasAlready","createOrder","statusOrder","createFinancialUser","userInfo","userExisting","FinancialUserID","arr","maxNumber","basicData","subTitleEn","subTitleAr","HexCode","DateInput","MaintenanceOrderPage","selectedBrand","selectedGroup","selectedType","selectedOffer","maintenanceDate","serviceData","setServiceData","locations","setLocations","categoryID","requestBrands","requestProductGroups","requestProductModel","requestProductModelTypes","categoryTitle","serviceTitle","serviceExcerpt","categoryGUID","serviceGUID","serviceContent","ProductTypeID","AdviceTile","HJAdvisesPage","advises","setAdvises","tips","advise","Navlink","handelonClick","UserNav","defaultProfileImage","pageDir","showItems","setShowItems","setUserInfo","names","setNames","imageProfile","setImageProfile","b64toBlob","b64Data","sliceSize","byteCharacters","atob","byteArrays","offset","byteNumbers","charCodeAt","byteArray","Uint8Array","blob","Blob","_temp","intialUserData","userKey","params","settingsResponse","imgeUser","userImage","createObjectURL","deleteAllCookies","cookie","eqPos","UserNotificationPage","notifications","setNotifications","filteredNotification","setFilteredNotification","Filteredcategories","initialNotificationsAsGroup","secretKey","parentItem","childItemSet","childItem","subtract","handleFilterNotification","parentIndex","childIndex","UserHomePage","getUserCars","initialUserOffers","_userID","InputDate","CarID","Icon","IconImage","FetchType","parent","OfferType","UserOfferPage","SectionHeader","no","colorClass","UserVehicle","otherLang","setColor","standardColors","setStandardColors","setSelectedBrand","setSelectedModel","isLoadingForAdd","setIsLoadingForAdd","isLoadingForEdit","setIsLoadingForEdit","private_name","board_No","structure_no","requestUpdateForm","setRequestUpdateForm","vehicleCurrentData","setVehicleCurrentData","newModel","requestFormNewModel","setRequestFormNewModel","schema2","error2","setError2","ar","en","carBoardNo","setCarBoardNo","otherLangBoardNo","setOtherBoardNo","filterModel","brandId","filterModelType","productGroupId","showUpdatePopup","setShowUpdatePopup","handleUpdatePopupStatus","specialResult","fetchVehicleImage","vehicleImage","handleAcceptCarBoardLetters","_numKeys","_key","which","keyCode","_request","_request2","_letters","_enLetters","_arLetters","_keyChar","fromCharCode","handleRemoveCarBoardLetters","_len","_valAsArray","_valAr","_valEn","_valTemp","_valueDeleted","_indexDeleted","_indexENDeleted","_indexARDeleted","_valAsString","handleSetStringWithSpaces","chars","numbers","char","letters","englishLetters","deColor","_brand","_group","_modelData","_model","productTypeId","carId","_year","modelId","ModelID","boardNoEn","boardNoAr","structureno","alias","colorCode","Carcolor","NewModelType","submitUpdateRequest","currentValue","Profile","fileInputRef","setShowResetPasswordBox","acceptPasswordStatus","setAcceptPasswordStatus","genderList","setGenderList","setSelectedGender","setReadOnly","editableStatus","setEditableStatus","isLoading2","setIsLoading2","genders","city","defaultGeoLocation","setDefaultGeoLocation","cityID","countryID","personalDataRequest","setPersonalDataRequest","schemaPassword","newPassword","changePhoneNumber","setChangePhoneNumber","changeEmail","setChangeEmail","oldPassword","requestChangePassword","setRequestChangePassword","userHasNoPassword","setUserHasNoPassword","passwordError","setPasswordError","personalPhoneNumber","setPersonalPhoneNumber","schemaPhoneNumber","phoneError","setPhoneError","personalContactDataRequest","setPersonalContactDataRequest","custGroupID","cnImage","personalDocumentDataRequest","setPersonalDocumentDataRequest","schemaDocument","errorDocument","setErrorDocument","personalEmailDataRequest","setPersonalEmailDataRequest","schemaEmail","emailError","setEmailError","setPersonalIdentityDataRequest","showIdentityImage","setShowIdentityImage","freazeType","defaultIdentityType","setDefaultIdentityType","schemaSection1","intialIdentityTypes","intialUserContactData","userGender","tradeNo","cResult","ccResult","_userGeo","finalValue","tradeNoImage","fileURL","handleChangeIdentityImage","handleChangeCRImage","isPasswordMatched","isMatched","handleChangePassword","handleChangePhoneNumber","handleChangeEmail","handleChangeIdentityType","messageError","jsonRequest","isFound","isExisting","defaultStatus","getCorrectIdentitySection","ProtectedRoute","Component","restOfProps","isAuthenticated","NotFoundPage_404","VehicleDetails","carBrand","carNameTitle","carModelTitle","isHybrid","structureNo","plateNo","createdInput","showValues","carImage","userCarName","industryYear","preIconPath","carInnerDetails","UserVehiclesDetailsPage","fetchType","setPrimaryCategory","setSubPrimaryCategory","setLastSubPrimaryCategory","setAllParts","setFAllParts","getIsExpireDate","date1","date2","getVehicleDetails","initalCategories","vinNo","ReservationFetch","PreviousMaintenance","Reservation","setReservation","setLoadingReservation","setFetchedReservation","Body3","isLoadingContent","setLoadingContent","ReservationFilterData","setReservationFilterData","setIsActive","filterReservation","newData","Maintenance","setMaintenance","setFetchedMaintenance","setLoadingMaintenance","funSiteGetVehicleDetails","modelTrans","_vehicle","modelName","UserCarName","intialAllPartsByGroup","initialOffers","primaryCategoriesBody","subPrimaryCategoriesBody","lastSubPrimaryCategoriesBody","primaryCategoriesRequest","subPrimaryCategoriesRequest","lastSubPrimaryCategoriesRequest","category1","category2","category3","formatDateTime","dateNow","timeNow","ReceptionID","Ordertime","toFixed","CompleteDate","MyBookings","setLoadingUserCars","myCars","setMyCars","activeId","setActiveId","curentCarId","setCurentCarId","currentCar","onSliderHomePageChange","activeIndex","cachReservation","setCachReservation","cr","OwnOrderContext","OwnOrderHistory","historyTitle","historySubTitle","statusOptions","filterStatusOption","filterHistory","setFilterHistory","handleOnItemChangeStatus","CreatedAt","Delivery","TStatus","deliveryType","handleChangeParentState","showDetailsBox","itemActive","showHistoryBox","deliveryMethod","SiteDilveryID","DilveryAr","DilveryEn","siteAr","siteEn","statusAr","parentBox","statusID","orderCode","orderStatusText","orderDate","orderStatusCode","maxVisualElements","locationText","onItemClick","OwnHistoryItem","visualElements","setFile","CartsImages","fileRef","OwnOrderDetails","orderNumber","deliveryLocation","amount","shippingPrice","orderHistory","Createdat","OwnVehicleOrders","Partimg","TypeCarAr","TypeCarEn","colorsAr","colorsEn","SalePrice","OwnSpareOrders","onEvaluate","PartAr","Parten","PartPrice","OwnSDCOrders","SDCimg","SDCAr","SDCen","SDCPrice","OwnPGTOrders","PGTimg","PGTAr","PGTen","PGTPrice","OwnServiceOrders","Cprice","UserOrdersPage","setParnetBox","Carts","setCarts","fCarts","setFCarts","setUserID","CartsTrans","setCartTrans","CartsTrac","setCartTrac","CartStatus","setCartStatus","evaluatePopupShow","setEvaluatePopupShow","setcartInfo","sparePartProductID","setSparePartProductID","comment","evaluation","SetEvaluation","fetchMycartTrans","fetchMycartTracing","currentState","handleWindowResize","handleEvaluatePopup","fetchMycart","_fValues","statusId","CartItemsTypeID","PhoneMenu","handleSwicth","handleActiveItem","FavoriteItem","productTitle","productValue","subProductValue","FavoritePage","favoriteGroups","setFavoriteGroups","freshFavoriteGroups","setFreshFavoriteGroups","urlBilder","urlValue","tempData","tempData2","parentArray","parentValue","innerItems","handleDeleteItem","UserPage","ContentLoading","RedirectPage","OriginalUrl","setOriginalUrl","Expired","OfferByTypePage","EpartsGroupPage","GroupId","RequsetsetEngineGroups","TestEparts","minProp","maxProp","defaultValueProp","minDistanceProp","returnProp","setStart","setEnd","ReactSlider","thumbClassName","trackClassName","ariaLabel","ariaValuetext","valueNow","pearling","minDistance","currentStart","currentEnd","PaginationComponent","activePageProp","itemsCountPerPageProp","totalItemsCountProp","pageRangeDisplayedProp","pageReturnProp","pageNumber","firstPageText","lastPageText","nextPageText","prevPageText","CustomAlert","cancelTokenSource","titleProp","textProp","ResulteSearch","setAllCategories","setCat","subCat","setSubCat","subSubCat","setSubSubCat","countRow","setCountRow","isStock","setIsStock","engineGroupsObject","setEngineGroupsObject","has","funcGetAllSpareParts","_isStock","setSections","dataRing","valueRing","setValueRing","filterMain","setFilterMain","itemsCountPer","setClearFilter","nameCat","setNameCat","getResultProductID","ProductsWithDetails","setItems","CountRow","getResultAll","isPagination","isTextNull","freeText","handleBuildCategoriesSections","sectionsList","activ","SearchItems","setSearchItemsPagination","checkedCateegores","setCheckedCateegores","OnCheckCate","prevCheckedBrands","listValues","getEPartsWithStock","Groups","GroupsSup","GroupsSup2","requestProductsWithDetails","AllFun","endIndex","pagValue","clearFilters","clearFiltersFunction","getResultVehicleByCat","getNameCat","reqCat","reqSubCat","reqSubSubCat","catlistvalues","cancel","CancelToken","cancelToken","token","isCancel","EngineGroupsObject","linkListObject","thisEngineGroupsSup","ServiceBoxSlid","objCat","resultNameCat","CampaignOrderPage","arName","enName","compaignNo","featureNo","userNo","compaignDetail","setCompaignDetails","controlDisabled","setControlDisabled","orderType","setOrderType","descriptionTitle","photo","compaignFeatures","setCompaignFeatures","sendOrderRequest","existedUser","sendCreateUserAccount","getUserDetails","Error","goBack","compaignId","packageID","compaignInfo","compaignID","compaignFearuresObject","CompaignPart","salseprice","objectFit","CompaignDetails","DiscountId","setDiscountId","pageTitel","setpageTitel","selectedPackage","setSelectedPackage","DisWD","setDisWD","CWD","setCWD","Compaign","RequsetCompaignId","BodyCompaignId","RequsetDetails","RequsetDetailsDis","setIcon","descEn","descAr","FeatureDetails","Compare","headerItems","bodyItems","onAdd","maxHeaderItems","maxItems","CompareHeaderRow","postion","CompareHeaderItem","CompareBody","properityName","properityValues","CompareBodyRow","ComparePage","setSelectedProduct","selectedValues","setSelectedValues","currentSelected","OfferOrderPage","_userData","PurchaseConfirm","onClose","ColorsModel","popupRef","productTypes","setProductTypes","defaultProductModel","setDefaultProductModel","contentLoading","setContentLoading","brandType","setBrandType","handleFetchModels","thisType","setPriceColor","setCart","Id","modelTypeDescEn","modelTypeDesc","PriceColor","onLine","setOnline","filterPriceoffColor","selectdM","TaxAmount","setDefault","_models","funName","ModelDescription","Registrationpup","displaypup","handlePopupStatusChange","SearchHeader","resultNumber","onSearch","speedTyping","delayTyping","hintsTyping","onSupportFilter","hasFilters","textTyping","setTextTyping","textPostion","setTextPosition","textSectionInArray","setTextSectionInArray","showPlasceHolder","setShowPlaceHolder","hints","delayTimer","sort","showOptions","setFilterOptions","maintenance","campaign","eparts","setShowOptions","startTyping","speed","delay","hintValue","charAt","newValue","resetTyping","activeElement","handleFocus","handleDragOption","sortedUniq","handleOnChange","onColor","onHandleColor","handleDiameter","uncheckedIcon","checkedIcon","activeBoxShadow","SearchResultItem","extra","setRedirect","redirectPath","SearchResultContainer","Search","searchText","setSearchText","searchResults","setSearchResults","supportedFilters","setSupportedFilters","groupsResult","setGroupResult","tempGroupValues","handleOnSearchClick","element","SectionType","ExtraData","CustomerServices","whatsupNumber","phonCallNumber","bottom","PurchaseAlertPage","PrivacyPage","baseInfo","setBaseInfo","Agreement","intro","explaination","AgreementPage","Agreements","setAgreements","agreements","ProtectionAndShadingAgreementPage","HeaderLandengPage","Stype","setStype","pageID","dynamicMenu","setDynamicMenu","isTransferlink","transferlink","LandengPage","dynamicPages","setDynamicPages","dynamicPagesSections","setDynamicPagesSections","sortingSections","setSortingSections","setDynamicCounters","Body2","sec","pageFun","RequsetDynamicCounters","counterBackImage","counterBackOpecity","counterTitelAr","counterTitel","counterDescAr","counterDesc","viewMainBanner","MainBannerTitelAr","MainBannerTitel","MainBannerSubTitelAr","MainBannerSubTitel","MainBannerBtnTextAr","MainBannerBtnText","MainBannerDescAr","MainBannerDesc","MainBannerBackOpicity","MainBannerBackImageAr","MainBannerBackImage","viewMainBannerSocialIcons","viewGreatMessage","GreatMessageBackIcon","GreatMessageBackImage","viewGreatMessageTitelAr","viewGreatMessageTitel","viewGreatMessageDescAr","viewGreatMessageDesc","viewTestimonials","TestimonialsTitelAr","TestimonialsTitel","TestimonialsSubTitelAr","TestimonialsSubTitel","viewWhyChooseUs","WhyChooseUsTitelAr","WhyChooseUsTitel","WhyChooseUsSubTitelAr","WhyChooseUsSubTitel","viewTopicSection","TopicTitelAr","TopicTitel","TopicDescAr","TopicDesc","TopicImageAr","TopicImage","viewMap","viewMainSliders","RequsetMainSliders","viewOurOffers","viewCounter","RequsetSBanner","viewWhatWeServices","RequsetOurServices","viewGallery","RequsetDynamicGallery","OurServices","setOurServices","WeServicesTitelAr","WeServicesTitel","setMainSliders","DynamicGallery","setDynamicGallery","viewMenu","keyName","keyIndex","viewSearchCar","SearchCarTitelAr","SearchCarTitel","CarOverviewPage","popGalleryRef","setLoadingVehicleOffers","showPanel","setShowPanel","activeFilterMenu","setActiveFilterMenu","scrollSnackUp","setScrollSnackUp","vehicleFeatures","fieldName","extraDetails","setExtraDetails","suggestedVehicles","setSuggestedVehicles","setLoadingCars","setJsonColors","DateTimeDelevry","setVehicleOffers","selectcity","setSelectcity","selectBranch","setSelectBranch","setCartData","fetchFinanceSettings","last","totalPrice","finance","setFinance","minBank","setSelectedFinancePeriod","setisToyota","setisLexus","GetSuggestedVehicles","deliveryTimeAccounting","curvehicle","bc","branche","setFilterBranches","dataShippingInfo","setDataShippingInfo","carCategories","newData2","handleOnActive","menuValue","ShippingCities","brancheCities","setBrancheCities","handleFetchBrancheCities","valuesC","filterBranches","showPanelInfo","currentIndexPanel","allImages","animation","shortDescription","shortDescriptionEn","bgNone","Branche","Enable","onTouchEnd","App","confirmObj","setConfirmObj","contactUsData","setContactUsData","useLayoutEffect","initialCustomerServicesData","whatsApp","WhatsAppPhoneNumber","CallPhoneNumber","StartActiveTime","EndActiveTime","IsOnline","visible","setVisible","scrolled","documentElement","scrollTop","showRegistrationPup","setShowRegistrationPup","paths","baseColor","highlightColor","store","some","newestOnTop","pauseOnFocusLoss","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","Backend","LanguageDetector","initReactI18next","whitelist","nonExplicitWhitelist","supportedLngs","fallbackLng","detection","order","debug","interpolation","escapeValue","pluralSeparator","contextSeparator","initImmediate","ReactDOM","basename","i18next","i18nextLng","fallback","StrictMode"],"mappings":"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","file":"static/js/main.d5b1426e.chunk.js","sourcesContent":["import {Link} from \"react-router-dom\";\r\n\r\nexport function NavCarCard({img, name, link,Year, ...prop}) {\r\n return (\r\n \r\n
\r\n {name}\r\n {name} e.target.style.display = 'none'}/>\r\n
\r\n \r\n );\r\n}","const Arabic_Patter = /[\\u0600-\\u06FF]/i;\r\n// this function is used to combine two slugs in url\r\nexport const slugCombine = (SlugPart1,SlugPart2)=>{\r\n return (SlugPart1 + ',' + SlugPart2??'');\r\n};\r\n//this function is used to get the specific slug\r\nexport const getCleanSlug = ()=>{\r\n const url = decodeURI(window.location.href);\r\n const urlLanguage = localStorage.getItem(\"i18nextLng\"); \r\n const urlLastSegment = url.substring(url.lastIndexOf('/') + 1).split(',');\r\n let arIndex = -1 ,enIndex = -1;\r\n urlLastSegment.forEach((item,index)=>{\r\n if(Arabic_Patter.test(item)){\r\n arIndex = index;\r\n } \r\n });\r\n enIndex = arIndex == 0 ? 1 : 0;\r\n if(urlLanguage.toLowerCase() == 'ar' && urlLastSegment[arIndex]){\r\n return urlLastSegment[arIndex];\r\n }\r\n return urlLastSegment[enIndex];\r\n}\r\n// this function is used to get the correct slug based on the language\r\nexport const slugSplitter = (sugments)=>{\r\nconst slugs = sugments.split(',');\r\nconst urlLanguage = localStorage.getItem(\"i18nextLng\"); \r\nlet arIndex = -1 ,enIndex = -1;\r\nslugs.forEach((item,index)=>{\r\n if(Arabic_Patter.test(item)){\r\n arIndex = index;\r\n } \r\n });\r\n enIndex = arIndex == 0 ? 1 : 0;\r\n if(urlLanguage.toLowerCase() == 'ar'){\r\n return slugs[arIndex];\r\n }\r\n return slugs[enIndex];\r\n}\r\n\r\n\r\n","import { NavCarCard } from \"./components/navCarCard\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport axios from \"axios\";\r\nimport Skeleton from 'react-loading-skeleton'\r\nimport { slugCombine } from '../../../utils/slugManager';\r\nimport { useTranslation } from \"react-i18next\";\r\nimport config from \"../../../configuration/config.json\";\r\nexport function NavCar({ ...prop }) {\r\n const { t: trans } = useTranslation([\"inputs\", \"heading\", \"vehicales\", \"common\"]);\r\n\r\n const [brands, setBrands] = useState([]);\r\n const [vehicles, setVehicles] = useState([]);\r\n const [filteredVehicles, setFilteredVehicles] = useState(vehicles);\r\n\r\n const [filters, setFilters] = useState([\"\"]);\r\n const [CarCategories, setCarCategories] = useState([]);\r\n const [brandFilter, setBrandFilter] = useState(null);\r\n const [typeFilter, setTypeFilter] = useState(trans(\"inputs:all\"));\r\n const [otherBrand, setOtherBrand] = useState(null);\r\n\r\n function _setFilters(filteredBrand) {\r\n const fif = brands?.filter((brand) => {\r\n return (\r\n brand.brand === filteredBrand\r\n )\r\n });\r\n\r\n //سيدان - كوبيه - دفع رباعي - عائلية - تجارية\r\n const filterHasVehicals = fif[0]?.filters?.filter(f => (vehicles?.filter(c => (c?.brand?.toLowerCase() == filteredBrand?.toLowerCase() && c?.category == f?.category)))?.length > 0);\r\n\r\n\r\n const brandCategories = [\r\n { brand: filteredBrand, category: trans(\"inputs:all\") }, ...filterHasVehicals\r\n ]\r\n setFilters(brandCategories);\r\n setTypeFilter(trans(\"inputs:all\"))\r\n }\r\n\r\n\r\n useEffect(() => {\r\n if(vehicles?.length> 0)\r\n _filterVehicles(trans(\"common:toyota\"), trans(\"inputs:all\"));\r\n\r\n }, [vehicles])\r\n\r\n function _filterVehicles(brand, type) {\r\n let filterData;\r\n if (brand != null) {\r\n filterData = vehicles?.filter((car) => {\r\n return car.brand.toLowerCase() === brand.toLowerCase() && (car.category === type || type === trans(\"inputs:all\"));\r\n });\r\n }\r\n else {\r\n filterData = vehicles;\r\n }\r\n setFilteredVehicles(filterData);\r\n }\r\n\r\n function fBrandFilter(brand, otherBrand) {\r\n\r\n \r\n setBrandFilter(brand);\r\n _setFilters(brand);\r\n setOtherBrand(otherBrand);\r\n _filterVehicles(brand, trans(\"inputs:all\"))\r\n }\r\n\r\n function fTypeFilter(type) {\r\n\r\n \r\n setTypeFilter(type);\r\n _filterVehicles(brandFilter, type)\r\n }\r\n\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n\r\n useEffect(async () => {\r\n try {\r\n\r\n\r\n\r\n ////////////////////////////////////////////////////////\r\n try {\r\n\r\n if (\"caches\" in window) {\r\n var curl2 = \"brands-\" + lang;\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"HJWeb\");\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n curl2\r\n );\r\n let data = await cachedResponse?.json();\r\n\r\n if (data && data?.brands && data?.brands?.length > 0)\r\n setBrands(data.brands);\r\n\r\n }\r\n\r\n } catch (error) {\r\n }\r\n\r\n const res = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/brands/brands\",\r\n method: \"get\",\r\n\r\n });\r\n setBrands(res.data.brands);\r\n const data22 = new Response(JSON.stringify(res.data));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"HJWeb\").then((cache) => {\r\n cache.put(\"brands-\" + lang, data22);\r\n\r\n });\r\n }\r\n\r\n\r\n try {\r\n\r\n try {\r\n\r\n if (\"caches\" in window) {\r\n var curl = \"site_FetchCarCategories\";\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"HJWeb\");\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n curl\r\n );\r\n let data = await cachedResponse?.json();\r\n setCarCategories(data)\r\n\r\n }\r\n\r\n } catch (error) {\r\n }\r\n\r\n\r\n const response = await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"site_FetchCarCategories\"\r\n }\r\n );\r\n if (response.status == 200) {\r\n\r\n setCarCategories(response.data)\r\n const data44 = new Response(JSON.stringify(response.data));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"HJWeb\").then((cache) => {\r\n cache.put(\"site_FetchCarCategories\", data44);\r\n\r\n });\r\n }\r\n\r\n\r\n }\r\n } catch (error) {\r\n console.log('error in fetching the countries of SAU', error);\r\n }\r\n\r\n\r\n try {\r\n\r\n if (\"caches\" in window) {\r\n var curl = \"vehiclesHomeMenu-\" + lang;\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"HJWeb\");\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n curl\r\n );\r\n let data = await cachedResponse?.json();\r\n if (data && data?.vehicles && data?.vehicles?.length > 0)\r\n setVehicles(data?.vehicles)\r\n\r\n }\r\n\r\n } catch (error) {\r\n }\r\n console.log(lang);\r\n const response = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/home/vehiclesHomeMenu\",\r\n method: \"get\",\r\n });\r\n\r\n response?.data?.vehicles?.map((item, index) => {\r\n item[\"id\"] = index\r\n\r\n\r\n })\r\n\r\n setVehicles(response.data.vehicles)\r\n\r\n\r\n\r\n const data = new Response(JSON.stringify(response.data));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"HJWeb\").then((cache) => {\r\n cache.put(\"vehiclesHomeMenu-\" + lang, data);\r\n\r\n });\r\n }\r\n\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (brands?.length > 0 && CarCategories?.length > 0 && vehicles?.length > 0) {\r\n _setFilters(brands[0].brand);\r\n setBrandFilter(brands[0].brand);\r\n setOtherBrand(brands[0].otherBrand);\r\n }\r\n }, [brands,CarCategories,vehicles])\r\n return (\r\n
\r\n
\r\n
\r\n {\r\n brands ?\r\n brands?.map((brand, index) => {\r\n\r\n return (\r\n fBrandFilter(brand.brand, brand.otherBrand)}\r\n className={\"cursor-pointer item \" + (brandFilter === brand.brand && \"active\")}>\r\n e.target.style.display = 'none'} />\r\n {brand.brand}\r\n
\r\n );\r\n })\r\n :\r\n\r\n <>\r\n \r\n \r\n\r\n \r\n }\r\n\r\n
\r\n\r\n {\r\n filteredVehicles && filteredVehicles.length > 0 ?\r\n\r\n\r\n
\r\n\r\n
\r\n\r\n fTypeFilter(trans(\"inputs:all\"))}\r\n className={(typeFilter == trans(\"inputs:all\") ? \"active\" : \"\")}>\r\n {trans(\"inputs:all\")}\r\n
\r\n\r\n {\r\n\r\n\r\n CarCategories?.map((item, index) => {\r\n\r\n if (item && item[lang == \"ar\" ? \"NameAr\" : \"NameEn\"] && filters.filter(a => a.category == item[lang == \"ar\" ? \"NameAr\" : \"NameEn\"])?.length > 0) {\r\n return (\r\n fTypeFilter(item[lang == \"ar\" ? \"NameAr\" : \"NameEn\"])}\r\n className={(typeFilter === item[lang == \"ar\" ? \"NameAr\" : \"NameEn\"] ? \"active\" : \"\")}>\r\n {item[lang == \"ar\" ? \"NameAr\" : \"NameEn\"]}\r\n
);\r\n } else { return null }\r\n })\r\n\r\n\r\n }\r\n
\r\n
\r\n {\r\n filteredVehicles?.map((vehicle, index) => {\r\n\r\n return (\r\n \r\n );\r\n })\r\n }\r\n\r\n
\r\n\r\n
\r\n
\r\n \r\n {trans(\"vehicales:show_more\")}\r\n \r\n
\r\n
\r\n\r\n \r\n :\r\n <>\r\n \r\n\r\n \r\n\r\n }\r\n\r\n \r\n \r\n );\r\n}","import { Link } from \"react-router-dom\";\r\nimport { useTranslation } from \"react-i18next\";\r\nexport function NavMaintenanceCard({ id, description, price, image, days }) {\r\n const { t: trans } = useTranslation([\"common\", \"navbar\"]);\r\n return (\r\n \r\n
\r\n
{days}
\r\n
{trans(\"navbar:day\")}
\r\n
\r\n
\r\n \"service\"\r\n\r\n
\r\n

{description}

\r\n {\r\n price &&

\r\n {\r\n trans(\"navbar:offer_start\") + price + trans(\"common:rial\")\r\n }\r\n

\r\n }\r\n
\r\n \r\n );\r\n}","import axios from \"axios\";\r\nimport { useEffect, useState } from \"react\";\r\nimport _ from 'lodash';\r\nimport { useTranslation } from \"react-i18next\";\r\nimport config from '../../../../configuration/config.json';\r\nimport Skeleton from 'react-loading-skeleton'\r\nexport function NavWorkHours({ department = 12 }) {\r\n const { t: trans } = useTranslation([\"navbar\", \"model\"]);\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const languageDir = 'language-' + lang;\r\n //-------------------------------------------------\r\n const [workingHours, setWorkingHours] = useState(null);\r\n const [activeDay, setActiveDay] = useState({});\r\n\r\n const [holidaysList, setHolidaysList] = useState(null);\r\n const [weekDatesList, setWeekDatesList] = useState([]);\r\n //--------------------------------------------------\r\n const days = [\r\n { day: 6, orginal: 'Saturday', name: trans('navbar:sat') },\r\n { day: 0, orginal: 'Sunday', name: trans('navbar:sun') },\r\n { day: 1, orginal: 'Monday', name: trans('navbar:mon') },\r\n { day: 2, orginal: 'Tuesday', name: trans('navbar:tues') },\r\n { day: 3, orginal: 'Wednesday', name: trans('navbar:wed') },\r\n { day: 4, orginal: 'Thursday', name: trans('navbar:thur') },\r\n { day: 5, orginal: 'Friday', name: trans('navbar:fri') }\r\n ];\r\n // -----------------------------------------------\r\n\r\n const getHolidays = async () => {\r\n const body = {\r\n name: \"fun_GetHolidays\",\r\n values: {\r\n lang: lang\r\n }\r\n };\r\n\r\n console.log(\"fun_GetHolidays:body\", body);\r\n\r\n try {\r\n await axios.request({\r\n url: config.baseURL + 'func',\r\n data: body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n console.info(response.data);\r\n if (response.data.length > 0) {\r\n setHolidaysList(response.data);\r\n }\r\n })\r\n .catch(function (error) {\r\n \r\n setHolidaysList([]);\r\n throw error;\r\n });\r\n\r\n } catch (ex) {\r\n \r\n setHolidaysList([]);\r\n }\r\n };\r\n\r\n // const getWeekDates = () => {\r\n // const now = new Date();\r\n // const dayOfWeek = now.getDay(); // getDay() returns the day of the week (0-6) with Sunday as 0\r\n // const startOfWeek = new Date(now);\r\n //\r\n // startOfWeek.setDate(now.getDate() - dayOfWeek); // set to Sunday (start of the week)\r\n //\r\n // const weekDates = [];\r\n // for (let i = 0; i < 7; i++) {\r\n // const date = new Date(startOfWeek);\r\n // date.setDate(startOfWeek.getDate() + i);\r\n // weekDates.push({\r\n // dayNameAr: date.toLocaleDateString('ar-SA', {weekday: 'long'}),\r\n // dayNameEn: date.toLocaleDateString('en-US', {weekday: 'long'}),\r\n // date: date.toLocaleDateString('en-US'),\r\n // dya: date.getDate(),\r\n // month: date.getMonth(),\r\n //\r\n // });\r\n // }\r\n // console.info(\"weekDates: list: \", weekDates);\r\n // \r\n // if(weekDates.length > 0){\r\n // setWeekDatesList(weekDates);\r\n // }\r\n // // return weekDates;\r\n // };\r\n\r\n const getWeekDates = () => {\r\n const now = new Date();\r\n const dayOfWeek = now.getDay(); // getDay() returns the day of the week (0-6) with Sunday as 0\r\n // Calculate the difference from Saturday\r\n const startOfWeek = new Date(now);\r\n const daysSinceSaturday = (dayOfWeek + 1) % 7;\r\n startOfWeek.setDate(now.getDate() - daysSinceSaturday); // set to Saturday (start of the week)\r\n\r\n const weekDates = [];\r\n for (let i = 0; i < 7; i++) {\r\n const date = new Date(startOfWeek);\r\n date.setDate(startOfWeek.getDate() + i);\r\n weekDates.push({\r\n dayNameAr: date.toLocaleDateString('ar-SA', { weekday: 'long' }),\r\n dayNameEn: date.toLocaleDateString('en-US', { weekday: 'long' }),\r\n date: date.toLocaleDateString('en-US'),\r\n dya: date.getDate(),\r\n get_month: date.getMonth() + 1,\r\n });\r\n }\r\n \r\n\r\n if (weekDates.length > 0) {\r\n setWeekDatesList(weekDates);\r\n }\r\n // return weekDates;\r\n };\r\n\r\n //-------------------------------------------------\r\n // useEffect(() => {\r\n // intialOperationalTimeOfDuty(department);\r\n // }, []);\r\n // to intialize operational department time\r\n useEffect(() => {\r\n getWeekDates();\r\n\r\n\r\n setTimeout(async () => {\r\n await getHolidays();\r\n }, 20);\r\n }, []);\r\n\r\n useEffect(() => {\r\n\r\n let _holidaysList;\r\n\r\n\r\n\r\n if (holidaysList != null) {\r\n\r\n intialOperationalTimeOfDuty(department);\r\n }\r\n\r\n const now = new Date();\r\n const dayNumber = now.getDate();\r\n const dayName = now.toLocaleDateString('en-US', { weekday: 'long' });\r\n const currentDate = now.toLocaleDateString('en-US');\r\n\r\n\r\n }, [holidaysList]);\r\n\r\n // to intialize operational department time\r\n const intialOperationalTimeOfDuty = (id) => {\r\n let calenders = [];\r\n axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"name\": \"SiteGetCalenderDetails\",\r\n \"values\": {\r\n \"CalenderType\": id\r\n }\r\n }\r\n ).then(response => {\r\n const now = new Date();\r\n // var dayAfterFind;\r\n\r\n const responseData = response.data;\r\n\r\n const firstPeroid = responseData.find((item) => {\r\n return String(item.Type).toLowerCase() == 'morning'\r\n });\r\n const { StartTime: startOnetPeriodTime, EndTime: endOnePeriodTime } = firstPeroid;\r\n\r\n //-------------------------------------------------------------------------------\r\n const secondPeriod = responseData.find((item) => {\r\n return String(item.Type).toLowerCase() == 'afternoon'\r\n }) ?? {};\r\n\r\n const { StartTime: startPeriodTime, EndTime: endPeriodTime } = secondPeriod;\r\n\r\n delete firstPeroid.StartTime;\r\n delete firstPeroid.EndTime;\r\n delete firstPeroid.Type;\r\n\r\n const items = Object.keys(firstPeroid);\r\n\r\n for (let item of items) {\r\n\r\n const _day = days.find(day => {\r\n return day.orginal == item\r\n });\r\n\r\n if (firstPeroid[`${item}`]) {\r\n\r\n \r\n\r\n var dayAfterFind =\r\n weekDatesList.find(itemDay => (itemDay.dayNameEn.toLowerCase() == _day.orginal.toLowerCase()));\r\n\r\n \r\n\r\n var hasHoliday =\r\n holidaysList.find(itemHoliday => itemHoliday.Day == dayAfterFind.dya && itemHoliday.Month == dayAfterFind.get_month);\r\n\r\n\r\n if (hasHoliday != null) {\r\n\r\n calenders.push({\r\n dayOfWeek: _day.name,\r\n formatValue: hasHoliday.Description == null ? trans(\"navbar:no_work\") : hasHoliday.Description,\r\n day: _day.day\r\n });\r\n\r\n\r\n } else {\r\n calenders.push({\r\n dayOfWeek: _day.name,\r\n formatValue: getTimeFormat(startOnetPeriodTime) + ' - ' +\r\n getTimeFormat(endOnePeriodTime) + (startPeriodTime ? ' & ' +\r\n getTimeFormat(startPeriodTime + ' - ' + getTimeFormat(endPeriodTime)) : ''),\r\n day: _day.day\r\n });\r\n }\r\n\r\n } else {\r\n\r\n calenders.push({\r\n dayOfWeek: _day.name,\r\n formatValue: trans(\"navbar:no_work\"),\r\n day: _day.day\r\n });\r\n }\r\n }\r\n setWorkingHours(calenders);\r\n }).catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n const getTimeFormat = (value) => {\r\n if (value) {\r\n if (lang == 'ar') {\r\n return String(value).includes('AM') ? String(value).replace('AM', 'صباحاً') : String(value).includes('PM') ?\r\n String(value).replace('PM', 'مساءً') : value;\r\n }\r\n }\r\n return value ?? '';\r\n };\r\n return (\r\n\r\n\r\n\r\n workingHours != null ?\r\n\r\n \r\n\r\n :\r\n <>\r\n \r\n\r\n \r\n\r\n\r\n\r\n\r\n\r\n );\r\n}","import { NavMaintenanceCard } from \"./components/navMaintenanceCard\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { NavWorkHours } from \"./components/navWorkHours\";\r\nimport { useEffect, useState } from \"react\";\r\nimport config from '../../../configuration/config.json';\r\nimport axios from \"axios\";\r\nimport { slice } from 'lodash';\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { slugCombine } from '../../../utils/slugManager';\r\nimport Skeleton from 'react-loading-skeleton'\r\nexport function NavMaintenance({ ...prop }) {\r\n const { t: trans } = useTranslation([\"common\", \"form\", \"model\", \"navbar\", \"info\"]);\r\n //----------------------------------------------------------\r\n const [maintenanceOffers, setMaintenanceOffers] = useState(null);\r\n const [categories, setCategories] = useState(null);\r\n //-----------------------------------------------------------\r\n useEffect(() => {\r\n intialOffers();\r\n intialCategories();\r\n }, []);\r\n //-----------------------------------------------------------\r\n // to intialize the offers\r\n const intialOffers = () => {\r\n axios.post(\r\n config.baseURL + \"func\",\r\n {\r\n \"Name\": \"SiteFetchMaintenanceOffers\"\r\n }\r\n ).then(response => {\r\n const responseData = response.data.map((e, index) => {\r\n return {\r\n id: e[`${trans(\"navbar:slug\")}`],\r\n otherSlug: e.slugEn,\r\n slug: e.slugAr,\r\n image: e.image,\r\n description: e[`${trans(\"model:name\")}`],\r\n price: e.price,\r\n days: e.Days\r\n }\r\n });\r\n setMaintenanceOffers(responseData);\r\n }\r\n ).catch(error => {\r\n console.log(error);\r\n });\r\n\r\n };\r\n // get the days number between two days\r\n const getDays = (startDate, endDate) => {\r\n const date1 = new Date(startDate);\r\n const date2 = new Date(endDate);\r\n const diffTime = Math.abs(date2 - date1);\r\n const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));\r\n return diffDays;\r\n };\r\n // fetch the list of categories\r\n const intialCategories = () => {\r\n axios.post(\r\n config.baseURL + \"func\",\r\n {\r\n \"Name\": \"site_fetchMainService\",\r\n }\r\n ).then(response => {\r\n const responseData = response.data;\r\n const responseDataFiltered = responseData.map(item => {\r\n return { id: item.MainServiceID, description: item[`${trans(\"model:description\")}`], path: item.path, ...item }\r\n });\r\n const _len = responseDataFiltered?.length;\r\n let _values = responseDataFiltered;\r\n if (_len > 5) {\r\n _values = slice(responseDataFiltered, 0, 5)\r\n }\r\n setCategories(_values);\r\n }).catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n //-------------------------------------------------------------\r\n return (\r\n
\r\n
\r\n
\r\n

\r\n {\r\n trans(\"navbar:man_offer\")\r\n }\r\n

\r\n\r\n {\r\n maintenanceOffers != null ?\r\n\r\n
\r\n {\r\n\r\n\r\n (maintenanceOffers != null && maintenanceOffers.length > 0) ? maintenanceOffers?.map((offer, index) => {\r\n return \r\n }) : (
\r\n \"hassan\r\n

{trans(\"info:no_offer\")}

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

\r\n {\r\n trans(\"navbar:man_services\")\r\n }\r\n

\r\n\r\n {\r\n\r\n categories != null ?\r\n\r\n
    \r\n {\r\n categories?.map((cat, index) => {\r\n return (\r\n
  • \r\n {cat.description}\r\n
  • \r\n )\r\n })\r\n }\r\n {\r\n categories?.length > 4 &&
  • {trans(\"navbar:show_more\") + '...'}
  • \r\n }\r\n
\r\n\r\n :\r\n <>\r\n \r\n\r\n \r\n\r\n\r\n }\r\n\r\n
\r\n
\r\n

\r\n {\r\n trans(\"navbar:work_hours\")\r\n }\r\n

\r\n \r\n
\r\n
\r\n
\r\n );\r\n}","import React, { useState, useRef, useEffect} from 'react'\r\nimport { useTranslation } from 'react-i18next';\r\n\r\n\r\nexport function CountDown({Total,start=0,end=0 , showSeconds = true}) {\r\n const { t: trans } = useTranslation([\"info\"]);\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const languageDir = \"language-\" + lang;\r\n // We need ref in this, because we are dealing\r\n // with JS setInterval to keep track of it and\r\n // stop it when needed\r\n const Ref = useRef(null);\r\n\r\n // The state for our timer\r\n const [timer, setTimer] = useState('00:00:00');\r\n\r\n\r\n const getTimeRemaining = (e) => {\r\n const total = Date.parse(e) - Date.parse(new Date());\r\n const seconds = Math.floor((total / 1000) % 60);\r\n const minutes = Math.floor((total / 1000 / 60) % 60);\r\n const hours = Math.floor((total / 1000 / 60 / 60) % 24);\r\n const days = Math.floor((total / 1000 / 60 / 60/24) % 30);\r\n const month = Math.floor((total / 1000 / 60 / 60/24/30) %12);\r\n return {\r\n total,month,days, hours, minutes, seconds\r\n };\r\n }\r\n\r\n\r\n const startTimer = (e) => {\r\n let { total,month,days, hours, minutes, seconds }\r\n = getTimeRemaining(e);\r\n if (total >= 0) {\r\n // update the timer\r\n // check if less than 10 then we need to \r\n // add '0' at the begining of the variable\r\n const countDownFormat =
\r\n {month > 0 && \r\n {month}\r\n \r\n {trans(\"info:month\")}\r\n \r\n\r\n \r\n }\r\n {month > 0 && ':'}\r\n {\r\n days > 0 && \r\n \r\n {days}\r\n \r\n \r\n {trans(\"info:day\")}\r\n \r\n \r\n }\r\n {days > 0 && ':'}\r\n {\r\n hours > 0 && \r\n \r\n {hours}\r\n \r\n \r\n {trans(\"info:hour\")}\r\n \r\n\r\n \r\n }\r\n {hours > 0 && ':'}\r\n {\r\n minutes > 0 && \r\n \r\n {minutes}\r\n \r\n \r\n {trans(\"info:minute\")}\r\n \r\n\r\n \r\n }\r\n :\r\n {\r\n showSeconds && ( \r\n \r\n {seconds}\r\n \r\n \r\n {trans(\"info:second\")}\r\n \r\n\r\n )\r\n }\r\n
;\r\n setTimer(countDownFormat);\r\n // setTimer((month+\"m/ \")+(days+\"d / h \")+\r\n // (hours > 9 ? hours : '0' + hours) + ':' +\r\n // (minutes > 9 ? minutes : '0' + minutes) + ':'\r\n // + (seconds > 9 ? seconds : '0' + seconds)\r\n // )\r\n }\r\n }\r\n\r\n\r\n const clearTimer = (e) => {\r\n\r\n // If you adjust it you should also need to\r\n // adjust the Endtime formula we are about\r\n // to code next \r\n setTimer('0d 00:00:00');\r\n\r\n // If you try to remove this line the \r\n // updating of timer Variable will be\r\n // after 1000ms or 1sec\r\n if (Ref.current) clearInterval(Ref.current);\r\n const id = setInterval(() => {\r\n startTimer(e);\r\n }, 1000)\r\n Ref.current = id;\r\n }\r\n\r\n const getDeadTime = () => {\r\n let deadline = new Date();\r\n let now= new Date(Date.now());\r\n\r\n // This is where you need to adjust if \r\n // you entend to add more time\r\n\r\n deadline.setSeconds(deadline.getSeconds()-now.getSeconds() );\r\n deadline.setMinutes(deadline.getMinutes()-now.getMinutes() );\r\n deadline.setHours(deadline.getHours()-now.getHours());\r\n deadline.setDate(deadline.getDate() +Total); //(end-start));\r\n\r\n \r\n \r\n \r\n return deadline;\r\n }\r\n\r\n // We can use useEffect so that when the component\r\n // mount the timer will start as soon as possible\r\n\r\n // We put empty array to act as componentDid\r\n // mount only\r\n useEffect(() => {\r\n clearTimer(getDeadTime());\r\n }, []);\r\n\r\n // Another way to call the clearTimer() to start\r\n // the countdown is via action event from the\r\n // button first we create function to be called\r\n // by the button\r\n const onClickReset = () => {\r\n clearTimer(getDeadTime());\r\n }\r\n\r\n return (\r\n
\r\n

{timer}

\r\n
\r\n )\r\n}\r\n\r\n","import { concat } from \"lodash\";\r\n// this function is used to format the number based on the contry currency code\r\nexport const numberFormat = (number ,lang,showZero,classNameCurrency,displayCurrencyLiter = true, syntax = {code : 'SAR' , locale : 'en'})=>{\r\nconst {locale} = syntax;\r\nconst code = lang == 'en' ? ' SAR ' : ' ر.س ';\r\nconst suffixCode = (locale == 'en' ? 'IN' : 'EG');\r\nif (number == null || number == undefined || number == 'null' || number === '' || ((number == '0' || number == 0) && showZero == false)){\r\n\r\n return null;\r\n}\r\n\r\nif(displayCurrencyLiter) {\r\n // return concat(Intl.NumberFormat(locale + `-${suffixCode}`).format(number),code);\r\n return concat(Intl.NumberFormat().format(number), classNameCurrency ? {code} : code);\r\n} \r\n\r\nreturn Intl.NumberFormat().format(number);\r\n// return concat(Intl.NumberFormat().format(number),code);\r\n\r\n// return concat(Intl.NumberFormat().format(number), {code});\r\n};","import {Fragment} from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { numberFormat } from \"../../utils/currencyFormatter\";\r\nexport function Price({price,showZero=false,displayCurrencyLiter=true}) {\r\n const { i18n } = useTranslation([]);\r\n let lang =i18n.language;\r\n\r\n if (price === null || price === undefined || price === 'null' || price === '' || (price === '0' || price === 0 && showZero == false)){\r\n return null;\r\n }\r\n \r\n return (\r\n \r\n {numberFormat(parseFloat(price),lang,showZero,\"\",displayCurrencyLiter)}\r\n \r\n );\r\n}\r\n\r\n","import { Link } from \"react-router-dom\";\r\nimport {CountDown} from \"../../../../pages/eparts/components/countDown\"\r\nimport { Price } from \"../../../__simple/_price\";\r\nimport config from \"../../../../configuration/config.json\";\r\nexport function NavPartCard({title,description,image,to,endDate,startDate,totalTime, total}) {\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n \"service\"\r\n\r\n
\r\n

{title}

\r\n
\r\n

\r\n {description}\r\n

\r\n
\r\n \r\n );\r\n}","import {Link} from \"react-router-dom\";\r\nimport {NavWorkHours} from \"./components/navWorkHours\";\r\nimport {NavPartCard} from \"./components/navPartCard\";\r\nimport { useEffect,useState } from \"react\";\r\nimport config from '../../../configuration/config.json';\r\nimport axios from \"axios\";\r\nimport _ from 'lodash';\r\nimport { useTranslation } from \"react-i18next\";\r\nimport moment from \"moment\";\r\nexport function NavParts({...prop}) {\r\n const { t: trans } = useTranslation([\"common\", \"form\", \"model\",\"navbar\",\"info\"]);\r\n //---------------------------------------------------\r\n const[compaign,setCompaign] = useState([]);\r\n const[categories,setCategories] = useState([]);\r\n //---------------------------------------------------\r\n useEffect(()=>{\r\n intialCompaign();\r\n intialEPartsCategories();\r\n },[]);\r\n //---------------------------------------------------\r\n const intialCompaign = ()=>{\r\n axios.post(\r\n config.baseURL + \"details\",\r\n {\r\n \"object\": \"Web_compaing\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n },\r\n \"Option\":\"Column\",\r\n \"Fields\":\"GUID,DescriptionAr,TotalTime,DescriptionEn,DescriptionArTitle,DescriptionEnTitle,image,CreatedDate,DateFrom,DateTo,TotalAmountDiscount\"\r\n }\r\n ).then(response=>{\r\n const responseData = response.data.ApiObjectData;\r\n const responseDataFiltered = _.orderBy(responseData, (e) => {\r\n return new moment(new Date(e.CreatedDate)).format('YYYY-MM-DD')\r\n }, ['desc']);\r\n\r\n const newList = responseDataFiltered.map((e, index) => {\r\n return {\r\n id: e.GUID,\r\n image: e.image,\r\n title: e[`${trans(\"model:description\")}`],\r\n description: e[`${trans(\"model:description\") + 'Title'}`],\r\n startDate:e.DateFrom,\r\n endDate:e.DateTo,\r\n totalTime:e.TotalTime,\r\n total:e.TotalAmountDiscount\r\n }\r\n });\r\n\r\n const firstTwoOffers = newList.filter((ele,index)=>{\r\n return index <= 1;\r\n })\r\n setCompaign(firstTwoOffers);\r\n }).catch(error=>{\r\n console.log(error);\r\n });\r\n };\r\n // fetch the list of categories\r\n const intialEPartsCategories = ()=>{\r\n axios.post(\r\n config.baseURL + \"details\",\r\n {\r\n \"Object\": \"Site_categorySP\",\r\n \"Option\": \"Column\",\r\n \"Fields\": \"GUID,DescriptionAr,DescriptionEn\",\r\n \"ObjectSettings\": {\r\n \"MetaDate\": false,\r\n \"Limit\":{\r\n \"Optional\":\"Top\",\r\n \"Value\":5\r\n }\r\n }\r\n }\r\n ).then(response => {\r\n const responseData = response.data.ApiObjectData;\r\n const responseDataFiltered = responseData.map(cat=>{\r\n return {id : cat.GUID , description : cat[`${trans(\"model:description\")}`]}\r\n });\r\n setCategories(responseDataFiltered);\r\n }).catch(error=>{\r\n console.log(error);\r\n });\r\n };\r\n //---------------------------------------------------\r\n return (\r\n
\r\n
\r\n
\r\n

\r\n {trans(\"navbar:compaign\")}\r\n

\r\n
\r\n {\r\n (compaign != null && compaign.length > 0) ? compaign.map((com,index)=>{\r\n return \r\n }):(
\r\n \"hassan\r\n

{trans(\"info:no_compaign\")}

\r\n
)\r\n }\r\n
\r\n
\r\n
\r\n

\r\n {trans(\"navbar:compaign_category\")}\r\n

\r\n
    \r\n {\r\n categories.map((cat,index) => {\r\n return (\r\n
  • \r\n {cat.description}\r\n
  • \r\n )\r\n })\r\n }\r\n {\r\n categories?.length > 4 &&
  • {trans(\"navbar:show_more\") +'...'}
  • \r\n } \r\n
\r\n
\r\n
\r\n

\r\n {trans(\"navbar:work_hours\")}\r\n

\r\n \r\n
\r\n
\r\n
\r\n );\r\n}","import { useEffect } from \"react\";\r\nimport { useState } from \"react\";\r\nimport {NavWorkHours} from \"./components/navWorkHours\";\r\nimport config from '../../../configuration/config.json';\r\nimport { useTranslation } from \"react-i18next\";\r\nimport axios from \"axios\";\r\nimport { useHistory } from \"react-router\";\r\nexport function NavAbout({...prop}) {\r\n const { t: trans } = useTranslation(\"navbar\");\r\n const aboutList = [\r\n {description:trans(\"navbar:about_hj\"),to:'whyHjElement'},\r\n {description:trans(\"navbar:info_about_us\"),to:'aboutUsElmenet'},\r\n {description:trans(\"navbar:about_rewards\"),to:'rewardsElement'},\r\n {description:trans(\"navbar:about_what_our_cutomers_says\"),to:'customersSaysElement'},\r\n {description:trans(\"navbar:about_principle\"),to:'workPricipleElement'},\r\n ];\r\n const history = useHistory();\r\n //----------------------------------------------------\r\n const [aboutOwner,setAboutOwner] = useState({\r\n title:'',\r\n description:''\r\n });\r\n //---------------------------------------------------\r\n useEffect(()=>{\r\n intial();\r\n },[]);\r\n //---to intialize the hj description from request----\r\n const intial = ()=>{\r\n axios.post(\r\n config.baseURL + 'details',\r\n {\r\n \"Object\":\"siteAboutPage\",\r\n \"Option\":\"Column\",\r\n \"Fields\":\"whatTitleAr,whatDescAr,whatTitleEn,whatDescEn\",\r\n \"ObjectSettings\":{\r\n \"MetaData\":false\r\n }\r\n }\r\n ).then(response=>{\r\n const responseData = response.data.ApiObjectData;\r\n if(responseData.length > 0){\r\n const responseResult = responseData[0];\r\n const finalResult = {...aboutOwner};\r\n finalResult.title = responseResult[`${trans(\"navbar:about_title_model\")}`];\r\n finalResult.description = responseResult[`${trans(\"navbar:about_desc_model\")}`];\r\n setAboutOwner(finalResult);\r\n }\r\n }).catch(error=>{\r\n console.log(error);\r\n });\r\n };\r\n //--- to navigate to about section elements\r\n const navigateToElement = (elementID) =>{\r\n history.push('/about');\r\n try{\r\n setTimeout(()=>{\r\n document.getElementById(elementID).scrollIntoView()\r\n },250);\r\n }catch(error){\r\n console.log(error);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

\r\n {aboutOwner?.title}\r\n

\r\n
\r\n
\r\n

\r\n {aboutOwner?.description}\r\n

\r\n
\r\n
\r\n
\r\n

\r\n {trans(\"navbar:info_about_us\")}\r\n

\r\n \r\n
\r\n
\r\n

\r\n {trans(\"navbar:work_hours\")}\r\n

\r\n \r\n
\r\n
\r\n
\r\n );\r\n}","import { useEffect, useState } from \"react\";\r\nimport { GoogleMap, LoadScript, Marker, InfoWindow } from \"@react-google-maps/api\";\r\n\r\n\r\nexport function Map({ latitude, longitude, name, content, markers = [], multiMarkers = false }) {\r\n let googleMapURL = \"https://maps.googleapis.com/maps/api/js?key=AIzaSyAN_OIK0AzQyINgni_VzR23kh-ytSgiku0\";\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n\r\n\r\n const [currentPosition, setCurrentPosition] = useState({});\r\n const [multPositions, setMultiPositions] = useState([]);\r\n const [toggle, setToggle] = useState(false);\r\n\r\n\r\n // function changeMapLanguage(){\r\n // return googleMapURL+=`&language=${lang}`;\r\n // }\r\n\r\n const success = position => {\r\n\r\n\r\n const currentPosition = {\r\n lat: parseFloat(latitude) ?? position.coords.latitude,\r\n lng: parseFloat(longitude) ?? position.coords.longitude\r\n }\r\n\r\n if (currentPosition?.lat && currentPosition?.lng)\r\n setCurrentPosition(currentPosition);\r\n };\r\n\r\n useEffect(() => {\r\n navigator.geolocation.getCurrentPosition(success);\r\n }, [latitude, longitude])\r\n\r\n\r\n\r\n useEffect(() => {\r\n if (multiMarkers) {\r\n\r\n const mm = markers.map(e => {\r\n\r\n\r\n var coords = \"\";\r\n try {\r\n const { latitude, longitude } = e;\r\n coords = { lat: parseFloat(latitude), lng: parseFloat(longitude) };\r\n } catch (error) {\r\n\r\n }\r\n\r\n return (\r\n\r\n { lat: e.latitude, lng: e.longitude, coords: coords }\r\n )\r\n\r\n\r\n\r\n })\r\n\r\n setMultiPositions(mm);\r\n }\r\n }, [markers, multiMarkers]);\r\n\r\n useEffect(() => {\r\n navigator.geolocation.getCurrentPosition((position) => {\r\n\r\n const currentPosition = {\r\n lat: position.coords.latitude,\r\n lng: position.coords.longitude\r\n }\r\n\r\n if (currentPosition?.lat && currentPosition?.lng)\r\n setCurrentPosition(currentPosition);\r\n });\r\n }, []);\r\n\r\n const handleToggle = () => {\r\n setToggle(!toggle);\r\n };\r\n\r\n\r\n const locations = [\r\n {\r\n name: \"Location 1\",\r\n location: {\r\n lat: 26.4007915,\r\n lng: 50.0110817\r\n },\r\n },\r\n {\r\n name: \"Location 2\",\r\n location: {\r\n lat: 26.399904,\r\n lng: 50.013982\r\n },\r\n },\r\n\r\n ];\r\n\r\n const mapStyles = {\r\n height: \"100%\",\r\n width: \"100%\"\r\n };\r\n\r\n\r\n const infoWindowStyle = {\r\n backgroundColor: '#fff',\r\n color: '#000',\r\n textAlign: 'center',\r\n minWidth: '100px',\r\n fontSize: 18,\r\n fontWeight: 'bold'\r\n };\r\n\r\n const defaultCenter = {\r\n lat: 41.3851, lng: 2.1734\r\n }\r\n const [selected, setSelected] = useState({});\r\n\r\n const onSelect = item => {\r\n setSelected(item);\r\n }\r\n\r\n return (\r\n\r\n \r\n\r\n {\r\n !multiMarkers &&\r\n (\r\n \r\n {\r\n toggle && \r\n
\r\n {latitude != '' ? content : 'Me'}\r\n
\r\n \r\n }\r\n
\r\n )\r\n }\r\n {\r\n multiMarkers && markers.map((item, index) => {\r\n\r\n return (\r\n\r\n item?.coords &&\r\n \r\n {\r\n toggle && \r\n
\r\n {item?.content}\r\n
\r\n \r\n }\r\n
\r\n )\r\n })\r\n }\r\n \r\n )\r\n\r\n}\r\n\r\n","const ErrorLabel = ({errorTitle , block = false})=>{\r\nlet classes = 'warning-';\r\nclasses+= block?'block':'inline';\r\nreturn errorTitle != null || undefined ?{errorTitle}:'';\r\n}\r\nexport default ErrorLabel;","import ErrorLabel from '../../components/error';\r\nimport { useState } from \"react\";\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nexport function InputField({\r\n name,\r\n id = null,\r\n readOnly = false,\r\n disabled = false,\r\n type = 'text',\r\n onChangeValue,\r\n onKeyDown,\r\n onLeave,\r\n onKeyPress,\r\n title,\r\n errorLabel,\r\n placeholder,\r\n secondary = false,\r\n value,\r\n required = false,\r\n length = 50,\r\n extraClasses = '',\r\n passwordStrength = false,\r\n onAcceptPassword,\r\n searchIcon = false,\r\n onClicksearchIcon,\r\n ...props\r\n}) {\r\n\r\n const { t: trans, i18n } = useTranslation(\"info\");\r\n let lang = i18n.language;\r\n const languageDir = \"language-\" + lang;\r\n const [validationMessage, setValidationMessage] = useState('');\r\n const [strength, setStrength] = useState(\r\n {\r\n weak: false,\r\n middle: false,\r\n powerful: false\r\n }\r\n );\r\n // to handle the password strength \r\n const handlePasswordStrength = (event) => {\r\n const _value = event.target.value;\r\n const _numericPattern = /[0-9]{3,}/g;\r\n const _alphaCapitalPattern = /[A-Z]{1,}/g\r\n const _alphaSamllPattern = /[a-z]{4,}/g;\r\n const _simplePattern = /[!@#\\$%\\^\\&*\\)\\(+=._-]{1,}/g;\r\n try {\r\n const val = { ...strength };\r\n let strengthCount = 0;\r\n let _message = trans(\"info:password_accept_note\");\r\n\r\n if (!_numericPattern.test(_value)) {\r\n _message += ' ' + trans(\"info:password_accept_num\");\r\n } else if (!_alphaCapitalPattern.test(_value)) {\r\n _message += ' ' + trans(\"info:password_accept_capital_alph\");\r\n } else if (!_alphaSamllPattern.test(_value)) {\r\n _message += ' ' + trans(\"info:password_accept_small_alph\");\r\n } else if (!_simplePattern.test(_value)) {\r\n _message += ' ' + trans(\"info:password_accept_simple\");\r\n } else {\r\n _message = '';\r\n }\r\n if (_value?.search(_numericPattern) != -1) {\r\n strengthCount += 1;\r\n }\r\n if (_value?.search(_alphaCapitalPattern) != -1) {\r\n strengthCount += 1;\r\n }\r\n if (_value?.search(_alphaSamllPattern) != -1) {\r\n strengthCount += 1;\r\n } if (_value?.search(_simplePattern) != -1) {\r\n strengthCount += 1;\r\n }\r\n switch (strengthCount) {\r\n case 1:\r\n val.weak = true;\r\n val.middle = false;\r\n val.powerful = false;\r\n break;\r\n case 2:\r\n val.weak = true;\r\n val.middle = true;\r\n val.powerful = false;\r\n break;\r\n case 3:\r\n val.weak = true;\r\n val.middle = true;\r\n val.powerful = false;\r\n break;\r\n case 4:\r\n val.weak = true;\r\n val.middle = true;\r\n val.powerful = true;\r\n break;\r\n default:\r\n val.weak = false;\r\n val.middle = false;\r\n val.powerful = false;\r\n }\r\n setStrength(val);\r\n setValidationMessage(_message);\r\n if (onAcceptPassword) {\r\n if (val.weak && val.middle) {\r\n onAcceptPassword(true);\r\n } else {\r\n onAcceptPassword(false);\r\n }\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n };\r\n return (\r\n
\r\n {\r\n title &&\r\n \r\n }\r\n\r\n\r\n {\r\n if (onKeyDown)\r\n onKeyDown(event)\r\n }}\r\n onKeyPress={(event) => {\r\n if (onKeyPress)\r\n onKeyPress(event)\r\n }}\r\n onBlur={(event) => {\r\n if (onLeave)\r\n onLeave(event)\r\n }}\r\n id={id}\r\n name={name}\r\n maxLength={length}\r\n readOnly={readOnly}\r\n onChange={(e) => {\r\n if (onChangeValue)\r\n onChangeValue(e);\r\n if (passwordStrength) {\r\n handlePasswordStrength(e);\r\n }\r\n }}\r\n // onLeave={(e) => {\r\n // if (onLeave)\r\n // onLeave(e)\r\n // }}\r\n className={\"input-field \" + extraClasses + \" \" + (disabled && \" bg-gray-light \")}\r\n placeholder={placeholder}\r\n required={required}\r\n type={type}\r\n value={value} />\r\n \r\n\r\n {(searchIcon) &&\r\n\r\n
\r\n \r\n\r\n
\r\n }\r\n\r\n {(type == 'password' && passwordStrength) &&
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{validationMessage}

\r\n
\r\n }\r\n
\r\n );\r\n}\r\n","import ErrorLabel from '../../components/error';\r\nimport { useTranslation } from \"react-i18next\";\r\nexport function TextArea({ title, placeholder, row = 10, onChangeValue, secondary = false, required = false, errorLabel, value, disabled = false, style = null }) {\r\n const { t: trans, i18n } = useTranslation([\"info\"]);\r\n let lang = i18n.language;\r\n let languageDir = \"language-\" + lang;\r\n return (\r\n
\r\n {\r\n title &&\r\n \r\n }\r\n\r\n \r\n \r\n
\r\n );\r\n}\r\n","import { Fragment } from \"react\";\r\n\r\nexport function FormButton({ name, type = 'submit', style, onClick, isLoading = false, isPrimary = false, disabled = false, classes = '', icon = false,lang }) {\r\n\r\n return (\r\n\r\n\r\n \r\n );\r\n}\r\n","import {useTranslation} from \"react-i18next\";\r\nexport function GetMessages(){\r\n const {t:trans} = useTranslation(['messages']);\r\n const messages = {\r\n \"any.required\":trans(\"messages:field_required\"), \r\n \"string.base\":trans(\"messages:type_input_field\"),\r\n \"string.email\":trans(\"messages:email_input_field\"),\r\n \"string.empty\":trans(\"messages:empty_field\"),\r\n \"string.min\":trans(\"messages:min_input_field\"),\r\n \"string.max\":trans(\"messages:max_input_field\"),\r\n \"string.pattern.base\":trans(\"messages:flag_input_field\"),\r\n \"object.base\":trans(\"messages:file_input_field\"),\r\n \"binary.max\":trans(\"messages:file_max_input_field\"),\r\n \"date.base\":trans(\"messages:date_input_field\"),\r\n \"any.only\":trans(\"messages:password-not-matched\"),\r\n \"number.base\":trans(\"messages:number_input_field\"),\r\n \"number.positive\":trans(\"messages:number_pos_input_field\"),\r\n \"number.min\":trans(\"messages:number_min_input_field\"),\r\n \"number.max\":trans(\"messages:number_max_input_field\"),\r\n \"string.length\":trans(\"messages:flag_length_field\")\r\n }\r\n return messages;\r\n}\r\nexport function formValidate(schema,data){ \r\nconst {error,value} = schema.validate(data,{abortEarly:false});\r\nif(!error) return null;\r\n//alert(JSON.stringify(error.details));\r\nconst errors ={};\r\nfor(let item of error.details){\r\n if(item.type != 'object.unknown')\r\n errors[item.path[0]] = item.message;\r\n}\r\nreturn errors;\r\n}\r\n\r\nexport function validateProperty({name,value},schema){\r\nconst obj = {[name]:value};\r\nconst {error} = schema.validate(obj,{abortEarly:false});\r\nreturn error ? error.details[0].message : null;\r\n}","import {useEffect , useState } from 'react';\r\nimport ErrorLabel from '../../components/error';\r\nexport function PhoneInput({name,title,enabled , onChangeValue ,errorLabel,defaultValue,prefix = '+966', length = 9}){\r\n const [phonevalue,setPhoneValue] = useState();\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const languageDir = \"language-\" + lang;\r\nuseEffect(()=>{\r\nif(defaultValue!=null&&defaultValue!='')\r\nsetPhoneValue(defaultValue);\r\nelse\r\nsetPhoneValue(prefix);\r\n},[defaultValue]);\r\n\r\nfunction handleChange(event){\r\n let result = (event.target.validity.valid) ? event.target.value : phonevalue;\r\n if(!phonevalue.startsWith(prefix))\r\n result = prefix + phonevalue;\r\n setPhoneValue(result);\r\n}\r\n\r\n\r\nfunction handleUnfocus(){\r\n if(!phonevalue.startsWith(prefix)) \r\n setPhoneValue(prefix);\r\n}\r\n\r\nreturn(\r\n
\r\n \r\n \r\n {handleUnfocus();onChangeValue(phonevalue);}} maxLength={length + 4} onInput={(e)=>{ handleChange(e);onChangeValue(phonevalue)}} value ={phonevalue} name={name} className={\"input-field bg-white\"} type=\"text\"/>\r\n
\r\n);\r\n}\r\n","import { useState, useRef, useEffect } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ErrorLabel from \"../error\";\r\nimport axios from \"axios\";\r\nimport config from '../../configuration/config.json';\r\n\r\nconst PhoneDropDown = ({\r\n mandotory = false,\r\n title = '',\r\n onChangeValue,\r\n errorLabel,\r\n defaultValue = '',\r\n defaultFlag = null,\r\n maxLength = 9,\r\n disabled = false,\r\n countriesListCode,\r\n placeholderProp,\r\n isLoginProp = false\r\n}) => {\r\n const countriesCode = [\r\n { code: '966', DescriptionAr: 'السعودية', DescriptionEn: 'Saudi Arabia', flag: 'saudiFlag.png' },\r\n { code: '49', DescriptionAr: 'المانيا', DescriptionEn: 'Germany', flag: 'germanyFlag.png' },\r\n { code: '55', DescriptionAr: 'البرازيل', DescriptionEn: 'Brazil', flag: 'brazilFlag.png' }\r\n ];\r\n\r\n const defaultFlagPath = '/assets/flags/';\r\n const { t: trans, i18n } = useTranslation([\"form\", \"model\", \"new\"]);\r\n const [isOpened, setIsOpened] = useState(false);\r\n\r\n const [isFocus, setIsFocus] = useState(false);\r\n const [currentcountriesCode, setCurrentcountriesCode] = useState(countriesCode);\r\n const [activeFlag, setActiveFlag] = useState(defaultFlag ? {\r\n flagText: defaultFlag,\r\n flag: defaultFlagPath + 'saudiFlag.png'\r\n } : {\r\n flagText: '966',\r\n flag: defaultFlagPath + 'saudiFlag.png'\r\n });\r\n const [phoneValue, setPhoneValue] = useState(defaultValue);\r\n const flagRef = useRef();\r\n const inputRef = useRef();\r\n let lang = i18n.language;\r\n let languageDir = \"language-\" + lang;\r\n\r\n useEffect(() => {\r\n // Bind the event listener\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => {\r\n // Unbind the event listener on clean up\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, [flagRef, isOpened]);\r\n\r\n const [Country, setCountry] = useState([]);\r\n\r\n async function FillAllCountries() {\r\n\r\n const Body = { \"name\": \"site_AllCountries\" }\r\n await axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n // console.log(response.data);\r\n if (response?.data && response.data.length > 0)\r\n setCountry(response.data);\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n\r\n }\r\n\r\n const handleChangeCountryCodeStatus = () => {\r\n if(disabled == false){\r\n const newStatus = !isOpened;\r\n setIsOpened(newStatus);\r\n }\r\n \r\n };\r\n const handleClickOutside = (event) => {\r\n if (flagRef.current && !flagRef.current.contains(event.target) && isOpened === true) {\r\n setIsOpened(false);\r\n setIsFocus(false);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (defaultValue)\r\n setPhoneValue(defaultValue);\r\n }, [defaultValue]);\r\n\r\n\r\n useEffect(() => {\r\n FillAllCountries();\r\n }, []);\r\n useEffect(() => {\r\n\r\n if (Country && Country?.length > 0) {\r\n\r\n var bb = Country.map(a => {\r\n return (a?.DialingCode && a?.DialingCode != \"001\") && {\r\n code: parseInt(a?.DialingCode, 10)?.toString(),\r\n DescriptionAr: a?.DescriptionAr,\r\n DescriptionEn: a?.DescriptionEn,\r\n flag: \"\"\r\n }\r\n\r\n\r\n })\r\n\r\n setCurrentcountriesCode(bb);\r\n }\r\n }, [Country]);\r\n const handleChangeCountryCode = (item) => {\r\n let { code, flag } = item;\r\n setActiveFlag({\r\n flagText: code,\r\n flag: defaultFlagPath + flag\r\n });\r\n setIsOpened(false);\r\n onChangeValue(code, phoneValue);\r\n inputRef.current.focus();\r\n };\r\n const handleInputChange = (event) => {\r\n if (event.target.validity.valid) {\r\n setPhoneValue(event.target.value);\r\n if (onChangeValue) {\r\n onChangeValue(activeFlag.flagText, event.target.value);\r\n }\r\n }\r\n };\r\n return (\r\n
\r\n {/* */}\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {'+(' + activeFlag.flagText + ')'}\r\n \r\n
\r\n
\r\n\r\n
\r\n \"arrow\"\r\n
\r\n
\r\n\r\n
\r\n {\r\n setIsFocus(true)\r\n }} onBlur={() => {\r\n setIsFocus(false)\r\n }}\r\n value={phoneValue}\r\n onInput={(e) => {\r\n handleInputChange(e)\r\n }} type=\"phoneNumber\" ref={inputRef} className={(isLoginProp == false\r\n ? \"phone-selectable-input text-16 text-right\"\r\n : \"phone-selectable-input-from-login text-16 text-left\")+ (disabled && \" bg-gray-light \") }\r\n style={{ right: (lang == 'en' ? '-9rem' : 'auto') }}\r\n placeholder={`${placeholderProp ? placeholderProp : trans(\"form:5xx xxx xxx\")} ${mandotory ? '*' : ''} `} />\r\n
\r\n {\r\n isOpened && (
\r\n
    \r\n {\r\n currentcountriesCode?.map((item, index) => {\r\n\r\n return item?.code != null && item?.code != undefined ?\r\n
  • {\r\n handleChangeCountryCode(item);\r\n }}>\r\n \r\n {item[`${trans(\"model:description\")}`]}\r\n \r\n
    \r\n \r\n {'+(' + (item.code) + ')'}\r\n \r\n
    \r\n
  • \r\n : null\r\n })\r\n }\r\n
\r\n
)\r\n }\r\n
\r\n \r\n \r\n\r\n );\r\n};\r\nexport default PhoneDropDown;\r\n","/**\r\n * this function is used to reset the drop down and choose which array\r\n// you really want to return \r\n * @param {func} callback \r\n * @param {Array} values \r\n * @param {Boolean} forceReturn \r\n */\r\nexport default function dropDownResetter(callback,values,forceReturn = false){\r\n if(callback){\r\n callback();\r\n }\r\n if(forceReturn){\r\n return values\r\n }\r\n };","import React, {Fragment, useEffect, useRef, useState} from 'react'\r\nimport {Swiper, SwiperSlide} from \"swiper/react\";\r\nimport {Link} from \"react-router-dom\";\r\nimport config from \"../../../configuration/config.json\";\r\n\r\nconst CustomPopover = ({listMain, level2, level3}) => {\r\n const [lang, setLang] = useState(localStorage.getItem('i18nextLng'));\r\n\r\n const [isShowIndex, setIsShowIndex] = useState(null);\r\n\r\n const [CatMain, setCatMain] = useState(null);\r\n const [SuPCat, setSupCat] = useState(null);\r\n const [SSuPCat, setSSupCat] = useState(null);\r\n\r\n const [fCatSup1, setoptionCatSup] = useState([]);\r\n const [fCatSup2, setoptionCatSup2] = useState([]);\r\n\r\n const dropdownRef = useRef(null);\r\n const show = ({val}) => {\r\n setIsShowIndex(null);\r\n setIsShowIndex(val);\r\n };\r\n\r\n const [imageTitle, setImageTitle] = useState(null);\r\n const [imageTitleLevel1, setImageTitleLevel1] = useState(null);\r\n const [imageTitleLevel2, setImageTitleLevel2] = useState(null);\r\n\r\n\r\n // Function to handle click outside of dropdown\r\n const handleClickOutside = (event) => {\r\n if (dropdownRef.current && !dropdownRef.current.contains(event.target) && !dropdownRef.current.parentNode.contains(event.target)) {\r\n // Click occurred outside of dropdown, close it\r\n setIsShowIndex(null);\r\n }\r\n };\r\n\r\n function filterCatSup1(option) {\r\n setCatMain(option);\r\n setSupCat(null);\r\n var filter = level2.filter(a => a.GroupIDMain == option);\r\n setoptionCatSup(level2.filter(a => a.GroupIDMain == option));\r\n }\r\n\r\n function filterCatSup2(option) {\r\n setSupCat(option);\r\n var filter = level3.filter(a => a.GroupIDMainSup1 === option.GroupIDMainSup1);\r\n setoptionCatSup2(level3.filter(a => a.GroupIDMainSup1 === option.GroupIDMainSup1));\r\n console.log(\"filter\", filter);\r\n }\r\n\r\n function adjustDropdownPosition(button, drId, indexP) {\r\n const dropdown = document.getElementById(drId);\r\n\r\n var customPopover = document.getElementById(\"CustomPopover\");\r\n // console.log(\"CustomPopover:offsetLeft\",customPopover.target.offsetLeft)\r\n\r\n const {right, left} = customPopover.getBoundingClientRect();\r\n console.log('CustomPopover:offsetRight:', right);\r\n console.log('CustomPopover:offsetLeft:', left);\r\n // console.log(\"CustomPopover:offsetLeft\",customPopover.target.offsetLeft)\r\n\r\n console.log(\"dropdown:\", dropdown);\r\n\r\n const dropdownContent = document.getElementById(`dropdown-content-${indexP}`);\r\n console.info(\"dropdownContent\", dropdownContent)\r\n const rect = dropdownContent.getBoundingClientRect();\r\n const rightSpace = right - rect.right;\r\n const leftSpace = left - rect.left;\r\n\r\n console.log(\"rect.right \", rect.right);\r\n console.log(\"rect.left \", rect.left);\r\n\r\n console.log(\"rightSpace \", rightSpace);\r\n console.log(\"leftSpace \", leftSpace);\r\n if (rightSpace < -1) {\r\n dropdownContent.style.left = `${rightSpace}px`;\r\n }\r\n\r\n if (leftSpace > 1) {\r\n // Dropdown is beyond right edge, move it left\r\n dropdownContent.style.right = `${leftSpace * -1}px`;\r\n }\r\n }\r\n \r\n const funcSetImage= ({typeLevel})=>{\r\n try {\r\n switch (typeLevel) {\r\n case \"level1\": \r\n setImageTitle(imageTitleLevel1);\r\n break; \r\n case \"level2\":\r\n setImageTitle(imageTitleLevel2);\r\n break;\r\n default:\r\n setImageTitle(\"/assets/images/car-bg.png\");\r\n break;\r\n }\r\n }catch (ex) {\r\n console.log(\"funcSetImage:catch:>>>\",ex);\r\n }\r\n };\r\n\r\n // Add event listener when component mounts\r\n useEffect(() => {\r\n document.addEventListener('click', handleClickOutside);\r\n return () => {\r\n // Cleanup: Remove event listener when component unmounts\r\n document.removeEventListener('click', handleClickOutside);\r\n };\r\n }, []);\r\n\r\n return (\r\n // (showNav === \"vehicle\" || \"hidden\")\r\n
\r\n \r\n\r\n {listMain.map((val, i) => {\r\n return (\r\n \r\n\r\n
\r\n\r\n \r\n\r\n\r\n {\r\n (\r\n \r\n \r\n {\r\n fCatSup2.map((valLevel2, indexLevel2) => {\r\n return (\r\n
  • \r\n setIsShowIndex(null)}\r\n to={\"/eparts/sereach?\" + \"CatMain=\" + CatMain + \"&SuPCat=\" + SuPCat?.GroupIDMainSup1 + \"&SSuPCat=\" + valLevel2.GroupIDMainSup2}\r\n className=\"text-gray-900 my-3 cursor-pointer text-3xl sm:text-4xl lg:text-2xl hover:text-green-500\"\r\n >\r\n {lang.toLowerCase() == \"en\" ? valLevel2?.DescriptionEn : valLevel2?.DescriptionAr}\r\n \r\n
  • \r\n );\r\n })\r\n }\r\n
    \r\n \r\n }\r\n \r\n
    \r\n \r\n {\r\n imageTitle && (\r\n \r\n )\r\n }\r\n {\r\n !imageTitle && (\r\n \r\n )\r\n }\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n \r\n\r\n \r\n );\r\n\r\n })}\r\n\r\n \r\n \r\n )\r\n}\r\n\r\nexport default CustomPopover;","import { useTranslation } from \"react-i18next\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { DropDownInput } from \"../../../components/_input/_dropdown\";\r\nimport React, { forwardRef, useEffect, useImperativeHandle, useState } from \"react\";\r\nimport axios from \"axios\";\r\nimport { InputField } from \"../../../components/_input/_input\";\r\nimport config from '../../../configuration/config.json';\r\nimport dropDownResetter from \"../../../utils/resetDropDown\";\r\nimport { reverse } from \"lodash\";\r\nimport { useLocation } from \"react-router\";\r\nimport CustomPopover from \"./customPopover\";\r\n\r\nconst PartSearch = forwardRef((\r\n { search, isIndex = false, isLoadingFuncProp, onChangValuesProp, activePage, passEngineGroups}, ref) => {\r\n\r\n\r\n //\r\n // export function PartSearch({\r\n // search, isIndex = false, isLoadingFuncProp, onChangValuesProp, clearFilterProp\r\n // }) {\r\n //public verb\r\n const { t: trans } = useTranslation([\"common\", \"eparts\", 'inputs', \"info\", \"new\"]);\r\n const [vehicle, setVehicle] = useState(\"\");\r\n const [vin, setVin] = useState(\"hidden\");\r\n const [part, setPart] = useState(\"hidden\");\r\n const [category, setCategory] = useState(\"hidden\");\r\n\r\n let query = new URLSearchParams(useLocation().search);\r\n const [brand, setBrand] = useState(null);\r\n const [group, setGroup] = useState(null);\r\n const [year, setYear] = useState(null);\r\n const [Stype, setStype] = useState(null);\r\n const [queryProduct, setQueryProduct] = useState(query.get(\"Product\") ?? null);\r\n\r\n\r\n const [lang, setlang] = useState(localStorage.getItem('i18nextLng'));\r\n const languageDir = 'language-' + lang;\r\n const [Brands, setBrands] = useState([]);\r\n const [ProductGroups, setProductGroups] = useState([]);\r\n const [ProductModel, setProductModel] = useState([]);\r\n const [ProductModelTypes, setProductModelTypes] = useState([]);\r\n\r\n const [engineGroups, setEngineGroups] = useState([]);\r\n const [engineGroupsSup, setEngineGroupsSup] = useState([]);\r\n const [engineGroupsSup2, setEngineGroupsSup2] = useState([]);\r\n\r\n //values for filter dropdown\r\n useEffect(() => {\r\n\r\n if (query && Brands.length > 0) {\r\n setBrand(query.get(\"brand\"));\r\n setResGroup(query.get(\"group\"));\r\n setResProductType(query.get(\"type\"));\r\n setResProductModel(query.get(\"year\"));\r\n // setQueryProduct (query.get(\"Product\"))\r\n if (query.get(\"brand\") != null) {\r\n setTimeout(() => {\r\n refreshPage(\"Vehicle\", query.get(\"brand\"), query.get(\"type\"), query.get(\"group\"), query.get(\"year\"));\r\n }, 1500)\r\n }\r\n }\r\n }, [Brands]);\r\n\r\n\r\n const [FProductGroups, setFProductGroups] = useState([]);\r\n\r\n const [FProductModelTypes, setFProductModelTypes] = useState([]);\r\n\r\n //values for filter dropdown\r\n\r\n const [fCatSup1, setoptionCatSup] = useState([{ value: \"0\", text: \"الكل\" }]);\r\n const [fCatSup2, setoptionCatSup2] = useState([{ value: \"0\", text: \"الكل\" }]);\r\n\r\n\r\n //values for search of Vichals\r\n // const [brand, setBrand] = useState(0);\r\n // const [group, setGroup] = useState( null);\r\n // const [year, setYear] = useState(null);\r\n // const [Stype, setStype] = useState(null);\r\n\r\n const [CatMain, setCatMain] = useState(null);\r\n const [SuPCat, setSupCat] = useState(null);\r\n const [SSuPCat, setSSupCat] = useState(null);\r\n\r\n const [Product, setPro] = useState(\"0\");\r\n\r\n const GetUrl = config.baseURL + 'details';\r\n\r\n // const [inputPro, setInputPro] = useState('');\r\n const [filterShow, setFilterShow] = useState(\"\")\r\n\r\n function SetProduct(data) {\r\n setPro(data.target.value);\r\n }\r\n\r\n const SendRequset = async () => {\r\n\r\n try {\r\n\r\n // if (\"caches\" in window) {\r\n // let url = \"Settings\";\r\n //\r\n // // Opening that particular cache\r\n // const cacheStorage = await caches.open(\"HJWeb\");\r\n // ;\r\n // // Fetching that particular cache data\r\n // const cachedResponse = await cacheStorage.match(\r\n // url\r\n // );\r\n // let data = await cachedResponse?.json();\r\n // setBrands(data.brands)\r\n // setProductGroups(data?.groups)\r\n // setTimeout(setProductModel(reverse(data?.models)), 1000);\r\n // setTimeout(setProductModelTypes(data?.productModels), 1000);\r\n // }\r\n\r\n } catch (error) {\r\n }\r\n\r\n try {\r\n axios.request({\r\n baseURL: '/',\r\n url: config.controllURL + lang + \"/api/Maintenance/Settings\",\r\n method: \"get\"\r\n }).then(settingResponse => {\r\n\r\n setBrands(settingResponse?.data?.brands)\r\n setProductGroups(settingResponse.data?.groups)\r\n // setTimeout(setProductModel(reverse(settingResponse?.data?.models)), 1000);\r\n // setTimeout(setProductModelTypes(settingResponse?.data?.productModels), 1000);\r\n setProductModelTypes(settingResponse?.data?.productModels);\r\n setProductModel(reverse(settingResponse?.data?.models));\r\n\r\n const data = new Response(JSON.stringify(settingResponse.data));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"HJWeb\").then((cache) => {\r\n cache.put(\"Settings\", data);\r\n\r\n });\r\n }\r\n\r\n }).catch(error => {\r\n console.log(error);\r\n\r\n });\r\n\r\n\r\n //---------------------------------------------------------------\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n\r\n\r\n const BodyBrands = {\r\n \"object\": \"InvBrands\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n }\r\n , \"option\": \"column\",\r\n \"Fields\": \"BrandID,DescriptionAr,DescriptionEn\",\r\n \"filters\": \" where IsEnabled =1\"\r\n\r\n };\r\n const requestBrands = axios.request({\r\n url: GetUrl,\r\n data: BodyBrands, method: \"POST\", responseType: \"json\"\r\n });\r\n\r\n const BodyProductGroups = {\r\n \"object\": \"InvProductGroups\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false,\r\n },\r\n \"Option\": \"Column\",\r\n \"Fields\": \"DescriptionAr,DescriptionEn,ProductGroupID,BrandID\"\r\n };\r\n const requestProductGroups = axios.request({\r\n url: GetUrl,\r\n data: BodyProductGroups, method: \"POST\", responseType: \"json\"\r\n });\r\n\r\n const BodyProductModel = {\r\n \"object\": \"InvProductModel\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n }\r\n };\r\n const requestProductModel = axios.request({\r\n url: GetUrl,\r\n data: BodyProductModel, method: \"POST\", responseType: \"json\"\r\n });\r\n\r\n const BodyProductModelTypes = {\r\n \"object\": \"InvProductModelTypes\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n }\r\n };\r\n const requestProductModelTypes = axios.request({\r\n url: GetUrl,\r\n data: BodyProductModelTypes, method: \"POST\", responseType: \"json\"\r\n });\r\n\r\n // const BodyEngineGroups = {\r\n // \"object\": \"Site_categorySP\",\r\n // \"ObjectSettings\": {\r\n // \"MetaData\": false\r\n // }\r\n // };\r\n const BodyEngineGroups = {\r\n \"name\": \"fun_Site_categorySP\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n }\r\n };\r\n const requestEngineGroups = axios.request({\r\n url: config.baseURL + \"func\",\r\n data: BodyEngineGroups, method: \"POST\", responseType: \"json\"\r\n });\r\n\r\n const BodyEngineGroupsSUP = {\r\n // \"object\": \"Site_SupCategory\",\r\n \"name\": \"fun_Site_SupCategory\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n }\r\n };\r\n const requestEngineGroupsSUP = axios.request({\r\n url: config.baseURL + \"func\",\r\n data: BodyEngineGroupsSUP, method: \"POST\", responseType: \"json\"\r\n });\r\n\r\n const BodyEngineGroupsSUP2 = {\r\n // \"object\": \"Site_ItemsSupCategory\",\r\n \"name\": \"fun_Site_ItemsSupCategory\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n }\r\n };\r\n const requestEngineGroupsSUP2 = axios.request({\r\n url: config.baseURL + \"func\",\r\n data: BodyEngineGroupsSUP2, method: \"POST\", responseType: \"json\"\r\n });\r\n\r\n\r\n await axios.all([requestEngineGroups, requestEngineGroupsSUP, requestEngineGroupsSUP2])\r\n .then(\r\n axios.spread(\r\n function (\r\n // Brands, \r\n // ProductGroups,\r\n // ProductModel,\r\n // ProductModelTypes,\r\n EngineGroups,\r\n EngineGroupsSup,\r\n EngineGroupsSup2\r\n ) {\r\n\r\n // setTimeout(setBrands(Brands.data.ApiObjectData),1000);\r\n // setTimeout(setProductGroups(ProductGroups.data.ApiObjectData),1000);\r\n // setTimeout(setProductModel(reverse(ProductModel.data.ApiObjectData)),1000);\r\n // setTimeout(setProductModelTypes(ProductModelTypes.data.ApiObjectData),1000);\r\n\r\n // setTimeout(setEngineGroups(EngineGroups.data.ApiObjectData), 1000);\r\n\r\n setEngineGroups(EngineGroups?.data);\r\n\r\n setTimeout(setEngineGroupsSup(EngineGroupsSup?.data), 500);\r\n setTimeout(setEngineGroupsSup2(EngineGroupsSup2?.data), 900);\r\n\r\n if(passEngineGroups){\r\n\r\n passEngineGroups({\r\n EngineGroups:EngineGroups?.data,\r\n EngineGroupsSup : EngineGroupsSup?.data,\r\n EngineGroupsSup2 :EngineGroupsSup2?.data\r\n })\r\n }\r\n\r\n })).catch(function (error) {\r\n console.log(error);\r\n });\r\n\r\n }\r\n\r\n function filterGroup(option) {\r\n\r\n\r\n console.log(\"filterGroup>>>>>>>>>>>>>>>:\", option);\r\n console.log(\"brabd>>>>>>>>>>>>>>>:\", brand);\r\n // setBrand(option);\r\n if (option == '0' || option == '') {\r\n dropDownResetter(() => {\r\n setFProductGroups([]);\r\n setFProductModelTypes([]);\r\n });\r\n return;\r\n }\r\n\r\n setFProductGroups(ProductGroups.filter(a => a.brandID == option));\r\n console.log(\"filterGroup>>>>>>>>>>>>>>>:\", FProductGroups);\r\n }\r\n\r\n function filterModelType(option) {\r\n // setResProductType(null);\r\n setResProductModel(null);\r\n\r\n setResGroup(option);\r\n if (option == '0' || option == '') {\r\n dropDownResetter(() => {\r\n setFProductModelTypes([]);\r\n });\r\n return;\r\n }\r\n setFProductModelTypes(ProductModelTypes.filter(a => a.productGroupID == option));\r\n }\r\n\r\n function filterYear(option) {\r\n setResProductModel(option.value);\r\n setIsHeadingBtn(false);\r\n }\r\n\r\n function filterModel(option) {\r\n setResProductModel(null); // 2000\r\n setResProductType(option);\r\n\r\n if (option == '0' || option == '') {\r\n dropDownResetter(() => {\r\n setResProductModel(null);\r\n });\r\n return;\r\n }\r\n }\r\n\r\n function filterCatSup1(option) {\r\n setCatMain(option);\r\n setoptionCatSup(engineGroupsSup.filter(a => a.GroupIDMain == option));\r\n // console.log(filterCatSup1);\r\n }\r\n\r\n function filterCatSup2(option) {\r\n setSupCat(option.value);\r\n setoptionCatSup2(engineGroupsSup2.filter(a => a.GroupIDMainSup1 === option.value));\r\n // console.log(filterCatSup1);\r\n }\r\n\r\n\r\n\r\n\r\n //for the search \r\n //query select Cat\r\n let Engine_Groups = CatMain;\r\n let Engine_GroupsSup = SuPCat;\r\n let Engine_GroupsSup2 = SSuPCat;\r\n\r\n useEffect(() => {\r\n // requestBrands(); requestProductGroups();requestProductModel();requestProductModelTypes();\r\n\r\n SendRequset();\r\n console.log(engineGroups);\r\n }, []);\r\n\r\n // useEffect(() => {\r\n // }, [engineGroups]);\r\n\r\n function getResultAll() {\r\n const Body = {\r\n // \"name\": \"Site_FeatchPartByAll\",\r\n // \"values\": {\r\n // \"search\": ''\r\n // }\r\n\r\n \"name\": \"Site_FeatchPartByTypeVehicle\",\r\n \"values\": {\r\n \"brand\": parseInt(brand),\r\n \"group\": resGroup,\r\n \"type\": resProductType,\r\n \"year\": resProductModel?.toString() ?? null,\r\n \"pageNumber\": 1,\r\n \"freeText\": \"\",\r\n \"productNo\": \"\",\r\n \"cat\": null,\r\n \"subCat\": null,\r\n \"subSubCat\": null\r\n }\r\n }\r\n const request = axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n axios.all([request])\r\n .then(\r\n axios.spread(\r\n function (ProductsWithDetails) {\r\n // setTimeout(setItems(ProductsWithDetails.data), 500);\r\n })\r\n )\r\n .catch(function (error) {\r\n // setItems([])\r\n console.log(error);\r\n });\r\n }\r\n\r\n function refreshPage(type, brandID = brand, resProductTypeQuery = resProductType, resGroupQuery = resGroup, resProductModelQuery = resProductModel) {\r\n // setTimeout(()=>{\r\n // window.location.reload(false);\r\n // }, 500);\r\n // console.log('page to reload')\r\n\r\n if (search) {\r\n if (type == \"Cat\") {\r\n setQueryProduct('');\r\n search.FunCat(Engine_Groups, Engine_GroupsSup, Engine_GroupsSup2);\r\n }\r\n if (type == \"Vehicle\") {\r\n setQueryProduct(null);\r\n search.FunVech(parseInt(brandID), resProductTypeQuery, resGroupQuery, resProductModelQuery);\r\n // isLoadingFuncProp(true);\r\n }\r\n if (type == \"ProductID\") {\r\n search.FunPro(Product);\r\n }\r\n isLoadingFuncProp(true);\r\n\r\n\r\n // console.log(\"fun search\",search)\r\n }\r\n }\r\n\r\n\r\n function show(section) {\r\n\r\n\r\n setVehicle(\"hidden\");\r\n setVin(\"hidden\");\r\n setPart(\"hidden\");\r\n setCategory(\"hidden\");\r\n\r\n switch (section) {\r\n case \"vehicle\":\r\n setVehicle(\"\");\r\n break;\r\n case \"vin\":\r\n setVin(\"\");\r\n break;\r\n case \"part\":\r\n setPart(\"\");\r\n break;\r\n case \"category\":\r\n setCategory(\"\");\r\n break;\r\n default:\r\n setVehicle(\"\");\r\n }\r\n }\r\n\r\n function getvalue(e) {\r\n console.log(e.target.value);\r\n }\r\n\r\n useEffect(() => {\r\n\r\n if (brand != null && brand != undefined && Brands.length > 0)\r\n filterGroup(brand)\r\n }, [brand, Brands]);\r\n\r\n // useEffect(() => {\r\n // try {\r\n //\r\n // if (Brands && Brands.length > 0) {\r\n //\r\n // setTimeout(() => {\r\n //\r\n // var bbr = query.get(\"brand\") ?? null;\r\n // console.log(\"MMM>>>>>>>>>>>>>>>>:\", bbr);\r\n // setBrand(bbr);\r\n // if (bbr) {\r\n //\r\n // filterGroup(bbr);\r\n // refreshPage(\"Vehicle\", bbr);\r\n // }\r\n //\r\n //\r\n // }, 1000)\r\n //\r\n // }\r\n //\r\n //\r\n // } catch (error) {\r\n //\r\n // }\r\n // }, [Brands]);\r\n\r\n // vehicle\r\n const [resGroup, setResGroup] = useState(null);\r\n useEffect(() => {\r\n if (FProductGroups.length != 0) {\r\n let resVal = resGroup;\r\n setResGroup(null);\r\n setTimeout(() => {\r\n setResGroup(resVal);\r\n filterModelType(resVal);\r\n }, 1000);\r\n }\r\n }, [FProductGroups]);\r\n\r\n const [resProductType, setResProductType] = useState(null);\r\n useEffect(() => {\r\n if (FProductModelTypes.length != 0) {\r\n let resVal = resProductType;\r\n setResProductType(null);\r\n setTimeout(() => {\r\n setResProductType(resVal);\r\n }, 1200);\r\n // setResProductType(Stype);\r\n }\r\n }, [FProductModelTypes]);\r\n\r\n const [resProductModel, setResProductModel] = useState(null);\r\n useEffect(() => {\r\n if (ProductModel.length != 0) {\r\n let resVal = resProductModel;\r\n setResProductModel(null);\r\n console.log(\"resVal: >>>>>>>>>>>>>>>>\", resVal);\r\n setTimeout(() => {\r\n setResProductModel(resVal);\r\n }, 1300);\r\n }\r\n }, [ProductModel]);\r\n // end\r\n\r\n // ProductID\r\n const [resProduct, setResProduct] = useState('');\r\n useEffect(() => {\r\n if (Product)\r\n setResProduct(Product);\r\n }, [Product]);\r\n\r\n // end\r\n\r\n useEffect(() => {\r\n let body = {\r\n \"brand\": brand,\r\n 'group': resGroup,\r\n 'type': resProductType,\r\n 'year': resProductModel\r\n };\r\n if (onChangValuesProp)\r\n onChangValuesProp(body);\r\n }, [brand, resGroup, resProductType, resProductModel]);\r\n\r\n const [isHeadingBtn, setIsHeadingBtn] = useState(false);\r\n\r\n // Define the function to be called from the parent\r\n const clearFiltersFunc = () => {\r\n console.log('Function called in child component!');\r\n // Add your functionality here\r\n setBrand(null);\r\n setResGroup(null);\r\n setResProductType(null);\r\n setResProductModel(null);\r\n // setYear(null);\r\n\r\n setResProduct(null);\r\n\r\n console.info(queryProduct);\r\n setQueryProduct(null);\r\n setPro(null);\r\n console.info(queryProduct);\r\n\r\n\r\n // clearFilterProp = false;\r\n setBrand(null);\r\n setIsHeadingBtn(true);\r\n\r\n setCatMain(null);\r\n setSupCat(null);\r\n setSSupCat(null);\r\n\r\n };\r\n\r\n // Expose the function to the parent component using useImperativeHandle\r\n useImperativeHandle(ref, () => ({\r\n clearFiltersFunc,\r\n }));\r\n\r\n useEffect(() => {\r\n if (resProductModel) {\r\n }\r\n }, [resProductModel]);\r\n\r\n return (\r\n <>\r\n\r\n {\r\n engineGroups.length != 0 && engineGroupsSup.length != 0 && engineGroupsSup2.length != 0 &&\r\n\r\n (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n )\r\n }\r\n\r\n {/*
    */}\r\n {/*
    */}\r\n {/* /!* {*!/*/}\r\n {/* /!* show(\"vehicle\");*!/*/}\r\n {/* /!* setFilterShow(\"vehicle\");*!/*/}\r\n {/* /!* }}*!/*/}\r\n {/* /!* className={\"text-20 \" + vehicle}*!/*/}\r\n {/* /!*>*!/*/}\r\n {/* /!* {trans(\"eparts:vehicle\")}*!/*/}\r\n {/* /!**!/*/}\r\n\r\n {/* /!**!/*/}\r\n\r\n {/* /!* {*!/*/}\r\n {/* /!* show(\"part\");*!/*/}\r\n {/* /!* setFilterShow(\"part\");*!/*/}\r\n {/* /!* }}*!/*/}\r\n {/* /!* className={\"text-20 \" + part}*!/*/}\r\n {/* /!*>*!/*/}\r\n {/* /!* {trans(\"eparts:product_id\")}*!/*/}\r\n {/* /!**!/*/}\r\n {/* /!* show(\"category\")}*!/*/}\r\n {/* /!* className={\"text-20 \" + category}*!/*/}\r\n {/* /!*>*!/*/}\r\n {/* /!* {trans(\"eparts:category\")}*!/*/}\r\n {/* /!**!/*/}\r\n {/*
    */}\r\n\r\n\r\n {/*
    */}\r\n\r\n {/* /!*{\"المركبات\"}*!/*/}\r\n {/* /!*
    *!/*/}\r\n {/* /!*
    *!/*/}\r\n\r\n\r\n {/* /!* filterGroup(option.value)}*!/*/}\r\n {/* /!* onfilter={(option) => {*!/*/}\r\n {/* /!* setResProductType(null);*!/*/}\r\n {/* /!* setResProductModel(null);*!/*/}\r\n {/* /!* setResGroup(null);*!/*/}\r\n\r\n {/* /!* setBrand(option.value.toString());*!/*/}\r\n {/* /!* }}*!/*/}\r\n {/* /!* isepart={true}*!/*/}\r\n {/* /!* options={[*!/*/}\r\n {/* /!* ...Brands?.map(B => {*!/*/}\r\n {/* /!* return {value: B.brandID.toString(), text: B.description};*!/*/}\r\n\r\n\r\n {/* /!* })]}*!/*/}\r\n {/* /!* />*!/*/}\r\n\r\n {/* /!* {*!/*/}\r\n {/* /!* setResProductType(null);*!/*/}\r\n {/* /!* setResProductModel(null);*!/*/}\r\n\r\n {/* /!* filterModelType(option.value);*!/*/}\r\n {/* /!* }*!/*/}\r\n {/* /!* }*!/*/}\r\n {/* /!* isepart={true}*!/*/}\r\n {/* /!* options={[*!/*/}\r\n {/* /!* ...FProductGroups.map(B => {*!/*/}\r\n\r\n {/* /!* return {value: B.productGroupID, text: B.description};*!/*/}\r\n\r\n\r\n {/* /!* })]}*!/*/}\r\n {/* /!* />*!/*/}\r\n\r\n {/* /!* {*!/*/}\r\n {/* /!* filterModel(e.value)*!/*/}\r\n {/* /!* }}*!/*/}\r\n {/* /!* isepart={true}*!/*/}\r\n {/* /!* options={[*!/*/}\r\n {/* /!* ...FProductModelTypes.map(B => {*!/*/}\r\n\r\n\r\n {/* /!* return {value: B.productTypeID, text: B.description};*!/*/}\r\n\r\n\r\n {/* /!* })]}*!/*/}\r\n {/* /!* />*!/*/}\r\n\r\n {/* /!* {*!/*/}\r\n {/* /!* // console.log(parseInt(B.modelID));*!/*/}\r\n\r\n {/* /!* return {value: B.modelID, text: B.modelID};*!/*/}\r\n {/* /!* })*!/*/}\r\n\r\n {/* /!* // ...[2015, 2016, 2020, 2030].map(B=>{*!/*/}\r\n {/* /!* //*!/*/}\r\n {/* /!* // return { value: B, text: B };*!/*/}\r\n {/* /!* // })*!/*/}\r\n {/* /!* ]}*!/*/}\r\n\r\n {/* /!* />*!/*/}\r\n\r\n {/* /!*
    *!/*/}\r\n\r\n {/* /!* /!*{Stype +\" ||&& :\"+ group +\" ||&& :\"+ year}*!/*!/*/}\r\n\r\n {/* /!* {*!/*/}\r\n {/* /!* isHeadingBtn == false && (*!/*/}\r\n {/* /!* resProductType && resGroup && resProductModel && (*!/*/}\r\n {/* /!* refreshPage(\"Vehicle\", brand)}*!/*/}\r\n {/* /!* to={\"/eparts/sereach?\" + \"brand=\" + brand + (resGroup ? \"&group=\" + resGroup : \"\") + (resProductType ? \"&type=\" + resProductType : \"\") + (resProductModel ? \"&year=\" + resProductModel : \"\")}*!/*/}\r\n {/* /!* className={\"btn btn-primary text-16 py-3 px-10 mr-4\"}*!/*/}\r\n {/* /!* >*!/*/}\r\n {/* /!* {trans(\"eparts:search\")}*!/*/}\r\n {/* /!* *!/*/}\r\n\r\n {/* /!* )*!/*/}\r\n {/* /!* )*!/*/}\r\n {/* /!* }*!/*/}\r\n\r\n {/* /!* {*!/*/}\r\n {/* /!* // isHeadingBtn == true && (*!/*/}\r\n {/* /!* // Stype && group && year && (*!/*/}\r\n {/* /!* // refreshPage(\"Vehicle\", brand)}*!/*/}\r\n {/* /!* // to={\"/eparts/sereach?\" + \"brand=\" + brand + (group ? \"&group=\" + group : \"\") + (Stype ? \"&type=\" + Stype : \"\") + (year ? \"&year=\" + year : \"\")}*!/*/}\r\n {/* /!* // className={\"btn btn-primary text-16 py-3 px-10 mr-4\"}*!/*/}\r\n {/* /!* // >*!/*/}\r\n {/* /!* // {trans(\"eparts:search\")}*!/*/}\r\n {/* /!* // *!/*/}\r\n {/* /!* //*!/*/}\r\n {/* /!* // )*!/*/}\r\n {/* /!* // )*!/*/}\r\n {/* /!* }*!/*/}\r\n {/* /!*
    *!/*/}\r\n\r\n {/* /!*
    *!/*/}\r\n {/* /!*
    *!/*/}\r\n {/* /!* *!/*/}\r\n {/* /!* *!/*/}\r\n {/* /!*
    *!/*/}\r\n {/* /!* {trans(\"eparts:search\")}*!/*/}\r\n {/* /!*
    *!/*/}\r\n\r\n {/* /!*{\"رقم الصنف\"}*!/*/}\r\n {/* /!*
    *!/*/}\r\n {/*
    */}\r\n {/*
    */}\r\n\r\n {/* {*/}\r\n {/* setQueryProduct(null);*/}\r\n {/* SetProduct(e);*/}\r\n {/* }*/}\r\n {/* }*/}\r\n {/* value={queryProduct}*/}\r\n {/* />*/}\r\n {/*
    */}\r\n\r\n {/* {*/}\r\n {/* resProduct && resProduct != null && resProduct != '' && resProduct != 0 ? (*/}\r\n {/* refreshPage(\"ProductID\")}*/}\r\n {/* to={\"/eparts/sereach?Product=\" + resProduct}*/}\r\n {/* className={\"btn btn-primary text-16 py-3 px-10 mr-4\"}*/}\r\n {/* >*/}\r\n {/* {trans(\"eparts:search\")}*/}\r\n {/* */}\r\n {/* ) : <>*/}\r\n {/* }*/}\r\n {/*
    */}\r\n {/*
    */}\r\n\r\n {/* /!*{\"الفئات\"}*!/*/}\r\n {/* {*/}\r\n {/* isIndex == false && (*/}\r\n {/*
    */}\r\n {/*
    */}\r\n {/*
    */}\r\n\r\n {/* {*/}\r\n {/* if (lang === \"ar\") {*/}\r\n {/* return {value: H.GroupIDMain, text: H.DescriptionAr};*/}\r\n {/* } else {*/}\r\n {/* return {value: H.GroupIDMain, text: H.DescriptionEn};*/}\r\n {/* }*/}\r\n {/* }*/}\r\n {/* )*/}\r\n {/* ]*/}\r\n\r\n {/* }*/}\r\n {/* onfilter={(e) => {*/}\r\n {/* filterCatSup1(e.value)*/}\r\n {/* }}*/}\r\n {/* />*/}\r\n\r\n {/* {*/}\r\n\r\n {/* if (lang === \"ar\") {*/}\r\n {/* return {value: B.GroupIDMainSup1, text: B.DescriptionAr};*/}\r\n {/* } else {*/}\r\n {/* return {value: B.GroupIDMainSup1, text: B.DescriptionEn};*/}\r\n {/* }*/}\r\n\r\n {/* })*/}\r\n {/* ]}*/}\r\n {/* onfilter={filterCatSup2}*/}\r\n\r\n {/* />*/}\r\n\r\n {/* {*/}\r\n\r\n {/* if (lang === \"ar\") {*/}\r\n {/* return {value: B.GroupIDMainSup2, text: B.DescriptionAr};*/}\r\n {/* } else {*/}\r\n {/* return {value: B.GroupIDMainSup2, text: B.DescriptionEn};*/}\r\n {/* }*/}\r\n\r\n {/* })]}*/}\r\n {/* onfilter={setCatSup3}*/}\r\n {/* />*/}\r\n\r\n\r\n {/* {*/}\r\n {/* (Engine_Groups || Engine_GroupsSup || Engine_GroupsSup2) ? (*/}\r\n {/* refreshPage(\"Cat\")}*/}\r\n {/* // to={\"/eparts/sereach?\" + \"CatMain=\" + CatMain + \"&SuPCat=\" + SuPCat + \"&SSuPCat=\" + SSuPCat}*/}\r\n {/* onClick={async () => {*/}\r\n {/* setCatMain(null);*/}\r\n {/* setSupCat(null);*/}\r\n {/* setSSupCat(null);*/}\r\n\r\n {/* if (filterShow.toLowerCase() == 'part') {*/}\r\n {/* await refreshPage(\"ProductID\");*/}\r\n {/* } else if (filterShow.toLowerCase() == \"vehicle\") {*/}\r\n {/* await refreshPage(\"Vehicle\", brand);*/}\r\n {/* }*/}\r\n\r\n {/* // await refreshPage(\"Vehicle\", brand);*/}\r\n {/* // getResultAll()*/}\r\n {/* }}*/}\r\n {/* to={filterShow.toLowerCase() != '' ?*/}\r\n {/* (*/}\r\n {/* filterShow.toLowerCase() == 'part'*/}\r\n {/* ? \"/eparts/sereach?Product=\" + resProduct*/}\r\n {/* : \"/eparts/sereach?\" + \"brand=\" + brand + (resGroup ? \"&group=\" + resGroup : \"\") + (resProductType ? \"&type=\" + resProductType : \"\") + (resProductModel ? \"&year=\" + resProductModel : \"\")*/}\r\n {/* ) : \"/eparts/sereach\"*/}\r\n {/* }*/}\r\n {/* className={\"btn btn-primary text-16 py-3 px-10 mr-4 \"}*/}\r\n {/* >*/}\r\n {/* /!*{trans(\"eparts:search\")}*!/*/}\r\n {/* {\"جميع الفئات\"}*/}\r\n {/* */}\r\n {/* ) : <>*/}\r\n {/* }*/}\r\n {/*
    */}\r\n\r\n\r\n {/*
    */}\r\n {/*
    */}\r\n {/* )*/}\r\n {/* }*/}\r\n\r\n {/*
    */}\r\n \r\n );\r\n}\r\n);\r\nexport default PartSearch;\r\n","import { Fragment, useEffect, useRef, useState, useContext } from \"react\";\r\nimport { DropDownContext } from \"../../pages/eparts/components/partSearch\";\r\nimport ErrorLabel from '../../components/error';\r\nimport Skeleton from 'react-loading-skeleton'\r\nimport { InputField } from \"../_input/_input\"\r\nimport { useTranslation } from \"react-i18next\";\r\nexport function DropDownInput({\r\n styles,\r\n title,\r\n placeholder,\r\n disabled = false,\r\n className,\r\n isSecondary,\r\n inputName,\r\n options = [],\r\n onSelect,\r\n fieldTextClass,\r\n classDropdownField,\r\n defaultOption = null,\r\n onfilter,\r\n isepart,\r\n isLoading = false,\r\n selectedValue = null,\r\n errorLabel,\r\n force = false, roundedFull = ''\r\n}) {\r\n\r\n const { t: trans, i18n } = useTranslation([\"info\"]);\r\n let lang = i18n.language;\r\n let languageDir = \"language-\" + lang;\r\n const optionsRef = useRef(null);\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [selectedOption, setSelectedOption] = useState((defaultOption != null && defaultOption != undefined) ? defaultOption : { text: '', value: '' });\r\n const [filterOptions, setfilterOptions] = useState(options);\r\n\r\n useEffect(() => {\r\n\r\n // console.log(\">>>>>>>>>>>>>>>>>>options:\",options);\r\n setfilterOptions(options);\r\n\r\n if (options != null && options.length > 0) {\r\n funSelectValueOption();\r\n }\r\n\r\n }, [options]);\r\n useEffect(() => {\r\n\r\n /**\r\n * if clicked on outside of element\r\n */\r\n function handleClickOutside(event) {\r\n if (optionsRef.current && !optionsRef.current.contains(event.target) && isOpen === true) {\r\n setIsOpen(false);\r\n }\r\n }\r\n // if(placeholder != null || placeholder != undefined){\r\n // alert(placeholder);\r\n // let resultValue = options.find((e)=>e.value === placeholder);\r\n // selectOption(resultValue); \r\n // }\r\n // Bind the event listener\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => {\r\n // Unbind the event listener on clean up\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, [optionsRef, isOpen]);\r\n\r\n\r\n\r\n function selectOption(option) {\r\n if (onSelect) {\r\n const val = option.value !== '0' ? option.value : '';\r\n onSelect(val);\r\n }\r\n setIsOpen(false);\r\n setSelectedOption(option);\r\n if (onfilter)\r\n if (defaultOption != option.text)\r\n onfilter(option);\r\n // if (isepart)\r\n //onfilter(option);\r\n\r\n }\r\n\r\n const funSelectValueOption = () => {\r\n // console.log(\"options>>>>>>>>>>>>>\",title ,\": \",options);\r\n // console.log(\"selectedValue>>>>>>>>>>>>>\",selectedValue);\r\n\r\n if (selectedValue == null || selectedValue == undefined || selectedValue == '') {\r\n setSelectedOption((defaultOption != null && defaultOption != undefined)\r\n ? defaultOption\r\n : { value: \"0\", text: placeholder ? placeholder : (lang == 'en' ? 'Choose value' : 'إختيار قيمة') }\r\n\r\n );\r\n } else {\r\n\r\n var vv = options.find(item => item?.value == selectedValue) ?? null;\r\n setSelectedOption(vv ? vv : { text: '', value: '' });\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n\r\n funSelectValueOption();\r\n\r\n }, [selectedValue]);\r\n\r\n return (\r\n\r\n \r\n\r\n {\r\n inputName ? (\r\n \r\n ) : null\r\n }\r\n\r\n
    \r\n\r\n {\r\n title &&\r\n
    {title}\r\n
    \r\n }\r\n\r\n\r\n
    \r\n
    {\r\n if (!disabled)\r\n setIsOpen(!isOpen);\r\n }}>\r\n
    \r\n {\r\n\r\n selectedOption.text\r\n\r\n }\r\n\r\n\r\n
    \r\n {\r\n\r\n isLoading ? \r\n {\"\"}\r\n \r\n : null\r\n }\r\n
    \r\n \"arrow\"\r\n
    \r\n\r\n
    \r\n \r\n {\r\n\r\n isLoading ?\r\n
    \r\n
      \r\n
    • \r\n \r\n
    • \r\n
    • \r\n \r\n
    • \r\n
    • \r\n \r\n
    • \r\n\r\n
    \r\n
    \r\n :\r\n\r\n !disabled &&
    \r\n\r\n {\r\n filterOptions && options && options.length > 10 &&\r\n < InputField\r\n extraClasses={\"\"}\r\n placeholder={trans(\"info:search_now\")}\r\n onChangeValue={(value) => {\r\n if (value.target.value) {\r\n const filterData = options?.filter(a => a.text.includes(value.target.value));\r\n setfilterOptions(filterData);\r\n } else {\r\n setfilterOptions(options);\r\n }\r\n\r\n }} />\r\n\r\n }\r\n
      \r\n {\r\n filterOptions?.map((option, index) => {\r\n\r\n return (\r\n
    • {\r\n selectOption(option);\r\n // const val = option.value !== '0'? option.value : '';\r\n // onSelect(val);\r\n }} className={(((index % 2) == 0) ? \" bg-gray-lighter \" : \"\") + ((option && selectedOption && option?.value == selectedOption?.value) ? \" bg-gray-light \" : \"\")} >\r\n {option.text}\r\n {(option?.buyOnline == true || option?.buyOnline == 1) && {trans(\"info:Available_for_purchase_online\")}}\r\n
    • \r\n );\r\n\r\n }\r\n )\r\n }\r\n\r\n
    \r\n
    \r\n }\r\n\r\n\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n );\r\n}\r\n","import { Base64 } from 'js-base64';\r\nimport config from '../../../configuration/config.json';\r\nexport default function ContactTile({ icon, name, value, type }) {\r\n\r\n return (\r\n \r\n );\r\n}","import { useEffect, useState } from 'react';\r\nimport { Map } from \"../../../pages/contact/components/map\";\r\nimport { InputField } from \"../../_input/_input\";\r\nimport { TextArea } from \"../../_input/_textArea\";\r\nimport { FormButton } from \"../../_input/_button\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport {formValidate } from '../../../utils/validation';\r\nimport config from '../../../configuration/config.json';\r\nimport { PhoneInput } from \"../../../components/_input/_phoneInput\";\r\nimport PhoneDropDown from \"../../../components/_input/_phoneDropDown\";\r\nimport { DropDownInput } from '../../../components/_input/_dropdown';\r\nimport axios from \"axios\";\r\nimport ContactTile from '../../../pages/contact/components/contactTile';\r\nimport { toast } from 'react-toastify';\r\n\r\n\r\n\r\nexport function NavContact({ ...prop }) {\r\n\r\n const { t: trans } = useTranslation([\"common\", \"form\", \"info\", \"inputs\"]);\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n\r\n const [message, setMessage] = useState({\r\n fullName: '',\r\n phone: '',\r\n email: '',\r\n subject: '',\r\n messageContent: ''\r\n });\r\n\r\n const [branches, setBranches] = useState([]);\r\n const [contacts, setContacts] = useState([{}]);\r\n const [selectedBranch, setSelectedBranch] = useState(null);\r\n const [subjects, setSubjects] = useState([]);\r\n function rad(x) { return x * Math.PI / 180; }\r\n\r\n function find_closest_marker() {\r\n navigator.geolocation.getCurrentPosition((position) => {\r\n\r\n const currentPosition = {\r\n lat: position.coords.latitude,\r\n lng: position.coords.longitude\r\n };\r\n var lat = currentPosition.lat;\r\n var lng = currentPosition.lng;\r\n var R = 6371; // radius of earth in km\r\n var distances = [];\r\n var closest = -1;\r\n for (let i = 0; i < branches.length; i++) {\r\n var mlat = parseFloat(branches.latitude);\r\n var mlng = parseFloat(branches.longitude);\r\n var dLat = rad(mlat - lat);\r\n var dLong = rad(mlng - lng);\r\n var a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +\r\n Math.cos(rad(lat)) * Math.cos(rad(lat)) * Math.sin(dLong / 2) * Math.sin(dLong / 2);\r\n var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));\r\n var d = R * c;\r\n distances[i] = d;\r\n if (closest == -1 || d < distances[closest]) {\r\n closest = i;\r\n }\r\n }\r\n setSelectedBranch(branches[closest]);\r\n });\r\n }\r\n\r\n useEffect(async () => {\r\n try {\r\n const response = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/contact/contact/\",\r\n method: \"get\",\r\n });\r\n setBranches(response.data.branches);\r\n setContacts(response.data.contacts);\r\n setSubjects(response.data.subjects.map(item => { return { text: item.description, value: item.id } }));\r\n\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }, []);\r\n\r\n\r\n\r\n useEffect(async () => {\r\n find_closest_marker();\r\n }, [branches]);\r\n\r\n useEffect(async () => {\r\n if (selectedBranch != null) {\r\n const allContects = contacts.filter(e =>\r\n e.branchId == selectedBranch.name\r\n );\r\n setContacts(allContects);\r\n }\r\n }, [selectedBranch]);\r\n\r\n\r\n const schema = prop.schema;\r\n\r\n const [error, setError] = useState({});\r\n\r\n const submitRequest = async (e) => {\r\n e.preventDefault();\r\n\r\n\r\n const result = formValidate(schema, message) ?? {};\r\n setError(result);\r\n try {\r\n if (Object.keys(result).length === 0) {\r\n console.log(Object.keys(error).length);\r\n const response = await axios.post(\r\n config.baseURL + 'add',\r\n {\r\n \"object\": \"siteContactMessages\",\r\n \"values\": {\r\n \"name\": message.fullName,\r\n \"email\": message.email,\r\n \"phoneNumber\": message.phone,\r\n \"subject\": Number(message.subject),\r\n \"message\": message.messageContent,\r\n }\r\n }\r\n );\r\n if (response.status === 200 || response.status === 201) {\r\n const defaultValue = { ...message };\r\n setMessage({\r\n fullName: '',\r\n phone: defaultValue.phone,\r\n email: '',\r\n subject: '',\r\n messageContent: ''\r\n });\r\n setError({});\r\n toast.success(trans(\"info:message_sent_successfully\"));\r\n }\r\n }\r\n } catch (e) {\r\n\r\n }\r\n\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    submitRequest(e)\r\n }>\r\n

    \r\n {trans(\"common:contact-us\")}\r\n

    \r\n\r\n
    \r\n
    \r\n {\r\n const val = { ...message };\r\n val.fullName = e.target.value;\r\n setMessage(val);\r\n }\r\n }\r\n />\r\n {\r\n const val = { ...message };\r\n val.phone = `+${countryCode}${phoneNumber}`;\r\n setMessage(val);\r\n }}\r\n />\r\n\r\n {\r\n const val = { ...message };\r\n val.email = e.target.value;\r\n setMessage(val);\r\n }\r\n }\r\n />\r\n {\r\n const val = { ...message };\r\n val.subject = String(e);\r\n setMessage(val);\r\n }}\r\n name='subject'\r\n // className={\"flex-grow-1\"}\r\n defaultOption={{ text: trans(\"form:subject\"), value: 0 }}\r\n options={[...subjects]}\r\n errorLabel={error?.subject}\r\n />\r\n {\r\n console.log(e);\r\n const val = { ...message };\r\n val.messageContent = e;\r\n setMessage(val);\r\n }\r\n }\r\n />\r\n\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n {trans(\"common:contact-info\")}\r\n

    \r\n\r\n
    \r\n {\r\n contacts?.map((contact, index) => {\r\n return (\r\n \r\n );\r\n })\r\n }\r\n\r\n
    \r\n
    \r\n
    \r\n

    console.log(find_closest_marker())}>\r\n {trans(\"common:locations\")}\r\n

    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}","export default function Popup (props){\r\n return (\r\n props.show ?
    \r\n {\r\n props.children\r\n }\r\n
    : null\r\n );\r\n}","import {createSlice} from '@reduxjs/toolkit'\r\n\r\nexport const cartSlice = createSlice({\r\n name: 'cart',\r\n initialState: {\r\n count: 0,\r\n },\r\n reducers: {\r\n changeCount: (nav, action) => {\r\n nav.count = action.payload.count;\r\n },\r\n \r\n\r\n }\r\n})\r\n\r\n// Action creators are generated for each case reducer function\r\nexport const {changeCount} = cartSlice.actions\r\n\r\nexport default cartSlice.reducer","export default function PopupHeader({welcomeTitle , subTitle , closePopUp}){\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n return(\r\n
    \r\n closePopUp()}>×\r\n
    \r\n {\r\n lang==\"ar\" ?\r\n \r\n :\r\n \r\n\r\n }\r\n \r\n
    \r\n

    {welcomeTitle}

    \r\n

    {subTitle}

    \r\n
    \r\n
    \r\n );\r\n}","import config from '../configuration/config.json';\r\nimport crypto from 'crypto-js';\r\nexport const User_Data_Key = 'USER_DATA_KEY';\r\nexport const saveData = (key,value , encryptData = true)=>{\r\n let transformedValue = value; \r\nif(encryptData){\r\n transformedValue = crypto.AES.encrypt(JSON.stringify(value),config.cryptoKey).toString();\r\n}\r\nwindow.localStorage.setItem(key,transformedValue);\r\n};\r\nexport const getData = (key,descryptData = false)=>{\r\n let keyData = window.localStorage.getItem(key);\r\n if(descryptData){\r\n return crypto.AES.decrypt(keyData, config.cryptoKey).toString(crypto.enc.Utf8);\r\n }\r\n return keyData;\r\n}","import {add} from \"cart-localstorage\";\r\nimport {toast} from \"react-toastify\";\r\nimport {Translation} from 'react-i18next';\r\n\r\n\r\nexport function addToCart({id,MiniDownPayment=0, name=\"\",nameEn=\"\",modelTypeID, modelCode=\"\",price=1, brand,brandEn,\r\n image,Tax=0,Discount=0,colorId=\"\",Type,modelTypes=\"\",modelTypesEn,year=\"\",Engine_Groups=\"\",productID=\"\",group,groupEn,BrandID,colorName=\"\",colorNameEn,packageId=\"\",Orderdate=\"\"}) {\r\n const success = \r\n {\r\n (t, {i18n}) =>

    {t('add_to_cart')}

    \r\n }\r\n
    \r\n\r\n const error = \r\n {\r\n (t, {i18n}) =>

    {t('unexpected_errer')}

    \r\n }\r\n
    \r\n \r\n if (id != null ) {\r\n\r\n var objectCart ={\r\n id: id,\r\n name: name,\r\n nameEn: nameEn,\r\n price:price, \r\n brand: brand, \r\n brandEn: brandEn,\r\n image: image,\r\n Tax:Tax,\r\n Discount:Discount,\r\n Type:Type,\r\n colorID:colorId,\r\n BrandID:BrandID,\r\n colorName:colorName,\r\n colorNameEn:colorNameEn,\r\n groupID:group,\r\n groupEn:groupEn,\r\n modelTypes:modelTypes,\r\n modelTypesEn:modelTypesEn,\r\n year:year,\r\n modelTypeID:modelTypeID,\r\n Engine_Groups:Engine_Groups,\r\n ProductID:productID\r\n ,MiniDownPayment:MiniDownPayment\r\n ,modelCode:modelCode\r\n ,packageId:packageId\r\n ,Orderdate:Orderdate\r\n \r\n }\r\n console.log(\"addToCart>>>>>>>>>>>>:\",objectCart);\r\n add(objectCart);\r\n\r\n toast.success(success, {\r\n position: \"bottom-left\",\r\n autoClose: 5000,\r\n hideProgressBar: false,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n });\r\n\r\n try {\r\n window.dispatchEvent(new Event(\"storage\"));\r\n } catch (error) {\r\n\r\n }\r\n \r\n } else {\r\n toast.error(
    {error}
    , {\r\n position: \"bottom-left\",\r\n autoClose: 5000,\r\n hideProgressBar: false,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n });\r\n }\r\n}","import axios from \"axios\";\r\nimport { groupBy, includes, mapValues, omit } from \"lodash\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport config from '../../configuration/config.json';\r\nimport { toast } from \"react-toastify\";\r\nimport { Translation } from 'react-i18next';\r\nimport { quantity as addQuantityCart, remove, exists, list } from \"cart-localstorage\";\r\nimport { addToCart } from \"../../_functions/cart\";\r\nimport { getData, saveData, User_Data_Key } from \"../../utils/localStorageManager\";\r\nexport const useUserCart = () => {\r\n const { t: trans, i18n } = useTranslation(['info', 'new']);\r\n let lang = i18n.language;\r\n const USER_CART_ITEMS = '__cart';\r\n const [cartItems, setcartItems] = useState(() => {\r\n return JSON.parse(getData(USER_CART_ITEMS, false)) ?? []\r\n });\r\n const [itemsLength, setItemslength] = useState(cartItems?.length ?? 0);\r\n\r\n useEffect(() => {\r\n setcartItems(JSON.parse(getData(USER_CART_ITEMS, false)) ?? []);\r\n\r\n }, [itemsLength]);\r\n\r\n const success = \r\n {\r\n (t, { i18n }) =>

    {t('add_to_cart')}

    \r\n }\r\n
    \r\n\r\n const error = \r\n {\r\n (t, { i18n }) =>

    {t('unexpected_errer')}

    \r\n }\r\n
    \r\n\r\n\r\n const initSignIN = async () => {\r\n try {\r\n const guid = getData('secretKey');\r\n console.log('initSignIN guid!!!', guid);\r\n if (guid) {\r\n\r\n const res = await list().map(async (item, index) => {\r\n\r\n\r\n\r\n await changecartItem(item?.ProductID, item?.colorID, item?.modelTypeID, item?.quantity, item?.modelCode, item?.packageId, null, item?.Orderdate, item?.year, false);\r\n\r\n\r\n\r\n\r\n if (index + 1 == list().length) {\r\n await init();\r\n\r\n }\r\n })\r\n\r\n if (list().length == 0) {\r\n await init();\r\n\r\n }\r\n\r\n\r\n console.log('after changecartItem goo to >>>>>>>>>:');\r\n\r\n } else {\r\n // toast.error(trans(\"info:login_first\"));\r\n await init();\r\n }\r\n } catch (error) {\r\n console.log('sorry there is an error happened !!!', error);\r\n await init();\r\n }\r\n };\r\n // to initailize the user favorite items\r\n const init = async () => {\r\n\r\n console.log('init >>>>>>>>>>>.:');\r\n try {\r\n const guid = getData('secretKey');\r\n console.log('guid!!!', guid);\r\n if (guid) {\r\n await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"SiteFetchUserCartItems\",\r\n \"Values\": {\r\n \"UserID\": String(guid)\r\n }\r\n }\r\n ).then(async response => {\r\n console.log('SiteFetchUserCartItems response:', response);\r\n var _products = response.data.map(item => {\r\n return {\r\n id: item?.ProductID + (item?.colorID ? \"-\" + item?.colorID : \"\") + (item?.Type ? \"-\" + item?.Type : \"\") + (item?.modelCode ? \"-\" + item?.modelCode : \"\") + (item?.packageId ? \"-\" + item?.packageId : \"\"),\r\n name: item?.DescriptionAr,\r\n nameEn: item?.DescriptionEn,\r\n price: item?.SalesPrice,\r\n brand: item?.BrandDescriptionAr,\r\n brandEn: item?.BrandDescriptionEn,\r\n group: item?.Group,\r\n year: item?.year,\r\n groupEn: item?.[\"Group English\"],\r\n image: item?.ProductImage,\r\n Tax: 0,\r\n year: item?.year,\r\n Discount: item?.SalesPriceDiscount,\r\n Type: item?.packageId ? \"Bouquet\" : (item?.ItemType == \"SpareParts\" ? \"part\" : (item?.ItemType == \"MaintenanceService\" ? \"service\" : item?.ItemType)),\r\n colorId: item?.colorID,\r\n colorID: item?.colorID,\r\n colorName: item?.colorNameAr,\r\n colorNameEn: item?.colorNameEn,\r\n BrandID: item?.BrandID,\r\n groupID: item?.CarGroupID,\r\n modelTypes: item?.modelTypesAr,\r\n modelTypesEn: item?.modelTypesEn,\r\n engineGroups: 0,\r\n modelTypeID: item?.Type,\r\n productNo: item?.ProductNo,\r\n ProductID: item?.ProductID,\r\n quantity: item?.QTY ? item?.QTY : 1\r\n , modelCode: item?.modelCode\r\n , packageId: item?.packageId,\r\n MiniDownPayment: item?.MiniDownPayment,\r\n Orderdate: item?.Orderdate\r\n\r\n }\r\n\r\n });\r\n\r\n\r\n saveData(USER_CART_ITEMS, JSON.stringify(_products), false);\r\n console.log('USER_CART_ITEMS !!!', _products);\r\n setcartItems(_products);\r\n\r\n try {\r\n window.dispatchEvent(new Event(\"storage\"));\r\n } catch (error) {\r\n\r\n }\r\n\r\n }).catch(err => {\r\n console.log(err);\r\n saveData(USER_CART_ITEMS, JSON.stringify([]), false);\r\n console.log('USER_CART_ITEMS !!!', []);\r\n setcartItems([]);\r\n try {\r\n window.dispatchEvent(new Event(\"storage\"));\r\n } catch (error) {\r\n\r\n }\r\n });\r\n } else {\r\n // toast.error(trans(\"info:login_first\"));\r\n }\r\n } catch (error) {\r\n console.log('sorry there is an error happened !!!', error);\r\n }\r\n\r\n };\r\n // to check if the item is favorite or not\r\n const isCartItem = (item) => {\r\n try {\r\n return includes(cartItems, item);\r\n } catch (error) {\r\n console.log('Has an error when checking the favorite item,', error);\r\n }\r\n };\r\n // to change the state of the favorite item [add-delete of found]\r\n const changecartItem = async (productID, colorID = null, modelTypeID = null, quantity = 1, modelCode = null, packageId = null, objectProduct = {}, Orderdate = null, year = null, isGetInitData = true) => {\r\n let returnValue = null;\r\n try {\r\n const isLogin = getData('isAuthenticated');\r\n if (isLogin) {\r\n\r\n const { id } = JSON.parse(getData(User_Data_Key, true));\r\n const userID = Number(id.toString().split('_')[1]);\r\n console.log(\"userID:\", userID);\r\n\r\n console.log(\"ProductID:\", productID);\r\n console.log(\"quantity:\", quantity);\r\n var colorIDSelect = colorID ? ` and colorID='${colorID}' ` : \" \";\r\n var modelTypeIDSelect = modelTypeID ? ` and modelTypeID='${modelTypeID}' ` : \" \";\r\n var modelCodeSelect = modelCode ? ` and modelCode='${modelCode}' ` : \" \";\r\n var packageIdSelect = packageId ? ` and packageId='${packageId}' ` : \" \";\r\n var yearSelect = year ? ` and year='${year}' ` : \" \";\r\n const itemsDetails = await cartItemsDetails(userID, productID, colorID, modelTypeID, modelCode, packageId);\r\n\r\n\r\n if (itemsDetails && itemsDetails?.length > 0) {\r\n\r\n var newQTY = (quantity + itemsDetails[0]?.QTY) ? (quantity + itemsDetails[0]?.QTY) : 1;\r\n\r\n newQTY = newQTY > 0 ? newQTY : 1;\r\n\r\n returnValue = await axios.put(\r\n config.baseURL + 'update',\r\n {\r\n \"Object\": \"WebUserCart\",\r\n \"values\": {\r\n \"QTY\": newQTY\r\n }\r\n ,\r\n \"Filters\": `where WebUserID = '${userID}' and ProductID = '${productID}' ${colorIDSelect} ${modelTypeIDSelect} ${modelCodeSelect} ${yearSelect} ${packageIdSelect} `\r\n }\r\n ).then(async response => {\r\n console.log(\"response update:\", response);\r\n\r\n if (quantity > 0 && isGetInitData == true)\r\n toast.success(success, {\r\n position: \"bottom-left\",\r\n autoClose: 5000,\r\n hideProgressBar: false,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n });\r\n\r\n //----------------------\r\n if (isGetInitData == true)\r\n return await init();\r\n\r\n }).catch(err => {\r\n console.log(err);\r\n\r\n\r\n if (isGetInitData == true) {\r\n\r\n toast.error(
    {error}
    , {\r\n position: \"bottom-left\",\r\n autoClose: 5000,\r\n hideProgressBar: false,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n });\r\n }\r\n\r\n\r\n });\r\n } else {\r\n returnValue = await axios.post(\r\n config.baseURL + 'add',\r\n {\r\n \"Object\": \"WebUserCart\",\r\n \"values\": {\r\n \"WebUserID\": userID,\r\n \"ProductID\": productID,\r\n \"ColorID\": colorID,\r\n \"modelTypeID\": modelTypeID,\r\n \"QTY\": quantity,\r\n \"modelCode\": modelCode,\r\n \"year\":year,\r\n \"packageId\": packageId ? packageId + \"\" : null,\r\n \"Orderdate\": Orderdate,\r\n }\r\n }\r\n ).then(async response => {\r\n console.log(\"response add:\", response);\r\n\r\n\r\n if (isGetInitData == true) {\r\n\r\n toast.success(success, {\r\n position: \"bottom-left\",\r\n autoClose: 5000,\r\n hideProgressBar: false,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n });\r\n }\r\n\r\n\r\n //--------------------------\r\n if (isGetInitData == true)\r\n return await init();\r\n\r\n }).catch(err => {\r\n console.log(\"catch add WebUserCart>>:\", err);\r\n\r\n if (isGetInitData == true) {\r\n toast.error(
    {error}
    , {\r\n position: \"bottom-left\",\r\n autoClose: 5000,\r\n hideProgressBar: false,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n });\r\n }\r\n\r\n });\r\n }\r\n } else {\r\n // toast.error(trans(\"info:login_first\"));\r\n console.log(\"add cart objectProduct:\", objectProduct);\r\n if (objectProduct?.id && exists(objectProduct?.id)) {\r\n console.log(\"addQuantityCart\", objectProduct);\r\n addQuantityCart(objectProduct?.id, quantity);\r\n\r\n toast.success(success, {\r\n position: \"bottom-left\",\r\n autoClose: 5000,\r\n hideProgressBar: false,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n });\r\n\r\n } else {\r\n console.log(\"addToCart\");\r\n addToCart(objectProduct);\r\n }\r\n\r\n\r\n\r\n }\r\n } catch (err) {\r\n console.log(err);\r\n\r\n }\r\n\r\n\r\n\r\n console.log(\"returnValue:\", returnValue);\r\n return returnValue;\r\n };\r\n\r\n\r\n const removecartItems = async (productID, colorID = null, modelTypeID = null, modelCode = null, cartID, packageId = null) => {\r\n\r\n let returnValue = null;\r\n try {\r\n const isLogin = getData('isAuthenticated');\r\n if (isLogin) {\r\n\r\n const { id } = JSON.parse(getData(User_Data_Key, true));\r\n const userID = Number(id.toString().split('_')[1]);\r\n console.log(\"userID:\", userID);\r\n\r\n console.log(\"ProductID:\", productID);\r\n var colorIDSelect = colorID ? ` and colorID='${colorID}' ` : \" \";\r\n var modelTypeIDSelect = modelTypeID ? ` and modelTypeID='${modelTypeID}' ` : \" \";\r\n var modelCodeSelect = modelCode ? ` and modelCode='${modelCode}' ` : \" \";\r\n var packageIdSelect = packageId ? ` and packageId='${packageId}' ` : \" \";\r\n returnValue = await axios.request({\r\n url: config.baseURL + 'delete',\r\n data: {\r\n \"Object\": \"WebUserCart\",\r\n \"Filters\": `where WebUserID = '${userID}' and ProductID = '${productID}' ${colorIDSelect} ${modelTypeIDSelect} ${modelCodeSelect} ${packageIdSelect} `\r\n },\r\n method: \"delete\"\r\n , responseType: \"json\"\r\n }).then(async response => {\r\n console.log(\"response update:\", response);\r\n\r\n\r\n return await init();\r\n\r\n }).catch(err => {\r\n console.log(err);\r\n\r\n });\r\n\r\n } else {\r\n // toast.error(trans(\"info:login_first\"));\r\n remove(cartID ? cartID : productID);\r\n }\r\n } catch (err) {\r\n console.log(err);\r\n\r\n }\r\n\r\n console.log(\"returnValue:\", returnValue);\r\n return returnValue;\r\n };\r\n\r\n\r\n const removeAllcartItems = async () => {\r\n\r\n let returnValue = null;\r\n try {\r\n const isLogin = getData('isAuthenticated');\r\n if (isLogin) {\r\n const { id } = JSON.parse(getData(User_Data_Key, true));\r\n const userID = Number(id.toString().split('_')[1]);\r\n console.log(\"userID:\", userID);\r\n\r\n returnValue = await axios.request({\r\n url: config.baseURL + 'delete',\r\n data: {\r\n \"Object\": \"WebUserCart\",\r\n \"Filters\": `where WebUserID = '${userID}' `\r\n },\r\n method: \"delete\"\r\n , responseType: \"json\"\r\n }).then(async response => {\r\n console.log(\"response update:\", response);\r\n\r\n\r\n return await init();\r\n\r\n }).catch(err => {\r\n console.log(err);\r\n\r\n });\r\n\r\n } else {\r\n toast.error(trans(\"info:login_first\"));\r\n }\r\n } catch (err) {\r\n console.log(err);\r\n\r\n }\r\n\r\n console.log(\"returnValue:\", returnValue);\r\n return returnValue;\r\n };\r\n\r\n // to fetch favorite items with details\r\n const cartItemsDetails = async (userID, productID, colorID = null, modelTypeID = null, modelCode = null, packageId = null) => {\r\n\r\n console.log('cartItemsDetails!!', productID);\r\n var colorIDSelect = colorID ? ` and colorID='${colorID}' ` : \" \";\r\n var modelTypeIDSelect = modelTypeID ? ` and modelTypeID='${modelTypeID}' ` : \" \";\r\n var modelCodeSelect = modelCode ? ` and modelCode='${modelCode}' ` : \" \";\r\n var packageIdSelect = packageId ? ` and packageId='${packageId}' ` : \" \";\r\n var result = [];\r\n await axios.request({\r\n url: config.baseURL + 'details',\r\n data: {\r\n \"Object\": \"WebUserCart\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n },\r\n \"Option\": \"Column\",\r\n \"Fields\": \" * \",\r\n\r\n \"Filters\": `where WebUserID = '${userID}' and ProductID = '${productID}' ${colorIDSelect} ${modelTypeIDSelect} ${modelCodeSelect} ${packageIdSelect} `\r\n },\r\n method: \"post\"\r\n , responseType: \"json\"\r\n }).then(response => {\r\n console.log(\"response delete:\", response);\r\n result = response?.data?.ApiObjectData;\r\n\r\n }).catch(err => {\r\n console.log(err);\r\n\r\n });\r\n\r\n\r\n console.log('cartItemsDetails result !!', result);\r\n return result;\r\n\r\n };\r\n return { initCartItems: init, isCartItem, changecartItem, cartItemsDetails, removecartItems, removeAllcartItems, initSignIN };\r\n};\r\n\r\n","import axios from \"axios\";\r\nimport { groupBy, includes, mapValues, omit } from \"lodash\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport config from '../../configuration/config.json';\r\nimport { toast } from \"react-toastify\";\r\nimport { useUserCart } from './useUserCart';\r\nimport { getData, saveData, User_Data_Key } from \"../../utils/localStorageManager\";\r\nexport const useUserFavorite = () => {\r\n const { t: trans } = useTranslation(['info', 'new']);\r\n const { initCartItems,initSignIN } = useUserCart();\r\n const USER_FAVORITE_ITEMS = 'USER_FAVORITE_ITEMS';\r\n const [favoriteItems, setFavoriteItems] = useState(() => {\r\n return JSON.parse(getData(USER_FAVORITE_ITEMS, false)) ?? []\r\n });\r\n const [itemsLength, setItemslength] = useState(favoriteItems?.length ?? 0);\r\n\r\n useEffect(() => {\r\n setFavoriteItems(JSON.parse(getData(USER_FAVORITE_ITEMS, false)) ?? []);\r\n }, [itemsLength]);\r\n\r\n // to initailize the user favorite items\r\n const init = () => {\r\n\r\n try {\r\n initSignIN();\r\n } catch (error) {\r\n console.log('sorry there is an error happened !!!', error);\r\n }\r\n try {\r\n const userID = getData('secretKey');\r\n if (userID) {\r\n axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"SiteFetchUserFavoriteSpareParts\",\r\n \"Values\": {\r\n \"UserID\": String(userID)\r\n }\r\n }\r\n ).then(response => {\r\n\r\n const _products = response.data.map(item => {\r\n return item.ProductID\r\n });\r\n saveData(USER_FAVORITE_ITEMS, JSON.stringify(_products), false);\r\n setFavoriteItems(_products);\r\n }).catch(err => {\r\n console.log(err);\r\n });\r\n } else {\r\n toast.error(trans(\"info:login_first\"));\r\n }\r\n } catch (error) {\r\n console.log('sorry there is an error happened !!!', error);\r\n }\r\n };\r\n // to check if the item is favorite or not\r\n const isFavoriteItem = (item) => {\r\n try {\r\n return includes(favoriteItems, item);\r\n } catch (error) {\r\n console.log('Has an error when checking the favorite item,', error);\r\n }\r\n };\r\n // to change the state of the favorite item [add-delete of found]\r\n const changeFavoriteItemState = (item) => {\r\n try {\r\n const isLogin = getData('isAuthenticated');\r\n if (isLogin) {\r\n const { id } = JSON.parse(getData(User_Data_Key, true));\r\n const userID = Number(id.toString().split('_')[1]);\r\n const isFavorite = isFavoriteItem(item);\r\n if (isFavorite) {\r\n axios.request({\r\n url: config.baseURL + 'delete',\r\n data: {\r\n \"Object\": \"WebUserFavorites\",\r\n \"Filters\": `where WebUserID = ${userID} and ProductID = '${item}'`\r\n },\r\n method: \"delete\"\r\n , responseType: \"json\"\r\n }).then(response => {\r\n const currentItems = JSON.parse(getData(USER_FAVORITE_ITEMS, false));\r\n const newItems = currentItems.filter(value => {\r\n return value !== item;\r\n });\r\n saveData(USER_FAVORITE_ITEMS, JSON.stringify(newItems), false);\r\n setFavoriteItems(newItems);\r\n setItemslength(newItems?.length);\r\n }).catch(err => {\r\n console.log(err);\r\n });\r\n } else {\r\n axios.post(\r\n config.baseURL + 'add',\r\n {\r\n \"Object\": \"WebUserFavorites\",\r\n \"values\": {\r\n \"webuserID\": userID,\r\n \"productID\": item\r\n }\r\n }\r\n ).then(response => {\r\n const currentItems = JSON.parse(getData(USER_FAVORITE_ITEMS, false));\r\n currentItems.push(item);\r\n saveData(USER_FAVORITE_ITEMS, JSON.stringify(currentItems), false);\r\n setFavoriteItems(currentItems);\r\n setItemslength(currentItems?.length);\r\n }).catch(err => {\r\n console.log(err);\r\n });\r\n }\r\n } else {\r\n toast.error(trans(\"info:login_first\"));\r\n }\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n };\r\n // to fetch favorite items with details\r\n const favoriteItemsDetails = async (withGroup = false) => {\r\n let result = [];\r\n try {\r\n const userID = getData('secretKey');\r\n if (userID) {\r\n const response = await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"SiteFetchUserFavoriteSpareParts\",\r\n \"Values\": {\r\n \"UserID\": String(userID)\r\n }\r\n }\r\n );\r\n if (response.status == 200) {\r\n const _data = response.data;\r\n if (withGroup) {\r\n const groupResult = mapValues(groupBy(_data, 'ItemType'), fList => fList.map(items => omit(items, 'ItemType')));\r\n let groupValues = {};\r\n Object.assign(groupValues, groupResult);\r\n let finalResults = [];\r\n for (let item in groupValues) {\r\n const obj = { heading: '', items: [] };\r\n let title = '';\r\n let type = '';\r\n const result = item;\r\n switch (result.toLowerCase()) {\r\n case 'spareparts':\r\n title = trans(\"new:favorite_spare_parts\");\r\n type = 'spare';\r\n break;\r\n\r\n case 'car':\r\n title = trans(\"new:favorite_cars\");\r\n type = 'car';\r\n break;\r\n }\r\n obj.heading = title;\r\n obj.type = type;\r\n obj.items = groupValues[item];\r\n finalResults.push(obj);\r\n }\r\n result = finalResults;\r\n } else {\r\n result = _data;\r\n }\r\n }\r\n } else {\r\n toast.error('لم يتم تسجيل الدخول !!');\r\n }\r\n } catch (error) {\r\n console.log('sorry there is an error happened !!!', error);\r\n }\r\n return result;\r\n };\r\n return { init, isFavoriteItem, changeFavoriteItemState, favoriteItemsDetails };\r\n};\r\n\r\n","import { useTranslation } from \"react-i18next\";\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport { InputField } from \"../components/_input/_input\";\r\nimport { FormButton } from \"../components/_input/_button\";\r\nimport PhoneDropDown from '../components/_input/_phoneDropDown';\r\nimport { useState, useRef } from \"react\";\r\nimport crypto from 'crypto-js';\r\nimport Joi from \"joi\";\r\nimport { toast } from \"react-toastify\";\r\nimport { formValidate, GetMessages } from \"../utils/validation\";\r\nimport axios from \"axios\";\r\nimport { GoogleLogin } from 'react-google-login';\r\nimport config from '../configuration/config.json';\r\nimport { Tab, TabList, TabPanel, Tabs } from \"react-tabs\";\r\nimport { saveData, User_Data_Key, getData } from \"../utils/localStorageManager\";\r\nimport FacebookLogin from 'react-facebook-login';\r\nimport { useUserFavorite } from \"./hooks/useUserFavorite\";\r\nexport default function SignIn({ onTabChange, onLogin }) {\r\n const { init } = useUserFavorite();\r\n const bodyRef = useRef(null);\r\n const { t: trans, i18n } = useTranslation([\"common\", \"form\", \"model\", \"error2\"]);\r\n let lang = i18n.language;\r\n const languageDir = 'language-' + lang;\r\n const tabsList = [{\r\n tab: 1, title: 'sign-in'\r\n }, {\r\n tab: 2, title: 'sign-up'\r\n }, {\r\n tab: 3, title: 'reset-password'\r\n }, {\r\n tab: 4, title: 'login-validation'\r\n }\r\n ];\r\n const [isSending, setIsSending] = useState(false);\r\n const EMAIL_KEY = 'Email', PHONE_KEY = 'PhoneNumber', IDENTITY_KEY = 'IdentityNo';\r\n const history = useHistory();\r\n const [requestForm, setRequestForm] = useState({\r\n email: null,\r\n phoneNumber: null,\r\n identityNo: null,\r\n password: null,\r\n confirm: null\r\n });\r\n const [enterType, setEnterType] = useState(PHONE_KEY);\r\n const [confirmPhoneNumber, setConfirmPhoneNumber] = useState(false);\r\n\r\n let schema = Joi.object().keys({\r\n email: Joi.string().email({ minDomainSegments: 2, tlds: { allow: false } }).messages(GetMessages()).optional(),\r\n phoneNumber: Joi.string().min(13).messages(GetMessages()).optional(),\r\n // identityNo: Joi.string().min(8).messages(GetMessages()).optional(),\r\n password: Joi.string().required().messages(GetMessages()),\r\n confirm: Joi.string().required().messages(GetMessages())\r\n }).or('email', 'phoneNumber'\r\n , 'identityNo'\r\n ).required();\r\n\r\n let schemaphoneNumber = Joi.object().keys({\r\n phoneNumber: Joi.string().min(13).messages(GetMessages())\r\n })\r\n\r\n let schemaidentityNo = Joi.object().keys({\r\n identityNo: Joi.string().min(8).messages(GetMessages())\r\n })\r\n let schemaConfirm = Joi.object().keys({\r\n phoneNumber: Joi.string().min(13).messages(GetMessages()),\r\n confirm: Joi.string().min(8).messages(GetMessages()),\r\n });\r\n\r\n const [error, setError] = useState({});\r\n const handleChangeEnteringType = (position) => {\r\n let type;\r\n switch (position) {\r\n case 0:\r\n type = PHONE_KEY;\r\n break;\r\n case 1:\r\n type = EMAIL_KEY;\r\n\r\n break;\r\n case 2:\r\n type = IDENTITY_KEY;\r\n break;\r\n }\r\n setConfirmPhoneNumber(false);\r\n setEnterType(type);\r\n setRequestForm({\r\n email: null,\r\n phoneNumber: null,\r\n identityNo: null,\r\n password: null,\r\n confirm: null\r\n });\r\n };\r\n\r\n // We need ref in this, because we are dealing\r\n // with JS setInterval to keep track of it and\r\n // stop it when needed\r\n const Ref = useRef(null);\r\n const [timer, setTimer] = useState('00:00:00');\r\n const getTimeRemaining = (e) => {\r\n const total = Date.parse(e) - Date.parse(new Date());\r\n const seconds = Math.floor((total / 1000) % 60);\r\n const minutes = Math.floor((total / 1000 / 60) % 60);\r\n const hours = Math.floor((total / 1000 / 60 / 60) % 24);\r\n return {\r\n total, hours, minutes, seconds\r\n };\r\n }\r\n const startTimer = (e) => {\r\n let { total, hours, minutes, seconds }\r\n = getTimeRemaining(e);\r\n if (total >= 0) {\r\n\r\n // update the timer\r\n // check if less than 10 then we need to \r\n // add '0' at the beginning of the variable\r\n setTimer(\r\n (hours > 9 ? hours : '0' + hours) + ':' +\r\n (minutes > 9 ? minutes : '0' + minutes) + ':'\r\n + (seconds > 9 ? seconds : '0' + seconds)\r\n )\r\n }\r\n }\r\n\r\n\r\n const clearTimer = (e) => {\r\n\r\n // If you adjust it you should also need to\r\n // adjust the Endtime formula we are about\r\n // to code next \r\n setTimer('00:02:00');\r\n\r\n // If you try to remove this line the \r\n // updating of timer Variable will be\r\n // after 1000ms or 1sec\r\n if (Ref.current) clearInterval(Ref.current);\r\n const id = setInterval(() => {\r\n startTimer(e);\r\n }, 1000)\r\n Ref.current = id;\r\n }\r\n const getDeadTime = () => {\r\n let deadline = new Date();\r\n\r\n // This is where you need to adjust if \r\n // you entend to add more time\r\n deadline.setSeconds(deadline.getSeconds() + 120);\r\n return deadline;\r\n }\r\n const handleRequest = () => {\r\n console.log(\"handleRequest\");\r\n const result = formValidate(schema, requestForm) ?? {};\r\n const errorResult = removeUnspecificError(result);\r\n setError(errorResult);\r\n try {\r\n if (Object.keys(errorResult).length === 0) {\r\n setIsSending(true);\r\n axios.post(\r\n config.controllURL + \"api/Administration/\" + \"SignInValidate1\",\r\n {\r\n \"AccessType\": `${enterType}`,\r\n \"Access\": (enterType == EMAIL_KEY ? requestForm.email.trim().toLowerCase() : enterType == PHONE_KEY ? requestForm.phoneNumber : requestForm.identityNo.trim().toLowerCase()),\r\n \"Password\": crypto.MD5(requestForm.password).toString(),\r\n }\r\n ).then((response) => {\r\n setIsSending(false);\r\n if (response.status == 200) {\r\n // const encodedData = crypto.AES.encrypt(JSON.stringify(response.data),config.cryptoKey).toString();\r\n saveData(User_Data_Key, response.data, true);\r\n saveData('isAuthenticated', true, false);\r\n saveData('secretKey', response.data.id.toString().split('_')[0], false);\r\n // history.push('/');\r\n // window.location.reload();\r\n if (onLogin)\r\n onLogin();\r\n init();\r\n }\r\n }).catch((error) => {\r\n setIsSending(false);\r\n if (error.response && error.response.status === 400) {\r\n toast.error(trans(\"common:failed-access\"));\r\n }\r\n });\r\n }\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n };\r\n\r\n const removeUnspecificError = (errorList) => {\r\n let errorResult = {};\r\n Object.assign(errorResult, errorList);\r\n if (errorList) {\r\n for (let index = 0; index < Object.keys(errorList).length; index++) {\r\n const key = Object.keys(errorList)[index];\r\n if (enterType.toLowerCase() == key.toLowerCase()) {\r\n continue;\r\n } else {\r\n if (key.toLowerCase() == 'password')\r\n continue;\r\n delete errorResult[key];\r\n }\r\n }\r\n }\r\n return errorResult;\r\n };\r\n const removeUnspecific2Error = (errorList) => {\r\n let errorResult = {};\r\n Object.assign(errorResult, errorList);\r\n if (errorList) {\r\n for (let index = 0; index < Object.keys(errorList).length; index++) {\r\n const key = Object.keys(errorList)[index];\r\n if (enterType.toLowerCase() == key.toLowerCase()) {\r\n continue;\r\n } else {\r\n delete errorResult[key];\r\n }\r\n }\r\n }\r\n return errorResult;\r\n };\r\n const handleSendVerificationCode = () => {\r\n console.log(\"handleSendVerificationCode\");\r\n\r\n var sch = schemaidentityNo;\r\n if (enterType == PHONE_KEY) {\r\n sch = schemaphoneNumber;\r\n }\r\n const result = formValidate(sch, requestForm) ?? {};\r\n const errorResult = removeUnspecific2Error(result);\r\n\r\n console.log(\"errorResult:\", errorResult);\r\n console.log(\"requestForm:\", requestForm);\r\n setError(errorResult);\r\n var codeValid = false;\r\n if (Object.keys(errorResult).length === 0) {\r\n\r\n setIsSending(true);\r\n axios.post(\r\n config.controllURL + \"api/Administration/\" + \"SendSms\",\r\n {\r\n \"AccessType\": enterType,\r\n \"Access\": enterType == PHONE_KEY ? requestForm.phoneNumber : requestForm.identityNo\r\n }\r\n ).then(response => {\r\n setIsSending(false);\r\n console.log(\"SendSms response.data \", response);\r\n\r\n if (response?.data == false) {\r\n\r\n toast.error(trans(\"common:failed-access\"));\r\n } else {\r\n\r\n if (response.data) {\r\n\r\n codeValid = true;\r\n clearTimer(getDeadTime());\r\n if (enterType == IDENTITY_KEY) {\r\n\r\n const val = { ...requestForm };\r\n val.phoneNumber = response.data;\r\n setRequestForm(val);\r\n }\r\n\r\n\r\n } else {\r\n toast.error(trans(\"error2:no_phone_number_error\"));\r\n }\r\n }\r\n\r\n if (codeValid) {\r\n setConfirmPhoneNumber(true);\r\n\r\n console.log(\"after validate phoneNumber error\");\r\n }\r\n\r\n }).catch(err => {\r\n setIsSending(false);\r\n toast.error(trans(\"common:failed-access\"));\r\n console.log(err);\r\n });\r\n console.log(\"after validate phoneNumber \");\r\n\r\n }\r\n };\r\n const handleLogin = () => {\r\n console.log(\"handleLogin\");\r\n\r\n const result = formValidate(schemaConfirm, requestForm) ?? {};\r\n const errorResult = removeUnspecific2Error(result);\r\n\r\n console.log(\"errorResult>>>>>>>>>>>>>>>:\", errorResult);\r\n console.log(\"requestForm:\", requestForm);\r\n setError(errorResult);\r\n if (Object.keys(errorResult).length == 0) {\r\n\r\n setIsSending(true);\r\n axios.post(\r\n config.controllURL + \"api/Administration/\" + \"MatchedKeysNoValidationKey\",\r\n {\r\n \"AccessType\": PHONE_KEY,\r\n \"Access\": requestForm.phoneNumber,\r\n \"ValidationKey\": requestForm.confirm\r\n }\r\n ).then(response => {\r\n setIsSending(false);\r\n // if (response.data) {\r\n if (response.status === 200) {\r\n var cookies = null;\r\n\r\n\r\n let userrespons = response?.data;\r\n userrespons[\"identityImage\"] = \"\";\r\n saveData(User_Data_Key, userrespons, true);\r\n saveData('isAuthenticated', true, false);\r\n saveData('secretKey', response.data.id.toString().split('_')[0], false);\r\n // history.push('/');\r\n // window.location.reload();\r\n if (onLogin)\r\n onLogin();\r\n init();\r\n\r\n }\r\n else {\r\n\r\n toast.error(trans(\"error2:validation_error\"));\r\n }\r\n\r\n\r\n }).catch(err => {\r\n setIsSending(false);\r\n toast.error(trans(\"error2:validation_error\"));\r\n console.log(err);\r\n })\r\n }\r\n };\r\n return (\r\n\r\n
    \r\n

    {trans(\"info:select-sign-in\")}

    \r\n
    \r\n {\r\n handleChangeEnteringType(position);\r\n }}>\r\n
    \r\n\r\n \r\n \r\n {trans(\"form:phone\")}\r\n \r\n {/* */}\r\n \r\n\r\n\r\n {trans(\"form:email\")}\r\n \r\n {/* */}\r\n \r\n {trans(\"form:identity-no\")}\r\n \r\n \r\n
    \r\n
    \r\n \r\n {!confirmPhoneNumber &&\r\n (\r\n {\r\n const val = { ...requestForm };\r\n val.phoneNumber = `+${countryCode}${phoneNumber}`;\r\n setRequestForm(val);\r\n }}\r\n />\r\n )\r\n }\r\n \r\n \r\n {\r\n const val = { ...requestForm };\r\n val.email = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n placeholder={trans(\"form:email\")}\r\n />\r\n \r\n\r\n \r\n {\r\n\r\n !confirmPhoneNumber &&\r\n {\r\n const val = { ...requestForm };\r\n val.identityNo = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n placeholder={trans(\"form:identity-no\")}\r\n />\r\n }\r\n\r\n \r\n
    \r\n\r\n
    \r\n {enterType == EMAIL_KEY ?\r\n\r\n
    \r\n\r\n {\r\n const val = { ...requestForm };\r\n val.password = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n placeholder={trans(\"common:password\")}\r\n />\r\n\r\n\r\n onTabChange(tabsList[2])}>\r\n {trans(\"common:forget-password\")}\r\n \r\n
    \r\n : (confirmPhoneNumber) && {\r\n const val = { ...requestForm };\r\n val.confirm = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n placeholder={trans(\"form:validation-key\")}\r\n />\r\n }\r\n\r\n
    \r\n\r\n\r\n {\r\n\r\n if (isSending == false) {\r\n\r\n setTimeout(() => {\r\n if (enterType == EMAIL_KEY) {\r\n handleRequest();\r\n } else if (enterType == PHONE_KEY || enterType == IDENTITY_KEY) {\r\n if (confirmPhoneNumber == false) {\r\n handleSendVerificationCode();\r\n\r\n } else {\r\n if (timer == \"00:00:00\") {\r\n handleSendVerificationCode();\r\n } else {\r\n handleLogin();\r\n }\r\n\r\n }\r\n }\r\n\r\n }, 500)\r\n\r\n }\r\n\r\n }}\r\n isLoading={isSending}\r\n classes={\" px-10 py-5 text-20 border-sm\"}\r\n\r\n />\r\n\r\n {\r\n (confirmPhoneNumber) &&\r\n

    {timer}

    \r\n\r\n }\r\n\r\n\r\n\r\n onTabChange(tabsList[1])}>\r\n {trans(\"common:no-account\")}\r\n \r\n
    \r\n\r\n\r\n {/*
    \r\n
    \r\n (\r\n \r\n \r\n {trans(\"form:sign-in-google\")}\r\n\r\n \"google\r\n \r\n )}\r\n onSuccess={(e) => onSuccess('Google', e)}\r\n onFailure={(e) => onFailure('Google', e)}\r\n cookiePolicy={window.location.origin}\r\n />\r\n
    \r\n
    \r\n\r\n onSuccess(\"Facebook\", e)}\r\n fields=\"name,email\"\r\n cssClass='nice-btn nice-btn-primary p-5 flex flex-row'\r\n textButton={
    \r\n {trans(\"form:sign-in-facebook\")}\r\n \"facebook
    }\r\n render={renderProps => (\r\n )}\r\n />\r\n
    \r\n
    */}\r\n
    \r\n
    \r\n );\r\n}","import {useEffect, useRef, useState} from \"react\";\r\n\r\nexport function CheckInput({checked, oncheng, Name, className = '',id, title, ...props}) {\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const languageDir = \"language-\" + lang;\r\n const get = (e) => {\r\n if (oncheng)\r\n oncheng(e.target);\r\n }\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n}\r\n","import {useEffect, useRef, useState} from \"react\";\r\nimport ErrorLabel from '../../components/error';\r\nexport function FileInput({name,errorLabel,title, onPicker,mimeType = '.doc,.docx,application/pdf'}) {\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const languageDir = \"language-\" + lang;\r\n return (\r\n
    \r\n \r\n \r\n onPicker(e)} className={\"input-field bg-white\"} type=\"file\"/>\r\n \r\n
    \r\n );\r\n}\r\n","let db,status;\r\nconst createDbRequest = (dbName , dbVersion)=>{\r\nif(!indexedDB){\r\n console.log('Current browser is\\'t supported the IndexedDb!!!');\r\n return;\r\n}\r\nlet dbRequest = indexedDB.open(dbName,dbVersion);\r\ndbRequest.onupgradeneeded = (event)=>{\r\nlet db = event.target.result;\r\nlet userStore = db.createObjectStore(\"UserProfile\",{keyPath:\"uId\"});\r\n};\r\ndbRequest.onsuccess = (event)=>{\r\ndb = dbRequest.result;\r\nconsole.log(`The Database ${db.name} with version (${db.version}) was created successfully.`);\r\n};\r\ndbRequest.onerror = (event)=>{\r\nconsole.log(`Something wrong happened, and the error code : ${event.target.errorCode}`)\r\n};\r\n}; \r\nconst proccessUserData = (data)=>{\r\n if(data){\r\n let trans = db.transaction(\"UserProfile\",\"readwrite\");\r\n let userStore = trans.objectStore(\"UserProfile\");\r\n userStore.clear();\r\n let query = userStore.put(data); \r\n query.onsuccess = (event)=>{\r\n status = 1;\r\n console.log('The user was added successfully',event);\r\n };\r\n query.onerror = (event)=>{\r\n status = -1;\r\n console.log('The user wasn\\'t added',event);\r\n };\r\n trans.oncomplete = (event)=>{\r\n console.log('The db was closed.'); \r\n db.close();\r\n };\r\n }\r\n return status;\r\n};\r\nconst getUserDataByID = (id)=>{\r\n\r\n \r\n \r\n let trans = db.transaction(\"UserProfile\",\"readwrite\");\r\n let userStore = trans.objectStore(\"UserProfile\");\r\n let query = userStore.get(id);\r\n query.onsuccess = (event)=>{\r\n if(!event.target.result){\r\n console.log(`The user with this id (${id}) is not existing.`); \r\n }\r\n };\r\n trans.oncomplete = (event)=>{\r\n db.close();\r\n }; \r\n return query;\r\n};\r\n\r\n\r\nconst clearStorage = (dbName)=>{\r\ntry{\r\n// localStorage.removeItem(\"isAuthenticated\");\r\n// localStorage.removeItem('secretKey');\r\n// localStorage.removeItem(\"userData\");\r\n// localStorage.removeItem('extra');\r\nlocalStorage.clear();\r\nlet dbDeleteRequest = indexedDB.deleteDatabase(dbName);\r\ndbDeleteRequest.onsuccess = (event)=>{\r\nconsole.log('Database was removed' , event);\r\n};\r\ndbDeleteRequest.onerror = (event)=>{\r\nconsole.log('Database was not existed!' , event);\r\n};\r\n}catch(err){\r\nconsole.log('Something wrong happened!' , err);\r\n}\r\n};\r\n\r\nexport {\r\n db,\r\n clearStorage,\r\n createDbRequest,\r\n proccessUserData,\r\n getUserDataByID\r\n};","import { useEffect } from \"react\";\r\nimport { useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport default function SectionHeading({ title, hasRuler = true, onEdit, editable = false, infoText = null,className, ...props }) {\r\n const { t: trans,i18n } = useTranslation(\"info\");\r\n const [status,SetStatus] = useState(0);\r\n let lang =i18n.language;\r\n let languageDir = \"language-\" + lang;\r\n return (\r\n
    \r\n
    \r\n

    {title}

    \r\n { editable &&
    {\r\n const newStatus = status == 0 ? 1:0;\r\n SetStatus(newStatus);\r\n if(onEdit){\r\n onEdit(newStatus);\r\n }\r\n }}>\r\n {trans(`info:${status == 0 ? 'edit' : 'back'}`)}\r\n
    \r\n }\r\n
    \r\n\r\n {\r\n infoText &&
    \r\n \r\n

    {infoText}

    \r\n
    \r\n }\r\n {\r\n props.children\r\n }\r\n {hasRuler &&
    }\r\n
    \r\n )\r\n}","import { useTranslation } from \"react-i18next\";\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport { InputField } from \"../components/_input/_input\";\r\nimport { FormButton } from \"../components/_input/_button\";\r\nimport PhoneDropDown from '../components/_input/_phoneDropDown';\r\nimport { CheckInput } from \"../components/_input/_checkInput\";\r\nimport { FileInput } from \"../components/_input/_fileInput\";\r\nimport { useEffect, useState } from \"react\";\r\nimport axios from \"axios\";\r\nimport config from '../configuration/config.json';\r\nimport { DropDownInput } from \"../components/_input/_dropdown\";\r\nimport crypto from 'crypto-js';\r\nimport Joi from \"joi\";\r\nimport { GetMessages, formValidate } from '../utils/validation';\r\nimport { getData, saveData, User_Data_Key } from \"../utils/localStorageManager\";\r\nimport { toast } from \"react-toastify\";\r\nimport { GoogleLogin } from 'react-google-login';\r\nimport FacebookLogin from 'react-facebook-login';\r\nimport SectionHeading from \"../components/sectionHeading\";\r\nimport { includes } from \"lodash\";\r\nimport { useUserFavorite } from \"./hooks/useUserFavorite\";\r\nexport default function SignUp({ onTabChange, onLogin }) {\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const { init } = useUserFavorite();\r\n const languageDir = 'language-' + lang;\r\n const { t: trans } = useTranslation([\"common\", \"form\", \"inputs\", \"model\", \"error\", \"info\", \"hints\", \"error2\", \"new\"]);\r\n const tabsList = [{\r\n tab: 1, title: 'sign-in'\r\n }, {\r\n tab: 2, title: 'sign-up'\r\n }];\r\n const history = useHistory();\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [steps, setSteps] = useState(0);\r\n const [requestForm, setRequestForm] = useState({\r\n arFirstName: '',\r\n arMiddleName: '',\r\n arLastName: '',\r\n enFirstName: '',\r\n enMiddleName: '',\r\n enLastName: '',\r\n validation: '',\r\n email: '',\r\n phoneNumber: '',\r\n genderID: '',\r\n password: '',\r\n identity: '',\r\n accountType: '',\r\n commercialIdentity: '',\r\n commercialIdentityImage: null,\r\n identityImage: null,\r\n address: '',\r\n confirmPassword: ''\r\n });\r\n const schema = Joi.object({\r\n arFirstName: Joi.string().max(50).required().messages(GetMessages()),\r\n arMiddleName: Joi.string().max(50).required().messages(GetMessages()),\r\n arLastName: Joi.string().max(50).required().messages(GetMessages()),\r\n enFirstName: Joi.string().max(50).required().messages(GetMessages()),\r\n enMiddleName: Joi.string().max(50).required().messages(GetMessages()),\r\n enLastName: Joi.string().max(50).required().messages(GetMessages()),\r\n email: Joi.string().email({ minDomainSegments: 2, tlds: { allow: false } }).required().messages(GetMessages()),\r\n phoneNumber: Joi.string().min(13).required().messages(GetMessages()),\r\n accountType: Joi.string().required().messages(GetMessages()),\r\n commercialIdentity: Joi.string().length(10).required().messages(GetMessages()),\r\n validation: Joi.string().required().messages(GetMessages()),\r\n password: Joi.string().min(8).max(20).alphanum().required().messages(GetMessages()),\r\n confirmPassword: Joi.string().valid(Joi.ref('password')).required().messages(GetMessages())\r\n });\r\n const [accountTypes, setAccountTypes] = useState([]);\r\n const [error, setError] = useState({});\r\n const [selectedPrivacy, setSelectedPrivacy] = useState(false);\r\n const [confirmValidation, setConfirmValidation] = useState(false);\r\n const [codeValidation, setCodeValidation] = useState('');\r\n const [signUpObject, setSignUpObject] = useState({});\r\n useEffect(() => {\r\n axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"name\": \"SiteGetUserAccountTypes\"\r\n }\r\n ).then(response => {\r\n console.log(\"accountType\", response.data);\r\n setAccountTypes(response.data);\r\n\r\n }).catch(err => {\r\n console.log(err);\r\n })\r\n }, []);\r\n\r\n const [isClientAccount, setIsClientAccount] = useState(null);\r\n const submitRequest = async () => {\r\n const result = formValidate(schema, requestForm) ?? {};\r\n setError(result);\r\n try {\r\n if (Object.keys(result).length === 0) {\r\n if (selectedPrivacy) {\r\n const md5Password = crypto.MD5(requestForm.password);\r\n axios.post(\r\n config.controllURL + \"api/Administration/\" + \"SignUp\",\r\n {\r\n \"ArFirstName\": requestForm.arFirstName.trim(),\r\n \"ArMiddlename\": requestForm.arMiddleName,\r\n \"ArLastname\": requestForm.arLastName.trim(),\r\n \"EnFirstName\": requestForm.enFirstName.trim(),\r\n \"EnMiddlename\": requestForm.enMiddleName.trim(),\r\n \"EnLastname\": requestForm.enLastName.trim(),\r\n \"Email\": requestForm.email,\r\n \"Phone\": requestForm.phoneNumber,\r\n \"GenderID\": requestForm.genderID != '' ? Number(requestForm.genderID) : null,\r\n \"Password\": md5Password.toString(),\r\n \"Identity\": requestForm?.identity ?? null,\r\n \"Address\": requestForm.address,\r\n \"IdentityImage\": requestForm.identityImage,\r\n \"ConfirmPassword\": md5Password.toString()\r\n }\r\n ).then(response => {\r\n if (response.data) {\r\n setError({});\r\n const { genderID } = { ...requestForm };\r\n setRequestForm({\r\n arFirstName: '',\r\n arMiddleName: '',\r\n arLastName: '',\r\n enFirstName: '',\r\n enMiddleName: '',\r\n enLastName: '',\r\n email: '',\r\n phoneNumber: '',\r\n genderID: '',\r\n password: '',\r\n identity: '',\r\n identityImage: null,\r\n address: '',\r\n confirmPassword: ''\r\n });\r\n toast.success(trans(\"common:account-created-successfully\"));\r\n onTabChange(tabsList[0]);\r\n }\r\n }).catch(error => {\r\n if (error.response && error.response.status === 400) {\r\n toast.error(error.response.data[`${trans(\"model:description3\")}`]);\r\n }\r\n });\r\n } else {\r\n toast.error(trans(\"common:not-agree\"));\r\n }\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n };\r\n const [shortRequestForm, setShortRequestForm] = useState({\r\n phoneNumber: '',\r\n password: '',\r\n identity: '',\r\n confirmPassword: ''\r\n });\r\n const onSuccess = (type, res) => {\r\n switch (type.toLocaleLowerCase()) {\r\n case 'google':\r\n const { givenName, familyName, email } = res.profileObj;\r\n axios.post(\r\n config.controllURL + \"api/Administration/OAuthSignUp\",\r\n {\r\n \"FirstName\": givenName,\r\n \"LastName\": familyName,\r\n \"Email\": email,\r\n \"AccountType\": type,\r\n }\r\n ).then((response) => {\r\n saveData(User_Data_Key, response.data, true);\r\n saveData('isAuthenticated', true, false);\r\n saveData('secretKey', response.data.id.toString().split('_')[0], false);\r\n // history.push('/');\r\n // window.location.reload();\r\n if (onLogin)\r\n onLogin();\r\n init();\r\n }).catch((err) => {\r\n if (err.response && err.response.status === 400) {\r\n toast.error(err.response.data[`${trans(\"model:description3\")}`]);\r\n }\r\n });\r\n break;\r\n\r\n case 'facebook':\r\n try {\r\n\r\n const { name, email: em } = res;\r\n const fullNames = name.split(' ');\r\n const firstName = fullNames[0];\r\n const lastName = fullNames[1];\r\n axios.post(\r\n config.controllURL + \"api/Administration/OAuthSignUp\",\r\n {\r\n \"FirstName\": firstName,\r\n \"LastName\": lastName,\r\n \"Email\": em,\r\n \"AccountType\": type,\r\n }\r\n ).then((response) => {\r\n saveData(User_Data_Key, response.data, true);\r\n saveData('isAuthenticated', true, false);\r\n saveData('secretKey', response.data.id.toString().split('_')[0], false);\r\n // history.push('/');\r\n // window.location.reload();\r\n if (onLogin)\r\n onLogin();\r\n init();\r\n }).catch((err) => {\r\n if (err.response && err.response.status === 400) {\r\n toast.error(err.response.data[`${trans(\"model:description3\")}`]);\r\n }\r\n });\r\n\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n break;\r\n }\r\n };\r\n const onFailure = (type, res) => {\r\n console.log(type);\r\n };\r\n const [signUpClicked, setSignUpClicked] = useState({\r\n clicked: false,\r\n index: null\r\n });\r\n const handleSaveObject = (obj, index) => {\r\n setSignUpObject(obj);\r\n setSignUpClicked({\r\n clicked: true,\r\n index: index\r\n });\r\n };\r\n const schema2 = Joi.object({\r\n phoneNumber: Joi.string().length(13).required().messages(GetMessages()),\r\n identity: Joi.string().min(8).required().messages(GetMessages()),\r\n password: Joi.string().min(8).max(20).alphanum().required().messages(GetMessages()),\r\n confirmPassword: Joi.string().valid(Joi.ref('password')).required().messages(GetMessages())\r\n });\r\n const externalSubmitRequest = () => {\r\n const result = formValidate(schema2, shortRequestForm) ?? {};\r\n setError(result);\r\n setIsLoading(true);\r\n if (Object.keys(result).length == 0) {\r\n axios.post(\r\n config.baseURL + \"details\",\r\n {\r\n \"Object\": \"Web_users\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n },\r\n \"Option\": \"Column\",\r\n \"Fields\": \"GUID\",\r\n \"Filters\": `where IdentityNumber = '${shortRequestForm.identity}' or phone = '${shortRequestForm.phoneNumber}'`\r\n }\r\n ).then((response) => {\r\n if (response.data.ApiObjectData.length == 0) {\r\n setSignUpClicked({\r\n index: 0,\r\n clicked: false\r\n });\r\n setError({});\r\n localStorage.setItem('externalInfo', JSON.stringify(shortRequestForm));\r\n setShortRequestForm({});\r\n signUpObject.onClick();\r\n } else {\r\n toast.error(trans(\"common:existed-data\"));\r\n }\r\n }).catch((err) => {\r\n toast.error(trans(\"error:unknown_failure\"));\r\n });\r\n }\r\n setIsLoading(false);\r\n };\r\n const toBase64 = file => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => resolve(reader.result);\r\n reader.onerror = error => reject(error);\r\n });\r\n const handleChangeImage = async (event) => {\r\n const files = event.target.files;\r\n const val = { ...requestForm };\r\n if (files.length > 0) {\r\n let file = files[0];\r\n const size = file.size;\r\n const finalCheck = Math.round((size / 1024));\r\n if (finalCheck >= 4096) {\r\n toast.error(trans('new:file_size_error'));\r\n return;\r\n }\r\n const fileBase64 = await toBase64(file);\r\n const finalFile = fileBase64.substr(fileBase64.indexOf(',') + 1, fileBase64.length);\r\n val.identityImage = finalFile;\r\n } else {\r\n val.identityImage = null;\r\n }\r\n setRequestForm(val);\r\n };\r\n const handleChangeImage2 = async (event) => {\r\n const files = event.target.files;\r\n const val = { ...requestForm };\r\n if (files.length > 0) {\r\n let file = files[0];\r\n const size = file.size;\r\n const finalCheck = Math.round((size / 1024));\r\n if (finalCheck >= 4096) {\r\n toast.error(trans('new:file_size_error'));\r\n return;\r\n }\r\n const fileBase64 = await toBase64(file);\r\n const finalFile = fileBase64.substr(fileBase64.indexOf(',') + 1, fileBase64.length);\r\n val.commercialIdentityImage = finalFile;\r\n } else {\r\n val.commercialIdentityImage = null;\r\n }\r\n setRequestForm(val);\r\n };\r\n const removeUnspecificError = (errorList, values = []) => {\r\n let errorResult = {};\r\n const lowerValues = values.map(item => {\r\n return item.toLowerCase()\r\n });\r\n Object.assign(errorResult, errorList);\r\n if (errorList) {\r\n for (let index = 0; index < Object.keys(errorList).length; index++) {\r\n const key = Object.keys(errorList)[index];\r\n if (includes(lowerValues, key.toLowerCase())) {\r\n continue;\r\n } else {\r\n delete errorResult[key];\r\n }\r\n }\r\n }\r\n return errorResult;\r\n };\r\n const handleNextStep = async () => {\r\n try {\r\n const result = formValidate(schema, requestForm) ?? {};\r\n let specifics;\r\n switch (steps) {\r\n case 0:\r\n specifics = removeUnspecificError(result, ['phoneNumber']);\r\n setError(specifics);\r\n var codeValid = false;\r\n if (Object.keys(specifics).length === 0) {\r\n axios.post(\r\n config.controllURL + \"api/Administration/SendFreeSms\",\r\n {\r\n phoneNumber: requestForm.phoneNumber\r\n }\r\n ).then(response => {\r\n\r\n\r\n if (response.data) {\r\n setError({});\r\n saveData(\"validationCode\", response.data, true)\r\n setConfirmValidation(true);\r\n codeValid = true;\r\n\r\n console.log(\"after validate codeWWW \");\r\n setSteps(1);\r\n }\r\n if (codeValid) {\r\n\r\n // console.log(\"codeValid\");\r\n // axios.post(\r\n // config.baseURL + 'func',\r\n // {\r\n // \"Name\": \"Site_SendSmsCodeFormAppFunction\",\r\n // \"Values\": {\r\n // \"to\": requestForm.phoneNumber\r\n // }\r\n // }\r\n // ).then(response1 => {\r\n // if (response1.data) {\r\n // setError({});\r\n // console.log(\"after validate code \",response1.data[0].Code);\r\n // saveData(\"validationCode\", response1.data[0].Code, true)\r\n // setSteps(1);\r\n // }\r\n // }).catch(err => {\r\n // if (err.response1 && err.response1.status === 400) {\r\n // toast.error(err.response1.data[`${trans('model:description3')}`]);\r\n // }\r\n // console.log(err);\r\n // })\r\n console.log(\"after validate phoneNumber error\");\r\n }\r\n }).catch(err => {\r\n if (err.response && err.response.status === 400) {\r\n toast.error(err.response.data[`${trans('model:description3')}`]);\r\n }\r\n console.log(err);\r\n })\r\n\r\n\r\n\r\n\r\n }\r\n break;\r\n\r\n case 1:\r\n specifics = removeUnspecificError(result, ['validation']);\r\n setError(specifics);\r\n\r\n if (Object.keys(specifics).length == 0) {\r\n\r\n var cookies = null;\r\n try {\r\n\r\n cookies = getData(\"validationCode\", true);\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n\r\n let cookieValue = cookies.replaceAll(\"\\\"\", \"\");\r\n\r\n if (cookieValue == null) {\r\n toast.error(trans(\"error2:validation_code_finish_time_error\"));\r\n setSteps(0);\r\n setError({});\r\n } else if (cookieValue == requestForm.validation) {\r\n setSteps(2);\r\n } else {\r\n setSteps(1);\r\n toast.error(trans(\"error2:validation_error\"));\r\n }\r\n\r\n }\r\n break;\r\n\r\n case 2:\r\n let otherProperities = [];\r\n const val = { ...requestForm };\r\n if (isClientAccount == null) {\r\n otherProperities = ['accountType'];\r\n } else if (isClientAccount) {\r\n val.commercialIdentity = '';\r\n val.commercialIdentityImage = null;\r\n otherProperities = ['accountType', 'identity'];\r\n } else {\r\n otherProperities = ['accountType', 'commercialIdentity'];\r\n val.identity = '';\r\n val.identityImage = null;\r\n }\r\n setRequestForm(val);\r\n specifics = removeUnspecificError(result, [`${lang}FirstName`, `${lang}MiddleName`, `${lang}LastName`, ...otherProperities]);\r\n setError(specifics);\r\n if (Object.keys(specifics).length == 0) {\r\n if (selectedPrivacy) {\r\n axios.post(\r\n config.controllURL + \"api/Administration/\" + \"SignUp\",\r\n {\r\n \"ArFirstName\": requestForm.arFirstName ?? null,\r\n \"ArMiddlename\": requestForm.arMiddleName ?? null,\r\n \"ArLastname\": requestForm.arLastName ?? null,\r\n \"EnFirstName\": requestForm.enFirstName ?? null,\r\n \"EnMiddlename\": requestForm.enMiddleName ?? null,\r\n \"EnLastname\": requestForm.enLastName ?? null,\r\n \"Phone\": requestForm.phoneNumber,\r\n \"Identity\": requestForm.identity,\r\n \"IdentityImage\": requestForm.identityImage,\r\n \"TradeNo\": requestForm.commercialIdentity,\r\n \"TradeNoImage\": requestForm.commercialIdentityImage,\r\n \"CustGroupID\": requestForm.accountType,\r\n \"IsClient\": isClientAccount\r\n }\r\n ).then(response => {\r\n if (response.data) {\r\n setError({});\r\n setRequestForm({\r\n arFirstName: '',\r\n arMiddleName: '',\r\n arLastName: '',\r\n enFirstName: '',\r\n enMiddleName: '',\r\n enLastName: '',\r\n phoneNumber: '',\r\n validation: '',\r\n identity: '',\r\n identityImage: null,\r\n commercialIdentity: '',\r\n commercialIdentityImage: null\r\n });\r\n toast.success(trans(\"common:account-created-successfully\"));\r\n onTabChange(tabsList[0]);\r\n }\r\n }).catch(error => {\r\n if (error.response && error.response.status === 400) {\r\n toast.error(error.response.data[`${trans(\"model:description3\")}`]);\r\n }\r\n });\r\n } else {\r\n toast.error(trans(\"common:not-agree\"));\r\n }\r\n }\r\n break;\r\n }\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n };\r\n\r\n const getCookie = async (cname) => {\r\n let name = cname + \"=\";\r\n let decodedCookie = decodeURIComponent(document.cookie);\r\n let ca = decodedCookie.split(';');\r\n for (let i = 0; i < ca.length; i++) {\r\n let c = ca[i];\r\n while (c.charAt(0) == ' ') {\r\n c = c.substring(1);\r\n }\r\n if (c.indexOf(name) == 0) {\r\n return c.substring(name.length, c.length);\r\n }\r\n }\r\n return \"\";\r\n }\r\n\r\n const getCorrectSection = () => {\r\n switch (steps) {\r\n case 0:\r\n return (\r\n
    \r\n {\r\n const val = { ...requestForm };\r\n val.phoneNumber = `+${countryCode}${phoneNumber}`;\r\n setRequestForm(val);\r\n }}\r\n />\r\n
    \r\n );\r\n case 1:\r\n return (\r\n {\r\n const val = { ...requestForm };\r\n val.validation = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n placeholder={trans(\"form:validation-key\")}\r\n />\r\n );\r\n case 2:\r\n let components;\r\n if (lang === 'ar') {\r\n components = (\r\n <>\r\n\r\n {\r\n const val = { ...requestForm };\r\n val.arFirstName = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n placeholder={trans(\"form:first-name\")}\r\n />\r\n {\r\n const val = { ...requestForm };\r\n val.arMiddleName = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n placeholder={trans(\"info:middle-name\")}\r\n />\r\n {\r\n const val = { ...requestForm };\r\n val.arLastName = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n errorLabel={error?.arLastName}\r\n placeholder={trans(\"info:surname\")}\r\n />\r\n\r\n\r\n \r\n )\r\n }\r\n else {\r\n components = (\r\n <>\r\n {\r\n const val = { ...requestForm };\r\n val.enFirstName = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n errorLabel={error?.enFirstName}\r\n placeholder={trans(\"form:first-name\")}\r\n />\r\n {\r\n const val = { ...requestForm };\r\n val.enMiddleName = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n errorLabel={error?.enMiddleName}\r\n placeholder={trans(\"info:middle-name\")}\r\n />\r\n {\r\n const val = { ...requestForm };\r\n val.enLastName = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n errorLabel={error?.enLastName}\r\n placeholder={trans(\"info:surname\")}\r\n />\r\n \r\n )\r\n }\r\n\r\n return (\r\n
    \r\n \r\n\r\n {\r\n components\r\n }\r\n {\r\n if (lang === 'ar') {\r\n return { text: item.DescriptionAr, value: item.ID, isClient: item.NeedIdentity }\r\n } else {\r\n return { text: item.DescriptionEn, value: item.ID, isClient: item.NeedIdentity }\r\n }\r\n })\r\n ]}\r\n onfilter={(item) => {\r\n if (item.isClient == undefined) {\r\n setIsClientAccount(null);\r\n return;\r\n }\r\n setIsClientAccount(item.isClient);\r\n }}\r\n onSelect={(value => {\r\n const val = { ...requestForm };\r\n val.accountType = value;\r\n setRequestForm(val);\r\n })}\r\n />\r\n {isClientAccount != null && isClientAccount == true ?\r\n <>\r\n {\r\n const val = { ...requestForm };\r\n val.identity = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n placeholder={trans(\"form:identity-no\")}\r\n />\r\n {\r\n await handleChangeImage(file);\r\n }}\r\n />\r\n \r\n : isClientAccount != null && isClientAccount == false ? <>\r\n {\r\n const val = { ...requestForm };\r\n val.commercialIdentity = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n placeholder={trans(\"info:trade_no\")}\r\n />\r\n {\r\n await handleChangeImage2(file);\r\n }}\r\n />\r\n : null\r\n }\r\n {\r\n setSelectedPrivacy(e.checked);\r\n }}\r\n >\r\n \r\n {trans(\"common:agree-on\")}\r\n \r\n \r\n {trans(\"common:policy\")}\r\n \r\n \r\n \r\n\r\n
    \r\n );\r\n }\r\n };\r\n return (\r\n
    \r\n

    {trans(\"common:no-account\")}

    \r\n
    \r\n\r\n\r\n\r\n {\r\n getCorrectSection()\r\n }\r\n\r\n\r\n
    \r\n\r\n
    \r\n \r\n {/*

    {trans(\"common:or\")}

    */}\r\n\r\n {/*
    \r\n
    \r\n (\r\n \r\n {trans(\"form:sign-up-google\")}\r\n \"google\r\n \r\n )}\r\n onSuccess={(e) => onSuccess('Google', e)}\r\n onFailure={(e) => onFailure('Google', e)}\r\n cookiePolicy={window.location.origin}\r\n />\r\n
    \r\n
    \r\n onSuccess(\"Facebook\", e)}\r\n fields=\"name,email\"\r\n cssClass='nice-btn nice-btn-primary pl-14 '\r\n textButton={
    {trans(\"form:sign-up-facebook\")}\"facebook
    }\r\n render={renderProps => (\r\n )}\r\n />\r\n
    \r\n
    */}\r\n onTabChange(tabsList[0])}>\r\n {trans(\"common:existing-account\")}\r\n \r\n\r\n
    \r\n
    \r\n );\r\n}","import React, { useState, useRef, useEffect } from 'react'\r\n\r\n\r\nexport function CountDown({Total,contM=0 , onFinish}) {\r\n\r\n // We need ref in this, because we are dealing\r\n // with JS setInterval to keep track of it and\r\n // stop it when needed\r\n const Ref = useRef(null);\r\n\r\n // The state for our timer\r\n const [timer, setTimer] = useState('00:00');\r\n\r\n\r\n const getTimeRemaining = (e) => {\r\n const total = Date.parse(e) - Date.parse(new Date());\r\n const seconds = Math.floor((total / 1000) % 60);\r\n const minutes = Math.floor((total / 1000 / 60) % 60);\r\n return {\r\n total, minutes, seconds\r\n };\r\n }\r\n\r\n\r\n const startTimer = (e) => {\r\n let { total, minutes, seconds }\r\n = getTimeRemaining(e);\r\n if (total >= 0) {\r\n setTimer(\r\n (minutes > 9 ? minutes : '0' + minutes) + ':'\r\n + (seconds > 9 ? seconds : '0' + seconds)\r\n )\r\n }else{\r\n clearInterval(Ref.current);\r\n if(onFinish)\r\n onFinish();\r\n }\r\n }\r\n\r\n\r\n const clearTimer = (e) => {\r\n\r\n // If you adjust it you should also need to\r\n // adjust the Endtime formula we are about\r\n // to code next \r\n setTimer('00:00');\r\n\r\n // If you try to remove this line the \r\n // updating of timer Variable will be\r\n // after 1000ms or 1sec\r\n if (Ref.current) clearInterval(Ref.current);\r\n const id = setInterval(() => {\r\n startTimer(e);\r\n }, 1000)\r\n Ref.current = id;\r\n }\r\n\r\n const getDeadTime = () => {\r\n let deadline = new Date();\r\n let now= new Date(Date.now());\r\n\r\n // This is where you need to adjust if \r\n // you entend to add more time\r\n\r\n deadline.setSeconds(deadline.getSeconds()-now.getSeconds());\r\n deadline.setMinutes(deadline.getMinutes()+contM);\r\n \r\n\r\n\r\n \r\n \r\n \r\n return deadline;\r\n }\r\n\r\n // We can use useEffect so that when the component\r\n // mount the timer will start as soon as possible\r\n\r\n // We put empty array to act as componentDid\r\n // mount only\r\n useEffect(() => {\r\n clearTimer(getDeadTime());\r\n }, [contM]);\r\n\r\n // Another way to call the clearTimer() to start\r\n // the countdown is via action event from the\r\n // button first we create function to be called\r\n // by the button\r\n const onClickReset = () => {\r\n clearTimer(getDeadTime());\r\n }\r\n\r\n return (\r\n
    \r\n {\r\n timer\r\n }\r\n
    \r\n )\r\n}\r\n\r\n","import { useTranslation } from \"react-i18next\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { InputField } from \"../components/_input/_input\";\r\nimport { FormButton } from \"../components/_input/_button\";\r\nimport { Fragment, useEffect, useState } from \"react\";\r\nimport axios from \"axios\";\r\nimport config from '../configuration/config.json';\r\nimport crypto from 'crypto-js';\r\nimport Joi from \"joi\";\r\nimport { GetMessages, formValidate, validateProperty } from '../utils/validation';\r\nimport { toast } from \"react-toastify\";\r\nimport { CountDown } from \"./components/countDown\";\r\nimport PhoneDropDown from \"../components/_input/_phoneDropDown\";\r\nexport default function ResetPassword({ onTabChange }) {\r\n const { t: trans } = useTranslation([\"common\", \"form\", \"inputs\", \"model\", \"error2\", \"finance\"]);\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const languageDir = 'language-' + lang;\r\n const tabsList = [{\r\n tab: 1, title: 'sign-in'\r\n }, {\r\n tab: 2, title: 'sign-up'\r\n }, {\r\n tab: 3, title: 'reset-password'\r\n }];\r\n const [activeStep, setActiveStep] = useState(0);\r\n const [requestForm, setRequestForm] = useState({\r\n phoneNumber: '',\r\n identityNo: '',\r\n validationKey: '',\r\n password: '',\r\n confirmPassword: ''\r\n });\r\n const [ticker, setTicker] = useState(1);\r\n const [clicked, setClicked] = useState(false);\r\n const notes = [\r\n trans(\"common:reset-password-step-1-note\"),\r\n trans(\"info:reset-password-step-2-note\"),\r\n trans(\"common:reset-password-step-2-note\"),\r\n trans(\"common:reset-password-step-3-note\"),\r\n ];\r\n const [identityType, setIdentityType] = useState(null);\r\n\r\n const schema = Joi.object({\r\n validationKey: Joi.string().required().messages(GetMessages()),\r\n phoneNumber: Joi.string().min(13).required().messages(GetMessages()),\r\n identityNo: Joi.string().length(10).required().messages(GetMessages()),\r\n password: Joi.string().required().messages(GetMessages()),\r\n confirmPassword: Joi.string().valid(Joi.ref('password')).required().messages(GetMessages())\r\n });\r\n const [error, setError] = useState({});\r\n const [passwordStrength, setPasswordStrength] = useState(false);\r\n const handleSteps = () => {\r\n const result = formValidate(schema, requestForm);\r\n setError(result);\r\n switch (activeStep) {\r\n case 0:\r\n if (!result?.phoneNumber) {\r\n axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"SiteCheckPhoneBeforeResetPassword\",\r\n \"Values\": {\r\n \"phone\": requestForm.phoneNumber\r\n }\r\n }\r\n ).then(response => {\r\n if (response.data.length > 0) {\r\n const { NeedIdentity } = { ...response.data[0] };\r\n setActiveStep(activeStep + 1);\r\n if (NeedIdentity) {\r\n setIdentityType(1);\r\n } else {\r\n setIdentityType(0);\r\n }\r\n }\r\n }).catch(error => {\r\n toast.error(trans(\"common:invaild-phonenumber\"));\r\n });\r\n }\r\n break;\r\n\r\n case 1:\r\n if (!result?.identityNo) {\r\n axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"SiteCheckMatchedPhoneWithIdentity\",\r\n \"Values\": {\r\n \"phone\": requestForm.phoneNumber,\r\n \"Identity\": requestForm.identityNo,\r\n \"Type\": identityType\r\n }\r\n }\r\n ).then(response => {\r\n if (response.data == true) {\r\n axios.post(\r\n \"/api/Administration/\" + \"SendSms\",\r\n {\r\n \"AccessType\": \"PhoneNumber\",\r\n \"Access\": requestForm.phoneNumber\r\n }\r\n ).then(response => {\r\n if (response.status) {\r\n if (response.data) {\r\n setActiveStep(activeStep + 1);\r\n setError({});\r\n }\r\n }\r\n }).catch(error => {\r\n toast.error(trans(\"error2:unknown_identity_or_custType_not\"));\r\n });\r\n } else {\r\n toast.error(trans(\"error2:not_matched_identity_with_phone\"))\r\n }\r\n }\r\n ).catch(err => {\r\n toast.error(trans(\"error2:not_matched_identity_with_phone\"))\r\n });\r\n }\r\n break;\r\n case 2:\r\n if (!result?.validationKey) {\r\n axios.post(\r\n config.controllURL + \"/api/Administration/\" + \"MatchedKeys\",\r\n {\r\n \"AccessType\": \"PhoneNumber\",\r\n \"Access\": requestForm.phoneNumber,\r\n \"ValidationKey\": requestForm.validationKey\r\n }\r\n ).then(response => {\r\n if (response.status == 200) {\r\n setActiveStep(activeStep + 1);\r\n setError({});\r\n }\r\n }).catch(error => {\r\n toast.error(trans(\"common:invaild-validation-key\"));\r\n });\r\n }\r\n break;\r\n case 3:\r\n if (!result?.password && !result?.confirmPassword) {\r\n if (passwordStrength) {\r\n axios.post(\r\n config.controllURL + \"/api/Administration/\" + \"ForgetPassword\",\r\n {\r\n \"AccessType\": \"PhoneNumber\",\r\n \"Access\": requestForm.phoneNumber,\r\n \"ValidationKey\": requestForm.validationKey,\r\n \"Password\": crypto.MD5(requestForm.password).toString()\r\n }\r\n ).then(response => {\r\n if (response.status == 200) {\r\n if (response.data) {\r\n toast.success(trans(\"common:reset-password-successfully\"));\r\n setError({});\r\n setActiveStep(0);\r\n setTicker(1);\r\n setIdentityType(null);\r\n setRequestForm({});\r\n if (onTabChange)\r\n onTabChange(tabsList[0]);\r\n }\r\n }\r\n }).catch(error => {\r\n toast.error(trans(\"common:invaild-validation-key\"));\r\n });\r\n }\r\n }\r\n break;\r\n }\r\n };\r\n const handleResendSms = () => {\r\n axios.post(\r\n config.controllURL + \"/api/Administration/\" + \"SendSms\",\r\n {\r\n \"AccessType\": \"PhoneNumber\",\r\n \"Access\": requestForm.phoneNumber\r\n }\r\n ).then(response => {\r\n if (response.status == 200) {\r\n if (response.data) {\r\n toast.success(trans(\"common:validation-key-sent\"));\r\n }\r\n }\r\n }).catch(error => {\r\n toast.error(trans(\"common:invaild-phonenumber\"));\r\n });\r\n };\r\n return (\r\n
    \r\n

    \r\n {notes[activeStep] + ((activeStep == 1) ? identityType == true ? trans(\"form:identity-no\") : identityType == false ? trans(\"finance:cn\") : '' : '')}\r\n

    \r\n\r\n
    \r\n \r\n {activeStep == 0 && (\r\n <>\r\n {\r\n const val = { ...requestForm };\r\n val.phoneNumber = `+${countryCode}${phoneNumber}`;\r\n setRequestForm(val);\r\n }}\r\n />\r\n \r\n )\r\n }\r\n \r\n \r\n {activeStep == 1 && ( {\r\n const val = { ...requestForm };\r\n val.identityNo = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n placeholder={identityType == 1 ? trans(\"form:identity-no\") : trans(\"finance:cn\")}\r\n />)\r\n }\r\n \r\n \r\n {activeStep == 2 &&\r\n \r\n {\r\n const val = { ...requestForm };\r\n val.validationKey = e.target.value;\r\n setRequestForm(val);\r\n }\r\n }\r\n />\r\n
    \r\n \r\n {\r\n trans(\"common:countdown-note\")\r\n }\r\n \r\n {\r\n setClicked(true);\r\n }} />\r\n {clicked && {\r\n setTicker(ticker + 3);\r\n setClicked(false);\r\n handleResendSms();\r\n }\r\n }>\r\n {\r\n trans(\"common:resend\")\r\n }\r\n \r\n }\r\n
    \r\n
    \r\n }\r\n
    \r\n \r\n {activeStep == 3 && \r\n {\r\n setPasswordStrength(e);\r\n }}\r\n length={20}\r\n errorLabel={error?.password}\r\n placeholder={trans(\"form:password\")}\r\n name='password'\r\n passwordStrength={true}\r\n onChangeValue={\r\n (e) => {\r\n const val = { ...requestForm };\r\n val.password = e.target.value;\r\n setRequestForm(val);\r\n }\r\n }\r\n />\r\n {\r\n const val = { ...requestForm };\r\n val.confirmPassword = e.target.value;\r\n setRequestForm(val);\r\n }\r\n }\r\n />\r\n \r\n }\r\n \r\n
    \r\n handleSteps()} />\r\n
    \r\n\r\n onTabChange(tabsList[0])}>\r\n {trans(\"form:main-page\")}\r\n \r\n
    \r\n
    \r\n );\r\n}\r\n","import {useTranslation} from \"react-i18next\";\r\nimport {Link,useHistory} from \"react-router-dom\";\r\nimport { InputField } from \"../components/_input/_input\";\r\nimport { FormButton } from \"../components/_input/_button\";\r\nimport { Fragment, useEffect , useState } from \"react\";\r\nimport axios from \"axios\";\r\nimport crypto from 'crypto-js';\r\nimport Joi from \"joi\";\r\nimport {GetMessages , formValidate,validateProperty} from '../utils/validation';\r\nimport { PhoneInput } from \"../components/_input/_phoneInput\";\r\nimport { toast } from \"react-toastify\";\r\nimport { CountDown } from \"./components/countDown\";\r\nimport * as db from '../utils/localDB';\r\nimport config from '../configuration/config.json';\r\nexport default function LoginValidation({onTabChange,onLogin}){\r\n const {t: trans} = useTranslation([\"common\",\"form\",\"inputs\",\"model\"]);\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const tabsList = [{\r\n tab : 1 , title : 'sign-in'\r\n },{\r\n tab : 2 , title : 'sign-up'\r\n }, {\r\n tab : 3 , title : 'reset-password'\r\n }];\r\n const [requestForm,setRequestForm] = useState({\r\n validationKey:'',\r\n });\r\n const history = useHistory();\r\n const schema = Joi.object({\r\n validationKey:Joi.string().required().messages(GetMessages())\r\n });\r\n const [error,setError] = useState({});\r\n const handleRequest = async ()=>{\r\n const result = formValidate(schema,requestForm) ?? {};\r\n setError(result);\r\n try{\r\n if(Object.keys(result).length == 0){\r\n const secretKey = \"secretKey\"; \r\n const secretKeyValue = localStorage.getItem(secretKey); \r\n if(secretKeyValue){\r\n db.createDbRequest(\"UserDB\",1);\r\n axios.post(\r\n \"/api/Administration/\"+ \"SignInValidate2\",\r\n {\r\n \"AccessType\": \"Global\",\r\n \"Access\": String(secretKeyValue),\r\n \"ValidationKey\":requestForm.validationKey\r\n }\r\n ).then((response)=>{\r\n if(response.status == 200){\r\n const encodedData = crypto.AES.encrypt(JSON.stringify(response.data),config.cryptoKey).toString();\r\n localStorage.setItem(\"userData\",JSON.stringify({ email : response.data.email , phone : response.data.phone , \r\n id:response.data.id.toString() ,descriptionAr:response.data.descriptionAr , descriptionEn : response.data.descriptionEn\r\n , logo : response.data.logo}));\r\n localStorage.setItem(\"userId\",response.data.id.split(\"_\")[1]);\r\n localStorage.setItem(\"custId\",response.data.custID);\r\n const status = db.proccessUserData({uId:1,data:encodedData});\r\n db.getUserDataByID(1).onsuccess = (event)=>{\r\n const result = event.target.result;\r\n if(result){\r\n localStorage.setItem(\"isAuthenticated\",true); \r\n history.push('/user');\r\n if(onLogin)\r\n onLogin();\r\n }\r\n }; \r\n }\r\n }).catch((err)=>{\r\n if(err.response && err.response.status == 400){\r\n toast.error(trans(\"common:invaild-validation-key\"));\r\n }\r\n });\r\n }\r\n }\r\n }catch(err){\r\n console.log(err);\r\n }\r\n };\r\n\r\n\r\n\r\n return (\r\n
    \r\n

    \r\n {trans(\"common:reset-password-step-2-note\")}\r\n

    \r\n {\r\n const val = { ...requestForm };\r\n val.validationKey = e.target.value;\r\n setRequestForm(val);\r\n }\r\n }\r\n /> \r\n \r\n\r\n \r\n onTabChange(tabsList[0])}>\r\n {trans(\"form:main-page\")} \r\n \r\n
    \r\n );}\r\n","import axios from \"axios\";\r\nimport { useEffect } from \"react\";\r\nimport { useState } from \"react\";\r\nimport { useRef } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport Popup from \"../../User/popup\";\r\nimport config from '../../configuration/config.json';\r\nimport { DropDownInput } from \"./_dropdown\";\r\nimport { toast } from \"react-toastify\";\r\nimport { useHistory } from \"react-router\";\r\nimport {slugCombine} from '../../utils/slugManager';\r\nconst AdvancedSearch = ({onSearchClick , show = false}) => {\r\n const { t: trans } = useTranslation([\"navbar\", \"model\"]);\r\n const sections = [\r\n { text: trans(\"navbar:cars\"), value: '1' },\r\n { text: trans(\"navbar:spare_parts\"), value: '2' },\r\n { text: trans(\"navbar:offer\"), value: '3' },\r\n { text: trans(\"navbar:compaigns\"), value: '4' }\r\n ];\r\n const popRef = useRef(null);\r\n const searchRef = useRef(null);\r\n const history = useHistory();\r\n //----------------------------------------------\r\n const [searchInput, setSearchInput] = useState({description:'',value:''});\r\n const [isOpened, setIsOpened] = useState(false);\r\n const [section, setSection] = useState('');\r\n const [searchResult, setSearchResult] = useState([]);\r\n const [filteredSearchResult, setFilteredSearchResult] = useState([]);\r\n const [showDetailsBox, setShowDetailsBox] = useState('');\r\n const [targetPage,setTargetPage] = useState(''); \r\n const lang = localStorage.getItem('i18nextLng');\r\n const languageDir = 'language-' + lang;\r\n \r\n //-----------------------------------------------\r\n useEffect(() => {\r\n // Bind the event listener\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => {\r\n // Unbind the event listener on clean up\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, [show]);\r\n\r\n // to close the popup from outside\r\n const handleClickOutside = (event) => {\r\n if (popRef.current && popRef.current.classList.contains(event.target.classList[0]) && show === true) {\r\n onSearchClick(false);\r\n setSearchInput({\r\n description:'',\r\n value:''\r\n });\r\n setIsOpened(false);\r\n }\r\n };\r\n // fire when the client clicks on the search btn\r\n const handleSearchBtn = () => {\r\n const result = {...searchInput};\r\n if(result.value && targetPage !== ''){\r\n history.push(targetPage + result.value)\r\n onSearchClick(false);\r\n }else{\r\n toast.error(trans(\"navbar:no_search_result\"))\r\n }\r\n };\r\n // filtering the result when the client change the text value\r\n const handleSearchChange = (event) => {\r\n const value = event.target.value;\r\n let filter = [];\r\n const prevousValue = {...searchInput};\r\n prevousValue.description = value;\r\n setSearchInput(prevousValue);\r\n\r\n if (sections != '') {\r\n filter = searchResult.filter((item) => item.source.toLowerCase().includes(value?.toLowerCase() ?? ''));\r\n }\r\n\r\n setFilteredSearchResult(filter);\r\n if (filter && filter?.length > 0)\r\n setIsOpened(true);\r\n else\r\n setIsOpened(false);\r\n };\r\n // choose the option from the searching result\r\n const handleChooseOption = (option) => {\r\n if (option) {\r\n setSearchInput({\r\n description:option.description,\r\n value:option.value\r\n });\r\n }\r\n searchRef.current.focus();\r\n setIsOpened(false);\r\n };\r\n // select the section and populate the list\r\n const handleSearchResult = async (option) => {\r\n const descriptionModel = trans(\"model:description\");\r\n let result = [];\r\n let target = '';\r\n if (option == null || option == '' || option == '0') {\r\n setSearchInput({description:'',value:''});\r\n setIsOpened(false);\r\n setTargetPage(target);\r\n return;\r\n }\r\n try {\r\n switch (Number(option)) {\r\n case 1:\r\n result = await handleRequest('SiteVehiclesAdvancedSearch');\r\n result = result.map((item) => {\r\n return {\r\n uniqueID: String(item.GUID), source: [item[`${trans(\"model:brandDescription\")}`], item[`${trans(\"model:description\")}`],\r\n item[`${trans(\"model:groupDescription\")}`], String(item.Model)].join(), description: item[`${trans(\"model:description\")}`],\r\n value: item[`${trans(\"navbar:slug\")}`] ? (slugCombine(item.BrandAr,item.BrandEn) + '/' + slugCombine(item.slugAr,item.slugEn)) : null\r\n }\r\n });\r\n target = '/vehicles/';\r\n break;\r\n case 2:\r\n result = await handleRequest('SiteSparePartsAdvancedSearch');\r\n result = result.map((item)=>{\r\n return {\r\n description:item[`${trans(\"model:description\")}`],source:[item[`${trans(\"model:description\")}`],item[`${trans(\"navbar:category\")}`],\r\n String(item.Discount), item.Price , item.Weight , item.Length , item.Height , item.Width ].join(),\r\n value:String(item.ID)\r\n } \r\n });\r\n target = '/eparts/detail/';\r\n break;\r\n case 3:\r\n result = await handleRequest('SiteOffersAdvancedSearch');\r\n result = result.map((item)=>{\r\n return {\r\n description:item[`${descriptionModel}`],source:[item[`${descriptionModel}`],item.Price,\r\n item[`Small${descriptionModel}`],item[`Offer${descriptionModel}`],item[`Terms${descriptionModel}`]].join(),\r\n value: slugCombine(item.slugAr,item.slugEn)\r\n }\r\n });\r\n target = '/offers/detail/'\r\n break;\r\n case 4:\r\n result = await handleRequest('SiteCompainsAdvancedSearch');\r\n result = result.map((item)=>{\r\n return {\r\n description:item[`${descriptionModel}`],source:[item.Model,item.Price,item.Discount,\r\n item[`Small${descriptionModel}`],item[`${trans(\"model:brandDescription\")}`],\r\n ,item[`Com${descriptionModel}`]].join(),\r\n value:item.ID\r\n }\r\n });\r\n target = '/eparts/compaigndetails/';\r\n break;\r\n }\r\n setTargetPage(target);\r\n setSearchResult(result);\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n };\r\n // it's used to send http request to fetch the result\r\n const handleRequest = async (options) => {\r\n let responseResult = [];\r\n try {\r\n const response = await axios.post(\r\n config.baseURL + \"func\",\r\n {\r\n \"Name\": `${options}`\r\n }\r\n );\r\n responseResult = response.data;\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n return responseResult;\r\n };\r\n // to show the more details about the item\r\n const handleShowDetails = (event, id) => {\r\n event.stopPropagation();\r\n setShowDetailsBox(id);\r\n };\r\n // to close the details box about the item\r\n const handleCloseDetailsBox = (event) => {\r\n event.stopPropagation();\r\n setShowDetailsBox('');\r\n };\r\n //--------------------------------------------------\r\n return (\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n {\r\n if(event.code === 'Enter'){\r\n handleSearchBtn();\r\n }\r\n }}\r\n onChange={handleSearchChange}\r\n className={`search-input p-5 text-size-18r ${languageDir}`}\r\n placeholder={trans(\"navbar:search_place_holder\")} />\r\n
    \r\n
    \r\n {\r\n setSection(e);\r\n handleSearchResult(e);\r\n }\r\n }\r\n />\r\n
    \r\n
    \r\n
    \r\n {\r\n\r\n isOpened && (
    \r\n
      \r\n {\r\n filteredSearchResult.length > 0 && filteredSearchResult.map((item, index) => {\r\n return (\r\n
    • handleChooseOption(item)}>\r\n {item?.description}\r\n {/* {\r\n (showDetailsBox == item.uniqueID) &&
      handleCloseDetailsBox(event)}>\r\n تفاصيل اكثر\r\n
      \r\n }\r\n
      handleShowDetails(event, item.uniqueID)}>\r\n تفاصيل\r\n
      */}\r\n
    • \r\n )\r\n })\r\n }\r\n
    \r\n
    \r\n )\r\n\r\n }\r\n
    \r\n\r\n
    \r\n );\r\n\r\n};\r\n\r\nexport default AdvancedSearch;","import { useTranslation } from \"react-i18next\";\r\nconst CallCenter = ({servicePhone = '00966920018996' , phoneNumber = '920018996'})=>{\r\n const {t:trans} = useTranslation(\"common\");\r\n return (\r\n \r\n {/*

    {trans(\"common:hj\")}

    */}\r\n \r\n
    \r\n );\r\n}\r\n\r\nexport default CallCenter;","import { useTranslation } from \"react-i18next\";\r\nimport i18next from \"i18next\";\r\nimport { Link, NavLink, useHistory } from \"react-router-dom\";\r\nimport { Fragment, useEffect, useRef, useState, useCallback } from \"react\";\r\nimport { NavCar } from \"./hover/navCar\";\r\nimport { NavMaintenance } from \"./hover/navMaintenance\";\r\nimport { NavParts } from \"./hover/navParts\";\r\nimport { NavAbout } from \"./hover/navAbout\";\r\nimport { NavContact } from \"./hover/navContact\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { list, total, onChange } from \"cart-localstorage\";\r\nimport Popup from '../../User/popup';\r\nimport axios from \"axios\";\r\nimport { changeCount } from \"../../_redux/slices/cartSlice\";\r\nimport PopupHeader from \"../../User/components/popupHeader\";\r\nimport SignIn from \"../../User/signIn\";\r\nimport SignUp from \"../../User/signUp\";\r\nimport ResetPassword from \"../../User/resetPassword\";\r\nimport LoginValidation from \"../../User/loginValidation\";\r\nimport AdvancedSearch from \"../_input/advancedSearch\";\r\nimport CallCenter from \"../__simple/callCenter\";\r\nimport _, { concat, sum } from \"lodash\";\r\nimport { numberFormat } from \"../../utils/currencyFormatter\";\r\nimport config from \"../../configuration/config.json\";\r\nimport { Price } from \"../../components/__simple/_price\";\r\nimport { Base64 } from 'js-base64';\r\nimport Joi from \"joi\";\r\nimport { GetMessages } from '../../utils/validation';\r\nfunction Navbar({ popupShow }) {\r\n\r\n const { t: trans, i18n } = useTranslation([\"common\", \"form\", \"language\", \"info\", \"home\", \"cartFile\"]);\r\n let lang = i18n.language;\r\n let languageDir = \"language-\" + lang;\r\n const navRef = useRef(null);\r\n const popRef = useRef(null);\r\n const [navTop, setNavTop] = useState(-16);\r\n const [navFlex, setNavFlex] = useState(false);\r\n const [lastScrollY, setLastScrollY] = useState(0);\r\n const [onhamburger, setOnhamburger] = useState(false);\r\n\r\n const [showNav, setShowNav] = useState(null);\r\n const history = useHistory();\r\n const headerFixed = useSelector(state => state.entities.nav.isFixed);\r\n const headerIcons = useSelector(state => state.entities.nav.iconsBlack);\r\n const cartCount = useSelector(state => state.entities.cart.count);\r\n\r\n const [brands, setBrands] = useState([]);\r\n const [searchPopup, setSearchPopup] = useState(false);\r\n const [showCartNotification, setShowCartNotification] = useState(false);\r\n const [showPopup, setShowPopup] = useState(false);\r\n const timerRef = useRef(null);\r\n const [activePopUpModel, setActivePopUpModel] = useState({\r\n tab: 1,\r\n title: 'sign-in'\r\n });\r\n\r\n const handleTabChange = (tab) => {\r\n\r\n setActivePopUpModel(tab);\r\n };\r\n\r\n const handlePopupStatus = (status) => {\r\n setShowPopup(status);\r\n };\r\n\r\n // useEffect(() => {\r\n // console.log('showNav>>>>>>>>>>>>>>>>>>>>>>>', showNav);\r\n\r\n // }, [showNav])\r\n\r\n useEffect(() => {\r\n\r\n function handleClickOutside(event) {\r\n if (popRef.current && !popRef.current.contains(event.target) && showCartNotification === true) {\r\n\r\n setShowCartNotification(false);\r\n }\r\n }\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, [showCartNotification]);\r\n\r\n const schemaNavContact = Joi.object({\r\n fullName: Joi.string().required().messages(GetMessages()),\r\n phone: Joi.string().min(12).required().messages(GetMessages()),\r\n email: Joi.string().email({ minDomainSegments: 2, tlds: { allow: false } }).required().messages(GetMessages()),\r\n subject: Joi.string().required().messages(GetMessages()),\r\n messageContent: Joi.string().required().messages(GetMessages())\r\n });\r\n\r\n const countlist = list().length;\r\n const [addEvent, setaddEvent] = useState(false);\r\n useEffect(() => {\r\n\r\n window.addEventListener('storage', listenForStorage)\r\n\r\n if (addEvent == true) {\r\n try {\r\n window.dispatchEvent(new Event(\"storage\"));\r\n } catch (error) {\r\n\r\n }\r\n }\r\n\r\n setaddEvent(true);\r\n\r\n return () => {\r\n window.removeEventListener('storage', listenForStorage)\r\n }\r\n\r\n }, [addEvent])\r\n\r\n\r\n const listenForStorage = (v) => {\r\n\r\n\r\n\r\n if (countlist != list().length && showCartNotification != true && list().length > 0) {\r\n\r\n setShowCartNotification(true);\r\n\r\n }\r\n\r\n if (list().length <= 0) {\r\n\r\n setShowCartNotification(false);\r\n\r\n }\r\n Account();\r\n dispatch(\r\n changeCount({ count: list().length })\r\n )\r\n return () => {\r\n dispatch(\r\n changeCount({ count: list().length })\r\n )\r\n };\r\n };\r\n\r\n\r\n\r\n useEffect(() => {\r\n\r\n window.addEventListener('storage', listenForStorageToCount)\r\n\r\n try {\r\n window.dispatchEvent(new Event(\"storage\"));\r\n } catch (error) {\r\n\r\n }\r\n\r\n return () => {\r\n window.removeEventListener('storage', listenForStorageToCount)\r\n }\r\n\r\n\r\n\r\n }, [])\r\n const listenForStorageToCount = () => {\r\n Account();\r\n dispatch(\r\n changeCount({ count: list().length })\r\n )\r\n return () => {\r\n dispatch(\r\n changeCount({ count: list().length })\r\n )\r\n };\r\n };\r\n\r\n useEffect(() => {\r\n if (window.innerWidth < 577) {\r\n setNavTop(-1);\r\n }\r\n }, [window.innerWidth]);\r\n\r\n const dispatch = useDispatch();\r\n\r\n const [TotalTax, SetTotalTax] = useState(0)\r\n const [TotalDiscount, SetTotalDiscount] = useState(0);\r\n const [SumItemTotal, setSumItemTotal] = useState(0);\r\n const [SubTotal, setSubTotal] = useState(0);\r\n const [fullTotal, setfullTotal] = useState(0);\r\n const [MiniDownPayment, setMiniDownPayment] = useState(0);\r\n //Accounting for all items \r\n function Account() {\r\n\r\n let currentTotalTax = _.sum(list().map((p) => {\r\n return ((100 / 115) * ((p?.Type?.toLowerCase() == 'car' ? (p.price) : p.price) * p.quantity)) * 0.15;\r\n }));\r\n SetTotalTax(currentTotalTax);\r\n\r\n // let currentTotalDiscount = _.sum(list().map((p) => {\r\n // return calculateDiscount(p);\r\n // }));\r\n // SetTotalDiscount(currentTotalDiscount);\r\n\r\n let currentSumItemTotal = _.sum(list().map((p) => {\r\n return (p?.Type?.toLowerCase() == 'car' ? (p.MiniDownPayment ? p.MiniDownPayment : p.price) : p.price) * p.quantity;\r\n }));\r\n setSumItemTotal(currentSumItemTotal);\r\n let currentSumfullTotal = _.sum(list().map((p) => {\r\n return (p.price) * p.quantity;\r\n }));\r\n\r\n setfullTotal(currentSumfullTotal);\r\n let currentSubTotal = _.sum(list().map((p) => {\r\n return (p?.Type?.toLowerCase() == 'car' ? (p.MiniDownPayment ? p.MiniDownPayment : p.price) : p.price) * p.quantity;\r\n }));\r\n setSubTotal(currentSubTotal);\r\n\r\n\r\n let currentMiniDownPayment = _.sum(list().map((p) => {\r\n return (p.MiniDownPayment && p.MiniDownPayment != 0) ? p.MiniDownPayment * p.quantity : (p?.Type?.toLowerCase() == 'car' ? (p.MiniDownPayment ? p.MiniDownPayment : p.price) : p.price) * p.quantity;\r\n }));\r\n setMiniDownPayment(currentMiniDownPayment);\r\n\r\n };\r\n\r\n\r\n // useEffect(() => {\r\n\r\n\r\n // console.log(\"list().length>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\", list().length)\r\n // console.log(\"getlistCart>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\", getlistCart)\r\n // console.log(\"showCartNotification>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\", showCartNotification)\r\n // if (getlistCart == true && showCartNotification != true) {\r\n\r\n // // setShowCartNotification(true);\r\n\r\n // }\r\n // Account();\r\n // setgetlistCart(true);\r\n // dispatch(\r\n // changeCount({ count: list().length })\r\n // )\r\n // return () => {\r\n // dispatch(\r\n // changeCount({ count: list().length })\r\n // )\r\n // };\r\n\r\n\r\n\r\n\r\n\r\n // }, [cartCount]);\r\n\r\n\r\n useEffect(async () => {\r\n\r\n try {\r\n\r\n if (\"caches\" in window) {\r\n let url = \"brands-\" + lang;\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"HJWeb\");\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n url\r\n );\r\n let data = await cachedResponse?.json();\r\n if (data && data?.brands && data?.brands?.length > 0)\r\n setBrands(data.brands);\r\n\r\n }\r\n\r\n } catch (error) {\r\n }\r\n\r\n try {\r\n const res = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/brands/brands\",\r\n method: \"get\",\r\n\r\n })\r\n\r\n setBrands(res.data.brands);\r\n const data22 = new Response(JSON.stringify(res.data));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"HJWeb\").then((cache) => {\r\n cache.put(\"brands-\" + lang, data22);\r\n\r\n });\r\n }\r\n } catch (error) {\r\n }\r\n\r\n window.addEventListener(\"scroll\", handleScroll);\r\n return () => window.removeEventListener(\"scroll\", handleScroll);\r\n\r\n }, []);\r\n\r\n const handleScroll = () => {\r\n if (headerFixed) {\r\n const currentScrollY = window.scrollY;\r\n if (currentScrollY - 300 > lastScrollY) {\r\n setNavFlex(true)\r\n\r\n setNavTop(-1);\r\n } else {\r\n if (window.innerWidth < 577) {\r\n setNavTop(-1);\r\n } else {\r\n setNavTop(-18);\r\n }\r\n if (currentScrollY <= lastScrollY + 200) {\r\n setNavFlex(false);\r\n }\r\n }\r\n setLastScrollY(currentScrollY);\r\n } else {\r\n setNavFlex(false)\r\n }\r\n };\r\n const [showedListNav, setShowedListNavShowNav] = useState([]);\r\n\r\n function show(section) {\r\n\r\n setShowNav(null);\r\n if (section && !showedListNav.includes(section)) {\r\n timerRef.current = setTimeout(() => {\r\n handleMouseEnter(section);\r\n setShowNav(section);\r\n }, 700); // 2000 milliseconds = 2 \r\n } else {\r\n\r\n setShowNav(section);\r\n }\r\n }\r\n\r\n function onMouseOut() {\r\n setShowNav(null);\r\n handleMouseLeave();\r\n\r\n }\r\n\r\n const handleMouseEnter = (section) => {\r\n\r\n if (section && !showedListNav.includes(section)) {\r\n showedListNav.push(section);\r\n }\r\n\r\n };\r\n\r\n const handleMouseLeave = () => {\r\n if (timerRef.current) {\r\n clearTimeout(timerRef.current);\r\n }\r\n };\r\n return (\r\n \r\n\r\n\r\n
    \r\n \r\n
    \r\n navbar holder\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n {\r\n activePopUpModel.tab == 1 ?\r\n { handleTabChange(tab) }} onLogin={() => handlePopupStatus(false)} />\r\n : activePopUpModel.tab == 2 ?\r\n { handleTabChange(tab) }} onLogin={() => handlePopupStatus(false)} />\r\n : activePopUpModel.tab == 3 ?\r\n { handleTabChange(tab) }} />\r\n : { handleTabChange(tab) }} onLogin={() => handlePopupStatus(false)} />\r\n\r\n }\r\n
    \r\n\r\n handlePopupStatus(false)}>×\r\n {lang == \"ar\" ? \"اغلاق\" : \"close\"}\r\n
    \r\n handlePopupStatus(false)} />\r\n\r\n
    \r\n
    \r\n { setSearchPopup(value) }} />\r\n
    \r\n );\r\n}\r\n\r\n\r\nexport default Navbar;\r\n\r\n\r\n\r\n\r\n\r\n\r\n","\r\nfunction FooterHeading(prop) {\r\n return (\r\n
    \r\n\r\n
    \r\n

    {prop.title}

    \r\n
    \r\n );\r\n}\r\n\r\nexport default FooterHeading;\r\n","import {Link} from \"react-router-dom\";\r\nimport Moment from \"react-moment\";\r\nimport { Trans, useTranslation } from \"react-i18next\";\r\n\r\nfunction News({image, title, date, desc, link, brand}) {\r\n const {t: trans} = useTranslation([\"common\"]);\r\n function tag(brand) {\r\n if (brand === \"toyota\" || brand === \"تويوتا\") {\r\n return ({brand});\r\n } else {\r\n return ({brand});\r\n }\r\n }\r\n\r\n return (\r\n \r\n\r\n\r\n
    \r\n
    \r\n \"\"/\r\n {tag(brand)}\r\n
    \r\n
    \r\n

    {title}

    \r\n\r\n
    \r\n \r\n\r\n

    \r\n {desc}\r\n

    \r\n\r\n
    \r\n
    \r\n {trans(\"common:show-more\")}\r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default News;","import {useTranslation} from \"react-i18next\";\r\nimport {Link} from \"react-router-dom\";\r\n\r\nfunction NewsBanner({background, title, desc, link}) {\r\n const {t: trans} = useTranslation(\"common\");\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const languageDir = 'language-'+lang;\r\n return (\r\n
    \r\n \r\n
    \r\n {title}/\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n

    \r\n {title}\r\n

    \r\n
    \r\n
    \r\n\r\n

    \r\n {desc}\r\n

    \r\n
    \r\n
    \r\n\r\n \r\n {trans('read-more')}\r\n \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n );\r\n\r\n\r\n}\r\n\r\nexport default NewsBanner;","function PageHeading(prop) {\r\n // const languageDir = 'language-' + localStorage.getItem('i18nextLng');\r\n const languageDir = '' + localStorage.getItem('i18nextLng');\r\n return (\r\n
    \r\n\r\n
    \r\n
    \r\n

    {prop.subtitle}

    \r\n {prop.children}\r\n
    \r\n

    \r\n

    \r\n {\r\n prop.text != null ?\r\n
    {prop.text}
    \r\n : null\r\n }\r\n
    \r\n );\r\n}\r\n\r\nexport default PageHeading;\r\n","import {Link} from \"react-router-dom\";\r\nimport {useTranslation} from \"react-i18next\";\r\n\r\nexport default function Breadcrumb({links, className}) {\r\n const {t: trans} = useTranslation(\"common\");\r\n const languageDir = 'language-' + localStorage.getItem('i18nextLng');\r\n\r\n return (\r\n
    \r\n\r\n {trans(\"common:home\")}\r\n {\r\n links?.map((link,index) => {\r\n if(link != null&& link != \"null\") \r\n return ({link.name});\r\n })\r\n }\r\n
    \r\n );\r\n}\r\n\r\n","export function FilterButton({isActive, name, onclick, ...prop}) {\r\n return (\r\n
    \r\n {name}\r\n
    \r\n );\r\n}","import { useRef, useState } from \"react\";\r\nimport CountUp from 'react-countup';\r\nexport default function Counter({ counterData, title, subTitel, desc, BackOpicity, backImage }) {\r\n\r\n\r\n return (\r\n\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \"\" e.target.style.display = 'none'} />
    \r\n
    \r\n

    {title}

    \r\n

    \r\n {desc}\r\n

    \r\n
    \r\n
    \r\n {\r\n counterData?.map((item, index) => {\r\n\r\n return (\r\n\r\n
    \r\n {\r\n\r\n \"\" e.target.style.display = 'none'} />\r\n // \"\" e.target.style.display = 'none'} />\r\n }\r\n\r\n

    \r\n\r\n\r\n \r\n\r\n {item?.subTitel}\r\n

    \r\n {item?.titelAr}\r\n
    \r\n\r\n\r\n\r\n );\r\n\r\n\r\n })\r\n\r\n }\r\n\r\n\r\n\r\n
    \r\n\r\n
    \r\n );\r\n}","import React from 'react';\r\n\r\nconst GeneralQuestion = ({isMoreProp = false, questionProp, answerProp , onClickProp}) => {\r\n return (\r\n <>\r\n
    \r\n
    \r\n {questionProp}\r\n
    \r\n {\r\n (!isMoreProp && answerProp)\r\n ? \"image\r\n : \"image\r\n }\r\n
    \r\n
    \r\n {\r\n (isMoreProp && answerProp != null)\r\n ?
    \r\n \r\n {answerProp}\r\n \r\n
    \r\n : <>\r\n }\r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default GeneralQuestion;\r\n","import {Fragment, useEffect, useRef, useState} from \"react\";\r\nimport News from \"./components/news\";\r\nimport NewsBanner from \"./components/newsBanner\";\r\nimport {SwiperSlide, Swiper} from 'swiper/react';\r\nimport Loader from \"react-loader-spinner\";\r\nimport {useHistory, useParams} from \"react-router\";\r\nimport Pagination from \"react-js-pagination\";\r\nimport SwiperCore, {Pagination as SlidePagination, Navigation, Autoplay, EffectFade} from \"swiper\";\r\nimport PageHeading from \"../../../components/__simple/_pageheading\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport Breadcrumb from \"../../../components/__simple/breadcrumb\";\r\nimport {FilterButton} from \"../../../components/__simple/_filterButton\";\r\nimport axios from \"axios\";\r\nimport {slugCombine} from '../../../utils/slugManager';\r\nimport config from \"../../../configuration/config.json\";\r\nimport Counter from \"../sections/counter\";\r\nimport ImageGallery from \"react-image-gallery\";\r\nimport PollArea from \"../pollForm\";\r\nimport GeneralQuestion from \"../generalQuestion\";\r\n\r\nSwiperCore.use([SlidePagination, Navigation, Autoplay, EffectFade]);\r\n\r\nexport function NewsPageDaynamic() {\r\n const {page = 1} = useParams();\r\n\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const languageDir = \"language-\" + lang;\r\n\r\n const [activePage, setActivePage] = useState(0);\r\n let history = useHistory();\r\n\r\n const {t: trans} = useTranslation([\"inputs\", \"heading\", \"info\"]);\r\n // const news = useSelector(state => state.entities.news.items);\r\n\r\n const [news, setNews] = useState([]);\r\n // news shown in the slider\r\n const [sliderNews, setSliderNews] = useState([]);\r\n\r\n // the news filters\r\n const [newsFilter, setNewsFilter] = useState([]);\r\n\r\n const [filter, setFilter] = useState(null);\r\n\r\n const [filteredNews, setFilteredNews] = useState(news);\r\n\r\n const [dataStatus, setDataStatus] = useState(0);\r\n const [itemCount, setItemCount] = useState(0);\r\n\r\n // \r\n const [isFullScreen, setIsFullScreen] = useState(false);\r\n const popRef = useRef(null);\r\n const [activeImage, setActiveImage] = useState(0);\r\n\r\n\r\n // \r\n const testObject = [\r\n {\r\n \"counterId\": 1,\r\n \"GUID\": \"265031fc-2623-4f6a-bcc8-51903d828116\",\r\n \"pageID\": 1,\r\n \"isEnable\": true,\r\n \"titel\": \"عملاء\",\r\n \"titelAr\": \"عملاء\",\r\n \"subTitel\": \"+\",\r\n \"subTitelAr\": \"+\",\r\n \"number\": 1000.0,\r\n \"icon\": \"iVBORw0KGgoAAAANSUhEUgAAAU4AAAFOCAYAAADpU/RpAAAABHNCSVQICAgIfAhkiAAAGDtJREFUeF7t3VuMJFUdx/F/DbuLFzYSE99MxBiNQaMYE3kQ3B5ejIFZ4MUHVC4xxivsclsBURbvqFG8oyigAuENdwfQmJBpNF5ijPJkYtSI0WA00aAIouzO8dQMswwzPdN1qn+n+l+nv5uQIHvq31Wf/+mf/6ma6amMPwgggAACSQJV0moWI4AAAggYwckmQAABBBIFCM5EMJYjgAACBCd7AAEEEEgUIDgTwViOAAIIEJzsAQQQQCBRgOBMBGM5AgggQHCyBxBAAIFEAYIzEYzlCCCAAMHJHkAAAQQSBQjORDCWI4AAAgQnewABBBBIFCA4E8FYjgACCBCc7AEEEEAgUYDgTARjOQIIIEBwsgcQQACBRAGCMxGM5QgggADByR5AAAEEEgUIzkQwliOAAAIEJ3sAAQQQSBQgOBPBWI4AAggQnOwBBBBAIFGA4EwEYzkCCCBAcLIHEEAAgUQBgjMRjOUIIIAAwckeQAABBBIFCM5EMJYjgAACBCd7AAEEEEgUIDgTwViOAAIIEJzsAQQQQCBRgOBMBGM5AgggQHCyBxBAAIFEAYIzEYzlCCCAAMHJHkAAAQQSBQjORDCWI4AAAgQnewABBBBIFCA4E8FYjgACCBCc7AEEEEAgUYDgTARjOQIIIEBwsgcQQACBRAGCMxGM5QgggADByR5AAAEEEgUIzkQwliOAAAIEJ3sAAQQQSBQgOBPBWI4AAggQnOwBBBBAIFGA4EwEYzkCCCBAcLIHEEAAgUQBgjMRjOUIIIAAwckeQAABBBIFCM5EMJYjgAACBCd7AAEEEEgUIDgTwViOAAIIEJzsAQQQQCBRgOBMBGM5AgggQHCyBxBAAIFEAYIzEYzlCCCAAMHJHkAAAQQSBQjORDCWI4AAAgQnewABBBBIFCA4E8FYjgACCPgOzu8NTrIjdkFs0ykW4j9VdRItQwCBAgVCeMQqezBe2dDm7JCdOaz/3e0fv8G5ODgnhuWtMSxPdKvHiSGAQCaBcNAWhtdnKj5xWX/BeffgRNsRA9Oqcya+OgoggECPBcKDcfq8yOP06S84Fwc3xtDc1+Nuc+oIICATiOG5MHyNrJyokK/grL88t+pu0bVRBgEEihAI18fwPOjpUvwEZ/0l+nH2B+5petoenAsCTgTmwms8fcnuJzgXB4M4bS45aROngQACrgR8TZ2egjOO4tV1rnrFySCAgA+BEA7Z3qGbB8Z+gvPw4Lvxy/SzfXSJs0AAAVcCITwUg/PFXs7JUXDOD+M3wO7xAsN5IICAM4GFJTd55eZE7DDB6WybcjoI+BIgOEf0g+D0tUk5GwS8CRCcBKe3Pcn5IOBegOAkON1vUk4QAW8CBCfB6W1Pcj4IuBcgONXBGebjj2QN3TeeE0Rg1gUW50NrAoKT4Gy9eTgQgT4LEJzi7k30VJ2JU9wNyiGQR4DgFLsSnGJQyiHgUIDgFDeF4BSDUg4BhwIEp7gpBKcYlHIIOBQgOMVNITjFoJRDwKEAwSluCsEpBqUcAg4FCE5xUwhOMSjlEHAoQHCKm0JwikEph4BDAYJT3BSCUwxKOQQcChCc4qYQnGJQyiHgUIDgFDeF4BSDUg4BhwJbBWf9kerjfoqdn1Uf0dBNwVkrjvqA+lH/nR+5dPgW4ZQQ2CywKTi3eJ+H+N+rDe9/grNJcG6z645Zr/0Lwcl7FIFeCKwPzlHhuN1FEJwTBuemwwnOXrxpOEkEuMcp3gNt73HWQ+dcuMse/9sF9uZf/098VpRDAAGVwOHBO2OpmzZ9Cd60PhPnCKlDg1/ZXHVKU8PNQ6f9xuzIebb3R79sXYMDEUBAL3Df4IV21L4Tb1oO2hePE9LC0M1v5XVzIrY4+FuEfUF72HhkiO2p7LN2QviQzQ+fmKgWByOAwOQCi4N3xfflp+KUuXviYkyco+5xDh6PuM+eGLcuEMLvrDr6Flv40c8l9SiCAAJpApIpc8NLnrU0Fwejcd+0lHaeLVf7mTgPD/4l+X+lNYhgyzFBP2u77YNMny13B4ch0EZgdcr8dHw/n9Dm8NHH8KX6aJfF+b/Hv3i+DvpYgv42NvF82zv8mb42FRFA4JjAvWe8yJaXb4233OblKvWcuXfJzaDn5kRscT4+3LGXycFXvnRn+sziSlEE1gSyTJnreZk4R2+2Q4Mfxqfqp2fdidz7zMpL8RkUyHEvcytGHg6NkGn7fZype5XpM1WM9QiMFrhnz7ttuaqfmAvvZY56qad+QpDgnGJwHrv1yZN38gCBVgJdTpnrT5DgdBCcT59C/X2fH+DJe6u3EAfNmkA9ZYa5z8TLfk7nl05wugpOvu+z83cAL9g7gWlNmUycY7bKqHuc9TP/+N2YVm31EXPC7Vff+6zC5+wEu5bpU+hKqf4LdHYvs6ba5r3OxOls4lx/Ojx57/8bnSvQCHiYMpk4W0yc6w9Zmz7r/0fa+AGnmm3ydBWmT7Uo9fom4GXKJDgnDM5pbDymz2mo85rTFPA2ZRKcwuBk+pzmW4vXLlXg8Px74j3GG/J/X2Z9K7PFV47c43R8j3OrNwXTZ6lxwXV5njKZOIUT58Z7nyF8K/6n8+LNz51Z3wUr9z7tRr7vM6syxbsSCHE3L86/u8Mp8/Y4zb619eUxcaonzvg7h5aP/sOqHXfGrfCK1o1peiDTZ1Mp1nkVqD/J6Gi4I75fXp/9FIP91Y4LF9qZw+/HoG7/eZoEZ4bgXBgO7Rev3Wl/2f2BWP0aps/sbwdeoI8Ca1NmFT+V3ey52S8hhNvj72W42M4dPrLyWgSnmHyiD/nY8FsuD53+KqZPcX8o13+BaU2Z6+UITvE+UgZnfWpMn+IGUa63AvWUec8gPjGvbuhmyoy/mO1ouOTYlElwZtw66uBcO9V6+pzb8e34P1+d8exXS3PvMzsxL5Ao4GHKJDgTm5ayPFdw1uewNNhh/7b63mf8p4Mn72aft93hGn7mPWUDsFYq4GnKJDilrX1msZzBufZK951+sh2NT96ZPjM2ktJTF/A2ZRKcGbdEF8HJ9JmxgZSeuoDXKZPgzLg1ugpOps+MTaT01AQ8T5kEZ8Zt0XVwMn1mbCalOxNYnTLfG+/dfzK+Zv7vyzT7th0J+0Y+MW9y0Xw7UhOlhDXTCE6mz4QGsdSdQF+mTCbOjFtnmsG5Nn0+Wl0TPwX+2m6evIcv2G67mifvGfdUqaX7NmUSnBl34rSDk+kzY3MpLRPo45RJcMrav7mQl+Bk+szYZEq3FujzlElwtm77+AM9BSfT5/h+saI7gb5PmQRnxr3iMTiZPjM2nNJjBVY+yWjP+6ya+0Rc28ET8/i5tkdsf+sn5mMvKC7gqXoTpYQ1XoNzWtPn3PIFdtYPf5IgyNKSBEqaMpk4M+5M78G5Nn0+Fq62UH2wkyfvVfii/ee/V9ubf/qfjPKU9iTw9JRZf1/mc/KfWgdTJsGZsY19CM7pTJ8P2dzyW5g+M+49L6VLnTIJzow7rE/ByfSZcSPMYOnSp0yCM+Om7ltwMn1m3AwzVLrbKfPh+Lt/3r7yu3+m9YeHQ2L5vgbn+ulzee7a+Bx0l1hmQ7n6F1LbF7j3mVc5e/WV78ucvzi+Tv3EPP+9zBBus/DkJXb2jx/Nfm3bvQDBKebvc3AyfYo3Q+Hlup4yKzvfFpbud6FKcIrbUEJwrk2f/7arVp68dzJ9VvHJ+xNX8eRdvB9zlJvVKZN7nDl201M1SwlOps+Mm6THpWd5yiQ4M27c0oKT6TPjZulRaabMZzaLL9XFm7fE4GT6FG+SnpVjytzcMIJTvIlLDk6mT/FmcV5u9ZOMLok/XfbxeKb5n5ib3WrL/9s39SfmTdpCcDZRSlhTenAyfSZshh4vZcrcvnkEp3hzz0pwrk2fj9r740TyoU6evIfqS/bEE+/nybt4z64vx5TZDJfgbObUeNUsBSfTZ+Nt0YuFTJnN20RwNrdqtHIWg5Pps9HWcLuIKTO9NQRnutm2R8xqcDJ9ijdSR+WYMttBE5zt3LY8ataDk+lTvKEylQs2Z/fGJ+ah+lh8hS6emN8Sn5jv78UT8ybkBGcTpYQ1BOfTWPedfrId3XFn/A+vThBstzQEPu+zqdx9Z7zEjoQ74gO9U5se0npdsIfj6/j5GfPWF7LhQIJTJflUHYLzmaBLgx3Gk3fxJmtZbm3KXLaPW1U9u2WVlMPKmjLXXznBmbIPGqwlOEcjMX022DwZlzBlanEJTq2nEZxbg9bT52PVAVu26zr5vk+zL8fP+zww09/3yZQpfoM/VY7gFLsSnONB7z3tZba8s773+drxiydcMcv3PpkyJ9w82xxOcIptCc5moCuT0PxVTJ/NuJJWMWUmcbVaTHC2Ytv6IIIzDZTpM81r3GqmzHFCmr8nODWOx6oQnOmgTJ/pZhuPqA0X9+yLnxvwsU6emIfwzfi7fy4t5vsyUztAcKaKjVlPcLYHZfpsZ8eU2c5tkqMIzkn0RhxLcE4GWk9O9+yJn7g0d10sdPxkxcYdvfKbNr8Sn7xf2csn70yZ4xqc7+8JTrEtwakBZfrc3pEpU7PP2lYhONvKbXEcwakDZfrcbMmUqdtfk1QiOCfR40t1sd7ockyfqy5MmZ1st0YvQnA2Ymq+iImzuVXKylmePleufX6/hfDRTp6YW/iGLT952cw+MW+yLwnOJkoJawjOBKwWS2dt+mTKbLFJOjiE4BQjE5xi0BHlVu7zDQ7E6etg/Nv8T95D9dX4u46u6PTJO1Nm/n00ySsQnJPocY9TrJdWruvp06oLbe/SA2kn2WI1U2YLtI4PITjF4EycYtAx5aYxfR6/84C98QePyS+UKVNOmq0gwSmmJTjFoA3LdTt9/in+aOPbpNMnU2bDRjtZRnCKG0FwikETyvVx+lz9JKNL46dEfaSbJ+Z2c/zdP5fzxDxhX41aSnBOCLjxcIJTDNqiXF+mz06nzPCnGMwX2cLS/S1EOWSjAMEp3hMEpxi0ZbnV6fPKGBbXxwr5n7xbdZPt2nllo3ufa1NmsI/GL/mf1fIKUw67OZ7bpY3OLaXqLK8lOMXdJzjFoBOW8zZ9dj1lqu/FTtiOYg4nOMWtJDjFoIJyHqZPpkxBIx2VIDjFzSA4xaDCctOaPpkyhU10UorgFDeC4BSDZii3OH8gVr0hQ+XNJUM4FO+znt3Ja1m4Kf6M+QGemHegTXCKkQlOMWimcl1On5ku4VjZEJ+Ycy8zt/Iz6xOcYm+CUwyasdzqT+pcEV/hw/GfzE/eM11HsK/b8Tsv44l5Jt+tyhKcYnCCUwzaQbnFwcvjxPat+Eqv6+DVRC8R/hzP+UK+L1PEmVqG4EwVG7Oe4BSDdlSuT9MnU2ZHm2KblyE4xT0gOMWgHZfzfO+Te5kdbwaCsztwgrM761yvdGz6DPGnjjr5yZ7xVxLC1+z4XZdzL3M8VScrmDjFzASnGHSK5TxMn0yZU9wATJzd4ROc3Vl38Uqrv+vo8jh5xifvHU+fTJlddLjdazBxtnPb8iiCUwzqpFz95D1Ut1llp+Y/I56Y5zee8BUIzgkBNx5OcIpBHZXLPn2GYCtPzLmX6ajro0+F4BS3iOAUgzosl+PeJ/cyHTaae5zdNYXg7M56mq8kmz7jlGn2Ndu16wqemE+zoYmvzcSZCDZuOcE5Tqisv5/kk4+YMvu7FwhOce8ITjFoD8qtft7nZfHB0UeaPXlnyuxBV7c/RYJT3EKCUwzao3KLb3ip2dwtMTxP2+asf2/V8jvsrAeWenRlnOpGAYJTvCcITjFoD8sdPuMMs+VL45m/Mn4W50nxSfnD8d9/a3Px8zLPGt7VwyvilAnOzHuA4MwMTHkEHAgwcYqbQHCKQSmHgEMBglPcFIJTDEo5BBwKEJziphCcYlDKIeBQgOAUN4XgFINSDgGHAgSnuCkEpxiUcgg4FCA4xU0hOMWglEPAoQDBKW4KwSkGpRwCDgUITnFTCE4xKOUQcChAcIqbQnCKQSmHgEMBglPcFIJTDEo5BBwKEJziphCcYlDKIeBQgOAUN4XgFINSDgGHAgSnuCkEpxiUcgg4FCA4xU0hOMWglEPAoQDBKW4KwSkGpRwCDgUITnFTCE4xKOUQcChAcIqbQnCKQSmHgEMBglPcFIJTDEo5BBwKEJziphCcYlDKIeBQgOAUN4XgFINSDgGHAgSnuCkEpxiUcgg4FCA4xU0hOMWglEPAoQDBKW4KwSkGpRwCDgUITnFTCE4xKOUQcChAcIqbQnCKQSmHgEMBglPcFIJTDEo5BBwKEJziphCcYlDKIeBQgOAUN4XgFINSDgGHAgSnuCkEpxiUcgg4FCA4xU0hOMWglEPAoQDBKW4KwSkGpRwCDgUITnFTCE4xKOUQcChAcIqbQnCKQSmHgEMBglPcFIJTDEo5BBwKEJziphCcYlDKIeBQgOAUN4XgFINSDgGHAgSnuCkEpxiUcgg4FCA4xU0hOMWglEPAoQDBKW4KwSkGpRwCDgUITnFTCE4xKOUQcChAcIqbQnCKQSmHgEMBglPcFIJTDEo5BBwKEJziphCcYlDKIeBQgOAUN4XgFINSDgGHAgSnuCkEpxiUcgg4FCA4xU0hOMWglEPAoQDBKW4KwSkGpRwCDgUITnFTCE4xKOUQcChAcIqbQnCKQSmHgEMBglPcFIJTDEo5BBwKEJziphCcYlDKIeBQgOAUN4XgFINSDgGHAgSnuCkEpxiUcgg4FCA4xU0hOMWglEPAoQDBKW4KwSkGpRwCDgUITnFTCE4xKOUQcChAcIqbQnCKQSmHgEMBglPcFIJTDEo5BBwKEJziphCcYlDKIeBQgOAUN4XgFINSDgGHAgSnuCkEpxiUcgg4FCA4xU0hOMWglEPAoQDBKW4KwSkGpRwCDgUITnFTCE4xKOUQcChAcIqbQnCKQSmHgEMBglPcFIJTDEo5BBwKEJziphCcYlDKIeBQgOAUN2Wy4Hwwns0j4jOiHAIIyAWqQeuSC0tV62PFB7o5EZsoOMUqlEMAAX8CBOeInhCc/jYqZ4SAJwGCk+D0tB85FwR6IUBwEpy92KicJAKeBAhOgtPTfuRcEOiFAMFJcPZio3KSCHgRCPZP27t0opfT8fNUfXFw0Ky6zgsM54EAAo4Egj0Qg3Pg5Yw8Bec5MTjv9gLDeSCAgCeBcL0tDONw5eOPn+D83uAke7J60Cp7ng8azgIBBPwIhPkYnEMv5+MnOGuRewb7LVSf84LDeSCAgAOBEA7Z3mH8itTPH1/BWbvwjfB+dgdngsD0Bf5oR8Ipdu7Q1Y9U+wvO+kv2I1U9kr9o+j3jDBBAYGoC9ZP048LAzhzWn0Xh6o+/4Kx57h6caDvsYHxYtM+VFieDAALdCNRfnh+1C71NmmsX7zM4185ucTCwYPutqk5hAu1mv/IqCExNoJ4wzeJ0GW6L9zRvm9p5NHhh38G5/gJWp9A6QPmDAAKlCeywh+xNw4f6cln9Cc6+iHKeCCBQvADBWXyLuUAEEFALEJxqUeohgEDxAgRn8S3mAhFAQC1AcKpFqYcAAsULEJzFt5gLRAABtQDBqRalHgIIFC9AcBbfYi4QAQTUAgSnWpR6CCBQvADBWXyLuUAEEFALEJxqUeohgEDxAgRn8S3mAhFAQC1AcKpFqYcAAsULEJzFt5gLRAABtQDBqRalHgIIFC9AcBbfYi4QAQTUAgSnWpR6CCBQvADBWXyLuUAEEFALEJxqUeohgEDxAgRn8S3mAhFAQC1AcKpFqYcAAsULEJzFt5gLRAABtQDBqRalHgIIFC9AcBbfYi4QAQTUAgSnWpR6CCBQvADBWXyLuUAEEFALEJxqUeohgEDxAgRn8S3mAhFAQC1AcKpFqYcAAsULEJzFt5gLRAABtQDBqRalHgIIFC9AcBbfYi4QAQTUAgSnWpR6CCBQvADBWXyLuUAEEFALEJxqUeohgEDxAgRn8S3mAhFAQC1AcKpFqYcAAsULEJzFt5gLRAABtQDBqRalHgIIFC9AcBbfYi4QAQTUAgSnWpR6CCBQvADBWXyLuUAEEFALEJxqUeohgEDxAgRn8S3mAhFAQC1AcKpFqYcAAsULEJzFt5gLRAABtQDBqRalHgIIFC9AcBbfYi4QAQTUAgSnWpR6CCBQvADBWXyLuUAEEFALEJxqUeohgEDxAgRn8S3mAhFAQC1AcKpFqYcAAsULEJzFt5gLRAABtQDBqRalHgIIFC9AcBbfYi4QAQTUAgSnWpR6CCBQvADBWXyLuUAEEFALEJxqUeohgEDxAgRn8S3mAhFAQC1AcKpFqYcAAsULEJzFt5gLRAABtcD/AbY7W/SPIbLzAAAAAElFTkSuQmCCAA==\"\r\n },\r\n {\r\n \"counterId\": 2,\r\n \"GUID\": \"f4e1c176-4c88-43ca-8d58-1a15640b5051\",\r\n \"pageID\": 1,\r\n \"isEnable\": true,\r\n \"titel\": \"يبايبا\",\r\n \"titelAr\": \"ايبابيابيا\",\r\n \"subTitel\": \"+\",\r\n \"subTitelAr\": \"+\",\r\n \"number\": 500.0,\r\n \"icon\": \"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\"\r\n }\r\n ];\r\n\r\n const testObject2 = {\r\n \"pageID\": 1,\r\n \"nameAr\": \"home\",\r\n \"nameEn\": \"home\",\r\n \"GUID\": \"b7d6067f-670e-4857-9c76-34f2c6fb6cc8\",\r\n \"isMain\": true,\r\n \"viewMap\": true,\r\n \"viewSearchCar\": true,\r\n \"viewSearchSparParts\": false,\r\n \"viewSearchMentinanice\": true,\r\n \"viewOurOffers\": true,\r\n \"viewWhyChooseUs\": true,\r\n \"viewWhatWeServices\": true,\r\n \"viewTestimonials\": true,\r\n \"viewGreatMessage\": true,\r\n \"viewMainBanner\": false,\r\n \"MainBannerTitel\": \"العنوان\",\r\n \"MainBannerSubTitel\": \"العنوان الفرعي\",\r\n \"MainBannerDesc\": \"تفاصيل\",\r\n \"MainBannerBackOpicity\": 50,\r\n \"MainBannerBtnText\": \"\",\r\n \"MainBannerTitelAr\": \"العنوان\",\r\n \"MainBannerSubTitelAr\": \"العنوان الفرعي\",\r\n \"MainBannerDescAr\": \"تفاصيل\",\r\n \"MainBannerBtnTextAr\": \"\",\r\n \"SearchCarTitel\": \"البحث\",\r\n \"SearchCarTitelAr\": \"البحث\",\r\n \"WeServicesTitel\": \"Services\",\r\n \"WeServicesTitelAr\": \"خدماتنا\",\r\n \"WhyChooseUsTitel\": \"لماذا حسن جميل\",\r\n \"WhyChooseUsTitelAr\": \"لماذا حسن جميل\",\r\n \"WhyChooseUsSubTitelAr\": \"فريق متخصص ملتزم بتلبية احتياجاتك واستفساراتك.\",\r\n \"WhyChooseUsSubTitel\": \"فريق متخصص ملتزم بتلبية احتياجاتك واستفساراتك.\",\r\n \"TestimonialsTitel\": \"سيسبيسبيسب\",\r\n \"TestimonialsTitelAr\": \"بيسبيس\",\r\n \"TestimonialsSubTitelAr\": \"بيسبيسب\",\r\n \"TestimonialsSubTitel\": \"بسيبسبيسب\",\r\n \"viewGreatMessageTitel\": \"البانر التحفيزي\",\r\n \"viewGreatMessageTitelAr\": \"البانر التحفيزي\",\r\n \"viewGreatMessageDesc\": \"تقفاصيل تقفاصيل تقفاصيل تقفاصيل \\r\\n\",\r\n \"viewGreatMessageDescAr\": \"تقفاصيل تقفاصيل تقفاصيل تقفاصيل \",\r\n \"GreatMessageBackOpicity\": 50,\r\n \"MainBannerBackImage\": \"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\",\r\n \"MainBannerBackImageAr\": \"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\",\r\n \"GreatMessageBackImage\": \"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\",\r\n \"GreatMessageBackIcon\": \"iVBORw0KGgoAAAANSUhEUgAAAdwAAAHCCAYAAABFf3geAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6QjAyNDBDMzY3ODhCMTFFOUE3OTlBMjRDMEEwRDYyMTciIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6QjAyNDBDMzc3ODhCMTFFOUE3OTlBMjRDMEEwRDYyMTciPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDpCMDI0MEMzNDc4OEIxMUU5QTc5OUEyNEMwQTBENjIxNyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDpCMDI0MEMzNTc4OEIxMUU5QTc5OUEyNEMwQTBENjIxNyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pmu87BkAA3ASSURBVHja5N0H2C1n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\",\r\n \"viewMainBannerSocialIcons\": true,\r\n \"TopicTitel\": \"ؤسشؤسيسشي\",\r\n \"TopicTitelAr\": \"يسشيسشي\",\r\n \"TopicDescAr\": \"تأسست شركة حسن جميــل للسيارات عام 1384 هـ برؤية وهــدف النجاح فـي مجال تجـارة السيـارات وقطع الغيار والصيانة والإهتمام بالضيــوف وخدمتهـم بشكل متميز. كما تميزت شركة حسن جميل علـى مـدار السنين بقوة حجم المبيعات وحصد عدد كبير من الجوائز في مجال خدمة العملاء وخدمات ما بعد البيع ، حيثُ يوجد لدينا مركز صيانة معتمد من تويوتا والتي نسعى دائما للتطوير في هذا المجال لنيل اهتمام وثقة ضيوفنا الكرام\",\r\n \"TopicDesc\": \"تأسست شركة حسن جميــل للسيارات عام 1384 هـ برؤية وهــدف النجاح فـي مجال تجـارة السيـارات وقطع الغيار والصيانة والإهتمام بالضيــوف وخدمتهـم بشكل متميز. كما تميزت شركة حسن جميل علـى مـدار السنين بقوة حجم المبيعات وحصد عدد كبير من الجوائز في مجال خدمة العملاء وخدمات ما بعد البيع ، حيثُ يوجد لدينا مركز صيانة معتمد من تويوتا والتي نسعى دائما للتطوير في هذا المجال لنيل اهتمام وثقة ضيوفنا الكرام\",\r\n \"viewTopicSection\": true,\r\n \"TopicImage\": \"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\",\r\n \"TopicImageAr\": \"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\",\r\n \"viewGallery\": true,\r\n \"viewMenu\": true,\r\n \"viewMainSliders\": true,\r\n \"viewCounter\": true,\r\n \"counterTitel\": \"الاحصائيات\",\r\n \"counterTitelAr\": \"الاحصائيات\",\r\n \"counterDescAr\": \"تأسست شركة حسن جميــل للسيارات عام 1384 هـ برؤية وهــدف النجاح فـي مجال تجـارة السيـارات وقطع الغيار والصيانة والإهتمام بالضيــوف وخدمتهـم بشكل متميز. كما تميزت شركة حسن جميل علـى مـدار السنين بقوة حجم المبيعات وحصد عدد كبير من الجوائز في مجال خدمة العملا\",\r\n \"counterDesc\": \"تأسست شركة حسن جميــل للسيارات عام 1384 هـ برؤية وهــدف النجاح فـي مجال تجـارة السيـارات وقطع الغيار والصيانة والإهتمام بالضيــوف وخدمتهـم بشكل متميز. كما تميزت شركة حسن جميل علـى مـدار السنين بقوة حجم المبيعات وحصد عدد كبير من الجوائز في مجال خدمة العملا\",\r\n \"counterBackImage\": \"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\",\r\n \"counterBackOpecity\": 70\r\n };\r\n\r\n const images = [\r\n {\r\n original: \"https://picsum.photos/id/1018/1000/600/\",\r\n thumbnail: \"https://picsum.photos/id/1018/250/150/\",\r\n },\r\n {\r\n original: \"https://picsum.photos/id/1015/1000/600/\",\r\n thumbnail: \"https://picsum.photos/id/1015/250/150/\",\r\n },\r\n {\r\n original: \"https://picsum.photos/id/1019/1000/600/\",\r\n thumbnail: \"https://picsum.photos/id/1019/250/150/\",\r\n },\r\n ];\r\n\r\n const listQustion = [\r\n {\r\n Anser: \"Yes. Toyota Hybrid Electrical Vehicle HEV offer the same level of quality as conventional vehicles.\",\r\n title: \"Are Hybrid Electrical Vehicle \\\"HEV\\\" reliable?\", id: 1\r\n },\r\n {\r\n title: \"Are there any situations in which the engine does not stop?\",\r\n Anser: \"The gasoline engine starts and stops automatically. However, it may not stop in certain conditions, such as when the Hybrid Electrical Vehicle HEV battery is charging while parked.\" +\r\n \"\",\r\n id: 2\r\n },\r\n ];\r\n\r\n const [indexQ, setIndexQ] = useState(null);\r\n\r\n const openQustion = (index) => {\r\n setIndexQ(index);\r\n };\r\n // \r\n\r\n useEffect(async () => {\r\n setDataStatus(1);\r\n try {\r\n const response = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/news/news/\" + page,\r\n method: \"get\",\r\n });\r\n\r\n setItemCount(response.data.totalItemsCount);\r\n setNews(response.data.news);\r\n setSliderNews(response.data?.sliderNews);\r\n setNewsFilter(response.data.filters);\r\n\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n setActivePage(parseInt(page));\r\n }, [page]);\r\n\r\n useEffect(() => {\r\n setFilteredNews(news);\r\n }, [news])\r\n\r\n function filterNews(brand) {\r\n setFilter(brand);\r\n let filterData;\r\n if (brand != null)\r\n filterData = news.filter((data) => {\r\n return data.brand === brand;\r\n });\r\n else {\r\n filterData = news;\r\n }\r\n setFilteredNews(filterData);\r\n }\r\n\r\n if (itemCount === 0)\r\n return (\r\n
    \r\n {/**/}\r\n
    \r\n );\r\n else if (dataStatus === 1)\r\n return (\r\n\r\n \r\n \r\n {\r\n sliderNews.map((data) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n })\r\n }\r\n \r\n
    \r\n \r\n \r\n
    \r\n {\r\n newsFilter?.map((_filter) => {\r\n return (\r\n filterNews(_filter.content)}\r\n />\r\n );\r\n })\r\n }\r\n\r\n filterNews(null)}/>\r\n
    \r\n \r\n\r\n
    \r\n\r\n {\r\n filteredNews.map((data) => {\r\n return (\r\n \r\n );\r\n })\r\n }\r\n
    \r\n {itemCount > 4 && {\r\n history.push('/news/' + number);\r\n }}\r\n />\r\n }\r\n {\r\n // \r\n }\r\n\r\n {\r\n // <>\r\n // \r\n // Are you fed up with the time and hassle of formatting\r\n // \r\n //  text for the web? Our service lets you convert your text or document files\r\n // to clean HTML instantly.\r\n // \r\n }\r\n\r\n {\r\n // الجلري \r\n <>\r\n
    \r\n {\r\n images?.map((img, index) => {\r\n return {\r\n\r\n setActiveImage(index);\r\n\r\n try {\r\n if (popRef) {\r\n\r\n\r\n popRef.current.toggleFullScreen();\r\n popRef.current.slideToIndex(index)\r\n }\r\n\r\n } catch (error) {\r\n\r\n }\r\n }}\r\n\r\n >\r\n e.target.style.display = 'none'}\r\n className={\"object-full object-cover\"}\r\n alt={\"car gellary\"}\r\n />\r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n
    \r\n })\r\n }\r\n\r\n
    \r\n \r\n }\r\n {\r\n // تبع الجلري \r\n
    \r\n {\r\n\r\n setIsFullScreen(e);\r\n }}/>\r\n
    \r\n }\r\n\r\n {\r\n // <>\r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n // {\r\n // console.log(\"HHHHHH: \", e)\r\n // }}/>\r\n // {\r\n // console.log(\"HHHHHH: \", e)\r\n // }}/>\r\n //
    \r\n // \r\n }\r\n
    \r\n
    \r\n
    \r\n\r\n {\r\n listQustion.map((item, index) => {\r\n return (\r\n <>\r\n
    \r\n {\r\n if (indexQ === index) {\r\n openQustion(null);\r\n } else {\r\n openQustion(index);\r\n }\r\n }}\r\n questionProp={item.title}\r\n answerProp={item.Anser}\r\n isMoreProp={indexQ == index ? true : false}\r\n />\r\n
    \r\n \r\n );\r\n })\r\n }\r\n\r\n\r\n {\r\n <>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \"\"/\r\n
    \r\n
    \r\n \r\n HYBRID\r\n {/**/}\r\n \r\n {/**/}\r\n
    \r\n\r\n
    \r\n What are hybrid cars?\r\n
    \r\n\r\n
    \r\n

    \r\n {\"It all started in the 19th century with an idea; to build a car that operates on both fuel and electricity. It was rather complicated to create a self-operating engine, however, so the idea did not see the light.\"}\r\n

    \r\n

    \r\n Towards the end of the 20th century,\r\n change was evident as our environments\r\n evolved, and Toyota trailblazed developing the idea of a dual engine car.\r\n The\r\n Toyota Prius was released in 1997, and it was Toyota's first hybrid vehicle\r\n ever.\r\n

    \r\n

    \r\n Hybrid technology hinges on using\r\n electricity besides fuel to power\r\n the vehicle, where the needed energy is generated by the car's movement or\r\n braking.\r\n Toyota runs avid research and development on its hybrid engines, aiming to\r\n introduce\r\n an integrated driving experience through more advanced features, more\r\n efficient fuel\r\n consumption and better safety specifications for its vehicles.\r\n

    \r\n\r\n

    \r\n Hybrid technology hinges on using\r\n electricity besides fuel to power\r\n the vehicle, where the needed energy is generated by the car's movement or\r\n braking.\r\n Toyota runs avid research and development on its hybrid engines, aiming to\r\n introduce\r\n an integrated driving experience through more advanced features, more\r\n efficient fuel\r\n consumption and better safety specifications for its vehicles.\r\n

    \r\n
    \r\n
    \r\n \r\n \r\n }\r\n\r\n \r\n
    \r\n );\r\n else\r\n return (\"error happened\");\r\n}","import FooterHeading from \"./__simple/_footerHeading\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { useEffect, useState } from \"react\";\r\nimport axios from \"axios\";\r\nimport config from '../configuration/config.json';\r\nimport Joi from 'joi';\r\nimport { toast } from \"react-toastify\";\r\nimport {NewsPageDaynamic} from \"../pages/landengPage/news\";\r\n\r\nfunction Footer() {\r\n const { t: trans } = useTranslation(\"common\");\r\n\r\n const [brands, setBrands] = useState([]);\r\n const [socials, setSocials] = useState([]);\r\n const [email, setEmail] = useState('');\r\n const submitEmail = async (e) => {\r\n e.preventDefault();\r\n\r\n const schema = Joi.object({\r\n email: Joi.string().required().email({ minDomainSegments: 2, tlds: { allow: false } })\r\n });\r\n const { error } = schema.validate({ email: email });\r\n if (error == null) {\r\n if (!(await isEmailExisted(email))) {\r\n axios.post(\r\n config.baseURL + 'add',\r\n {\r\n \"Object\": \"siteNewslettterSub\",\r\n \"Values\": {\r\n \"email\": email\r\n }\r\n }\r\n ).then((response) => {\r\n if (response.status == 200) {\r\n toast.success(trans(\"common:email-register-in-news\"))\r\n setEmail('');\r\n }\r\n });\r\n } else {\r\n toast.error(trans(\"common:email-existed\"));\r\n }\r\n }\r\n };\r\n\r\n async function isEmailExisted(email) {\r\n let isExisted = false;\r\n try {\r\n const response = await axios.post(\r\n config.baseURL + \"details\",\r\n {\r\n \"Object\": \"siteNewslettterSub\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n },\r\n \"Filters\": `where lower(email) = lower('${email}')`\r\n }\r\n );\r\n isExisted = response.data.ApiObjectData.length > 0;\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n return isExisted;\r\n }\r\n\r\n\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n\r\n useEffect(async () => {\r\n try {\r\n const res = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/brands/brands\",\r\n method: \"get\",\r\n\r\n })\r\n setBrands(res.data.brands);\r\n const social = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/contact/social\",\r\n method: \"get\",\r\n\r\n })\r\n setSocials(social.data);\r\n } catch (error) {\r\n }\r\n\r\n }, []);\r\n\r\n\r\n return (\r\n
    \r\n
    \r\n\r\n\r\n\r\n
    \r\n
      \r\n
    • {trans(\"home\")}
    • \r\n {\r\n brands.map((brand) => {\r\n return (\r\n
    • {brand.brand}\r\n
    • \r\n )\r\n })\r\n }\r\n {/*
    • {trans(\"compare\")}
    • */}\r\n
    • {trans(\"maintenance-services\")}
    • \r\n
    • {trans(\"finance\")}
    • \r\n
    \r\n
      \r\n
    • {trans(\"news\")}
    • \r\n {/*
    • {trans(\"news\")}
    • */}\r\n
    • {trans(\"about-us\")}
    • \r\n
    • {trans(\"employment\")}
    • \r\n
    • {trans('buy-vehicle')}
    • \r\n\r\n
    \r\n
      \r\n\r\n
    • {trans(\"HJ-advises\")}
    • \r\n
    • {trans(\"locations\")}
    • \r\n
    • {trans('contact-us')}
    • \r\n {/*
    • {trans('agreement-Sale-And-Reservation')}
    • */}\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n {\r\n socials.map((social) => {\r\n return (\r\n \r\n {social.name}\r\n \r\n );\r\n })\r\n }\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    {\r\n submitEmail(e);\r\n }\r\n }>\r\n {\r\n setEmail(e.target.value.trim());\r\n }}\r\n className={\"text-16 border-radius\"} placeholder={trans('enter-your-email')}\r\n type=\"mail\" />\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n {\r\n\r\n lang == \"ar\" ?\r\n \"hassan\r\n :\r\n \"hassan\r\n }\r\n\r\n
    \r\n \r\n
    \r\n \"app\r\n \"play\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {trans('privacy-policy')}\r\n {/* {trans('site-policy')} */}\r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default Footer;","import React from 'react';\r\nconst ConfirmContext = React.createContext();\r\nConfirmContext.displayName = 'ConfirmContext';\r\nexport default ConfirmContext;\r\n","import axios from \"axios\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { saveData, getData } from \"./localStorageManager\";\r\nimport config from '../configuration/config.json';\r\nimport { find, forEach, includes, without, findIndex } from \"lodash\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { toast } from \"react-toastify\";\r\nexport const useCompare = (vehicleID = null, maxColumns = 5) => {\r\n const { t: trans} = useTranslation([\"model\",\"compare\"]);\r\n const COMPARE_KEY = \"COMPARE_KEY\";\r\n const COMPARE_FORMAT_KEY = \"COMPARE_FORMAT_KEY\";\r\n const [properities, setProperities] = useState(() => {\r\n return JSON.parse(getData(COMPARE_KEY)) ?? []\r\n });\r\n const [formatProperities, setFormatProperities] = useState(() => {\r\n return JSON.parse(getData(COMPARE_FORMAT_KEY)) ?? []\r\n });\r\n // the following fun is used to fetch the veh properities and reorder them as table\r\n const requestData = (vehID) => {\r\n if (vehID) {\r\n const currentValues = JSON.parse(getData(COMPARE_KEY)) ?? [];\r\n const currentFormatValues = [];\r\n if (currentValues?.length < maxColumns) {\r\n axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"name\": \"SiteGetVehicleProperities\",\r\n \"values\": {\r\n \"vehicleID\": vehID\r\n }\r\n }\r\n ).then(response => {\r\n const responseData = response.data;\r\n if (responseData?.length > 0) {\r\n const _image = responseData[0].Image != null ? responseData[0].Image : null;\r\n const _id = responseData[0].ProductID;\r\n\r\n const customizedResult = responseData.map((item) => {\r\n return {\r\n key: {\r\n PropertyID: item.PropertyID,\r\n DescriptionAr: item.ProperityDescriptionAr,\r\n DescriptionEn: item.ProperityDescriptionEn,\r\n },\r\n value: {\r\n DescriptionAr: item.DescriptionAr,\r\n DescriptionEn: item.DescriptionEn,\r\n ProductID: item.ProductID,\r\n PropertyID: item.PropertyID,\r\n }\r\n }\r\n });\r\n\r\n const vehObject = {\r\n ID: _id,\r\n Image: _image,\r\n Values: customizedResult\r\n };\r\n\r\n const _isNotFound = find(currentValues, (ele) => { return ele.ID === vehObject.ID }) == undefined || null ? true : false;\r\n\r\n if (_isNotFound) {\r\n // to check and reorder the keys and values \r\n currentValues.push(vehObject);\r\n const _tempArray = [];\r\n for (let index = 0; index < currentValues.length; index++) {\r\n forEach(currentValues[index].Values, (value) => {\r\n const _propertyObjectValue = value?.key;\r\n const _propertyValue = value?.key?.PropertyID;\r\n const _props = _tempArray.map(item => {\r\n return item.PropertyID\r\n });\r\n if (!includes(_props, _propertyValue)) {\r\n _tempArray.push(_propertyObjectValue);\r\n }\r\n });\r\n }\r\n const customizedVehicalesGroup = [];\r\n // the following code is to order keys and values according to above array\r\n for (let index = 0; index < currentValues.length; index++) {\r\n const { ID, Image, Values } = currentValues[index];\r\n const customizedObj = { ID, Image };\r\n const customizedObjValues = [];\r\n forEach(without(_tempArray, undefined, null), (value) => {\r\n const _valueIndex = findIndex(Values, (item) => { return item.key?.PropertyID == value?.PropertyID });\r\n if (_valueIndex != -1) {\r\n customizedObjValues.push(\r\n {\r\n ...Values[_valueIndex]\r\n }\r\n );\r\n } else {\r\n customizedObjValues.push(\r\n {\r\n key: value,\r\n value: null\r\n }\r\n );\r\n }\r\n });\r\n const _tempValues = { ...customizedObj };\r\n _tempValues.Values = customizedObjValues;\r\n customizedVehicalesGroup.push(_tempValues);\r\n }\r\n // formatting the values\r\n for (let index = 0; index < without(_tempArray, undefined, null).length; index++) {\r\n const _currentValue = without(_tempArray, undefined, null)[index];\r\n _currentValue.Values = [];\r\n for (let index2 = 0; index2 < customizedVehicalesGroup.length; index2++) {\r\n\r\n for (let index3 = 0; index3 < customizedVehicalesGroup[index2].Values.length; index3++) {\r\n const _v = customizedVehicalesGroup[index2].Values[index3];\r\n if (_currentValue.PropertyID === _v?.key?.PropertyID) {\r\n _currentValue.Values.push(_v?.value != null ? {DescriptionAr :_v?.value?.DescriptionAr , DescriptionEn:_v?.value?.DescriptionEn} : null);\r\n break;\r\n }\r\n }\r\n }\r\n currentFormatValues.push(_currentValue);\r\n }\r\n saveData(COMPARE_FORMAT_KEY, JSON.stringify(currentFormatValues), false);\r\n setFormatProperities(currentFormatValues);\r\n saveData(COMPARE_KEY, JSON.stringify(customizedVehicalesGroup), false);\r\n setProperities(JSON.parse(getData(COMPARE_KEY, false)));\r\n toast.success( trans('compare:compare_added_success'));\r\n\r\n }else{\r\n toast.info(trans('compare:compare_added_info'))\r\n }\r\n }\r\n }).catch(error => {\r\n toast.warning(trans('compare:compare_no_properities_found'))\r\n });\r\n }else{\r\n toast.error(trans('compare:compare_added_error'));\r\n }\r\n }\r\n };\r\n // the following fun is used to delete the item from list by [index && vehID]\r\n const onDeleteItem = (position, value) => {\r\n const currentValues = JSON.parse(getData(COMPARE_KEY));\r\n const currentFormatValues = JSON.parse(getData(COMPARE_FORMAT_KEY));\r\n if(currentValues.length == 1){\r\n window.localStorage.removeItem(COMPARE_KEY);\r\n window.localStorage.removeItem(COMPARE_FORMAT_KEY);\r\n setProperities([]);\r\n setFormatProperities([]);\r\n return;\r\n }\r\n const _newCurrentValues = currentValues.filter((item) => {\r\n return item.ID !== value\r\n });\r\n for (let index = 0; index < currentFormatValues.length; index++) {\r\n delete currentFormatValues[index].Values[position];\r\n }\r\n saveData(COMPARE_KEY, JSON.stringify(_newCurrentValues), false);\r\n saveData(COMPARE_FORMAT_KEY, JSON.stringify(currentFormatValues), false);\r\n setProperities(_newCurrentValues);\r\n setFormatProperities(currentFormatValues);\r\n };\r\n //--------------------------------------\r\n useEffect(() => {\r\n requestData(vehicleID);\r\n }, [vehicleID, maxColumns, properities]);\r\n return { properities, formatProperities, onInsert: requestData ,onDeleteItem};\r\n};\r\n","import { useTranslation } from \"react-i18next\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Price } from \"./__simple/_price\";\r\nimport ConfirmContext from \"../utils/confirmContext\";\r\nimport { useContext } from \"react\";\r\nimport { slugCombine } from \"../utils/slugManager\";\r\nimport { useCompare } from \"../utils/compareProvider\";\r\nimport config from \"../configuration/config.json\"\r\nfunction Slide({ id, modelTypes, img, bg, type, seats, name, brand, year, slug, minPrice, HP, cylinders, petrol, colorID,\r\n\r\n RateCareDiscount, group, Tax, ProductId, otherBrand, end_Offer, NewCar_DateEnd, NewCar, Hybird, showPric, hybridImage,\r\n viewSliderIcon,\r\n viewSliderDetails,\r\n viewBtns,\r\n sliderBackOpasity,\r\n brandID,\r\n}) {\r\n\r\n const { t: trans } = useTranslation([\"car\", \"common\", \"vehicales\", \"info\"]);\r\n const lang = localStorage.getItem(\"i18nextLng\");\r\n const languageDir = 'language-' + localStorage.getItem(\"i18nextLng\");\r\n const context = useContext(ConfirmContext);\r\n const { onInsert } = useCompare(null);\r\n function handleRequest() {\r\n try {\r\n context.onShow(\r\n {\r\n displayConfirm: true,\r\n title: name,\r\n image: img,\r\n brand: brand,\r\n isHyper: Hybird,\r\n isNew: NewCar,\r\n type: type,\r\n brandID: brandID,\r\n defaultColorID: colorID,\r\n modelYear: year,\r\n cartDetails: {\r\n id: ProductId,\r\n name: name,\r\n price: minPrice,\r\n brand: brand,\r\n image: img,\r\n Tax: Tax,\r\n Discount: RateCareDiscount,\r\n Type: \"car\",\r\n modelTypes: modelTypes\r\n },\r\n carOrder: {\r\n vehicle: ProductId,\r\n group: group\r\n },\r\n }\r\n );\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n\r\n }\r\n function getpric() {\r\n if (RateCareDiscount > 0) {\r\n return (\r\n\r\n
    \r\n {trans(\"info:price\")}:\r\n \r\n {minPrice}{trans(\"common:rial\")}\r\n\r\n
    );\r\n } else {\r\n return (\r\n
    \r\n {trans(\"info:price\")}:\r\n \r\n
    );\r\n }\r\n }\r\n function getEndDate() {\r\n if (end_Offer) {\r\n return (\r\n
    \r\n \"info\"\r\n {trans(\"common:End-Date-view\")} {new Date(end_Offer).toLocaleDateString()}\r\n
    \r\n );\r\n }\r\n\r\n }\r\n\r\n // the following function is used to add the card to compare list\r\n const handleAddToCompare = (value) => {\r\n onInsert(value);\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n\r\n
    \r\n
    \"slide e.target.style.display = 'none'} />
    \r\n\r\n
    \r\n
    \r\n {\r\n viewSliderIcon &&\r\n e.target.style.display = 'none'} alt=\"Slider Icon\" />\r\n }\r\n\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n {\r\n\r\n viewSliderDetails &&\r\n
    \r\n

    \r\n {name}\r\n

    \r\n {showPric && getpric()}\r\n
    \r\n }\r\n\r\n\r\n {\r\n viewBtns &&\r\n <>\r\n {getEndDate()}\r\n
    \r\n {\r\n handleRequest();\r\n }}\r\n className={\"btn btn-primary text-24 w-full py-5\"}>{trans(\"common:buy\")}\r\n
    \r\n \r\n\r\n \r\n {trans(\"car:overview\")}\r\n \"overview\"\r\n \r\n \r\n {trans(\"car:features\")}\r\n \"features\"\r\n \r\n \r\n {trans(\"car:gallery\")}\r\n \"gallery\"\r\n \r\n {\r\n // \r\n }\r\n\r\n
    \r\n \r\n }\r\n\r\n\r\n
    \r\n\r\n\r\n\r\n {\r\n viewSliderDetails &&\r\n
    \r\n
    \r\n \r\n {petrol}\r\n {trans(\"vehicales:veh-petrol\")}\r\n \r\n
    \r\n \"petrol\"\r\n
    \r\n
    \r\n
    \r\n \r\n {cylinders}\r\n {trans(\"car:cylinders\")}\r\n \r\n
    \r\n \"cylinders\"\r\n
    \r\n
    \r\n
    \r\n\r\n \r\n {HP}\r\n {trans(\"car:horse\")}\r\n \r\n
    \r\n \"engine\"\r\n
    \r\n
    \r\n
    \r\n \r\n {seats}\r\n {trans(\"car:seats\")}\r\n \r\n
    \r\n \"seat\"\r\n
    \r\n
    \r\n
    \r\n }\r\n\r\n
    \r\n\r\n\r\n\r\n {\r\n Hybird && (
    \r\n \"hybrid\"\r\n
    )\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n
    \r\n\r\n \r\n );\r\n\r\n\r\n}\r\n\r\nexport default Slide;","import axios from \"axios\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport config from '../configuration/config.json'\r\nfunction Info({ hjData=null }) {\r\n const [hjGallery, setHjGallery] = useState(hjData);\r\n const { t: trans } = useTranslation(\"info\");\r\n const languageDir = 'language-' + localStorage.getItem('i18nextLng');\r\n\r\n useEffect(async () => {\r\n\r\n if (\"caches\" in window) {\r\n let url = \"siteHomePage\";\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"HJWeb\");\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n url\r\n );\r\n let data = await cachedResponse?.json();\r\n if(data)\r\n setHjGallery({\r\n title: data[`section1${trans(\"info:title\")}`],\r\n description: data[`section1${trans(\"info:description\")}`],\r\n image: data.section1Image\r\n });\r\n \r\n }\r\n if (hjData == null) {\r\n \r\n axios.post(\r\n config.baseURL + 'details',\r\n {\r\n \"Object\": \"siteHomePage\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n },\r\n \"Option\": \"Column\",\r\n \"Fields\": \"section1TitleAr,section1TitleEn,section1DescAr,section1DescEn,section1Image\"\r\n }\r\n ).then(response => {\r\n const responseData = response.data.ApiObjectData;\r\n if (responseData.length > 0) {\r\n const firstResult = responseData[0];\r\n setHjGallery({\r\n title: firstResult[`section1${trans(\"info:title\")}`],\r\n description: firstResult[`section1${trans(\"info:description\")}`],\r\n image: firstResult.section1Image\r\n });\r\n\r\n const data = new Response(JSON.stringify(firstResult));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"HJWeb\").then((cache) => {\r\n cache.put(\"siteHomePage\", data );\r\n \r\n });\r\n }\r\n }\r\n }).catch(error => {\r\n console.log(error);\r\n });\r\n }else{\r\n var newhjData = {...hjData};\r\n setHjGallery(newhjData);\r\n }\r\n }, [hjData]);\r\n\r\n function showImg() {\r\n if (hjGallery.image != null && hjGallery.image != \"null\") {\r\n return (\r\n
    \r\n {hjGallery.title}\r\n
    \r\n )\r\n }\r\n }\r\n\r\n return (\r\n hjGallery &&
    \r\n
    \r\n

    {hjGallery.title}

    \r\n

    {hjGallery.description}

    \r\n
    \r\n {\r\n showImg()\r\n }\r\n
    \r\n );\r\n}\r\n\r\nexport default Info;\r\n","import {Link} from \"react-router-dom\";\r\n\r\nfunction IconText({title, icon, link=\"./\"}) {\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n {title}/\r\n
    \r\n
    \r\n\r\n\r\n

    {title}

    \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default IconText;","function Testimonial({name, content, image}) {\r\n\r\n return (\r\n
    \r\n
    \r\n {name} e.target.style.display = 'none'} />\r\n
    \r\n
    \r\n\r\n

    \r\n {content}\r\n

    \r\n\r\n

    {name}

    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default Testimonial;","import PageHeading from \"../components/__simple/_pageheading\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport Testimonial from \"../components/testimonial\";\r\nimport { useEffect, useState } from \"react\";\r\nimport SwiperCore, { Autoplay, EffectFade, Navigation, Pagination } from \"swiper\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { saveData, User_Data_Key, getData } from \"../utils/localStorageManager\";\r\nimport axios from \"axios\";\r\nimport config from \"../configuration/config.json\";\r\nSwiperCore.use([Pagination, Navigation, Autoplay, EffectFade]);\r\n\r\nexport function TestimonialSection({ title, subtitle }) {\r\n const { t: trans } = useTranslation(\"heading\");\r\n\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const [testimoinals, setTestimoinals] = useState([]);\r\n useEffect(async () => {\r\n\r\n var testimonials;\r\n try {\r\n let data = [];\r\n data = await JSON.parse(getData(\"testimonials-\" + lang, true));\r\n if (data && data.length > 0) {\r\n setTestimoinals(data);\r\n testimonials = data;\r\n }\r\n } catch (error) {\r\n\r\n\r\n }\r\n\r\n\r\n try {\r\n const response = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/sections/testimonials\",\r\n method: \"get\",\r\n });\r\n\r\n if (JSON.stringify(testimonials) != JSON.stringify(response.data)) {\r\n saveData(\"testimonials-\" + lang, response.data, true);\r\n setTestimoinals(response.data)\r\n }\r\n\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }, []);\r\n\r\n\r\n return (\r\n\r\n testimoinals?.length > 0 ?\r\n
    \r\n \r\n = 640px\r\n 576: {\r\n slidesPerView: 4,\r\n },\r\n\r\n }}\r\n resizeObserver={\"true\"}\r\n navigation\r\n >\r\n {\r\n testimoinals?.map((testimonial) => {\r\n return (\r\n\r\n \r\n \r\n \r\n );\r\n })\r\n }\r\n\r\n \r\n
    \r\n : null\r\n );\r\n}","function WhyHJBox({icon, title, subtitle,secondTheme}) {\r\n return (\r\n
    \r\n
    \r\n e.target.style.display = 'none'} alt={title}/>\r\n
    \r\n
    \r\n

    {title}

    \r\n

    {subtitle}

    \r\n
    \r\n\r\n
    \r\n );\r\n}\r\n\r\nexport default WhyHJBox;\r\n","import PageHeading from \"../components/__simple/_pageheading\";\r\n\r\nimport WhyHJBox from \"../components/__simple/_whyBox\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport axios from \"axios\";\r\nimport config from \"../configuration/config.json\";\r\n\r\nexport function WhyHJSection({ secondTheme = false, subtitle, title }) {\r\n const { t: trans } = useTranslation([\"eparts\", \"info\"]);\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const languageDir = 'language-' + lang;\r\n const [whyInfo, setWhyInfo] = useState([]);\r\n useEffect(async () => {\r\n try {\r\n\r\n\r\n try {\r\n\r\n if (\"caches\" in window) {\r\n let url = \"WhyHj-\"+lang;\r\n \r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"HJWeb\");\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n url\r\n );\r\n let data = await cachedResponse?.json();\r\n setWhyInfo(data.data);\r\n \r\n }\r\n \r\n } catch (error) {\r\n }\r\n\r\n\r\n const response = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/sections/WhyHj\",\r\n method: \"get\",\r\n });\r\n setWhyInfo(response.data)\r\n\r\n const data = new Response(JSON.stringify(response));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"HJWeb\").then((cache) => {\r\n cache.put(\"WhyHj-\"+lang, data);\r\n\r\n });\r\n }\r\n } catch (error) {\r\n\r\n }\r\n\r\n }, []);\r\n\r\n return (\r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n whyInfo.map((item,index) => {\r\n return (\r\n \r\n );\r\n })\r\n }\r\n\r\n
    \r\n
    \r\n
    \r\n );\r\n}","import { Link } from \"react-router-dom\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Price } from \"./__simple/_price\";\r\nimport { CountDown } from '../pages/eparts/components/countDown';\r\nimport config from \"../configuration/config.json\";\r\nimport { Base64 } from 'js-base64';\r\nfunction Offer({\r\n img = \"/assets/images/offers/1.png\",\r\n name = \"اسم العرض هنا\",\r\n type,\r\n excerpt,\r\n showSeconds = true,\r\n slug,\r\n price,\r\n endDate,\r\n startDate,\r\n totalDays = 0\r\n}) {\r\n const { t: trans } = useTranslation([\"common\", \"new\"]);\r\n const languageDir = \"language-\" + localStorage.getItem(\"i18nextLng\");\r\n return (\r\n \r\n
    \r\n
    \r\n {\r\n\r\n (img && Base64.isValid(img) == 1 ?\r\n\r\n {name} e.target.style.display = 'none'} /> :\r\n {name} e.target.style.display = 'none'} />)\r\n }\r\n
    \r\n
    \r\n

    {name}

    \r\n
    \r\n
    \r\n \r\n {trans(\"new:expire_date\")}\r\n \r\n \r\n
    \r\n {price ?

    \r\n \r\n

    :null\r\n }\r\n

    \r\n {excerpt ?excerpt :null}\r\n

    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default Offer;","import {Fragment, useEffect, useState} from \"react\";\r\nimport SwiperCore, {Pagination, Navigation, Autoplay, EffectFade, EffectCoverflow, EffectFlip} from \"swiper\";\r\nimport {SwiperSlide, Swiper} from 'swiper/react';\r\nimport PageHeading from \"../../../components/__simple/_pageheading\";\r\nimport Offer from \"../../../components/offer\";\r\nimport {FilterButton} from \"../../../components/__simple/_filterButton\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport { Link } from \"react-router-dom\";\r\nimport {getCleanSlug,slugCombine} from '../../../utils/slugManager';\r\n\r\nSwiperCore.use([Pagination, Navigation, Autoplay, EffectFade,]);\r\n\r\nexport default function HomeOfferSection({offers, filters, type}) {\r\n const {t: trans} = useTranslation([\"common\", \"inputs\",'offers']);\r\n\r\n const [filteredOffers, setFilteredOffers] = useState(offers);\r\n const [offersFilter, setOfferFilter] = useState(null);\r\n\r\n useEffect(() => {\r\n setFilteredOffers(offers);\r\n }, [offers])\r\n\r\n\r\n function filterOfferVehicle(offer) {\r\n setOfferFilter(offer);\r\n let filterData;\r\n if (offer != null)\r\n filterData = offers.filter((off) => {\r\n return off.type === offer;\r\n });\r\n else {\r\n filterData = offers;\r\n }\r\n setFilteredOffers(filterData);\r\n }\r\n\r\n return (\r\n\r\n
    \r\n \r\n
    \r\n {\r\n filters?.map((filter,index) => {\r\n return (\r\n filterOfferVehicle(filter.content)}/>\r\n )\r\n })\r\n }\r\n filterOfferVehicle(null)}/>\r\n
    \r\n \r\n \r\n {\r\n filteredOffers?.map((offer,index) => {\r\n return (\r\n \r\n \r\n \r\n )\r\n })\r\n }\r\n \r\n
    \r\n \r\n {trans(\"common:show-more\")}\r\n \r\n
    \r\n
    \r\n\r\n );\r\n}","// to build the object share component\r\nexport const shareMaker = (url,title,hashTag = '#Hassen Jameel') =>{\r\nlet baseUrl = /*window.location.host*/ 'https://hassanjameel.com.sa/' + '/' + localStorage.getItem(\"i18nextLng\"); \r\nconst shareObject = {\r\n url:(baseUrl + url),\r\n title:title,\r\n hashTag:hashTag\r\n}; \r\nif(url)\r\nreturn shareObject;\r\n\r\nreturn null;\r\n}","import { useEffect } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nexport function LikeButton({long, onToggle ,favorite = false, titleStyle= '', btnStyle = '', ...prop}) {\r\n const {t : trans} = useTranslation('info');\r\n return (\r\n
    {\r\n if(onToggle){\r\n onToggle()\r\n }\r\n }}\r\n className={(btnStyle == '' ? \"btn-like \" : btnStyle + \" \" ) + (long && \"long\")}>\r\n

    {trans('info:add_favorite')}

    \r\n {\"favorite\"}/\r\n
    \r\n );\r\n}","import { useTranslation } from \"react-i18next\";\r\nimport { Price } from \"./__simple/_price\";\r\nimport { Fragment, useContext } from \"react\";\r\nimport { shareMaker } from \"../utils/shareDataMaker\";\r\nimport ConfirmContext from \"../utils/confirmContext\";\r\nimport { useCompare } from \"../utils/compareProvider\";\r\nimport { useUserCart } from '../User/hooks/useUserCart';\r\nimport {\r\n EmailShareButton,\r\n EmailIcon,\r\n FacebookShareButton,\r\n FacebookIcon,\r\n TelegramShareButton,\r\n TelegramIcon,\r\n TwitterShareButton,\r\n TwitterIcon,\r\n WhatsappShareButton,\r\n WhatsappIcon\r\n} from \"react-share\";\r\nimport { useHistory } from \"react-router\";\r\nimport { useState } from \"react\";\r\nimport { numberFormat } from \"../utils/currencyFormatter\";\r\nimport { LikeButton } from \"./__simple/_likeButton\";\r\nimport { useUserFavorite } from '../User/hooks/useUserFavorite';\r\nimport config from \"../configuration/config.json\";\r\nfunction Car({\r\n year,\r\n slug,\r\n colorID,\r\n type,\r\n id,\r\n qty,\r\n img,\r\n name = \"\",\r\n category,\r\n brand,\r\n group,\r\n brandID,\r\n brandIcon,\r\n brandImage,\r\n gifts = 0,\r\n miniDownPayment,\r\n colorName = \"\",\r\n minPrice,\r\n link,\r\n showDetails = true,\r\n hybird = false,\r\n newCar = false,\r\n ProductId,\r\n Tax = 0,\r\n RateCareDiscount = 0,\r\n modelTypes,\r\n sharable = true,\r\n hybridImage,\r\n discountPrice,\r\n isOnline = false,\r\n showPric = false,\r\n buyOnline = false,\r\n goBuyDerict = false,\r\n carData = {},\r\n onClickShowSN,\r\n btnShowSN = false,\r\n className = \"\"\r\n\r\n}) {\r\n const { t: trans } = useTranslation([\"common\", \"info\", \"vehicales\", \"compare\", \"car\"]);\r\n const context = useContext(ConfirmContext);\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const languageDir = 'language-' + lang;\r\n const [shareOpened, setShareOpened] = useState(false);\r\n const isToyota = (brand === \"تويوتا\" || brand.toLowerCase() === \"toyota\");\r\n const { title, hashTag, url } = link ? shareMaker(link, `${brand},${modelTypes},${numberFormat(minPrice)}`) : {};\r\n const { onInsert } = useCompare(null);\r\n const history = useHistory();\r\n const { isFavoriteItem, changeFavoriteItemState } = useUserFavorite();\r\n const { changecartItem } = useUserCart();\r\n\r\n\r\n return (\r\n
    \r\n\r\n\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n {/* {(isToyota */}\r\n {(isToyota\r\n {/*

    {brand}

    */}\r\n
    \r\n {\r\n true && (
    \r\n {(isToyota e.target.style.display = 'none'} />\r\n {/*

    {trans(\"vehicales:veh-hybrid\")}

    */}\r\n
    )\r\n }\r\n {\r\n (gifts != null && gifts > 0) &&\r\n (
    \r\n {(isToyota e.target.style.display = 'none'} />\r\n\r\n
    {gifts}
    \r\n
    )\r\n }\r\n\r\n {(buyOnline == true) &&
    \r\n {trans(\"info:Available_for_purchase_online\")}\r\n \r\n
    }\r\n\r\n
    \r\n\r\n\r\n {\r\n // history.push(link);\r\n window.location.href = link;\r\n }}>\r\n\r\n
    \r\n {name} e.target.style.display = 'none'} />\r\n
    \r\n e.target.style.display = 'none'} alt={(isToyota ? \"toyota\" : \"lexus\")} />\r\n {/* src={config.mainURL + brandImage} /> */}\r\n
    \r\n\r\n\r\n {\r\n (discountPrice != null && discountPrice > 0) &&\r\n (
    \r\n {trans(\"info:price_discount\")}\r\n \r\n
    )\r\n }\r\n
    \r\n\r\n
    \r\n\r\n\r\n {sharable &&
    { event.stopPropagation() }} style={{ right: (shareOpened ? 0 : '-50rem'), flexDirection: (lang === 'en' ? 'row-reverse' : 'row') }}>\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    }\r\n\r\n\r\n
    \r\n {\r\n\r\n (btnShowSN == true) ?\r\n
    {\r\n event.stopPropagation();\r\n\r\n if (onClickShowSN)\r\n onClickShowSN(carData?.sn);\r\n }}\r\n >\r\n {/*
    */}\r\n
    \r\n e.target.style.display = 'none'} />\r\n
    \r\n\r\n {trans(\"info:Preview\")}\r\n\r\n
    \r\n :\r\n
    \r\n }\r\n\r\n\r\n {/* {
    \r\n\r\n {(colorName && colorName?.split(\"/\")[0]) &&
    \r\n {trans(\"car:exterior_color\")}\r\n {colorName?.split(\"/\")[0]}\r\n
    }\r\n {(colorName && colorName?.split(\"/\")[1]) &&
    \r\n {trans(\"car:interior_color\")}\r\n {colorName?.split(\"/\")[1]}\r\n
    }\r\n
    } */}\r\n
    \r\n
    \r\n {\r\n event.stopPropagation();\r\n setShareOpened(!shareOpened);\r\n }}>\r\n e.target.style.display = 'none'} alt={\"share icon\"} />\r\n
    \r\n
    \r\n { changeFavoriteItemState(ProductId) }}\r\n />\r\n
    \r\n\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n\r\n {colorName &&
    \r\n\r\n {/* This text will bounce */}\r\n {(colorName && colorName?.split(\"/\")[0]) &&
    \r\n {trans(\"car:exterior_color\")}\r\n {colorName?.split(\"/\")[0]}\r\n
    }\r\n {(colorName && colorName?.split(\"/\")[1]) &&
    \r\n {trans(\"car:interior_color\")}\r\n {colorName?.split(\"/\")[1]}\r\n
    }\r\n
    }\r\n\r\n
    \r\n\r\n

    {name}

    \r\n\r\n
    \r\n {\r\n showDetails && \r\n {newCar && {trans(\"info:new\")}}\r\n\r\n {hybird && {trans(\"vehicales:veh-hybrid\")}}\r\n\r\n \r\n\r\n\r\n }\r\n\r\n {category}\r\n\r\n
    \r\n\r\n
    \r\n\r\n {showDetails &&
    \r\n\r\n
    \r\n
    \r\n {\r\n (showPric || goBuyDerict) &&\r\n <>\r\n {(showPric || goBuyDerict) && trans(\"info:product_price\")}\r\n\r\n

    {(showPric || goBuyDerict) && }

    \r\n \r\n\r\n\r\n }\r\n\r\n\r\n
    \r\n\r\n\r\n\r\n\r\n
    \r\n
    \r\n\r\n {/* {trans(\"show\")} */}\r\n {/* {\r\n onInsert(ProductId);\r\n }} className={\"text-14 text-bold\"}>{trans(\"compare:compare_btn\")} */}\r\n {/* \r\n {\r\n\r\n (btnShowSN == true) &&\r\n
    {\r\n event.stopPropagation();\r\n\r\n if (onClickShowSN)\r\n onClickShowSN(carData?.sn);\r\n }}\r\n >\r\n
    \r\n
    \r\n e.target.style.display = 'none'} />\r\n
    \r\n\r\n {trans(\"info:Preview\")}\r\n\r\n
    \r\n } */}\r\n {\r\n try {\r\n\r\n if (goBuyDerict == true) {\r\n var obb =\r\n {\r\n id: slug,\r\n Type: 'car',\r\n colorId: colorID\r\n , name: carData?.descriptionAr\r\n , nameEn: carData?.descriptionEn\r\n , price: minPrice\r\n , brand: carData?.brandAr\r\n , brandEn: carData?.brandEn\r\n , Tax: Tax\r\n , image: img\r\n , Discount: RateCareDiscount\r\n , productID: ProductId\r\n , group: carData?.groupAr\r\n , groupEn: carData?.groupEn\r\n , BrandID: brandID\r\n , modelTypes: carData?.descriptionAr\r\n , modelTypesEn: carData?.descriptionEn\r\n , colorName: carData?.colorNameAr\r\n , colorNameEn: carData?.colorNameEn\r\n , SN: carData?.sn\r\n , year: year\r\n , modelTypeID: type\r\n , MiniDownPayment: miniDownPayment\r\n }\r\n\r\n changecartItem(ProductId, colorID, type, 1, null, null, obb, null, year);\r\n\r\n } else {\r\n\r\n context.onShow(\r\n {\r\n modelYear: year,\r\n displayConfirm: true,\r\n title: name,\r\n image: img,\r\n backGround: brandImage,\r\n brand: brand,\r\n brandID: brandID,\r\n isHyper: hybird,\r\n isNew: newCar,\r\n defaultColorID: colorID,\r\n cartDetails: {\r\n id: ProductId,\r\n name: name,\r\n price: minPrice,\r\n brand: brand,\r\n image: img,\r\n Tax: Tax,\r\n Discount: RateCareDiscount,\r\n Type: \"car\",\r\n modelTypes: modelTypes\r\n },\r\n carOrder: {\r\n vehicle: ProductId,\r\n group: group\r\n }\r\n });\r\n }\r\n\r\n\r\n\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n\r\n }}\r\n // href=\"./\" \r\n className={\"text-30\"}>\r\n {trans(\"buy\")} e.target.style.display = 'none'} />\r\n \r\n\r\n
    \r\n
    \r\n }\r\n
    \r\n \r\n\r\n );\r\n}\r\n\r\nexport default Car;","import {Fragment, useEffect, useState} from \"react\";\r\nimport SwiperCore, {Pagination, Navigation, Autoplay, EffectFade} from \"swiper\";\r\nimport {SwiperSlide, Swiper} from 'swiper/react';\r\nimport PageHeading from \"../../../components/__simple/_pageheading\";\r\nimport {FilterButton} from \"../../../components/__simple/_filterButton\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport Car from \"../../../components/car\";\r\nimport {slugSplitter,slugCombine} from '../../../utils/slugManager';\r\nSwiperCore.use([Pagination, Navigation, Autoplay, EffectFade,]);\r\n\r\nexport default function HomeVehicleSection({cars, brands}) {\r\n const {t: trans} = useTranslation([\"common\", \"inputs\", 'cars', \"home\",\"info\"]);\r\n\r\n const [filteredCars, setFilteredCars] = useState(cars);\r\n const [carFilter, setCarFilter] = useState(null);\r\n\r\n\r\n useEffect(() => {\r\n setFilteredCars(cars);\r\n }, [cars])\r\n\r\n\r\n function filterCars(brand) {\r\n setCarFilter(brand);\r\n let filterData = [];\r\n if (brand != null)\r\n filterData = cars.filter((car) => {\r\n return car.brand === brand;\r\n });\r\n else {\r\n filterData = cars;\r\n }\r\n setFilteredCars(filterData);\r\n };\r\n\r\n return (\r\n\r\n
    \r\n \r\n
    \r\n {\r\n brands?.map((brand , index) => {\r\n return (\r\n filterCars(brand.name)}/>\r\n );\r\n })\r\n }\r\n\r\n filterCars(null)}/>\r\n
    \r\n \r\n \r\n {\r\n filteredCars.map((car,index)=>{\r\n if(parseFloat(car.minPrice) != '0'){\r\n return (\r\n \r\n \r\n \r\n )\r\n }\r\n })\r\n }\r\n \r\n\r\n
    \r\n\r\n );\r\n}","import SwiperCore, { Pagination, Navigation, Autoplay } from \"swiper\";\r\nimport { SwiperSlide, Swiper } from 'swiper/react';\r\nimport axios from \"axios\";\r\nimport { useEffect, useState } from \"react\";\r\nimport config from '../configuration/config.json';\r\nimport { useHistory, useRouteMatch } from \"react-router\";\r\nimport { saveData, User_Data_Key, getData } from \"../utils/localStorageManager\";\r\nimport { forEach } from \"lodash\";\r\nSwiperCore.use([Pagination, Navigation, Autoplay]);\r\nconst AdsBanner = () => {\r\n const [adsBanners, setAdsBanners] = useState([]);\r\n const { url } = useRouteMatch();\r\n const history = useHistory();\r\n useEffect(() => {\r\n async function fetchData() {\r\n\r\n var SiteFetchAdsBanners = [];\r\n\r\n // for (var i = 0; i <= 10; i++) {\r\n // try {\r\n // let data = [];\r\n // data = await JSON.parse(getData(\"SiteFetchAdsBanners-\" + i, true));\r\n // console.log(\"getData SiteFetchAdsBanners\", data);\r\n // if (data && data.length > 0) {\r\n // SiteFetchAdsBanners.push(data);\r\n // }\r\n // } catch (error) {\r\n // break;\r\n\r\n // }\r\n // }\r\n\r\n // if (SiteFetchAdsBanners && SiteFetchAdsBanners.length > 0) {\r\n // setAdsBanners(SiteFetchAdsBanners);\r\n // }\r\n\r\n\r\n try {\r\n const response = await axios.post(config.baseURL + 'func',\r\n {\r\n \"Name\": \"SiteFetchAdsBanners\"\r\n });\r\n\r\n // if (JSON.stringify(SiteFetchAdsBanners) != JSON.stringify(response.data)) {\r\n console.log(\"axios SiteFetchAdsBanners\", response.data);\r\n\r\n setAdsBanners(response.data);\r\n\r\n // response.data.map((item,index2)=>{\r\n // console.log(\"SiteFetchAdsBanners-\"+index2, response.data.filter((item,index3) => index2 == index3));\r\n // saveData(\"SiteFetchAdsBanners-\"+index2, response.data.filter((item,index3) => index3 == 0), true);\r\n\r\n // })\r\n\r\n\r\n // }\r\n\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }\r\n fetchData();\r\n }, []);\r\n\r\n return (\r\n <>\r\n {\r\n adsBanners && (\r\n
    \r\n \r\n {\r\n adsBanners?.map((item, index) => {\r\n return (\r\n \r\n {\r\n if (item?.HasRedirect && item?.AdsUrl) {\r\n history.push(`${url}${item?.AdsUrl}`)\r\n }\r\n }}\r\n >\r\n
    \r\n \r\n )\r\n })\r\n }\r\n \r\n \r\n )\r\n }\r\n \r\n )\r\n\r\n};\r\n\r\nexport default AdsBanner;","import { Fragment, useCallback, useEffect, useState } from \"react\";\r\nimport SwiperCore, { Pagination, Navigation, Autoplay, EffectFade } from \"swiper\";\r\nimport { SwiperSlide, Swiper } from 'swiper/react';\r\nimport Slide from \"../../components/slide\";\r\nimport Info from \"../../components/_info\";\r\nimport IconText from \"../../components/iconText\";\r\nimport { TestimonialSection } from \"../../sections/testimonialSection\";\r\nimport { WhyHJSection } from \"../../sections/whyHJSection\";\r\nimport axios from \"axios\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport HomeOfferSection from \"./sections/homeOfferSection\";\r\nimport HomeVehicleSection from \"./sections/homeVehicleSection\";\r\nimport AdsBanner from \"../../components/adsBanner\";\r\nimport { Loading } from '../loading/index';\r\nimport config from \"../../configuration/config.json\";\r\nimport Skeleton from 'react-loading-skeleton'\r\nimport { saveData, User_Data_Key, getData } from \"../../utils/localStorageManager\";\r\nimport { Helmet } from \"react-helmet\";\r\nSwiperCore.use([Pagination, Navigation, Autoplay, EffectFade]);\r\n\r\nexport function Home() {\r\n const { t: trans, i18n } = useTranslation([\"common\", \"inputs\", \"offers\", \"home\", \"info\"]);\r\n\r\n const [cars, setCars] = useState([]);\r\n const [brands, setBrands] = useState([]);\r\n const [home, setHome] = useState({});\r\n const [offerPart, setOfferPart] = useState([]);\r\n const [offerPartFilters, setOfferPartFilters] = useState([]);\r\n const [offerVehicle, setOfferVehicle] = useState([]);\r\n const [offerVehicleFilters, setOfferVehicleFilters] = useState([]);\r\n const [slides, setSlides] = useState([]);\r\n const [hjInfo, setHjInfo] = useState(null);\r\n const lang = i18n.language;\r\n const [AddVich, setAddVich] = useState(false);\r\n // const [pageLOading, setPageLoading] = useState(true);\r\n const [isLoadingslides, setLoadingslides] = useState(true);\r\n const [isLoadingInfo, setLoadingInfo] = useState(true);\r\n const FetchAttachmentImage = async (GUIDList, FieldNameList) => {\r\n try {\r\n\r\n\r\n\r\n if (GUIDList)\r\n GUIDList = GUIDList.toString();\r\n\r\n\r\n\r\n\r\n if (FieldNameList)\r\n FieldNameList = FieldNameList.toString().replace(\"[,]\", \"\");\r\n\r\n\r\n const Body = {\r\n \"name\": \"App_FetchAttachmentImage\",\r\n \"values\": {\r\n \"GUIDList\": GUIDList,\r\n \"FieldNameList\": FieldNameList\r\n }\r\n }\r\n\r\n var respons = await axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n });\r\n\r\n\r\n } catch (error) {\r\n console.log(\"error:\", error);\r\n }\r\n\r\n\r\n return respons;\r\n };\r\n useEffect(() => {\r\n callback();\r\n }, []);\r\n\r\n const callback = useCallback(async () => {\r\n // axios.defaults.timeout = 150000;\r\n\r\n var curentSlides;\r\n setLoadingslides(true);\r\n\r\n try {\r\n\r\n if (\"caches\" in window) {\r\n let url = \"slides\";\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"HJWeb\");\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n url\r\n );\r\n let data = await cachedResponse?.json();\r\n setSlides(data);\r\n curentSlides = data;\r\n setLoadingslides(false);\r\n }\r\n\r\n } catch (error) {\r\n }\r\n axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/home/slides\",\r\n method: \"get\",\r\n }).then(response => {\r\n\r\n setSlides(response.data.slides);\r\n curentSlides = response.data.slides;\r\n setLoadingslides(false);\r\n const data = new Response(JSON.stringify(curentSlides));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"HJWeb\").then((cache) => {\r\n cache.put(\"slides\", data);\r\n\r\n });\r\n }\r\n\r\n }).catch(error => {\r\n setLoadingslides(false);\r\n });\r\n\r\n\r\n let curentInfo;\r\n try {\r\n\r\n\r\n setLoadingInfo(true);\r\n try {\r\n\r\n if (\"caches\" in window) {\r\n let url = \"siteHomePage\";\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"HJWeb\");\r\n console.log(\"vcacheStorage\", cacheStorage);\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n url\r\n );\r\n let data = await cachedResponse?.json();\r\n console.log(\"data\", data);\r\n curentInfo = {\r\n title: data[`section1${trans(\"info:title\")}`],\r\n description: data[`section1${trans(\"info:description\")}`],\r\n image: data.section1Image\r\n }\r\n\r\n setHjInfo({ ...curentInfo });\r\n setLoadingInfo(false);\r\n }\r\n\r\n } catch (error) {\r\n }\r\n\r\n\r\n axios.post(\r\n config.baseURL + 'details',\r\n {\r\n \"Object\": \"siteHomePage\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n },\r\n \"Option\": \"Column\",\r\n \"Fields\": \"section1TitleAr,section1TitleEn,section1DescAr,section1DescEn\"\r\n }\r\n ).then(response => {\r\n setLoadingInfo(false);\r\n const responseData = response.data.ApiObjectData;\r\n if (responseData.length > 0) {\r\n const firstResult = responseData[0];\r\n\r\n curentInfo = {\r\n title: firstResult[`section1${trans(\"info:title\")}`],\r\n description: firstResult[`section1${trans(\"info:description\")}`],\r\n image: firstResult.section1Image\r\n }\r\n\r\n setHjInfo({ ...curentInfo });\r\n const data = new Response(JSON.stringify(firstResult));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"HJWeb\").then((cache) => {\r\n cache.put(\"siteHomePage\", data);\r\n\r\n });\r\n }\r\n }\r\n\r\n }).catch(error => {\r\n console.log(error);\r\n setLoadingInfo(false);\r\n });\r\n\r\n\r\n } catch (error) {\r\n console.log(\"error:\", error);\r\n setLoadingInfo(false);\r\n }\r\n\r\n\r\n try {\r\n let homedata = [];\r\n if (\"caches\" in window) {\r\n var curl = \"/api/home/home\";\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"HJWeb\");\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n curl\r\n );\r\n homedata = await cachedResponse?.json();\r\n\r\n }\r\n\r\n if(homedata){\r\n setBrands(homedata)\r\n\r\n }else{\r\n\r\n axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/home/home\",\r\n method: \"get\",\r\n }).then(response => {\r\n \r\n \r\n try {\r\n // setHome(response.data.home);\r\n setBrands(response.data.brands);\r\n \r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"HJWeb\").then((cache) => {\r\n cache.put(\"/api/home/home\", new Response(JSON.stringify(response.data.brands)));\r\n \r\n });\r\n }\r\n } catch (error) {\r\n \r\n }\r\n \r\n }).catch(error => {\r\n console.log(error);\r\n });\r\n\r\n }\r\n\r\n } catch (error) {\r\n }\r\n \r\n\r\n\r\n try {\r\n\r\n if (\"caches\" in window) {\r\n let url = \"vehicles-\" + lang;\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"HJWeb\");\r\n console.log(\"vcacheStorage\", cacheStorage);\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n url\r\n );\r\n let data = await cachedResponse?.json();\r\n console.log(\"data\", data);\r\n setCars(data.data.vehicles);\r\n\r\n }\r\n\r\n } catch (error) {\r\n }\r\n\r\n axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/home/vehicles\",\r\n method: \"get\",\r\n }).then(response => {\r\n setCars(response?.data?.vehicles);\r\n const data = new Response(JSON.stringify(response));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"HJWeb\").then((cache) => {\r\n cache.put(\"vehicles-\" + lang, data);\r\n\r\n });\r\n }\r\n\r\n\r\n }).catch(error => {\r\n console.log(error);\r\n });\r\n\r\n\r\n\r\n\r\n\r\n try {\r\n\r\n if (\"caches\" in window) {\r\n let url = \"HomeExtra-\" + lang;\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"HJWeb\");\r\n console.log(\"vcacheStorage\", cacheStorage);\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n url\r\n );\r\n var response = await cachedResponse?.json();\r\n\r\n setOfferPart(response.data.offerPart);\r\n\r\n setOfferVehicle(response.data.offerVehicle);\r\n\r\n setOfferPartFilters(response.data.offerPartTypes);\r\n\r\n setOfferVehicleFilters(response.data.offerVehicleTypes);;\r\n\r\n }\r\n\r\n } catch (error) {\r\n }\r\n\r\n\r\n await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/home/HomeExtra\",\r\n method: \"get\",\r\n }).then(response => {\r\n\r\n\r\n setOfferPart(response.data.offerPart);\r\n\r\n setOfferVehicle(response.data.offerVehicle);\r\n\r\n setOfferPartFilters(response.data.offerPartTypes);\r\n\r\n\r\n setOfferVehicleFilters(response.data.offerVehicleTypes);\r\n\r\n const data = new Response(JSON.stringify(response));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"HJWeb\").then((cache) => {\r\n cache.put(\"HomeExtra-\" + lang, data);\r\n\r\n });\r\n }\r\n\r\n\r\n\r\n }).catch(error => {\r\n console.log(error);\r\n });\r\n\r\n\r\n\r\n try {\r\n\r\n if (curentInfo) {\r\n await axios.post(\r\n config.baseURL + 'details',\r\n {\r\n \"Object\": \"siteHomePage\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n },\r\n \"Option\": \"Column\",\r\n \"Fields\": \"section1Image\"\r\n }\r\n ).then(response => {\r\n const responseData = response.data.ApiObjectData;\r\n if (responseData.length > 0) {\r\n const firstResult = { ...curentInfo }\r\n\r\n firstResult.image = responseData[0].section1Image;\r\n\r\n setHjInfo(firstResult);\r\n }\r\n }).catch(error => {\r\n console.log(error);\r\n\r\n });\r\n\r\n }\r\n\r\n } catch (error) {\r\n console.log(\"error:\", error);\r\n\r\n }\r\n\r\n\r\n\r\n }, [lang]);\r\n const [seoPageInfo, setSeoPageInfo] = useState({});\r\n useEffect(async () => {\r\n\r\n var page = \"Home\"\r\n\r\n const response = await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"SiteFetchSeoPages\",\r\n \"Values\": {\r\n \"page\": page\r\n }\r\n }\r\n );\r\n if (response.status == 200) {\r\n\r\n var resdata = response.data[0];\r\n\r\n setSeoPageInfo(resdata);\r\n\r\n\r\n }\r\n }, []);\r\n return (\r\n \r\n {\r\n seoPageInfo &&\r\n\r\n \r\n\r\n \r\n {\r\n seoPageInfo?.title &&\r\n {seoPageInfo?.title}\r\n }\r\n {\r\n seoPageInfo?.link &&\r\n \r\n\r\n }\r\n {\r\n seoPageInfo?.MetaDescription &&\r\n \r\n }\r\n {\r\n seoPageInfo?.MetaGroups &&\r\n \r\n }\r\n\r\n \r\n\r\n\r\n }\r\n\r\n
    \r\n
    \r\n\r\n {\r\n isLoadingslides ? (\r\n\r\n <>\r\n \r\n\r\n \r\n\r\n\r\n ) : (\r\n\r\n {\r\n slide.update();\r\n }}\r\n >\r\n {\r\n slides?.map((slide, index) => {\r\n\r\n return (\r\n \r\n {\r\n setAddVich(true)\r\n }}\r\n end_Offer={slide.end_at}\r\n NewCar_DateEnd={slide.newCar_DateEnd}\r\n NewCar={slide.newCar}\r\n Hybird={slide.hybird}\r\n showPric={slide.showPric}\r\n viewSliderIcon={slide.viewSliderIcon}\r\n viewSliderDetails={slide.viewSliderDetails}\r\n viewBtns={slide.viewBtns}\r\n sliderBackOpasity={slide.sliderBackOpasity}\r\n />\r\n \r\n )\r\n })\r\n }\r\n\r\n \r\n\r\n )\r\n\r\n }\r\n
    \r\n\r\n\r\n {/*
    \r\n\r\n\r\n \r\n
    */}\r\n
    \r\n \r\n {/* */}\r\n \r\n \r\n \r\n {/* */}\r\n
    \r\n \r\n\r\n {\r\n cars &&\r\n \r\n }\r\n\r\n \r\n\r\n {/*----------------------Start offers sections------------------*/}\r\n {\r\n offerPart?.length > 0 && \r\n }\r\n {\r\n offerVehicle?.length > 0 && \r\n }\r\n {/*----------------------End offers sections------------------*/}\r\n\r\n
    \r\n\r\n\r\n {\r\n isLoadingInfo ? (\r\n\r\n <>\r\n \r\n\r\n \r\n\r\n\r\n ) : (\r\n (hjInfo) &&\r\n \r\n\r\n )\r\n\r\n\r\n }\r\n\r\n\r\n
    \r\n\r\n\r\n \r\n
    \r\n
    \r\n );\r\n}","const SimpleButton = ({ title = '', iconPath = null, hint = '', onClick, classes = 'bg-primary' , alt = \"\"}) => {\r\n return (\r\n
    {\r\n if (onClick) {\r\n onClick(e)\r\n }\r\n }}>\r\n\r\n {title}\r\n {iconPath && {title}\r\n
    \r\n )\r\n};\r\nexport default SimpleButton;","import { Link } from \"react-router-dom\";\r\nimport Moment from \"react-moment\";\r\nimport { useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { now } from \"moment\";\r\nimport { Base64 } from 'js-base64';\r\nimport SimpleButton from \"./_input/SimpleButton\";\r\nimport config from \"../configuration/config.json\";\r\nimport { Price } from \"./__simple/_price\";\r\nfunction Banner({ background, subtitle, title, desc, secondImage, btn, offerDate, overlay = true, backOpasity, isOffer = false, handelButton, handelActicePackage, packages }) {\r\n const { t: trans } = useTranslation([\"offers\"]);\r\n const languageDir = 'language-' + localStorage.getItem('i18nextLng');\r\n const lang = localStorage.getItem('i18nextLng');\r\n const [acticePackage, setActicePackage] = useState(null);\r\n function showBtn() {\r\n if (btn != null) {\r\n return (\r\n \r\n {btn.text}\r\n \r\n )\r\n }\r\n }\r\n\r\n function onhandelActicePackage(data) {\r\n\r\n setActicePackage(data);\r\n handelActicePackage(data);\r\n\r\n }\r\n\r\n return (\r\n
    \r\n {\r\n overlay ?
    \r\n\r\n
    : null\r\n }\r\n
    \r\n {\r\n (Base64.isValid(background) == 1 ?\r\n\r\n e.target.style.display = 'none'}\r\n alt={\"\"} /> :\r\n e.target.style.display = 'none'}\r\n alt={\"\"} />\r\n\r\n )\r\n // background ?\r\n // {title}\r\n // : null\r\n }\r\n
    \r\n\r\n
    \r\n\r\n {\r\n secondImage &&\r\n
    \r\n e.target.style.display = 'none'} />\r\n
    \r\n }\r\n\r\n\r\n
    \r\n
    \r\n

    \r\n {subtitle}\r\n

    \r\n
    \r\n
    \r\n

    \r\n {title}\r\n

    \r\n

    \r\n {desc}\r\n

    \r\n\r\n {\r\n offerDate ?\r\n
    \r\n

    {trans(\"offers:end-in\")}

    \r\n \r\n

    {trans(\"offers:day\")}

    \r\n

    |

    \r\n

    {trans(\"offers:date\")}

    \r\n \r\n
    \r\n : null\r\n }\r\n\r\n
    \r\n {\r\n showBtn()\r\n }\r\n\r\n
    \r\n\r\n {\r\n packages && packages.length > 0 &&\r\n packages?.map((data, index) => {\r\n\r\n return (\r\n\r\n
    {\r\n if (acticePackage?.id == data?.id) {\r\n onhandelActicePackage(null);\r\n return;\r\n }\r\n onhandelActicePackage(data);\r\n\r\n }}\r\n\r\n >\r\n
    \r\n

    {data?.title}

    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n\r\n

    {trans(\"offers:vehicles_supported\")}:

    \r\n

    {data?.desc}

    \r\n
    \r\n\r\n
    \r\n\r\n );\r\n })\r\n }\r\n\r\n
    \r\n\r\n {\r\n (isOffer == true) &&\r\n
    \r\n\r\n
    \r\n {\r\n if (handelButton)\r\n handelButton(\"reserve\");\r\n }}\r\n />\r\n\r\n
    \r\n
    \r\n {\r\n\r\n if (handelButton)\r\n handelButton(\"cart\");\r\n }} />\r\n
    \r\n
    \r\n }\r\n
    \r\n\r\n\r\n\r\n
    \r\n
    \r\n );\r\n\r\n\r\n}\r\n\r\nexport default Banner;","import Offer from \"../components/offer\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport {Link} from \"react-router-dom\";\r\nimport {slugCombine} from '../utils/slugManager';\r\nexport function OfferSections({title, offersList, type, showMore = true}) {\r\n const {t: trans} = useTranslation([\"common\"]);\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const languageDir = \"language-\" + lang;\r\n\r\n if (offersList == null || offersList.length === 0)\r\n return null;\r\n return (\r\n
    \r\n

    {title}

    \r\n
    \r\n {\r\n offersList?.map((offer,index) => {\r\n return (\r\n \r\n );\r\n })\r\n }\r\n
    \r\n {\r\n showMore ?\r\n offersList?.length === 4 ?\r\n
    \r\n \r\n {trans(\"common:show-more\")}\r\n \r\n
    \r\n : null\r\n : null\r\n }\r\n\r\n
    \r\n );\r\n}","import { Fragment, useCallback, useEffect, useState } from \"react\";\r\nimport Banner from \"../../components/banner\";\r\nimport { OfferSections } from \"../../sections/offersSection\";\r\nimport Breadcrumb from \"../../components/__simple/breadcrumb\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport axios from \"axios\";\r\nimport config from \"../../configuration/config.json\";\r\nimport { Helmet } from \"react-helmet\";\r\nexport function OfferPage() {\r\n\r\n const { t: trans } = useTranslation([\"common\"]);\r\n const [banner, setBanner] = useState({});\r\n const [offers, setOffers] = useState([]);\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n\r\n useEffect(() => {\r\n callback();\r\n }, []);\r\n\r\n const callback = useCallback(async () => {\r\n\r\n\r\n try {\r\n\r\n if (\"caches\" in window) {\r\n let url = \"offers\";\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"OfferPage\");\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n url\r\n );\r\n var data = await cachedResponse?.json();\r\n if (data) {\r\n setBanner(data?.banner);\r\n setOffers(data?.offers);\r\n\r\n }\r\n }\r\n\r\n } catch (error) {\r\n }\r\n try {\r\n const response = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/offers/offers\",\r\n method: \"get\",\r\n });\r\n\r\n setBanner(response.data.banner);\r\n setOffers(response.data.offers);\r\n\r\n const Responsedata = new Response(JSON.stringify(response.data));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"OfferPage\").then((cache) => {\r\n cache.put(\"offers\", Responsedata);\r\n\r\n });\r\n }\r\n\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }, [lang]);\r\n\r\n const [seoPageInfo, setSeoPageInfo] = useState({});\r\n useEffect(async () => {\r\n\r\n var page = \"offers\"\r\n\r\n\r\n const response = await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"SiteFetchSeoPages\",\r\n \"Values\": {\r\n \"page\": page\r\n }\r\n }\r\n );\r\n if (response.status == 200) {\r\n\r\n var resdata = response.data[0];\r\n\r\n setSeoPageInfo(resdata);\r\n\r\n\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n {\r\n seoPageInfo &&\r\n\r\n \r\n\r\n \r\n {\r\n seoPageInfo?.title &&\r\n {seoPageInfo?.title}\r\n }\r\n {\r\n seoPageInfo?.link &&\r\n \r\n\r\n }\r\n {\r\n seoPageInfo?.MetaDescription &&\r\n \r\n }\r\n {\r\n seoPageInfo?.MetaGroups &&\r\n \r\n }\r\n\r\n \r\n\r\n\r\n }\r\n \r\n
    \r\n \r\n
    \r\n {\r\n offers?.map(({ key, value }, index) => {\r\n return (\r\n \r\n\r\n );\r\n })\r\n }\r\n
    \r\n );\r\n}\r\n\r\n","import { Fragment, useEffect, useRef, useState, useContext } from \"react\";\r\nimport { DropDownContext } from \"../../pages/eparts/components/partSearch\";\r\nimport ErrorLabel from '../../components/error';\r\nimport { InputField } from \"../_input/_input\"\r\nimport { useTranslation } from \"react-i18next\";\r\nexport function DropDownInput1({\r\n prps,\r\n styles,\r\n title,\r\n placeholder,\r\n disabled = false,\r\n className,\r\n isSecondary,\r\n inputName,\r\n options = [{ value: \"0\", text: (prps?.lang == 'en' ? 'Choose value' : 'إختيار قيمة') }],\r\n onSelect,\r\n defaultOption = null,\r\n onfilter,\r\n isepart,\r\n errorLabel,\r\n force = false\r\n}) {\r\n const { t: trans, i18n } = useTranslation([]);\r\n let lang = i18n.language;\r\n let languageDir = \"language-\" + lang;\r\n\r\n const optionsRef = useRef(null);\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [selectedOption, setSelectedOption] = useState(defaultOption != null || defaultOption != undefined ? defaultOption : { value: \"0\", text: (lang == 'en' ? 'Choose value' : 'إختيار قيمة') });\r\n const [filterOptions, setfilterOptions] = useState(options);\r\n useEffect(() => {\r\n\r\n /**\r\n * if clicked on outside of element\r\n */\r\n function handleClickOutside(event) {\r\n if (optionsRef.current && !optionsRef.current.contains(event.target) && isOpen === true) {\r\n setIsOpen(false);\r\n }\r\n }\r\n // if(placeholder != null || placeholder != undefined){\r\n // alert(placeholder);\r\n // let resultValue = options.find((e)=>e.value === placeholder);\r\n // selectOption(resultValue); \r\n // }\r\n // Bind the event listener\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => {\r\n // Unbind the event listener on clean up\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, [optionsRef, isOpen]);\r\n\r\n useEffect(() => {\r\n setfilterOptions(options);\r\n\r\n }, [options]);\r\n\r\n function selectOption(option) {\r\n if (onSelect) {\r\n const val = option.value !== '0' ? option.value : '';\r\n onSelect(val);\r\n }\r\n setIsOpen(false);\r\n setSelectedOption(option);\r\n if (onfilter)\r\n if (defaultOption !== option.text)\r\n onfilter(option);\r\n // if (isepart)\r\n //onfilter(option);\r\n\r\n }\r\n\r\n return (\r\n\r\n \r\n\r\n {\r\n inputName ? (\r\n \r\n ) : null\r\n }\r\n\r\n
    \r\n\r\n {\r\n title &&\r\n
    {title}\r\n
    \r\n\r\n }\r\n\r\n\r\n
    \r\n
    {\r\n setIsOpen(!isOpen);\r\n }}>\r\n
    \r\n {\r\n\r\n selectedOption.text\r\n\r\n }\r\n
    \r\n
    \r\n \"arrow\"\r\n
    \r\n\r\n
    \r\n {\r\n !disabled &&
    \r\n\r\n {\r\n filterOptions && options && options.length > 10 &&\r\n < InputField\r\n extraClasses={\"\"}\r\n placeholder={trans(\"info:search_now\")}\r\n onChangeValue={(value) => {\r\n if (value.target.value) {\r\n const filterData = options?.filter(a => a.text.includes(value.target.value));\r\n setfilterOptions(filterData);\r\n } else {\r\n setfilterOptions(options);\r\n }\r\n\r\n }} />\r\n\r\n }\r\n\r\n
      \r\n {\r\n\r\n filterOptions?.map((option, index) => {\r\n\r\n return (\r\n
    • {\r\n selectOption(option);\r\n // const val = option.value !== '0'? option.value : '';\r\n // onSelect(val);\r\n }} className={option.value + (((index % 2) == 0) ? \" bg-gray-lighter \" : \"\") + ((option?.value == selectedOption?.value) ? \" bg-gray-light \" : \"\")}>\r\n {option.text}\r\n
    • \r\n );\r\n\r\n }\r\n )\r\n }\r\n\r\n
    \r\n
    \r\n }\r\n\r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n );\r\n}\r\n","import React, { useRef } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ErrorLabel from '../error';\r\nexport function DateInput3({ name, title, placeholder = '', errorLabel, onSelect, type = \"date\", extraClasses = \"\", value, ...props }) {\r\n const { t: trans, i18n } = useTranslation([\"info\"]);\r\n let lang = i18n.language;\r\n let languageDir = \"language-\" + lang;\r\n const ref = useRef();\r\n return (\r\n\r\n
    \r\n {/* */}\r\n
    \r\n \r\n \r\n \r\n );\r\n}\r\n","import { Fragment, useCallback, useEffect, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport axios from \"axios\";\r\nimport moment from \"moment\";\r\nimport { useParams } from \"react-router\";\r\nimport ErrorLabel from '../../components/error';\r\nimport { DropDownInput1 } from \"../../components/_input/_dropdown1\";\r\nimport { getCleanSlug } from '../../utils/slugManager';\r\nimport config from \"../../configuration/config.json\";\r\nimport { DateInput3 } from \"../../components/_input/_dateInput_3\";\r\nimport DatePicker from 'react-datepicker';\r\nimport { toast } from \"react-toastify\";\r\nimport PhoneDropDown from \"../../components/_input/_phoneDropDown\";\r\nimport { InputField } from \"../../components/_input/_input\";\r\nimport { DropDownInput } from \"../../components/_input/_dropdown\";\r\nimport { TextArea } from \"../../components/_input/_textArea\";\r\nimport { GetMessages, formValidate } from '../../utils/validation';\r\nimport { Price } from \"../../components/__simple/_price\";\r\n\r\nimport Joi from \"joi\";\r\nimport { getData, User_Data_Key } from \"../../utils/localStorageManager\";\r\nexport function OfferServiceReservationByID() {\r\n\r\n let { slug } = useParams();\r\n const { t: trans, i18n } = useTranslation([\"common\", \"offers\", \"extra\"]);\r\n const languageDir = 'language-' + localStorage.getItem('i18nextLng');\r\n const [isLogin, setLogin] = useState(false);\r\n const [Branches, setBranches] = useState([]);\r\n const [dataFullNum, setDataFullNum] = useState(0);\r\n const [indexPanel, setIndexPanel] = useState(\"0000\");\r\n const [showPopup, setShowPopup] = useState(false);\r\n const [banner, setBanner] = useState({});\r\n const [Note, setNote] = useState(\"\");\r\n const [packages, setPackages] = useState([]);\r\n const [years, setYears] = useState([]);\r\n const [isSendeng, setIsSendeng] = useState(false);\r\n const [error, setError] = useState({});\r\n const [requestForm, setRequestForm] = useState({\r\n lastName: '',\r\n name: '',\r\n phone: '',\r\n email: '',\r\n subject: '',\r\n date: '',\r\n time: '',\r\n messageContent: '',\r\n myCarID: '',\r\n SiteID: null,\r\n });\r\n const LoginSchema = Joi.object({\r\n date: Joi.string().required().messages(GetMessages()),\r\n time: Joi.string().required().messages(GetMessages()),\r\n // VIN: Joi.string().required().messages(GetMessages()),\r\n meterReading: Joi.string().required().messages(GetMessages()),\r\n SiteID: Joi.string().required().messages(GetMessages()),\r\n year: Joi.string().required().messages(GetMessages()),\r\n model: Joi.string().required().messages(GetMessages())\r\n });\r\n const notLoginSchema = Joi.object({\r\n date: Joi.date().required().messages(GetMessages()),\r\n time: Joi.date().required().messages(GetMessages()),\r\n // VIN: Joi.string().required().messages(GetMessages()),\r\n SiteID: Joi.string().required().messages(GetMessages()),\r\n meterReading: Joi.string().required().messages(GetMessages()),\r\n name: Joi.string().required().messages(GetMessages()),\r\n lastName: Joi.string().required().messages(GetMessages()),\r\n // email: Joi.string().email({ minDomainSegments: 2, tlds: { allow: false } }).messages(GetMessages()),\r\n phone: Joi.string().required().messages(GetMessages()),\r\n year: Joi.string().required().messages(GetMessages()),\r\n model: Joi.string().required().messages(GetMessages())\r\n });\r\n const [offer, setOffer] = useState(null);\r\n const [offerSupportedCars, setOfferSupportedCars] = useState([]);\r\n const [packageSupportedCars, setPackageSupportedCars] = useState([]);\r\n const [acticeService, setActiceService] = useState(null);\r\n const [acticeCar, setActiceCar] = useState(null);\r\n const [acticePackage, setActicePackage] = useState(null);\r\n let lang = i18n.language;\r\n useEffect(() => {\r\n callback();\r\n FetchOfferSupportedServicesSacondry();\r\n FetchOfferSupportedVehicles();\r\n GetBranch();\r\n }, []);\r\n\r\n useEffect(() => {\r\n\r\n try {\r\n window.tamaraWidgetConfig = {\r\n lang: lang,\r\n country: \"SA\",\r\n publicKey: \"71258997-64ec-418a-9cba-0d3849fa219f\"\r\n }\r\n\r\n\r\n window.TamaraFAQsFrame.render({ lang: lang })\r\n } catch (error) {\r\n\r\n }\r\n\r\n let data = {};\r\n\r\n try {\r\n data = JSON.parse(getData(User_Data_Key, true));\r\n } catch (error) {\r\n\r\n }\r\n try {\r\n\r\n if (getData('isAuthenticated'))\r\n setLogin(true);\r\n } catch (err) {\r\n //console.log(err);\r\n setLogin(false);\r\n }\r\n\r\n }, [lang]);\r\n\r\n var tamarFAQsConfig = {\r\n lang: 'ar', // Language. Default is Arabic\r\n styles: { // Custome style - Ignore this if you don't have any custome style\r\n width: '100%',\r\n height: '100%'\r\n },\r\n autoRender: false, // Auto render after the script is loaded. Default is 'true'\r\n tamaraLogo: false // Display tamara logo during loading content page. Default is 'true'\r\n }\r\n\r\n const [fullDatetime, setFullDatetime] = useState(null);\r\n useEffect(() => {\r\n\r\n try {\r\n\r\n if (requestForm?.date) {\r\n\r\n var md = new Date(requestForm?.date);\r\n try {\r\n if (requestForm?.time) {\r\n\r\n var Hours = requestForm?.time.split(\":\");\r\n\r\n md.setHours(Hours[0], Hours[1], 0);\r\n }\r\n } catch (error) {\r\n\r\n }\r\n var datetime = new moment(md).format('yyyy-MM-DD HH:mm:ss')\r\n // var datetime = md.toLocaleDateString(\"en-US\", { year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit', second: '2-digit' }).replaceAll(',', '').replaceAll('/', '-');\r\n setFullDatetime(datetime);\r\n console.log(\"datetime:\", datetime);\r\n }\r\n\r\n } catch (error) {\r\n }\r\n\r\n\r\n }, [requestForm]);\r\n useEffect(() => {\r\n\r\n var ly = [];\r\n\r\n try {\r\n if (acticeCar?.fromYear && acticeCar?.toYear) {\r\n\r\n ly.push({ value: acticeCar.fromYear, text: acticeCar.fromYear });\r\n var newy = parseInt(acticeCar.fromYear);\r\n for (var i = 0; i <= 30; i++) {\r\n\r\n newy = parseInt(newy) + 1;\r\n\r\n ly.push({ value: newy, text: newy });\r\n\r\n if (newy >= acticeCar?.toYear) {\r\n\r\n break;\r\n }\r\n }\r\n setYears(ly);\r\n\r\n }\r\n } catch (error) {\r\n\r\n }\r\n\r\n\r\n }, [acticeCar]);\r\n\r\n const callback = useCallback(async () => {\r\n try {\r\n\r\n\r\n try {\r\n\r\n if (\"caches\" in window) {\r\n let url = \"detail-\" + getCleanSlug();\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"OfferPage\");\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n url\r\n );\r\n var data = await cachedResponse?.json();\r\n if (data) {\r\n setBanner(data?.banner)\r\n setPackages(data?.packages)\r\n setOffer(data?.offer)\r\n setOfferSupportedCars(data?.offerSupportedCars)\r\n setPackageSupportedCars(data?.packagesSupportedCars)\r\n\r\n if (data?.packages.length == 1) {\r\n\r\n setActicePackage(data?.packages[0]);\r\n }\r\n\r\n }\r\n }\r\n\r\n } catch (error) {\r\n }\r\n const response = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/offers/detail/\" + getCleanSlug(),\r\n method: \"get\",\r\n });\r\n setBanner(response.data.banner)\r\n setPackages(response.data.packages)\r\n setOffer(response.data.offer)\r\n setOfferSupportedCars(response.data.offerSupportedCars)\r\n setPackageSupportedCars(response.data.packagesSupportedCars)\r\n\r\n if (response.data.packages.length == 1) {\r\n\r\n setActicePackage(response.data.packages[0]);\r\n }\r\n\r\n const Responsedata = new Response(JSON.stringify(response.data));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"OfferPage\").then((cache) => {\r\n cache.put(\"detail-\" + getCleanSlug(), Responsedata);\r\n\r\n });\r\n }\r\n\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }, [lang, slug])\r\n\r\n const FetchOfferSupportedServicesSacondry = useCallback(async () => {\r\n try {\r\n const cslug = await getCleanSlug();\r\n await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n //Site_FetchOfferSupportedServices\r\n \"name\": \"Site_FetchOfferSupportedServices\",\r\n \"values\": {\r\n \"slug\": cslug\r\n }\r\n }\r\n ).then(function (response) {\r\n\r\n var Mainservice = [];\r\n var Lastservice = [];\r\n var MainserviceIDS = [];\r\n response.data?.map((item, index) => {\r\n\r\n if (item?.ServiceID) {\r\n if (!Lastservice.includes(item)) {\r\n Lastservice.push(item);\r\n MainserviceIDS.push(item?.subService2);\r\n }\r\n } else if (item?.subService2) {\r\n\r\n if (!Mainservice.includes(item)) {\r\n\r\n Mainservice.push(item);\r\n }\r\n }\r\n\r\n });\r\n Mainservice = Mainservice.filter(item => !MainserviceIDS.includes(item?.subService2))\r\n setSupportedMainServices(Mainservice);\r\n setSupportedLastsServices(Lastservice);\r\n if (Lastservice[0])\r\n setActiceService(Lastservice[0]);\r\n\r\n setSupportedServices(response.data);\r\n setLoadingSupportedServices(false);\r\n\r\n\r\n const Responsedata = new Response(JSON.stringify(response.data));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"OfferPage\").then((cache) => {\r\n cache.put(\"Site_FetchOfferSupportedCampaignTransServices-\" + getCleanSlug(), Responsedata);\r\n\r\n });\r\n }\r\n\r\n }).catch(function (error) {\r\n console.log(error);\r\n setLoadingSupportedServices(false);\r\n });\r\n\r\n } catch (error) {\r\n }\r\n\r\n }, []);\r\n const [SupportedServices, setSupportedServices] = useState([]);\r\n const [SupportedMainServices, setSupportedMainServices] = useState([]);\r\n const [SupportedLastsServices, setSupportedLastsServices] = useState([]);\r\n const [isLoadingSupportedServices, setLoadingSupportedServices] = useState(true);\r\n const FetchOfferSupportedServices = useCallback(async () => {\r\n try {\r\n setLoadingSupportedServices(true);\r\n\r\n\r\n try {\r\n\r\n if (\"caches\" in window) {\r\n let url = \"Site_FetchOfferSupportedCampaignTransServices-\" + getCleanSlug();\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"OfferPage\");\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n url\r\n );\r\n var data = await cachedResponse?.json();\r\n if (data) {\r\n var Mainservice = [];\r\n var Lastservice = [];\r\n var MainserviceIDS = [];\r\n data?.map((item, index) => {\r\n\r\n if (item?.ServiceID) {\r\n if (!Lastservice.includes(item)) {\r\n Lastservice.push(item);\r\n MainserviceIDS.push(item?.subService2);\r\n }\r\n } else if (item?.subService2) {\r\n\r\n if (!Mainservice.includes(item)) {\r\n\r\n Mainservice.push(item);\r\n }\r\n }\r\n\r\n });\r\n Mainservice = Mainservice.filter(item => !MainserviceIDS.includes(item?.subService2))\r\n setSupportedMainServices(Mainservice);\r\n setSupportedLastsServices(Lastservice);\r\n if (Lastservice[0])\r\n setActiceService(Lastservice[0]);\r\n\r\n setSupportedServices(data);\r\n setLoadingSupportedServices(false);\r\n }\r\n }\r\n\r\n } catch (error) {\r\n }\r\n\r\n const cslug = await getCleanSlug();\r\n await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n //Site_FetchOfferSupportedServices\r\n \"name\": \"Site_FetchOfferSupportedCampaignTransServices\",\r\n \"values\": {\r\n \"slug\": cslug\r\n }\r\n }\r\n ).then(function (response) {\r\n\r\n var Mainservice = [];\r\n var Lastservice = [];\r\n var MainserviceIDS = [];\r\n response.data?.map((item, index) => {\r\n\r\n if (item?.ServiceID) {\r\n if (!Lastservice.includes(item)) {\r\n Lastservice.push(item);\r\n MainserviceIDS.push(item?.subService2);\r\n }\r\n } else if (item?.subService2) {\r\n\r\n if (!Mainservice.includes(item)) {\r\n\r\n Mainservice.push(item);\r\n }\r\n }\r\n\r\n });\r\n Mainservice = Mainservice.filter(item => !MainserviceIDS.includes(item?.subService2))\r\n setSupportedMainServices(Mainservice);\r\n setSupportedLastsServices(Lastservice);\r\n if (Lastservice[0])\r\n setActiceService(Lastservice[0]);\r\n\r\n setSupportedServices(response.data);\r\n setLoadingSupportedServices(false);\r\n\r\n\r\n const Responsedata = new Response(JSON.stringify(response.data));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"OfferPage\").then((cache) => {\r\n cache.put(\"Site_FetchOfferSupportedCampaignTransServices-\" + getCleanSlug(), Responsedata);\r\n\r\n });\r\n }\r\n\r\n }).catch(function (error) {\r\n console.log(error);\r\n FetchOfferSupportedServicesSacondry();\r\n });\r\n } catch (error) {\r\n console.log(error);\r\n setLoadingSupportedServices(false);\r\n }\r\n\r\n }, []);\r\n\r\n\r\n const [SupportedVehicles, setSupportedVehicles] = useState([]);\r\n const [isLoadingSupportedVehicles, setLoadingSupportedVehicles] = useState(true);\r\n const FetchOfferSupportedVehicles = useCallback(async () => {\r\n try {\r\n setLoadingSupportedVehicles(true);\r\n\r\n try {\r\n\r\n if (\"caches\" in window) {\r\n let url = \"Site_FetchOfferSupportedVehicles-\" + getCleanSlug();\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"OfferPage\");\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n url\r\n );\r\n var data = await cachedResponse?.json();\r\n if (data) {\r\n setSupportedVehicles(data);\r\n setLoadingSupportedVehicles(false);\r\n }\r\n }\r\n\r\n } catch (error) {\r\n }\r\n\r\n await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"name\": \"Site_FetchOfferSupportedVehicles\",\r\n \"values\": {\r\n \"slug\": getCleanSlug()\r\n\r\n }\r\n }\r\n ).then(function (response) {\r\n\r\n setSupportedVehicles(response.data);\r\n setLoadingSupportedVehicles(false);\r\n\r\n const Responsedata = new Response(JSON.stringify(response.data));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"OfferPage\").then((cache) => {\r\n cache.put(\"Site_FetchOfferSupportedVehicles-\" + getCleanSlug(), Responsedata);\r\n\r\n });\r\n }\r\n\r\n }).catch(function (error) {\r\n console.log(error);\r\n setLoadingSupportedVehicles(false);\r\n });\r\n } catch (error) {\r\n console.log(error);\r\n setLoadingSupportedVehicles(false);\r\n }\r\n\r\n }, []);\r\n\r\n\r\n function SendResreve(VIN, MainServiceID, subServiceID, TypeServiceID, ServecID, ModelCode, UserID, Amount) {\r\n var thisSchema = null;\r\n\r\n if (isLogin) {\r\n\r\n thisSchema = LoginSchema;\r\n } else {\r\n thisSchema = notLoginSchema;\r\n\r\n }\r\n\r\n const result = formValidate(thisSchema, requestForm) ?? {};\r\n\r\n setError(result);\r\n if (Object.keys(result).length == 0 && isSendeng == false) {\r\n\r\n if (SupportedLastsServices?.length <= 0) {\r\n\r\n toast.warn(trans(\"offers:services_supported\") + \" (0)\");\r\n return;\r\n }\r\n\r\n setIsSendeng(true);\r\n\r\n var ServicesList = \"\";\r\n SupportedLastsServices.map((a) => {\r\n\r\n ServicesList += a.ServiceID + \",\"\r\n\r\n\r\n });\r\n\r\n var myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n\r\n var raw = {\r\n \"VIN\": requestForm?.VIN,\r\n \"Model\": acticeCar?.type,\r\n \"Year\": requestForm?.year ? requestForm?.year + \"\" : null,\r\n \"CarType\": acticeCar?.modelCode,\r\n \"UserID\": UserID ?? \"\",\r\n \"TotalAmount\": Amount ? Amount : 0,\r\n \"MainServiceID\": MainServiceID,\r\n \"subServiceID\": subServiceID,\r\n \"TypeServiceID\": TypeServiceID,\r\n \"ServiceID\": ServecID,\r\n \"RequiredServicesList\": ServicesList,\r\n \"Note\": Note,\r\n\r\n \"MeterReading\": requestForm?.meterReading,\r\n \"FirstName\": requestForm?.name,\r\n \"phone\": requestForm?.phone,\r\n \"Email\": requestForm?.email,\r\n \"StoreID\": requestForm?.SiteID,\r\n \"Orderdate\": moment(requestForm?.date).format('YYYY-MM-DD'),\r\n \"OrderTime\": moment(requestForm?.time).format('HH:mm:ss'),\r\n \"PackageId\": acticeCar?.packageId ? acticeCar?.packageId + \"\" : null\r\n // \"PaymentMethodID\": paymentType == 1 ? \"Credit Card\" : (paymentType == 2 ? \"Sadad\" : (paymentType == 3 ? \"Installment\" : \"CashByBranch\")),\r\n\r\n\r\n\r\n };\r\n\r\n\r\n axios.request({\r\n url: config.controllURL + \"api/Service/ServiceRequestAdd\", headers: myHeaders,\r\n data: raw, method: \"POST\", responseType: \"json\"\r\n }).then(function (response) {\r\n //console.log(\"Service\", response.data)\r\n\r\n setShowPopup(false);\r\n toast.success(trans(\"info:reservation_completed_successfully\"));\r\n\r\n }\r\n ).then((response) => {\r\n //console.log('Error', response);\r\n setIsSendeng(false);\r\n })\r\n .catch(error => {\r\n //console.log('error', error);\r\n setIsSendeng(false);\r\n }\r\n\r\n\r\n\r\n );\r\n\r\n } else {\r\n console.log(\"result>>>>>>>>>>>>>>>>>:\", result);\r\n\r\n }\r\n }\r\n\r\n async function GetBranch() {\r\n\r\n const Body = {\r\n \"name\": \"site_FetchMaintenanceBranches\"\r\n };\r\n\r\n await axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n\r\n setBranches(response.data);\r\n\r\n\r\n setTimeout(() => {\r\n if (response?.data?.length == 1) {\r\n\r\n const val = { ...requestForm };\r\n val.SiteID = response?.data[0]?.SiteID;\r\n setRequestForm(val);\r\n }\r\n }, 1000);\r\n\r\n })\r\n .catch(function (error) {\r\n //console.log(error);\r\n });\r\n\r\n\r\n }\r\n\r\n const [listTimeAvailable, setListTimeAvailable] = useState([]);\r\n // const [maxTime, setMaxTime] = useState(0);\r\n // const [minTime, setMinTime] = useState(0);\r\n\r\n const webAvailableReshours = async (date = '') => {\r\n const Body = {\r\n \"name\": \"web_AvailableReshours\",\r\n \"values\": {\r\n \"Resdate\": date\r\n }\r\n }\r\n\r\n await axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n console.log(\"web_AvailableReshours:response\", response);\r\n if (response.status >= 200 && response.status < 299) {\r\n console.log(\"web_AvailableReshours:response\", response.statusText);\r\n if (response?.data && response?.data.length != 0) {\r\n response?.data.forEach((val, index) => {\r\n\r\n setListTimeAvailable(_lstTime => [..._lstTime, parseInt(val?.AvailableHour)]);\r\n });\r\n\r\n }\r\n }\r\n })\r\n .catch(function (error) {\r\n console.log(\"web_AvailableReshours:Error\", error);\r\n toast.warn(trans(\"form:please-choose-another-date\"));\r\n });\r\n }\r\n\r\n const checkDataFullNum = async () => {\r\n\r\n if (acticeCar?.packageId && SupportedLastsServices && SupportedLastsServices.length > 0 && requestForm?.name && requestForm?.time && requestForm?.date) {\r\n\r\n setDataFullNum(2);\r\n return 2;\r\n\r\n } else {\r\n setDataFullNum(0);\r\n return 0;\r\n }\r\n\r\n\r\n }\r\n useEffect(() => {\r\n checkDataFullNum();\r\n }, [requestForm, SupportedLastsServices, acticeCar?.packageId]);\r\n\r\n\r\n return (\r\n \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n {\r\n lang == \"ar\" ?\r\n\r\n
    \r\n \"hassan\r\n \"hassan\r\n
    \r\n\r\n\r\n :\r\n\r\n
    \r\n \"hassan\r\n \"hassan\r\n
    \r\n }\r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n (acticeCar?.brandID == 1) ?\r\n <>\r\n {acticeCar?.brandID}\r\n \r\n :\r\n (\r\n (acticeCar?.brandID == 2) ?\r\n <>\r\n {acticeCar?.brandID}\r\n \r\n :\r\n null\r\n\r\n )\r\n\r\n }\r\n
    \r\n\r\n {\r\n\r\n if (window.location.href.includes(\"/ar\") || window.location.href.includes(\"/en\")) {\r\n\r\n if (window.location.href.includes(\"/en\"))\r\n window.location = window.location.href.replace(\"/en\", \"/ar\");\r\n if (window.location.href.includes(\"/ar\"))\r\n window.location = window.location.href.replace(\"/ar\", \"/en\");\r\n\r\n } else {\r\n\r\n window.location = window.location.origin + \"/en\" + window.location.pathname;\r\n }\r\n }}\r\n className=\"offer-service-reservation-top-lang h-full flex justify-center items-center\">\r\n\r\n {trans('common:changeLangCode')}\r\n \"change\r\n \r\n
    \r\n\r\n\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n

    \r\n {banner?.type}

    \r\n\r\n

    {banner?.title}

    \r\n

    {banner?.excerpt}

    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n\r\n
    \r\n\r\n
    \r\n <>\r\n
    \r\n\r\n {\r\n const val = { ...requestForm };\r\n val.name = e.target.value;\r\n setRequestForm(val);\r\n }\r\n }\r\n />\r\n
    \r\n \r\n\r\n
    \r\n\r\n\r\n\r\n
    \r\n {\r\n\r\n const val = { ...requestForm };\r\n if (phoneNumber)\r\n val.phone = `+${countryCode}${phoneNumber}`;\r\n else\r\n val.phone = \"\";\r\n setRequestForm(val);\r\n }}\r\n />\r\n
    \r\n\r\n\r\n
    \r\n {\r\n packages && packages.length > 0 &&\r\n packages?.map((data, _index) => {\r\n return (\r\n
    \r\n
    \r\n
    {\r\n\r\n\r\n setIndexPanel(null);\r\n setActicePackage(null);\r\n if (indexPanel != data?.id) {\r\n setIndexPanel(data?.id);\r\n setActicePackage(data);\r\n }\r\n }}\r\n\r\n\r\n >\r\n
    \r\n

    \r\n {data?.title}

    \r\n\r\n
    \r\n\r\n {\r\n offer?.reservationOnly == true ?\r\n \"\"\r\n :\r\n \r\n\r\n }\r\n
    \r\n
    \r\n\r\n \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n\r\n

    {trans(\"offers:vehicles_supported\")}:

    \r\n

    {data?.desc}

    \r\n
    \r\n\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n );\r\n })\r\n\r\n }\r\n
    \r\n\r\n
    \r\n\r\n\r\n
    \r\n\r\n a.packageId == acticePackage?.id)).map(B => {\r\n return { value: B.slug, text: ((lang == \"ar\" ? B?.brand : B?.brandEn) + \" \" + (lang == \"ar\" ? B?.group : B?.groupEn)) };\r\n })]}\r\n onSelect={(value) => {\r\n\r\n console.log(\"onSelect:\", value);\r\n const val = { ...requestForm };\r\n val.model = value;\r\n val.year = null;\r\n setRequestForm(val);\r\n\r\n var car = (SupportedVehicles.filter(a => a.slug == value))[0];\r\n\r\n\r\n if (car) {\r\n\r\n setActiceCar(car);\r\n }\r\n\r\n }}\r\n\r\n />\r\n
    \r\n\r\n
    \r\n\r\n {\r\n const val = { ...requestForm };\r\n val.year = value + \"\";\r\n setRequestForm(val);\r\n }}\r\n\r\n />\r\n
    \r\n
    \r\n\r\n\r\n\r\n
    \r\n
    \r\n\r\n {\r\n const val = { ...requestForm };\r\n val.VIN = e.target.value;\r\n setRequestForm(val);\r\n\r\n }} />\r\n
    \r\n
    \r\n\r\n {\r\n return { value: B.SiteID, text: lang === 'ar' ? B.DescriptionAr : B.DescriptionEn };\r\n })]}\r\n selectedValue={Branches?.length == 1 ? Branches[0]?.SiteID : requestForm?.SiteID}\r\n onSelect={(value) => {\r\n\r\n //////console.log(\"onSelect:\", value);\r\n const val = {};\r\n val.SiteID = value;\r\n setRequestForm({ ...requestForm, ...val });\r\n }}\r\n\r\n\r\n />\r\n\r\n \r\n
    \r\n \"user\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n\r\n\r\n <>\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n\r\n {\r\n const val = { ...requestForm };\r\n val.date = value;\r\n val.time = null;\r\n setRequestForm(val);\r\n setListTimeAvailable([]);\r\n\r\n if (val.date) {\r\n await webAvailableReshours(moment(value).format('yyyy-MM-DD'));\r\n }\r\n }}\r\n filterDate={(date) => {\r\n const today = new Date();\r\n const yesterday = new Date(today);\r\n yesterday.setDate(today.getDate() - 1);\r\n const day = date.getDay();\r\n return (day === 0 || day === 1 || day === 2 || day === 3 || day === 4 || day === 6)\r\n && (new Date(date).setHours(0, 0, 0) > yesterday.setHours(0, 0, 0)); // Sunday (0), Saturday (6)\r\n\r\n }}\r\n placeholderText={trans(\"form:maintenance-date\")}\r\n dateFormat=\"yyyy-MM-dd\"\r\n customInput={}\r\n />\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n const time = new Date();\r\n let res;\r\n\r\n if (requestForm.date && new Date(requestForm.date).toDateString() === new Date().toDateString()) {\r\n if (val > new Date().getHours()) {\r\n res = time.setHours(val, 0, 0);\r\n }\r\n } else if (requestForm.date && new Date(requestForm.date) > new Date()) {\r\n res = time.setHours(val, 0, 0);\r\n } else {\r\n res = time.setHours(val, 0, 0);\r\n }\r\n\r\n return res;\r\n })}\r\n isClearable={!!requestForm.time}\r\n selected={requestForm.time}\r\n onChange={(value) => {\r\n\r\n const val = { ...requestForm };\r\n val.time = value;\r\n setRequestForm(val);\r\n }}\r\n className=\"w-100\"\r\n\r\n placeholderText={trans(\"form:maintenance-time\")}\r\n showTimeSelect\r\n showTimeSelectOnly\r\n timeIntervals={60}\r\n timeInputLabel={trans(\"form:maintenance-time\")}\r\n\r\n timeCaption={trans(\"form:maintenance-time\")}\r\n // withPortal\r\n dateFormat=\"hh:mm aa\"\r\n // showTimeInput\r\n customInput={}\r\n />\r\n
    \r\n \r\n
    \r\n\r\n\r\n
    \r\n\r\n \r\n\r\n\r\n\r\n {\r\n setNote(data);\r\n }}\r\n />\r\n
    \r\n\r\n\r\n
    \r\n {\r\n\r\n <>\r\n {\r\n\r\n
    \r\n
    \r\n
    = 2 ? \" bg-primary \" : \" bg-gray \")} onClick={() => {\r\n\r\n var cleanData = {};\r\n\r\n if (dataFullNum >= 2 && isSendeng == false)\r\n SendResreve(acticeCar?.type, acticeService?.mainService, acticeService?.subService1, acticeService?.subService2, acticeService?.ServiceID, null, cleanData?.custID, acticePackage?.price);\r\n\r\n }}>\r\n {\r\n trans(\"info:reserve\")\r\n\r\n }\r\n\r\n {\r\n isSendeng && \r\n \r\n \r\n }\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n\r\n\r\n }\r\n\r\n \r\n }\r\n\r\n\r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}","import {Link} from \"react-router-dom\";\r\nimport Moment from \"react-moment\";\r\nimport { Trans, useTranslation } from \"react-i18next\";\r\n\r\nfunction News({image, title, date, desc, link, brand}) {\r\n const {t: trans} = useTranslation([\"common\"]);\r\n function tag(brand) {\r\n if (brand === \"toyota\" || brand === \"تويوتا\") {\r\n return ({brand});\r\n } else {\r\n return ({brand});\r\n }\r\n }\r\n\r\n return (\r\n \r\n\r\n\r\n
    \r\n
    \r\n \"\"/\r\n {tag(brand)}\r\n
    \r\n
    \r\n

    {title}

    \r\n\r\n
    \r\n \r\n\r\n

    \r\n {desc}\r\n

    \r\n\r\n
    \r\n
    \r\n {trans(\"common:show-more\")}\r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default News;","import {useTranslation} from \"react-i18next\";\r\nimport {Link} from \"react-router-dom\";\r\n\r\nfunction NewsBanner({background, title, desc, link}) {\r\n const {t: trans} = useTranslation(\"common\");\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const languageDir = 'language-'+lang;\r\n return (\r\n
    \r\n \r\n
    \r\n {title}/\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n

    \r\n {title}\r\n

    \r\n
    \r\n
    \r\n\r\n

    \r\n {desc}\r\n

    \r\n
    \r\n
    \r\n\r\n \r\n {trans('read-more')}\r\n \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n );\r\n\r\n\r\n}\r\n\r\nexport default NewsBanner;","import {Fragment, useEffect, useState} from \"react\";\r\nimport News from \"./components/news\";\r\nimport NewsBanner from \"./components/newsBanner\";\r\nimport {SwiperSlide, Swiper} from 'swiper/react';\r\nimport Loader from \"react-loader-spinner\";\r\nimport {useHistory, useParams} from \"react-router\";\r\nimport Pagination from \"react-js-pagination\";\r\nimport SwiperCore, {Pagination as SlidePagination, Navigation, Autoplay, EffectFade} from \"swiper\";\r\nimport PageHeading from \"../../components/__simple/_pageheading\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport Breadcrumb from \"../../components/__simple/breadcrumb\";\r\nimport {FilterButton} from \"../../components/__simple/_filterButton\";\r\nimport axios from \"axios\";\r\nimport {slugCombine} from '../../utils/slugManager';\r\nimport config from \"../../configuration/config.json\";\r\nSwiperCore.use([SlidePagination, Navigation, Autoplay, EffectFade]);\r\n\r\nexport function NewsPage() {\r\n const {page = 1} = useParams();\r\n\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const languageDir = \"language-\" + lang;\r\n \r\n const [activePage, setActivePage] = useState(0);\r\n let history = useHistory();\r\n\r\n const {t: trans} = useTranslation([\"inputs\", \"heading\",\"info\"]);\r\n // const news = useSelector(state => state.entities.news.items);\r\n\r\n const [news, setNews] = useState([]);\r\n // news shown in the slider\r\n const [sliderNews, setSliderNews] = useState([]);\r\n\r\n // the news filters\r\n const [newsFilter, setNewsFilter] = useState([]);\r\n\r\n const [filter, setFilter] = useState(null);\r\n\r\n const [filteredNews, setFilteredNews] = useState(news);\r\n\r\n const [dataStatus, setDataStatus] = useState(0);\r\n const [itemCount, setItemCount] = useState(0);\r\n\r\n useEffect(async () => {\r\n setDataStatus(1);\r\n try {\r\n const response = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/news/news/\" + page,\r\n method: \"get\",\r\n });\r\n\r\n setItemCount(response.data.totalItemsCount);\r\n setNews(response.data.news);\r\n setSliderNews(response.data.sliderNews);\r\n setNewsFilter(response.data.filters);\r\n\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n setActivePage(parseInt(page));\r\n }, [page]);\r\n\r\n useEffect(() => {\r\n setFilteredNews(news);\r\n }, [news])\r\n\r\n function filterNews(brand) {\r\n setFilter(brand);\r\n let filterData;\r\n if (brand != null)\r\n filterData = news.filter((data) => {\r\n return data.brand === brand;\r\n });\r\n else {\r\n filterData = news;\r\n }\r\n setFilteredNews(filterData);\r\n }\r\n\r\n if (itemCount === 0)\r\n return (\r\n
    \r\n {/**/}\r\n
    \r\n );\r\n else if (dataStatus === 1)\r\n return (\r\n\r\n \r\n \r\n {\r\n sliderNews.map((data) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n })\r\n }\r\n \r\n
    \r\n \r\n \r\n
    \r\n {\r\n newsFilter?.map((_filter) => {\r\n return (\r\n filterNews(_filter.content)}\r\n />\r\n );\r\n })\r\n }\r\n\r\n filterNews(null)}/>\r\n
    \r\n \r\n\r\n
    \r\n\r\n {\r\n filteredNews.map((data) => {\r\n return (\r\n \r\n );\r\n })\r\n }\r\n
    \r\n {itemCount > 4 && {\r\n history.push('/news/' + number);\r\n }}\r\n />\r\n}\r\n
    \r\n
    \r\n );\r\n else\r\n return (\"error happened\");\r\n}","import {Fragment, useEffect, useState} from \"react\";\r\nimport News from \"./components/news\";\r\nimport SwiperCore, {Pagination, Navigation, Autoplay, EffectFade} from \"swiper\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport Breadcrumb from \"../../components/__simple/breadcrumb\";\r\nimport axios from \"axios\";\r\nimport {useParams, useHistory} from \"react-router\";\r\nimport Moment from \"react-moment\";\r\nimport {slugSplitter,slugCombine} from '../../utils/slugManager';\r\nimport config from \"../../configuration/config.json\";\r\nSwiperCore.use([Pagination, Navigation, Autoplay, EffectFade]);\r\n\r\n// import { useHistory } from 'react-router-dom';\r\n\r\nexport function NewsDetailPage() {\r\n const {t: trans} = useTranslation([\"heading\",\"info\"]);\r\n let {slug} = useParams();\r\n const [detail, setDetail] = useState({title: \"\"});\r\n const [news, setNews] = useState([{},{}]);\r\n\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const languageDir = 'language-' + lang;\r\n\r\n // // let history = useHistory();\r\n // // let history = window.history;\r\n //\r\n // useEffect(() => {\r\n // console.log(\"history.url.includes(): \", window.location.pathname);\r\n // // console.log(\"history: \", history.location.pathname);\r\n //\r\n // // history.push('/news',['Test'])\r\n // if(window.location.pathname.includes(\"/news/detail/\")){\r\n // window.history.pushState([slugSplitter(slug)],'/news', '/news1');\r\n // }\r\n // }, [slug]);\r\n //\r\n // const handlePopstate = () => {\r\n // // يتم تحديث العنوان عند الرجوع في المتصفح\r\n // window.history.pushState([slug], '/news1', '/news');\r\n // window.location.reload();\r\n // };\r\n // // استمع لحدث popstate عند الرجوع في المتصفح\r\n // window.addEventListener('popstate', handlePopstate);\r\n \r\n \r\n useEffect(async () => {\r\n try {\r\n\r\n const response = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang+\"/api/news/detail/\" + slugSplitter(slug),\r\n method: \"get\",\r\n });\r\n \r\n setDetail(response.data.detail)\r\n setNews(response.data.latestNews)\r\n \r\n } catch (error) {\r\n\r\n }\r\n }, [slugSplitter(slug)])\r\n \r\n return (\r\n \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n {news.title}/\r\n
    \r\n \r\n
    \r\n \r\n

    \r\n {detail.title}\r\n

    \r\n \r\n \r\n \r\n

    \r\n {detail?.content}\r\n

    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n

    {trans('info:last-news')}

    \r\n
    \r\n {\r\n news?.map((data) => {\r\n return (\r\n \r\n );\r\n })\r\n }\r\n \r\n\r\n\r\n
    \r\n\r\n
    \r\n
    \r\n );\r\n}","import {useTranslation} from \"react-i18next\";\r\nimport {Link} from \"react-router-dom\";\r\n\r\nexport function Job({title, location, job, desc, link, titleLink}) {\r\n const {t: trans, i18n} = useTranslation(\"common\");\r\n const languageDir = 'language-' + i18n.language;\r\n return (\r\n \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n

    {title}

    \r\n
    \r\n \r\n
    {location}
    \r\n \r\n
    {job}
    \r\n
    \r\n {/*
    */}\r\n {/*

    {title}

    */}\r\n {/* */}\r\n {/*
    */}\r\n {/*
    {location}
    */}\r\n {/*
    {job}
    */}\r\n {/*
    */}\r\n {/*
    */}\r\n\r\n
    \r\n\r\n

    \r\n {desc}\r\n

    \r\n\r\n
    \r\n\r\n
    \r\n {titleLink ?? trans(\"show-more\")}\r\n
    \r\n
    \r\n
    \r\n \r\n\r\n );\r\n}\r\n\r\n","import { useTranslation } from \"react-i18next\";\r\nimport { DropDownInput } from \"../../../components/_input/_dropdown\";\r\n\r\nexport function JobFilters({ jobDepartments, jobBranches, departmentFilter, branchFilter, onSearchClick }) {\r\n const { t: trans } = useTranslation([\"form\", \"new\", \"employment\"]);\r\n return (\r\n
    \r\n {\r\n }}\r\n title={trans(\"new:job\")}\r\n className={\"flex-grow-1 job-dropdown\"}\r\n inputName={\"job-department\"}\r\n options={\r\n jobDepartments ?\r\n [\r\n ...jobDepartments?.map((job) => {\r\n return {\r\n text: job.content,\r\n value: job.name\r\n }\r\n })\r\n ]\r\n : []\r\n }\r\n isSecondary={true}\r\n onfilter={departmentFilter}\r\n />\r\n\r\n {\r\n }}\r\n title={trans('employment:branch')}\r\n className={\"flex-grow-1 job-dropdown\"}\r\n options={\r\n jobBranches ?\r\n [\r\n ...jobBranches.map((job) => {\r\n return {\r\n text: job.content,\r\n value: job.name\r\n }\r\n })\r\n ]:[]}\r\n isSecondary={true}\r\n onfilter={branchFilter}\r\n />\r\n \r\n {trans(\"form:search\")}\r\n \r\n
    \r\n\r\n\r\n );\r\n}\r\n\r\n","import { Fragment, useEffect, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport Banner from \"../../components/banner\";\r\nimport { Job } from \"./components/job\";\r\nimport Breadcrumb from \"../../components/__simple/breadcrumb\";\r\nimport axios from \"axios\";\r\nimport { useHistory, useLocation, useParams } from \"react-router\";\r\nimport Pagination from \"react-js-pagination\";\r\nimport { JobFilters } from \"./components/filters\";\r\nimport { slugCombine } from '../../utils/slugManager';\r\nimport config from \"../../configuration/config.json\";\r\nimport { Helmet } from \"react-helmet\";\r\nexport function EmploymentPage() {\r\n const { t: trans, i18n } = useTranslation([\"common\", \"heading\", \"inputs\", \"employment\"]);\r\n const { page = 1 } = useParams();\r\n const history = useHistory();\r\n const location = useLocation();\r\n\r\n const query = new URLSearchParams(location.search);\r\n\r\n const [itemCount, setItemCount] = useState(0);\r\n const [banner, setBanner] = useState({});\r\n const [jobs, setJobs] = useState([]);\r\n const [jobDepartments, setJobDepartments] = useState([])\r\n const [jobBranches, setJobBranches] = useState([]);\r\n const [activePage, setActivePage] = useState(0);\r\n const lang = i18n.language;\r\n\r\n const [dept, setDept] = useState(query.get(\"dept\") ?? \"\");\r\n const [branch, setBranch] = useState(query.get(\"branch\") ?? \"\");\r\n\r\n useEffect(async () => {\r\n try {\r\n\r\n try {\r\n if (\"caches\" in window) {\r\n var curl = \"employment-\" + page + dept + branch;\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"HJWeb\");\r\n\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n curl\r\n );\r\n var datacash = await cachedResponse?.json();\r\n\r\n if (datacash) {\r\n setItemCount(datacash.totalItemsCount);\r\n setBanner(datacash.banner);\r\n setJobs(datacash.employments);\r\n setJobDepartments(datacash.jobDepartments);\r\n setJobBranches(datacash.jobBranches);\r\n\r\n }\r\n\r\n\r\n\r\n }\r\n } catch (error) {\r\n\r\n }\r\n\r\n const response = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/employment/employment/\" + page + \"?dept=\" + dept + \"&branch=\" + branch,\r\n method: \"get\",\r\n });\r\n setItemCount(response.data.totalItemsCount);\r\n setBanner(response.data.banner);\r\n setJobs(response.data.employments);\r\n setJobDepartments(response.data.jobDepartments);\r\n setJobBranches(response.data.jobBranches);\r\n\r\n const dataResponse = new Response(JSON.stringify(response.data));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"HJWeb\").then((cache) => {\r\n cache.put(\"employment-\" + page + dept + branch, dataResponse);\r\n\r\n });\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n setActivePage(parseInt(page));\r\n }, [lang, page, location]);\r\n\r\n function departmentFilter(option) {\r\n setDept(option.value);\r\n }\r\n\r\n function branchFilter(option) {\r\n setBranch(option.value);\r\n }\r\n\r\n\r\n const [seoPageInfo, setSeoPageInfo] = useState({});\r\n useEffect(async () => {\r\n\r\n var page = \"Employment\"\r\n\r\n\r\n const response = await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"SiteFetchSeoPages\",\r\n \"Values\": {\r\n \"page\": page\r\n }\r\n }\r\n );\r\n if (response.status == 200) {\r\n\r\n var resdata = response.data[0];\r\n\r\n setSeoPageInfo(resdata);\r\n\r\n\r\n }\r\n }, []);\r\n return (\r\n \r\n\r\n\r\n {\r\n seoPageInfo &&\r\n\r\n \r\n\r\n \r\n {\r\n seoPageInfo?.title &&\r\n {seoPageInfo?.title}\r\n }\r\n {\r\n seoPageInfo?.link &&\r\n \r\n\r\n }\r\n {\r\n seoPageInfo?.MetaDescription &&\r\n \r\n }\r\n {\r\n seoPageInfo?.MetaGroups &&\r\n \r\n }\r\n\r\n \r\n\r\n\r\n }\r\n \r\n\r\n {\r\n history.push(\"/employment/\" + page + \"?dept=\" + dept + \"&branch=\" + branch);\r\n }}\r\n />\r\n
    \r\n\r\n \r\n
    \r\n\r\n {\r\n jobs?.map((job) => {\r\n return (\r\n \r\n\r\n );\r\n })\r\n }\r\n
    \r\n {\r\n itemCount > 10 &&\r\n {\r\n console.log('Page number', number);\r\n history.push(\"/employment/\" + number + \"?dept=\" + dept + \"&branch=\" + branch,);\r\n }}\r\n />\r\n\r\n }\r\n\r\n\r\n
    \r\n
    \r\n );\r\n}","import React, { useRef } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ErrorLabel from '../../components/error';\r\nexport function DateInput2({ name, title, placeholder = '', errorLabel, onSelect, type = \"date\", extraClasses = \"\", value, ...props }) {\r\n const { t: trans, i18n } = useTranslation([\"info\"]);\r\n let lang = i18n.language;\r\n let languageDir = \"language-\" + lang;\r\n const ref = useRef();\r\n return (\r\n\r\n
    \r\n\r\n {\r\n title &&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n}\r\n","import { useEffect, useRef, useState } from \"react\";\r\nimport ErrorLabel from '../../components/error';\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport function RadioInput({ name, title, groupName, selectValue,value1, text1, value2, text2, errorLabel, onChangeValue, disabled = false }) {\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const languageDir = \"language-\" + lang;\r\n const [radioSelectValue, setRadioSelectValue] = useState(selectValue);\r\n useEffect(() => {\r\n setRadioSelectValue(selectValue);\r\n }, [selectValue]);\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n {\r\n value1 != null ?\r\n \r\n :null\r\n }\r\n\r\n {\r\n value2 != null ?\r\n \r\n :null\r\n }\r\n\r\n
    \r\n
    \r\n );\r\n}\r\n","export function UploadControl({ name, errorLabel, title, value, onPicker, accept = '*', placeholder ,extraClasses}) {\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const languageDir = \"language-\" + lang;\r\n return (\r\n \r\n );\r\n}\r\n","import { Fragment, useEffect, useState, useCallback } from \"react\";\r\nimport SwiperCore, { Pagination, Navigation, Autoplay, EffectFade } from \"swiper\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport Banner from \"../../components/banner\";\r\nimport { InputField } from \"../../components/_input/_input\";\r\nimport { TextArea } from \"../../components/_input/_textArea\";\r\nimport { FileInput } from \"../../components/_input/_fileInput\";\r\nimport { DateInput2 as DateInput } from \"../../components/_input/_dateInput_2\";\r\nimport { RadioInput } from \"../../components/_input/_radioInput\";\r\nimport { UploadControl } from \"../../components/_input/_uploadControl\";\r\nimport { DropDownInput } from \"../../components/_input/_dropdown\";\r\nimport { FormButton } from \"../../components/_input/_button\";\r\nimport Breadcrumb from \"../../components/__simple/breadcrumb\";\r\nimport { toast } from 'react-toastify';\r\nimport ErrorLabel from '../../components/error';\r\nimport axios from \"axios\";\r\nimport Joi from \"joi\";\r\nimport { GetMessages, formValidate, } from '../../utils/validation';\r\nimport config from '../../configuration/config.json';\r\nimport { getCleanSlug } from '../../utils/slugManager';\r\nimport PhoneDropDown from \"../../components/_input/_phoneDropDown\";\r\nimport { reverse } from \"lodash\";\r\nimport moment from 'moment';\r\n\r\n\r\nSwiperCore.use([Pagination, Navigation, Autoplay, EffectFade]);\r\n\r\nexport function EmploymentDetailPage() {\r\n const { t: trans, i18n } = useTranslation([\"common\", \"employment\", \"heading\", \"inputs\", \"model\", \"new\"]);\r\n const [requestForm, setRequestForm] = useState({\r\n firstName: '',\r\n lastName: '',\r\n phoneNumber: '',\r\n email: '',\r\n selectedGender: '',\r\n selectedNationality: '',\r\n chooseDateOfBirth: '',\r\n selectedStatus: '',\r\n selectedLanguageLevel: '',\r\n selectedComputerLevel: '',\r\n selectedDegree: '',\r\n chooseGraduation: '',\r\n file: '',\r\n note: ''\r\n });\r\n const [skillsList, setSkillsList] = useState([{}]);\r\n const [certificationList, setCertificationList] = useState([{}]);\r\n const [statusList, setStatusList] = useState({});\r\n const schema = Joi.object({\r\n firstName: Joi.string().required().messages(GetMessages()),\r\n lastName: Joi.string().required().messages(GetMessages()),\r\n email: Joi.string().email({ minDomainSegments: 2, tlds: { allow: false } }).required().messages(GetMessages()),\r\n phoneNumber: Joi.string().min(12).required().messages(GetMessages()),\r\n chooseDateOfBirth: Joi.string().required().messages(GetMessages()),\r\n chooseGraduation: Joi.string().required().messages(GetMessages()),\r\n selectedGender: Joi.string().required().messages(GetMessages()),\r\n selectedNationality: Joi.string().required().messages(GetMessages()),\r\n selectedLanguageLevel: Joi.string().required().messages(GetMessages()),\r\n selectedComputerLevel: Joi.string().required().messages(GetMessages()),\r\n selectedDegree: Joi.string().required().messages(GetMessages()),\r\n selectedStatus: Joi.string().required().messages(GetMessages()),\r\n file: Joi.string().required().messages(GetMessages()),\r\n });\r\n const [error, setError] = useState({});\r\n const [nationalitiesList, setNationalities] = useState([{}]);\r\n const [gender, setGender] = useState({});\r\n const [employment, setEmployment] = useState({ title: \"\" });\r\n const lang = i18n.language;\r\n const languageDir = 'language-' + lang;\r\n const toBase64 = file => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => resolve(reader.result);\r\n reader.onerror = error => reject(error);\r\n });\r\n const getYears = (start, end) => {\r\n let result = [];\r\n for (let index = start; index <= end; index++) {\r\n result.push({\r\n value: String(index), text: String(index)\r\n });\r\n }\r\n return reverse(result);\r\n };\r\n\r\n const [isLoadingBtnSend, setIsLoadingBtnSend] = useState(false);\r\n const submitRequest = async (e) => {\r\n e.preventDefault();\r\n const result = formValidate(schema, requestForm) ?? {};\r\n setError(result);\r\n try {\r\n if (Object.keys(result).length === 0 && isLoadingBtnSend ==false) {\r\n setIsLoadingBtnSend(true);\r\n if (!(await isDataSentBefore(requestForm.email, requestForm.phoneNumber))) {\r\n \r\n const response = await axios.post(\r\n config.baseURL + 'add',\r\n {\r\n \"object\": \"siteEmployment_applyments\",\r\n \"values\": {\r\n \"employmentId\": parseInt(employment.id),\r\n \"firstName\": requestForm.firstName,\r\n \"lastName\": requestForm.lastName,\r\n \"phoneNumber\": requestForm.phoneNumber,\r\n \"email\": requestForm.email,\r\n \"nationality\": requestForm.selectedNationality,\r\n \"brithDate\": requestForm.chooseDateOfBirth,\r\n \"gender\": requestForm.selectedGender,\r\n \"maritalStatus\": requestForm.selectedStatus,\r\n \"englishLevel\": requestForm.selectedLanguageLevel,\r\n \"computerLevel\": requestForm.selectedComputerLevel,\r\n \"degree\": requestForm.selectedDegree,\r\n \"graduationYear\": parseInt(requestForm.chooseGraduation),\r\n \"notes\": requestForm.note,\r\n \"cvFile\": requestForm.file,\r\n \"PositionID\":employment.positionId ? parseInt(employment.positionId):null\r\n // \"ApplyDate\": moment().format('YYYY-MM-DD HH:mm:ss.SSS')\r\n }\r\n }\r\n );\r\n if (response.status === 200 || response.status === 201) {\r\n setIsLoadingBtnSend(false);\r\n const defaultValue = { ...requestForm };\r\n setRequestForm({\r\n firstName: '',\r\n lastName: '',\r\n phoneNumber: '',\r\n email: '',\r\n selectedGender: defaultValue.selectedGender,\r\n selectedNationality: defaultValue.selectedNationality,\r\n chooseDateOfBirth: '',\r\n selectedStatus: defaultValue.selectedStatus,\r\n selectedLanguageLevel: defaultValue.selectedLanguageLevel,\r\n selectedComputerLevel: defaultValue.selectedComputerLevel,\r\n selectedDegree: defaultValue.selectedDegree,\r\n chooseGraduation: defaultValue.chooseGraduation,\r\n file: defaultValue.file,\r\n note: ''\r\n });\r\n setError({});\r\n toast.success(trans(\"employment:success_employment_success\"));\r\n //alert(trans(\"employment:success_employment_success\"));\r\n }else {\r\n setIsLoadingBtnSend(false);\r\n }\r\n } else {\r\n setIsLoadingBtnSend(false);\r\n toast.error(trans(\"employment:data-sent-before\"));\r\n }\r\n }\r\n } catch (e) {\r\n setIsLoadingBtnSend(false);\r\n console.log(e);\r\n }\r\n\r\n };\r\n const isDataSentBefore = async (email, phone) => {\r\n let isExisted = false;\r\n try {\r\n const response = await axios.post(\r\n config.baseURL + \"details\",\r\n {\r\n \"Object\": \"siteEmployment_applyments\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n },\r\n // \"Filters\": `Where employmentId = ${parseInt(employment.id)} and (email = '${email}' or phoneNumber = '${phone}') and PositionID =${parseInt(employment.positionId)} `\r\n \"Filters\": `Where (email = '${email}' or phoneNumber = '${phone}') `\r\n }\r\n );\r\n if (response.status == 200) {\r\n isExisted = response.data.ApiObjectData.length > 0;\r\n }\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n return isExisted;\r\n };\r\n useEffect(() => {\r\n callback();\r\n }, []);\r\n\r\n const callback = useCallback(async () => {\r\n try {\r\n\r\n const response = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/employment/detail/\" + getCleanSlug(),\r\n method: \"get\",\r\n });\r\n\r\n console.log('res', response);\r\n\r\n setEmployment(response.data)\r\n\r\n const nationalitiesResponse = await axios.post(\r\n config.baseURL + 'details',\r\n {\r\n \"object\": \"Sys_Nationalities\",\r\n \"objectSettings\": {\r\n \"MetaData\": false\r\n },\r\n \"option\": \"column\",\r\n \"fields\": \"ID,DescriptionAr,DescriptionEn\"\r\n }\r\n );\r\n if (nationalitiesResponse?.data?.ApiObjectData[0])\r\n setNationalities(nationalitiesResponse.data.ApiObjectData.map(e => ({ value: String(e['ID']), text: e[`${trans(\"model:description\")}`] })));\r\n //************************************************************************************************************************\r\n const genderResponse = await axios.post(\r\n config.baseURL + 'details',\r\n {\r\n \"object\": \"SYS_LookUpDetails\",\r\n \"objectSettings\": {\r\n \"MetaData\": false\r\n },\r\n \"option\": \"column\",\r\n \"fields\": \"ID,DescriptionAr,DescriptionEn\",\r\n \"Filters\": \"where lookupID = 'Gender' \"\r\n }\r\n );\r\n //*************************************************************************************************************************\r\n if (genderResponse?.data?.ApiObjectData[0])\r\n setGender({ value1: genderResponse.data.ApiObjectData[0].ID, value2: genderResponse.data.ApiObjectData[1].ID });\r\n\r\n const skillsResponse = await axios.post(\r\n config.baseURL + 'details',\r\n {\r\n \"object\": \"SiteSkillsLevel\",\r\n \"objectSettings\": {\r\n \"MetaData\": false\r\n },\r\n \"option\": \"column\",\r\n \"fields\": \"ID,DescriptionAr,DescriptionEn\"\r\n }\r\n );\r\n console.log('skills', skillsResponse);\r\n //***************************************************************************************************************************\r\n if (skillsResponse?.data?.ApiObjectData)\r\n setSkillsList(skillsResponse.data.ApiObjectData.map(e => ({ value: String(e['ID']), text: e[`${trans(\"model:description\")}`] })));\r\n //*************************************************************************************************************************\r\n const certificationResponse = await axios.post(\r\n config.baseURL + 'details',\r\n {\r\n \"object\": \"SiteCertificateLevel\",\r\n \"objectSettings\": {\r\n \"MetaData\": false\r\n },\r\n \"option\": \"column\",\r\n \"fields\": \"ID,DescriptionAr,DescriptionEn\"\r\n }\r\n );\r\n setCertificationList(certificationResponse.data.ApiObjectData.map(e => ({ value: String(e['ID']), text: e[`${trans(\"model:description\")}`] })));\r\n //*************************************************************************************************************************\r\n const statusResponse = await axios.post(\r\n config.baseURL + 'details',\r\n {\r\n \"object\": \"SYS_LookUpDetails\",\r\n \"objectSettings\": {\r\n \"MetaData\": false\r\n },\r\n \"option\": \"column\",\r\n \"fields\": \"ID,DescriptionAr,DescriptionEn\",\r\n \"Filters\": \"where lookupID = 'Marital Status'\"\r\n }\r\n );\r\n setStatusList({ value1: statusResponse.data.ApiObjectData[0].ID, value2: statusResponse.data.ApiObjectData[1].ID });\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }, [lang]);\r\n\r\n return (\r\n \r\n\r\n \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n {trans(\"employment:roles\")}\r\n
    \r\n {\r\n\r\n employment?.role &&\r\n
      \" + employment.role?.replaceAll(\"\\n\", \"
    • \") + \"
    • \"\r\n }}>\r\n\r\n
    \r\n }\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n {trans(\"employment:skills\")}\r\n
    \r\n\r\n {\r\n employment?.skill &&\r\n
      \" + employment.skill?.replaceAll(\"\\n\\n\", \"\\n\").replaceAll(\"\\n\", \"
    • \") + \"
    • \"\r\n }}>\r\n\r\n
    \r\n }\r\n\r\n\r\n\r\n
    \r\n\r\n
    \r\n
    \r\n {trans(\"employment:additional\")}\r\n
    \r\n\r\n {\r\n employment?.additional &&\r\n
      \" + employment.additional?.replaceAll(\"\\n\\n\", \"\\n\").replaceAll(\"\\n\", \"
    • \") + \"
    • \"\r\n }}>\r\n\r\n
    \r\n }\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {\r\n submitRequest(e);\r\n }}>\r\n {\r\n const val = { ...requestForm };\r\n val.firstName = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n name='firstName'\r\n />\r\n {\r\n const val = { ...requestForm };\r\n val.lastName = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n errorLabel={error.lastName}\r\n name='lastName'\r\n />\r\n {\r\n const val = { ...requestForm };\r\n val.phoneNumber = `+${countryCode}${phoneNumber}`;\r\n setRequestForm(val);\r\n }}\r\n\r\n />\r\n\r\n {\r\n const val = { ...requestForm };\r\n val.email = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n errorLabel={error.email}\r\n name='email'\r\n />\r\n
    \r\n {\r\n const val = { ...requestForm };\r\n val.selectedGender = String(e);\r\n setRequestForm(val);\r\n console.log(e);\r\n }}\r\n name=\"selectedGender\"\r\n groupName=\"Gender\"\r\n title={trans(\"employment:type\")}\r\n value1={gender.value1}\r\n text1={trans(\"employment:man\")}\r\n text2={trans(\"employment:female\")}\r\n value2={gender.value2}\r\n errorLabel={error.selectedGender}\r\n />\r\n {\r\n const val = { ...requestForm };\r\n val.selectedStatus = String(e);\r\n setRequestForm(val);\r\n console.log(e);\r\n }\r\n }\r\n name=\"selectedStatus\"\r\n groupName=\"SocialStatus\"\r\n title={trans(\"employment:state\")}\r\n text1={trans(\"employment:marred\")}\r\n value1={statusList.value1}\r\n text2={trans(\"employment:single\")}\r\n value2={statusList.value2}\r\n errorLabel={error.selectedStatus}\r\n />\r\n
    \r\n {\r\n const val = { ...requestForm };\r\n val.selectedNationality = String(e);\r\n console.log(e);\r\n setRequestForm(val);\r\n }}\r\n name='selectedNationality'\r\n className={\"flex-grow-1\"}\r\n placeholder={trans(\"employment:nationalte\")}\r\n options={[...nationalitiesList]}\r\n errorLabel={error.selectedNationality}\r\n defaultOption={{ value: \"SAU\", text: lang == \"ar\" ? \"سعودي / سعودية\" : \"Kingdom of Saudi Arabia\" }}\r\n\r\n\r\n />\r\n {\r\n const val = { ...requestForm };\r\n val.chooseDateOfBirth = e.target.value;\r\n setRequestForm(val);\r\n }\r\n }\r\n name='chooseDateOfBirth'\r\n placeholder={trans(\"employment:birthday\")}\r\n\r\n errorLabel={error.chooseDateOfBirth}\r\n />\r\n\r\n\r\n {\r\n const val = { ...requestForm };\r\n val.selectedLanguageLevel = String(e);\r\n setRequestForm(val);\r\n }}\r\n name='selectedLanguageLevel'\r\n className={\"flex-grow-1\"}\r\n options={[...skillsList]}\r\n errorLabel={error.selectedLanguageLevel}\r\n />\r\n\r\n {\r\n const val = { ...requestForm };\r\n val.selectedComputerLevel = String(e);\r\n setRequestForm(val);\r\n }}\r\n name='selectedComputerLevel'\r\n className={\"flex-grow-1 \"}\r\n options={[...skillsList]}\r\n errorLabel={error.selectedComputerLevel}\r\n />\r\n {\r\n const val = { ...requestForm };\r\n val.selectedDegree = String(e);\r\n setRequestForm(val);\r\n }}\r\n name='selectedDegree'\r\n className={\"flex-grow-1\"}\r\n options={[...certificationList]}\r\n errorLabel={error.selectedDegree}\r\n />\r\n {\r\n const val = { ...requestForm };\r\n val.chooseGraduation = String(e);\r\n setRequestForm(val);\r\n }}\r\n className={\"flex-grow-1\"}\r\n errorLabel={error.chooseGraduation}\r\n name='chooseGraduation'\r\n options={[...getYears(1960, new Date().getFullYear())]}\r\n />\r\n {/* {\r\n if (e.target.value.length > 0) {\r\n let file = e.target.files[0];\r\n const size = file.size;\r\n const finalCheck = Math.round((size / 1024));\r\n if (finalCheck >= 4096) {\r\n toast.error(trans('new:file_size_error'));\r\n return;\r\n }\r\n const val = { ...requestForm };\r\n const fileBase64 = await toBase64(file);\r\n const finalFile = fileBase64.substr(fileBase64.indexOf(',') + 1, fileBase64.length);\r\n val.file = finalFile;\r\n setRequestForm(val);\r\n }\r\n }\r\n }\r\n name='file'\r\n title={trans(\"employment:fileCV\")}\r\n /> */}\r\n\r\n\r\n
    \r\n\r\n {/* */}\r\n {\r\n const { target } = e;\r\n const { files } = target;\r\n const loadedImage = files[0];\r\n\r\n // loadedImage will be a image file.\r\n if (target.value && loadedImage?.name) {\r\n const size = loadedImage.size;\r\n const finalCheck = Math.round((size / 1024));\r\n if (finalCheck >= 4096) {\r\n toast.error(trans('new:file_size_error'));\r\n return;\r\n }\r\n\r\n const val = { ...requestForm };\r\n val.fileName = loadedImage?.name;\r\n const fileBase64 = await toBase64(loadedImage);\r\n const finalFile = fileBase64.substr(fileBase64.indexOf(',') + 1, fileBase64.length);\r\n val.file = finalFile;\r\n setRequestForm(val);\r\n } else {\r\n const val = { ...requestForm };\r\n val.file = \"\";\r\n val.fileName = \"\";\r\n setRequestForm(val);\r\n }\r\n }} accept=\"*\" />\r\n
    \r\n\r\n {\r\n const val = { ...requestForm };\r\n val.note = e;\r\n setRequestForm(val);\r\n }\r\n }\r\n name='note'\r\n placeholder={trans(\"employment:note\")}\r\n />\r\n \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n );\r\n}\r\n","import ErrorLabel from '../../components/error';\r\nimport { useEffect, useState } from \"react\";\r\nexport function RadioInputDynamic({ name, title, selectValue, groupName, ListValues, errorLabel, onChangeValue, disabled = false }) {\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const languageDir = \"language-\" + lang;\r\n const [radioSelectValue, setRadioSelectValue] = useState(selectValue);\r\n useEffect(() => {\r\n setRadioSelectValue(selectValue);\r\n }, [selectValue]);\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n {ListValues?.map((item, index) => (\r\n item && (\r\n \r\n )\r\n ))}\r\n
    \r\n
    \r\n );\r\n}\r\n","import React, { Fragment, useEffect, useState, useCallback } from \"react\";\r\nimport SwiperCore, { Pagination, Navigation, Autoplay, EffectFade } from \"swiper\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useParams, useHistory, useLocation } from \"react-router-dom\";\r\nimport { InputField } from \"../../components/_input/_input\";\r\nimport { DateInput2 as DateInput } from \"../../components/_input/_dateInput_2\";\r\nimport { RadioInput } from \"../../components/_input/_radioInput\";\r\nimport { RadioInputDynamic } from \"../../components/_input/_radioInputDynamic\";\r\nimport { DropDownInput } from \"../../components/_input/_dropdown\";\r\nimport { FormButton } from \"../../components/_input/_button\";\r\nimport Breadcrumb from \"../../components/__simple/breadcrumb\";\r\nimport { toast } from 'react-toastify';\r\nimport axios from \"axios\";\r\nimport { TextArea } from \"../../components/_input/_textArea\";\r\nimport Popup from \"../../User/popup\";\r\nimport Joi from \"joi\";\r\nimport moment from \"moment\";\r\nimport { GetMessages, formValidate, } from '../../utils/validation';\r\nimport config from '../../configuration/config.json';\r\nimport PhoneDropDown from \"../../components/_input/_phoneDropDown\";\r\nimport { reverse } from \"lodash\";\r\nSwiperCore.use([Pagination, Navigation, Autoplay, EffectFade]);\r\n\r\nexport function EmploymentApplicationFormPage() {\r\n const { id } = useParams();\r\n const location = useLocation();\r\n const query = new URLSearchParams(location.search);\r\n const { t: trans, i18n } = useTranslation([\"common\", \"employment\", \"heading\", \"inputs\", \"model\", \"new\"]);\r\n const [showFinalPopup, setShowFinalPopup] = useState(false);\r\n const [showFinalPopupMessage, setShowFinalPopupMessage] = useState(\"\");\r\n const [requestForm, setRequestForm] = useState({ selectedNationality: \"SAU\" });\r\n const [skillsList, setSkillsList] = useState([{}]);\r\n const [certificationList, setCertificationList] = useState([{}]);\r\n const [statusList, setStatusList] = useState({});\r\n const [phoneNumberApplicants, setPhoneNumberApplicants] = useState([]);\r\n const [emailApplicants, setEmailApplicants] = useState([]);\r\n const [reject, setReject] = useState(true);\r\n const history = useHistory();\r\n const formatDate = { year: 'numeric', month: '2-digit', day: '2-digit', weekday: \"long\", hour: '2-digit', hour12: true, minute: '2-digit' };\r\n const schema_Reject = Joi.object({\r\n note: Joi.string().required().messages(GetMessages()),\r\n phoneNumber: Joi.string().min(12).required().messages(GetMessages()),\r\n });\r\n const schema_1 = Joi.object({\r\n name: Joi.string().required().messages(GetMessages()),\r\n email: Joi.string().email({ minDomainSegments: 2, tlds: { allow: false } }).required().messages(GetMessages()),\r\n phoneNumber: Joi.string().min(12).required().messages(GetMessages()),\r\n cardNumber: Joi.string().min(10).required().messages(GetMessages()),\r\n cardExpiryDate: Joi.string().required().messages(GetMessages()),\r\n placeResidence: Joi.string().required().messages(GetMessages()),\r\n numberWives: Joi.string().required().messages(GetMessages()),\r\n numberChildren: Joi.string().required().messages(GetMessages()),\r\n chooseDateOfBirth: Joi.string().required().messages(GetMessages()),\r\n selectedStatus: Joi.string().required().messages(GetMessages()),\r\n selectedGender: Joi.string().required().messages(GetMessages()),\r\n selectedjob: Joi.string().required().messages(GetMessages()),\r\n dateReadyToJob: Joi.string().required().messages(GetMessages()),\r\n workedOurCompany: Joi.string().required().messages(GetMessages()),\r\n salaryToFrenchBank: Joi.string().required().messages(GetMessages()),\r\n socialSecurity: Joi.string().required().messages(GetMessages()),\r\n medicalInsurance: Joi.string().required().messages(GetMessages()),\r\n applyVia: Joi.string().required().messages(GetMessages()),\r\n selectedNationality: Joi.string().required().messages(GetMessages()),\r\n City: Joi.string().required().messages(GetMessages()),\r\n\r\n });\r\n const schema_2 = Joi.object({\r\n\r\n durationStudy: Joi.string().required().messages(GetMessages()),\r\n specialty: Joi.string().required().messages(GetMessages()),\r\n yearOuter: Joi.string().required().messages(GetMessages()),\r\n scientificCertificate: Joi.string().required().messages(GetMessages()),\r\n });\r\n const schema_3 = Joi.object({\r\n\r\n });\r\n const schema_4 = Joi.object({\r\n chooseGraduation: Joi.string().required().messages(GetMessages()),\r\n selectedLanguageLevel: Joi.string().required().messages(GetMessages()),\r\n selectedComputerLevel: Joi.string().required().messages(GetMessages()),\r\n selectedDegree: Joi.string().required().messages(GetMessages()),\r\n DealingWithOthers: Joi.string().required().messages(GetMessages()),\r\n\r\n });\r\n const [error, setError] = useState({});\r\n const [nationalitiesList, setNationalities] = useState([{}]);\r\n const [SYS_Cities, setSYS_Cities] = useState([]);\r\n const [filteredCities, setFilteredCities] = useState([]);\r\n const [gender, setGender] = useState({});\r\n const [employment, setEmployment] = useState(null);\r\n const lang = i18n.language;\r\n const languageDir = 'language-' + lang;\r\n\r\n const [dataFullNum, setDataFullNum] = useState(0);\r\n const [stepNum, setStepNum] = useState(1);\r\n\r\n const getYears = (start, end) => {\r\n let result = [];\r\n for (let index = start; index <= end; index++) {\r\n result.push({\r\n value: String(index), text: String(index)\r\n });\r\n }\r\n return reverse(result);\r\n };\r\n const [allYear, setAllYear] = useState(getYears(1960, new Date().getFullYear()));\r\n const [isLoadingBtnSend, setIsLoadingBtnSend] = useState(false);\r\n const [interviewData, setInterviewData] = useState({});\r\n const [interviewApplicantsData, setInterviewApplicantsData] = useState([]);\r\n useEffect(async () => {\r\n GetinterviewApplicants();\r\n }, []);\r\n useEffect(async () => {\r\n if (phoneNumberApplicants && phoneNumberApplicants.length > 0 && query.get(\"ph\")) {\r\n const val = { ...requestForm };\r\n\r\n\r\n var queryPhone = query.get(\"ph\").trim();\r\n val.phoneNumber = queryPhone.startsWith('+') ? queryPhone : \"+\" + queryPhone;\r\n setDefultEmailandName(val.phoneNumber);\r\n }\r\n }, [phoneNumberApplicants]);\r\n const [OTP, setOTP] = useState(\"\");\r\n const submitRequest = async (e) => {\r\n e.preventDefault();\r\n\r\n var seccessSteps = await checkStepsErrors();\r\n\r\n try {\r\n if (seccessSteps >= 4) {\r\n if (!(await isDataSentBefore(requestForm.email, requestForm.phoneNumber))) {\r\n\r\n const employmentId = jobs.find(j => j.positionId == requestForm.selectedjob)?.id;\r\n\r\n const OTPNumber = Math.floor(100 + Math.random() * 900);\r\n const OTPString = interviewData?.interviewID + OTPNumber.toString();\r\n setOTP(OTPString);\r\n setIsLoadingBtnSend(true);\r\n const response = await axios.post(\r\n config.baseURL + 'add',\r\n {\r\n \"object\": \"siteEmployment_application\",\r\n \"values\": {\r\n \"name\": requestForm.name,\r\n \"phoneNumber\": requestForm.phoneNumber,\r\n \"email\": requestForm.email,\r\n \"nationality\": requestForm.selectedNationality,\r\n \"city\": requestForm.City,\r\n \"cardNumber\": requestForm.cardNumber,\r\n \"cardExpiryDate\": requestForm.cardExpiryDate,\r\n \"placeResidence\": requestForm.placeResidence,\r\n \"numberWives\": parseInt(requestForm.numberWives),\r\n \"numberChildren\": parseInt(requestForm.numberChildren),\r\n \"brithDate\": requestForm.chooseDateOfBirth,\r\n \"gender\": requestForm.selectedGender,\r\n \"maritalStatus\": requestForm.selectedStatus,\r\n \"employmentId\": parseInt(employmentId),\r\n \"dateReadyToJob\": requestForm.dateReadyToJob,\r\n \"applyVia\": requestForm.applyVia,\r\n \"workedOurCompany\": requestForm.workedOurCompany == 1 ? true : false,\r\n \"salaryToFrenchBank\": requestForm.salaryToFrenchBank == 1 ? true : false,\r\n \"socialSecurity\": requestForm.socialSecurity == 1 ? true : false,\r\n \"medicalInsurance\": requestForm.medicalInsurance == 1 ? true : false,\r\n //---------------------------------------------------\r\n \"englishLevel\": requestForm.selectedLanguageLevel,\r\n \"computerLevel\": requestForm.selectedComputerLevel,\r\n \"degree\": requestForm.selectedDegree,\r\n \"graduationYear\": parseInt(requestForm.chooseGraduation),\r\n \"dealingWithOthers\": requestForm.DealingWithOthers,\r\n \"PositionID\": requestForm.selectedjob ? parseInt(requestForm.selectedjob) : null,\r\n \"interviewID\": interviewData?.interviewID,\r\n \"OTP\": OTPString\r\n }\r\n }\r\n );\r\n if (response.status === 200 || response.status === 201) {\r\n\r\n var maxID = await getMaxData(requestForm.email, requestForm.phoneNumber);\r\n\r\n\r\n if (maxID) {\r\n inputFields_2?.forEach((val, index) => {\r\n\r\n submitRequestCertificates(val, maxID);\r\n });\r\n\r\n inputFields?.forEach((val, index) => {\r\n\r\n submitRequestworkExperience(val, maxID);\r\n });\r\n\r\n }\r\n\r\n setIsLoadingBtnSend(false);\r\n setRequestForm({ selectedNationality: \"SAU\" });\r\n setStepNum(1);\r\n setDataFullNum(0);\r\n setError({});\r\n setInputFields([{}]);\r\n setInputFields_2([{}]);\r\n toast.success(trans(\"employment:success_employment_success\"));\r\n setShowFinalPopup(true);\r\n setShowFinalPopupMessage(trans(\"employment:success_employment_success\"));\r\n //alert(trans(\"employment:success_employment_success\"));\r\n } else {\r\n setIsLoadingBtnSend(false);\r\n }\r\n } else {\r\n setIsLoadingBtnSend(false);\r\n setShowFinalPopup(true);\r\n setShowFinalPopupMessage(trans(\"employment:data-sent-before\"));\r\n }\r\n }\r\n } catch (e) {\r\n setIsLoadingBtnSend(false);\r\n console.log(e);\r\n }\r\n\r\n };\r\n const submitRejectRequest = async (e) => {\r\n e.preventDefault();\r\n var result = formValidate(schema_Reject, requestForm) ?? {};\r\n\r\n setError(result);\r\n\r\n if (Object.keys(result).length === 0) {\r\n\r\n if (requestForm.phoneNumber != null && !phoneNumberApplicants.includes(requestForm.phoneNumber)) {\r\n setError({ ...result, phoneNumber: trans(\"employment:The_mobile_number_not_on_list\") });\r\n return;\r\n }\r\n\r\n\r\n try {\r\n\r\n const response = await axios.put(\r\n\r\n config.baseURL + 'update',\r\n {\r\n \"object\": \"siteEmployment_interview_applicants\",\r\n \"values\": {\r\n \"isRejection\": true,\r\n \"rejectionReason\": requestForm?.note\r\n // attendanceDateTime\r\n\r\n },\r\n \"Filters\": `Where phoneNumber = '${requestForm.phoneNumber}' `\r\n }\r\n );\r\n if (response.status == 200) {\r\n setShowFinalPopup(true);\r\n setShowFinalPopupMessage(trans(\"employment:Rejection_confirmed\"));\r\n } else {\r\n setIsLoadingBtnSend(false);\r\n }\r\n } catch (err) {\r\n console.log(\"isDataSentBefore catch\", err);\r\n setIsLoadingBtnSend(false);\r\n }\r\n }\r\n };\r\n const submitRequestCertificates = async (CertificateObject, applicationID) => {\r\n\r\n try {\r\n if (CertificateObject.scientificCertificate && CertificateObject.yearOuter && CertificateObject.specialty) {\r\n const response = await axios.post(\r\n config.baseURL + 'add',\r\n {\r\n \"object\": \"siteEmployment_application_certificates\",\r\n \"values\": {\r\n \"scientificCertificate\": CertificateObject.scientificCertificate,\r\n \"yearOuter\": CertificateObject.yearOuter,\r\n \"specialty\": CertificateObject.specialty,\r\n \"durationStudy\": CertificateObject.durationStudy,\r\n \"applicationID\": parseInt(applicationID)\r\n }\r\n }\r\n );\r\n if (response.status === 200 || response.status === 201) {\r\n\r\n\r\n\r\n } else {\r\n }\r\n }\r\n\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n\r\n };\r\n\r\n const submitRequestworkExperience = async (workExperienceObject, applicationID) => {\r\n\r\n try {\r\n if (workExperienceObject.employer && workExperienceObject.durationemploy && workExperienceObject.JobTitle\r\n && workExperienceObject.JobTitle\r\n ) {\r\n const response = await axios.post(\r\n config.baseURL + 'add',\r\n {\r\n \"object\": \"siteEmployment_application_workExperience\",\r\n \"values\": {\r\n \"employer\": workExperienceObject.employer,\r\n \"durationemploy\": workExperienceObject.durationemploy,\r\n \"JobTitle\": workExperienceObject.JobTitle,\r\n \"lastSalary\": workExperienceObject.lastSalary,\r\n \"reasonLeaving\": workExperienceObject.reasonLeaving,\r\n \"applicationID\": parseInt(applicationID)\r\n }\r\n }\r\n );\r\n if (response.status === 200 || response.status === 201) {\r\n\r\n\r\n\r\n } else {\r\n }\r\n }\r\n\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n\r\n };\r\n const getMaxData = async (email, phone) => {\r\n let maxID = null;\r\n try {\r\n const response = await axios.post(\r\n config.baseURL + \"details\",\r\n {\r\n \"Object\": \"siteEmployment_application\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n },\r\n \"Fields \": \"*\",\r\n \"Filters\": `Where employmentId = ${parseInt(employment?.id)} and (email = '${email}' or phoneNumber = '${phone}') and PositionID =${parseInt(employment?.positionId)} and applicationID = (\r\n SELECT MAX(applicationID)\r\n FROM siteEmployment_application\r\n) `\r\n }\r\n );\r\n if (response.status == 200) {\r\n if (response.data.ApiObjectData.length > 0) {\r\n\r\n maxID = response.data.ApiObjectData[0].applicationID;\r\n }\r\n }\r\n } catch (err) {\r\n console.log(\"isDataSentBefore catch\", err);\r\n }\r\n return maxID;\r\n };\r\n\r\n const GetinterviewApplicants = async () => {\r\n try {\r\n\r\n axios.post(\r\n config.baseURL + \"func\",\r\n {\r\n \"name\": \"SiteGetinterview_applicants\",\r\n \"Values\": {\r\n \"GUID\": id,\r\n\r\n }\r\n }\r\n ).then(response => {\r\n const result = response.data;\r\n\r\n var interviewData = {};\r\n if (result && result.length > 0) {\r\n setInterviewApplicantsData(result);\r\n interviewData = result[0];\r\n try {\r\n interviewData[\"interviewDateFormat\"] = new Date(interviewData?.interviewDate).toLocaleDateString(lang + '-US', formatDate);\r\n } catch (error) {\r\n\r\n }\r\n setInterviewData(interviewData);\r\n const date = new Date();\r\n\r\n const stardate = new Date(interviewData.startDate);\r\n const diffTime22 = date - stardate;\r\n const diffDays22 = Math.ceil(diffTime22 / (1000 * 60 * 60 * 24));\r\n\r\n if (diffDays22 <= 0 && diffTime22 <= 0) {\r\n setShowFinalPopupMessage(trans(\"employment:The_application_deadline_has_not_yet_begun\"));\r\n setShowFinalPopup(true);\r\n return;\r\n }\r\n const date1 = new Date(interviewData.endDate);\r\n const diffTime = date1 - date;\r\n const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));\r\n\r\n if (diffDays <= 0 && diffTime <= 0) {\r\n setShowFinalPopupMessage(trans(\"employment:Application_deadline_has_expired\"));\r\n setShowFinalPopup(true);\r\n return;\r\n }\r\n var phoneNumberApplicants = result.map(i => { return i.phoneNumber });\r\n setPhoneNumberApplicants(phoneNumberApplicants);\r\n\r\n callback();\r\n } else {\r\n setShowFinalPopupMessage(trans(\"employment:The_page_link_is_incorrect\"));\r\n setShowFinalPopup(true);\r\n }\r\n\r\n }).catch(error => {\r\n setShowFinalPopupMessage(trans(\"employment:The_page_link_is_incorrect\"));\r\n setShowFinalPopup(true);\r\n });\r\n\r\n\r\n } catch (err) {\r\n console.log(\"isDataSentBefore catch\", err);\r\n }\r\n };\r\n const [applymentsData, setApplymentsData] = useState({});\r\n const GetEmployment_applymentsData = async (mobile, val) => {\r\n try {\r\n setApplymentsData({});\r\n axios.post(config.baseURL + \"details\",\r\n {\r\n \"Object\": \"siteEmployment_applyments\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n },\r\n \"Filters\": `Where phoneNumber = '${mobile}' `\r\n }\r\n ).then(response => {\r\n const result = response?.data?.ApiObjectData;\r\n if (result && result.length > 0) {\r\n\r\n var appData = result[0];\r\n val.selectedStatus = appData.maritalStatus;\r\n val.name = appData.firstName + \" \" + appData.lastName;\r\n val.email = appData.email;\r\n val.nationality = appData.nationality;\r\n val.brithDate = appData.brithDate;\r\n val.selectedGender = appData.gender;\r\n val.selectedjob = interviewData?.PositionID ? interviewData?.PositionID.toString() : appData?.positionId?.toString();\r\n val.selectedLanguageLevel = appData.englishLevel;\r\n val.selectedComputerLevel = appData.computerLevel;\r\n val.selectedDegree = appData.degree;\r\n val.chooseGraduation = appData.graduationYear?.toString();\r\n\r\n val.medicalInsurance = appData.maritalStatus == 1029 ? \"0\" : undefined;;\r\n val.numberChildren = appData.maritalStatus == 1029 ? \"0\" : \"\";\r\n val.numberWives = appData.maritalStatus == 1029 ? \"0\" : \"\";\r\n\r\n setRequestForm(val);\r\n setApplymentsData(appData);\r\n }\r\n\r\n }).catch(error => {\r\n\r\n });\r\n\r\n\r\n } catch (err) {\r\n console.log(\"isDataSentBefore catch\", err);\r\n }\r\n };\r\n\r\n const isDataSentBefore = async (email, phone) => {\r\n let isExisted = true;\r\n try {\r\n const response = await axios.post(\r\n config.baseURL + \"details\",\r\n {\r\n \"Object\": \"siteEmployment_application\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n },\r\n \"Filters\": `Where interviewID = ${interviewData?.interviewID} and phoneNumber = '${phone}' `\r\n }\r\n );\r\n if (response.status == 200) {\r\n isExisted = response.data.ApiObjectData.length > 0;\r\n }\r\n } catch (err) {\r\n console.log(\"isDataSentBefore catch\", err);\r\n }\r\n return isExisted;\r\n };\r\n const [jobs, setJobs] = useState([]);\r\n\r\n\r\n const callback = useCallback(async () => {\r\n\r\n\r\n try {\r\n var page = 1;\r\n try {\r\n if (\"caches\" in window) {\r\n var curl = \"employment-\" + page;\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"HJWeb\");\r\n\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n curl\r\n );\r\n var datacash = await cachedResponse?.json();\r\n\r\n if (datacash) {\r\n setJobs(datacash.employments);\r\n }\r\n\r\n\r\n\r\n }\r\n } catch (error) {\r\n\r\n }\r\n\r\n const response = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/employment/employment/\" + page,\r\n method: \"get\",\r\n });\r\n\r\n setJobs(response.data.employments);\r\n\r\n const dataResponse = new Response(JSON.stringify(response.data));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"HJWeb\").then((cache) => {\r\n cache.put(\"employment-\" + page, dataResponse);\r\n\r\n });\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n\r\n\r\n\r\n try {\r\n\r\n const SYS_CitiesResponse = await axios.post(\r\n config.baseURL + 'details',\r\n {\r\n \"object\": \"SYS_Cities\",\r\n \"objectSettings\": {\r\n \"MetaData\": false\r\n },\r\n \"option\": \"column\",\r\n \"fields\": \"ID,CountryID,DescriptionAr,DescriptionEn\"\r\n }\r\n );\r\n if (SYS_CitiesResponse?.data?.ApiObjectData[0]) {\r\n const Cities = SYS_CitiesResponse.data.ApiObjectData.map(e => ({ value: String(e['ID']), text: e[`${trans(\"model:description\")}`], ...e }));\r\n setSYS_Cities(Cities);\r\n setFilteredCities(Cities?.filter(item => {\r\n return item.CountryID == \"SAU\"\r\n }));\r\n }\r\n //********************\r\n const nationalitiesResponse = await axios.post(\r\n config.baseURL + 'details',\r\n {\r\n \"object\": \"Sys_Nationalities\",\r\n \"objectSettings\": {\r\n \"MetaData\": false\r\n },\r\n \"option\": \"column\",\r\n \"fields\": \"ID,DescriptionAr,DescriptionEn\"\r\n }\r\n );\r\n if (nationalitiesResponse?.data?.ApiObjectData[0])\r\n setNationalities(nationalitiesResponse.data.ApiObjectData.map(e => ({ value: String(e['ID']), text: e[`${trans(\"model:description\")}`] })));\r\n //************************************************************************************************************************\r\n const genderResponse = await axios.post(\r\n config.baseURL + 'details',\r\n {\r\n \"object\": \"SYS_LookUpDetails\",\r\n \"objectSettings\": {\r\n \"MetaData\": false\r\n },\r\n \"option\": \"column\",\r\n \"fields\": \"ID,DescriptionAr,DescriptionEn\",\r\n \"Filters\": \"where lookupID = 'Gender' \"\r\n }\r\n );\r\n //*************************************************************************************************************************\r\n if (genderResponse?.data?.ApiObjectData[0])\r\n setGender({ value1: genderResponse.data.ApiObjectData[0].ID, value2: genderResponse.data.ApiObjectData[1].ID });\r\n\r\n const skillsResponse = await axios.post(\r\n config.baseURL + 'details',\r\n {\r\n \"object\": \"SiteSkillsLevel\",\r\n \"objectSettings\": {\r\n \"MetaData\": false\r\n },\r\n \"option\": \"column\",\r\n \"fields\": \"ID,DescriptionAr,DescriptionEn\"\r\n }\r\n );\r\n\r\n //***************************************************************************************************************************\r\n if (skillsResponse?.data?.ApiObjectData)\r\n setSkillsList(skillsResponse.data.ApiObjectData.map(e => ({ value: String(e['ID']), text: e[`${trans(\"model:description\")}`] })));\r\n //*************************************************************************************************************************\r\n const certificationResponse = await axios.post(\r\n config.baseURL + 'details',\r\n {\r\n \"object\": \"SiteCertificateLevel\",\r\n \"objectSettings\": {\r\n \"MetaData\": false\r\n },\r\n \"option\": \"column\",\r\n \"fields\": \"ID,DescriptionAr,DescriptionEn\"\r\n }\r\n );\r\n setCertificationList(certificationResponse.data.ApiObjectData.map(e => ({ value: String(e['ID']), text: e[`${trans(\"model:description\")}`] })));\r\n //*************************************************************************************************************************\r\n const statusResponse = await axios.post(\r\n config.baseURL + 'details',\r\n {\r\n \"object\": \"SYS_LookUpDetails\",\r\n \"objectSettings\": {\r\n \"MetaData\": false\r\n },\r\n \"option\": \"column\",\r\n \"fields\": \"ID,DescriptionAr,DescriptionEn\",\r\n \"Filters\": \"where lookupID = 'Marital Status'\"\r\n }\r\n );\r\n setStatusList({\r\n value1: statusResponse.data.ApiObjectData[0].ID\r\n , value2: statusResponse.data.ApiObjectData[1].ID, value3: statusResponse.data.ApiObjectData[2].ID\r\n });\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }, [lang]);\r\n\r\n const [inputFields_2, setInputFields_2] = useState([\r\n { firstName: '', lastName: '' }\r\n ]);\r\n // Handle input changes\r\n const handleInputChange_2 = (index, e) => {\r\n const { name, value } = e.target;\r\n const newInputFields = [...inputFields_2];\r\n newInputFields[index][name] = value;\r\n setInputFields_2(newInputFields);\r\n };\r\n const handleDropDownChange_2 = (index, e) => {\r\n const { name, value } = e;\r\n const newInputFields = [...inputFields_2];\r\n newInputFields[index][name] = value;\r\n\r\n\r\n setInputFields_2(newInputFields);\r\n };\r\n // Add a new set of input fields\r\n const handleAddMore_2 = () => {\r\n\r\n var lastGroupindex = inputFields_2.length - 1;\r\n\r\n if (lastGroupindex >= 0 && !inputFields_2[lastGroupindex][\"specialty\"]\r\n || !inputFields_2[lastGroupindex][\"yearOuter\"]\r\n || !inputFields_2[lastGroupindex][\"scientificCertificate\"]) {\r\n\r\n return;\r\n }\r\n\r\n setInputFields_2([...inputFields_2, { firstName: '', lastName: '' }]);\r\n };\r\n // Initial state for input fields\r\n const [inputFields, setInputFields] = useState([\r\n { firstName: '', lastName: '' }\r\n ]);\r\n\r\n // Handle input changes\r\n const handleInputChange = (index, e) => {\r\n const { name, value } = e.target;\r\n const newInputFields = [...inputFields];\r\n newInputFields[index][name] = value;\r\n setInputFields(newInputFields);\r\n };\r\n\r\n // Add a new set of input fields\r\n const handleAddMore = () => {\r\n\r\n var lastGroupindex = inputFields.length - 1;\r\n\r\n if (lastGroupindex >= 0 && !inputFields[lastGroupindex][\"reasonLeaving\"]) {\r\n\r\n return;\r\n }\r\n\r\n setInputFields([...inputFields, { firstName: '', lastName: '' }]);\r\n };\r\n\r\n const checkStepsErrors = async () => {\r\n\r\n setOTP(\"\");\r\n var result = formValidate(schema_1, requestForm) ?? {};\r\n\r\n if (stepNum == 1)\r\n setError(result);\r\n\r\n\r\n var srempNumber = 0\r\n\r\n if (requestForm.phoneNumber != null && !phoneNumberApplicants.includes(requestForm.phoneNumber)) {\r\n setDataFullNum(srempNumber);\r\n setStepNum(srempNumber + 1);\r\n setError({ ...result, phoneNumber: trans(\"employment:The_mobile_number_not_on_list\") });\r\n return srempNumber;\r\n }\r\n\r\n\r\n if (Object.keys(result).length === 0) {\r\n srempNumber = 1;\r\n } else {\r\n setDataFullNum(srempNumber);\r\n setStepNum(srempNumber + 1);\r\n return srempNumber;\r\n }\r\n result = formValidate(schema_2, requestForm) ?? {};\r\n if (stepNum == 2)\r\n setError(result);\r\n\r\n if (Object.keys(result).length === 0) {\r\n srempNumber = 2;\r\n } else {\r\n setDataFullNum(srempNumber);\r\n setStepNum(srempNumber + 1);\r\n return srempNumber;\r\n }\r\n result = formValidate(schema_3, requestForm) ?? {};\r\n if (stepNum == 3)\r\n setError(result);\r\n\r\n if (Object.keys(result).length === 0) {\r\n srempNumber = 3;\r\n } else {\r\n setDataFullNum(srempNumber);\r\n setStepNum(srempNumber + 1);\r\n return srempNumber;\r\n }\r\n\r\n result = formValidate(schema_4, requestForm) ?? {};\r\n\r\n if (stepNum == 4)\r\n setError(result);\r\n console.log(\"result\", result);\r\n if (Object.keys(result).length === 0) {\r\n srempNumber = 4;\r\n } else {\r\n setDataFullNum(srempNumber);\r\n setStepNum(srempNumber + 1);\r\n return srempNumber;\r\n }\r\n\r\n setDataFullNum(srempNumber);\r\n return srempNumber;\r\n }\r\n const cheangeSteps = async (step) => {\r\n\r\n if (step > 0 && step <= 4 && step != stepNum) {\r\n\r\n const statusStep = await checkStepsErrors();\r\n if (statusStep >= step) {\r\n setStepNum(step);\r\n\r\n\r\n\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n const setDefultEmailandName = async (mobile) => {\r\n if (!requestForm?.email || !requestForm?.name) {\r\n\r\n const def = interviewApplicantsData.filter(a => a.phoneNumber == mobile);\r\n\r\n console.log(\"interviewApplicantsData:\", def);\r\n if (def && def.length > 0) {\r\n\r\n if (def[0].isRejection == true) {\r\n setIsLoadingBtnSend(false);\r\n setShowFinalPopup(true);\r\n setShowFinalPopupMessage(trans(\"employment:The_appointment_was_previously_rejected\"));\r\n return;\r\n }\r\n const val = { ...requestForm };\r\n val.phoneNumber = mobile;\r\n val.phoneNumberOnly = val.phoneNumber.slice(-9);\r\n val.phoneNumberCode = val.phoneNumber.startsWith('+') ? val.phoneNumber.slice(1, -9) : val.phoneNumber.slice(0, -9);\r\n if (!requestForm?.name)\r\n val.name = def[0]?.name;\r\n if (!requestForm?.email)\r\n val.email = def[0]?.email;\r\n\r\n if (interviewData?.PositionID)\r\n val.selectedjob = interviewData?.PositionID.toString();\r\n setRequestForm(val);\r\n\r\n if (!(await isDataSentBefore(requestForm.email, mobile))) {\r\n\r\n GetEmployment_applymentsData(mobile, val);\r\n } else {\r\n\r\n setIsLoadingBtnSend(false);\r\n setShowFinalPopup(true);\r\n setShowFinalPopupMessage(trans(\"employment:data-sent-before\"));\r\n }\r\n\r\n } else {\r\n const val = { ...requestForm };\r\n val.phoneNumber = mobile;\r\n setRequestForm(val);\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n useEffect(async () => {\r\n if(jobs && jobs.length> 0 && applymentsData?.positionId || interviewData?.PositionID && employment==null){\r\n const currentEmploy = jobs.filter(j => j.positionId ==(interviewData?.PositionID ?? applymentsData?.positionId ))[0];\r\n setEmployment(currentEmploy);\r\n }\r\n }, [jobs,interviewData,applymentsData,employment]);\r\n return (\r\n \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n {/*

    {trans(\"employment:job_application_form\")}

    */}\r\n

    {lang == \"ar\" ? interviewData.titel : interviewData.titelEn}

    \r\n
    \r\n\r\n\r\n
    \r\n <>\r\n {\r\n reject == true ?\r\n <>\r\n
    \r\n \r\n {lang == \"ar\" ? interviewData.subTitelAr : interviewData.subTitelEn}\r\n {/* {trans(\"employment:Welcome\") + (requestForm.name ?? \"\") + trans(\"employment:You_have_job_interview\")} */}\r\n \r\n\r\n
    \r\n
    {\r\n submitRejectRequest(e);\r\n }}>\r\n\r\n {\r\n !applymentsData?.phoneNumber &&\r\n < PhoneDropDown\r\n mandotory={true}\r\n name='phoneNumber'\r\n disabled={applymentsData?.phoneNumber}\r\n defaultFlag={requestForm.phoneNumberCode}\r\n defaultValue={requestForm.phoneNumberOnly}\r\n errorLabel={error?.phoneNumber}\r\n onChangeValue={(countryCode, phoneNumber) => {\r\n const val = { ...requestForm };\r\n val.phoneNumberOnly = phoneNumber;\r\n val.phoneNumberCode = countryCode;\r\n val.phoneNumber = `+${countryCode}${phoneNumber}`;\r\n setRequestForm(val);\r\n setDefultEmailandName(val.phoneNumber);\r\n }}\r\n\r\n />\r\n }\r\n\r\n
    \r\n {trans(\"employment:The_appointment\") + \":\"}\r\n \r\n\r\n {interviewData?.interviewDateFormat ?\r\n interviewData?.interviewDateFormat\r\n :\r\n moment(interviewData?.interviewDate).format('dddd,YYYY-MM-DD hh:mm A')\r\n\r\n }\r\n \r\n
    \r\n {\r\n const val = { ...requestForm };\r\n val.selectedReject = String(e);\r\n setRequestForm(val);\r\n console.log(e);\r\n }}\r\n\r\n selectValue={!requestForm.selectedReject ? 1 : requestForm.selectedReject}\r\n name=\"selectedReject\"\r\n groupName=\"selectedReject\"\r\n title={trans(\"employment:Please_confirm_interview_date\")}\r\n value1={1}\r\n text1={trans(\"employment:Confirm_the_appointment_and_continue_filling_form\")}\r\n text2={trans(\"employment:Reject_the_appointment\")}\r\n value2={0}\r\n errorLabel={error.selectedReject}\r\n />\r\n {\r\n requestForm.selectedReject == 1 || !requestForm.selectedReject ?\r\n <>\r\n\r\n
    {\r\n\r\n setReject(false);\r\n\r\n }}>\r\n {trans(\"employment:Confirm_appointment\")}\r\n
    \r\n\r\n \r\n \r\n \r\n\r\n
    \r\n\r\n\r\n
    \r\n \r\n :\r\n <>\r\n {\r\n const val = { ...requestForm };\r\n val.note = e;\r\n setRequestForm(val);\r\n }\r\n }\r\n name='note'\r\n placeholder={trans(\"employment:Please_state_the_reason\")}\r\n />\r\n \r\n \r\n }\r\n\r\n\r\n\r\n \r\n \r\n\r\n : (\r\n <>\r\n
    \r\n
    0 ? \"active\" : \" \")}\r\n onClick={() => cheangeSteps(1)}\r\n >\r\n
    \r\n
  • {\"1\"}
  • {trans(\"employment:personal_information\")}\r\n
    \r\n
    \r\n
    \r\n
    1 ? \"active\" : \" \")}\r\n onClick={() => cheangeSteps(2)}\r\n >\r\n
  • {\"2\"}
  • \r\n {trans(\"employment:education_academic_background_training\")}\r\n
    \r\n
    \r\n
    \r\n\r\n
    2 ? \"active\" : \" \")}\r\n onClick={() => cheangeSteps(3)}\r\n >\r\n
  • {\"3\"}\r\n
  • {trans(\"employment:work_experience\")}
    \r\n
    \r\n
    \r\n\r\n
    3 ? \"active\" : \" \")}\r\n onClick={() => cheangeSteps(4)}\r\n >\r\n
    \r\n
  • {\"4\"}
  • {trans(\"employment:acquired_skills\")}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n
    {\r\n submitRequest(e);\r\n }}>\r\n\r\n {\r\n stepNum == 1 &&\r\n <>\r\n

    {trans(\"employment:personal_information\")}

    \r\n
    \r\n\r\n {\r\n const val = { ...requestForm };\r\n val.phoneNumberOnly = phoneNumber;\r\n val.phoneNumberCode = countryCode;\r\n val.phoneNumber = `+${countryCode}${phoneNumber}`;\r\n setRequestForm(val);\r\n setDefultEmailandName(val.phoneNumber);\r\n }}\r\n\r\n />\r\n\r\n {\r\n const val = { ...requestForm };\r\n val.name = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n name='name'\r\n />\r\n\r\n\r\n {\r\n const val = { ...requestForm };\r\n val.email = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n errorLabel={error.email}\r\n name='email'\r\n />\r\n\r\n {\r\n const val = { ...requestForm };\r\n val.selectedNationality = String(e);\r\n val.City = null;\r\n console.log(e);\r\n setRequestForm(val);\r\n\r\n setFilteredCities(SYS_Cities?.filter(item => {\r\n return item.CountryID == val.selectedNationality\r\n }));\r\n }}\r\n selectedValue={requestForm.selectedNationality}\r\n name='selectedNationality'\r\n className={\"flex-grow-1\"}\r\n placeholder={trans(\"employment:nationalte\")}\r\n options={[...nationalitiesList]}\r\n errorLabel={error.selectedNationality}\r\n defaultOption={requestForm.selectedNationality ? null : { value: \"SAU\", text: lang == \"ar\" ? \"سعودي / سعودية\" : \"Kingdom of Saudi Arabia\" }}\r\n\r\n\r\n />\r\n {\r\n const val = { ...requestForm };\r\n val.City = String(e);\r\n console.log(e);\r\n setRequestForm(val);\r\n\r\n }}\r\n selectedValue={requestForm.City}\r\n name='City'\r\n className={\"flex-grow-1\"}\r\n placeholder={trans(\"form:city\")}\r\n options={[...filteredCities]}\r\n errorLabel={error.City}\r\n\r\n\r\n />\r\n {\r\n const val = { ...requestForm };\r\n val.cardNumber = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n errorLabel={error.cardNumber}\r\n name='cardNumber'\r\n />\r\n\r\n {\r\n const val = { ...requestForm };\r\n val.cardExpiryDate = e.target.value;\r\n setRequestForm(val);\r\n }\r\n }\r\n name='cardExpiryDate'\r\n placeholder={trans(\"employment:end_date\")}\r\n\r\n errorLabel={error.cardExpiryDate}\r\n />\r\n {\r\n const val = { ...requestForm };\r\n val.chooseDateOfBirth = e.target.value;\r\n setRequestForm(val);\r\n }\r\n }\r\n name='chooseDateOfBirth'\r\n placeholder={trans(\"employment:birthday\")}\r\n\r\n errorLabel={error.chooseDateOfBirth}\r\n />\r\n\r\n {\r\n const val = { ...requestForm };\r\n val.placeResidence = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n errorLabel={error.placeResidence}\r\n name='placeResidence'\r\n />\r\n\r\n\r\n\r\n\r\n
    \r\n\r\n\r\n\r\n\r\n\r\n
    \r\n\r\n {\r\n const val = { ...requestForm };\r\n\r\n val.selectedStatus = String(e);\r\n if (val.selectedStatus == statusList.value2) {\r\n val.numberChildren = \"0\";\r\n val.numberWives = \"0\";\r\n val.medicalInsurance = \"0\";\r\n } else {\r\n val.numberChildren = \"\";\r\n val.numberWives = \"\";\r\n val.medicalInsurance = undefined;\r\n }\r\n setRequestForm(val);\r\n console.log(e);\r\n\r\n }\r\n }\r\n selectValue={requestForm.selectedStatus}\r\n name=\"selectedStatus\"\r\n groupName=\"SocialStatus\"\r\n title={trans(\"employment:state\")}\r\n ListValues={[{ text: trans(\"employment:marred\"), value: statusList.value1 }, {\r\n text: trans(\"employment:single\"),\r\n value: statusList.value2\r\n }, { text: trans(\"employment:other\"), value: statusList.value3 }]}\r\n errorLabel={error.selectedStatus}\r\n />\r\n {\r\n const val = { ...requestForm };\r\n val.selectedGender = String(e);\r\n setRequestForm(val);\r\n console.log(e);\r\n }}\r\n selectValue={requestForm.selectedGender}\r\n name=\"selectedGender2\"\r\n groupName=\"Gender\"\r\n title={trans(\"employment:type\")}\r\n value1={gender.value1}\r\n text1={trans(\"employment:man\")}\r\n text2={trans(\"employment:female\")}\r\n value2={gender.value2}\r\n errorLabel={error.selectedGender}\r\n />\r\n\r\n
    \r\n
    \r\n {\r\n (statusList.value2 == null || (requestForm?.selectedStatus != statusList.value2)) &&\r\n <>\r\n {\r\n const val = { ...requestForm };\r\n val.numberWives = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n errorLabel={error.numberWives}\r\n name='numberWives'\r\n />\r\n {\r\n const val = { ...requestForm };\r\n val.numberChildren = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n errorLabel={error.numberChildren}\r\n name='numberChildren'\r\n />\r\n\r\n \r\n }\r\n
    \r\n
    \r\n\r\n {\r\n const val = { ...requestForm };\r\n val.applyVia = String(e);\r\n setRequestForm(val);\r\n console.log(e);\r\n }\r\n }\r\n selectValue={requestForm.applyVia}\r\n name=\"applyVia\"\r\n groupName=\"applyVia\"\r\n title={trans(\"employment:apply_through\")}\r\n ListValues={[{ text: trans(\"employment:TAQAT\"), value: trans(\"employment:TAQAT\") }, { text: \"Twitter\", value: \"Twitter\" }, { text: \"snapchat\", value: \"snapchat\" },\r\n { text: trans(\"employment:email\"), value: trans(\"employment:email\") },\r\n { text: trans(\"employment:other\"), value: trans(\"employment:other\") }]}\r\n errorLabel={error.applyVia}\r\n />\r\n\r\n\r\n
    \r\n
    \r\n {\r\n (statusList.value2 == null || requestForm?.selectedStatus != statusList.value2) &&\r\n <>\r\n\r\n {\r\n const val = { ...requestForm };\r\n val.medicalInsurance = String(e);\r\n setRequestForm(val);\r\n console.log(e);\r\n }\r\n }\r\n selectValue={requestForm.medicalInsurance}\r\n name=\"medicalInsurance\"\r\n groupName=\"medicalInsurance\"\r\n title={trans(\"employment:health_insurance_spouse_children\")}\r\n text1={trans(\"employment:yes\")}\r\n value1={1}\r\n text2={trans(\"employment:no\")}\r\n value2={0}\r\n errorLabel={error.medicalInsurance}\r\n />\r\n\r\n \r\n }\r\n {\r\n const val = { ...requestForm };\r\n val.socialSecurity = String(e);\r\n setRequestForm(val);\r\n console.log(e);\r\n }}\r\n selectValue={requestForm.socialSecurity}\r\n name=\"socialSecurity\"\r\n groupName=\"socialSecurity\"\r\n title={trans(\"employment:registered_with_social_insurance\")}\r\n value1={1}\r\n text1={trans(\"employment:yes\")}\r\n text2={trans(\"employment:no\")}\r\n value2={0}\r\n errorLabel={error.socialSecurity}\r\n />\r\n\r\n\r\n {\r\n const val = { ...requestForm };\r\n val.salaryToFrenchBank = String(e);\r\n setRequestForm(val);\r\n console.log(e);\r\n }\r\n }\r\n selectValue={requestForm.salaryToFrenchBank}\r\n name=\"salaryToFrenchBank\"\r\n groupName=\"salaryToFrenchBank\"\r\n title={trans(\"employment:transfer_salary_objections\")}\r\n text1={trans(\"employment:yes\")}\r\n value1={1}\r\n text2={trans(\"employment:no\")}\r\n value2={0}\r\n errorLabel={error.salaryToFrenchBank}\r\n />\r\n\r\n {\r\n const val = { ...requestForm };\r\n val.workedOurCompany = String(e);\r\n setRequestForm(val);\r\n console.log(e);\r\n }}\r\n selectValue={requestForm.workedOurCompany}\r\n name=\"workedOurCompany\"\r\n groupName=\"workedOurCompany\"\r\n title={trans(\"employment:worked_for_hassan_jameel\")}\r\n value1={1}\r\n text1={trans(\"employment:yes\")}\r\n text2={trans(\"employment:no\")}\r\n value2={0}\r\n errorLabel={error.workedOurCompany}\r\n />\r\n\r\n
    \r\n\r\n
    \r\n\r\n {\r\n const val = { ...requestForm };\r\n val.dateReadyToJob = e.target.value;\r\n setRequestForm(val);\r\n }\r\n }\r\n name='dateReadyToJob'\r\n placeholder={trans(\"employment:available_to_start_job_date\")}\r\n\r\n errorLabel={error.dateReadyToJob}\r\n />\r\n {\r\n const val = { ...requestForm };\r\n val.selectedjob = String(e);\r\n setRequestForm(val);\r\n\r\n const currentEmploy = jobs.filter(j => j.positionId == val.selectedjob)[0];\r\n console.log(\"currentEmploy:\",currentEmploy);\r\n setEmployment(currentEmploy);\r\n }}\r\n selectedValue={requestForm.selectedjob}\r\n name='selectedjob'\r\n className={\"flex-grow-1\"}\r\n options={[...jobs?.map(job => { return { text: job.position, value: job.positionId, ...job } })]}\r\n errorLabel={error.selectedjob}\r\n />\r\n
    \r\n \r\n\r\n }\r\n {\r\n stepNum == 2 &&\r\n <>\r\n

    {trans(\"employment:education_academic_background_training\")}

    \r\n {inputFields_2.map((field, index) => (\r\n \r\n
    \r\n {\r\n handleInputChange_2(index, e);\r\n const val = { ...requestForm };\r\n val.scientificCertificate = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n name='scientificCertificate'\r\n />\r\n\r\n {\r\n const val = { ...requestForm };\r\n val.yearOuter = String(e);\r\n setRequestForm(val);\r\n handleDropDownChange_2(index, { name: \"yearOuter\", value: val.yearOuter });\r\n }}\r\n selectValue={field.yearOuter}\r\n className={\"flex-grow-1\"}\r\n errorLabel={error.yearOuter}\r\n\r\n name='yearOuter'\r\n options={allYear}\r\n />\r\n\r\n {\r\n handleInputChange_2(index, e);\r\n const val = { ...requestForm };\r\n val.specialty = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n name='specialty'\r\n />\r\n {\r\n handleInputChange_2(index, e);\r\n const val = { ...requestForm };\r\n val.durationStudy = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n errorLabel={error.durationStudy}\r\n name='durationStudy'\r\n />\r\n
    \r\n
    \r\n
    \r\n ))}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n \r\n }\r\n\r\n {\r\n stepNum == 3 &&\r\n <>\r\n

    {trans(\"employment:work_experience\")}

    \r\n {inputFields.map((field, index) => (\r\n \r\n
    \r\n {\r\n handleInputChange(index, e);\r\n const val = { ...requestForm };\r\n val.employer = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n name='employer'\r\n />\r\n {\r\n handleInputChange(index, e);\r\n const val = { ...requestForm };\r\n val.durationemploy = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n errorLabel={error.durationemploy}\r\n name='durationemploy'\r\n />\r\n\r\n {\r\n handleInputChange(index, e);\r\n const val = { ...requestForm };\r\n val.JobTitle = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n name='JobTitle'\r\n />\r\n {\r\n handleInputChange(index, e);\r\n const val = { ...requestForm };\r\n val.lastSalary = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n errorLabel={error.lastSalary}\r\n name='lastSalary'\r\n />\r\n {\r\n handleInputChange(index, e);\r\n const val = { ...requestForm };\r\n val.reasonLeaving = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n errorLabel={error.reasonLeaving}\r\n name='reasonLeaving'\r\n />\r\n
    \r\n
    \r\n
    \r\n ))}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n }\r\n\r\n {\r\n stepNum == 4 &&\r\n <>\r\n

    {trans(\"employment:acquired_skills\")}

    \r\n <>\r\n
    \r\n\r\n {\r\n const val = { ...requestForm };\r\n val.selectedLanguageLevel = String(e);\r\n setRequestForm(val);\r\n }}\r\n selectedValue={requestForm.selectedLanguageLevel}\r\n name='selectedLanguageLevel'\r\n className={\"flex-grow-1\"}\r\n options={[...skillsList]}\r\n errorLabel={error.selectedLanguageLevel}\r\n />\r\n\r\n {\r\n const val = { ...requestForm };\r\n val.selectedComputerLevel = String(e);\r\n setRequestForm(val);\r\n }}\r\n selectedValue={requestForm.selectedComputerLevel}\r\n name='selectedComputerLevel'\r\n className={\"flex-grow-1 \"}\r\n options={[...skillsList]}\r\n errorLabel={error.selectedComputerLevel}\r\n />\r\n {\r\n const val = { ...requestForm };\r\n val.DealingWithOthers = String(e);\r\n setRequestForm(val);\r\n }}\r\n selectedValue={requestForm.DealingWithOthers}\r\n name='DealingWithOthers'\r\n className={\"flex-grow-1 \"}\r\n options={[...skillsList]}\r\n errorLabel={error.DealingWithOthers}\r\n />\r\n\r\n {\r\n const val = { ...requestForm };\r\n val.selectedDegree = String(e);\r\n setRequestForm(val);\r\n }}\r\n selectedValue={requestForm.selectedDegree}\r\n name='selectedDegree'\r\n className={\"flex-grow-1\"}\r\n options={[...certificationList]}\r\n errorLabel={error.selectedDegree}\r\n />\r\n\r\n {\r\n const val = { ...requestForm };\r\n val.chooseGraduation = String(e);\r\n setRequestForm(val);\r\n }}\r\n selectedValue={requestForm.chooseGraduation}\r\n className={\"flex-grow-1\"}\r\n errorLabel={error.chooseGraduation}\r\n name='chooseGraduation'\r\n options={[...getYears(1960, new Date().getFullYear())]}\r\n />\r\n
    \r\n\r\n \r\n \r\n\r\n \r\n\r\n }\r\n\r\n\r\n\r\n \r\n\r\n\r\n
    \r\n {\r\n\r\n <>\r\n
    \r\n\r\n {\r\n\r\n
    \r\n\r\n {\r\n stepNum > 1 &&\r\n
    {\r\n if (stepNum > 1)\r\n setStepNum(stepNum - 1);\r\n }}>\r\n\r\n\r\n {trans(\"info:back\")}\r\n\r\n\r\n
    \r\n\r\n \r\n \r\n \r\n\r\n\r\n\r\n
    \r\n
    \r\n }\r\n\r\n
    \r\n }\r\n\r\n {\r\n\r\n
    \r\n\r\n {\r\n stepNum < 4 &&\r\n
    {\r\n\r\n const num = await checkStepsErrors();\r\n\r\n if (num >= (stepNum)) {\r\n\r\n if (stepNum < 4)\r\n setStepNum(stepNum + 1);\r\n\r\n if (Object.keys(error).length > 0) {\r\n // setError({});\r\n\r\n }\r\n } else {\r\n // checkErrors();\r\n }\r\n\r\n }}>\r\n {trans(\"form:next\")}\r\n
    \r\n\r\n \r\n \r\n \r\n\r\n
    \r\n\r\n\r\n
    \r\n }\r\n\r\n
    \r\n }\r\n\r\n\r\n\r\n
    \r\n\r\n\r\n \r\n }\r\n\r\n \r\n )\r\n\r\n }\r\n \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n {\r\n <>\r\n
    \r\n {showFinalPopupMessage}\r\n
    \r\n\r\n \r\n\r\n }\r\n\r\n\r\n {\r\n\r\n OTP &&\r\n
    {\r\n\r\n navigator.clipboard.writeText(OTP);\r\n }}\r\n\r\n >\r\n\r\n {trans(\"employment:Your_OTP\") + \" :\"}\r\n {OTP && OTP}\r\n \r\n
    \r\n }\r\n {\r\n OTP &&\r\n
    \r\n {\"الموعد :\"}\r\n \r\n\r\n {interviewData?.interviewDateFormat ?\r\n interviewData?.interviewDateFormat\r\n :\r\n moment(interviewData?.interviewDate).format('dddd,YYYY-MM-DD hh:mm A')\r\n\r\n }\r\n \r\n
    \r\n\r\n }\r\n
    \r\n
    \r\n
    {\r\n\r\n setShowFinalPopup(false);\r\n history.push(\"/\");\r\n\r\n }}>\r\n {trans(\"cartFile:Continue_browsing\")}\r\n
    \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n\r\n );\r\n}\r\n","import { Fragment, useEffect, useState, useCallback } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport axios from \"axios\";\r\nimport { useParams,useHistory } from \"react-router\";\r\nimport { InputField } from \"../../components/_input/_input\";\r\nimport { FormButton } from \"../../components/_input/_button\";\r\nimport config from '../../configuration/config.json';\r\nimport Popup from \"../../User/popup\";\r\nimport moment from \"moment\";\r\nimport Joi from \"joi\";\r\nimport { GetMessages, formValidate } from '../../utils/validation';\r\nimport PhoneDropDown from \"../../components/_input/_phoneDropDown\";\r\nexport function EmploymentInterviewAttendance() {\r\n const { t: trans, i18n } = useTranslation([\"common\", \"heading\", \"inputs\", \"employment\"]);\r\n const { id = 1 } = useParams();\r\n const [requestForm, setRequestForm] = useState({});\r\n const [isLoadingBtnSend, setIsLoadingBtnSend] = useState(false);\r\n const [showFinalPopup, setShowFinalPopup] = useState(false);\r\n const [interviewData, setInterviewData] = useState({});\r\n const [showFinalPopupMessage, setShowFinalPopupMessage] = useState(\"\");\r\n const [interviewApplicantsData, setInterviewApplicantsData] = useState([]);\r\n const [phoneNumberApplicants, setPhoneNumberApplicants] = useState([]);\r\n const [error, setError] = useState({});\r\n const lang = i18n.language;\r\n const history = useHistory();\r\n const schema = Joi.object({\r\n phoneNumber: Joi.string().min(12).required().messages(GetMessages()),\r\n OTP: Joi.string().required().messages(GetMessages()),\r\n\r\n });\r\n useEffect(async () => {\r\n GetinterviewApplicants();\r\n }, []);\r\n\r\n const GetinterviewApplicants = async () => {\r\n try {\r\n\r\n axios.post(\r\n config.baseURL + \"func\",\r\n {\r\n \"name\": \"SiteGetinterview_applicants\",\r\n \"Values\": {\r\n \"GUID\": id,\r\n\r\n }\r\n }\r\n ).then(response => {\r\n const result = response.data;\r\n\r\n var interviewData = {};\r\n if (result && result.length > 0) {\r\n setInterviewApplicantsData(result);\r\n interviewData = result[0];\r\n setInterviewData(interviewData);\r\n const date = new Date();\r\n\r\n\r\n const stardate = new Date(interviewData.startDate);\r\n const diffTime22 = date - stardate;\r\n const diffDays22 = Math.ceil(diffTime22 / (1000 * 60 * 60 * 24));\r\n\r\n if (diffDays22 <= 0 && diffTime22 <= 0) {\r\n setShowFinalPopupMessage(trans(\"employment:The_application_deadline_has_not_yet_begun\"));\r\n setShowFinalPopup(true);\r\n return;\r\n\r\n }\r\n\r\n\r\n const date1 = new Date(interviewData.endDate);\r\n const diffTime = date1 - date;\r\n const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));\r\n\r\n if (diffDays <= 0 && diffTime <= 0) {\r\n setShowFinalPopupMessage(trans(\"employment:Application_deadline_has_expired\"));\r\n setShowFinalPopup(true);\r\n return;\r\n\r\n }\r\n var phoneNumberApplicants = result.map(i => { return i.phoneNumber });\r\n setPhoneNumberApplicants(phoneNumberApplicants);\r\n } else {\r\n\r\n setShowFinalPopup(true);\r\n }\r\n\r\n }).catch(error => {\r\n setShowFinalPopup(true);\r\n });\r\n\r\n\r\n } catch (err) {\r\n console.log(\"isDataSentBefore catch\", err);\r\n }\r\n };\r\n const submitRequest = async (e) => {\r\n e.preventDefault();\r\n var result = formValidate(schema, requestForm) ?? {};\r\n\r\n if (requestForm.phoneNumber != null && !phoneNumberApplicants.includes(requestForm.phoneNumber)) {\r\n result.phoneNumber =trans(\"employment:The_mobile_number_not_on_list\");\r\n }\r\n\r\n setError(result);\r\n if (Object.keys(result).length === 0) {\r\n const match = (await isDataOTPMatch(requestForm.phoneNumber))\r\n if (match == 1) {\r\n\r\n\r\n try {\r\n var datetime = new moment(new Date()).format('yyyy-MM-DDTHH:mm:ss');\r\n\r\n const response = await axios.put(\r\n\r\n config.baseURL + 'update',\r\n {\r\n \"object\": \"siteEmployment_application\",\r\n \"values\": {\r\n \"attendanceDateTime\": datetime\r\n // attendanceDateTime\r\n\r\n },\r\n \"Filters\": `Where interviewID = ${interviewData?.interviewID} and phoneNumber = '${requestForm.phoneNumber}' and OTP = '${requestForm.OTP}' `\r\n }\r\n );\r\n if (response.status == 200) {\r\n setShowFinalPopup(true);\r\n setShowFinalPopupMessage(trans(\"employment:Attendance_has_been_confirmed_successfully\"));\r\n } else {\r\n setIsLoadingBtnSend(false);\r\n }\r\n } catch (err) {\r\n console.log(\"isDataSentBefore catch\", err);\r\n }\r\n\r\n setIsLoadingBtnSend(false);\r\n\r\n } else if (match == 2) {\r\n setShowFinalPopup(true);\r\n setShowFinalPopupMessage(trans(\"employment:Attendance_has_already_been_confirmed\"));\r\n } else {\r\n\r\n setError({ ...result, OTP: trans(\"employment:The_confirmation_code_incorrect_application_not_exist\")});\r\n setIsLoadingBtnSend(false);\r\n }\r\n }\r\n\r\n };\r\n const [applicationData, setApplicationData] = useState({});\r\n const isDataOTPMatch = async (phone) => {\r\n let isExisted = 0;\r\n try {\r\n\r\n const response = await axios.post(\r\n config.baseURL + \"details\",\r\n {\r\n \"Object\": \"siteEmployment_application\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n },\r\n \"Filters\": `Where interviewID = ${interviewData?.interviewID} and phoneNumber = '${phone}' and OTP = '${requestForm.OTP}' `\r\n }\r\n\r\n\r\n );\r\n if (response.status == 200) {\r\n if (response.data.ApiObjectData.length > 0) {\r\n if (response.data.ApiObjectData[0].attendanceDateTime) {\r\n setApplicationData(response.data.ApiObjectData[0]);\r\n isExisted = 2;\r\n } else {\r\n isExisted = 1;\r\n }\r\n\r\n\r\n }\r\n }\r\n } catch (err) {\r\n console.log(\"isDataSentBefore catch\", err);\r\n }\r\n return isExisted;\r\n };\r\n return (\r\n \r\n\r\n\r\n
    \r\n\r\n\r\n
    {\r\n submitRequest(e);\r\n }}>\r\n\r\n\r\n

    {trans(\"employment:Confirm_attendance\")}

    \r\n\r\n
    \r\n
    \r\n\r\n {\r\n const val = { ...requestForm };\r\n val.phoneNumberOnly = phoneNumber;\r\n val.phoneNumber = `+${countryCode}${phoneNumber}`;\r\n setRequestForm(val);\r\n }}\r\n\r\n\r\n />\r\n
    \r\n
    \r\n\r\n {\r\n const val = { ...requestForm };\r\n val.OTP = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n name='OTP'\r\n />\r\n
    \r\n \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n {\r\n <>\r\n\r\n
    \r\n {showFinalPopupMessage}\r\n
    \r\n\r\n\r\n\r\n \r\n\r\n }\r\n {\r\n applicationData?.attendanceDateTime &&\r\n
    \r\n \r\n {moment(applicationData?.attendanceDateTime).format('YYYY-MM-DD hh:mm A')}\r\n \r\n \r\n
    \r\n }\r\n\r\n\r\n
    \r\n
    \r\n
    {\r\n\r\n setShowFinalPopup(false);\r\n setIsLoadingBtnSend(false);\r\n history.push(\"/\");\r\n\r\n }}>\r\n {trans(\"cartFile:Continue_browsing\")}\r\n
    \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n );\r\n}","import {useState} from \"react\";\r\n\r\nexport default function InfoCircle({key=null,icon = null, titleEn,titleAr, subtitle}) {\r\n\r\n const [lang,setlang]=useState( localStorage.getItem('i18nextLng'));\r\n let title= lang===\"en\"?titleEn:titleAr;\r\n const _icon = icon ? (icon) : \"/assets/icons/why/why1.svg\";\r\n return (\r\n
    \r\n
    \r\n
    \r\n {title}/\r\n
    \r\n
    \r\n

    {title}

    \r\n\r\n
    \r\n );\r\n}\r\n","import {createSlice} from '@reduxjs/toolkit'\r\n\r\nexport const navSlice = createSlice({\r\n name: 'nav',\r\n initialState: {\r\n isFixed: true,\r\n iconsBlack: false,\r\n },\r\n reducers: {\r\n changeHeader: (nav, action) => {\r\n nav.isFixed = action.payload.isFixed;\r\n },\r\n changeIcons: (nav, action) => {\r\n nav.iconsBlack = action.payload.iconsBlack;\r\n },\r\n\r\n isFixedHeader: (nav) => {\r\n return nav.isFixed;\r\n }\r\n\r\n }\r\n})\r\n\r\n// Action creators are generated for each case reducer function\r\nexport const {changeHeader, isFixedHeader,changeIcons} = navSlice.actions\r\n\r\nexport default navSlice.reducer","import { Fragment, useCallback, useEffect, useState } from \"react\";\r\nimport SwiperCore, { Pagination, Navigation, Autoplay, EffectFade } from \"swiper\";\r\nimport PageHeading from \"../../components/__simple/_pageheading\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { CarSecondary } from \"./components/carSecondary\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport Car from \"../../components/car\";\r\nimport { FilterButton } from \"../../components/__simple/_filterButton\";\r\nimport { OfferSections } from \"../../sections/offersSection\";\r\nimport Breadcrumb from \"../../components/__simple/breadcrumb\";\r\nimport InfoCircle from \"../../components/__simple/_infoCirclejsx\";\r\nimport Info from \"../../components/_info\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { changeIcons } from \"../../_redux/slices/navSlice\";\r\nimport { useParams } from \"react-router\";\r\nimport axios from \"axios\";\r\nimport AdvancedSearch from \"../../components/_input/advancedSearch\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { slugSplitter, slugCombine } from \"../../utils/slugManager\";\r\nimport config from \"../../configuration/config.json\";\r\nimport { Helmet } from \"react-helmet\";\r\nSwiperCore.use([Pagination, Navigation, Autoplay, EffectFade]);\r\n\r\nexport function VehiclePage() {\r\n const { t: trans, i18n } = useTranslation([\"inputs\", \"heading\", \"vehicales\", \"info\"]);\r\n const [brandInfo, setBrandInfo] = useState({});\r\n const [vehicles, setVehicles] = useState([]);\r\n const [filteredVehicles, setFilteredVehicles] = useState(vehicles);\r\n const [vehiclesFilter, setVehiclesFilter] = useState(null);\r\n const [Featured, setFeatured] = useState([]);\r\n const GetUrl = config.baseURL + 'details';\r\n const [filters, setFilters] = useState([]);\r\n const [offerVehicle, setOfferVehicle] = useState([]);\r\n const dispatch = useDispatch();\r\n const [searchPopup, setSearchPopup] = useState(false);\r\n let { brand } = useParams();\r\n const [CarCategories, setCarCategories] = useState([]);\r\n const [seoPageInfo, setSeoPageInfo] = useState({});\r\n let lang = i18n.language;\r\n const languageDir = 'language-' + lang;\r\n\r\n function RequsetFeatured() {\r\n const Body = {\r\n \"object\": \"SiteVehicleSpecial\",\r\n \"ObjectSettings\": { \"MetaData\": false }\r\n };\r\n\r\n axios.request({\r\n url: GetUrl,\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n setFeatured(response.data.ApiObjectData);\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n callback();\r\n }, [brand]);\r\n\r\n\r\n const callback = useCallback(async () => {\r\n try {\r\n setFilteredVehicles([]);\r\n setVehicles([]);\r\n setOfferVehicle([]);\r\n setFilters([]);\r\n setBrandInfo({});\r\n\r\n\r\n try {\r\n\r\n try {\r\n\r\n if (\"caches\" in window) {\r\n var curl = \"site_FetchCarCategories\";\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"HJWeb\");\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n curl\r\n );\r\n let data = await cachedResponse?.json();\r\n setCarCategories(data)\r\n\r\n }\r\n\r\n } catch (error) {\r\n }\r\n\r\n\r\n const response = await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"site_FetchCarCategories\"\r\n }\r\n );\r\n if (response.status == 200) {\r\n\r\n setCarCategories(response.data)\r\n const data44 = new Response(JSON.stringify(response.data));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"HJWeb\").then((cache) => {\r\n cache.put(\"site_FetchCarCategories\", data44);\r\n\r\n });\r\n }\r\n\r\n\r\n }\r\n } catch (error) {\r\n console.log('error in fetching the countries of SAU', error);\r\n }\r\n\r\n\r\n const res = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/home/vehicles/\" + slugSplitter(brand),\r\n method: \"get\",\r\n });\r\n\r\n setVehicles(res.data.vehicles);\r\n const brands = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/vehicles/brand/\" + slugSplitter(brand),\r\n method: \"get\",\r\n });\r\n const homeExtraRes = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/home/HomeExtra\",\r\n method: \"get\",\r\n });\r\n setOfferVehicle(homeExtraRes.data.offerVehicle);\r\n\r\n const allCategories = brands?.data?.categories;\r\n var filterHasVehicals = brands?.data?.categories;\r\n try {\r\n\r\n\r\n filterHasVehicals = allCategories?.filter(f => (res?.data?.vehicles?.filter(c => (c?.category == f?.category))).length > 0);\r\n\r\n\r\n } catch (error) {\r\n\r\n }\r\n\r\n console.log(\"filterHasVehicals:\", filterHasVehicals);\r\n setFilters(filterHasVehicals);\r\n setBrandInfo(brands?.data?.brandInfo);\r\n\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n RequsetFeatured();\r\n }, [brand]);\r\n\r\n // to change the icons color on the navbar\r\n useEffect(() => {\r\n dispatch(\r\n changeIcons({ iconsBlack: true })\r\n )\r\n\r\n return () => {\r\n dispatch(\r\n changeIcons({ iconsBlack: false })\r\n )\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n\r\n if (vehicles && vehicles.length > 0)\r\n filterVehicles(vehiclesFilter);\r\n }, [vehicles]);\r\n\r\n function filterVehicles(category) {\r\n setVehiclesFilter(category);\r\n let filterData;\r\n if (category != null)\r\n filterData = vehicles.filter((car) => {\r\n return car.category === category;\r\n });\r\n else {\r\n filterData = vehicles;\r\n }\r\n setFilteredVehicles(filterData);\r\n console.log(\"filteredVehicles\", filteredVehicles);\r\n }\r\n\r\n\r\n useEffect(async () => {\r\n\r\n var page = \"\"\r\n\r\n if (brand?.includes(\"Toyota\")) {\r\n\r\n page = \"Toyota cars\"\r\n } else {\r\n page = \"Lexus Cars\"\r\n\r\n };\r\n const response = await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"SiteFetchSeoPages\",\r\n \"Values\": {\r\n \"page\": page\r\n }\r\n }\r\n );\r\n if (response.status == 200) {\r\n\r\n var resdata = response.data[0];\r\n\r\n setSeoPageInfo(resdata);\r\n\r\n\r\n }\r\n }, [brand]);\r\n\r\n return (\r\n \r\n\r\n {\r\n seoPageInfo &&\r\n\r\n \r\n \r\n {\r\n seoPageInfo?.title &&\r\n {lang.toLowerCase() == 'ar' ? seoPageInfo?.title : seoPageInfo?.titleEn?? seoPageInfo?.title }\r\n }\r\n {\r\n seoPageInfo?.link &&\r\n \r\n\r\n }\r\n {\r\n seoPageInfo?.MetaDescription &&\r\n \r\n }\r\n {\r\n seoPageInfo?.MetaGroups &&\r\n \r\n }\r\n \r\n }\r\n\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n {/*
    \r\n \r\n {\r\n vehicles?.map((vehicle, index) => {\r\n if (vehicle.showOnHomePage && parseFloat(vehicle.minPrice) != 0) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n })\r\n }\r\n\r\n \r\n
    */}\r\n\r\n {/*
    \r\n\r\n
    \r\n {brandInfo.name}\r\n
    \r\n
    \r\n

    {trans(\"info:advance_search_note\")}

    \r\n \r\n {trans(\"info:advance_note\")}\r\n \"\"/\r\n \r\n
    \r\n
    */}\r\n\r\n\r\n
    \r\n
    \r\n\r\n filterVehicles(null)}\r\n name={trans(\"inputs:all\")} isActive={vehiclesFilter === null} />\r\n\r\n {\r\n // filters?.map(({ category }) => {\r\n // return (\r\n // filterVehicles(category)}\r\n // name={category} isActive={vehiclesFilter === category} />\r\n // );\r\n // })\r\n\r\n CarCategories && filters && CarCategories.length > 0 && filters?.length > 0 &&\r\n CarCategories?.map((item, index) => {\r\n\r\n if (item && item[lang == \"ar\" ? \"NameAr\" : \"NameEn\"] && filters.filter(a => a.category == item[lang == \"ar\" ? \"NameAr\" : \"NameEn\"])?.length > 0) {\r\n return (\r\n filterVehicles(item[lang == \"ar\" ? \"NameAr\" : \"NameEn\"])}\r\n name={item[lang == \"ar\" ? \"NameAr\" : \"NameEn\"]} isActive={vehiclesFilter == item[lang == \"ar\" ? \"NameAr\" : \"NameEn\"]} />);\r\n } else { return null }\r\n })\r\n\r\n }\r\n\r\n
    \r\n
    \r\n {\r\n filteredVehicles?.map((vehicle, index) => {\r\n // if (parseFloat(vehicle.minPrice) != '0')\r\n return (\r\n
    \r\n \r\n
    \r\n )\r\n })\r\n }\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n {\r\n offerVehicle &&\r\n \r\n }\r\n
    \r\n
    \r\n\r\n {Featured?.map(a => (\r\n\r\n \r\n ))}\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n );\r\n}","import { Fragment, useCallback, useEffect, useState, useRef } from \"react\";\r\nimport SwiperCore, { Pagination, Navigation, Autoplay, EffectFade } from \"swiper\";\r\nimport PageHeading from \"../../components/__simple/_pageheading\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport Car from \"../../components/car\";\r\nimport { FilterButton } from \"../../components/__simple/_filterButton\";\r\nimport { OfferSections } from \"../../sections/offersSection\";\r\nimport Breadcrumb from \"../../components/__simple/breadcrumb\";\r\nimport InfoCircle from \"../../components/__simple/_infoCirclejsx\";\r\nimport Info from \"../../components/_info\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { changeIcons } from \"../../_redux/slices/navSlice\";\r\nimport axios from \"axios\";\r\nimport { slugCombine } from \"../../utils/slugManager\";\r\nimport config from \"../../configuration/config.json\";\r\nimport ImageGallery from \"react-image-gallery\";\r\nimport { groupBy, mapValues, omit } from \"lodash\";\r\nimport { Helmet } from \"react-helmet\";\r\nSwiperCore.use([Pagination, Navigation, Autoplay, EffectFade]);\r\n\r\nexport function VehicleOnlinePage() {\r\n const { t: trans } = useTranslation([\"inputs\", \"heading\", \"vehicales\", \"info\"]);\r\n const [isFullScreen, setIsFullScreen] = useState(false);\r\n const popRef = useRef(null);\r\n const [gallery, setGallery] = useState([]);\r\n const [brandInfo, setBrandInfo] = useState({});\r\n const [vehicles, setVehicles] = useState([]);\r\n const [filteredVehicles, setFilteredVehicles] = useState(vehicles);\r\n const [Featured, setFeatured] = useState([]);\r\n const GetUrl = config.baseURL + 'details';\r\n const [offerVehicle, setOfferVehicle] = useState([]);\r\n const [brands, setBrands] = useState([]);\r\n const dispatch = useDispatch();\r\n const [carFilter, setCarFilter] = useState(null);\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const languageDir = 'language-' + lang;\r\n function RequsetFeatured() {\r\n const Body = {\r\n \"object\": \"SiteVehicleSpecial\",\r\n \"ObjectSettings\": { \"MetaData\": false }\r\n };\r\n\r\n axios.request({\r\n url: GetUrl,\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n setFeatured(response.data.ApiObjectData);\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n }\r\n\r\n\r\n const [cachSNImages, setCachSNImages] = useState({});\r\n async function FetchCarSNImages(SN) {\r\n\r\n try {\r\n\r\n console.log(\"cachSNImages:\", cachSNImages);\r\n if (cachSNImages[SN]) {\r\n\r\n const filterG = cachSNImages[SN];\r\n setGallery(filterG);\r\n\r\n if (popRef && filterG && filterG?.length > 0) {\r\n popRef.current.toggleFullScreen();\r\n }\r\n\r\n } else {\r\n\r\n\r\n\r\n const response = await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"siteFetchCarSNImages\",\r\n \"Values\": {\r\n \"SN\": SN\r\n }\r\n }\r\n );\r\n\r\n if (response.status == 200) {\r\n\r\n\r\n const filterG = [];\r\n\r\n response.data?.map((item, index) => {\r\n item[\"original\"] = config.mainURL + item.Image;\r\n item[\"thumbnail\"] = config.mainURL + item.Image;\r\n item[\"originalHeight\"] = \"50\";\r\n item[\"originalWidth\"] = \"50\";\r\n item[\"sizes\"] = \"50\";\r\n item[\"fullscreen\"] = config.mainURL + item.Image;\r\n filterG.push(item);\r\n\r\n\r\n });\r\n\r\n setGallery(filterG);\r\n\r\n if (popRef && filterG && filterG?.length > 0) {\r\n popRef.current.toggleFullScreen();\r\n }\r\n\r\n var cuCachSNImages = { ...cachSNImages };\r\n cuCachSNImages[SN] = filterG;\r\n\r\n setCachSNImages(cuCachSNImages);\r\n\r\n\r\n } else {\r\n\r\n var cuCachSNImages = { ...cachSNImages };\r\n cuCachSNImages[SN] = [];\r\n setCachSNImages(cuCachSNImages);\r\n }\r\n\r\n }\r\n\r\n } catch (error) {\r\n console.log(error);\r\n\r\n var cuCachSNImages = { ...cachSNImages };\r\n cuCachSNImages[SN] = [];\r\n setCachSNImages(cuCachSNImages);\r\n\r\n }\r\n }\r\n\r\n\r\n useEffect(async () => {\r\n\r\n callback();\r\n\r\n const response = await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"siteFetchCarSNImages\",\r\n \"Values\": {\r\n \"SN\": null\r\n }\r\n }\r\n );\r\n\r\n if (response.status == 200) {\r\n\r\n\r\n const filterG = [];\r\n\r\n response.data?.map((item, index) => {\r\n item[\"original\"] = config.mainURL + item.Image;\r\n item[\"thumbnail\"] = config.mainURL + item.Image;\r\n item[\"originalHeight\"] = \"50\";\r\n item[\"originalWidth\"] = \"50\";\r\n item[\"sizes\"] = \"50\";\r\n item[\"fullscreen\"] = config.mainURL + item.Image;\r\n filterG.push(item);\r\n\r\n\r\n });\r\n\r\n\r\n console.log(\"filterG:\", filterG);\r\n const groupResult = mapValues(groupBy(filterG, 'SN'), fList => fList.map(items => omit(items, 'SN')));\r\n\r\n\r\n console.log(\"groupResult:\", groupResult);\r\n\r\n setCachSNImages(groupResult);\r\n\r\n\r\n } else {\r\n\r\n var cuCachSNImages = { ...cachSNImages };\r\n setCachSNImages(cuCachSNImages);\r\n }\r\n\r\n }, []);\r\n\r\n\r\n const callback = useCallback(async () => {\r\n try {\r\n setFilteredVehicles([]);\r\n setVehicles([]);\r\n setOfferVehicle([]);\r\n setBrands([]);\r\n setBrandInfo({});\r\n var res = null;\r\n\r\n try {\r\n if (\"caches\" in window) {\r\n var curl = \"OnlineVehicles-\" + lang;\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"HJWeb\");\r\n\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n curl\r\n );\r\n var dataVehicles = await cachedResponse?.json();\r\n\r\n if (dataVehicles?.vehicles)\r\n setVehicles(dataVehicles.vehicles);\r\n if (dataVehicles?.brands)\r\n setBrands(dataVehicles.brands);\r\n\r\n }\r\n } catch (error) {\r\n\r\n }\r\n\r\n try {\r\n if (\"caches\" in window) {\r\n var curl22 = \"HomeExtra-\" + lang;\r\n\r\n // Opening that particular cache\r\n const cacheStorage22 = await caches.open(\"HJWeb\");\r\n\r\n // Fetching that particular cache data\r\n const cachedResponse22 = await cacheStorage22?.match(\r\n curl22\r\n );\r\n let homeExtraRescach = await cachedResponse22?.json();\r\n\r\n setOfferVehicle(homeExtraRescach?.offerVehicle);\r\n\r\n }\r\n\r\n } catch (error) {\r\n\r\n }\r\n res = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/vehicles/OnlineVehicles\",\r\n method: \"get\",\r\n });\r\n\r\n\r\n setVehicles(res.data.vehicles);\r\n setBrands(res.data.brands);\r\n const resdataVehicles = new Response(JSON.stringify(res.data));\r\n\r\n if (\"caches\" in window) {\r\n try {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"HJWeb\").then((cache) => {\r\n cache.put(\"OnlineVehicles-\" + lang, resdataVehicles);\r\n\r\n });\r\n } catch (error) {\r\n\r\n }\r\n }\r\n\r\n\r\n const homeExtraRes = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/home/HomeExtra\",\r\n method: \"get\",\r\n });\r\n\r\n\r\n setOfferVehicle(homeExtraRes.data.offerVehicle);\r\n const data2 = new Response(JSON.stringify(homeExtraRes.data));\r\n\r\n if (\"caches\" in window) {\r\n try {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"HJWeb\").then((cache) => {\r\n cache.put(\"HomeExtra-\" + lang, data2);\r\n\r\n });\r\n } catch (error) {\r\n\r\n }\r\n }\r\n\r\n\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n RequsetFeatured();\r\n }, []);\r\n\r\n function filterCars(brand) {\r\n setCarFilter(brand);\r\n let filterData = [];\r\n if (brand != null)\r\n filterData = vehicles.filter((car) => {\r\n return car.brand === brand;\r\n });\r\n else {\r\n filterData = vehicles;\r\n }\r\n setFilteredVehicles(filterData);\r\n };\r\n // to change the icons color on the navbar\r\n useEffect(() => {\r\n dispatch(\r\n changeIcons({ iconsBlack: true })\r\n )\r\n\r\n return () => {\r\n dispatch(\r\n changeIcons({ iconsBlack: false })\r\n )\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n\r\n if (vehicles && vehicles.length > 0)\r\n setFilteredVehicles(vehicles);\r\n }, [vehicles]);\r\n\r\n const [seoPageInfo, setSeoPageInfo] = useState({});\r\n useEffect(async () => {\r\n\r\n var page = \"Online Cars Store\"\r\n\r\n\r\n const response = await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"SiteFetchSeoPages\",\r\n \"Values\": {\r\n \"page\": page\r\n }\r\n }\r\n );\r\n if (response.status == 200) {\r\n\r\n var resdata = response.data[0];\r\n\r\n setSeoPageInfo(resdata);\r\n\r\n\r\n }\r\n }, []);\r\n\r\n return (\r\n\r\n <>\r\n\r\n \r\n\r\n {\r\n seoPageInfo &&\r\n\r\n \r\n\r\n \r\n {\r\n seoPageInfo?.title &&\r\n {seoPageInfo?.title}\r\n }\r\n {\r\n seoPageInfo?.link &&\r\n \r\n\r\n }\r\n {\r\n seoPageInfo?.MetaDescription &&\r\n \r\n }\r\n {\r\n seoPageInfo?.MetaGroups &&\r\n \r\n }\r\n\r\n \r\n\r\n\r\n }\r\n\r\n
    \r\n \r\n\r\n
    \r\n {lang == \"ar\" ? \"اصدار تجريبي\" : \"BETA\"}\r\n
    \r\n
    \r\n
    \r\n \r\n\r\n\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n filterCars(null)} />\r\n {\r\n brands.map((brand, index) => {\r\n return (\r\n filterCars(brand.name)} />\r\n );\r\n })\r\n }\r\n\r\n\r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n filteredVehicles?.map((vehicle, index) => {\r\n // if (parseFloat(vehicle.minPrice) != '0')\r\n return (\r\n
    \r\n FetchCarSNImages(vehicle?.sn)}\r\n btnShowSN={(cachSNImages && cachSNImages[vehicle?.sn]) ? true : false}\r\n />\r\n
    \r\n )\r\n })\r\n }\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n\r\n {\r\n offerVehicle &&\r\n \r\n }\r\n
    \r\n
    \r\n\r\n {Featured?.map(a => (\r\n\r\n \r\n ))}\r\n\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n {/*
    \r\n {\"اصدار تجريبي\"}\r\n
    */}\r\n\r\n\r\n\r\n\r\n
    \r\n\r\n
    \r\n {\r\n\r\n setIsFullScreen(e);\r\n }} />\r\n
    \r\n \r\n );\r\n}","import React from 'react';\r\nconst OverViewContext = React.createContext();\r\nOverViewContext.displayName = 'OverViewContext';\r\nexport default OverViewContext;\r\n","import { useTranslation } from \"react-i18next\";\r\nimport { Link, NavLink, useRouteMatch } from \"react-router-dom\";\r\nimport { Fragment, useEffect, useRef, useState, useContext } from \"react\";\r\nimport Banner from \"../../../components/banner\";\r\nimport Breadcrumb from \"../../../components/__simple/breadcrumb\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { changeHeader } from \"../../../_redux/slices/navSlice\";\r\nimport OverViewContext from \"../overviewContext\";\r\nimport config from \"../../../configuration/config.json\";\r\nexport function CarBanner({ name, desc, bg, url, brand, onBuyClick, pdf = null, hasOffers = false, breadcrumb, setSectionActive, logo, siteDesc }) {\r\n const { t: trans } = useTranslation([\"common\", \"vehicales\", \"info\"]);\r\n const [onHamburger, setOnHamburger] = useState(false);\r\n const navRef = useRef(null);\r\n const [navFlex, setNavFlex] = useState(false);\r\n const [navTop, setNavTop] = useState(0);\r\n const [lastScrollY, setLastScrollY] = useState(0);\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const languageDir = 'language-' + lang;\r\n const dispatch = useDispatch();\r\n const context = useContext(OverViewContext);\r\n const [pageName, setPageName] = useState(breadcrumb ?? trans(\"vehicales:veh-d-home-public\"));\r\n useEffect(() => {\r\n dispatch(\r\n changeHeader({ isFixed: false })\r\n )\r\n window.addEventListener(\"scroll\", handleScroll);\r\n return () => {\r\n window.removeEventListener(\"scroll\", handleScroll)\r\n dispatch(\r\n changeHeader({ isFixed: true })\r\n )\r\n };\r\n }, [url]);\r\n\r\n useEffect(() => {\r\n setPageName(breadcrumb ?? trans(\"vehicales:veh-d-home-public\"));\r\n\r\n }, [breadcrumb]);\r\n\r\n const handleScroll = () => {\r\n\r\n const currentScrollY = window.scrollY;\r\n\r\n if (currentScrollY - 540 > lastScrollY) {\r\n setNavFlex(true)\r\n\r\n setNavTop(1);\r\n } else {\r\n if (currentScrollY <= lastScrollY + 540) {\r\n setNavFlex(false);\r\n }\r\n setNavTop(0);\r\n }\r\n setLastScrollY(currentScrollY);\r\n\r\n };\r\n\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n navbar holder\r\n
    \r\n\r\n
    \r\n
    \r\n
    setOnHamburger(!onHamburger)}>\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    {name}

    \r\n
    \r\n { setSectionActive(\"public\"); setOnHamburger(false); setPageName(`${trans(\"vehicales:veh-d-home-public\")}`) }}\r\n to={`${url}/public`}>{trans(\"vehicales:veh-d-home-public\")}\r\n { setSectionActive(\"gallery\"); setOnHamburger(false); setPageName(`${trans(\"vehicales:veh-d-home-gallery\")}`) }}\r\n to={`${url}/gallery`}\r\n >{trans(\"vehicales:veh-d-home-gallery\")}\r\n { setSectionActive(\"feature\"); setOnHamburger(false); setPageName(`${trans(\"vehicales:veh-d-home-feature\")}`) }}\r\n to={`${url}/feature`}\r\n >{trans(\"vehicales:veh-d-home-feature\")}\r\n { setSectionActive(\"specs\"); setOnHamburger(false); setPageName(`${trans(\"vehicales:veh-d-home-specs\")}`) }}\r\n to={`${url}/specs`}\r\n >{trans(\"vehicales:veh-d-home-specs\")}\r\n {/* {\r\n hasOffers ?\r\n { setSectionActive(\"offers\"); setOnHamburger(false); setPageName(`${trans(\"vehicales:veh-d-home-offers\")}`) }} to={`${url}/offers`}>{trans(\"vehicales:veh-d-home-offers\")}\r\n : null\r\n } */}\r\n\r\n
    \r\n {/* { \r\n {\r\n onBuyClick()\r\n }} className={\"btn btn-primary\"}>{trans(\"vehicales:veh-d-home-Purchase\")}\r\n } */}\r\n\r\n {(logo) &&\r\n
    \r\n \"\"\r\n
    \r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n

    {context.vehicleInfo?.name ?? name}

    \r\n
    \r\n {\r\n context.vehicleInfo?.isNew && {trans(\"info:new\")}\r\n }\r\n {\r\n context.vehicleInfo?.isHybird && {trans(\"vehicales:veh-hybrid\")}\r\n }\r\n {/* سيدان */}\r\n
    \r\n
    \r\n

    \r\n {\r\n siteDesc\r\n }\r\n

    \r\n {\r\n pdf && ()\r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n );\r\n}\r\n\r\n","import { useTranslation } from \"react-i18next\";\r\nimport { useEffect, useRef, useState, useContext } from \"react\";\r\nimport { Price } from \"../../../components/__simple/_price\";\r\nimport axios from \"axios\";\r\nimport config from '../../../configuration/config.json';\r\nimport { union } from \"lodash\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { groupBy, mapValues, omit, trimEnd } from \"lodash\";\r\nimport ConfirmContext from \"../../../utils/confirmContext\";\r\nexport function CarSpecsTile({ modelslug = null, group, type, showPric, name, price, image, buyOnline, spec, backupImage, hp, cylinders, liter, seats, petrol, offerIndex = 0, productID, colorID, productTarget, brand, hybird, newCar, modelYear }) {\r\n const { t: trans } = useTranslation([\"common\", \"car\", \"offers\", \"vehicales\", \"model\", \"info\"]);\r\n const specRef = useRef(null);\r\n const [specHeight, setHeight] = useState(0);\r\n const lang = localStorage.getItem(\"i18nextLng\");;\r\n const languageDir = 'language-' + localStorage.getItem(\"i18nextLng\");\r\n const context = useContext(ConfirmContext);\r\n\r\n function showData() {\r\n\r\n let vx = document.getElementsByClassName(\"is-show\");\r\n \r\n // vx.map((ev)=> {\r\n // ev.style.height= '0px'\r\n // });\r\n\r\n Array.from(vx).forEach((ev) => {\r\n ev.style.height = '0px';\r\n });\r\n\r\n setTimeout(()=>{\r\n setHeight(specHeight <= 0 ? specRef.current.scrollHeight : 0);\r\n }, 5);\r\n\r\n \r\n }\r\n const [features, setFeatures] = useState([]);\r\n useEffect(() => {\r\n formatFeatures();\r\n }, []);\r\n\r\n useEffect(() => {\r\n\r\n if (modelslug != null && productTarget != null) {\r\n if (productTarget?.toLowerCase() == modelslug?.toLowerCase() && specHeight <= 0) {\r\n showData();\r\n if (specRef?.current?.scrollHeight) {\r\n\r\n window.scrollTo({\r\n top: specRef?.current?.offsetTop - 200,\r\n behavior: 'smooth'\r\n /* you can also use 'auto' behaviour\r\n in place of 'smooth' */\r\n });\r\n }\r\n\r\n }\r\n }\r\n }, [modelslug, productTarget, specRef?.current?.scrollHeight]);\r\n // to format the features\r\n const formatFeatures = async () => {\r\n try {\r\n const splittedValues = spec?.split('\\n');\r\n if (productTarget) {\r\n // axios.post(\r\n // config.baseURL + 'func',\r\n // {\r\n // \"name\": \"SiteGetCarModelProperities\",\r\n // \"values\": {\r\n // \"ID\": `${productID}`\r\n // }\r\n // }\r\n // ).then(response => {\r\n // const values = response.data.map(item => {\r\n // return item[`${trans(\"model:description\")}`]\r\n // });\r\n // const unionValues = union(splittedValues, values);\r\n // setFeatures(unionValues);\r\n // }).catch(error => {\r\n // setFeatures(splittedValues);\r\n // console.log('Error no values were coming by request', error);\r\n // });\r\n\r\n\r\n await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"name\": \"Fetch_InvProductsEquipments\",\r\n \"values\": {\r\n \"GUID\": `${productTarget}`\r\n }\r\n }\r\n ).then(response => {\r\n\r\n const groupResult = mapValues(groupBy(response.data, 'ID'), fList => fList.map(items => omit(items, 'ID')));\r\n\r\n var dataFinal = [];\r\n Object.keys(groupResult)?.map((key, index) => {\r\n\r\n var data = [];\r\n var note = \"\";\r\n groupResult[key].forEach((a, i) => {\r\n if (lang == \"ar\") {\r\n note = note + a.DescriptionAr + \"\\n\" + a.NoteAr + \"\\n\";\r\n a.note = note;\r\n } else {\r\n note = note + a.DescriptionEn + \"\\n\" + a.NoteEn + \"\\n\";\r\n a.note = note;\r\n }\r\n\r\n if (i == (groupResult[key].length - 1))\r\n data = [...data, a];\r\n\r\n })\r\n dataFinal = [...dataFinal, ...data];\r\n\r\n })\r\n\r\n // const unionValues = union(splittedValues, values);\r\n setFeatures(dataFinal);\r\n }).catch(error => {\r\n // setFeatures(splittedValues);\r\n console.log('Error no values were coming by request', error);\r\n });\r\n\r\n\r\n }\r\n } catch (error) {\r\n console.log(`Error in spliting values ${error}`);\r\n }\r\n };\r\n function sendRequest() {\r\n try {\r\n context.onShow({\r\n\r\n displayConfirm: true,\r\n title: name,\r\n image: image,\r\n brand: brand,\r\n type: type,\r\n isHyper: hybird,\r\n isNew: newCar,\r\n defaultColorID: colorID,\r\n modelYear: modelYear,\r\n cartDetails: {\r\n id: productID,\r\n name: name,\r\n brand: brand,\r\n image: image,\r\n Type: \"car\",\r\n },\r\n carOrder: {\r\n vehicle: productID,\r\n group: group\r\n },\r\n });\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n {name}\r\n\r\n {/*
    \r\n {trans(\"offers:offer\") + ' ' + offerIndex}\r\n
    */}\r\n
    \r\n
    \r\n
    \r\n

    \r\n {name}\r\n

    \r\n {showPric &&
    \r\n {trans(\"info:product_price\")}\r\n

    \r\n \r\n

    \r\n
    }\r\n
    \r\n
    \r\n {(buyOnline == true) && {trans(\"info:Available_for_purchase_online\")}}\r\n \r\n
    \r\n \r\n {trans(\"info:buy\")}\r\n \"hassan\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n {cylinders}\r\n {trans(\"car:cylinders\")}\r\n \r\n
    \r\n \"engine\"\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n {seats}\r\n {trans(\"car:seats\")}\r\n \r\n
    \r\n \"engine\"\r\n
    \r\n
    \r\n
    \r\n \r\n {hp}\r\n {trans(\"car:horse\")}\r\n \r\n
    \r\n \"engine\"\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n {liter}\r\n {trans(\"car:liter\")}\r\n \r\n
    \r\n \"engine\"\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n {petrol}\r\n {trans(\"vehicales:veh-petrol\")}\r\n \r\n
    \r\n \"petrol\"\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n\r\n\r\n
    \r\n\r\n {\r\n features?.map((details, index) => {\r\n return (\r\n (details[\"note\"] && details[\"note\"].split('\\n').length > 0 && details[\"note\"].split('\\n')[0] != \"null\" && trimEnd(details[\"note\"]).toString() != \"\") ?\r\n
    \r\n

    {lang == \"ar\" ? details?.sectionAr : details?.sectionEn}

    \r\n\r\n
      \r\n {\r\n details[\"note\"].split('\\n').map((note, index) => {\r\n\r\n return (\r\n\r\n trimEnd(note) ?\r\n
    • \r\n {note}\r\n
    • \r\n : null\r\n\r\n );\r\n })\r\n }\r\n
    \r\n
    \r\n : null\r\n );\r\n })\r\n }\r\n\r\n
    \r\n\r\n {/*
    \r\n
      \r\n {\r\n features?.map((item, index) => {\r\n return (\r\n
    • \r\n {\r\n item\r\n }\r\n
    • \r\n )\r\n })\r\n }\r\n
    \r\n
    */}\r\n
    \r\n );\r\n}\r\n\r\n","import { Fragment, useCallback, useEffect, useState } from \"react\";\r\nimport { CarSpecsTile } from \"../components/carSpecsTile\";\r\nimport { useParams } from \"react-router\";\r\nimport axios from \"axios\";\r\nimport { slugSplitter } from \"../../../utils/slugManager\";\r\nimport config from \"../../../configuration/config.json\";\r\nexport function VehicleSpecsPage({ modelslug, vehicle }) {\r\n\r\n const { slug, brand } = useParams();\r\n const [models, setModels] = useState([]);\r\n const [backUpImage, setBackUpImage] = useState(\"\");\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n\r\n useEffect(() => {\r\n\r\n setModels([]);\r\n setBackUpImage(\"\");\r\n\r\n if (vehicle?.group)\r\n callback(vehicle);\r\n }, [slug, vehicle]);\r\n const callback = useCallback(async (vehicle) => {\r\n try {\r\n setModels([]);\r\n setBackUpImage(\"\");\r\n\r\n\r\n try {\r\n if (\"caches\" in window) {\r\n var curl = lang + \"/api/VehicleSpecs/\" + slugSplitter(vehicle?.group) + \"/\" + vehicle?.year + \"/specs\";\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"VehicleSpecsPage\");\r\n\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n curl\r\n );\r\n var datacash = await cachedResponse?.json();\r\n\r\n if (datacash) {\r\n setModels(datacash.models);\r\n setBackUpImage(datacash.backupImage);\r\n\r\n }\r\n\r\n\r\n\r\n }\r\n } catch (error) {\r\n\r\n }\r\n\r\n const response = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/VehicleSpecs/\" + slugSplitter(vehicle?.group) + \"/\" + vehicle?.year + \"/specs\",\r\n method: \"get\",\r\n });\r\n\r\n setModels(response.data.models);\r\n setBackUpImage(response.data.backupImage);\r\n\r\n const dataResponse = new Response(JSON.stringify(response.data));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"VehicleSpecsPage\").then((cache) => {\r\n cache.put(lang + \"/api/VehicleSpecs/\" + slugSplitter(vehicle?.group) + \"/\" + vehicle?.year + \"/specs\", dataResponse);\r\n\r\n });\r\n }\r\n } catch (error) {\r\n }\r\n }, [slug, brand]);\r\n return (\r\n \r\n\r\n
    \r\n\r\n {\r\n models?.map((model, index) => {\r\n return (\r\n\r\n \r\n );\r\n })\r\n }\r\n
    \r\n
    \r\n );\r\n}","import { useTranslation } from \"react-i18next\";\r\nimport config from \"../../../configuration/config.json\"\r\n\r\nexport const FeatureCard = ({ image = null, title = '', description = '' }) => {\r\n const {i18n} = useTranslation();\r\n const languageDir = \"language-\" + i18n.language;\r\n const dir = i18n.language == 'en' ? 'l' :'r';\r\n return (\r\n
    \r\n
    \r\n
    \r\n e.target.style.display = 'none'}/>\r\n
    \r\n
    \r\n

    \r\n {title}\r\n

    \r\n

    \r\n {description}\r\n

    \r\n
    \r\n
    \r\n
    \r\n )\r\n};","import { Fragment, useCallback, useEffect, useState } from \"react\";\r\nimport { useParams } from \"react-router\";\r\nimport axios from \"axios\";\r\nimport { slugSplitter } from \"../../../utils/slugManager\";\r\nimport { FeatureCard } from \"../components/featureCard\";\r\nimport config from \"../../../configuration/config.json\";\r\n\r\nexport function VehicleFeaturePage() {\r\n\r\n const { slug,group,year, brand } = useParams();\r\n const [features, setFeatures] = useState([]);\r\n\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n\r\n useEffect(() => {\r\n setFeatures([]);\r\n callback();\r\n }, [group, year]);\r\n const callback = useCallback(async () => {\r\n try {\r\n setFeatures([]);\r\n const response = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/VehicleFeature/\" + slugSplitter(brand) + \"/\" + group + \"/\"+ year +\"/feature\",\r\n method: \"get\",\r\n });\r\n\r\n setFeatures(response.data);\r\n\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }, [group,year, brand]);\r\n return (\r\n \r\n
    \r\n
    \r\n {\r\n features?.map((feature, index) => {\r\n return (\r\n \r\n );\r\n })\r\n }\r\n
    \r\n
    \r\n
    \r\n );\r\n}","import { Fragment, useCallback, useEffect, useState, useRef } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { FilterButton } from \"../../../components/__simple/_filterButton\";\r\nimport { useParams } from \"react-router\";\r\nimport axios from \"axios\";\r\nimport { slugSplitter } from \"../../../utils/slugManager\";\r\nimport config from \"../../../configuration/config.json\";\r\nimport ImageGallery from \"react-image-gallery\";\r\nexport function VehicleGalleryPage() {\r\n const { t: trans, i18n } = useTranslation([\"car\", \"new\"]);\r\n const { slug, brand, group,year } = useParams();\r\n const [gallery, setGallery] = useState([]);\r\n const [types, setTypes] = useState([]);\r\n const [filteredGallery, setFilteredGallery] = useState([]);\r\n const [filter, setFilter] = useState();\r\n const [innerCarImages, setInnerCarImages] = useState([]);\r\n const [outerCarImages, setOuterCarImages] = useState([]);\r\n const [wheels, setWheels] = useState([]);\r\n const [activePart, setActivePart] = useState(0);\r\n const popRef = useRef(null);\r\n const [activeImage, setActiveImage] = useState(0);\r\n const [isFullScreen, setIsFullScreen] = useState(false);\r\n let lang = i18n.language;\r\n\r\n useEffect(() => {\r\n setFilteredGallery([]);\r\n setInnerCarImages([]);\r\n setOuterCarImages([]);\r\n setWheels([]);\r\n\r\n callback();\r\n }, [group,year]);\r\n\r\n const callback = useCallback(async () => {\r\n try {\r\n\r\n const innerImages = [];\r\n const outerImages = [];\r\n const wheelsImages = [];\r\n const response = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/VehicleGallery/\" + slugSplitter(brand) + \"/\" + group +\"/\" + year + \"/gallery\",\r\n method: \"get\",\r\n });\r\n\r\n setTypes(response.data.types);\r\n setGallery(response.data.gallery);\r\n\r\n if (Array.isArray(response?.data?.gallery)) {\r\n const responseData = response.data;\r\n response?.data?.gallery?.map((item, index) => {\r\n item[\"original\"] = config.mainURL + item.imagePath;\r\n item[\"thumbnail\"] = config.mainURL + item.imagePath;\r\n item[\"originalHeight\"] = \"50\";\r\n item[\"originalWidth\"] = \"50\";\r\n item[\"sizes\"] = \"50\";\r\n item[\"fullscreen\"] = config.mainURL + item.imagePath;\r\n if (item?.type?.toLowerCase().includes(\"inner\")) {\r\n\r\n innerImages.push(item);\r\n\r\n } else if (item?.type?.toLowerCase().includes(\"wheel\")) {\r\n\r\n wheelsImages.push(item);\r\n } else {\r\n\r\n outerImages.push(item);\r\n\r\n }\r\n\r\n\r\n });\r\n\r\n\r\n\r\n setInnerCarImages(innerImages);\r\n setOuterCarImages(outerImages);\r\n setWheels(wheelsImages);\r\n\r\n\r\n\r\n }\r\n\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }, [group,year, brand]);\r\n\r\n\r\n useEffect(() => {\r\n // setFilteredGallery(gallery)\r\n\r\n const ap = outerCarImages.length > 0 ? 0 : (innerCarImages.length > 0 ? 1 : 2)\r\n if (wheels.length > 0 || outerCarImages.length > 0 || innerCarImages.length > 0) {\r\n filterImage(ap);\r\n setActivePart(ap);\r\n }\r\n\r\n\r\n }, [wheels, outerCarImages, innerCarImages])\r\n\r\n // useEffect(() => {\r\n // if (types.length > 0)\r\n // setFilter(types[0].name)\r\n // }, [types])\r\n\r\n function filterImage(filter) {\r\n // setFilter(filter);\r\n\r\n // let data = gallery.filter((img) => {\r\n // return img.type === filter;\r\n // });\r\n // console.log(\"outerImages>>>>>>>>>filterImage>>>>>>>>>>>>>>>>:\", filter);\r\n if (filter == 0) {\r\n setFilteredGallery(outerCarImages);\r\n } else if (filter == 1) {\r\n setFilteredGallery(innerCarImages);\r\n } else {\r\n setFilteredGallery(wheels);\r\n\r\n }\r\n setActiveImage(0);\r\n\r\n\r\n }\r\n\r\n return (\r\n \r\n
    \r\n {\r\n\r\n setIsFullScreen(e);\r\n }} />\r\n
    \r\n
    \r\n {/* {\r\n types.map(({ name }) => {\r\n return (\r\n filterImage(name)}\r\n isActive={filter === name}\r\n />\r\n )\r\n })\r\n } */}\r\n\r\n\r\n
    \r\n\r\n {\r\n outerCarImages?.length > 0 && {\r\n setActivePart(0);\r\n filterImage(0);\r\n\r\n }} name={trans(\"car:external-images\")} isActive={activePart == 0} />\r\n }\r\n {\r\n innerCarImages?.length > 0 && {\r\n setActivePart(1);\r\n filterImage(1);\r\n }} name={trans(\"car:internal-images\")} isActive={activePart == 1} />\r\n }\r\n {\r\n wheels?.length > 0 && {\r\n setActivePart(2);\r\n filterImage(2);\r\n }} name={trans(\"info:wheels\")} isActive={activePart == 2} />\r\n }\r\n\r\n\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n {\r\n filteredGallery?.map((img, index) => {\r\n return {\r\n\r\n setActiveImage(index);\r\n\r\n try {\r\n if (popRef) {\r\n\r\n // console.log(\">>>>>>>>>>>>>>>>>>>>>>>>>>:\", popRef.current.toggleFullScreen());\r\n popRef.current.toggleFullScreen();\r\n popRef.current.slideToIndex(index)\r\n }\r\n\r\n } catch (error) {\r\n\r\n }\r\n }}\r\n >\r\n\r\n e.target.style.display = 'none'}\r\n className={\"object-full object-cover \"\r\n // + (filter !== img.type ? \"hidden\" : \"\")\r\n\r\n }\r\n\r\n alt={img.name} />\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n
    \r\n })\r\n }\r\n \r\n
    \r\n );\r\n}","import config from \"../../../configuration/config.json\"\r\nexport function CarColorPicker({ color, active, imageBase64 = null, urlImageColor,name,...prop }) {\r\n let isActive = (color === active);\r\n if (imageBase64) {\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n e.target.style.display = 'none'}/>\r\n
    \r\n
    \r\n );\r\n } else if (urlImageColor) {\r\n return (\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n e.target.style.display = 'none'}/>\r\n
    \r\n
    \r\n );\r\n }\r\n return (\r\n
    \r\n {color}\r\n
    \r\n e.target.style.display = 'none'} />\r\n
    \r\n
    \r\n );\r\n}\r\n","import axios from \"axios\";\r\nimport { useState, useEffect, useContext } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Price } from \"../../../components/__simple/_price\";\r\nimport config from '../../../configuration/config.json';\r\nimport { union } from \"lodash\";\r\nimport ConfirmContext from \"../../../utils/confirmContext\";\r\nexport function CarModel({ group, type, image, name, spec, price, backupImage,\r\n offerIndex, extraSpecsTo = \"#\", productID, colorID, productTarget, brand, hybird, newCar,\r\n modelYear, showPric, brandID, buyOnline }) {\r\n const { t: trans } = useTranslation([\"common\", \"offers\", \"model\", \"info\"]);\r\n const [features, setFeatures] = useState([]);\r\n let langaugeDir = 'language-' + localStorage.getItem(\"i18nextLng\");\r\n const context = useContext(ConfirmContext);\r\n const isToyota = (brand == \"تويوتا\" || brand.toLowerCase() == \"toyota\");\r\n useEffect(() => {\r\n formatFeatures();\r\n console.log(\"CarModel brand:\", brand)\r\n }, []);\r\n // to format the features\r\n const formatFeatures = () => {\r\n try {\r\n const splittedValues = spec?.split('\\n');\r\n setFeatures(splittedValues);\r\n\r\n\r\n } catch (error) {\r\n console.log(`Error in spliting values ${error}`);\r\n }\r\n };\r\n function sendRequest() {\r\n try {\r\n context.onShow(\r\n {\r\n displayConfirm: true,\r\n title: name,\r\n image: image,\r\n brand: brand,\r\n type: type,\r\n brandID: brandID,\r\n isHyper: hybird,\r\n isNew: newCar,\r\n defaultColorID: colorID,\r\n modelYear: modelYear,\r\n cartDetails: {\r\n id: productID,\r\n name: name,\r\n brand: brand,\r\n image: image,\r\n Type: \"car\",\r\n },\r\n carOrder: {\r\n vehicle: productID,\r\n group: group\r\n }\r\n }\r\n );\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n return (\r\n
    \r\n\r\n
    \r\n\r\n {\"\"}/\r\n\r\n {/*
    \r\n {trans(\"offers:offer\") + ' ' + offerIndex}\r\n
    */}\r\n
    \r\n {(buyOnline == true) && {trans(\"info:Available_for_purchase_online\")}}\r\n
    \r\n
    \r\n e.target.style.display = 'none'}/>\r\n\r\n
    \r\n
    \r\n

    {name}

    \r\n\r\n\r\n
    \r\n\r\n\r\n
    \r\n\r\n\r\n

    \r\n {showPric && }\r\n

    \r\n {\r\n sendRequest();\r\n }}>\r\n\r\n
    \r\n {trans(\"info:buy\")}\r\n \"hassan\r\n
    \r\n\r\n \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n {\r\n (features?.length > 0) && (\r\n
      \r\n {\r\n features?.map((item, index) => {\r\n if (++index <= 5)\r\n return
    • \r\n {item}\r\n
    • \r\n })\r\n }\r\n {/*
    • */}\r\n {/* */}\r\n {/*
    • */}\r\n
    )\r\n }\r\n\r\n\r\n {\r\n // features?.length > 6 &&\r\n //
    \r\n // \r\n // {trans(\"common:show-more\")}\r\n // \r\n //
    \r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n {/*
    */}\r\n {/*
    00
    */}\r\n {/*
    */}\r\n {/* */}\r\n {/*
    */}\r\n {/*
    */}\r\n\r\n \r\n {trans(\"common:show-more\")}\r\n \r\n
    \r\n \r\n
    \r\n );\r\n}\r\n\r\n","import {useTranslation} from \"react-i18next\";\r\nimport {Link} from \"react-router-dom\";\r\n\r\nexport function PageLink({title, link, className}) {\r\n const {t: trans} = useTranslation(\"common\")\r\n return (\r\n
    \r\n

    {title}

    \r\n \r\n {trans(\"show-more\")}\r\n \r\n
    \r\n );\r\n}\r\n","import {useTranslation} from \"react-i18next\";\r\nimport config from \"../../../configuration/config.json\";\r\nexport function CarFeature({title, desc, image}) {\r\n\r\n return (\r\n
    \r\n
    \r\n {title}/\r\n
    \r\n
    \r\n

    {title}

    \r\n

    \r\n {desc}\r\n

    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\n","import { Fragment, useEffect, useState, useContext, useCallback, useRef } from \"react\";\r\nimport SwiperCore, { Pagination, Navigation, Autoplay, EffectFade } from \"swiper\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport { FilterButton } from \"../../../components/__simple/_filterButton\";\r\nimport { DropDownInput } from \"../../../components/_input/_dropdown\";\r\nimport { CarColorPicker } from \"../components/colorPicker\";\r\nimport { CarModel } from \"../components/carModel\";\r\nimport { PageLink } from \"../../../components/__simple/_pageLink\";\r\nimport Offer from \"../../../components/offer\";\r\nimport { CarFeature } from \"../components/carFeature\";\r\nimport Info from \"../../../components/_info\";\r\nimport axios from \"axios\";\r\nimport { useParams, useRouteMatch } from \"react-router\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport config from '../../../configuration/config.json';\r\nimport _ from \"lodash\";\r\nimport { toast } from 'react-toastify';\r\nimport ImageGallery from \"react-image-gallery\";\r\nimport OverViewContext from \"../overviewContext\";\r\nimport { slugCombine, slugSplitter } from '../../../utils/slugManager';\r\nimport { groupBy, mapValues, omit } from \"lodash\";\r\nimport PageHeading from \"../../../components/__simple/_pageheading\";\r\nSwiperCore.use([Pagination, Navigation, Autoplay, EffectFade]);\r\n\r\nexport function VehicleOverViewPage({ setSectionActive, mainurl, setIsLoding, currntvehicle }) {\r\n const { t: trans } = useTranslation([\"car\", \"heading\", \"vehicales\", \"model\", \"navbar\", \"finance\", \"inputs\", \"info\"]);\r\n const [selectedColor, setSelectedColor] = useState(null);\r\n const dispatch = useDispatch();\r\n const { slug, group, year, brand } = useParams();\r\n const [vehicle, setVehicle] = useState({});\r\n const [models, setModels] = useState([]);\r\n const [features, setFeatures] = useState([]);\r\n const [gallery, setGallery] = useState([]);\r\n const [isLoadingImages, setIsLoadingImages] = useState(false);\r\n const [vehicleOffers, setVehicleOffers] = useState([]);\r\n const [innerCarImages, setInnerCarImages] = useState([]);\r\n const [outerCarImages, setOuterCarImages] = useState([]);\r\n const [wheels, setWheels] = useState([]);\r\n const [carColors, setCarColors] = useState([]);\r\n const [activePart, setActivePart] = useState(0);\r\n const [carModels, setCarModels] = useState([]);\r\n const [selectedModel, setSelectedModel] = useState(null);\r\n const [allImagesCount, setAllImagesCount] = useState(0);\r\n const [activeColor, setActiveColor] = useState(\"\");\r\n const [activeModel, setActiveModel] = useState({});\r\n const [isFullScreen, setIsFullScreen] = useState(false);\r\n const [activeImage, setActiveImage] = useState(0);\r\n //---------------------------------------------------------\r\n const popRef = useRef(null);\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const { handleChangeOverViewContent } = useContext(OverViewContext);\r\n\r\n useEffect(() => {\r\n\r\n if (currntvehicle && currntvehicle?.productID != vehicle?.productID) {\r\n setIsLoding(true);\r\n setActiveModel({});\r\n setActiveOutColor(\"\");\r\n setActiveINColor(\"\");\r\n setSelectedColor(\"\");\r\n resetColorsValues();\r\n resetValues();\r\n setVehicle({});\r\n setModels([]);\r\n setFeatures([]);\r\n setGallery([]);\r\n setCarModels([]);\r\n setCarColors([]);\r\n setINCarColors([]);\r\n setOUTCarColors([]);\r\n\r\n\r\n\r\n\r\n\r\n setTimeout(() => {\r\n\r\n\r\n if (currntvehicle?.productID)\r\n callback(currntvehicle);\r\n\r\n\r\n }, 500)\r\n }\r\n\r\n }, [currntvehicle]);\r\n\r\n\r\n const callback = useCallback(async (currntvehicle) => {\r\n\r\n var curentCars;\r\n var firstItem = {};\r\n\r\n // try {\r\n // const response = await axios.request({\r\n // baseURL: config.controllURL,\r\n // url: lang + \"/api/VehicleOverview/\" + slugSplitter(brand) + \"/\" + slug + \"/overview\",\r\n // method: \"get\",\r\n // });\r\n\r\n // setVehicle(response.data.vehicle);\r\n // firstItem = response.data.vehicle;\r\n\r\n // await afterChangeDataType(firstItem);\r\n\r\n\r\n\r\n\r\n // } catch (error) {\r\n // console.log(error);\r\n\r\n // }\r\n\r\n // setVehicle(currntvehicle);\r\n firstItem = currntvehicle;\r\n\r\n // await afterChangeDataType(firstItem);\r\n //---------------------\r\n\r\n\r\n try {\r\n if (\"caches\" in window) {\r\n var curl = lang + \"/api/VehicleOverview/\" + slugSplitter(currntvehicle?.group) + \"/\" + currntvehicle?.year + \"/models\";\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"VehicleOverViewPage\");\r\n\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n curl\r\n );\r\n var datacash = await cachedResponse?.json();\r\n\r\n if (datacash && datacash?.length > 0) {\r\n setModels(datacash);\r\n if (datacash && datacash.length > 0) {\r\n\r\n afterChangeDataType(datacash[0]);\r\n setActiveModel(datacash[0]);\r\n }\r\n await getCarModels(datacash);\r\n \r\n }\r\n\r\n\r\n\r\n }\r\n } catch (error) {\r\n\r\n }\r\n\r\n try {\r\n const responsemodels = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/VehicleOverview/\" + slugSplitter(currntvehicle?.group) + \"/\" + currntvehicle?.year + \"/models\",\r\n method: \"get\",\r\n });\r\n\r\n curentCars = responsemodels.data.models;\r\n setModels(responsemodels.data.models);\r\n if (curentCars && curentCars.length > 0 &&activeModel?.productID) {\r\n\r\n afterChangeDataType(curentCars[0]);\r\n setActiveModel(curentCars[0]);\r\n }\r\n await getCarModels(responsemodels.data.models);\r\n\r\n \r\n\r\n const dataResponse = new Response(JSON.stringify(curentCars));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"VehicleOverViewPage\").then((cache) => {\r\n cache.put(lang + \"/api/VehicleOverview/\" + slugSplitter(currntvehicle?.group) + \"/\" + currntvehicle?.year + \"/models\", dataResponse);\r\n\r\n });\r\n }\r\n\r\n } catch (error) {\r\n console.log(error);\r\n\r\n }\r\n\r\n //---------------------\r\n var getCach = false;\r\n try {\r\n if (\"caches\" in window) {\r\n // var curl = lang + \"/api/VehicleOverview/\" + slugSplitter(brand) + \"/\" + slug + \"/overviewextra\";\r\n var curl = lang + \"/api/VehicleOverview/\" + slugSplitter(brand) + \"/\" + group + \"/\" + year + \"/overviewextra\";\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"VehicleOverViewPage\");\r\n\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n curl\r\n );\r\n var datacash2 = await cachedResponse?.json();\r\n\r\n if (datacash2) {\r\n\r\n setFeatures(datacash2.features);\r\n const filterG = [];\r\n\r\n datacash2?.gallery?.map((item, index) => {\r\n item[\"original\"] = config.mainURL + item.imagePath;\r\n item[\"thumbnail\"] = config.mainURL + item.imagePath;\r\n item[\"originalHeight\"] = \"50\";\r\n item[\"originalWidth\"] = \"50\";\r\n item[\"sizes\"] = \"50\";\r\n item[\"fullscreen\"] = config.mainURL + item.imagePath;\r\n filterG.push(item);\r\n\r\n\r\n });\r\n\r\n setGallery(filterG);\r\n\r\n if (setIsLoding) {\r\n setIsLoding(false);\r\n getCach = true;\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n }\r\n } catch (error) {\r\n\r\n }\r\n\r\n try {\r\n const response2 = await axios.request({\r\n baseURL: config.controllURL,\r\n // url: lang + \"/api/VehicleOverview/\" + slugSplitter(brand) + \"/\" + slug + \"/overviewextra\",\r\n url: lang + \"/api/VehicleOverview/\" + slugSplitter(brand) + \"/\" + group + \"/\" + year + \"/overviewextra\",\r\n method: \"get\",\r\n });\r\n\r\n setFeatures(response2.data.features);\r\n const filterG = [];\r\n\r\n response2?.data?.gallery?.map((item, index) => {\r\n item[\"original\"] = config.mainURL + item.imagePath;\r\n item[\"thumbnail\"] = config.mainURL + item.imagePath;\r\n item[\"originalHeight\"] = \"50\";\r\n item[\"originalWidth\"] = \"50\";\r\n item[\"sizes\"] = \"50\";\r\n item[\"fullscreen\"] = config.mainURL + item.imagePath;\r\n filterG.push(item);\r\n\r\n\r\n });\r\n\r\n setGallery(filterG);\r\n\r\n if (setIsLoding && getCach == false) {\r\n setIsLoding(false);\r\n }\r\n\r\n\r\n const dataResponse2 = new Response(JSON.stringify(response2.data));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"VehicleOverViewPage\").then((cache) => {\r\n // cache.put(lang + \"/api/VehicleOverview/\" + slugSplitter(brand) + \"/\" + slug + \"/overviewextra\", dataResponse2);\r\n cache.put(lang + \"/api/VehicleOverview/\" + slugSplitter(brand) + \"/\" + group + \"/\" + year + \"/overviewextra\", dataResponse2);\r\n\r\n });\r\n }\r\n\r\n\r\n } catch (error) {\r\n console.log(error);\r\n if (setIsLoding && getCach == false) {\r\n setIsLoding(false);\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n }, [group]);\r\n\r\n\r\n\r\n\r\n const [cashCarImages, setCashCarImages] = useState({});\r\n const [innerCarImagesJson, setInnerCarImagesJson] = useState(null);\r\n const [outerCarImagesJson, setOuterCarImagesJson] = useState(null);\r\n const fetchCarDesign = async (activeColor, model, partnum = activePart) => {\r\n\r\n if (isLoadingImages == false) {\r\n\r\n setIsLoadingImages(true);\r\n setFilterCarImages([]);\r\n var codeColor = partnum == 0 ? activeColor?.split(\"/\")[0] : activeColor?.split(\"/\")[1];\r\n var codeColorIN = activeColor?.split(\"/\")[1];\r\n var codeColorOUT = activeColor?.split(\"/\")[0];\r\n\r\n const Namefiled = \"frontImage,leftImage,backImage,sideImage,rightImage,mainColorImage\"\r\n const innerImages = [];\r\n const outerImages = [];\r\n const wheelsImages = [];\r\n\r\n setAllImagesCount(0);\r\n\r\n\r\n\r\n // if (partnum == 0) {\r\n // setOuterCarImages([]);\r\n // } else if (partnum == 1) {\r\n // setInnerCarImages([]);\r\n\r\n // } else {\r\n // setWheels([]);\r\n // }\r\n var imagesPart = [];\r\n const prefix = 'data:image/png;base64,';\r\n if (model) {\r\n // console.log(\"cashCarImages>>>>>>>>>>>>>>>>>>>>>>>>>:\", cashCarImages);\r\n // console.log(\"cashCarImages222>>>>>>>>>>>>>>>>>>>>>>>>>:\", cashCarImages[model + \"-part-\" + partnum]);\r\n if (cashCarImages[model + \"-part-\" + partnum]) {\r\n setIsLoadingImages(false);\r\n var AllCarImages = cashCarImages[model + \"-part-\" + partnum];\r\n var AllCarImagesIN = cashCarImages[model + \"-part-\" + 1];\r\n var AllCarImagesOUT = cashCarImages[model + \"-part-\" + 0];\r\n\r\n // console.log(\"fetchCarDesign AllCarImagesIN:\", AllCarImagesIN);\r\n // console.log(\"fetchCarDesign AllCarImagesOUT:\", AllCarImagesOUT);\r\n setOuterCarImagesJson(AllCarImagesOUT);\r\n setInnerCarImagesJson(AllCarImagesIN);\r\n if (AllCarImagesIN) {\r\n\r\n setInnerCarImages(AllCarImagesIN[codeColorIN]);\r\n } else {\r\n setInnerCarImages([]);\r\n\r\n }\r\n\r\n if (AllCarImagesOUT) {\r\n\r\n setOuterCarImages(AllCarImagesOUT[codeColorOUT]);\r\n } else {\r\n setOuterCarImages([]);\r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n } else {\r\n axios.post(\r\n config.baseURL + 'func',\r\n {\r\n //SiteFetchCarColorImages\r\n \"Name\": \"SiteFetchCarColorCodeImages\",\r\n \"Values\": {\r\n \"Id\": model,\r\n \"year\": year,\r\n // \"ColorID\": String(codeColor),\r\n \"ColorID\": null,\r\n \"FieldNameList\": null\r\n }\r\n }\r\n ).then(response => {\r\n setIsLoadingImages(false);\r\n var maincolorimageIndex = 0;\r\n if (Array.isArray(response.data)) {\r\n const responseData = response.data;\r\n // console.log(\"SiteFetchCarColorCodeImages responseData>>>>>>>>>>>>>>>>>>>>>>>>>:\", responseData);\r\n const groupResult = mapValues(groupBy(response.data, 'ColorCode'), fList => fList.map(items => omit(items, 'ColorCode')));\r\n\r\n var allcolor = [...OUTcolorsCode, ...INcolorsCode];\r\n\r\n\r\n allcolor?.map((key, index) => {\r\n var colorCodeItems = groupResult[key];\r\n if (colorCodeItems?.length > 0) {\r\n\r\n if (OUTcolorsCode?.includes(key)) {\r\n\r\n\r\n\r\n var cimage = cashCarImages[model + \"-part-\" + 0];\r\n\r\n if (!cimage) {\r\n\r\n cimage = {}\r\n }\r\n\r\n cimage[key] = colorCodeItems;\r\n cashCarImages[model + \"-part-\" + 0] = cimage;\r\n // cashCarImages[model + \"-\" + key + \"-part-\" + 0] = colorCodeItems;\r\n if (codeColorOUT == key) {\r\n imagesPart = colorCodeItems;\r\n setOuterCarImages(colorCodeItems);\r\n\r\n }\r\n\r\n } else if (INcolorsCode?.includes(key)) {\r\n\r\n var cimage = cashCarImages[model + \"-part-\" + 1];\r\n\r\n if (!cimage) {\r\n\r\n cimage = {}\r\n }\r\n\r\n cimage[key] = colorCodeItems;\r\n cashCarImages[model + \"-part-\" + 1] = cimage;\r\n // cashCarImages[model + \"-\" + key + \"-part-\" + 1] = colorCodeItems;\r\n if (codeColorIN == key) {\r\n\r\n imagesPart = colorCodeItems;\r\n setInnerCarImages(colorCodeItems);\r\n }\r\n\r\n\r\n } else {\r\n\r\n var cimage = cashCarImages[model + \"-part-\" + 2];\r\n\r\n if (!cimage) {\r\n\r\n cimage = {}\r\n }\r\n\r\n cimage[key] = colorCodeItems;\r\n cashCarImages[model + \"-part-\" + 2] = cimage;\r\n\r\n // cashCarImages[model + \"-\" + key + \"-part-\" + 2] = colorCodeItems;\r\n if (codeColor == key) {\r\n\r\n imagesPart = colorCodeItems;\r\n setWheels(colorCodeItems);\r\n }\r\n\r\n\r\n }\r\n }\r\n })\r\n\r\n\r\n\r\n\r\n\r\n // console.log(\"cashCarImages>>>>>>>>>>>>>>>>>>>>>>>>>:\", cashCarImages);\r\n\r\n\r\n const imagesCount = imagesPart?.length;\r\n setAllImagesCount(imagesCount);\r\n\r\n var AllCarImagesIN = cashCarImages[model + \"-part-\" + 1];\r\n var AllCarImagesOUT = cashCarImages[model + \"-part-\" + 0];\r\n setOuterCarImagesJson(AllCarImagesOUT);\r\n setInnerCarImagesJson(AllCarImagesIN);\r\n // console.log(\"fetchCarDesign AllCarImagesIN:\", AllCarImagesIN);\r\n // console.log(\"fetchCarDesign AllCarImagesOUT:\", AllCarImagesOUT);\r\n\r\n if (AllCarImagesIN) {\r\n\r\n setInnerCarImages(AllCarImagesIN[codeColorIN]);\r\n } else {\r\n setInnerCarImages([]);\r\n\r\n }\r\n\r\n if (AllCarImagesOUT) {\r\n\r\n setOuterCarImages(AllCarImagesOUT[codeColorOUT]);\r\n } else {\r\n setOuterCarImages([]);\r\n\r\n }\r\n\r\n // setAllCarImages([...outerImages, ...innerImages, ...wheelsImages])\r\n setIsLoadingImages(false);\r\n\r\n\r\n\r\n\r\n }\r\n }).catch(error => {\r\n console.log(error);\r\n setIsLoadingImages(false);\r\n cashCarImages[model + \"-part-\" + partnum] = {};\r\n });\r\n\r\n }\r\n\r\n }\r\n }\r\n };\r\n\r\n\r\n\r\n // to change the overview of the vehicle\r\n const handleRequestChangeOverview = (data, productID) => {\r\n let result = [];\r\n const finalItem = {\r\n name: null,\r\n isNew: false,\r\n isHybird: false,\r\n product: null,\r\n group: null,\r\n price: null,\r\n tax: null,\r\n discount: 0,\r\n modelTypes: null\r\n };\r\n try {\r\n if (data) {\r\n result = data.filter(item => {\r\n return String(item.productID) == productID\r\n });\r\n } else {\r\n result = models.filter(item => {\r\n return String(item.productID) == productID\r\n });\r\n }\r\n if (result.length > 0) {\r\n const itemValue = result[0];\r\n finalItem.modelTypes = itemValue?.type;\r\n finalItem.isHybird = itemValue?.hybird;\r\n finalItem.isNew = itemValue?.newCar;\r\n finalItem.product = itemValue?.productID;\r\n finalItem.name = itemValue?.name\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n handleChangeOverViewContent(finalItem);\r\n };\r\n // to get the active part of section\r\n const [filterCarImages, setFilterCarImages] = useState([]);\r\n const getActivePartSection = async (activePart, thisSelectedColorID = selectedColor?.ColorID, Model = activeModel) => {\r\n\r\n\r\n setFilterCarImages([]);\r\n setActivePart(activePart);\r\n let result = [];\r\n\r\n if (activePart === 0) {\r\n\r\n if (outerCarImages?.length > 0) {\r\n result = outerCarImages;\r\n\r\n }\r\n\r\n } else if (activePart === 1) {\r\n\r\n\r\n if (innerCarImages?.length > 0) {\r\n result = innerCarImages;\r\n\r\n }\r\n\r\n } else if (activePart === 2) {\r\n\r\n if (wheels?.length > 0) {\r\n result = wheels;\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n setFilterCarImages(result);\r\n return result;\r\n };\r\n // get the car colors by [id + model]\r\n const getCarColors = async (id) => {\r\n let colors = [];\r\n if (id) {\r\n try {\r\n const response = await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"site_fetchColorOfTypeWithOutImages\",\r\n \"Values\": {\r\n \"Type\": `${id}`,\r\n }\r\n }\r\n );\r\n if (response.status == 200) {\r\n colors = response.data;\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }\r\n return colors;\r\n };\r\n\r\n const [cashColors, setCashColors] = useState({});\r\n const handleFetchModelAvaliableColors = async (productTypeID, currentColorID, year, thisSelectedColorID = selectedColor?.ColorID) => {\r\n let _colors = [];\r\n\r\n\r\n try {\r\n\r\n if (cashColors[productTypeID]) {\r\n _colors = cashColors[productTypeID];\r\n setCarColors(_colors);\r\n let _default = null;\r\n\r\n _default = _colors.find(item => item.ColorID == thisSelectedColorID) ?? _colors.find(item => item.ColorID == currentColorID);\r\n\r\n\r\n setSelectedColor(_default);\r\n\r\n } else {\r\n\r\n const response = await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"site_fetchColorOfTypeWithOutImages\",\r\n \"Values\": {\r\n \"Type\": productTypeID,\r\n \"model\": year\r\n }\r\n }\r\n );\r\n\r\n if (response.status == 200) {\r\n\r\n var cc = { ...cashColors };\r\n cc[productTypeID] = response.data;\r\n setCashColors(cc);\r\n\r\n\r\n\r\n\r\n _colors = response.data;\r\n setCarColors(_colors);\r\n let _default = null;\r\n\r\n _default = _colors.find(item => item.ColorID === thisSelectedColorID) ?? _colors.find(item => item.ColorID === currentColorID);\r\n if (_default) {\r\n // filterPriceoffColor(_default);\r\n }\r\n\r\n setSelectedColor(_default);\r\n }\r\n\r\n }\r\n\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n\r\n\r\n\r\n return _colors;\r\n };\r\n\r\n\r\n const [INcolors, setINCarColors] = useState([]);\r\n const [OUTcolors, setOUTCarColors] = useState([]);\r\n const [INcolorsCode, setINCarColorsCode] = useState([]);\r\n const [OUTcolorsCode, setOUTCarColorsCode] = useState([]);\r\n useEffect(() => {\r\n\r\n var currentInColor = [];\r\n var IN_colors = [];\r\n var currentOutColor = [];\r\n var Out_colors = [];\r\n\r\n var jsoncolors = {};\r\n try {\r\n\r\n carColors?.forEach((item, i) => {\r\n\r\n jsoncolors[item.ColorID] = item;\r\n\r\n if (!currentOutColor.includes(item.ColorID?.split(\"/\")[0])) {\r\n\r\n Out_colors = [...Out_colors, { ColorDescription: item[lang == \"ar\" ? `ColorDescriptionAr` : `ColorDescriptionEn`]?.split(\"/\")[0], ColorID: item.ColorID?.split(\"/\")[0], ColorImage: item?.siteOutColorImage }]\r\n\r\n currentOutColor = [...currentOutColor, item.ColorID?.split(\"/\")[0]]\r\n }\r\n\r\n\r\n if (!currentInColor.includes(item.ColorID?.split(\"/\")[1])) {\r\n\r\n IN_colors = [...IN_colors, { ColorDescription: item[lang == \"ar\" ? `ColorDescriptionAr` : `ColorDescriptionEn`]?.split(\"/\")[1], ColorID: item.ColorID?.split(\"/\")[1], ColorImage: item?.siteInColorImage }]\r\n\r\n currentInColor = [...currentInColor, item.ColorID?.split(\"/\")[1]]\r\n }\r\n\r\n\r\n })\r\n\r\n\r\n setOUTCarColorsCode(currentOutColor);\r\n setINCarColorsCode(currentInColor);\r\n //---------------\r\n\r\n setINCarColors(IN_colors);\r\n setOUTCarColors(Out_colors);\r\n\r\n\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n\r\n }, [carColors]);\r\n const afterChangeDataType = async (firstItem, thisSelectedColorID = selectedColor?.ColorID, partnum = activePart) => {\r\n\r\n\r\n\r\n handleRequestChangeOverview(null, firstItem?.productID);\r\n const colors = await handleFetchModelAvaliableColors(firstItem?.type ?? firstItem?.Type, firstItem?.colorID ?? firstItem?.ColorID, firstItem?.year);\r\n\r\n\r\n var currentSelectedColor = colors?.filter(item => item.ColorID == thisSelectedColorID)?.length > 0 ? thisSelectedColorID : colors[0]?.ColorID;\r\n\r\n try {\r\n if (currentSelectedColor && currentSelectedColor?.split(\"/\")[0] && currentSelectedColor?.split(\"/\")[1]) {\r\n setActiveOutColor(currentSelectedColor?.split(\"/\")[0]);\r\n setActiveINColor(currentSelectedColor?.split(\"/\")[1]);\r\n\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n\r\n if (firstItem) {\r\n setCarColors(colors);\r\n // if (allImagesCount == null)\r\n fetchCarDesign(currentSelectedColor, firstItem?.productID);\r\n\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n // to fetch the car models\r\n const getCarModels = async (allModels) => {\r\n let models = [];\r\n try {\r\n models = allModels?.map((item) => {\r\n return {\r\n text: item.modelDescription, value: item.type\r\n }\r\n });\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n\r\n setCarModels(models);\r\n\r\n\r\n };\r\n // to reset all the state objects\r\n const resetValues = () => {\r\n setOuterCarImagesJson(null);\r\n setInnerCarImagesJson(null);\r\n setAllImagesCount(0);\r\n setInnerCarImages([]);\r\n setOuterCarImages([]);\r\n setWheels([]);\r\n };\r\n\r\n const resetColorsValues = () => {\r\n setOUTCarColors([]);\r\n setINCarColors([]);\r\n\r\n };\r\n\r\n const [activeINColor, setActiveINColor] = useState(\"\");\r\n const [activeOutColor, setActiveOutColor] = useState(\"\");\r\n useEffect(() => {\r\n\r\n if (vehicle?.type)\r\n setActiveModel(vehicle);\r\n\r\n if (vehicle?.colorID)\r\n setActiveColor(vehicle.colorID);\r\n\r\n if (vehicle?.colorID && vehicle?.colorID?.split(\"/\")[0] && vehicle?.colorID?.split(\"/\")[1]) {\r\n setActiveOutColor(vehicle?.colorID?.split(\"/\")[0]);\r\n setActiveINColor(vehicle?.colorID?.split(\"/\")[1]);\r\n }\r\n }, [vehicle]);\r\n\r\n\r\n useEffect(() => {\r\n // setActivePart(0);\r\n\r\n if (activeOutColor && activeINColor)\r\n setSelectedColor(carColors.filter(a => a.ColorID == (activeOutColor + \"/\" + activeINColor))[0]);\r\n\r\n\r\n\r\n if (INcolorsCode?.length > 0 && INcolorsCode?.length > 0 && activeOutColor && activeINColor && activeModel?.productID) {\r\n\r\n\r\n fetchCarDesign((activeOutColor + \"/\" + activeINColor), activeModel?.productID);\r\n // getActivePartSection(activePart);\r\n\r\n }\r\n }, [activeINColor, activeOutColor, INcolorsCode, OUTcolorsCode, activePart]);\r\n\r\n useEffect(() => {\r\n\r\n // setActivePart(activePart);\r\n getActivePartSection(activePart);\r\n\r\n }, [outerCarImages, innerCarImages, wheels, activePart]);\r\n\r\n useEffect(() => {\r\n\r\n\r\n if (isLoadingImages == false)\r\n getActivePartSection(activePart);\r\n\r\n }, [isLoadingImages]);\r\n\r\n\r\n const handelGetPartImages = (colorID, currentActivePart) => {\r\n\r\n\r\n };\r\n //---------------------------render----------------------------------\r\n return (\r\n \r\n\r\n
    \r\n\r\n {\r\n outerCarImagesJson &&\r\n {\r\n if (activePart != 0) {\r\n\r\n setActivePart(0);\r\n setFilterCarImages([]);\r\n }\r\n\r\n // getActivePartSection(0);\r\n }} name={trans(\"car:external-images\")} isActive={activePart == 0} />\r\n }\r\n {\r\n innerCarImagesJson &&\r\n {\r\n if (activePart != 1) {\r\n setActivePart(1);\r\n setFilterCarImages([]);\r\n }\r\n // getActivePartSection(1);\r\n }} name={trans(\"car:internal-images\")} isActive={activePart == 1} />\r\n }\r\n {\r\n wheels?.length > 0 &&\r\n {\r\n if (activePart != 2) {\r\n setActivePart(2);\r\n setFilterCarImages([]);\r\n }\r\n // getActivePartSection(2);\r\n }} name={trans(\"info:wheels\")} isActive={activePart == 2} />\r\n }\r\n\r\n\r\n
    \r\n {\r\n // allImagesCount > 0 &&\r\n
    \r\n \r\n {\r\n\r\n filterCarImages?.map((image, index) => {\r\n return (\r\n \r\n \r\n \r\n )\r\n })\r\n\r\n\r\n }\r\n \r\n
    \r\n\r\n }\r\n {\r\n activePart == 0 &&\r\n <>\r\n {\r\n\r\n

    {selectedColor && (lang == \"ar\" ? selectedColor?.ColorDescriptionAr?.split(\"/\")[0] : selectedColor?.ColorDescriptionEn?.split(\"/\")[0])}

    \r\n\r\n }\r\n
    \r\n\r\n {/* {\r\n OUTcolors.length > 0 &&\r\n

    {trans(\"car:exterior_color\")}:

    \r\n } */}\r\n\r\n {\r\n OUTcolors.length > 0 && OUTcolors.map((color, index) => {\r\n return (\r\n outerCarImagesJson && outerCarImagesJson[color.ColorID] &&\r\n {\r\n if (color.ColorID != activeOutColor) {\r\n // resetValues();\r\n setSelectedColor([]);\r\n setActiveOutColor(color.ColorID);\r\n // setActiveColor(color.ColorID);\r\n // setSelectedColor(color);\r\n // handleChangeCarColor(color.ColorID);\r\n }\r\n\r\n }}\r\n active={activeOutColor} />\r\n\r\n );\r\n })\r\n }\r\n\r\n\r\n
    \r\n \r\n\r\n\r\n }\r\n\r\n {\r\n activePart == 1 &&\r\n\r\n <>\r\n\r\n {\r\n\r\n

    {selectedColor && (lang == \"ar\" ? selectedColor?.ColorDescriptionAr?.split(\"/\")[1] : selectedColor?.ColorDescriptionEn?.split(\"/\")[1])}

    \r\n\r\n }\r\n
    \r\n\r\n {/* {\r\n INcolors.length > 0 &&\r\n

    {trans(\"car:interior_color\")}:

    \r\n } */}\r\n\r\n {\r\n\r\n INcolors.length > 0 && INcolors.map((color, index) => {\r\n return (\r\n innerCarImagesJson && innerCarImagesJson[color.ColorID] &&\r\n {\r\n if (color.ColorID != activeINColor) {\r\n // resetValues();\r\n setSelectedColor([]);\r\n setActiveINColor(color.ColorID);\r\n // setActiveColor(color.ColorID);\r\n // setSelectedColor(color);\r\n // handleChangeCarColor(color.ColorID);\r\n }\r\n\r\n }}\r\n active={activeINColor} />\r\n\r\n );\r\n })\r\n }\r\n\r\n\r\n
    \r\n \r\n\r\n\r\n }\r\n\r\n\r\n {/* \r\n {\r\n\r\n selectedColor &&\r\n

    {selectedColor?.ColorDescriptionAr?.split(\"/\")[1]}

    \r\n\r\n } */}\r\n {\r\n carModels && carModels?.length > 0 &&
    \r\n

    {trans(\"info:price_note\")}

    \r\n {\r\n if (value != activeModel.type) {\r\n // setActivePart(0);\r\n setSelectedColor(null);\r\n resetValues();\r\n resetColorsValues();\r\n // await handleChangeModel(value);\r\n\r\n\r\n var mo = models.filter(a => a.type == value)[0]\r\n\r\n\r\n\r\n afterChangeDataType(mo);\r\n setActiveModel(mo)\r\n }\r\n ;\r\n }}\r\n />\r\n
    \r\n }\r\n
    \r\n {/* */}\r\n
    \r\n \r\n\r\n \r\n
    \r\n \r\n {\r\n models?.map((model, index) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n })\r\n }\r\n\r\n \r\n
    \r\n {\r\n vehicleOffers?.length > 0 &&
    \r\n \r\n \r\n {\r\n\r\n vehicleOffers?.map((item, index) => {\r\n return (\r\n \r\n \r\n \r\n )\r\n })\r\n }\r\n \r\n\r\n
    \r\n }\r\n\r\n\r\n\r\n {\r\n\r\n features?.length > 0 &&
    \r\n \r\n\r\n
    \r\n {\r\n features?.map((feature, index) => {\r\n return (\r\n \r\n );\r\n })\r\n }\r\n\r\n
    \r\n
    \r\n }\r\n {\r\n gallery?.length > 0 &&
    \r\n \r\n\r\n
    \r\n {\r\n gallery?.map((img, index) => {\r\n return {\r\n\r\n setActiveImage(index);\r\n\r\n try {\r\n if (popRef) {\r\n\r\n\r\n popRef.current.toggleFullScreen();\r\n popRef.current.slideToIndex(index)\r\n }\r\n\r\n } catch (error) {\r\n\r\n }\r\n }}\r\n\r\n >\r\n e.target.style.display = 'none'}\r\n className={\"object-full object-cover\"}\r\n alt={\"car gellary\"}\r\n />\r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n
    \r\n })\r\n }\r\n\r\n
    \r\n \r\n }\r\n {/*
    \r\n \r\n
    */}\r\n\r\n\r\n
    \r\n {\r\n\r\n setIsFullScreen(e);\r\n }} />\r\n
    \r\n\r\n
    \r\n );\r\n}","import {useEffect, useState} from \"react\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport {CarBanner} from \"../components/carBanner\";\r\nimport axios from \"axios\";\r\nimport {Route, Switch, useLocation, useParams, useRouteMatch} from \"react-router\";\r\nimport {useDispatch} from \"react-redux\";\r\nimport {VehicleOfferPage} from \"./offers\";\r\nimport {VehicleSpecsPage} from \"./specs\";\r\nimport {VehicleFeaturePage} from \"./features\";\r\nimport {VehicleGalleryPage} from \"./gallery\";\r\nimport {VehicleOverViewPage} from \"./overview\";\r\nimport ConfirmContext from \"../../../utils/confirmContext\";\r\nimport {useContext, useCallback} from \"react\";\r\nimport OverViewContext from \"../overviewContext\";\r\nimport config from \"../../../configuration/config.json\";\r\nimport {slugSplitter} from '../../../utils/slugManager';\r\nimport {Helmet} from \"react-helmet\";\r\n\r\nexport function VehicleDetailPage() {\r\n const {t: trans} = useTranslation([\"heading\", \"info\", \"vehicales\"]);\r\n let {path, url} = useRouteMatch();\r\n const dispatch = useDispatch();\r\n const {slug, brand, section, modelslug, group, year} = useParams();\r\n const [vehicle, setVehicle] = useState({});\r\n const [isLoding, setIsLoding] = useState(true);\r\n const [sectionActive, setSectionActive] = useState(\"public\");\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const context = useContext(ConfirmContext);\r\n const [vehicleInfo, setVehicleInfo] = useState({\r\n name: null,\r\n isNew: false,\r\n isHybird: false,\r\n product: null,\r\n group: null,\r\n price: null,\r\n tax: null,\r\n discount: 0,\r\n modelTypes: null\r\n });\r\n\r\n\r\n const location = useLocation();\r\n const query = new URLSearchParams(location.search);\r\n\r\n const handleChangeOverViewContent = (data) => {\r\n setVehicleInfo(data);\r\n };\r\n\r\n const callback = useCallback(async () => {\r\n try {\r\n setVehicle(null)\r\n\r\n\r\n try {\r\n if (\"caches\" in window) {\r\n // var curl = lang + \"/api/VehicleOverview/\" + 'يارس' + \"/\" + '2024' + \"/overview\";\r\n const curl = lang + \"/api/VehicleOverview/\" + group + \"/\" + year + \"/overview\";\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"VehicleDetailPage\");\r\n\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n curl\r\n );\r\n var datacash = await cachedResponse?.json();\r\n\r\n if (datacash) {\r\n\r\n setVehicle(datacash)\r\n }\r\n\r\n\r\n }\r\n } catch (error) {\r\n\r\n }\r\n\r\n\r\n const response = await axios.request({\r\n baseURL: config.controllURL,\r\n // url: lang + \"/api/VehicleOverview/\" + 'YARIS' + \"/\" + '2024' + \"/overview\",\r\n url: lang + \"/api/VehicleOverview/\" + group + \"/\" + year + \"/overview\",\r\n method: \"get\",\r\n })\r\n setVehicle(response.data.vehicle)\r\n\r\n const dataResponse = new Response(JSON.stringify(response.data.vehicle));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"VehicleDetailPage\").then((cache) => {\r\n // cache.put(lang + \"/api/VehicleOverview/\" + slugSplitter(brand) + \"/\" + slug + \"/overview\", dataResponse);\r\n cache.put(lang + \"/api/VehicleOverview/\" + group + \"/\" + year + \"/overview\", dataResponse);\r\n\r\n });\r\n }\r\n\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }, [group]);\r\n\r\n const handleSetSectionActive = (section) => {\r\n setSectionActive(section);\r\n };\r\n\r\n\r\n useEffect(() => {\r\n\r\n console.log(\"section>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>:\", section);\r\n if (section)\r\n setSectionActive(section);\r\n }, [section]);\r\n\r\n useEffect(() => {\r\n callback();\r\n }, [group]);\r\n\r\n const [seoPageInfo, setSeoPageInfo] = useState({});\r\n const siteFetchSeoCars = async () => {\r\n const response = await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"SiteFetchSeoCars\",\r\n \"Values\": {\r\n \"GroupID\": group,\r\n \"Year\": year\r\n }\r\n }\r\n );\r\n\r\n if (response.status == 200) {\r\n const resData = response.data[0];\r\n setSeoPageInfo(resData);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n siteFetchSeoCars()\r\n }, [group, year]);\r\n\r\n\r\n return (\r\n <>\r\n { seoPageInfo &&\r\n \r\n \r\n {\r\n seoPageInfo?.title &&\r\n {lang.toLowerCase() == 'ar' ? seoPageInfo?.title : seoPageInfo?.titleEn?? seoPageInfo?.title }\r\n }\r\n {\r\n seoPageInfo?.link &&\r\n \r\n\r\n }\r\n {\r\n seoPageInfo?.MetaDescription &&\r\n \r\n }\r\n {\r\n seoPageInfo?.MetaGroups &&\r\n \r\n }\r\n \r\n }\r\n \r\n \r\n {\r\n\r\n handleSetSectionActive(section);\r\n\r\n }}\r\n />\r\n {/* \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n\r\n {\r\n <>\r\n
    \r\n setIsLoding(v)}\r\n setSectionActive={(section) => {\r\n\r\n handleSetSectionActive(section);\r\n\r\n }}\r\n currntvehicle={vehicle}\r\n />\r\n
    \r\n\r\n {\r\n\r\n isLoding == false &&\r\n <>\r\n {/*
    \r\n \r\n
    */}\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n \r\n }\r\n\r\n \r\n }\r\n
    \r\n \r\n );\r\n}","import React, {useState} from \"react\";\r\n\r\nfunction CustomItemServices({moreLink, img, title, borderCSS = \"\",key}) {\r\n\r\n return (\r\n <>\r\n
    \r\n

    {title}

    \r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default CustomItemServices;\r\n","import axios from \"axios\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Link } from \"react-router-dom\";\r\nimport config from \"../../configuration/config.json\";\r\nfunction CarUser({\r\n id,\r\n img,\r\n name = \"إل سي 2020\",\r\n brand,\r\n brandIcon,\r\n brandImage,\r\n link,\r\n inputDate,\r\n onUpdate,\r\n fromToYear,\r\n showDetails = true,\r\n withMoreLinke = true,\r\n active = false,\r\n onclick\r\n}) {\r\n const { t: trans } = useTranslation([\"common\", \"info\"]);\r\n\r\n const isToyota = (brand?.toLowerCase() === \"تويوتا\" || brand?.toLowerCase() === \"toyota\");\r\n const handleRemoveUserCar = () => {\r\n if (window.confirm('هل ترغب بحث المركبة الحالة؟')) {\r\n try {\r\n axios.put(\r\n config.baseURL + 'update',\r\n {\r\n \"object\": \"siteUserCars\",\r\n \"values\": {\r\n \"IsDelete\": true\r\n },\r\n \"filters\": `where GUID = '${id}'`\r\n }\r\n ).then(response => {\r\n window.location.reload();\r\n }).catch(error => {\r\n console.log(error);\r\n })\r\n } catch (err) {\r\n console.log('error in deleting the vehicle', err);\r\n }\r\n }\r\n };\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n

    {name}

    \r\n
    \r\n {true &&
    \r\n {\r\n inputDate &&\r\n
    \r\n {trans(\"info:input_date\")}\r\n\r\n

    {inputDate}

    \r\n
    \r\n\r\n }\r\n\r\n {showDetails &&
    \r\n {\r\n handleRemoveUserCar(id);\r\n }}\r\n className={\"text-14 icon-btn\"}>\r\n \r\n \r\n {\r\n if (onUpdate) {\r\n onUpdate(id);\r\n }\r\n }}\r\n className={\"text-14 icon-btn\"}>\r\n \r\n \r\n
    \r\n }\r\n
    \r\n }\r\n
    \r\n
    \r\n\r\n );\r\n}\r\n\r\nexport default CarUser;","import { Link, useHistory } from \"react-router-dom\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useState } from \"react\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport SwiperCore, { Autoplay, EffectFade, Navigation, Pagination as SlidePagination } from \"swiper\";\r\nimport OfferSupportedCar from \"../pages/offers/compontents/car\";\r\nimport axios from 'axios';\r\nimport config from '../configuration/config.json';\r\nimport { Price } from \"./__simple/_price\";\r\nimport { toast } from \"react-toastify\";\r\nimport { getData, User_Data_Key } from \"../utils/localStorageManager\";\r\nimport CustomMoreServices from \"./CustomMoreServices\";\r\nimport Car from \"./car\";\r\nimport CustomItemServices from \"./CustomItemServices\";\r\nimport { slugCombine } from '../utils/slugManager';\r\nimport CarUser from \"../User/components/CarUser\";\r\nSwiperCore.use([SlidePagination, Navigation, Autoplay, EffectFade]);\r\n\r\n\r\nexport function OfferDetail({ desc, terms, slug, supportedCars, offerId, SupportedServices, SupportedMainServices, SupportedLastsServices, packages, handelActiceCar, handleActicePackage, handelActiceService,acticePackage }) {\r\n const { t: trans } = useTranslation([\"offers\", \"common\", \"error\", \"info\", \"extra\", \"global\"]);\r\n const history = useHistory();\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const languageDir = 'language-' + lang;\r\n const [indexPanel, setIndexPanel] = useState(\"1000\");\r\n const [id, setId] = useState(null);\r\n const [acticeCar, setActiceCar] = useState(null);\r\n // const [acticePackage, setActicePackage] = useState(null);\r\n const handleOrderRequest = async () => {\r\n\r\n\r\n const _isLogin = getData('isAuthenticated');\r\n if (_isLogin) {\r\n const userData = JSON.parse(getData(User_Data_Key, true));\r\n const userId = userData.id.toString().split('_')[1];\r\n const response = await axios.post(\r\n config.baseURL + \"details\",\r\n {\r\n \"Object\": \"SiteOfferReservation\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n },\r\n \"Filters\": `where offerId = ${offerId} and userId = ${userId}`\r\n });\r\n\r\n if (response.status == 200) {\r\n if (response.data.ApiObjectData.length != 0) {\r\n toast.error(trans(\"common:request-repeated\"));\r\n } else {\r\n axios.post(\r\n config.baseURL + \"add\",\r\n {\r\n \"Object\": \"SiteOfferReservation\",\r\n \"Values\": {\r\n \"UserID\": Number(userId),\r\n \"OfferID\": offerId,\r\n \"DescriptionAr\": userData.descriptionAr,\r\n \"DescriptionEn\": userData.descriptionEn,\r\n \"Email\": userData.email,\r\n \"Phone\": userData.phone\r\n }\r\n }\r\n ).then((response) => {\r\n toast.success(trans(\"common:order-request-success\"));\r\n }).catch((err) => {\r\n if (err.response && err.response.status == 400) {\r\n toast.error(trans(\"error:unknown_failure\"));\r\n }\r\n });\r\n }\r\n }\r\n return;\r\n }\r\n history.push(\"/offers/order/\" + slug);\r\n };\r\n\r\n const OnhandleActicePackage = async (Package) => {\r\n\r\n if (handleActicePackage)\r\n handleActicePackage(Package);\r\n\r\n }\r\n return (\r\n
    \r\n\r\n
    \r\n\r\n {/* {\r\n desc ?\r\n
    \r\n

    {trans(\"offers:offer\")}:

    \r\n

    \r\n {desc}\r\n

    \r\n
    \r\n : null\r\n } */}\r\n {/*
    \r\n\r\n\r\n
    \r\n {\r\n (desc || packages && packages.length > 0) &&\r\n
    \r\n
    \r\n
    setIndexPanel(indexPanel == \"1000\" ? \"000\" : \"1000\")}\r\n\r\n >\r\n

    {trans(\"offers:offer\")}

    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n {\r\n desc ?\r\n
    \r\n
      \r\n {\r\n desc?.split('\\n')?.map((item, index) => {\r\n\r\n return
    • \r\n {item}\r\n
    • \r\n })\r\n }\r\n
    \r\n\r\n
    \r\n : null\r\n }\r\n\r\n\r\n {\r\n packages && packages.length > 0 &&\r\n packages?.map((data, index) => {\r\n\r\n return (\r\n
    \r\n
    {\r\n\r\n OnhandleActicePackage(data);\r\n setActicePackage(data);\r\n }}\r\n\r\n >\r\n

    {data?.title}

    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n\r\n
    \r\n\r\n
    \r\n\r\n\r\n {\r\n data?.desc ?\r\n
    \r\n
      \r\n {\r\n data?.desc?.split('\\n')?.map((item, index) => {\r\n\r\n return
    • \r\n {item}\r\n
    • \r\n })\r\n }\r\n
    \r\n\r\n
    \r\n : null\r\n }\r\n\r\n
    \r\n );\r\n })\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n }\r\n
    \r\n\r\n
    \r\n\r\n {\r\n supportedCars != null && supportedCars.length > 0 ?\r\n\r\n <>
    \r\n\r\n

    {trans(\"offers:vehicles_supported\")}

    \r\n
    \r\n\r\n
    \r\n \r\n {\r\n supportedCars?.map((data, index) => {\r\n return (\r\n \r\n {\r\n\r\n setActiceCar(data.slug);\r\n if (handelActiceCar)\r\n handelActiceCar(data);\r\n }}\r\n\r\n withMoreLinke={false}\r\n key={index + 5000}\r\n // inputDate={data.InputDate}\r\n showDetails={false}\r\n active={data.slug == acticeCar}\r\n id={data.slug}\r\n img={data.image ? data.image : '/assets/images/eparts/default.png'}\r\n name={(data?.modelTypes + \" \" + data?.year)}\r\n brand={data.brand}\r\n\r\n // link={\"/user/vehicles/privateVehicles/\" + data.CarID + \"/\" + data.FetchType}\r\n />\r\n\r\n \r\n );\r\n })\r\n }\r\n\r\n \r\n
    \r\n \r\n : null\r\n }\r\n
    \r\n \r\n
    */}\r\n\r\n\r\n\r\n\r\n\r\n {/* {\r\n SupportedLastsServices != null && SupportedLastsServices.filter(a => a.packageId == acticePackage?.id).length > 0 &&\r\n
    \r\n
    \r\n
    setIndexPanel(indexPanel == \"3000\" ? \"000\" : \"3000\")}\r\n\r\n >\r\n
    \r\n

    {trans(\"offers:services_supported\")}

    \r\n\r\n
    \r\n

    {SupportedLastsServices?.length}

    \r\n\r\n
    \r\n
    \r\n\r\n \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n
    \r\n
    \r\n

    \r\n \r\n\r\n {SupportedLastsServices.filter(a => a.packageId == acticePackage?.id)?.map((_val, _index) => {\r\n return (\r\n\r\n \r\n
    {\r\n // setId(_val.ServiceID);\r\n if (handelActiceService) {\r\n\r\n // handelActiceService(_val);\r\n }\r\n\r\n }}>\r\n \r\n
    \r\n
    \r\n\r\n );\r\n })}\r\n\r\n\r\n\r\n \r\n
    \r\n\r\n\r\n
    \r\n\r\n\r\n }\r\n\r\n\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n } */}\r\n\r\n {\r\n terms &&\r\n
    \r\n
    \r\n
    setIndexPanel(indexPanel == \"2000\" ? \"000\" : \"2000\")}\r\n\r\n >\r\n

    {trans(\"offers:terms\")}

    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n {\r\n terms ?\r\n
    \r\n
      \r\n {\r\n terms?.split('\\n')?.map((item, index) => {\r\n\r\n return
    • \r\n {item}\r\n
    • \r\n })\r\n }\r\n
    \r\n\r\n
    \r\n : null\r\n }\r\n\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n }\r\n\r\n\r\n\r\n\r\n {\r\n // SupportedMainServices != null && SupportedMainServices.length > 0 ?\r\n // SupportedMainServices.map((ccItem, ccIndex) => {\r\n // return (\r\n\r\n // ccItem?.subService2GUID &&\r\n //
    \r\n //
    \r\n //
    \r\n // \r\n //

    \r\n // {lang == \"ar\" ? ccItem?.DescriptionAr : ccItem?.DescriptionEn}\r\n //

    \r\n //
    \r\n //
    \r\n //
    \r\n\r\n //
    \r\n // {\r\n\r\n // setId(serviceId);\r\n\r\n\r\n // }}\r\n\r\n // activeID={id}\r\n // />
    \r\n\r\n //
    \r\n\r\n // )\r\n // })\r\n // : null\r\n }\r\n\r\n\r\n {/* {trans(\"extra:order\")} */}\r\n
    \r\n \r\n );\r\n}\r\n","import { Fragment, useCallback, useEffect, useState } from \"react\";\r\nimport SwiperCore, { Pagination, Navigation, Autoplay, EffectFade } from \"swiper\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport axios from \"axios\";\r\nimport moment from \"moment\";\r\nimport { useParams } from \"react-router\";\r\nimport ErrorLabel from '../../components/error';\r\nimport { DropDownInput1 } from \"../../components/_input/_dropdown1\";\r\nimport { OfferDetail } from \"../../components/offerDetail\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport { getCleanSlug } from '../../utils/slugManager';\r\nimport config from \"../../configuration/config.json\";\r\nimport { DateInput3 } from \"../../components/_input/_dateInput_3\";\r\nimport Popup from \"../../User/popup\";\r\nimport CarUser from \"../../User/components/CarUser\";\r\nimport DatePicker from 'react-datepicker';\r\nimport { toast } from \"react-toastify\";\r\nimport PhoneDropDown from \"../../components/_input/_phoneDropDown\";\r\nimport { DateInput2 as DateInput } from \"../../components/_input/_dateInput_2\";\r\nimport { InputField } from \"../../components/_input/_input\";\r\nimport { DropDownInput } from \"../../components/_input/_dropdown\";\r\nimport { TextArea } from \"../../components/_input/_textArea\";\r\nimport { useUserCart } from '../../User/hooks/useUserCart';\r\nimport { GetMessages, formValidate } from '../../utils/validation';\r\nimport { Price } from \"../../components/__simple/_price\";\r\nimport { now } from \"moment\";\r\nimport Moment from \"react-moment\";\r\nimport SimpleButton from \"../../components/_input/SimpleButton\";\r\nimport Joi from \"joi\";\r\nimport { getData, User_Data_Key } from \"../../utils/localStorageManager\";\r\nSwiperCore.use([Pagination, Navigation, Autoplay, EffectFade]);\r\n\r\nexport function OfferDetailPage() {\r\n\r\n const { t: trans, i18n } = useTranslation([\"common\", \"offers\", \"extra\"]);\r\n let { slug } = useParams();\r\n const { changecartItem } = useUserCart();\r\n const languageDir = 'language-' + localStorage.getItem('i18nextLng');\r\n const [isLogin, setLogin] = useState(false);\r\n const [Branches, setBranches] = useState([]);\r\n const [showPopup, setShowPopup] = useState(false);\r\n const [showPopupPay, setShowPopupPay] = useState(null);\r\n const [banner, setBanner] = useState({});\r\n const [Note, setNote] = useState(\"\");\r\n const [packages, setPackages] = useState([]);\r\n const [years, setYears] = useState([]);\r\n const [isSendeng, setIsSendeng] = useState(false);\r\n const [error, setError] = useState({});\r\n const [indexPanel, setIndexPanel] = useState(\"1000\");\r\n const [requestForm, setRequestForm] = useState({\r\n lastName: '',\r\n firstName: '',\r\n phone: '',\r\n email: '',\r\n subject: '',\r\n date: '',\r\n time: '',\r\n messageContent: '',\r\n myCarID: '',\r\n SiteID: null,\r\n });\r\n const LoginSchema = Joi.object({\r\n date: Joi.string().required().messages(GetMessages()),\r\n time: Joi.string().required().messages(GetMessages()),\r\n // VIN: Joi.string().required().messages(GetMessages()),\r\n meterReading: Joi.string().required().messages(GetMessages()),\r\n SiteID: Joi.string().required().messages(GetMessages()),\r\n year: Joi.string().required().messages(GetMessages()),\r\n model: Joi.string().required().messages(GetMessages())\r\n });\r\n const notLoginSchema = Joi.object({\r\n date: Joi.date().required().messages(GetMessages()),\r\n time: Joi.date().required().messages(GetMessages()),\r\n // VIN: Joi.string().required().messages(GetMessages()),\r\n SiteID: Joi.string().required().messages(GetMessages()),\r\n meterReading: Joi.string().required().messages(GetMessages()),\r\n firstName: Joi.string().required().messages(GetMessages()),\r\n lastName: Joi.string().required().messages(GetMessages()),\r\n // email: Joi.string().email({ minDomainSegments: 2, tlds: { allow: false } }).messages(GetMessages()),\r\n phone: Joi.string().required().messages(GetMessages()),\r\n year: Joi.string().required().messages(GetMessages()),\r\n model: Joi.string().required().messages(GetMessages())\r\n });\r\n const [offer, setOffer] = useState(null);\r\n const [offerSupportedCars, setOfferSupportedCars] = useState([]);\r\n const [packageSupportedCars, setPackageSupportedCars] = useState([]);\r\n const [acticeService, setActiceService] = useState(null);\r\n const [acticeCar, setActiceCar] = useState(null);\r\n const [acticePackage, setActicePackage] = useState(null);\r\n let lang = i18n.language;\r\n useEffect(() => {\r\n callback();\r\n FetchOfferSupportedServicesSacondry();\r\n FetchOfferSupportedVehicles();\r\n GetBranch();\r\n }, []);\r\n\r\n useEffect(() => {\r\n\r\n try {\r\n window.tamaraWidgetConfig = {\r\n lang: lang,\r\n country: \"SA\",\r\n publicKey: \"71258997-64ec-418a-9cba-0d3849fa219f\"\r\n }\r\n\r\n\r\n window.TamaraFAQsFrame.render({ lang: lang })\r\n } catch (error) {\r\n\r\n }\r\n\r\n let data = {};\r\n\r\n try {\r\n data = JSON.parse(getData(User_Data_Key, true));\r\n } catch (error) {\r\n\r\n }\r\n try {\r\n\r\n if (getData('isAuthenticated'))\r\n setLogin(true);\r\n } catch (err) {\r\n //console.log(err);\r\n setLogin(false);\r\n }\r\n\r\n }, [lang]);\r\n\r\n var tamarFAQsConfig = {\r\n lang: 'ar', // Language. Default is Arabic\r\n styles: { // Custome style - Ignore this if you don't have any custome style\r\n width: '100%',\r\n height: '100%'\r\n },\r\n autoRender: false, // Auto render after the script is loaded. Default is 'true'\r\n tamaraLogo: false // Display tamara logo during loading content page. Default is 'true'\r\n }\r\n\r\n const [fullDatetime, setFullDatetime] = useState(null);\r\n useEffect(() => {\r\n\r\n try {\r\n\r\n if (requestForm?.date) {\r\n\r\n var md = new Date(requestForm?.date);\r\n try {\r\n if (requestForm?.time) {\r\n\r\n var Hours = requestForm?.time.split(\":\");\r\n\r\n md.setHours(Hours[0], Hours[1], 0);\r\n }\r\n } catch (error) {\r\n\r\n }\r\n var datetime = new moment(md).format('yyyy-MM-DD HH:mm:ss')\r\n // var datetime = md.toLocaleDateString(\"en-US\", { year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit', second: '2-digit' }).replaceAll(',', '').replaceAll('/', '-');\r\n setFullDatetime(datetime);\r\n console.log(\"datetime:\", datetime);\r\n }\r\n\r\n } catch (error) {\r\n }\r\n\r\n\r\n }, [requestForm]);\r\n useEffect(() => {\r\n\r\n var ly = [];\r\n\r\n try {\r\n if (acticeCar?.fromYear && acticeCar?.toYear) {\r\n\r\n ly.push({ value: acticeCar.fromYear, text: acticeCar.fromYear });\r\n var newy = parseInt(acticeCar.fromYear);\r\n for (var i = 0; i <= 30; i++) {\r\n\r\n newy = parseInt(newy) + 1;\r\n\r\n ly.push({ value: newy, text: newy });\r\n\r\n if (newy >= acticeCar?.toYear) {\r\n\r\n break;\r\n }\r\n }\r\n setYears(ly);\r\n\r\n }\r\n } catch (error) {\r\n\r\n }\r\n\r\n\r\n }, [acticeCar]);\r\n\r\n const callback = useCallback(async () => {\r\n try {\r\n\r\n\r\n try {\r\n\r\n if (\"caches\" in window) {\r\n let url = \"detail-\" + getCleanSlug();\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"OfferPage\");\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n url\r\n );\r\n var data = await cachedResponse?.json();\r\n if (data) {\r\n setBanner(data?.banner)\r\n setPackages(data?.packages)\r\n setOffer(data?.offer)\r\n setOfferSupportedCars(data?.offerSupportedCars)\r\n setPackageSupportedCars(data?.packagesSupportedCars)\r\n\r\n if (data?.packages.length == 1) {\r\n\r\n setActicePackage(data?.packages[0]);\r\n }\r\n\r\n }\r\n }\r\n\r\n } catch (error) {\r\n }\r\n const response = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/offers/detail/\" + getCleanSlug(),\r\n method: \"get\",\r\n });\r\n setBanner(response.data.banner)\r\n setPackages(response.data.packages)\r\n setOffer(response.data.offer)\r\n setOfferSupportedCars(response.data.offerSupportedCars)\r\n setPackageSupportedCars(response.data.packagesSupportedCars)\r\n\r\n if (response.data.packages.length == 1) {\r\n\r\n setActicePackage(response.data.packages[0]);\r\n }\r\n\r\n const Responsedata = new Response(JSON.stringify(response.data));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"OfferPage\").then((cache) => {\r\n cache.put(\"detail-\" + getCleanSlug(), Responsedata);\r\n\r\n });\r\n }\r\n\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }, [lang, slug])\r\n\r\n const FetchOfferSupportedServicesSacondry = useCallback(async () => {\r\n try {\r\n const cslug = await getCleanSlug();\r\n await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n //Site_FetchOfferSupportedServices\r\n \"name\": \"Site_FetchOfferSupportedServices\",\r\n \"values\": {\r\n \"slug\": cslug\r\n }\r\n }\r\n ).then(function (response) {\r\n\r\n var Mainservice = [];\r\n var Lastservice = [];\r\n var MainserviceIDS = [];\r\n response.data?.map((item, index) => {\r\n\r\n if (item?.ServiceID) {\r\n if (!Lastservice.includes(item)) {\r\n Lastservice.push(item);\r\n MainserviceIDS.push(item?.subService2);\r\n }\r\n } else if (item?.subService2) {\r\n\r\n if (!Mainservice.includes(item)) {\r\n\r\n Mainservice.push(item);\r\n }\r\n }\r\n\r\n });\r\n Mainservice = Mainservice.filter(item => !MainserviceIDS.includes(item?.subService2))\r\n setSupportedMainServices(Mainservice);\r\n setSupportedLastsServices(Lastservice);\r\n if (Lastservice[0])\r\n setActiceService(Lastservice[0]);\r\n\r\n setSupportedServices(response.data);\r\n setLoadingSupportedServices(false);\r\n\r\n\r\n const Responsedata = new Response(JSON.stringify(response.data));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"OfferPage\").then((cache) => {\r\n cache.put(\"Site_FetchOfferSupportedCampaignTransServices-\" + getCleanSlug(), Responsedata);\r\n\r\n });\r\n }\r\n\r\n }).catch(function (error) {\r\n console.log(error);\r\n setLoadingSupportedServices(false);\r\n });\r\n\r\n } catch (error) {\r\n }\r\n\r\n }, []);\r\n const [SupportedServices, setSupportedServices] = useState([]);\r\n const [SupportedMainServices, setSupportedMainServices] = useState([]);\r\n const [SupportedLastsServices, setSupportedLastsServices] = useState([]);\r\n const [isLoadingSupportedServices, setLoadingSupportedServices] = useState(true);\r\n const FetchOfferSupportedServices = useCallback(async () => {\r\n try {\r\n setLoadingSupportedServices(true);\r\n\r\n\r\n try {\r\n\r\n if (\"caches\" in window) {\r\n let url = \"Site_FetchOfferSupportedCampaignTransServices-\" + getCleanSlug();\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"OfferPage\");\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n url\r\n );\r\n var data = await cachedResponse?.json();\r\n if (data) {\r\n var Mainservice = [];\r\n var Lastservice = [];\r\n var MainserviceIDS = [];\r\n data?.map((item, index) => {\r\n\r\n if (item?.ServiceID) {\r\n if (!Lastservice.includes(item)) {\r\n Lastservice.push(item);\r\n MainserviceIDS.push(item?.subService2);\r\n }\r\n } else if (item?.subService2) {\r\n\r\n if (!Mainservice.includes(item)) {\r\n\r\n Mainservice.push(item);\r\n }\r\n }\r\n\r\n });\r\n Mainservice = Mainservice.filter(item => !MainserviceIDS.includes(item?.subService2))\r\n setSupportedMainServices(Mainservice);\r\n setSupportedLastsServices(Lastservice);\r\n if (Lastservice[0])\r\n setActiceService(Lastservice[0]);\r\n\r\n setSupportedServices(data);\r\n setLoadingSupportedServices(false);\r\n }\r\n }\r\n\r\n } catch (error) {\r\n }\r\n\r\n const cslug = await getCleanSlug();\r\n await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n //Site_FetchOfferSupportedServices\r\n \"name\": \"Site_FetchOfferSupportedCampaignTransServices\",\r\n \"values\": {\r\n \"slug\": cslug\r\n }\r\n }\r\n ).then(function (response) {\r\n\r\n var Mainservice = [];\r\n var Lastservice = [];\r\n var MainserviceIDS = [];\r\n response.data?.map((item, index) => {\r\n\r\n if (item?.ServiceID) {\r\n if (!Lastservice.includes(item)) {\r\n Lastservice.push(item);\r\n MainserviceIDS.push(item?.subService2);\r\n }\r\n } else if (item?.subService2) {\r\n\r\n if (!Mainservice.includes(item)) {\r\n\r\n Mainservice.push(item);\r\n }\r\n }\r\n\r\n });\r\n Mainservice = Mainservice.filter(item => !MainserviceIDS.includes(item?.subService2))\r\n setSupportedMainServices(Mainservice);\r\n setSupportedLastsServices(Lastservice);\r\n if (Lastservice[0])\r\n setActiceService(Lastservice[0]);\r\n\r\n setSupportedServices(response.data);\r\n setLoadingSupportedServices(false);\r\n\r\n\r\n const Responsedata = new Response(JSON.stringify(response.data));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"OfferPage\").then((cache) => {\r\n cache.put(\"Site_FetchOfferSupportedCampaignTransServices-\" + getCleanSlug(), Responsedata);\r\n\r\n });\r\n }\r\n\r\n }).catch(function (error) {\r\n console.log(error);\r\n FetchOfferSupportedServicesSacondry();\r\n });\r\n } catch (error) {\r\n console.log(error);\r\n setLoadingSupportedServices(false);\r\n }\r\n\r\n }, []);\r\n\r\n\r\n const [SupportedVehicles, setSupportedVehicles] = useState([]);\r\n const [isLoadingSupportedVehicles, setLoadingSupportedVehicles] = useState(true);\r\n const FetchOfferSupportedVehicles = useCallback(async () => {\r\n try {\r\n setLoadingSupportedVehicles(true);\r\n\r\n try {\r\n\r\n if (\"caches\" in window) {\r\n let url = \"Site_FetchOfferSupportedVehicles-\" + getCleanSlug();\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"OfferPage\");\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n url\r\n );\r\n var data = await cachedResponse?.json();\r\n if (data) {\r\n setSupportedVehicles(data);\r\n setLoadingSupportedVehicles(false);\r\n }\r\n }\r\n\r\n } catch (error) {\r\n }\r\n\r\n await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"name\": \"Site_FetchOfferSupportedVehicles\",\r\n \"values\": {\r\n \"slug\": getCleanSlug()\r\n\r\n }\r\n }\r\n ).then(function (response) {\r\n\r\n setSupportedVehicles(response.data);\r\n setLoadingSupportedVehicles(false);\r\n\r\n const Responsedata = new Response(JSON.stringify(response.data));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"OfferPage\").then((cache) => {\r\n cache.put(\"Site_FetchOfferSupportedVehicles-\" + getCleanSlug(), Responsedata);\r\n\r\n });\r\n }\r\n\r\n }).catch(function (error) {\r\n console.log(error);\r\n setLoadingSupportedVehicles(false);\r\n });\r\n } catch (error) {\r\n console.log(error);\r\n setLoadingSupportedVehicles(false);\r\n }\r\n\r\n }, []);\r\n\r\n const handelshowPup = (type) => {\r\n\r\n\r\n setShowPopup(true);\r\n }\r\n function SendResreve(VIN, MainServiceID, subServiceID, TypeServiceID, ServecID, ModelCode, UserID, Amount) {\r\n var thisSchema = null;\r\n\r\n if (isLogin) {\r\n\r\n thisSchema = LoginSchema;\r\n } else {\r\n thisSchema = notLoginSchema;\r\n\r\n }\r\n\r\n const result = formValidate(thisSchema, requestForm) ?? {};\r\n\r\n setError(result);\r\n if (Object.keys(result).length == 0 && isSendeng == false) {\r\n\r\n if (SupportedLastsServices?.length <= 0) {\r\n\r\n toast.warn(trans(\"offers:services_supported\") + \" (0)\");\r\n return;\r\n }\r\n\r\n setIsSendeng(true);\r\n\r\n var ServicesList = \"\";\r\n SupportedLastsServices.map((a) => {\r\n\r\n ServicesList += a.ServiceID + \",\"\r\n\r\n\r\n });\r\n\r\n var myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n\r\n var raw = {\r\n \"VIN\": requestForm?.VIN,\r\n \"Model\": acticeCar?.type,\r\n \"Year\": requestForm?.year ? requestForm?.year + \"\" : null,\r\n \"CarType\": acticeCar?.modelCode,\r\n \"UserID\": UserID ?? \"\",\r\n \"TotalAmount\": Amount ? Amount : 0,\r\n \"MainServiceID\": MainServiceID,\r\n \"subServiceID\": subServiceID,\r\n \"TypeServiceID\": TypeServiceID,\r\n \"ServiceID\": ServecID,\r\n \"RequiredServicesList\": ServicesList,\r\n \"Note\": Note,\r\n\r\n \"MeterReading\": requestForm?.meterReading,\r\n \"FirstName\": requestForm?.firstName,\r\n \"LastName\": requestForm?.lastName,\r\n \"phone\": requestForm?.phone,\r\n \"Email\": requestForm?.email,\r\n \"StoreID\": requestForm?.SiteID,\r\n \"Orderdate\": moment(requestForm?.date).format('YYYY-MM-DD'),\r\n \"OrderTime\": moment(requestForm?.time).format('HH:mm:ss'),\r\n \"PackageId\": acticeCar?.packageId ? acticeCar?.packageId + \"\" : null\r\n // \"PaymentMethodID\": paymentType == 1 ? \"Credit Card\" : (paymentType == 2 ? \"Sadad\" : (paymentType == 3 ? \"Installment\" : \"CashByBranch\")),\r\n\r\n\r\n\r\n };\r\n\r\n\r\n axios.request({\r\n url: config.controllURL + \"api/Service/ServiceRequestAdd\", headers: myHeaders,\r\n data: raw, method: \"POST\", responseType: \"json\"\r\n }).then(function (response) {\r\n //console.log(\"Service\", response.data)\r\n\r\n setShowPopup(false);\r\n toast.success(trans(\"info:reservation_completed_successfully\"));\r\n\r\n }\r\n ).then((response) => {\r\n //console.log('Error', response);\r\n setIsSendeng(false);\r\n })\r\n .catch(error => {\r\n //console.log('error', error);\r\n setIsSendeng(false);\r\n }\r\n\r\n\r\n\r\n );\r\n\r\n } else {\r\n console.log(\"result>>>>>>>>>>>>>>>>>:\", result);\r\n\r\n }\r\n }\r\n\r\n async function GetBranch() {\r\n\r\n const Body = {\r\n \"name\": \"site_FetchMaintenanceBranches\"\r\n };\r\n\r\n await axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n\r\n setBranches(response.data);\r\n\r\n\r\n setTimeout(() => {\r\n if (response?.data?.length == 1) {\r\n\r\n const val = { ...requestForm };\r\n val.SiteID = response?.data[0]?.SiteID;\r\n setRequestForm(val);\r\n }\r\n }, 1000);\r\n\r\n })\r\n .catch(function (error) {\r\n //console.log(error);\r\n });\r\n\r\n\r\n }\r\n\r\n const [listTimeAvailable, setListTimeAvailable] = useState([]);\r\n // const [maxTime, setMaxTime] = useState(0);\r\n // const [minTime, setMinTime] = useState(0);\r\n\r\n const webAvailableReshours = async (date = '') => {\r\n const Body = {\r\n \"name\": \"web_AvailableReshours\",\r\n \"values\": {\r\n \"Resdate\": date\r\n }\r\n }\r\n\r\n await axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n console.log(\"web_AvailableReshours:response\", response);\r\n if (response.status >= 200 && response.status < 299) {\r\n console.log(\"web_AvailableReshours:response\", response.statusText);\r\n if (response?.data && response?.data.length != 0) {\r\n response?.data.forEach((val, index) => {\r\n\r\n setListTimeAvailable(_lstTime => [..._lstTime, parseInt(val?.AvailableHour)]);\r\n });\r\n\r\n }\r\n }\r\n })\r\n .catch(function (error) {\r\n console.log(\"web_AvailableReshours:Error\", error);\r\n toast.warn(trans(\"form:please-choose-another-date\"));\r\n });\r\n }\r\n return (\r\n \r\n {/* \r\n {\r\n\r\n setActicePackage(value);\r\n setActiceCar(null);\r\n\r\n }}\r\n handelButton={(type) => {\r\n\r\n handelshowPup(type);\r\n }}\r\n /> */}\r\n\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n e.target.style.display = 'none'} />\r\n\r\n
    \r\n\r\n {\r\n SupportedVehicles != null && SupportedVehicles.length > 0 ?\r\n\r\n
    \r\n\r\n
    \r\n\r\n

    {trans(\"offers:vehicles_supported\")}

    \r\n\r\n
    \r\n

    {(acticePackage?.id ? SupportedVehicles.filter(a => a.packageId == acticePackage?.id) : SupportedVehicles)?.length}

    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n {\r\n (acticePackage?.id ? SupportedVehicles.filter(a => a.packageId == acticePackage?.id) : SupportedVehicles)?.map((data, index) => {\r\n return (\r\n \r\n {\r\n\r\n setActiceCar(data);\r\n\r\n }}\r\n\r\n withMoreLinke={false}\r\n key={index + 5000}\r\n // inputDate={data.InputDate}\r\n showDetails={false}\r\n active={data.slug == acticeCar?.slug}\r\n id={data.slug}\r\n img={data.image ? data.image : '/assets/images/eparts/default.png'}\r\n name={((lang == \"ar\" ? data?.brand : data?.brandEn) + \" \" + (lang == \"ar\" ? data?.group : data?.groupEn))}\r\n brand={data.brand}\r\n fromToYear={data?.fromYear + \"-\" + data?.toYear}\r\n\r\n // link={\"/user/vehicles/privateVehicles/\" + data.CarID + \"/\" + data.FetchType}\r\n />\r\n\r\n \r\n );\r\n })\r\n }\r\n\r\n \r\n
    \r\n
    \r\n : null\r\n }\r\n
    \r\n\r\n {\r\n offer &&\r\n
    \r\n
    \r\n

    \r\n {banner?.type}\r\n

    \r\n
    \r\n
    \r\n

    \r\n {banner?.title}\r\n

    \r\n

    \r\n {banner?.excerpt}\r\n

    \r\n\r\n {\r\n banner?.endDate ?\r\n
    \r\n

    {trans(\"offers:end-in\")}

    \r\n \r\n

    {trans(\"offers:day\")}

    \r\n

    |

    \r\n

    {trans(\"offers:date\")}

    \r\n \r\n
    \r\n : null\r\n }\r\n\r\n
    \r\n\r\n\r\n
    \r\n\r\n {\r\n packages && packages.length > 0 &&\r\n packages?.map((data, index) => {\r\n\r\n return (\r\n\r\n
    {\r\n\r\n setActiceCar(null);\r\n if (acticePackage?.id == data?.id) {\r\n setActicePackage(null);\r\n return;\r\n }\r\n setActicePackage(data);\r\n\r\n\r\n }}\r\n\r\n >\r\n
    \r\n

    {data?.title}

    \r\n
    \r\n\r\n {\r\n offer?.reservationOnly == true ?\r\n \"\"\r\n :\r\n
    \r\n \r\n
    \r\n }\r\n\r\n\r\n\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n\r\n

    {trans(\"offers:vehicles_supported\")}:

    \r\n

    {data?.desc}

    \r\n
    \r\n\r\n
    \r\n\r\n );\r\n })\r\n }\r\n\r\n
    \r\n\r\n\r\n {\r\n SupportedVehicles != null && SupportedVehicles.length > 0 ?\r\n\r\n
    \r\n\r\n
    \r\n\r\n

    {trans(\"offers:vehicles_supported\")}

    \r\n\r\n
    \r\n

    {(acticePackage?.id ? SupportedVehicles.filter(a => a.packageId == acticePackage?.id) : SupportedVehicles)?.length}

    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n {\r\n (acticePackage?.id ? SupportedVehicles.filter(a => a.packageId == acticePackage?.id) : SupportedVehicles)?.map((data, index) => {\r\n return (\r\n \r\n {\r\n\r\n setActiceCar(data);\r\n\r\n }}\r\n\r\n withMoreLinke={false}\r\n key={index + 5000}\r\n // inputDate={data.InputDate}\r\n showDetails={false}\r\n active={data.slug == acticeCar?.slug}\r\n id={data.slug}\r\n img={data.image ? data.image : '/assets/images/eparts/default.png'}\r\n name={((lang == \"ar\" ? data?.brand : data?.brandEn) + \" \" + (lang == \"ar\" ? data?.group : data?.groupEn))}\r\n brand={data.brand}\r\n fromToYear={data?.fromYear + \"-\" + data?.toYear}\r\n\r\n // link={\"/user/vehicles/privateVehicles/\" + data.CarID + \"/\" + data.FetchType}\r\n />\r\n\r\n \r\n );\r\n })\r\n }\r\n\r\n \r\n
    \r\n
    \r\n : null\r\n }\r\n\r\n {\r\n offer &&\r\n
    \r\n\r\n
    \r\n {\r\n\r\n handelshowPup(\"reserve\");\r\n }}\r\n />\r\n\r\n
    \r\n\r\n {\r\n offer?.reservationOnly == true ?\r\n <>\r\n :\r\n
    \r\n {\r\n\r\n\r\n // handelshowPup(\"cart\");\r\n\r\n\r\n if (acticePackage?.price && acticeCar?.type) {\r\n\r\n var objectCart =\r\n {\r\n id: acticeService?.ServiceID + '-' + acticeCar.type + '-' + acticeCar?.packageId,\r\n productID: acticeService?.ServiceID,\r\n name: acticeCar?.excerptAr,\r\n nameEn: acticeCar?.excerptEn,\r\n brand: acticeCar?.brand\r\n , brandEn: acticeCar?.brandEn\r\n , Tax: acticeCar?.Tax\r\n , image: banner?.image\r\n , Discount: acticeCar?.Discount\r\n , group: acticeCar?.group\r\n , groupEn: acticeCar?.groupEn\r\n , BrandID: acticeCar?.brandID\r\n , modelTypes: acticeCar?.DescriptionAr\r\n , modelTypesEn: acticeCar?.DescriptionEn\r\n , colorName: acticeCar['Color Araboc']\r\n , colorNameEn: acticeCar['Color English']\r\n , year: requestForm?.year\r\n , modelTypeID: acticeCar.type\r\n , MiniDownPayment: 0\r\n , price: acticePackage?.price\r\n , packageId: acticeCar?.packageId\r\n , Orderdate: fullDatetime\r\n , Type: \"Bouquet\",\r\n\r\n\r\n }\r\n\r\n changecartItem(objectCart?.productID, acticeCar?.ColorID, acticeCar.type, 1, null, acticeCar?.packageId, objectCart, fullDatetime);\r\n // addToCart(\r\n // {\r\n // id: VIN+'-'+SerciveID,\r\n // ProductID:SerciveID,\r\n // name:VIN,\r\n // price: infoPrice[0].Price,\r\n // Type:\"service\",\r\n\r\n // }\r\n // )\r\n setShowPopup(false);\r\n\r\n } else {\r\n // toast.warning(trans(\"info:can_reserve_service\"));\r\n\r\n toast.info(trans(\"info:select_car\"), {\r\n // style: { left: evt.target.offsetLeft ,top: evt.target.offsetTop },\r\n toastId: \"1\",\r\n // transition: \"Zoom\",\r\n // bodyStyle:{ top: \"10em\" ,left:\"5em\"}\r\n });\r\n\r\n // update a toast\r\n // toast.update(\"1\", {\r\n // content:trans(\"info:select_car\")\r\n // });\r\n\r\n }\r\n }} />\r\n
    \r\n }\r\n\r\n
    \r\n }\r\n\r\n {\r\n offer?.allowInstallments &&\r\n
    \r\n

    {trans(\"info:buy-now-pay-later\")}

    \r\n
    \r\n\r\n\r\n
    {\r\n\r\n\r\n setShowPopupPay(\"tabby\");\r\n }}\r\n\r\n >\r\n \r\n
    \r\n

    {trans(\"info:pay-4-interest-free-payments\")}\r\n {(acticePackage?.price / 4) ? <>{(lang == \"ar\" ? \" بقيمة \" : \" of \")} : null} \r\n\r\n

    \r\n \r\n
    \r\n
    \r\n\r\n\r\n\r\n
    {\r\n\r\n\r\n setShowPopupPay(\"tamara\");\r\n }}\r\n >\r\n\r\n {\r\n\r\n }\r\n \r\n\r\n\r\n
    \r\n

    {trans(\"info:pay-4-interest-free-payments\")}\r\n \r\n {(acticePackage?.price / 4) ? <>{(lang == \"ar\" ? \" بقيمة \" : \" of \")} : null}\r\n \r\n\r\n

    \r\n {/* */}\r\n\r\n \r\n {/* */}\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n }\r\n\r\n {\r\n (offer?.content) &&\r\n
    \r\n
    \r\n
    setIndexPanel(indexPanel == \"1000\" ? \"000\" : \"1000\")}\r\n\r\n >\r\n

    {trans(\"offers:offer\")}

    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n {\r\n offer?.content ?\r\n
    \r\n
      \r\n {\r\n offer?.content?.split('\\n')?.map((item, index) => {\r\n\r\n return
    • \r\n {item}\r\n
    • \r\n })\r\n }\r\n
    \r\n\r\n
    \r\n : null\r\n }\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n }\r\n\r\n\r\n
    \r\n\r\n }\r\n\r\n\r\n\r\n\r\n
    \r\n
    \r\n\r\n\r\n
    \r\n {/* */}\r\n {\r\n // packages?.length === 0 ?\r\n {\r\n setActiceCar(value);\r\n var pac = packages?.filter(a => a.id == value?.packageId)[0];\r\n if (pac) {\r\n setActicePackage(pac);\r\n }\r\n setShowPopup(true);\r\n\r\n }}\r\n handelActiceService={(value) => {\r\n // setActiceService(value)\r\n }}\r\n\r\n handleActicePackage={(value) => {\r\n setActicePackage(value);\r\n setActiceCar(null);\r\n setShowPopup(true);\r\n\r\n }}\r\n\r\n />\r\n // : null\r\n }\r\n {/* {\r\n packages?.map((data, index) => {\r\n var cars = [];\r\n if (packageSupportedCars != null)\r\n packageSupportedCars\r\n .map((car) => {\r\n if (car.packageId == data.id)\r\n cars.push(car);\r\n });\r\n return (\r\n \r\n );\r\n })\r\n } */}\r\n\r\n
    \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n

    {trans(\"info:request-offer\")}

    \r\n {\r\n setShowPopup(false)\r\n }}>×\r\n
    \r\n
    \r\n\r\n
    \r\n

    \r\n {banner?.type}\r\n

    \r\n
    \r\n
    \r\n

    \r\n {banner?.title}\r\n

    \r\n

    \r\n {banner?.excerpt}\r\n

    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n\r\n\r\n
    \r\n {\r\n\r\n !isLogin ?\r\n\r\n <>\r\n\r\n\r\n <>\r\n
    \r\n <>\r\n
    \r\n\r\n {\r\n const val = { ...requestForm };\r\n val.firstName = e.target.value;\r\n setRequestForm(val);\r\n }\r\n }\r\n />\r\n
    \r\n \r\n <>\r\n\r\n
    \r\n {\r\n const val = { ...requestForm };\r\n val.lastName = e.target.value;\r\n setRequestForm(val);\r\n }\r\n }\r\n />\r\n
    \r\n \r\n
    \r\n \r\n\r\n <>\r\n
    \r\n {\r\n\r\n const val = { ...requestForm };\r\n if (phoneNumber)\r\n val.phone = `+${countryCode}${phoneNumber}`;\r\n else\r\n val.phone = \"\";\r\n setRequestForm(val);\r\n }}\r\n />\r\n
    \r\n \r\n\r\n
    \r\n {\r\n const val = { ...requestForm };\r\n val.email = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n errorLabel={error?.email}\r\n placeholder={trans(\"form:email\")}\r\n name='email'\r\n />\r\n
    \r\n \r\n\r\n :\r\n null\r\n }\r\n\r\n {\r\n <>\r\n\r\n {\r\n (isLogin || (requestForm?.phone && requestForm?.lastName && requestForm?.firstName)) &&\r\n\r\n <>\r\n
    \r\n\r\n\r\n
    \r\n\r\n a.packageId == acticePackage?.id)).map(B => {\r\n return { value: B.slug, text: ((lang == \"ar\" ? B?.brand : B?.brandEn) + \" \" + (lang == \"ar\" ? B?.group : B?.groupEn)) };\r\n })]}\r\n onSelect={(value) => {\r\n\r\n console.log(\"onSelect:\", value);\r\n const val = { ...requestForm };\r\n val.model = value;\r\n val.year = null;\r\n setRequestForm(val);\r\n\r\n var car = (SupportedVehicles.filter(a => a.slug == value))[0];\r\n\r\n\r\n if (car) {\r\n\r\n setActiceCar(car);\r\n }\r\n\r\n }}\r\n\r\n />\r\n
    \r\n\r\n
    \r\n\r\n {\r\n const val = { ...requestForm };\r\n val.year = value + \"\";\r\n setRequestForm(val);\r\n }}\r\n\r\n />\r\n
    \r\n
    \r\n\r\n\r\n\r\n
    \r\n\r\n\r\n
    \r\n\r\n {\r\n const val = { ...requestForm };\r\n val.meterReading = e.target.value;\r\n setRequestForm(val);\r\n\r\n }} />\r\n
    \r\n\r\n
    \r\n\r\n {\r\n const val = { ...requestForm };\r\n val.VIN = e.target.value;\r\n setRequestForm(val);\r\n\r\n }} />\r\n
    \r\n
    \r\n \r\n }\r\n\r\n {\r\n\r\n ((requestForm?.meterReading && requestForm?.year && requestForm?.model)) &&\r\n <>\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n\r\n {\r\n const val = { ...requestForm };\r\n val.date = value;\r\n val.time = null;\r\n setRequestForm(val);\r\n setListTimeAvailable([]);\r\n\r\n if (val.date) {\r\n await webAvailableReshours(moment(value).format('yyyy-MM-DD'));\r\n }\r\n }}\r\n filterDate={(date) => {\r\n const today = new Date();\r\n const yesterday = new Date(today);\r\n yesterday.setDate(today.getDate() - 1);\r\n const day = date.getDay();\r\n return (day === 0 || day === 1 || day === 2 || day === 3 || day === 4 || day === 6)\r\n && (new Date(date).setHours(0, 0, 0) > yesterday.setHours(0, 0, 0)); // Sunday (0), Saturday (6)\r\n\r\n }}\r\n placeholderText={trans(\"form:maintenance-date\")}\r\n dateFormat=\"yyyy-MM-dd\"\r\n customInput={}\r\n />\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n const time = new Date();\r\n let res;\r\n\r\n if (requestForm.date && new Date(requestForm.date).toDateString() === new Date().toDateString()) {\r\n if (val > new Date().getHours()) {\r\n res = time.setHours(val, 0, 0);\r\n }\r\n } else if (requestForm.date && new Date(requestForm.date) > new Date()) {\r\n res = time.setHours(val, 0, 0);\r\n } else {\r\n res = time.setHours(val, 0, 0);\r\n }\r\n\r\n return res;\r\n })}\r\n isClearable={!!requestForm.time}\r\n selected={requestForm.time}\r\n onChange={(value) => {\r\n\r\n const val = { ...requestForm };\r\n val.time = value;\r\n setRequestForm(val);\r\n }}\r\n className=\"w-100\"\r\n\r\n placeholderText={trans(\"form:maintenance-time\")}\r\n showTimeSelect\r\n showTimeSelectOnly\r\n timeIntervals={60}\r\n timeInputLabel={trans(\"form:maintenance-time\")}\r\n\r\n timeCaption={trans(\"form:maintenance-time\")}\r\n // withPortal\r\n dateFormat=\"hh:mm aa\"\r\n // showTimeInput\r\n customInput={}\r\n />\r\n
    \r\n \r\n
    \r\n\r\n\r\n
    \r\n\r\n\r\n\r\n {\r\n <>\r\n {\r\n return { value: B.SiteID, text: lang === 'ar' ? B.DescriptionAr : B.DescriptionEn };\r\n })]}\r\n\r\n selectedValue={Branches?.length == 1 ? Branches[0]?.SiteID : requestForm?.SiteID}\r\n onSelect={(value) => {\r\n\r\n console.log(\"requestForm:\", requestForm);\r\n console.log(\"onSelect:\", value);\r\n const val = { ...requestForm };\r\n val.SiteID = value;\r\n setRequestForm(val);\r\n }}\r\n\r\n />\r\n\r\n\r\n {\r\n setNote(data);\r\n }}\r\n />\r\n\r\n\r\n \r\n }\r\n\r\n \r\n }\r\n\r\n \r\n }\r\n\r\n
    \r\n\r\n\r\n\r\n
    \r\n\r\n {\r\n packages && packages.length > 0 &&\r\n packages?.filter(a => a?.id == acticePackage?.id).map((data, index) => {\r\n\r\n return (\r\n\r\n
    {\r\n\r\n setActicePackage(data);\r\n\r\n }}\r\n\r\n >\r\n
    \r\n

    {data?.title}

    \r\n
    \r\n\r\n {\r\n offer?.reservationOnly == true ?\r\n \"\"\r\n :\r\n
    \r\n \r\n
    \r\n\r\n }\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n\r\n

    {trans(\"offers:vehicles_supported\")}:

    \r\n

    {data?.desc}

    \r\n
    \r\n\r\n
    \r\n\r\n );\r\n })\r\n }\r\n\r\n
    \r\n {/* \r\n {\r\n SupportedVehicles != null && (SupportedVehicles.filter(a => a.packageId == acticePackage?.id))?.length > 0 ?\r\n\r\n <>
    \r\n\r\n

    {trans(\"offers:vehicles_supported\")}

    \r\n
    \r\n

    {(acticePackage?.id ? SupportedVehicles.filter(a => a.packageId == acticePackage?.id) : SupportedVehicles)?.length}

    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n {\r\n (acticePackage?.id ? SupportedVehicles.filter(a => a.packageId == acticePackage?.id) : SupportedVehicles)?.map((data, index) => {\r\n return (\r\n \r\n\r\n\r\n {\r\n\r\n setActiceCar(data);\r\n\r\n }}\r\n\r\n withMoreLinke={false}\r\n key={index + 5000}\r\n // inputDate={data.InputDate}\r\n showDetails={false}\r\n active={data.slug == acticeCar?.slug}\r\n id={data.slug}\r\n img={data.image ? data.image : '/assets/images/eparts/default.png'}\r\n name={(data?.brand + \" \" + data?.group)}\r\n brand={data.brand}\r\n fromToYear={data?.fromYear + \"-\" + data?.toYear}\r\n // link={\"/user/vehicles/privateVehicles/\" + data.CarID + \"/\" + data.FetchType}\r\n />\r\n\r\n \r\n );\r\n })\r\n }\r\n\r\n \r\n
    \r\n \r\n : null\r\n } */}\r\n\r\n\r\n {/* {\r\n SupportedLastsServices != null && SupportedLastsServices.length > 0 ?\r\n <>\r\n
    \r\n\r\n

    {trans(\"offers:services_supported\")}

    \r\n
    \r\n

    {SupportedLastsServices?.length} {\" \"} {trans(\"global:services\")}

    \r\n\r\n
    \r\n
    \r\n {\r\n
    \r\n
    \r\n

    \r\n \r\n\r\n {SupportedLastsServices?.map((_val, _index) => {\r\n return (\r\n\r\n \r\n
    {\r\n // setActiceService(_val);\r\n\r\n }}>\r\n \r\n
    \r\n
    \r\n\r\n );\r\n })}\r\n\r\n\r\n\r\n \r\n
    \r\n\r\n\r\n
    \r\n\r\n\r\n }\r\n \r\n : null\r\n } */}\r\n\r\n\r\n\r\n\r\n
    \r\n
    \r\n
    {\r\n\r\n // const isLogin = getData('isAuthenticated')\r\n // if(!isLogin){\r\n // setVehicales([]);\r\n // toast.error(\"يرجى تسجيل الدخول اولا لجلب المركبات الخاصة بك\");\r\n // return;\r\n // }\r\n\r\n var cleanData = {};\r\n try {\r\n cleanData = JSON.parse(getData(User_Data_Key, true));\r\n } catch (e) {\r\n\r\n\r\n }\r\n\r\n // if (acticePackage?.price && acticeCar?.type)\r\n SendResreve(acticeCar?.type, acticeService?.mainService, acticeService?.subService1, acticeService?.subService2, acticeService?.ServiceID, null, cleanData?.custID, acticePackage?.price);\r\n\r\n\r\n\r\n }}>\r\n {trans(\"info:reserve\")}\r\n
    \r\n
    \r\n\r\n {\r\n offer?.reservationOnly == true ?\r\n \"\"\r\n :\r\n
    \r\n
    {\r\n\r\n if (acticePackage?.price && acticeCar?.type) {\r\n\r\n var objectCart =\r\n {\r\n id: acticeService?.ServiceID + '-' + acticeCar.type + '-' + acticeCar?.packageId,\r\n productID: acticeService?.ServiceID,\r\n name: acticeCar?.excerptAr,\r\n nameEn: acticeCar?.excerptEn,\r\n brand: acticeCar?.brand\r\n , brandEn: acticeCar?.brandEn\r\n , Tax: acticeCar?.Tax\r\n , image: banner?.image\r\n , Discount: acticeCar?.Discount\r\n , group: acticeCar?.group\r\n , groupEn: acticeCar?.groupEn\r\n , BrandID: acticeCar?.brandID\r\n , modelTypes: acticeCar?.DescriptionAr\r\n , modelTypesEn: acticeCar?.DescriptionEn\r\n , colorName: acticeCar['Color Araboc']\r\n , colorNameEn: acticeCar['Color English']\r\n , year: requestForm?.year\r\n , modelTypeID: acticeCar.type\r\n , MiniDownPayment: 0\r\n , price: acticePackage?.price\r\n , packageId: acticeCar?.packageId\r\n , Orderdate: fullDatetime\r\n , Type: \"Bouquet\",\r\n\r\n }\r\n\r\n changecartItem(objectCart?.productID, acticeCar?.ColorID, acticeCar.type, 1, null, acticeCar?.packageId, objectCart, fullDatetime, requestForm?.year);\r\n // addToCart(\r\n // {\r\n // id: VIN+'-'+SerciveID,\r\n // ProductID:SerciveID,\r\n // name:VIN,\r\n // price: infoPrice[0].Price,\r\n // Type:\"service\",\r\n\r\n // }\r\n // )\r\n setShowPopup(false);\r\n\r\n } else {\r\n toast.warning(trans(\"info:select_car\"));\r\n\r\n }\r\n }\r\n }>\r\n {trans(\"info:add_to_cart\")} \"hassan\r\n
    \r\n
    \r\n }\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n setShowPopupPay(null)\r\n }}>×\r\n
    \r\n\r\n {\r\n showPopupPay == \"tabby\" ?\r\n //
    \r\n \r\n //
    \r\n :\r\n\r\n //
    \r\n \r\n //
    \r\n\r\n\r\n }\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n );\r\n}","import { Link } from \"react-router-dom\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { CountDown } from \"./countDown\";\r\nimport { Price } from \"../../../components/__simple/_price\";\r\n// import {addToCart} from \"../../../_functions/cart\";\r\nimport { useUserCart } from '../../../User/hooks/useUserCart';\r\nimport { useEffect } from \"react\";\r\nimport config from \"../../../configuration/config.json\";\r\nexport function Campaign({ TotalAmountDiscount, TotalTime, startDate = new Date(), endDate = new Date(), CampaignType, Photo, Title, Description, DateFrom, DateTo, Type, DiscountAmount, BrandID, DiscountID, GUID, toyota = true, to = '/eparts/campaignorder', onChooseCompaign }) {\r\n const { t: trans, i18n } = useTranslation([\"eparts\", \"form\", \"info\"]);\r\n const { removecartItems, changecartItem } = useUserCart();\r\n const dir = i18n.language == 'en' ? 'l' : 'r';\r\n const image = Photo ? Photo : \"/assets/images/offers/bg.png\";\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n

    {(CampaignType === 1) ? trans(\"eparts:bauget\") : trans(\"eparts:discount\")}

    \r\n
    \r\n
    \r\n

    {Title}

    \r\n

    \r\n
    \r\n
    {Description}
    \r\n
    \r\n \"\"\r\n
    \r\n
    \r\n {\r\n if (onChooseCompaign)\r\n onChooseCompaign(true, DiscountID);\r\n }\r\n }>\r\n {trans(\"eparts:order-now\")}\r\n \r\n {\r\n\r\n var objectCart = \r\n {\r\n id: DiscountID,\r\n name:Title,\r\n price: TotalAmountDiscount,\r\n image: Photo,\r\n Type:\"Campaign\",\r\n\r\n }\r\n\r\n changecartItem(DiscountID, null, null, 1,null,null,objectCart);\r\n\r\n // addToCart(\r\n // {\r\n // id: DiscountID,\r\n // name:Title,\r\n // price: TotalAmountDiscount,\r\n // image: Photo,\r\n // Type:\"Campaign\",\r\n\r\n // }\r\n // )\r\n }\r\n }>\r\n {trans(\"info:add_to_cart\")}\r\n \"hassan\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n );\r\n}","import {useTranslation} from \"react-i18next\";\r\nimport {Link} from \"react-router-dom\";\r\nimport {LikeButton} from \"../../../components/__simple/_likeButton\";\r\nimport {Price} from \"../../../components/__simple/_price\";\r\nimport {useState} from \"react\";\r\n// import { addToCart } from \"../../../_functions/cart\";\r\nimport _ from \"lodash\";\r\nimport {useUserFavorite} from '../../../User/hooks/useUserFavorite';\r\nimport config from \"../../../configuration/config.json\";\r\nimport {useUserCart} from '../../../User/hooks/useUserCart';\r\n\r\nexport function Part(props) {\r\n const {t: trans} = useTranslation([\"common\", \"eparts\", \"info\"]);\r\n const {changeFavoriteItemState, isFavoriteItem} = useUserFavorite();\r\n const {removecartItems, changecartItem} = useUserCart();\r\n\r\n function getpric(SalesPriceBefor) {\r\n if (SalesPriceBefor > 0) {\r\n return (\r\n
    \r\n {trans(\"info:product_price\")}\r\n \r\n {props.SalesPriceBefor}{trans(\"common:rial\")}\r\n
    );\r\n } else {\r\n return (\r\n
    \r\n {trans(\"info:product_price\")}\r\n \r\n
    );\r\n }\r\n }\r\n\r\n const [lang, setlang] = useState(localStorage.getItem('i18nextLng'));\r\n const languageDir = 'language-' + localStorage.getItem('i18nextLng');\r\n let Description = \"Description....\";\r\n\r\n Description = lang === \"ar\" ? props.DescriptionAr : props.DescriptionEn;\r\n let imagePath = lang == \"ar\" ? \"/assets/images/eparts/PARTS_TOYOTA-AR-no-img.png\" : \"/assets/images/eparts/PARTS_TOYOTA-EN-no-img.png\";\r\n imagePath = (props.ProductImage) ? config.mainURL + props.ProductImage : imagePath;\r\n return (\r\n\r\n
    \r\n\r\n {\r\n changeFavoriteItemState(props.ProductID)\r\n }}\r\n />\r\n \r\n
    \r\n \"def\"\r\n e.target.style.display = \"none\"}\r\n />\r\n
    \r\n \r\n
    \r\n {\r\n\r\n var objectCart =\r\n {\r\n id: props?.ProductID,\r\n productID: props?.ProductID,\r\n name: props?.DescriptionAr,\r\n nameEn: props?.DescriptionEn,\r\n price: props?.NetSalePrice,\r\n image: imagePath,\r\n Type: \"part\",\r\n }\r\n\r\n changecartItem(props?.ProductID, null, null, 1, null, null, objectCart);\r\n // addToCart(\r\n // {\r\n // id: props.ProductID,\r\n // name: props.DescriptionAr,\r\n // price: props.NetSalePrice,\r\n // image: imagePath,\r\n // Type: \"part\",\r\n // })\r\n }}\r\n className=\"part-card-info-cart text-16 btn btn-primary\">\r\n {trans(\"add-to-cart\")}\r\n {trans(\"buy\")}\r\n e.target.style.display = \"none\"}\r\n />\r\n
    \r\n\r\n \r\n\r\n
    \r\n

    \r\n {trans(\"eparts:product_id\")} : {props.ProductNo}\r\n

    \r\n
    \r\n

    {Description}

    \r\n
    \r\n
    \r\n {getpric(props.SalesPriceBefor)}\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n \r\n\r\n );\r\n}\r\n\r\n","import { Fragment, useState } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport config from \"../configuration/config.json\";\r\n\r\nexport function ServiceBox({ key = null, titlebtn, categoryId, small = true, link, img, imgUrl = \"\", titleEn = \" \", subtitleEn = \" \", titleAr = \" \", subtitleAr = \" \" }) {\r\n const [lang, setlang] = useState(localStorage.getItem('i18nextLng'));\r\n let titel = lang === \"en\" ? titleEn : titleAr;\r\n let subtitel = lang === \"en\" ? subtitleEn : subtitleAr;\r\n let image = img !== null || img !== 'null' ? \"data:image/png;base64,\" + img : \"/assets/images/car-bg.png\";\r\n\r\n let imageUrl = (imgUrl !== null && imgUrl != 'null' && imgUrl != '') ? config.controllURL + imgUrl : (lang == \"ar\" ? \"/assets/images/eparts/PARTS_TOYOTA-AR-no-img.png\" : \"/assets/images/eparts/PARTS_TOYOTA-EN-no-img.png\");\r\n\r\n return (\r\n \r\n {\r\n\r\n if (link == null || link == undefined)\r\n e.preventDefault();\r\n\r\n }}\r\n >\r\n\r\n \r\n \r\n \r\n );\r\n}","export function SimpleBanner({ banner = \"/assets/images/eparts/2.png\", icon, title, subtitle, borderRadius = true }) {\r\n return (\r\n
    \r\n
    \r\n
    \r\n \"\"\r\n
    \r\n\r\n
    \r\n

    {title}

    \r\n

    {subtitle}

    \r\n
    \r\n\r\n
    \r\n {\r\n icon &&\r\n \"\"\r\n }\r\n
    \r\n\r\n\r\n
    \r\n );\r\n}\r\n\r\n","export function AboutBox({icon, title, subtitle}) {\r\n return (\r\n
    \r\n
    \r\n \"\"\r\n
    \r\n
    \r\n

    {title}

    \r\n

    {subtitle}

    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\n","import PageHeading from \"../components/__simple/_pageheading\";\r\n\r\nimport { AboutBox } from \"../components/__simple/_aboutBox\";\r\nimport { SwiperSlide, Swiper } from 'swiper/react';\r\nimport { useEffect, useState } from \"react\";\r\nimport axios from \"axios\";\r\nimport config from \"../configuration/config.json\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\n\r\nexport function AboutHJSection() {\r\n const { t: trans } = useTranslation(\"eparts\");\r\n\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const languageDir = 'language-' + lang;\r\n const [about, setAbout] = useState([]);\r\n\r\n useEffect(async () => {\r\n try {\r\n const response = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/sections/aboutHj\",\r\n method: \"get\",\r\n });\r\n setAbout(response.data)\r\n } catch (error) {\r\n\r\n }\r\n\r\n }, []);\r\n\r\n return (\r\n\r\n
    \r\n\r\n {\r\n\r\n about?.length > 0 &&\r\n \r\n }\r\n \r\n {\r\n\r\n about?.length > 0 &&\r\n
    \r\n {\r\n\r\n about?.map((item, index) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n })\r\n }\r\n\r\n
    \r\n\r\n }\r\n \r\n
    \r\n );\r\n}","import { useTranslation } from \"react-i18next\";\r\nimport config from \"../../../configuration/config.json\";\r\nfunction LandengSlide({ Titel, SubTitel, Desc, BtnText, BackOpicity, backImage,backImageUrl, viewSocialIcons }) {\r\n\r\n const { t: trans, i18n } = useTranslation([\"car\", \"common\", \"vehicales\", \"info\"]);\r\n const languageDir = 'language-' + localStorage.getItem(\"i18nextLng\");\r\n\r\n const lang = i18n.language;\r\n return (\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n backImageUrl && !backImage && (\r\n {Titel.toString()}\r\n e.target.style.display = 'none'}/>\r\n )\r\n }\r\n {\r\n backImage && !backImageUrl && (\r\n \"\"\r\n e.target.style.display = 'none'}/>\r\n )\r\n }\r\n
    \r\n\r\n\r\n
    \r\n\r\n {\r\n viewSocialIcons &&\r\n
    \r\n\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n\r\n }\r\n\r\n\r\n
    \r\n\r\n
    \r\n
    \r\n \r\n {SubTitel ? SubTitel : \" \"}\r\n \r\n

    \r\n\r\n {Titel ? Titel : \"\"}\r\n

    \r\n

    \r\n {Desc ? Desc : \"\"}\r\n

    \r\n { }\r\n
    \r\n { }\r\n
    \r\n\r\n {\r\n\r\n BtnText &&\r\n {\r\n // const section = document.querySelector('#search-car');\r\n // // section.scrollIntoView({ behavior: 'smooth', block: 'start' });\r\n\r\n var top = document.getElementById('search-car').offsetTop - 30;\r\n\r\n console.log(\"top>>>>>>>>>>>>>>>>\", top);\r\n // window.scrollTo(0, top);\r\n window.scrollTo({\r\n top: top,\r\n left: 0,\r\n behavior: \"smooth\",\r\n });\r\n\r\n }}\r\n className={\"bg-gray text-24 py-5\"}>{BtnText}\r\n }\r\n\r\n
    \r\n\r\n\r\n\r\n
    \r\n\r\n\r\n
    \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
    \r\n\r\n
    \r\n );\r\n\r\n\r\n}\r\n\r\nexport default LandengSlide;","import { useTranslation } from \"react-i18next\";\r\nimport config from \"../../../configuration/config.json\";\r\nfunction PartSlide({ Titel, SubTitel, Desc, BtnText, BackOpicity, backImage,backImageUrl, viewSocialIcons }) {\r\n\r\n const { t: trans, i18n } = useTranslation([\"car\", \"common\", \"vehicales\", \"info\"]);\r\n const languageDir = 'language-' + localStorage.getItem(\"i18nextLng\");\r\n\r\n const lang = i18n.language;\r\n return (\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n backImageUrl && !backImage && (\r\n {Titel.toString()}\r\n e.target.style.display = 'none'}/>\r\n )\r\n }\r\n {\r\n backImage && !backImageUrl && (\r\n \"\"\r\n e.target.style.display = 'none'}/>\r\n )\r\n }\r\n
    \r\n\r\n\r\n
    \r\n\r\n {\r\n viewSocialIcons &&\r\n
    \r\n\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n\r\n }\r\n\r\n\r\n
    \r\n\r\n
    \r\n
    \r\n \r\n {SubTitel ? SubTitel : \" \"}\r\n \r\n

    \r\n\r\n {Titel ? Titel : \"\"}\r\n

    \r\n

    \r\n {Desc ? Desc : \"\"}\r\n

    \r\n { }\r\n
    \r\n { }\r\n
    \r\n\r\n {\r\n\r\n BtnText &&\r\n {\r\n // const section = document.querySelector('#search-car');\r\n // // section.scrollIntoView({ behavior: 'smooth', block: 'start' });\r\n\r\n var top = document.getElementById('search-car').offsetTop - 30;\r\n\r\n console.log(\"top>>>>>>>>>>>>>>>>\", top);\r\n // window.scrollTo(0, top);\r\n window.scrollTo({\r\n top: top,\r\n left: 0,\r\n behavior: \"smooth\",\r\n });\r\n\r\n }}\r\n className={\"bg-gray text-24 py-5\"}>{BtnText}\r\n }\r\n\r\n
    \r\n\r\n\r\n\r\n
    \r\n\r\n\r\n
    \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n
    \r\n\r\n
    \r\n );\r\n\r\n\r\n}\r\n\r\nexport default PartSlide;","import React, {useEffect, useState} from 'react';\r\nimport {SwiperSlide, Swiper} from 'swiper/react';\r\nimport PartSlide from \"./partSlide\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport axios from \"axios\";\r\nimport config from \"../../../configuration/config.json\";\r\n\r\nconst SectionSlideEpart = () => {\r\n\r\n const {t: trans, i18n} = useTranslation([\"common\", \"inputs\", \"offers\", \"home\"]);\r\n const lang = i18n.language;\r\n\r\n const [slidEPartsList, setSlidEPartsList] = useState([]);\r\n\r\n const getSparePartsSlide = () => {\r\n const body = {\"name\": \"func_getSparePartsSlide\", \"values\": {\"lang\": lang.toLowerCase()}};\r\n\r\n axios.request({\r\n url: config.baseURL + \"func\",\r\n data: body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then((response) => {\r\n console.info(\"func_getSparePartsSlide:Coach > \", response.data);\r\n\r\n if (response.data && response.data.length > 0) {\r\n setSlidEPartsList(response.data);\r\n }\r\n\r\n })\r\n .catch((error) => {\r\n console.info(\"func_getSparePartsSlide:Coach > \", error);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n getSparePartsSlide();\r\n }, []);\r\n\r\n\r\n return (\r\n 0 ? \" \" : \" hidden \"} `}>\r\n {\r\n slide.update();\r\n }}\r\n >\r\n {\r\n slidEPartsList.map((slide, index) => {\r\n\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n )\r\n })\r\n }\r\n\r\n \r\n \r\n );\r\n};\r\n\r\nexport default SectionSlideEpart;\r\n","import react, { Fragment, useState, useEffect } from \"react\";\r\nimport Banner from \"../../components/banner\";\r\nimport { Campaign } from \"./components/campaign\";\r\nimport { Part } from \"./components/part\";\r\nimport PageHeading from \"../../components/__simple/_pageheading\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport SwiperCore, { Autoplay, EffectFade, Navigation, Pagination } from \"swiper\";\r\nimport { ServiceBox } from \"../../components/serviceBox\";\r\nimport { TestimonialSection } from \"../../sections/testimonialSection\";\r\nimport { WhyHJSection } from \"../../sections/whyHJSection\";\r\nimport PartSearch from \"./components/partSearch\";\r\nimport { SimpleBanner } from \"../../components/__simple/_simpleBanner\";\r\nimport { AboutHJSection } from \"../../sections/aboutHJ\";\r\nimport Breadcrumb from \"../../components/__simple/breadcrumb\";\r\nimport axios from \"axios\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport Popup from \"../../User/popup\";\r\nimport PopupHeader from \"../../User/components/popupHeader\";\r\nimport PhoneDropDown from \"../../components/_input/_phoneDropDown\";\r\nimport { FormButton } from \"../../components/_input/_button\";\r\nimport Joi from \"joi\";\r\nimport { GetMessages, formValidate } from '../../utils/validation';\r\nimport config from '../../configuration/config.json';\r\nimport { useHistory } from 'react-router';\r\nimport CustomPopover from \"./components/customPopover\";\r\nimport { getData, User_Data_Key } from \"../../utils/localStorageManager\";\r\nimport { InputField } from \"../../components/_input/_input\";\r\nimport { Link } from \"react-router-dom\";\r\nimport React from \"react\";\r\nimport LandengSlide from \"../landengPage/sections/landengSlide\";\r\nimport SectionSlideEpart from \"./components/sectionSlideEpart\";\r\n\r\nSwiperCore.use([Pagination, Navigation, Autoplay, EffectFade]);\r\n\r\nexport function EpartsPage() {\r\n const GetUrl = config.baseURL + 'details';\r\n const GetUrlfunc = config.baseURL + 'func';\r\n const [PWD, setPWD] = useState([]);\r\n const [EngineGroups, setEngineGroups] = useState([]);\r\n const [isPopUpOpened, setIsPopUpOpened] = useState(false);\r\n const [selectedCompaign, setSelectedCompagin] = useState(0);\r\n const [lang, setlang] = useState(localStorage.getItem('i18nextLng'));\r\n const { t: trans } = useTranslation([\"eparts\", \"common\", \"form\", \"info\"]);\r\n const languageDir = 'language-' + localStorage.getItem('i18nextLng')\r\n //start_abbas_alburaee\r\n const history = useHistory();\r\n const schema = Joi.object({\r\n userPhoneNumber: Joi.string().min(12).required().messages(GetMessages()),\r\n });\r\n\r\n const [error, setError] = useState({});\r\n\r\n async function handleCompaignRequest() {\r\n try {\r\n const result = formValidate(schema, userForm) ?? {};\r\n setError(result);\r\n console.log(result);\r\n if (Object.keys(result).length === 0) {\r\n\r\n const response = await axios.post(\r\n config.baseURL + 'details',\r\n {\r\n \"object\": \"Web_Users\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n },\r\n \"Option\": \"column\",\r\n \"Fields\": \"GUID,Web_UserID,FirstNameEn,FirstNameAr,LastNameEn,LastNameAr,Phone,Email,IdentityNumber\",\r\n \"Filters\": `where phone = '${userForm.userPhoneNumber}'`\r\n }\r\n );\r\n\r\n if (response.status === 200) {\r\n let urlParms = `?compaign=${selectedCompaign}`;\r\n\r\n if (response.data.ApiObjectData.length > 0) {\r\n\r\n const {\r\n GUID,\r\n Web_UserID,\r\n FirstNameEn,\r\n FirstNameAr,\r\n LastNameEn,\r\n LastNameAr,\r\n Phone,\r\n Email,\r\n IdentityNumber\r\n } = response.data.ApiObjectData[0];\r\n\r\n urlParms += `&ur_gid=${GUID + '_' + String(Web_UserID)}&ur_id=${Web_UserID}&ur_en=${FirstNameEn + ' ' + LastNameEn} \r\n &ur_ar=${FirstNameAr + ' ' + LastNameAr}&ur_phone=${Phone}&ur_email=${Email}&ur_iden=${IdentityNumber} \r\n `;\r\n }\r\n history.push({\r\n pathname: '/eparts/campaignorder',\r\n search: urlParms\r\n });\r\n setUserForm({});\r\n setSelectedCompagin(0);\r\n setError({});\r\n }\r\n }\r\n\r\n } catch (err) {\r\n console.log('Error in eparts compaign', err)\r\n }\r\n }\r\n\r\n const [CompaignLuxes, setCompaignLuxes] = useState([]);\r\n const [CompaignToYota, setCompaignToYota] = useState([]);\r\n\r\n const [queryProduct, setQueryProduct] = useState(\"\");\r\n\r\n async function RequsetCompaign() {\r\n const BodyToYota = {\r\n \"object\": \"Web_compaing\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n },\r\n \"Filters\": \"where BrandID=1 \"\r\n\r\n };\r\n const GetToYota = axios.request({\r\n url: GetUrl,\r\n data: BodyToYota, method: \"POST\", responseType: \"json\"\r\n })\r\n const BodyLuxes = {\r\n \"object\": \"Web_compaing\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n }, \"Filters\": \"where BrandID=2\"\r\n\r\n };\r\n const GetLuxes = axios.request({\r\n url: GetUrl,\r\n data: BodyLuxes, method: \"POST\", responseType: \"json\"\r\n })\r\n\r\n await axios.all([GetLuxes, GetToYota]).then(\r\n axios.spread(function (Luxes, ToYota) {\r\n\r\n setCompaignLuxes(Luxes.data.ApiObjectData);\r\n setCompaignToYota(ToYota.data.ApiObjectData);\r\n console.log(\"Luxes\", Luxes.data.ApiObjectData);\r\n console.log(\"ToYota\", ToYota.data.ApiObjectData);\r\n\r\n })).catch(function (error) {\r\n console.log(error);\r\n });\r\n }\r\n\r\n //End_Compaign\r\n function RequsetProductsWithDetails() {\r\n const Body = {\r\n \"name\": \"Site_FeatchSparePartMain\"\r\n };\r\n axios.request({\r\n url: GetUrlfunc,\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n // console.log(response.data.ApiObjectData);\r\n setTimeout(() => {\r\n setPWD(response?.data)\r\n }, 1000);\r\n\r\n })\r\n .catch(function (error) {\r\n console.error(error);\r\n });\r\n\r\n\r\n }\r\n\r\n async function RequsetsetSite_categorySP() {\r\n\r\n\r\n try {\r\n\r\n if (\"caches\" in window) {\r\n let url = \"Site_categorySP\";\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"HJWeb\");\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n url\r\n );\r\n let data = await cachedResponse.json();\r\n setTimeout(() => {\r\n setEngineGroups(data)\r\n }, 1000);\r\n }\r\n\r\n } catch (error) {\r\n }\r\n\r\n\r\n const BodyEngineGroups = {\r\n \"object\": \"Site_categorySP\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n }\r\n };\r\n axios.request({\r\n url: GetUrl,\r\n data: BodyEngineGroups, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n // console.log(response.data.ApiObjectData);\r\n setTimeout(async () => {\r\n setEngineGroups(response.data.ApiObjectData);\r\n await site_SupCategory();\r\n }, 10);\r\n\r\n const data = new Response(JSON.stringify(response.data.ApiObjectData));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"HJWeb\").then((cache) => {\r\n cache.put(\"Site_categorySP\", data);\r\n\r\n });\r\n }\r\n\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n\r\n\r\n }\r\n\r\n const [engineGroupsSup, setEngineGroupsSup] = useState([]);\r\n const [engineGroupsSup2, setEngineGroupsSup2] = useState([]);\r\n const site_SupCategory = async () => {\r\n try {\r\n const BodyEngineGroupsSUP = {\r\n \"object\": \"Site_SupCategory\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n }\r\n };\r\n\r\n const requestEngineGroupsSUP = axios.request({\r\n url: GetUrl,\r\n data: BodyEngineGroupsSUP, method: \"POST\", responseType: \"json\"\r\n });\r\n\r\n const BodyEngineGroupsSUP2 = {\r\n \"object\": \"Site_ItemsSupCategory\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n }\r\n };\r\n\r\n const requestEngineGroupsSUP2 = axios.request({\r\n url: GetUrl,\r\n data: BodyEngineGroupsSUP2, method: \"POST\", responseType: \"json\"\r\n });\r\n\r\n await axios.all([requestEngineGroupsSUP, requestEngineGroupsSUP2])\r\n .then(\r\n axios.spread(\r\n (EngineGroupsSup, EngineGroupsSup2) => {\r\n setTimeout(() => {\r\n setEngineGroupsSup(EngineGroupsSup?.data?.ApiObjectData)\r\n }, 500);\r\n setTimeout(() => {\r\n setEngineGroupsSup2(EngineGroupsSup2?.data?.ApiObjectData)\r\n }, 700);\r\n }\r\n )\r\n ).catch((err) => {\r\n throw err;\r\n })\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n };\r\n // ------------------\r\n const [banner, setbanner] = useState([]);\r\n\r\n function RequsetBanner() {\r\n\r\n axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/Maintenance/BannerSP\",\r\n method: \"get\",\r\n })\r\n\r\n .then(function (response) {\r\n\r\n console.log(\"response >>>>>>>>>>>>>>>>>>>>>>>>>:\", response.data.banner);\r\n setTimeout(setbanner(response.data.banner), 1000);\r\n\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n\r\n\r\n }\r\n\r\n const [Sbanner, setSbanner] = useState([]);\r\n\r\n function RequsetSBanner() {\r\n const Body = {\r\n \"object\": \"siteSimpleBanner_eperts\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n }\r\n };\r\n\r\n\r\n axios.request({\r\n url: GetUrl,\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n setTimeout(setSbanner(response.data.ApiObjectData), 1000);\r\n\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n\r\n\r\n }\r\n\r\n const [userForm, setUserForm] = useState({\r\n userPhoneNumber: ''\r\n });\r\n\r\n\r\n function handlePopupStatus(status, id) {\r\n setIsPopUpOpened(status);\r\n setSelectedCompagin(id);\r\n setError({});\r\n };\r\n\r\n const [featuredProductsList, setFeaturedProductsList] = useState([]);\r\n const [featuredCatList, setFeaturedCatList] = useState([]);\r\n\r\n const funFeaturedProductsAndCat = async () => {\r\n try {\r\n const BodyFeaturedProduct = {\r\n \"name\": \"funFeaturedProducts\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n }\r\n };\r\n\r\n const requestFeaturedProduct = axios.request({\r\n url: config.baseURL + 'func',\r\n data: BodyFeaturedProduct, method: \"POST\", responseType: \"json\"\r\n })\r\n\r\n\r\n const BodyFeaturedCat = {\r\n \"name\": \"Site_FeatchPartSparePartSpecial\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n }\r\n };\r\n\r\n const requestFeaturedCat = axios.request({\r\n url: config.baseURL + 'func',\r\n data: BodyFeaturedCat, method: \"POST\", responseType: \"json\"\r\n })\r\n\r\n\r\n await axios.all([requestFeaturedProduct, requestFeaturedCat])\r\n .then(\r\n axios.spread(\r\n (responseFeaturedProduct, responseFeaturedCat) => {\r\n console.log(\"responseFeaturedProduct: \", responseFeaturedProduct.data);\r\n // setTimeout(() => {\r\n setFeaturedProductsList(responseFeaturedProduct?.data);\r\n setFeaturedCatList(responseFeaturedCat.data);\r\n // }, 500);\r\n }\r\n )\r\n ).catch((err) => {\r\n throw err;\r\n });\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n };\r\n\r\n const [favoriteProducts, setFavoriteProducts] = useState([]);\r\n // to fetch the user favorites\r\n const fetchUserFavorites = async () => {\r\n let _favorites = [];\r\n try {\r\n const isLogin = getData('isAuthenticated');\r\n if (isLogin) {\r\n const { id } = JSON.parse(getData(User_Data_Key, true));\r\n const userID = Number(id.toString().split('_')[1]);\r\n const response = await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"SiteFetchUserFavorites\",\r\n \"values\": {\r\n \"userID\": userID\r\n }\r\n }\r\n );\r\n if (response.status == 200) {\r\n const favorites = response.data;\r\n _favorites = _favorites.concat(favorites);\r\n }\r\n }\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n return _favorites;\r\n };\r\n useEffect(() => {\r\n const results = fetchUserFavorites();\r\n setFavoriteProducts(results);\r\n }, []);\r\n\r\n useEffect(() => {\r\n RequsetBanner();\r\n RequsetCompaign();\r\n RequsetProductsWithDetails();\r\n RequsetsetSite_categorySP();\r\n RequsetSBanner();\r\n\r\n funFeaturedProductsAndCat();\r\n }, []);\r\n\r\n return (\r\n \r\n {\r\n // \r\n }\r\n\r\n\r\n
    \r\n {\r\n // \r\n }\r\n\r\n {\r\n \r\n
    \r\n {/* {\r\n \r\n } */}\r\n
    \r\n \r\n {lang.toLowerCase() == \"ar\" ? \"جميع الفئات\" : \"Categories\"}\r\n \r\n
    \r\n
    \r\n \r\n {lang.toLowerCase() == \"ar\" ? \" العروض\" : \" Categories\"}\r\n \r\n
    \r\n
    \r\n\r\n {/*
    2
    */}\r\n
    \r\n \r\n
    \r\n {\r\n
    \r\n
    \r\n\r\n {\r\n setQueryProduct(null);\r\n // SetProduct(e);\r\n console.warn(e.target.value);\r\n setQueryProduct(e.target.value);\r\n }\r\n }\r\n onClicksearchIcon={(value) => {\r\n\r\n if (queryProduct)\r\n history.push(\"/eparts/sereach?Product=\" + queryProduct);\r\n }}\r\n value={queryProduct}\r\n />\r\n
    \r\n
    \r\n }\r\n
    \r\n {/* \r\n {\r\n queryProduct && (\r\n {\r\n // refreshPage(\"ProductID\")\r\n }}\r\n to={\"/eparts/sereach?Product=\" + queryProduct}\r\n className={\"btn btn-primary text-16 w-full sm:w-full md:w-80 h-[2rem] sm:mb-10 md:h-20 lg:h-16\"}\r\n >\r\n {trans(\"eparts:search\")}\r\n \r\n\r\n )\r\n }\r\n
    */}\r\n\r\n
    \r\n \r\n \r\n }\r\n \r\n {\r\n // EngineGroups.length != 0 && engineGroupsSup.length!= 0 && engineGroupsSup2.length!=0 && (\r\n //
    \r\n // \r\n //
    \r\n // )\r\n }\r\n\r\n \r\n\r\n\r\n {\r\n \r\n }\r\n\r\n
    \r\n\r\n {\r\n CompaignToYota?.length > 0 &&\r\n <>\r\n \r\n\r\n\r\n
    \r\n
    \r\n \"toyota\"\r\n

    {trans(\"eparts:ToytaTitel\")}

    \r\n
    \r\n \r\n\r\n\r\n {CompaignToYota?.map(ToYota => {\r\n if (lang === \"en\") {\r\n\r\n return (\r\n \r\n
    \r\n {\r\n handlePopupStatus(true, id)\r\n }} />\r\n
    \r\n
    \r\n );\r\n } else {\r\n return (\r\n \r\n
    \r\n {\r\n handlePopupStatus(true, id)\r\n }} />\r\n
    \r\n
    \r\n );\r\n }\r\n })}\r\n \r\n
    \r\n\r\n \r\n }\r\n\r\n {\r\n\r\n CompaignLuxes?.length > 0 &&\r\n
    \r\n\r\n
    \r\n \"toyota\"\r\n

    {trans(\"eparts:lxcTitel\")}

    \r\n
    \r\n \r\n\r\n {CompaignLuxes?.map(Luxes => {\r\n if (lang === \"en\") {\r\n\r\n return (\r\n \r\n
    \r\n {\r\n handlePopupStatus(true, id)\r\n }} />\r\n
    \r\n
    \r\n );\r\n } else {\r\n return (\r\n\r\n\r\n \r\n
    \r\n {\r\n handlePopupStatus(true, id)\r\n }} />\r\n
    \r\n
    \r\n\r\n );\r\n }\r\n })}\r\n\r\n \r\n
    \r\n }\r\n\r\n
    \r\n\r\n {\r\n // الفئات المميزة\r\n featuredProductsList.length > 0 && (\r\n
    \r\n \r\n \r\n\r\n {featuredProductsList?.map((proValue, prodIndex) => (\r\n \r\n \r\n \r\n ))}\r\n\r\n \r\n\r\n
    \r\n )\r\n }\r\n\r\n {\r\n // القطع المميزة\r\n featuredCatList.length > 0 && (\r\n
    \r\n \r\n \r\n\r\n {featuredCatList?.map((catValue, catIndex) => (\r\n \r\n {\r\n catValue.SalesPriceDiscount > 0\r\n ? \r\n\r\n : \r\n\r\n }\r\n \r\n ))}\r\n\r\n \r\n\r\n
    \r\n )\r\n }\r\n\r\n\r\n \r\n\r\n
    \r\n \r\n\r\n {EngineGroups?.map(H => (\r\n \r\n \r\n \r\n ))}\r\n\r\n \r\n\r\n
    \r\n\r\n
    \r\n\r\n {Sbanner?.map(b => {\r\n if (lang === \"en\") {\r\n return ();\r\n } else {\r\n return ();\r\n }\r\n })}\r\n\r\n
    \r\n\r\n
    \r\n {\r\n PWD?.length > 0 &&\r\n <>\r\n \r\n
    \r\n\r\n\r\n \r\n\r\n\r\n {PWD?.map(P => (\r\n \r\n \r\n \r\n ))}\r\n\r\n \r\n
    \r\n\r\n \r\n }\r\n
    \r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n
    \r\n handlePopupStatus(false, 0)} />\r\n
    \r\n {\r\n const val = { ...userForm };\r\n val.userPhoneNumber = `+${countryCode}${phoneNumber}`;\r\n setUserForm(val);\r\n }}\r\n />\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n );\r\n}","import Rating from \"react-rating\";\r\nexport function PartRating({onChange , readonly = false , intialValue = 0}) {\r\n return (\r\n {\r\n if(onChange){\r\n onChange(value);\r\n }\r\n }}\r\n emptySymbol={}\r\n fullSymbol={}\r\n />\r\n );\r\n}","import axios from \"axios\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { PartRating } from \"./rate\";\r\nimport config from '../../../configuration/config.json'\r\nexport function RatingSection({ productID }) {\r\n const { t: trans } = useTranslation([\"common\", \"model\"]);\r\n const [comments, setComments] = useState([]);\r\n useEffect(() => {\r\n handleFetchComments();\r\n }, []);\r\n\r\n // to fetch comments\r\n const handleFetchComments = () => {\r\n try {\r\n if (productID) {\r\n axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"SiteFetchSparePartEvaluations\",\r\n \"Values\": {\r\n \"GUID\": `${productID}`\r\n }\r\n }\r\n ).then(response => {\r\n console.log(\"response.data:\",response.data)\r\n setComments(response.data);\r\n }).catch(error => {\r\n console.log('rating section has error request', error);\r\n });\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n };\r\n return (\r\n <>\r\n {\r\n comments.map((item, index) => {\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n {item[`${trans(\"model:description\")}`]}\r\n
    \r\n
    \r\n

    {item[`${trans(\"model:description\")}`]}

    \r\n
    \r\n \r\n \r\n
    \r\n

    \r\n {\r\n item.Comment\r\n }\r\n

    \r\n
    \r\n
    \r\n
    \r\n )\r\n })\r\n }\r\n \r\n );\r\n}\r\n","import React, {useState} from 'react';\r\nimport {useTranslation} from \"react-i18next\";\r\nimport config from \"../configuration/config.json\";\r\n\r\nfunction SimpleCardCar(\r\n {\r\n brandID = \"1\",\r\n titleAr = \"Title 1\", title2Ar = \"Title 2\", subTitleListAr = [],\r\n titleEn = \"Title 1\", title2En = \"Title 2\", subTitleListEn = [],\r\n imageFull = \"/assets/images/default.png\"\r\n }) {\r\n\r\n const {t: trans} = useTranslation([\"common\", \"eparts\"]);\r\n const [lang, setLang] = useState(localStorage.getItem('i18nextLng'));\r\n\r\n return (\r\n
    \r\n \r\n\r\n
    \r\n
    \r\n \r\n {lang.toLowerCase() == 'ar' ? titleAr ?? \"\" : titleEn ?? \"\"}\r\n \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n {\r\n lang.toLowerCase() == 'ar' && (\r\n subTitleListAr.length > 0 && (\r\n subTitleListAr.map((titleValue, titleIndex) => {\r\n return (\r\n titleValue && (\r\n \r\n {titleValue ?? \"\"}\r\n
    \r\n )\r\n )\r\n })\r\n )\r\n )\r\n }\r\n\r\n {\r\n lang.toLowerCase() == 'en' && (\r\n subTitleListEn.length > 0 && (\r\n subTitleListEn.map((titleValue, titleIndex) => {\r\n return (\r\n titleValue && (\r\n \r\n {titleValue ?? \"\"}\r\n
    \r\n )\r\n )\r\n })\r\n )\r\n )\r\n }\r\n\r\n
    \r\n
    \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SimpleCardCar;","import {useTranslation} from \"react-i18next\";\r\nimport {Link} from \"react-router-dom\";\r\nimport {LikeButton} from \"../../../components/__simple/_likeButton\";\r\nimport {PartRating} from \"./rate\";\r\nimport {useEffect, useState} from \"react\";\r\nimport axios from \"axios\";\r\nimport config from \"../../../configuration/config.json\";\r\nimport SimpleCardCar from \"../../../components/simpleCardCar\";\r\nimport {Swiper, SwiperSlide} from \"swiper/react\";\r\n\r\nexport function CarSection({guidProductId}, props) {\r\n const {t: trans} = useTranslation([\"common\", \"eparts\"]);\r\n const [lang, setlang] = useState(localStorage.getItem('i18nextLng'));\r\n\r\n const GetUrl = config.baseURL + 'details';\r\n const [PWD, setPWD] = useState([]);\r\n const [PWDT, setPWDT] = useState([]);\r\n\r\n const [compatibilityList, setCompatibilityList] = useState([]);\r\n\r\n function RequsetPISM() {\r\n\r\n const Body = {\r\n \"name\": \"site_FeatchPartCompatiblity\",\r\n \"values\": {\r\n \"ProductID\": props.productid\r\n }\r\n }\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n }).then(function (response) {\r\n setTimeout(setPWD(response.data), 100);\r\n\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n\r\n\r\n }\r\n\r\n function RequsetPIDitals(data) {\r\n\r\n const Body = {\r\n \"name\": \"site_FeatchPartCompatiblityTrans\",\r\n \"values\": {\r\n \"ProductID\": data.ID.toString()\r\n }\r\n }\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n }).then(function (response) {\r\n setTimeout(setPWDT(response.data), 100);\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n return;\r\n }\r\n\r\n function Compatiblity() {\r\n\r\n PWD.map((pd) => {\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n

    {pd.group}

    \r\n {pd.type}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n {\r\n PWDT.map(p => {\r\n return (\r\n
    \r\n
    {p.FromYear}
    \r\n
    {p.ToYear}
    \r\n
    {p.Note}
    \r\n
    \r\n )\r\n }\r\n )\r\n }\r\n
    \r\n
    \r\n )\r\n },\r\n data => RequsetPIDitals(data));\r\n }\r\n\r\n const getCompatibility = ({guid}) => {\r\n const body = {\r\n \"name\": \"Site_FeatchPartCompatiblity\",\r\n \"values\": {\r\n \"GUID\": guid\r\n }\r\n };\r\n\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n\r\n if (response?.data && response?.data.length > 0) {\r\n setCompatibilityList(response?.data);\r\n }\r\n\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n // RequsetPISM();\r\n\r\n if (guidProductId) {\r\n getCompatibility({guid: guidProductId});\r\n }\r\n }, [guidProductId]);\r\n\r\n return (\r\n <>\r\n {/*
    */}\r\n {/*
    */}\r\n {/*
    */}\r\n {/*
    {trans(\"eparts:model\")}
    */}\r\n {/*
    */}\r\n {/*
    */}\r\n {/*
    */}\r\n {/*
    {trans(\"eparts:from-year\")}
    */}\r\n {/*
    {trans(\"eparts:to-year\")}
    */}\r\n {/*
    {trans(\"eparts:note\")}
    */}\r\n {/*
    */}\r\n\r\n {/*
    */}\r\n {/*
    */}\r\n {/* {Compatiblity()}*/}\r\n {/*
    */}\r\n\r\n\r\n \r\n {\r\n\r\n compatibilityList?.map((catValue, catIndex) => (\r\n \r\n \r\n \r\n ))\r\n }\r\n\r\n \r\n \r\n\r\n\r\n );\r\n}\r\n","import React, {useState} from 'react';\r\nimport {useTranslation} from \"react-i18next\";\r\nimport {Price} from \"./__simple/_price\";\r\nimport Popup from \"../User/popup\";\r\n\r\nfunction CustomTabbyTamara({price}) {\r\n\r\n const {t: trans, i18n} = useTranslation([\"common\", \"offers\", \"extra\"]);\r\n let lang = i18n.language;\r\n\r\n const [showPopupPay, setShowPopupPay] = useState(null);\r\n\r\n\r\n return (\r\n <>\r\n
    \r\n

    {trans(\"info:buy-now-pay-later\")}

    \r\n
    \r\n {\r\n\r\n\r\n setShowPopupPay(\"tabby\");\r\n }}\r\n\r\n >\r\n \r\n
    \r\n

    {trans(\"info:pay-4-interest-free-payments\")}\r\n {(price / 4) ? <>{(lang == \"ar\" ? \" بقيمة \" : \" of \")}\r\n : null} \r\n\r\n

    \r\n \r\n
    \r\n
    \r\n\r\n\r\n {\r\n\r\n\r\n setShowPopupPay(\"tamara\");\r\n }}\r\n >\r\n\r\n {\r\n\r\n }\r\n \r\n\r\n\r\n
    \r\n

    {trans(\"info:pay-4-interest-free-payments\")}\r\n \r\n {(price / 4) ? <>{(lang == \"ar\" ? \" بقيمة \" : \" of \")}\r\n : null}\r\n \r\n\r\n

    \r\n {/* */}\r\n\r\n \r\n {/* */}\r\n
    \r\n \r\n
    \r\n\r\n \r\n \r\n\r\n\r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n setShowPopupPay(null)\r\n }}>×\r\n
    \r\n\r\n {\r\n showPopupPay == \"tabby\" ?\r\n //
    \r\n \r\n //
    \r\n :\r\n\r\n //
    \r\n \r\n //
    \r\n\r\n\r\n }\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n\r\nexport default CustomTabbyTamara;","import {Fragment, useEffect, useRef, useState} from \"react\";\r\nimport {Part} from \"./components/part\";\r\nimport PageHeading from \"../../components/__simple/_pageheading\";\r\nimport {Swiper, SwiperSlide} from \"swiper/react\";\r\nimport SwiperCore, {Autoplay, EffectFade, Navigation, Pagination} from \"swiper\";\r\nimport {PartRating} from \"./components/rate\";\r\nimport config from '../../configuration/config.json'\r\nimport {DropDownInput} from \"../../components/_input/_dropdown\";\r\nimport {LikeButton} from \"../../components/__simple/_likeButton\";\r\nimport {RatingSection} from \"./components/ratingSection\";\r\nimport {CarSection} from \"./components/carSection\";\r\nimport Breadcrumb from \"../../components/__simple/breadcrumb\";\r\nimport {useDispatch} from \"react-redux\";\r\nimport {changeIcons} from \"../../_redux/slices/navSlice\";\r\nimport {useParams} from \"react-router\";\r\nimport axios from \"axios\";\r\nimport {useTranslation} from \"react-i18next\";\r\n// import { addToCart } from \"../../_functions/cart\";\r\nimport {useUserCart} from '../../User/hooks/useUserCart';\r\nimport {quantity} from \"cart-localstorage\";\r\nimport {Price} from \"../../components/__simple/_price\";\r\nimport {toast} from \"react-toastify\";\r\nimport _ from 'lodash';\r\nimport {useUserFavorite} from '../../User/hooks/useUserFavorite';\r\nimport {\r\n EmailShareButton,\r\n EmailIcon,\r\n FacebookShareButton,\r\n FacebookIcon,\r\n TelegramShareButton,\r\n TelegramIcon,\r\n TwitterShareButton,\r\n TwitterIcon,\r\n WhatsappShareButton,\r\n WhatsappIcon\r\n} from \"react-share\";\r\nimport {shareMaker} from \"../../utils/shareDataMaker\";\r\nimport {numberFormat} from \"../../utils/currencyFormatter\";\r\nimport CustomTabbyTamara from \"../../components/customTabbyTamara\";\r\nimport SimpleButton from \"../../components/_input/SimpleButton\";\r\nimport {ServiceBox} from \"../../components/serviceBox\";\r\nimport {getData, User_Data_Key} from \"../../utils/localStorageManager\";\r\n\r\nSwiperCore.use([Pagination, Navigation, Autoplay, EffectFade]);\r\n\r\nexport function EpartsDetailPage(props) {\r\n const {changeFavoriteItemState, isFavoriteItem} = useUserFavorite();\r\n\r\n const {removecartItems, changecartItem} = useUserCart();\r\n const [lang, setlang] = useState(localStorage.getItem('i18nextLng'));\r\n const languageDir = 'language-' + lang;\r\n const rateRef = useRef(null);\r\n const carRef = useRef(null);\r\n const [car, setCar] = useState(\"active\");\r\n const [rate, setRate] = useState(\"hidden\");\r\n const [Ava, SetAva] = useState([]);\r\n const [Dilev, SetDilev] = useState([]);\r\n const [counter, setCounter] = useState(1);\r\n const [sharerInfo, setSharerInfo] = useState({\r\n url: '',\r\n hashTage: '',\r\n title: ''\r\n });\r\n\r\n let {ProductId} = useParams();\r\n const {t: trans} = useTranslation([\"eparts\", \"inputs\", \"info\", \"model\", \"new\"]);\r\n const GetUrl = config.baseURL + 'details';\r\n const [PWD, setPWD] = useState([]);\r\n const [PWR, setPWR] = useState([]);\r\n const [AttachImg, setiAttch] = useState([]);\r\n //-------------------------------------------------------------------------\r\n const [favorite, setFavorite] = useState(false);\r\n\r\n const [indexPanel, setIndexPanel] = useState(\"1000\");\r\n const [terms, setTerms] = useState(\"\");\r\n const [checkCompatibility, setCheckCompatibility] = useState({});\r\n\r\n function getpric(NetSalePrice, SalesPriceBefor) {\r\n if (SalesPriceBefor) {\r\n return (\r\n
    \r\n {trans(\"info:product_price\")}\r\n \r\n {SalesPriceBefor}{trans(\"common:rial\")}\r\n
    );\r\n } else {\r\n return (\r\n
    \r\n {trans(\"info:product_price\")}\r\n \r\n
    );\r\n }\r\n }\r\n\r\n const getPrice = (NetSalePrice, SalesPriceDiscount) => {\r\n if (SalesPriceDiscount) {\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {SalesPriceDiscount}{trans(\"common:rial\")}\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n {trans(\"eparts:price-includes-VAT\")}\r\n
    \r\n
    \r\n );\r\n } else {\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n {trans(\"eparts:price-includes-VAT\")}\r\n
    \r\n
    \r\n );\r\n }\r\n }\r\n\r\n const getCatNameUrl = ({guid}) => {\r\n // func_GetCatNameByGuidEPart\r\n try {\r\n const body = {\r\n \"name\": \"func_GetCatNameByGuidEPart\",\r\n \"values\": {\r\n \"guid\": guid\r\n }\r\n };\r\n\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n if (response.data && response.data.length > 0) {\r\n console.info(\"func_GetCatNameByGuidEPart:data\", response.data[0]);\r\n setCatNameUrl(response?.data[0]);\r\n }\r\n })\r\n .catch(function (error) {\r\n // console.warn(\"func_GetNameCatsByIdEPart:catch\", error);\r\n throw error;\r\n });\r\n } catch (ex) {\r\n console.warn(\"func_GetCatNameByGuidEPart:catch\", ex);\r\n debugger\r\n }\r\n };\r\n\r\n\r\n function RequsetProductsWithDetails() {\r\n const Body = {\r\n \"name\": \"site_FeatchPartsDetails\",\r\n \"values\": {\r\n \"GUID\": ProductId\r\n }\r\n }\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n // console.log(response.data.ApiObjectData);\r\n setTimeout(() => (setPWD(response.data)), 100);\r\n\r\n if (response.data[0].ProductImage) {\r\n SetImgMain(response.data[0].ProductImage\r\n // ? \"data:image/png;base64,\" + response.data[0].ProductImage\r\n ? config.mainURL + response.data[0].ProductImage\r\n : lang.toLowerCase() === 'ar'\r\n ? \"/assets/images/eparts/PARTS_TOYOTA-AR-no-img.png\"\r\n : \"/assets/images/eparts/PARTS_TOYOTA-EN-no-img.png\"\r\n );\r\n }\r\n\r\n const epartsInfo = response.data[0];\r\n const _sharerInfo = {...sharerInfo};\r\n\r\n if (epartsInfo) {\r\n const {DescriptionAr, DescriptionEn, CategiorAr, CategiorEn, NetSalePrice, ProductID} = epartsInfo;\r\n const {\r\n url,\r\n title,\r\n hashTag\r\n } = shareMaker(`/eparts/details/${ProductId}`, `${(DescriptionAr ?? '') + '-' + numberFormat(NetSalePrice ?? 0)}`, '');\r\n _sharerInfo.title = title;\r\n _sharerInfo.url = url;\r\n _sharerInfo.hashTage = hashTag;\r\n setSharerInfo(_sharerInfo);\r\n setProductNo(ProductID);\r\n }\r\n getCatNameUrl({guid: ProductId});\r\n // setTimeout(() => (RequsetProductsWithAlternatives(response.data[0].ProductID)), 100);\r\n setTimeout(() => (RequsetProductsWithAlternatives(ProductId)), 100);\r\n getTermsPart({guid: ProductId});\r\n getCheckCompatiblityEPart({guid: ProductId});\r\n setTimeout(() => (RequsetAttch(response.data[0].ProductID)), 100);\r\n setTimeout(() => (RequsetAva(response.data[0].ProductID)), 100);\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n\r\n\r\n }\r\n\r\n function RequsetProductsWithAlternatives(ID) {\r\n // const Body = {\r\n // \"name\": \"Site_FeatchPartAlternative\",\r\n // \"values\": {\r\n // \"ProductID\": ID\r\n // }\r\n // }\r\n const Body = {\r\n \"name\": \"Site_FeatchPartSpecial\",\r\n \"values\": {\r\n // \"GUID\": \"0fff1d04-5bd4-4794-b2c0-8b5e3adaf2d7\"\r\n \"GUID\": ID\r\n }\r\n }\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n // console.log(response.data.ApiObjectData);\r\n setTimeout(setPWR(response.data), 1000);\r\n\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n\r\n\r\n }\r\n\r\n const getTermsPart = ({guid}) => {\r\n let body = {\r\n \"name\": \"func_getTermsPart\",\r\n \"values\": {\r\n \"GUID\": guid\r\n // \"GUID\": \"0fff1d04-5bd4-4794-b2c0-8b5e3adaf2d7\"\r\n }\r\n };\r\n\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n // console.log(response.data.ApiObjectData);\r\n if (response?.data && response?.data.length > 0) {\r\n\r\n console.log(\"func_getTermsPart: \", response.data);\r\n\r\n if (lang.toLowerCase() == \"ar\") {\r\n if (response?.data[0] && response?.data[0]?.termsAr)\r\n setTerms(response?.data[0]?.termsAr);\r\n } else {\r\n if (response?.data[0] && response?.data[0]?.termsEn)\r\n setTerms(response?.data[0]?.termsEn);\r\n }\r\n }\r\n\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n };\r\n const getCheckCompatiblityEPart = ({guid}) => {\r\n let body = {\r\n \"name\": \"func_CheckCompatiblityEPart\",\r\n \"values\": {\r\n \"GUID\": guid\r\n // \"GUID\": \"0fff1d04-5bd4-4794-b2c0-8b5e3adaf2d7\"\r\n }\r\n };\r\n\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n if (response?.data && response.data.length > 0) {\r\n\r\n console.log(\"getCheckCompatiblityEPart: \", response.data);\r\n setCheckCompatibility(response?.data[0]);\r\n }\r\n\r\n })\r\n .catch(function (error) {\r\n console.log(\"getCheckCompatiblityEPart: \", error);\r\n });\r\n };\r\n\r\n function RequsetAttch(ID) {\r\n const Body = {\r\n \"name\": \"Site_FeatchPartImage\",\r\n \"values\": {\r\n \"productID\": ID\r\n }\r\n }\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n // console.log(response.data.ApiObjectData);\r\n setTimeout(setiAttch(response.data), 1000);\r\n\r\n\r\n })\r\n .catch(function (error) {\r\n setiAttch([]);\r\n });\r\n\r\n\r\n }\r\n\r\n function RequsetAva(ID) {\r\n const Body = {\r\n \"name\": \"site_FeatchPartLocations\",\r\n \"values\": {\r\n \"productID\": ProductId\r\n }\r\n }\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n }).then(function (response) {\r\n // console.log(response.data.ApiObjectData);\r\n setTimeout(SetAva(response.data), 100);\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n\r\n\r\n }\r\n\r\n function RequsetDilevaryTime() {\r\n const Body = {\r\n \"object\": \"Web_DeliveryTime\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n }\r\n\r\n }\r\n\r\n axios.request({\r\n url: GetUrl,\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n // console.log(response.data.ApiObjectData);\r\n setTimeout(SetDilev(response.data.ApiObjectData), 1000);\r\n\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n\r\n\r\n }\r\n\r\n const [DilevryTime, SetDilevry] = useState(\"\");\r\n\r\n function DilevryTimeAccounting(option) {\r\n console.log(option);\r\n let dateNow = new Date();\r\n const Div = Dilev.find(f => f.DeliveryTimeId === option.value);\r\n if (option && option.value !== \"0\") {\r\n dateNow.setDate(Div.NumberDays);\r\n }\r\n\r\n if (lang === \"en\") {\r\n\r\n\r\n SetDilevry(\"day/s:\" + dateNow.getDate() + \":hour:\" + Div.NumbeHours);\r\n\r\n } else {\r\n SetDilevry(dateNow.getDate() + \"ايام/يوم:\" + \":\" + Div.NumbeHours + \"-ساعة\");\r\n }\r\n\r\n }\r\n\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n handleCalculateRatingStars();\r\n RequsetProductsWithDetails();\r\n RequsetDilevaryTime();\r\n }, [ProductId]);\r\n\r\n useEffect(() => {\r\n\r\n dispatch(\r\n changeIcons({iconsBlack: true})\r\n )\r\n\r\n return () => {\r\n dispatch(\r\n changeIcons({iconsBlack: false})\r\n )\r\n }\r\n }, []);\r\n\r\n const [favoriteProducts, setFavoriteProducts] = useState([]);\r\n // to fetch the user favorites\r\n const fetchUserFavorites = async () => {\r\n let _favorites = [];\r\n try {\r\n const isLogin = getData('isAuthenticated');\r\n if (isLogin) {\r\n const {id} = JSON.parse(getData(User_Data_Key, true));\r\n const userID = Number(id.toString().split('_')[1]);\r\n const response = await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"SiteFetchUserFavorites\",\r\n \"values\": {\r\n \"userID\": userID\r\n }\r\n }\r\n );\r\n if (response.status == 200) {\r\n const favorites = response.data;\r\n _favorites = _favorites.concat(favorites);\r\n }\r\n }\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n return _favorites;\r\n };\r\n\r\n useEffect(() => {\r\n const results = fetchUserFavorites();\r\n setFavoriteProducts(results);\r\n }, []);\r\n\r\n\r\n function show(section) {\r\n setCar(\"hidden\");\r\n setRate(\"hidden\");\r\n switch (section) {\r\n case \"car\":\r\n setCar(\"active\");\r\n break;\r\n case \"rate\":\r\n setRate(\"active\");\r\n break;\r\n default:\r\n setCar(\"active\");\r\n }\r\n }\r\n\r\n function count(num) {\r\n if (num === -1 && counter > 1)\r\n setCounter(counter + num);\r\n else if (num === 1 && counter < 100)\r\n setCounter(counter + num);\r\n }\r\n\r\n const [imagePath, SetImgMain] = useState(lang.toLowerCase() == 'ar'\r\n ? \"/assets/images/eparts/PARTS_TOYOTA-AR-no-img.png\"\r\n : \"/assets/images/eparts/PARTS_TOYOTA-EN-no-img.png\"\r\n );\r\n //-------------------------------------------------------------------\r\n const [locationName, setLocationName] = useState('');\r\n const [locationDistance, setLocationDistance] = useState(null);\r\n const [showSharers, setShowSharers] = useState(false);\r\n const [productNo, setProductNo] = useState('');\r\n const [ratingValues, setRatingValues] = useState({\r\n stars: 0,\r\n comments: 0\r\n });\r\n\r\n const [catNameUrl, setCatNameUrl] = useState({});\r\n // to calculate the distance bewtten two coordinates points\r\n const handleGetDistance = (value) => {\r\n try {\r\n if (value == '' || value == '0') {\r\n setLocationName('');\r\n setLocationDistance(null);\r\n return;\r\n }\r\n const {Address, Longitude, Latitude} = Ava.find((item) => {\r\n return item.GUID == value\r\n });\r\n if (navigator.onLine) {\r\n if (Latitude != null && Longitude != null) {\r\n navigator.geolocation.getCurrentPosition((position) => {\r\n\r\n const currentPosition = {\r\n lat: position.coords.latitude,\r\n lng: position.coords.longitude\r\n }\r\n const result = getDistance(Latitude, currentPosition.lat, Longitude, currentPosition.lng).toFixed(5);\r\n setLocationDistance(result);\r\n });\r\n } else {\r\n setLocationDistance(null);\r\n }\r\n } else {\r\n toast.warning(trans('info:no_internet_connect'))\r\n }\r\n setLocationName(Address ?? '');\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n };\r\n // to calculate the distance \r\n const getDistance = (lat1, lat2, long1, long2) => {\r\n const y = Math.abs(lat2 - lat1);\r\n const x = Math.abs(long2 - long1);\r\n return Math.sqrt((x * x + y * y));\r\n };\r\n // to share the product\r\n const handleShareItem = () => {\r\n setShowSharers(!showSharers);\r\n };\r\n // to calculate ratings\r\n const handleCalculateRatingStars = () => {\r\n axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"SiteFetchRatingStarsBySparePartProduct\",\r\n \"Values\": {\r\n \"GUID\": `${ProductId}`\r\n }\r\n }\r\n ).then(response => {\r\n const value = {...ratingValues};\r\n const ratingsGroupsData = response.data;\r\n const results = ratingsGroupsData.map(item => {\r\n return {star: item.Stars, total: item.Total, spe: (item.Stars * item.Total), comments: item.Comments}\r\n });\r\n const totalComments = Math.ceil((_.sum(results.map(item => {\r\n return item.comments\r\n })) / 2));\r\n const totalOfSpe = _.sum(results.map(item => {\r\n return item.spe\r\n }));\r\n const totalOfStars = _.sum(results.map(item => {\r\n return item.total\r\n }));\r\n const finalTotal = Math.floor(totalOfSpe / totalOfStars);\r\n value.stars = finalTotal;\r\n value.comments = totalComments;\r\n setRatingValues(value);\r\n }).catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n\r\n const handelAddToCart = ({part}) => {\r\n\r\n let objectCart =\r\n {\r\n id: part.ProductID,\r\n productID: part.ProductID,\r\n name: part.DescriptionAr,\r\n nameEn: part.DescriptionEn,\r\n price: part.NetSalePrice,\r\n image: imagePath,\r\n Type: \"part\",\r\n };\r\n\r\n console.log(\"objectCart: \", objectCart)\r\n\r\n changecartItem(part?.ProductID, null, null, 1, null, null, objectCart);\r\n\r\n //\r\n // let objectCart =\r\n // part.SalesPriceDiscount > 0\r\n // ?\r\n // {\r\n // id: part?.ProductID,\r\n // productID: part?.ProductID,\r\n // name: part?.DescriptionAr,\r\n // nameEn: part?.DescriptionEn,\r\n // price: part?.SalesPriceDiscount,\r\n // image: part?.imagePath,\r\n // Type: \"part\",\r\n // } :\r\n // {\r\n // id: part?.ProductID,\r\n // productID: part?.ProductID,\r\n // name: part?.DescriptionAr,\r\n // price: part?.NetSalePrice,\r\n // image: imagePath,\r\n // Type: \"part\"\r\n // }\r\n // changecartItem(part?.ProductID, null, null, 1, null, null, objectCart);\r\n }\r\n\r\n return (\r\n \r\n\r\n
    \r\n\r\n {\r\n (catNameUrl?.catId && catNameUrl?.catSubId && catNameUrl?.catSubSubIdd\r\n && catNameUrl?.catAr && catNameUrl.catEn\r\n && catNameUrl?.subCatAr && catNameUrl?.subCatEn\r\n && catNameUrl?.subSubCatAr && catNameUrl?.subSubCatEn\r\n )\r\n ? \r\n : (catNameUrl?.catId && catNameUrl?.catSubId\r\n && catNameUrl?.catAr && catNameUrl?.catEn\r\n && catNameUrl?.subCatAr && catNameUrl?.subCatEn\r\n )\r\n ? \r\n : (catNameUrl?.catId\r\n && catNameUrl?.catAr && catNameUrl?.catEn\r\n )\r\n ? \r\n : \r\n }\r\n\r\n {/*{*/}\r\n {/* catNameUrl?.catId && (*/}\r\n {/* */}\r\n {/* )*/}\r\n {/*}*/}\r\n\r\n {/*{*/}\r\n {/* catNameUrl?.catId && catNameUrl?.catSubId && (*/}\r\n {/* */}\r\n {/* )*/}\r\n {/*}*/}\r\n\r\n {/*{*/}\r\n {/* catNameUrl?.catId && catNameUrl?.catSubId && catNameUrl.catSubSubIdd && (*/}\r\n {/* */}\r\n {/* )*/}\r\n {/*}*/}\r\n\r\n\r\n {/**/}\r\n\r\n {/*
    */}\r\n \r\n {/*الصورة*/}\r\n
    \r\n
    \r\n
    \r\n {imagePath.toString()}\r\n e.target.style.display = \"none\"}\r\n />\r\n
    \r\n
    \r\n
    \r\n {AttachImg.map(Att => (\r\n
    \r\n e.target.style.display = \"none\"}\r\n />\r\n
    \r\n )\r\n )}\r\n\r\n
    \r\n
    \r\n\r\n {\r\n // \r\n PWD.map(D => {\r\n return (\r\n <>\r\n {\r\n
    \r\n\r\n {/*
    */}\r\n {/* {trans(\"eparts:product_id\")}: */}\r\n {/*

    {D.ProductNo}

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

    {lang.toLowerCase() == \"en\" ? D.DescriptionEn : D.DescriptionAr}

    */}\r\n {/*
    */}\r\n\r\n {/*
    */}\r\n {/* */}\r\n {/*
    */}\r\n {/* {ratingValues.stars}*/}\r\n {/*
    */}\r\n\r\n {/*
    */}\r\n {/* {ratingValues.comments} {trans(\"eparts:mkj\")}*/}\r\n {/*
    */}\r\n {/*
    */}\r\n {/*
    */}\r\n\r\n {/*
    */}\r\n {/* {getpric(D.NetSalePrice, D.SalesPriceDiscount)}*/}\r\n {/*
    */}\r\n\r\n {/*
    */}\r\n {/*

    {trans(\"eparts:Specifications\")}

    */}\r\n {/*
    */}\r\n {/*
    */}\r\n {/*
    {trans(\"eparts:length\")}:
    */}\r\n\r\n {/* {D.length} {trans(\"eparts:mm\")}
    */}\r\n {/*
    */}\r\n {/* */}\r\n {/*
    */}\r\n {/*
    {trans(\"eparts:wheth\")}:
    */}\r\n {/* {D.width} {trans(\"eparts:mm\")}
    */}\r\n {/*
    */}\r\n {/* */}\r\n {/*
    */}\r\n {/*
    {trans(\"eparts:height\")}:
    */}\r\n {/* {D.height} {trans(\"eparts:mm\")}
    */}\r\n {/*
    */}\r\n {/* */}\r\n {/*
    */}\r\n {/*
    {trans(\"eparts:Weight\")}:
    */}\r\n {/* {D.Weight} {trans(\"eparts:mm\")}
    */}\r\n {/*
    */}\r\n\r\n {/*
    */}\r\n {/**/}\r\n\r\n
    \r\n {\r\n !D?.BrandID && (\r\n
    \r\n {\r\n D?.BrandID == '2'\r\n ? trans(\"eparts:lexus-key\")\r\n : D?.BrandID == '1'\r\n ? trans(\"eparts:toyota-key\")\r\n : trans(\"eparts:toyota-key\")\r\n }\r\n
    \r\n )\r\n }\r\n\r\n
    \r\n \r\n {lang.toLowerCase() == \"en\" ? D.DescriptionEn : D.DescriptionAr}\r\n \r\n\r\n {\r\n D.ProductNo && (\r\n \r\n {\"[ \" + D.ProductNo.toString() + \" ]\"}\r\n \r\n )\r\n }\r\n
    \r\n\r\n
    \r\n {getPrice(D.NetSalePrice, D.SalesPriceDiscount)}\r\n
    \r\n\r\n \r\n
    \r\n {\r\n handelAddToCart({part: D});\r\n }}\r\n />\r\n
    \r\n\r\n
    \r\n {\r\n changeFavoriteItemState(productNo);\r\n }}\r\n />\r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n {ratingValues.stars}\r\n
    \r\n\r\n
    \r\n {ratingValues.comments} {trans(\"eparts:mkj\")}\r\n
    \r\n
    \r\n
    \r\n\r\n <>\r\n {\r\n (D.length && D.width && D.height && D.Weight) && (\r\n \r\n \r\n
    setIndexPanel(indexPanel == \"1000\" ? \"000\" : \"1000\")}\r\n\r\n >\r\n {/*

    {trans(\"offers:offer\")}

    */}\r\n

    {trans(\"eparts:Specifications\")}

    \r\n {\"arrow\"}\r\n e.target.style.display = \"none\"}\r\n />\r\n
    \r\n\r\n
    \r\n
    \r\n\r\n {\r\n // offer?.content ?\r\n \r\n\r\n
      \r\n\r\n {\r\n (D.length && D.length != 0 && D.length != 0.0) && (\r\n
    • \r\n \r\n {trans(\"eparts:length\")}:\r\n
    \r\n {D.length} {trans(\"eparts:mm\")}
    \r\n \r\n \r\n )\r\n }\r\n\r\n {\r\n (D.width && D.width != 0 && D.width != 0.0) && (\r\n
  • \r\n \r\n {trans(\"eparts:wheth\")}:\r\n \r\n {D.width} {trans(\"eparts:mm\")}\r\n \r\n
  • \r\n )\r\n }\r\n\r\n {\r\n (D.height && D.height != 0 && D.height != 0.0) && (\r\n
  • \r\n \r\n {trans(\"eparts:height\")}:\r\n \r\n {D.height} {trans(\"eparts:mm\")}\r\n \r\n
  • \r\n )\r\n }\r\n\r\n {\r\n (D.Weight && D.Weight != 0 && D.Weight != 0.0) && (\r\n
  • \r\n D.Weight\r\n \r\n {trans(\"eparts:Weight\")}:\r\n \r\n {D.Weight} {trans(\"eparts:mm\")}\r\n \r\n
  • \r\n )\r\n }\r\n \r\n\r\n \r\n // : null\r\n }\r\n\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n \r\n\r\n {\r\n // todo: الشروط والاحكام \r\n\r\n terms && terms != \"\" && (\r\n
    \r\n \r\n
    setIndexPanel(indexPanel == \"2000\" ? \"000\" : \"2000\")}\r\n\r\n >\r\n {/*

    {trans(\"offers:offer\")}

    */}\r\n

    {trans(\"offers:terms\")}

    \r\n {\"arrow\"}\r\n e.target.style.display = \"none\"}\r\n />\r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n \r\n\r\n
      \r\n {\r\n terms.split('\\n')?.map((item, index) => {\r\n\r\n return \r\n {item}\r\n \r\n })\r\n }\r\n
    \r\n\r\n
    \r\n }\r\n\r\n
    \r\n
    \r\n \r\n \r\n )\r\n\r\n }\r\n \r\n\r\n \r\n }\r\n \r\n );\r\n\r\n\r\n // if (lang === \"en\") {\r\n // return (\r\n //
    \r\n //
    \r\n // {trans(\"eparts:product_id\")}: \r\n //

    {D.ProductNo}

    \r\n //\r\n //
    \r\n //\r\n //
    \r\n //

    {D.DescriptionEn}

    \r\n //
    \r\n //\r\n //
    \r\n // \r\n //
    \r\n // {ratingValues.stars}\r\n //
    \r\n //\r\n //
    \r\n // {ratingValues.comments} {trans(\"eparts:mkj\")}\r\n //
    \r\n //
    \r\n //
    \r\n //\r\n //
    \r\n //\r\n // {getpric(D.NetSalePrice, D.SalesPriceDiscount)}\r\n //
    \r\n //\r\n //
    \r\n //

    {trans(\"eparts:Specifications\")}

    \r\n //
    \r\n //
    \r\n //
    {trans(\"eparts:length\")}:
    \r\n //\r\n // {D.length} {trans(\"eparts:mm\")}
    \r\n //
    \r\n //
    \r\n //
    {trans(\"eparts:wheth\")}:
    \r\n // {D.width} {trans(\"eparts:mm\")}
    \r\n //
    \r\n //
    \r\n //
    {trans(\"eparts:height\")}:
    \r\n // {D.height} {trans(\"eparts:mm\")}
    \r\n //
    \r\n //
    \r\n //
    {trans(\"eparts:Weight\")}:
    \r\n // {D.Weight} {trans(\"eparts:mm\")}
    \r\n // \r\n // \r\n // \r\n //\r\n // \r\n // );\r\n // } else {\r\n // return (\r\n //
    \r\n // \r\n //
    \r\n // {trans(\"eparts:product_id\")}: \r\n //

    {D.ProductNo}

    \r\n //\r\n //
    \r\n // \r\n //
    \r\n //

    {D.DescriptionAr}

    \r\n //
    \r\n // \r\n // {\r\n // // التقييم\r\n //
    \r\n //\r\n // \r\n //\r\n //
    \r\n // {ratingValues.stars}\r\n //
    \r\n //\r\n //
    \r\n // {ratingValues.comments} {trans(\"eparts:mkj\")}\r\n //
    \r\n //
    \r\n //
    \r\n // }\r\n //
    \r\n //
    \r\n // {getpric(D.NetSalePrice, D.SalesPriceDiscount)}\r\n //
    \r\n //\r\n //
    \r\n //
    \r\n //

    {trans(\"eparts:Specifications\")}

    \r\n //
    \r\n //
    \r\n //
    {trans(\"eparts:length\")}:
    \r\n //\r\n // {D.length} {trans(\"eparts:mm\")}
    \r\n //
    \r\n //
    \r\n //
    {trans(\"eparts:wheth\")}:
    \r\n // {D.width} {trans(\"eparts:mm\")}
    \r\n //
    \r\n //
    \r\n //
    {trans(\"eparts:height\")}:
    \r\n // {D.height} {trans(\"eparts:mm\")}
    \r\n //
    \r\n //
    \r\n //
    {trans(\"eparts:Weight\")}:
    \r\n // {D.Weight} {trans(\"eparts:mm\")}
    \r\n // \r\n // \r\n // \r\n //\r\n // \r\n // );\r\n // }\r\n }\r\n )\r\n }\r\n\r\n {\r\n //
    \r\n //
    \r\n //
    \r\n // {\r\n // changeFavoriteItemState(productNo)\r\n // }}\r\n // />\r\n //
    \r\n //
    \r\n //
    {trans(\"eparts:dateNithing\")}
    \r\n // {\r\n // if (lang === \"ar\") {\r\n // return {value: A.DeliveryTimeId, text: A.SIteNameAr};\r\n // } else {\r\n // return {value: A.DeliveryTimeId, text: A.SiteNameEn};\r\n // }\r\n //\r\n // })]}\r\n // onfilter={DilevryTimeAccounting}\r\n //\r\n // />\r\n //

    \r\n // {trans(\"eparts:AccessTo\")} {DilevryTime}\r\n //

    \r\n //
    \r\n //\r\n //\r\n // {PWD.map(WD => (\r\n //
    \r\n //\r\n //
    \r\n // \r\n //
    {counter}
    \r\n // \r\n //
    \r\n // {\r\n //\r\n // var objectCart =\r\n // WD.SalesPriceDiscount > 0 ?\r\n // {\r\n //\r\n //\r\n // id: WD?.ProductID,\r\n // productID: WD?.ProductID,\r\n // name: WD?.DescriptionAr,\r\n // price: WD?.SalesPriceDiscount,\r\n // image: imagePath,\r\n // Type: \"part\"\r\n //\r\n //\r\n // // quantity( WD.ProductID,counter)\r\n // }\r\n // :\r\n // {\r\n //\r\n // id: WD?.ProductID,\r\n // productID: WD?.ProductID,\r\n // name: WD?.DescriptionAr,\r\n // price: WD?.NetSalePrice,\r\n // image: imagePath,\r\n // Type: \"part\"\r\n //\r\n //\r\n // // quantity( WD.ProductID,counter)\r\n // }\r\n //\r\n // changecartItem(WD.ProductID, null, null, counter, null, null, objectCart);\r\n //\r\n //\r\n // }}\r\n //\r\n // className={\"btn btn-primary text-14 px-4\"}>\r\n // {trans(\"eparts:AddToCart\")}\r\n // \"hassan\r\n //
    \r\n //
    \r\n // ))}\r\n //\r\n //\r\n //
    \r\n //
    {trans(\"eparts:AvaAtView\")}
    \r\n // {\r\n //\r\n // {\r\n // if (lang === \"ar\") {\r\n // return {value: A.GUID, text: A.SitesDescriptionAr};\r\n // } else {\r\n // return {value: A.GUID, text: A.SitesDescriptionEn};\r\n // }\r\n //\r\n // })]}\r\n // onSelect={handleGetDistance}\r\n //\r\n // />\r\n //\r\n // }\r\n //\r\n //
    \r\n //

    {trans(\"eparts:locations-title\")}

    \r\n //
    \r\n //
    \r\n //
    \r\n // \"location\"/\r\n //

    {locationName}

    \r\n //
    \r\n // \r\n //

    \r\n // {\r\n // trans(\"info:ditance_note\") + ' ' + (locationDistance ? (String(locationDistance) + ' ' + trans('info:km')) : '')\r\n // }\r\n //

    \r\n // \r\n // \"\"/\r\n // \r\n //\r\n //
    \r\n // {showSharers &&\r\n //
    \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n // \r\n //
    }\r\n //
    \r\n //
    \r\n //
    \r\n //
    \r\n // \r\n //
    \r\n //
    \r\n // \"\"/\r\n //
    \r\n //

    {trans(\"new:locations-shop\")}

    \r\n // {\"info\"}/\r\n //
    \r\n //
    \r\n //
    \r\n // \"\"/\r\n //
    \r\n //

    {trans(\"new:locations-Replace\")}

    \r\n // {\"info\"}/\r\n //
    \r\n //
    \r\n //
    \r\n // \"\"/\r\n //
    \r\n //

    {trans(\"new:locations-Advice\")}

    \r\n // {\"info\"}/\r\n //
    \r\n //
    \r\n //
    \r\n // \"\"/\r\n //
    \r\n //

    {trans(\"new:locations-Send\")}

    \r\n // {\"info\"}/\r\n //
    \r\n //
    \r\n //
    \r\n // \r\n }\r\n \r\n \r\n\r\n {\r\n /*التوافق*/\r\n (checkCompatibility?.CheckCompatibility == true) && (\r\n
    \r\n\r\n
    \r\n \r\n\r\n {/*todo: التقييم */}\r\n {/**/}\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n )\r\n }\r\n\r\n {\r\n /*منتجات مماثلة*/\r\n (PWR && PWR.length > 0) && (\r\n
    \r\n \r\n\r\n \r\n {\r\n PWR?.map((catValue, catIndex) => (\r\n \r\n {\r\n // \r\n\r\n\r\n \r\n }\r\n \r\n ))\r\n }\r\n \r\n {/*
    */\r\n }\r\n {/* {PWR.map(P => (*/\r\n }\r\n {/* */\r\n }\r\n\r\n {/* */\r\n }\r\n {/* */\r\n }\r\n {/* ))}*/\r\n }\r\n {/*
    */\r\n }\r\n
    \r\n )\r\n }\r\n
    \r\n )\r\n ;\r\n}","import {useTranslation} from \"react-i18next\";\r\nimport {Link} from \"react-router-dom\";\r\nimport {Price} from \"../../../components/__simple/_price\";\r\nimport {useState} from \"react\";\r\n// import {addToCart} from \"../../../_functions/cart\";\r\nimport { useUserCart } from '../../../User/hooks/useUserCart';\r\n\r\nexport function Item({hasLike = false , ...props}) {\r\n const {t: trans} = useTranslation([\"common\", \"eparts\"]);\r\n let imagePath = \"/assets/images/eparts/defulte.png\";\r\n\r\n const { removecartItems, changecartItem } = useUserCart();\r\n imagePath = (props.ProductImage) ? \"data:image/png;base64,\" + props.ProductImage : imagePath;\r\n const [lang, setlang] = useState(localStorage.getItem('i18nextLng'));\r\n const languageDir = 'language-' + localStorage.getItem('i18nextLng');\r\n let Description = \"Description....\";\r\n Description = lang === \"ar\" ? props.DescriptionAr : props.DescriptionEn;\r\n return (\r\n\r\n
    \r\n\r\n \r\n
    \r\n\r\n \"\"/\r\n\r\n
    \r\n \r\n
    \r\n {\r\n\r\n var objectCart =\r\n {\r\n id: props?.ProductID,\r\n name: props?.DescriptionAr,\r\n price: props?.NetSalePrice,\r\n image: imagePath, \r\n Type:\"accessories\",\r\n Engine_Groups:props?.Engine_Groups\r\n }\r\n changecartItem(props?.ProductID, null, null, 1,null,null,objectCart);\r\n // addToCart(\r\n // {\r\n // id: props.ProductID,\r\n // name: props.DescriptionAr,\r\n // price: props.NetSalePrice,\r\n // image: imagePath, \r\n // Type:\"accessories\",\r\n // Engine_Groups:props.Engine_Groups\r\n // }\r\n // )\r\n window.location.reload();\r\n\r\n }}\r\n className=\"part-card-info-cart text-16 btn btn-primary\">\r\n {trans(\"add-to-cart\")}\r\n {trans(\"buy\")}/\r\n
    \r\n\r\n \r\n\r\n
    \r\n

    \r\n {trans(\"eparts:product_id\")} : {props.ProductID}\r\n

    \r\n
    \r\n

    {Description}

    \r\n
    \r\n
    \r\n

    \r\n \r\n

    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n \r\n\r\n );\r\n}\r\n\r\n","import {useTranslation} from \"react-i18next\";\r\nimport {Link} from \"react-router-dom\";\r\nimport {LikeButton} from \"../../../components/__simple/_likeButton\";\r\nimport {Price} from \"../../../components/__simple/_price\";\r\nimport {add, total, list} from 'cart-localstorage'\r\nimport {useState} from \"react\";\r\nimport {addToCart} from \"../../../_functions/cart\";\r\n\r\nexport function Gift({hasLike = false , ...props}) {\r\n const {t: trans} = useTranslation([\"common\", \"eparts\"]);\r\n\r\n let imagePath = \"/assets/images/eparts/defulte.png\";\r\n\r\n\r\n imagePath = (props.ProductImage) ? \"data:image/png;base64,\" + props.ProductImage : imagePath;\r\n const [lang, setlang] = useState(localStorage.getItem('i18nextLng'));\r\n const languageDir = 'language-' + localStorage.getItem('i18nextLng');\r\n let Description = \"Description....\";\r\n Description = lang === \"ar\" ? props.DescriptionAr : props.DescriptionEn;\r\n return (\r\n\r\n
    \r\n\r\n \r\n
    \r\n\r\n \"\"/\r\n\r\n
    \r\n \r\n
    \r\n \r\n\r\n
    \r\n

    \r\n {trans(\"eparts:product_id\")} : {props.ProductID}\r\n

    \r\n
    \r\n

    {Description}

    \r\n
    \r\n
    \r\n

    \r\n \r\n

    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n\r\n );\r\n}\r\n\r\n","import { useRef, useState } from \"react\";\r\nimport { quantity } from 'cart-localstorage'\r\nimport { Price } from \"../../../components/__simple/_price\";\r\nimport axios from \"axios\";\r\nimport { SwiperSlide, Swiper } from 'swiper/react';\r\nimport SwiperCore, { Pagination, Navigation, Autoplay, EffectFade } from \"swiper\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Item } from \"./Item\";\r\nimport { Gift } from \"./gift\";\r\nimport { useUserFavorite } from \"../../../User/hooks/useUserFavorite\";\r\nimport config from \"../../../configuration/config.json\";\r\nimport { LikeButton } from \"../../../components/__simple/_likeButton\";\r\nimport _ from \"lodash\";\r\nimport { Base64 } from 'js-base64';\r\nimport { useUserCart } from '../../../User/hooks/useUserCart';\r\nimport { toast } from \"react-toastify\";\r\nimport { getData } from \"../../../utils/localStorageManager\";\r\nSwiperCore.use([Pagination, Navigation, Autoplay, EffectFade]);\r\nexport function Cart(\r\n { slug, img, brand, name, price, count, id, onDelete, modelTypes,\r\n Tax, Discount, Pay, Account, colorID, CategoryCar, productID, year, modelTypeID, colorName, modelCode, carErrorCount }\r\n) {\r\n const { isFavoriteItem, changeFavoriteItemState } = useUserFavorite();\r\n const { removecartItems, changecartItem } = useUserCart();\r\n const [LodingDelate, setLodingDelate] = useState(false);\r\n const { t: trans } = useTranslation([\"cartFile\", \"info\"]);\r\n const GetUrl = config.baseURL + 'details';\r\n const [counter, setCounter] = useState(count);\r\n const [Accessories, setAccessories] = useState([]);\r\n const [GiftS, setGifts] = useState([]);\r\n let lang = localStorage.getItem('i18nextLng');\r\n const specRef = useRef(null);\r\n // to show and hide the accessories box\r\n const [hasAccessories, setHasAccessories] = useState(false);\r\n const [hasGift, setHasGift] = useState(false);\r\n const [CartInfo, setCartInfo] = useState({ id: \"\", brand: \"\", modelTypes: \"\", Color: \"\", CountGifts: 0, MinPrice: 0, Discount: 0, img: \"\", CategoryCar: 0 });\r\n //----------------------------------------------------------\r\n const countF = async (num) => {\r\n\r\n const countSN = await getSerialsBuyOnlineCount(modelTypeID, year, colorID);\r\n\r\n console.log(\"countSN>>>>>>>>>>>>>>>>>>>>>>:\", countSN);\r\n console.log(\"num>>>>>>>>>>>>>>>>>>>>>>:\", num);\r\n if (countSN == null || (num != -1 && countSN != null && (countSN < (counter + num)))) {\r\n\r\n toast.warn(trans(\"cartFile:quantity_is_not_available\"), {\r\n position: \"top-left\",\r\n autoClose: 5000,\r\n hideProgressBar: false,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n });\r\n return;\r\n }\r\n\r\n\r\n if (num == -1 && counter > 1)\r\n setCounter(counter + num);\r\n else if (num == 1 && counter < 100)\r\n setCounter(counter + num);\r\n if (num == -1 && counter == 1) {\r\n // onDelete();\r\n\r\n return;\r\n }\r\n const isLogin = getData('isAuthenticated');\r\n if (isLogin) {\r\n const resultchangecartItem = await changecartItem(productID, colorID, modelTypes, num, modelCode);\r\n Account()\r\n } else {\r\n quantity(id, num);\r\n Account()\r\n }\r\n\r\n\r\n console.log(\">>>>>>>>>countF>>>>>>>>>>>>>:\");\r\n\r\n\r\n }\r\n\r\n const getSerialsBuyOnlineCount = async (Type, Model, ColorID) => {\r\n var count = 0;\r\n\r\n\r\n const response = await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"siteInvProductSerialsBuyOnlineCount\",\r\n \"Values\": {\r\n \"Type\": `${Type}`,\r\n \"Model\": `${Model}`,\r\n \"ColorID\": `${ColorID}`\r\n }\r\n }\r\n );\r\n\r\n\r\n count = response.data[0].countSN;\r\n console.log(\"getSerialsBuyOnlineCount>>>>return>>>>>\", count);\r\n return count;\r\n };\r\n\r\n //SiteAccessories_Cart;\r\n async function CarCartInfo() {\r\n const Body = {\r\n \"name\": \"Site_CarCartInfoAr\",\r\n \"values\": {\r\n \"slug\": `${slug}`, \"colorId\": `${colorID}`\r\n }\r\n }\r\n await axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n var CuurentValue = CartInfo;\r\n CuurentValue.brand = response.data[0].Brand\r\n CuurentValue.modelTypes = response.data[0].ModelTypes\r\n CuurentValue.MinPrice = response.data[0].MinPrice\r\n CuurentValue.Discount = response.data[0].Discount\r\n CuurentValue.CountGifts = response.data[0].CountGifts\r\n CuurentValue.Color = response.data[0].Color\r\n CuurentValue.year = response.data[0].Model\r\n CuurentValue.img = response.data[0].img ? response.data[0].img : \"/assets/images/eparts/default.png\";\r\n CuurentValue.CategoryCar = response.data[0].CategoryCar\r\n setCartInfo(CuurentValue)\r\n CategoryCar(CuurentValue.CategoryCar)\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n }\r\n async function Accessories_Car(ProductsId) {\r\n const Body = {\r\n \"name\": \"Site_Accessories_CartCar\",\r\n \"values\": {\r\n \"ProductID\": `${ProductsId}`\r\n }\r\n }\r\n\r\n await axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n // console.log(response.data);\r\n setAccessories(response.data);\r\n\r\n\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n }\r\n async function Gifts_Car(ProductsId) {\r\n const Body = {\r\n \"name\": \"Site_Gifts_CartCar\",\r\n \"values\": {\r\n \"ProductID\": `${ProductsId}`\r\n }\r\n }\r\n\r\n await axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n // console.log(response.data);\r\n setGifts(response.data);\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n }\r\n\r\n useState(() => {\r\n if (id) {\r\n CarCartInfo();\r\n // Accessories_Car(id);\r\n // Gifts_Car(id);\r\n }\r\n }, []);\r\n\r\n\r\n\r\n\r\n return (\r\n
    \r\n\r\n {\r\n\r\n (carErrorCount == true) &&\r\n
    {trans(\"cartFile:quantity_is_not_available\")}
    \r\n }\r\n
    \r\n
    \r\n\r\n {\r\n (Base64.isValid(img) == 1 ?\r\n\r\n {\"\"} :\r\n {\"\"})\r\n\r\n }\r\n\r\n {/* */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    {trans(\"cartFile:trade\")}

    \r\n

    {brand}

    \r\n
    \r\n
    \r\n

    {trans(\"cartFile:vehicle_type\")}

    \r\n

    {modelTypes}

    \r\n
    \r\n
    \r\n

    {trans(\"info:vehicle_year\")}

    \r\n

    {year}

    \r\n
    \r\n
    \r\n

    {trans(\"cartFile:color\")}

    \r\n

    \r\n {colorName}\r\n

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n\r\n LodingDelate ?\r\n \r\n \r\n \r\n\r\n : \r\n }\r\n { changeFavoriteItemState(productID) }}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    {trans(\"cartFile:product_price\")}
    \r\n
    \r\n
    \r\n {\r\n Discount ?\r\n
    \r\n
    {trans(\"cartFile:discount_amount\")}
    \r\n
    \r\n
    \r\n : null\r\n }\r\n\r\n {\r\n Discount ?\r\n
    \r\n
    {trans(\"cartFile:discount_rate\")}
    \r\n
    %{(Discount / (price + Discount)) * 100}
    \r\n
    \r\n : null\r\n }\r\n\r\n
    \r\n
    \r\n
    \r\n

    {trans(\"cartFile:amount\")}

    \r\n
    \r\n \r\n
    {counter}
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n
    \r\n {/* */}\r\n \r\n
    \r\n\r\n {hasAccessories &&
    \r\n
    \r\n {\r\n \r\n\r\n\r\n\r\n {Accessories.map(P => (\r\n \r\n \r\n \r\n ))}\r\n\r\n \r\n // Accessories.map((Acc)=>{\r\n // return(
    \r\n // \"\"/\r\n //
    {Acc.DescriptionAr}
    \r\n // {\"info\"}/\r\n //
    ); \r\n // })\r\n }\r\n\r\n\r\n\r\n
    \r\n
    \r\n }\r\n\r\n {hasGift &&
    \r\n
    \r\n {\r\n \r\n\r\n\r\n\r\n {GiftS.map(P => (\r\n \r\n \r\n \r\n ))}\r\n\r\n \r\n //Accessories.map((Acc)=>{\r\n // return(
    \r\n // \"\"/\r\n //
    {Acc.DescriptionAr}
    \r\n // {\"info\"}/\r\n //
    ); \r\n // })\r\n }\r\n\r\n\r\n\r\n
    \r\n
    \r\n }\r\n
    \r\n );\r\n}\r\n","import { useEffect, useRef, useState } from \"react\";\r\nimport { quantity } from 'cart-localstorage'\r\nimport { Price } from \"../../../components/__simple/_price\";\r\nimport axios from \"axios\";\r\nimport config from \"../../../configuration/config.json\";\r\nimport { LikeButton } from \"../../../components/__simple/_likeButton\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useUserFavorite } from \"../../../User/hooks/useUserFavorite\";\r\nimport _ from \"lodash\";\r\nimport { useUserCart } from '../../../User/hooks/useUserCart';\r\nimport { getData } from \"../../../utils/localStorageManager\";\r\nexport function CartItems(\r\n { Account, img, brand, name, price, count, id, favorites, onFavoriteItemsChange, onDelete, Categior, Discount, Tax, Pay, favoriteItems, showCategor = true, productNo }\r\n) {\r\n const { t: trans } = useTranslation([\"cartFile\", \"new\"]);\r\n const { isFavoriteItem, changeFavoriteItemState } = useUserFavorite();\r\n const [counter, setCounter] = useState(count);\r\n const { removecartItems, changecartItem } = useUserCart();\r\n const [lang, setlang] = useState(localStorage.getItem('i18nextLng'));\r\n const specRef = useRef(null);\r\n const [specHeight, setHeight] = useState(0);\r\n\r\n const countF = async (num) => {\r\n if (num === -1 && counter > 1)\r\n setCounter(counter + num);\r\n else if (num === 1 && counter < 100)\r\n setCounter(counter + num);\r\n if (num === -1 && counter === 1) {\r\n // onDelete();\r\n\r\n return;\r\n }\r\n console.log(\"part id:\" + id);\r\n\r\n const isLogin = getData('isAuthenticated');\r\n if (isLogin) {\r\n const resultchangecartItem = await changecartItem(id, null, null, num, null);\r\n Account()\r\n } else {\r\n quantity(id, num);\r\n Account()\r\n }\r\n \r\n\r\n }\r\n\r\n function showData() {\r\n\r\n setHeight(specHeight <= 0 ? specRef.current.scrollHeight : 0);\r\n }\r\n\r\n const [isFavorite, setIsFavorite] = useState(false);\r\n const [tempFavorites, setTempFavorites] = useState(favoriteItems);\r\n\r\n const [CartInfo, setCartInfo] = useState(null);\r\n async function PartCartInfo() {\r\n\r\n const Body = {\r\n \"name\": \"Site_FeatchCartPartInfo\",\r\n \"values\": {\r\n \"ProductID\": `${id}`\r\n }\r\n }\r\n await axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n\r\n var CuurentValue = {};\r\n CuurentValue.Brand = lang === \"ar\" ? response.data[0].BrandAr : response.data[0].BrandEn;\r\n CuurentValue.category = lang === \"ar\" ? response.data[0].categoryAr : response.data[0].categoryEn;\r\n CuurentValue.Description = lang === \"ar\" ? response.data[0].DescriptionAr : response.data[0].DescriptionEn;\r\n\r\n // CuurentValue.img = response.data[0].img ? \"data:image/png;base64,\" + response.data[0].img : \"/assets/images/eparts/default.png\";\r\n CuurentValue.img = response.data[0].img \r\n ? \"data:image/png;base64,\" + response.data[0].img \r\n : lang.toLowerCase() === \"ar\" ? \"/assets/images/eparts/PARTS_TOYOTA-AR-no-img.png\" : \"/assets/images/eparts/PARTS_TOYOTA-EN-no-img.png\";\r\n\r\n CuurentValue.ProductNo = response.data[0].ProductNo;\r\n\r\n console.log(\"CuurentValue>>>>>>>>>>>>>>>>>>>>>>>>:\",CuurentValue);\r\n setCartInfo(CuurentValue);\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n }\r\n\r\n useEffect(() => {\r\n //handleFavoriteState();\r\n PartCartInfo();\r\n }, []);\r\n\r\n return (
    \r\n\r\n
    \r\n
    \r\n {productNo.toString()}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    {trans(\"new:category_no\")}

    \r\n

    {productNo}

    \r\n
    \r\n {\r\n showCategor &&
    \r\n

    {trans(\"new:category\")}

    \r\n

    {CartInfo?.category}

    \r\n
    \r\n }\r\n\r\n
    \r\n

    {trans(\"new:description\")}

    \r\n

    {CartInfo?.Description}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n { changeFavoriteItemState(id) }}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    {trans(\"new:single_price\")}
    \r\n
    \r\n
    \r\n
    \r\n
    {trans(\"cartFile:discount_rate\")}
    \r\n
    {Discount}%
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    {trans(\"cartFile:amount\")}

    \r\n
    \r\n \r\n
    {counter}
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n","import { useRef, useState, useEffect } from \"react\";\r\nimport { quantity } from 'cart-localstorage'\r\nimport { Price } from \"../../../components/__simple/_price\";\r\nimport axios from \"axios\";\r\nimport config from \"../../../configuration/config.json\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { LikeButton } from \"../../../components/__simple/_likeButton\";\r\nimport { DateInput2 as DateInput } from \"../../../components/_input/_dateInput_2\";\r\nimport { getData, User_Data_Key } from \"../../../utils/localStorageManager\";\r\nimport { DropDownInput } from \"../../../components/_input/_dropdown\";\r\nimport { slugCombine, slugSplitter } from '../../../utils/slugManager';\r\nimport moment from \"moment\";\r\nexport function BouquetCart(\r\n { Account, img, brand, name, price, year, count, Desc, id, productID, onDelete, Categior, Discount, Tax, Pay, packageId, ErrorDate, Orderdate, refrechDate }\r\n) {\r\n const { t: trans, i18n } = useTranslation([\"cartFile\", \"new\", \"form\",\"info\", \"eparts\"]);\r\n const [counter, setCounter] = useState(count);\r\n const specRef = useRef(null);\r\n const [specHeight, setHeight] = useState(0);\r\n const [editDate, setEditDate] = useState(false);\r\n const [editCarType, setEditCarType] = useState(false);\r\n const [models, setModels] = useState([]);\r\n const [CartInfo, setCartInfo] = useState({ id: \"\", brand: \"\", DiscountRate: 0, img: \"\", Description: \"\", Titel: 0, ItemsNumer: 0, Price: 0.000 });\r\n const [ServiceInfo, setServiceInfo] = useState(null);\r\n const [acticeCar, setActiceCar] = useState(null);\r\n const [formGroup, setFormGroup] = useState(null);\r\n const [formModelTypeID, setFormModelTypeID] = useState(null);\r\n const [formYear, setFormYear] = useState(null);\r\n const [requestForm, setRequestForm] = useState({\r\n date: '',\r\n time: '',\r\n });\r\n let lang = i18n.language;\r\n function countF(num) {\r\n if (num === -1 && counter > 1)\r\n setCounter(counter + num);\r\n else if (num === 1 && counter < 100)\r\n setCounter(counter + num);\r\n if (num === -1 && counter === 1) {\r\n // onDelete();\r\n\r\n return;\r\n }\r\n console.log(\"part id:\" + id);\r\n quantity(id, num);\r\n Account();\r\n }\r\n\r\n const [LodingDelate, setLodingDelate] = useState(false);\r\n const [LodingEditDate, setLodingEditDate] = useState(false);\r\n const [LodingEditCarType, setLodingEditCarType] = useState(false);\r\n const [SupportedVehicles, setSupportedVehicles] = useState([]);\r\n const [years, setYears] = useState([]);\r\n const [filteredProductModels, setFilteredProductModels] = useState([]);\r\n async function updateDateService() {\r\n setLodingEditDate(true);\r\n var fullDatetime = Orderdate;\r\n var userID = null;\r\n try {\r\n const { id } = JSON.parse(getData(User_Data_Key, true));\r\n userID = Number(id.toString().split('_')[1]);\r\n } catch (error) {\r\n\r\n }\r\n\r\n if (userID) {\r\n try {\r\n\r\n if (requestForm?.date) {\r\n\r\n var md = new Date(requestForm?.date);\r\n try {\r\n if (requestForm?.time) {\r\n\r\n var Hours = requestForm?.time.split(\":\");\r\n\r\n md.setHours(Hours[0], Hours[1], 0);\r\n }\r\n } catch (error) {\r\n\r\n }\r\n var datetime = new moment(md).format('yyyy-MM-DD HH:mm:ss');\r\n fullDatetime = datetime;\r\n }\r\n\r\n } catch (error) {\r\n }\r\n\r\n await axios.put(\r\n config.baseURL + 'update',\r\n {\r\n \"Object\": \"WebUserCart\",\r\n \"values\": {\r\n \"Orderdate\": fullDatetime\r\n },\r\n \"Filters\": `where WebUserID = '${userID}' and ProductID= '${productID}' and packageId=${packageId} `\r\n }\r\n ).then(async response => {\r\n\r\n await refrechDate();\r\n setEditDate(false);\r\n setLodingEditDate(false);\r\n console.log(\"response update:\", response);\r\n\r\n\r\n }).catch(function (error) {\r\n console.log(error);\r\n setEditDate(false);\r\n setLodingEditDate(false);\r\n });\r\n } else {\r\n setLodingEditDate(false);\r\n setEditDate(false);\r\n }\r\n }\r\n\r\n async function updateCarTypeService() {\r\n setLodingEditCarType(true);\r\n var userID = null;\r\n try {\r\n const { id } = JSON.parse(getData(User_Data_Key, true));\r\n userID = Number(id.toString().split('_')[1]);\r\n } catch (error) {\r\n\r\n }\r\n\r\n if (userID) {\r\n\r\n\r\n await axios.put(\r\n config.baseURL + 'update',\r\n {\r\n \"Object\": \"WebUserCart\",\r\n \"values\": {\r\n \"modelTypeID\": requestForm?.modelTypeID,\r\n \"year\": requestForm?.year\r\n },\r\n \"Filters\": `where WebUserID = '${userID}' and ProductID= '${productID}' and packageId=${packageId} `\r\n }\r\n ).then(async response => {\r\n\r\n await refrechDate();\r\n setEditCarType(false);\r\n setLodingEditCarType(false);\r\n console.log(\"response update:\", response);\r\n\r\n\r\n }).catch(function (error) {\r\n console.log(error);\r\n setEditCarType(false);\r\n setLodingEditCarType(false);\r\n });\r\n } else {\r\n setLodingEditCarType(false);\r\n setEditCarType(false);\r\n }\r\n }\r\n\r\n function GetCartInfo() {\r\n\r\n const Body = {\r\n \"name\": \"site_fetchPackageDetails\",\r\n \"values\": {\r\n \"lang\": lang,\r\n \"packageId\": packageId ? packageId + \"\" : null\r\n }\r\n }\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n\r\n var CuurentValue = response.data[0];\r\n CuurentValue.offerName = response.data[0].Offer;\r\n CuurentValue.packageName = response.data[0].Title;\r\n CuurentValue.Price = response.data[0].Price;\r\n CuurentValue.img = response.data[0].image;\r\n setCartInfo(CuurentValue);\r\n\r\n\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n }\r\n\r\n\r\n\r\n function GetServiceInfo() {\r\n\r\n const Body = {\r\n \"name\": \"site_FetchInfoService\",\r\n \"values\": {\r\n \"ServiceID\": productID\r\n }\r\n }\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n\r\n var CuurentValue = {};\r\n\r\n CuurentValue.ServiceName = lang == \"ar\" ? response.data[0].ServiceNameAR : response.data[0].ServiceName;\r\n\r\n setServiceInfo(CuurentValue);\r\n\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n }\r\n\r\n\r\n function showData() {\r\n\r\n setHeight(specHeight <= 0 ? specRef.current.scrollHeight : 0);\r\n }\r\n useState(() => {\r\n GetCartInfo();\r\n GetServiceInfo();\r\n })\r\n\r\n useEffect(() => {\r\n\r\n if (CartInfo && CartInfo?.slugAr) {\r\n\r\n FetchOfferSupportedServices(CartInfo?.slugAr);\r\n FetchOfferSupportedVehicles(CartInfo?.slugAr);\r\n FetchModels();\r\n }\r\n\r\n }, [CartInfo])\r\n\r\n useEffect(() => {\r\n\r\n var ly = [];\r\n\r\n try {\r\n if (acticeCar?.fromYear && acticeCar?.toYear) {\r\n\r\n ly.push({ value: acticeCar.fromYear, text: acticeCar.fromYear });\r\n var newy = parseInt(acticeCar.fromYear);\r\n for (var i = 0; i <= 30; i++) {\r\n\r\n newy = parseInt(newy) + 1;\r\n\r\n ly.push({ value: newy, text: newy });\r\n\r\n if (newy >= acticeCar?.toYear) {\r\n\r\n break;\r\n }\r\n }\r\n setYears(ly);\r\n\r\n }\r\n } catch (error) {\r\n\r\n }\r\n\r\n\r\n }, [acticeCar]);\r\n\r\n function setDefultDate() {\r\n\r\n var date = null\r\n var time = null;\r\n\r\n if (Orderdate) {\r\n console.log(\"Orderdate>>>>>>>>>>>>>>>>>>>>>>>>:\", Orderdate);\r\n try {\r\n var all = Orderdate.split(\" \");\r\n console.log(\"all:\", all);\r\n date = all[0];\r\n time = all[1];\r\n\r\n\r\n\r\n } catch (error) {\r\n }\r\n\r\n }\r\n\r\n const val = { ...requestForm };\r\n val.date = date;\r\n val.time = time;\r\n setRequestForm(val);\r\n }\r\n\r\n useEffect(() => {\r\n\r\n setDefultDate();\r\n\r\n }, [Orderdate])\r\n\r\n\r\n const handleFilteredModels = (option) => {\r\n\r\n\r\n const fModels = models?.filter(a => a.productGroupID == option);\r\n\r\n setFilteredProductModels(fModels);\r\n\r\n };\r\n\r\n const FetchModels = async () => {\r\n try {\r\n try {\r\n const responsemodels = await axios.request({\r\n baseURL: config.controllURL,\r\n url: config.controllURL + lang + \"/api/Maintenance/ProductModels\",\r\n method: \"get\",\r\n });\r\n setModels(responsemodels.data);\r\n\r\n\r\n } catch (error) {\r\n console.log(error);\r\n\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n\r\n };\r\n\r\n const FetchOfferSupportedVehicles = async (Slug) => {\r\n try {\r\n await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"name\": \"Site_FetchOfferSupportedVehicles\",\r\n \"values\": {\r\n \"slug\": Slug\r\n\r\n }\r\n }\r\n ).then(function (response) {\r\n\r\n setSupportedVehicles(response.data);\r\n\r\n }).catch(function (error) {\r\n console.log(error);\r\n\r\n });\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n\r\n };\r\n\r\n const [SupportedServices, setSupportedServices] = useState([]);\r\n const [SupportedMainServices, setSupportedMainServices] = useState([]);\r\n const [SupportedLastsServices, setSupportedLastsServices] = useState([]);\r\n const [isLoadingSupportedServices, setLoadingSupportedServices] = useState(true);\r\n const FetchOfferSupportedServices = async (Slug) => {\r\n try {\r\n setLoadingSupportedServices(true);\r\n\r\n await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"name\": \"Site_FetchOfferSupportedServices\",\r\n \"values\": {\r\n \"slug\": Slug\r\n }\r\n }\r\n ).then(function (response) {\r\n\r\n var Mainservice = [];\r\n var Lastservice = [];\r\n var MainserviceIDS = [];\r\n response.data?.map((item, index) => {\r\n\r\n if (item?.packageId == packageId) {\r\n\r\n\r\n\r\n if (item?.ServiceID) {\r\n if (!Lastservice.includes(item)) {\r\n Lastservice.push(item);\r\n MainserviceIDS.push(item?.subService2);\r\n }\r\n } else if (item?.subService2) {\r\n\r\n if (!Mainservice.includes(item)) {\r\n\r\n Mainservice.push(item);\r\n }\r\n }\r\n\r\n }\r\n\r\n });\r\n Mainservice = Mainservice.filter(item => !MainserviceIDS.includes(item?.subService2))\r\n setSupportedMainServices(Mainservice);\r\n setSupportedLastsServices(Lastservice);\r\n\r\n setSupportedServices(response.data);\r\n setLoadingSupportedServices(false);\r\n\r\n }).catch(function (error) {\r\n console.log(error);\r\n setLoadingSupportedServices(false);\r\n });\r\n } catch (error) {\r\n console.log(error);\r\n setLoadingSupportedServices(false);\r\n }\r\n\r\n };\r\n return (
    \r\n\r\n {\r\n\r\n (ErrorDate == true) &&\r\n
    {trans(\"cartFile:service_date_isMandatory\")}
    \r\n }\r\n\r\n
    \r\n
    \r\n {\r\n CartInfo?.img &&\r\n < img className={\"object-full product-cart-image object-contain\"} src={config.mainURL + CartInfo?.img} />\r\n }\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    {trans(\"new:package\")} :

    \r\n

    {CartInfo?.offerName}

    \r\n
    \r\n
    \r\n

    {trans(\"new:vehicle\")}:

    \r\n

    {Desc}

    \r\n\r\n {\r\n editCarType == false && getData('isAuthenticated') ?\r\n\r\n <>\r\n\r\n {\r\n setEditCarType(true);\r\n\r\n }}\r\n\r\n />\r\n \r\n : null\r\n\r\n }\r\n\r\n
    \r\n\r\n\r\n {\r\n\r\n SupportedLastsServices && SupportedLastsServices.length > 0 &&\r\n
    \r\n

    {trans(\"new:items_count\")}:

    \r\n

    {SupportedLastsServices.length}

    \r\n
    \r\n }\r\n\r\n\r\n\r\n {\r\n SupportedLastsServices && SupportedLastsServices.length > 0 &&\r\n
    \r\n

    {trans(\"new:description\")} :

    \r\n

    {SupportedLastsServices.map((a, index) => {\r\n\r\n return (\r\n

  • {a.ServiceNameAR}
  • \r\n )\r\n })}

    \r\n
    \r\n\r\n }\r\n\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n {\r\n\r\n LodingDelate ?\r\n \r\n \r\n \r\n\r\n : \r\n }\r\n\r\n \r\n
    \r\n
    \r\n
    \r\n
    {trans(\"new:package_price\")}
    \r\n
    \r\n
    \r\n\r\n {\r\n // Orderdate &&\r\n
    \r\n
    {trans(\"form:maintenance-date\")}
    \r\n
    {Orderdate && new moment(Orderdate).format('yyyy/MM/DD hh:mm:ss a')}
    \r\n\r\n {\r\n editDate == false && getData('isAuthenticated') ?\r\n\r\n <>\r\n\r\n {\r\n setEditDate(true);\r\n\r\n }}\r\n\r\n />\r\n \r\n : null\r\n\r\n }\r\n\r\n\r\n
    \r\n\r\n\r\n\r\n // \r\n\r\n\r\n\r\n }\r\n\r\n\r\n {false &&
    \r\n
    {trans(\"cartFile:discount_rate\")}
    \r\n
    {CartInfo.DiscountRate}%
    \r\n
    }\r\n
    \r\n
    \r\n
    \r\n

    {trans(\"cartFile:amount\")}

    \r\n
    \r\n \r\n
    {counter}
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n
    \r\n {\r\n editDate == true ?\r\n\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n\r\n {\r\n //////console.log(\">>>>>>>>>>>>>:\", e.target.value);\r\n if (e.target.value >= (new Date().toJSON().slice(0, 10)) || !e.target.value) {\r\n const val = { ...requestForm };\r\n val.date = e.target.value;\r\n setRequestForm(val);\r\n }\r\n }\r\n }\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n {\r\n const val = { ...requestForm };\r\n val.time = e.target.value;\r\n setRequestForm(val);\r\n }\r\n }\r\n />\r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n
    \r\n {\r\n\r\n LodingEditDate ?\r\n \r\n \r\n \r\n\r\n :\r\n <>\r\n {\r\n\r\n updateDateService();\r\n\r\n\r\n }}\r\n />\r\n\r\n {\r\n\r\n setDefultDate();\r\n setEditDate(false);\r\n setLodingEditDate(false);\r\n\r\n\r\n }}\r\n />\r\n \r\n\r\n }\r\n
    \r\n
    \r\n\r\n :\r\n\r\n null\r\n\r\n\r\n }\r\n\r\n\r\n {\r\n editCarType == true ?\r\n\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n\r\n a.packageId == packageId)).map(B => {\r\n return { value: B.slug, text: ((lang == \"ar\" ? B?.brand : B?.brandEn) + \" \" + (lang == \"ar\" ? B?.group : B?.groupEn)), carGroupID: B.carGroupID };\r\n })]}\r\n selectedValue={requestForm?.slug}\r\n onSelect={(value) => {\r\n\r\n console.log(\"onSelect:\", value);\r\n\r\n var car = (SupportedVehicles.filter(a => a.slug == value))[0];\r\n if (car) {\r\n setActiceCar(car);\r\n const val = { ...requestForm };\r\n val.slug = value;\r\n val.carGroupID = car?.carGroupID;\r\n val.year = null;\r\n val.modelTypeID = null;\r\n setFormGroup(val.carGroupID);\r\n setFormYear(null);\r\n setFormModelTypeID(null);\r\n setRequestForm(val);\r\n handleFilteredModels(val.carGroupID);\r\n }\r\n\r\n }}\r\n\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n {\r\n const val = { ...requestForm };\r\n val.year = value + \"\";\r\n setRequestForm(val);\r\n setFormYear(val.year);\r\n handleFilteredModels(requestForm?.carGroupID);\r\n }}\r\n\r\n />\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n\r\n {\r\n return { value: B.productTypeID, text: B.description };\r\n })]}\r\n selectedValue={formModelTypeID}\r\n onSelect={(value) => {\r\n const val = { ...requestForm };\r\n val.modelTypeID = value + \"\";\r\n setRequestForm(val);\r\n setFormModelTypeID(val.modelTypeID);\r\n }}\r\n\r\n />\r\n
    \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n {\r\n LodingEditCarType ?\r\n \r\n \r\n \r\n\r\n :\r\n <>\r\n {\r\n\r\n updateCarTypeService();\r\n\r\n\r\n }}\r\n />\r\n\r\n {\r\n\r\n setDefultDate();\r\n setEditCarType(false);\r\n setLodingEditCarType(false);\r\n\r\n\r\n }}\r\n />\r\n \r\n }\r\n
    \r\n\r\n\r\n\r\n
    \r\n\r\n :\r\n\r\n null\r\n\r\n\r\n }\r\n\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n );\r\n}\r\n","import { useRef, useState } from \"react\";\r\nimport { quantity } from 'cart-localstorage'\r\nimport { Price } from \"../../../components/__simple/_price\";\r\nimport axios from \"axios\";\r\nimport config from \"../../../configuration/config.json\";\r\nimport { LikeButton } from \"../../../components/__simple/_likeButton\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useUserCart } from '../../../User/hooks/useUserCart';\r\nimport { getData } from \"../../../utils/localStorageManager\";\r\nexport function ServiceBox(\r\n { Account, img, brand, name, price, count, id, onDelete, Categior, Discount, Tax, Pay, modelCode, modelTypes,Orderdate }\r\n) {\r\n const { t: trans, i18n } = useTranslation([\"cartFile\", \"new\"]);\r\n const [counter, setCounter] = useState(count);\r\n const specRef = useRef(null);\r\n const { removecartItems, changecartItem } = useUserCart();\r\n const [specHeight, setHeight] = useState(0);\r\n const [CartInfo, setCartInfo] = useState(null);\r\n let lang = i18n.language;\r\n const countF = async (num) => {\r\n if (num === -1 && counter > 1)\r\n setCounter(counter + num);\r\n else if (num === 1 && counter < 100)\r\n setCounter(counter + num);\r\n if (num === -1 && counter === 1) {\r\n // onDelete();\r\n\r\n return;\r\n }\r\n console.log(\"part id:\" + id);\r\n\r\n const isLogin = getData('isAuthenticated');\r\n if (isLogin) {\r\n const resultchangecartItem = await changecartItem(id, null, null, num, modelCode);\r\n Account()\r\n } else {\r\n quantity(id, num);\r\n Account()\r\n }\r\n }\r\n function GetCartInfo() {\r\n\r\n const Body = {\r\n \"name\": \"site_FetchInfoService\",\r\n \"values\": {\r\n \"ServiceID\": id\r\n }\r\n }\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n\r\n var CuurentValue = {};\r\n\r\n try {\r\n CuurentValue.Description = lang == \"ar\" ? response.data[0].ServiceNameAR : response.data[0].ServiceName;\r\n CuurentValue.DiscountRate = response.data[0].DiscountAmount;\r\n CuurentValue.name = name;\r\n CuurentValue.img = response.data[0].img ? \"data:image/png;base64,\" + response.data[0].img : \"/assets/images/toolMaintenance.gif\";\r\n CuurentValue.price = price;\r\n } catch (error) {\r\n \r\n }\r\n \r\n\r\n setCartInfo(CuurentValue);\r\n\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n }\r\n function showData() {\r\n\r\n setHeight(specHeight <= 0 ? specRef.current.scrollHeight : 0);\r\n }\r\n useState(() => {\r\n GetCartInfo();\r\n }, [])\r\n\r\n return (
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n modelTypes &&\r\n
    \r\n

    {trans(\"new:vehicle\")}:

    \r\n

    {modelTypes}

    \r\n
    \r\n\r\n }\r\n\r\n\r\n
    \r\n

    {trans(\"new:service\")}

    \r\n

    {CartInfo?.Description}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    {trans(\"new:service_price\")}
    \r\n
    \r\n
    \r\n {false &&
    \r\n
    {trans(\"cartFile:discount_rate\")}
    \r\n
    {CartInfo?.DiscountRate}%
    \r\n
    }\r\n
    \r\n
    \r\n
    \r\n

    {trans(\"cartFile:amount\")}

    \r\n
    \r\n \r\n
    {counter}
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n","import { useMemo } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport SectionHeading from \"../../../components/sectionHeading\";\r\n// to fetch all the branches info\r\nconst BranchesInfo = ({headingTitle = null , values = []})=>{\r\nconst { t: trans } = useTranslation(\"new\");\r\nreturn (\r\n \r\n {\r\n values?.length > 0 &&\r\n
    \r\n {\r\n values.map((item,index)=>{\r\n return(\r\n \r\n )\r\n })\r\n }\r\n
    \r\n } \r\n \r\n)\r\n};\r\n\r\nexport default BranchesInfo;\r\n// to fetch branch info card\r\nexport const BranchInfoCard = ({ title = '', details = '', lat = null, long = null}) => {\r\n const { t: trans } = useTranslation(\"new\");\r\n const googleMapPoints = useMemo(() => {\r\n let url = null;\r\n if (lat !== null && long !== null) {\r\n url = `https://www.google.com/maps/?q=${lat},${long}`;\r\n }\r\n return url;\r\n }, [lat, long]);\r\n return (\r\n
    \r\n
    \r\n

    {title}

    \r\n
    \r\n

    {details}

    \r\n { \r\n googleMapPoints &&
    \r\n \r\n {trans(\"new:show_location\")}
    \r\n }\r\n
    \r\n
    \r\n )\r\n};\r\n\r\n\r\n","import { useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { FormButton } from \"../../../components/_input/_button\";\r\nimport { InputField } from \"../../../components/_input/_input\";\r\nimport { Price } from \"../../../components/__simple/_price\";\r\nconst CouponControl = ({ couponCode = null, discountPrice = null, reset = false, onReset, onSubmit }) => {\r\n const { t: trans } = useTranslation(\"new\");\r\n const [codeValue, setCodeValue] = useState('');\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n if (onSubmit) {\r\n onSubmit(codeValue);\r\n }\r\n }} />\r\n
    \r\n\r\n
    \r\n {\r\n setCodeValue(e.target.value);\r\n }} />\r\n
    \r\n {reset &&\r\n {\r\n if (onReset) {\r\n onReset();\r\n setCodeValue('');\r\n }\r\n }}>\r\n ×\r\n
    \r\n }\r\n
    \r\n {reset &&
    \r\n
    \r\n \r\n {couponCode ?? ''}\r\n
    \r\n

    {trans(\"new:disscount_done\")}

    \r\n
    {trans(\"new:disccount_note\")}
    \r\n
    \r\n }\r\n
    \r\n
    \r\n \r\n )\r\n};\r\nexport default CouponControl;","import { Link } from \"react-router-dom\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useState } from \"react\";\r\nimport SimpleButton from \"../../../components/_input/SimpleButton\";\r\nimport { toast } from \"react-toastify\";\r\nconst PaymentPlatforms = ({ title, isFreeze = true, onPaytabsClick, onSadadClick, isToggle = false, onPaymentClick, isTamara = false }) => {\r\n\r\n const { t: trans, i18n } = useTranslation([\"new\"]);\r\n const [paymentType, setPaymentType] = useState(null);\r\n let lang = i18n.language;\r\n return (\r\n (isToggle &&
    \r\n

    {title}

    \r\n {/*
    \r\n {\r\n if (onPaymentClick) {\r\n !isFreeze && onPaymentClick(\"CashByBranch\");\r\n }\r\n }}\r\n >\r\n \r\n \r\n\r\n {\r\n\r\n\r\n isTamara == true &&\r\n {\r\n if (onPaymentClick) {\r\n !isFreeze && onPaymentClick(\"Tamara\");\r\n }\r\n }}\r\n >\r\n \r\n \r\n }\r\n\r\n\r\n {\r\n if (onPaymentClick) {\r\n !isFreeze && onPaymentClick(\"Online\");\r\n }\r\n }}\r\n >\r\n \r\n \r\n
    */}\r\n\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n\r\n {\r\n\r\n
    \r\n \r\n
    \r\n {\"master\"}\r\n {\"visa\"}\r\n {\"mada\"}\r\n\r\n {\r\n !isTamara ?\r\n {\"SADAD\"}\r\n : null\r\n }\r\n\r\n\r\n\r\n
    \r\n\r\n
    \r\n\r\n\r\n }\r\n\r\n\r\n\r\n {\r\n\r\n\r\n isTamara ?\r\n\r\n
    \r\n \r\n \r\n \r\n
    \r\n\r\n : null\r\n }\r\n\r\n {/*
    \r\n \r\n
    */}\r\n\r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n {\r\n if (paymentType) {\r\n if (onPaymentClick) {\r\n onPaymentClick(paymentType);\r\n }\r\n } else {\r\n\r\n toast.warning(trans(\"new:please_define_pay_method\"));\r\n }\r\n\r\n }}\r\n\r\n />\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n )\r\n )\r\n};\r\n\r\nexport default PaymentPlatforms;","import { useTranslation } from \"react-i18next\";\r\nimport { numberFormat } from \"../../../utils/currencyFormatter\";\r\nconst CartDetails = ({ fullTotal, shippingTime, shippingUnitTime, subTotal, shippingCost, totalTax, totalDiscount, sumItemTotal, miniDownPayment }) => {\r\n const { t: trans, i18n } = useTranslation([\"cartFile\", \"new\"]);\r\n\r\n const lang = i18n.language;\r\n return (\r\n <>\r\n
    \r\n {\r\n shippingTime ?\r\n
    \r\n
    {trans(\"cartFile:receive_peroid\")}
    \r\n
    {shippingTime} {shippingUnitTime}
    \r\n
    \r\n : null\r\n }\r\n {\r\n shippingCost ?\r\n
    \r\n
    {trans(\"cartFile:shipping_costs\")}
    \r\n
    {numberFormat(shippingCost, lang)}
    \r\n
    \r\n : null\r\n\r\n }\r\n {\r\n totalDiscount ?\r\n
    \r\n
    {trans(\"cartFile:discount_total\")}
    \r\n
    {numberFormat(totalDiscount, lang)}
    \r\n
    : null\r\n }\r\n\r\n\r\n {\r\n
    \r\n
    {trans(\"new:total\")} {trans(\"new:total_include_tax\")}
    \r\n
    {numberFormat((fullTotal + shippingCost) - totalDiscount, lang)}
    \r\n
    \r\n \r\n\r\n }\r\n\r\n\r\n\r\n {\r\n subTotal &&\r\n
    \r\n
    {trans(\"cartFile:Downpayment\")}
    \r\n
    {numberFormat(subTotal, lang)}
    \r\n
    \r\n }\r\n\r\n\r\n\r\n\r\n {/*
    \r\n
    {trans(\"cartFile:tax_amount\")}
    \r\n
    {numberFormat(totalTax)}
    \r\n
    */}\r\n\r\n\r\n
    \r\n
    {trans(\"new:min_down_payment\")}
    \r\n
    {numberFormat(miniDownPayment, lang)}
    \r\n
    \r\n \r\n )\r\n};\r\nexport default CartDetails;","import { Fragment, useContext, useEffect, useState, useCallback } from \"react\";\r\nimport { list, total, update } from 'cart-localstorage'\r\nimport Banner from \"../../components/banner\";\r\nimport PageHeading from \"../../components/__simple/_pageheading\";\r\nimport { Cart } from \"./component/cart\";\r\nimport Breadcrumb from \"../../components/__simple/breadcrumb\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport axios from \"axios\";\r\nimport { toast } from \"react-toastify\";\r\nimport { CartItems } from \"./component/CartEpart\";\r\nimport SectionHeading from \"../../components/sectionHeading\";\r\nimport { DropDownInput } from \"../../components/_input/_dropdown\";\r\nimport config from \"../../configuration/config.json\";\r\nimport { getData, User_Data_Key, saveData } from \"../../utils/localStorageManager\";\r\nimport { CampaignCart } from \"./component/campaignCart\";\r\nimport _, { concat, sum } from \"lodash\";\r\nimport { BouquetCart } from \"./component/BouquetCart\";\r\nimport { RadioInput } from \"../../components/_input/_radioInput\";\r\nimport { ServiceBox } from \"./component/ServiceBox\";\r\nimport BranchesInfo from \"./component/BranchInfo\";\r\nimport CouponControl from \"./component/CouponControl\";\r\nimport SimpleButton from \"../../components/_input/SimpleButton\";\r\nimport PaymentPlatforms from \"./component/PaymentsPlatforms\";\r\nimport CartDetails from \"./component/CartDetails\";\r\nimport { useUserCart } from \"../../User/hooks/useUserCart\";\r\nimport ConfirmContext from \"../../utils/confirmContext\";\r\nexport function CartPage() {\r\n\r\n const { initCartItems, removecartItems, removeAllcartItems } = useUserCart();\r\n const { t: trans, i18n } = useTranslation([\"messages\", \"cart\", \"cartFile\", \"model\", \"new\", \"info\", \"extra\"]);\r\n const [banner, setBanner] = useState({});\r\n const [currentDeliveryMethod, setcurrentDeliveryMethod] = useState({\r\n branchMethod: false,\r\n locationMethod: false\r\n });\r\n const thisConfirmContext = useContext(ConfirmContext);\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [carErrors, setCarErrors] = useState([]);\r\n const [develviryType, setDeleviryType] = useState(null);\r\n const [Shipp, setShipp] = useState(false);\r\n const GetUrl = config.baseURL + 'details';\r\n const [Code, setCode] = useState(\"0000-0000-0000-0000\");\r\n const [UsedCode, setUsedCode] = useState(\"\");\r\n let lang = i18n.language;\r\n const languageDir = 'language-' + lang;\r\n const [CodeInfo, setCodeInfo] = useState([]);\r\n const [isGetCartData, setIsGetCartData] = useState(false);\r\n async function DiscountPayment(CodeDisc) {\r\n\r\n const _userCodeDiscount = JSON.parse(window.localStorage.getItem(\"UsedCodeDiscountID\"));\r\n\r\n\r\n\r\n\r\n const Body = {\r\n \"name\": \"site_FetchInfoCodeDisount\",\r\n \"Values\": {\r\n \"Code\": CodeDisc\r\n }\r\n\r\n };\r\n\r\n axios.request({\r\n url: GetUrlfunc,\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n setCodeInfo(response.data);\r\n window.localStorage.setItem('UsedCodeDiscountID', response.data[0].DiscountCartID);\r\n // console.log(\"CodeInfo\", response.data);\r\n // console.log(\"UsedCodeDiscountID\", localStorage['UsedCodeDiscountID']);\r\n })\r\n .catch(function (error) {\r\n setCodeInfo([]);\r\n console.log(error);\r\n toast.error(\" خطأ:قد يكون الكود غير صحيح او تم استخدامه مسبقا\");\r\n });\r\n\r\n\r\n };\r\n const [Branches, setBranches] = useState([]);\r\n const [branchesDetails, setBranchesDetails] = useState([]);\r\n const GetUrlfunc = config.baseURL + 'func';\r\n async function GetBranch() {\r\n const Body = {\r\n \"name\": \"site_FetchBranches\"\r\n };\r\n axios.request({\r\n url: GetUrlfunc,\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n const result = response.data;\r\n setBranches(result);\r\n const formatResult = result.map(item => {\r\n return {\r\n title: concat(item[`${trans(\"model:description\")}`], item.Address ? concat('-', item.Address) : ''),\r\n details: item.WorkingHoursFormat,\r\n lat: item.Latitude,\r\n long: item.Longitude\r\n }\r\n });\r\n setBranchesDetails(formatResult);\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n };\r\n async function Discount_change(UsedCount, DiscountCartID, DiscountCartTypeID, ProductModelTypeID, BrandID) {\r\n\r\n const Body = {\r\n \"Object\": \"Site_CodeDiscontTrans\",\r\n \"Values\": {\r\n \"UsedCount\": UsedCount\r\n },\r\n \"filters\": `where DiscountCartID = ${DiscountCartID} and DiscountCartTypeID = ${DiscountCartTypeID} and ProductModelTypeID= '${ProductModelTypeID}' and BrandID= ${BrandID}`\r\n };\r\n axios.request({\r\n url: config.baseURL + \"update\",\r\n data: Body, method: \"PUT\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n\r\n // toast.success(\"success\");\r\n\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n // toast.error(\"خطأ:100024\");\r\n });\r\n\r\n\r\n };\r\n async function appLy_discount() {\r\n\r\n CodeInfo.map(a => {\r\n\r\n if (a.CartItemsTypeID === 1)//خصم المركبات\r\n {\r\n\r\n list().filter(a => a.Type === \"car\").forEach(function (part, index, list) {\r\n if ((list[index].BrandID === list[index].BrandID && list[index].modelTypes === a.ProductModelTypeID) && a.DiscountCartTypeID === 1) {\r\n update(list[index].id, \"price\", list[index].price - (list[index].price * (a.DiscountCartRate / 100)))\r\n update(list[index].id, \"Discount\", list[index].Discount + (list[index].price * (a.DiscountCartRate / 100)))\r\n\r\n\r\n }\r\n else if ((list[index].BrandID === list[index].BrandID && list[index].modelTypes === a.ProductModelTypeID) && a.DiscountCartTypeID === 2) {\r\n update(list[index].id, \"price\", list[index].price - (list[index].price * (a.DiscountCartRate / 100)))\r\n update(list[index].id, \"Discount\", list[index].Discount + a.DiscountCartAmount)\r\n }\r\n });\r\n\r\n toast.success(\"تمة عملية الخصم للمركبات بنجاح\", {\r\n position: \"bottom-left\",\r\n autoClose: 5000,\r\n hideProgressBar: false,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n });\r\n }\r\n\r\n\r\n\r\n });\r\n\r\n };\r\n const [TotalTax, SetTotalTax] = useState(0)\r\n const [TotalDiscount, SetTotalDiscount] = useState(0);\r\n const [SumItemTotal, setSumItemTotal] = useState(0);\r\n const [SubTotal, setSubTotal] = useState(0);\r\n const [fullTotal, setfullTotal] = useState(0);\r\n const [MiniDownPayment, setMiniDownPayment] = useState(0);\r\n //Accounting for all items \r\n function Account() {\r\n\r\n\r\n console.log(\"Account\")\r\n\r\n let currentTotalTax = _.sum(list().map((p) => {\r\n return ((100 / 115) * ((p?.Type?.toLowerCase() == 'car' ? (p.price) : p.price) * p.quantity)) * 0.15;\r\n }));\r\n SetTotalTax(currentTotalTax);\r\n\r\n let currentTotalDiscount = _.sum(list().map((p) => {\r\n return calculateDiscount(p);\r\n }));\r\n SetTotalDiscount(currentTotalDiscount);\r\n\r\n let currentSumItemTotal = _.sum(list().map((p) => {\r\n return (p?.Type?.toLowerCase() == 'car' ? (p.MiniDownPayment ? p.MiniDownPayment : p.price) : p.price) * p.quantity;\r\n }));\r\n setSumItemTotal(currentSumItemTotal);\r\n let currentSumfullTotal = _.sum(list().map((p) => {\r\n return (p.price) * p.quantity;\r\n }));\r\n\r\n setfullTotal(currentSumfullTotal);\r\n let currentSubTotal = _.sum(list().map((p) => {\r\n return (p?.Type?.toLowerCase() == 'car' ? (p.MiniDownPayment ? p.MiniDownPayment : p.price) : p.price) * p.quantity;\r\n }));\r\n setSubTotal(currentSubTotal);\r\n\r\n\r\n let currentMiniDownPayment = _.sum(list().map((p) => {\r\n return (p.MiniDownPayment && p.MiniDownPayment != 0) ? p.MiniDownPayment * p.quantity : (p?.Type?.toLowerCase() == 'car' ? (p.MiniDownPayment ? p.MiniDownPayment : p.price) : p.price) * p.quantity;\r\n }));\r\n setMiniDownPayment(currentMiniDownPayment);\r\n\r\n };\r\n\r\n //RequsetBanner\r\n async function RequsetBanner() {\r\n\r\n try {\r\n\r\n axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/Cart/Cart\",\r\n method: \"get\",\r\n }).then(function (response) {\r\n\r\n\r\n console.log('response.data.banner:', response.data.banner);\r\n setBanner(response.data.banner)\r\n\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n\r\n\r\n } catch (error) {\r\n\r\n }\r\n }\r\n //PaymentMAin\r\n async function PaymentMAin(status, RefrancePayment, CAmount, CID,\r\n CCode, InfoLocation, InfoBranch, ByLocation, ByBranch,\r\n IsReservation, IsPayment, PaymentAmount, FinalTotal, AmountShipping,\r\n SubAmountTotal, TotalTaxAmount, TotalDiscount, Product, UserID, MiniDownPayment, MethodPayment) {\r\n var myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n const { ipv4 } = await getUserIpAddress();\r\n var raw = {\r\n \"URL\": \"https://hassanjameel.com.sa/purchaseMsg/\",\r\n \"Lang\": lang,\r\n \"Product\": Product,\r\n \"UserID\": UserID,\r\n \"customerDetails\": {\r\n \"IP\": ipv4\r\n },\r\n \"DataAmount\": {\r\n \"FinalTotal\": FinalTotal,\r\n \"AmountShipping\": AmountShipping,\r\n \"SubAmountTotal\": SubAmountTotal,\r\n \"TotalTaxAmount\": TotalTaxAmount,\r\n \"TotalDiscount\": TotalDiscount,\r\n \"MiniDownPayment\": MiniDownPayment\r\n },\r\n \"PaymentAmount\": PaymentAmount,\r\n \"TypePaymnet\": {\r\n \"IsReservation\": IsReservation,\r\n \"IsPayment\": IsPayment,\r\n \"PaymnetTypeID\": MethodPayment == \"Financing\" ? \"Credit\" : \"Cash\",//Credit - Cash\r\n \"MethodPayment\": MethodPayment\r\n },\r\n \"DeliveryType\": {\r\n \"ByBranch\": ByBranch,\r\n \"ByLocation\": ByLocation\r\n },\r\n \"DeliveryData\": {\r\n \"InfoBranch\": InfoBranch,\r\n \"InfoLocation\": InfoLocation\r\n },\r\n \"CobonData\": {\r\n \"Code\": couponDetail?.coupon?.code ?? null,\r\n \"ID\": couponDetail?.coupon?.id ?? null,\r\n \"Amount\": CAmount\r\n },\r\n \"RefrancePayment\": RefrancePayment,\r\n \"status\": status\r\n };\r\n\r\n var requestOptions = {\r\n method: 'POST',\r\n headers: myHeaders,\r\n body: raw,\r\n redirect: 'follow'\r\n };\r\n\r\n console.log(\"Payment\", raw);\r\n axios.request({\r\n url: config.paymentURL + \"/api/Payment/Payment\", headers: myHeaders,\r\n data: raw, method: \"POST\", responseType: \"json\"\r\n }).then(function (response) {\r\n console.log('response1', response);\r\n // console.log(response.data.URL_Paytabs);\r\n console.log('MethodPayment', MethodPayment);\r\n if (MethodPayment == \"Online\" || MethodPayment == \"Tamara\") {\r\n\r\n if (response?.data?.CartID) {\r\n\r\n saveData('currentCartID', response?.data?.CartID, false);\r\n }\r\n\r\n\r\n if (response?.data?.URL_Paytabs) {\r\n\r\n\r\n try {\r\n localStorage.removeItem(\"__cart\");\r\n removeAllcartItems();\r\n } catch (error) {\r\n\r\n }\r\n\r\n\r\n\r\n window.location.href = response.data.URL_Paytabs;\r\n\r\n\r\n } else {\r\n\r\n // try {\r\n // localStorage.removeItem(\"__cart\");\r\n // removeAllcartItems();\r\n // } catch (error) {\r\n\r\n // }\r\n\r\n // setShowFinalPopup(true);\r\n toast.error(trans(\"error:unknown_failure\"));\r\n }\r\n\r\n } else {\r\n\r\n\r\n try {\r\n localStorage.removeItem(\"__cart\");\r\n removeAllcartItems();\r\n } catch (error) {\r\n\r\n }\r\n\r\n window.location.href = \"https://hassanjameel.com.sa/purchaseMsg/\" + response?.data?.GUID;\r\n // setShowFinalPopup(true);\r\n\r\n }\r\n\r\n\r\n // window.open(response.data.callback);\r\n // window.location.href = response.data.callback;\r\n // window.location.href = (`/${lang}/purchaseMsg?q=${response.data.URL_Paytabs}`)\r\n //clear();\r\n //console.log('response1',response);\r\n }\r\n ).then((response2) => {\r\n console.log('response2', response2);\r\n })\r\n .catch(error => console.log('error', error));\r\n }\r\n\r\n useEffect(async () => {\r\n try {\r\n await RequsetBanner();\r\n await GetBranch();\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n\r\n\r\n }, []);\r\n\r\n const handlePayment = async (MethodPayment) => {\r\n\r\n const isLogin = getData('isAuthenticated');\r\n if (isLogin) {\r\n\r\n if (list()?.filter(a => a.Type == \"car\") > 0 && MethodPayment == 'Tamara') {\r\n toast.warn(trans(\"new:cant_use_tamata\"));\r\n return;\r\n }\r\n\r\n\r\n console.log(\"handlePayment:\");\r\n const cleanData = JSON.parse(getData(User_Data_Key, true));\r\n console.log(\"handlePayment:\", cleanData);\r\n const user_id = cleanData.id.toString().split('_')[1];\r\n if (user_id) {\r\n if ((!currentDeliveryMethod?.locationMethod) && (!currentDeliveryMethod?.branchMethod)) {\r\n toast.warn(trans(\"new:not_delivery_selected\"));\r\n } else if (currentDeliveryMethod?.locationMethod && (ValueCitie == '' || ValueCitie == null)) {\r\n toast.warn(trans(\"new:not_delivery_selected_loc\"));\r\n } else if (currentDeliveryMethod?.branchMethod && (ValueBranch == '' || ValueBranch == null)) {\r\n toast.warn(trans(\"new:not_delivery_selected_branch\"));\r\n } else {\r\n await PaymentMAin(\r\n 1,\r\n null,\r\n null,\r\n null,\r\n null,\r\n (currentDeliveryMethod?.locationMethod ?? false) ? ValueCitie : null,\r\n (currentDeliveryMethod?.branchMethod) ?? false ? ValueBranch : null,\r\n currentDeliveryMethod?.locationMethod ?? false,\r\n currentDeliveryMethod?.branchMethod ?? false,\r\n false,\r\n true,\r\n PaymentAmount, SumItemTotal, Shipping.Cost, SubTotal, TotalTax, TotalDiscount,\r\n list().map(a => {\r\n if (a.Type === \"Bouquet\")\r\n return {\r\n id: a.id,\r\n quantity: a.quantity,\r\n colorID: a.colorID ? a.colorID : null,\r\n Type: 7,\r\n price: a.price,\r\n CartID: null,\r\n VIN: null,\r\n MiniDownPayment: null,\r\n packageId:a.packageId\r\n };\r\n if (a.Type === \"car\")\r\n return {\r\n id: a.ProductID,\r\n quantity: a.quantity,\r\n colorID: a.colorID ? a.colorID : null,\r\n Type: 1,\r\n price: (a.MiniDownPayment ? a.MiniDownPayment : (a.price > 5000 ? 5000 : a.price)),\r\n CartID: null,\r\n VIN: null,\r\n MiniDownPayment: a.MiniDownPayment ? a.MiniDownPayment : 5000\r\n };\r\n if (a.Type === \"Campaign\")\r\n return {\r\n id: a.id,\r\n quantity: a.quantity,\r\n colorID: a.colorID ? a.colorID : null,\r\n Type: 4,\r\n price: a.price,\r\n CartID: null,\r\n VIN: null,\r\n MiniDownPayment: a.MiniDownPayment\r\n\r\n\r\n };\r\n if (a.Type === \"part\")\r\n return {\r\n id: a.id,\r\n quantity: a.quantity,\r\n colorID: a.colorID ? a.colorID : null,\r\n Type: 2,\r\n price: a.price,\r\n CartID: null,\r\n VIN: null,\r\n MiniDownPayment: a.MiniDownPayment\r\n\r\n };\r\n if (a.Type === \"service\")\r\n return {\r\n id: a.ProductID,\r\n quantity: a.quantity,\r\n colorID: a.colorID ? a.colorID : null,\r\n Type: 3,\r\n price: a.price,\r\n CartID: null,\r\n VIN: a.name,\r\n MiniDownPayment: a.MiniDownPayment\r\n };\r\n })\r\n , parseInt(user_id), MiniDownPayment, MethodPayment);\r\n }\r\n } else {\r\n toast.error(trans(\"new:login_first\"), {\r\n position: \"bottom-left\",\r\n autoClose: 5000,\r\n hideProgressBar: false,\r\n closeOnClick: true,\r\n pauseOnHover: true,\r\n draggable: true,\r\n progress: undefined,\r\n });\r\n }\r\n } else {\r\n thisConfirmContext.onShowRegistrationPup(true);\r\n\r\n }\r\n };\r\n\r\n const [Shipping, setShipping] = useState({ UnitTime: trans(\"new:day\"), CountTime: 0, Cost: 0 });\r\n\r\n const [ValueCitie, setValueCitie] = useState(\"\");\r\n const [ValueBranch, setValueBranch] = useState(\"\");\r\n\r\n function getValueBranch(option) {\r\n setValueBranch(option.value);\r\n }\r\n const [Size, SetSize] = useState(0);\r\n var currentSize = 0;\r\n const CategoryCar = (Category) => {\r\n\r\n if (Size != currentSize) {\r\n currentSize = Category;\r\n SetSize(Category);\r\n }\r\n }\r\n async function CarShippingInfo(Citey, mSize) {\r\n setValueCitie(Citey.value)\r\n const Body = {\r\n \"name\": \"Site_CarShippingInfo\",\r\n \"values\": {\r\n \"City\": `${Citey.value}`,\r\n \"categore\": `${mSize}`\r\n }\r\n }\r\n await axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n // console.log(response.data.ApiObjectData);\r\n var currentvalue = { ...Shipping };\r\n currentvalue.Cost = response.data[0].CostShipping\r\n currentvalue.UnitTime = response.data[0].Type\r\n currentvalue.CountTime = response.data[0].TimeDelivary\r\n setShipping(currentvalue);\r\n console.log(currentvalue);\r\n setShipp(true);\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n var currentvalue = { ...Shipping };\r\n currentvalue.Cost = 0\r\n currentvalue.UnitTime = trans(\"new:not_avilable\");\r\n currentvalue.CountTime = null\r\n setShipping(currentvalue);\r\n console.log(currentvalue);\r\n });\r\n\r\n }\r\n\r\n const [PaymentAmount, setPaymentAmount] = useState(0.0);\r\n const refrechDateCartItems = async () => {\r\n const data = await initCartItems();\r\n\r\n console.log(\">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\", data);\r\n\r\n setIsGetCartData(true);\r\n\r\n Account();\r\n\r\n\r\n }\r\n\r\n useEffect(async () => {\r\n\r\n await refrechDateCartItems();\r\n\r\n await handleFetchCountries();\r\n }, []);\r\n\r\n // useEffect(async () => {\r\n\r\n // await refrechDateCartItems();\r\n\r\n // }, [list().length]);\r\n //-----------------------------------------------\r\n const [couponDetail, setCouponDetail] = useState(null);\r\n const [clearCoupon, setClearCoupont] = useState(false);\r\n const [test, setTest] = useState(list());\r\n\r\n //to apply the coupon discount on the cart\r\n const applyCoupon = (code) => {\r\n const _id = getData(\"secretKey\");\r\n if (code) {\r\n if (_id) {\r\n axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/cart/CouponDetails\",\r\n method: \"post\",\r\n data: {\r\n \"couponCode\": code,\r\n \"id\": _id\r\n }\r\n }).then(response => {\r\n const responseData = response.data;\r\n if (responseData?.items?.length > 0) {\r\n setCouponDetail(responseData);\r\n setClearCoupont(true);\r\n } else {\r\n setCouponDetail(null);\r\n setClearCoupont(false);\r\n }\r\n }).catch(error => {\r\n console.log(error);\r\n })\r\n } else {\r\n toast.error(trans(\"new:login_first\"));\r\n thisConfirmContext.onShowRegistrationPup(true);\r\n }\r\n } else {\r\n SetTotalDiscount(0);\r\n }\r\n };\r\n\r\n // calculate discount\r\n const calculateDiscount = (itemInfo) => {\r\n let discountResult = [];\r\n try {\r\n if (couponDetail?.items) {\r\n console.log(itemInfo);\r\n discountResult = couponDetail?.items.map((item) => {\r\n let result = 0;\r\n switch (item?.itemType?.toLowerCase()) {\r\n case 'car':\r\n const { BrandID: brand, groupID, modelTypes, MiniDownPayment, price, quantity } = itemInfo;\r\n if (brand == item?.brandID && groupID === item?.productGroupID && modelTypes === item?.productModelTypeID) {\r\n result = getDiscountValueByType(item, price, quantity);\r\n }\r\n break;\r\n case 'part': case 'service': case 'bouquet': case 'gift': case 'campaign':\r\n result = getDiscountValueByType(item, price, quantity);\r\n break;\r\n }\r\n return result;\r\n });\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n return sum(discountResult) ?? 0;\r\n };\r\n\r\n // apply discount by type\r\n const getDiscountValueByType = (item, price, quantity) => {\r\n let result = 0;\r\n const { discountType, discountAmount, discountRate } = item;\r\n if (discountType?.toLowerCase() === 'amount') {\r\n const discountValue = discountAmount * quantity;\r\n result = discountValue;\r\n } else if (discountType?.toLowerCase() === 'rate') {\r\n const priceRateValue = ((price * quantity) * (discountRate / 100));\r\n result = priceRateValue;\r\n }\r\n return result;\r\n };\r\n\r\n // to get info of current ipv4\r\n const getUserIpAddress = async () => {\r\n let currentIpv4Info = {};\r\n try {\r\n const response = await axios.get('https://geolocation-db.com/json/');\r\n if (response.status === 200) {\r\n const { IPv4, country_code, country_name } = response.data;\r\n currentIpv4Info.ipv4 = IPv4;\r\n currentIpv4Info.countryCode = country_code;\r\n currentIpv4Info.countryName = country_name;\r\n }\r\n } catch (error) {\r\n toast.error(trans(\"extra:not_connection\"))\r\n console.log(error);\r\n }\r\n return currentIpv4Info;\r\n };\r\n\r\n\r\n // to apply discount based on the btn clicked\r\n useEffect(() => {\r\n Account();\r\n }, [clearCoupon]);\r\n\r\n\r\n\r\n //-------------------------------------------\r\n const [cities, setCities] = useState([]);\r\n // to fetch all SAU countries\r\n const handleFetchCountries = async () => {\r\n let countries = [];\r\n try {\r\n const response = await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"site_ShippingCities\"\r\n }\r\n );\r\n if (response.status == 200) {\r\n countries = response.data.map(item => {\r\n return { value: item.ID, text: item[`${trans(\"model:description\")}`] }\r\n });\r\n }\r\n } catch (error) {\r\n console.log('error in fetching the countries of SAU', error);\r\n }\r\n setCities(countries);\r\n };\r\n\r\n const handleCheckCarsCount = async () => {\r\n\r\n const listError = [];\r\n\r\n const isLogin = getData('isAuthenticated');\r\n if (isLogin) {\r\n\r\n await list().forEach(async (a, index) => {\r\n if (a.Type == \"car\") {\r\n\r\n // console.log(\"MMMMMMMMMMMM\");\r\n const cSN = await getSerialsBuyOnlineCount(a.modelTypeID, a.year, a.colorID);\r\n // console.log(\"MMMMMMMMMMMM\", cSN);\r\n if (cSN < a.quantity) {\r\n listError.push(a.id);\r\n // console.log(\"MMMMMlistErrorMMMMMMM\", listError);\r\n }\r\n\r\n\r\n\r\n\r\n } else if (a.Type == \"service\" || a.Type == \"Bouquet\") {\r\n\r\n if (!a.Orderdate)\r\n listError.push(a.id);\r\n\r\n }\r\n if ((index + 1) == list().length) {\r\n setCarErrors(listError);\r\n\r\n if (listError.length <= 0) {\r\n\r\n const isLogin = getData('isAuthenticated');\r\n if (isLogin) {\r\n setIsOpen(!isOpen);\r\n } else {\r\n thisConfirmContext.onShowRegistrationPup(true);\r\n\r\n }\r\n } else {\r\n setIsGetCartData(false);\r\n setTimeout(() => {\r\n setIsGetCartData(true);\r\n }, 100);\r\n\r\n }\r\n\r\n }\r\n\r\n\r\n });\r\n\r\n\r\n } else {\r\n thisConfirmContext.onShowRegistrationPup(true);\r\n\r\n }\r\n\r\n\r\n\r\n return listError;\r\n\r\n };\r\n const getSerialsBuyOnlineCount = async (Type, Model, ColorID) => {\r\n var count = 0;\r\n\r\n\r\n const response = await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"siteInvProductSerialsBuyOnlineCount\",\r\n \"Values\": {\r\n \"Type\": `${Type}`,\r\n \"Model\": `${Model}`,\r\n \"ColorID\": `${ColorID}`\r\n }\r\n }\r\n );\r\n\r\n\r\n count = response.data[0].countSN;\r\n console.log(\"getSerialsBuyOnlineCount>>>>return>>>>>\", count);\r\n return count;\r\n };\r\n return (\r\n \r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n {\r\n // isGetCartData &&\r\n // getCartList()\r\n\r\n (list() != null && list().length > 0) ?\r\n\r\n \r\n
    \r\n
    \r\n {list().filter(a => a.Type === \"car\").length > 0 && }\r\n\r\n {\r\n list().filter(a => a.Type === \"car\").map((data, index) => {\r\n return (\r\n {\r\n // remove(data.id);\r\n await removecartItems(data.ProductID, data.colorID, data.modelTypeID, null, data?.id)\r\n refrechDateCartItems();\r\n\r\n }\r\n }\r\n Account={Account}\r\n CategoryCar={CategoryCar(data?.groupID)}\r\n\r\n carErrorCount={carErrors.includes(data.id)}\r\n\r\n />\r\n\r\n );\r\n })\r\n }\r\n {/* {list().filter(a => a.Type === \"accessories\").length > 0 && }\r\n {\r\n list().filter(a => a.Type === \"accessories\").map((part, index) => {\r\n return (\r\n \r\n {\r\n // remove(part.id);\r\n await removecartItems(part.id, null, null)\r\n window.location.reload();\r\n \r\n }\r\n }\r\n Account={Account}\r\n />\r\n \r\n );\r\n })\r\n } */}\r\n { \r\n list().filter(a => a.Type === \"part\").length > 0 && \r\n \r\n }\r\n \r\n {\r\n list().filter(a => a.Type === \"part\").map((part, index) => {\r\n return (\r\n \r\n {\r\n // remove(part.id);\r\n await removecartItems(part?.ProductID, null, null)\r\n window.location.reload();\r\n \r\n }\r\n }\r\n Account={Account}\r\n />\r\n \r\n );\r\n })\r\n }\r\n {/* {list().filter(a => a.Type === \"Campaign\").length > 0 && }\r\n {\r\n list().filter(a => a.Type === \"Campaign\").map((c, index) => {\r\n return (\r\n \r\n {\r\n // remove(c.id);\r\n await removecartItems(c?.id, null, null)\r\n window.location.reload();\r\n \r\n }\r\n }\r\n Account={Account}\r\n \r\n \r\n />\r\n \r\n );\r\n })\r\n } */}\r\n {list().filter(a => a.Type === \"Bouquet\").length > 0 && }\r\n {\r\n list().filter(a => a.Type === \"Bouquet\").map((c, index) => {\r\n return (\r\n\r\n {\r\n // remove(c.id);\r\n await removecartItems(c.ProductID, null, c.modelTypeID, null, c.id, c.packageId)\r\n refrechDateCartItems();\r\n\r\n }\r\n }\r\n Account={Account}\r\n\r\n ErrorDate={carErrors.includes(c.id)}\r\n\r\n refrechDate={() => refrechDateCartItems()}\r\n />\r\n\r\n );\r\n })\r\n }\r\n {list().filter(a => a.Type === \"service\").length > 0 && }\r\n {\r\n list().filter(a => a.Type === \"service\").map((c, index) => {\r\n return (\r\n\r\n {\r\n // remove(c.id);\r\n await removecartItems(c?.ProductID, null, null, c?.modelCode, c.id)\r\n refrechDateCartItems();\r\n\r\n }\r\n }\r\n Account={Account}\r\n ErrorDate={carErrors.includes(c.id)}\r\n\r\n />\r\n\r\n );\r\n })\r\n }\r\n
    \r\n
    \r\n
    \r\n \r\n a.Type === \"car\").length > 0 ? 1 : null}\r\n value2={2}\r\n name='recieveMethod'\r\n text1={list().filter(a => a.Type === \"car\").length > 0 ? trans(\"new:delivery\") : null}\r\n text2={trans(\"new:branch\")}\r\n onChangeValue={(value) => {\r\n const cunrrentvalue = currentDeliveryMethod;\r\n setDeleviryType(value);\r\n cunrrentvalue.branchMethod = value === 2 ? true : false;\r\n cunrrentvalue.locationMethod = value === 1 ? true : false;\r\n setcurrentDeliveryMethod(cunrrentvalue);\r\n }}\r\n />\r\n {\r\n <>\r\n {develviryType == 2 && <> {\r\n }}\r\n options={[\r\n ...Branches.map(A => {\r\n if (lang === \"ar\") {\r\n return { value: A.SiteID, text: A.DescriptionAr };\r\n }\r\n else {\r\n return { value: A.SiteID, text: A.DescriptionEn };\r\n }\r\n\r\n })]}\r\n onfilter={getValueBranch}\r\n />\r\n\r\n \r\n\r\n \r\n\r\n }\r\n {develviryType == 1 && <>\r\n CarShippingInfo(Citey, Size)}\r\n />\r\n \r\n }\r\n \r\n }\r\n
    \r\n {\r\n setClearCoupont(false);\r\n SetTotalDiscount(0);\r\n setCouponDetail(null);\r\n }}\r\n onSubmit={(codeValue) => {\r\n applyCoupon(codeValue);\r\n }}\r\n reset={clearCoupon}\r\n discountPrice={TotalDiscount}\r\n couponCode={couponDetail?.coupon?.description}\r\n />\r\n\r\n\r\n\r\n\r\n
    \r\n a.Type == \"car\").length > 0 ? SubTotal : null}\r\n shippingCost={Shipping.Cost}\r\n totalTax={TotalTax}\r\n totalDiscount={TotalDiscount}\r\n sumItemTotal={SumItemTotal - TotalDiscount}\r\n miniDownPayment={MiniDownPayment}\r\n fullTotal={fullTotal}\r\n />\r\n\r\n \r\n\r\n\r\n
    \r\n
    \r\n\r\n {/* \r\n {\r\n\r\n }}\r\n iconPath='/assets/icons/apple-pay.png'\r\n /> */}\r\n\r\n\r\n\r\n {\r\n\r\n const mm = await handleCheckCarsCount();\r\n console.log(\"handleCheckCarsCount>>>>>:\", mm);\r\n // paymentTest();\r\n // Payment(SubTotal.toString());\r\n }}\r\n />\r\n\r\n\r\n
    \r\n a.Type == \"car\")?.length <= 0) ? true : false}\r\n onPaytabsClick={async () => {\r\n // await handlePayment();\r\n }}\r\n onSadadClick={async () => {\r\n // await handlePayment();\r\n }}\r\n\r\n onPaymentClick={async (type) => {\r\n await handlePayment(type);\r\n }}\r\n />\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n\r\n :\r\n\r\n
    \r\n \"empty\r\n

    {trans(\"messages:empty_cart\")}

    \r\n
    \r\n\r\n\r\n }\r\n\r\n
    \r\n\r\n
    \r\n );\r\n}\r\n\r\n","import { useState, useEffect, useCallback } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { getTrackBackground, Range } from \"react-range\";\r\nimport _ from 'lodash'; // Only if using lodash for debounce\r\nexport function FinanceRange({ placeHolder, min, max, step, suffix, firstValue, onChangeValue }) {\r\n const { i18n } = useTranslation();\r\n let lang = i18n.language;\r\n const [values, setValues] = useState([firstValue]);\r\n const [valueInput, setValueInput] = useState(firstValue);\r\n const [Lastvalues, setLastValues] = useState([firstValue]);\r\n\r\n useEffect(() => {\r\n setValues([firstValue]);\r\n setLastValues([firstValue]);\r\n setValueInput(firstValue);\r\n }, [firstValue]);\r\n const RTL = lang == \"ar\" ? true : false;\r\n\r\n // Debounce the function to set the value\r\n const debouncedSave = useCallback(\r\n _.debounce((value) => {\r\n \r\n setFinalChangeValue(value);\r\n \r\n // Here you would normally save the value to a server or similar\r\n }, 500), // 1000 ms debounce time\r\n []\r\n );\r\n\r\n const setFinalChangeValue = (value) => {\r\n if (value <= max && value >= min) {\r\n\r\n setLastValues([value]);\r\n setValues([value]);\r\n if (onChangeValue) {\r\n onChangeValue([value]);\r\n }\r\n } else {\r\n if(Lastvalues){\r\n setValues(Lastvalues);\r\n setValueInput(Lastvalues);\r\n }\r\n \r\n \r\n }\r\n }\r\n const handleChangeValue = (value) => {\r\n\r\n setValueInput(value);\r\n // debouncedSave(value);\r\n };\r\n const handleChangeValueRange = (value) => {\r\n if (value[0] <= max) {\r\n setValues(value);\r\n if (onChangeValue) {\r\n onChangeValue(value);\r\n }\r\n } else {\r\n }\r\n };\r\n return (\r\n
    \r\n
    \r\n {placeHolder}\r\n
    \r\n \r\n handleChangeValueRange(values)}\r\n renderTrack={({ props, children }) => (\r\n \r\n \r\n {children}\r\n
    \r\n \r\n )}\r\n renderThumb={({ props, isDragged }) => (\r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n
    \r\n
    \r\n handleChangeValue(e.target.value)} onBlur={(e)=>setFinalChangeValue(e.target.value)} type=\"text\" value={valueInput}\r\n />\r\n
    \r\n
    \r\n {suffix}\r\n
    \r\n\r\n
    \r\n \r\n );\r\n}\r\n\r\n","import { useTranslation } from \"react-i18next\";\r\nimport { DropDownInput } from \"../../../components/_input/_dropdown\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { FinanceRange } from \"./financeRange\";\r\nimport axios from \"axios\";\r\nimport _ from 'lodash';\r\nimport config from '../../../configuration/config.json';\r\nimport { InputField } from \"../../../components/_input/_input\";\r\nimport dropDownResetter from \"../../../utils/resetDropDown\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport { toast } from \"react-toastify\";\r\nexport function FinanceSearch({ onBankSelected, onQuantitySearchClick, onActiveMenu, onSelectedProduct, onBudgetChange, onSetBanks, onsetDefaultperiod, selectionBank, ...props }) {\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const languageDir = \"language-\" + lang;\r\n const BANK_KEY = 'Bank_ID';\r\n const STATUS_KEY = 'Status';\r\n const { t: trans } = useTranslation([\"common\", \"inputs\", \"finance\", \"model\"]);\r\n const [active, setActive] = useState('');\r\n const [model, setModel] = useState(\"hidden\");\r\n const [balance, setPart] = useState(\"hidden\");\r\n const [monthly, setMonthly] = useState(\"\");\r\n const [activeMenu, setActiveMenu] = useState(1);\r\n const [banks, setBanks] = useState([]);\r\n const [brands, setBrands] = useState([]);\r\n const [groups, setGroups] = useState([]);\r\n const [fGroups, setFGroups] = useState([]);\r\n const [isLoadingBanks, setLoadingBanks] = useState(true);\r\n const [modelSearch, setModelSearch] = useState({\r\n brandID: '',\r\n groupID: '',\r\n subCategoryID: ''\r\n });\r\n const [subCategories, setSubCategories] = useState([]);\r\n const [fSubCategories, setFSubCategories] = useState([]);\r\n const [budget, setBudget] = useState({});\r\n const [quantityRange, setQuantityRange] = useState({\r\n maxFinanceAmount: 5000,\r\n maxFinancePeriod: 24,\r\n lastBatch: 40000\r\n });\r\n\r\n const [selectOneBankDefoliate, setSelectOneBankDefoliate] = useState({});\r\n\r\n\r\n const initialBanksData = async (active = true) => {\r\n\r\n setLoadingBanks(true);\r\n\r\n try {\r\n\r\n if (\"caches\" in window) {\r\n let url = \"SiteFetchActiveBankWithFinanceSettings\";\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"HJWeb\");\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n url\r\n );\r\n let data = await cachedResponse?.json();\r\n setBanks(data);\r\n setSelectOneBankDefoliate(data[0])\r\n\r\n setLoadingBanks(false);\r\n }\r\n\r\n } catch (error) {\r\n }\r\n axios.post(\r\n config.baseURL + \"func\",\r\n {\r\n \"name\": \"SiteFetchActiveBankWithFinanceSettings\"\r\n }\r\n ).then(response => {\r\n const result = response.data;\r\n //console.log(\"result\", result)\r\n setBanks(result);\r\n setSelectOneBankDefoliate(result[0]);\r\n\r\n setLoadingBanks(false);\r\n if (onSetBanks)\r\n onSetBanks(result);\r\n\r\n const data = new Response(JSON.stringify(result));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"HJWeb\").then((cache) => {\r\n cache.put(\"SiteFetchActiveBankWithFinanceSettings\", data);\r\n\r\n });\r\n }\r\n }).catch(error => {\r\n //console.log(error);\r\n setLoadingBanks(false);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n if(selectOneBankDefoliate && selectOneBankDefoliate.GUID){\r\n handleActiveBank(selectOneBankDefoliate);\r\n }\r\n }, [banks, selectOneBankDefoliate]);\r\n\r\n\r\n useEffect(() => {\r\n\r\n initialBanksData();\r\n\r\n axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/finance/index\",\r\n method: \"get\",\r\n }).then(response => {\r\n const result = response.data;\r\n\r\n const customizedResult = result?.brands?.map(row => {\r\n return {\r\n value: row.BrandID,\r\n text: row.Description\r\n }\r\n });\r\n setBrands(customizedResult);\r\n //------------------------------------------------\r\n setGroups(result?.groups);\r\n //------------------------------------------------\r\n setSubCategories(result?.modelTypes);\r\n }).catch(err => {\r\n //console.log(err);\r\n })\r\n }, []);\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (selectionBank) {\r\n\r\n show(activeMenu == 1 ? \"monthly\" : (activeMenu == 2 ? \"model\" : \"balance\"), activeMenu);\r\n }\r\n }, [selectionBank]);\r\n\r\n const handleRefechData = () => {\r\n\r\n //console.log(\"handleRefechData>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>.\");\r\n if (selectionBank) {\r\n\r\n show(activeMenu == 1 ? \"monthly\" : (activeMenu == 2 ? \"model\" : \"balance\"), activeMenu);\r\n }\r\n };\r\n props.onHandleRefechData(handleRefechData);\r\n\r\n const handleActiveBank = (bankSelected) => {\r\n\r\n if (active != bankSelected?.GUID) {\r\n //console.log(\"active:\" + active)\r\n localStorage.setItem(BANK_KEY, bankSelected?.GUID);\r\n setActive((prevState) => {\r\n return prevState !== bankSelected?.GUID ? bankSelected?.GUID : null\r\n });\r\n localStorage.setItem(STATUS_KEY, active !== bankSelected?.GUID ? bankSelected?.GUID : '')\r\n if (onBankSelected) {\r\n const status = localStorage.getItem(STATUS_KEY);\r\n onBankSelected(bankSelected);\r\n }\r\n //------------------------\r\n var DefaultFinancePeriod =24;\r\n if(bankSelected?.DefaultFinancePeriod){\r\n DefaultFinancePeriod =bankSelected?.DefaultFinancePeriod;\r\n \r\n\r\n }\r\n const val = { ...quantityRange };\r\n val.maxFinancePeriod = DefaultFinancePeriod;\r\n setQuantityRange(val);\r\n if (onsetDefaultperiod)\r\n onsetDefaultperiod(val.maxFinancePeriod)\r\n\r\n }\r\n };\r\n\r\n\r\n\r\n // It's used to initialize the products\r\n const handleFilterGroups = (option) => {\r\n if (groups) {\r\n const filteredValues = groups.filter(e => e.BrandId === option.value);\r\n setFGroups(filteredValues.map(e => {\r\n return { value: e.ProductGroupId, text: e.Description }\r\n }));\r\n }\r\n };\r\n // It's used to initialize the sub categories\r\n const handleFilterSubGategories = (option) => {\r\n if (subCategories) {\r\n const filteredValues = subCategories.filter(e => e.ProductGroupId == option.value);\r\n setFSubCategories(filteredValues.map(e => {\r\n return { value: e.ProductTypeId, text: e.Description }\r\n }));\r\n }\r\n };\r\n function show(section, index) {\r\n\r\n\r\n setMonthly(\"hidden\");\r\n setModel(\"hidden\");\r\n setPart(\"hidden\");\r\n switch (section) {\r\n case \"monthly\":\r\n setMonthly(\"\");\r\n break;\r\n case \"model\":\r\n setModel(\"\");\r\n break;\r\n case \"balance\":\r\n setPart(\"\");\r\n break;\r\n default:\r\n setMonthly(\"\");\r\n }\r\n\r\n setActiveMenu(index);\r\n\r\n if (onActiveMenu)\r\n onActiveMenu(index);\r\n\r\n // setTimeout(() => {\r\n\r\n if (index == 1) {\r\n if (onQuantitySearchClick) {\r\n // onLoadingInfo(true);\r\n onQuantitySearchClick(quantityRange, index, null);\r\n }\r\n\r\n } else if (index == 2) {\r\n if (onSelectedProduct) {\r\n // onLoadingInfo(true);\r\n onSelectedProduct(modelSearch, index, null)\r\n }\r\n\r\n } else if (index == 3) {\r\n\r\n if (onBudgetChange) {\r\n // onLoadingInfo(true);\r\n onBudgetChange(budget, index, null);\r\n }\r\n }\r\n\r\n // }, 1000)\r\n\r\n\r\n\r\n }\r\n\r\n\r\n return (\r\n
    \r\n\r\n

    {trans(\"finance:choose_bank\")}

    \r\n\r\n
    \r\n \r\n {\r\n banks?.map((bank, index) => {\r\n return (\r\n \r\n
    { handleActiveBank(bank) }} title={lang == \"ar\" ? bank.DescriptionAr : bank.DescriptionEn}>\r\n \r\n \r\n {lang{er.target.style.display = 'none'}}\r\n />\r\n\r\n \r\n {lang == \"ar\" ? bank.DescriptionAr : bank.DescriptionEn}\r\n
    \r\n
    \r\n );\r\n })\r\n }\r\n\r\n\r\n \r\n
    \r\n\r\n {/*
    \r\n\r\n {\r\n banks.map((bank, index) => {\r\n return (\r\n
    { handleActiveBank(bank) }} title={lang == \"ar\" ? bank.DescriptionAr : bank.DescriptionEn}>\r\n \r\n \r\n {lang\r\n \r\n
    \r\n );\r\n })\r\n }\r\n\r\n
    */}\r\n
    \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n {\r\n const val = { ...quantityRange };\r\n val.maxFinanceAmount = value[0];\r\n setQuantityRange(val);\r\n }}\r\n />\r\n
    \r\n\r\n
    \r\n {\r\n const val = { ...quantityRange };\r\n val.maxFinancePeriod = value[0];\r\n setQuantityRange(val);\r\n if (onsetDefaultperiod)\r\n onsetDefaultperiod(val.maxFinancePeriod)\r\n }}\r\n />\r\n
    \r\n\r\n
    \r\n {\r\n const val = { ...quantityRange };\r\n val.lastBatch = value[0];\r\n setQuantityRange(val);\r\n }}\r\n />\r\n
    \r\n\r\n\r\n
    \r\n \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n {\r\n const val = { ...modelSearch };\r\n val.brandID = value;\r\n if (value == '' || value == '0' || value == null) {\r\n dropDownResetter(() => {\r\n setFGroups([]);\r\n setFSubCategories([]);\r\n });\r\n val.groupID = '';\r\n val.subCategoryID = '';\r\n }\r\n setModelSearch(val);\r\n }}\r\n\r\n selectedValue={modelSearch?.brandID}\r\n />\r\n
    \r\n
    \r\n {\r\n const val = { ...modelSearch };\r\n if (value == '' || value == '0' || value == null) {\r\n dropDownResetter(() => {\r\n setFSubCategories([]);\r\n });\r\n val.subCategoryID = '';\r\n }\r\n val.groupID = value;\r\n setModelSearch(val);\r\n }}\r\n\r\n />\r\n
    \r\n
    \r\n {\r\n const val = { ...modelSearch };\r\n val.subCategoryID = value;\r\n setModelSearch(val);\r\n }}\r\n />\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n const val = e.target.value;\r\n setBudget({\r\n budget: val\r\n });\r\n }}\r\n />\r\n
    \r\n\r\n \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n );\r\n}\r\n\r\n\r\n\r\n","import { useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Price } from \"../../../components/__simple/_price\";\r\n\r\nexport function FinanceCar({\r\n groupColor,\r\n onApplay,\r\n offerID,\r\n productID,\r\n image,\r\n modelType,\r\n name,\r\n hasOffer,\r\n brand,\r\n brandImage,\r\n brandIcon,\r\n offerTitle,\r\n group,\r\n model,\r\n brandID,\r\n price,\r\n showPric,\r\n colorName = \"\"\r\n}) {\r\n const { t: trans } = useTranslation([\"finance\", \"model\", \"common\", \"info\"]);\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const languageDir = \"language-\" + lang;\r\n const isToyota = brand && brand.toLowerCase() == trans(\"common:toyota\").toLowerCase() ? true : false;\r\n return (\r\n\r\n
    \r\n
    \r\n
    \r\n {/* \"toyota\" */}\r\n \r\n {/*

    {(isToyota ? trans(\"common:toyota\") : trans(\"common:toyota\"))}

    */}\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n {name}\r\n\r\n
    \r\n {/* {(isToyota */}\r\n \r\n
    \r\n\r\n < div className={\"car-card-top-btn\"}>\r\n {colorName &&
    \r\n\r\n {/* This text will bounce */}\r\n {(colorName) && {colorName}}\r\n\r\n
    }\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n

    {name}

    \r\n {/* {\r\n hasOffer ?
    \r\n \"\"\r\n
    : null\r\n } */}\r\n
    \r\n
    \r\n {/*
    \r\n

    {trans(\"finance:group\")}

    \r\n

    {group}

    \r\n
    */}\r\n
    \r\n

    {trans(\"info:vehicle_year\")}

    \r\n

    {model}

    \r\n
    \r\n
    \r\n {\r\n showPric && <>\r\n

    {trans(\"finance:price\")}

    \r\n

    {showPric && }

    \r\n \r\n\r\n }\r\n\r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n if (onApplay) {\r\n onApplay({\r\n productID,\r\n offerID,\r\n name,\r\n price,\r\n group,\r\n model,\r\n brand,\r\n brandID,\r\n image,\r\n brandIcon,\r\n brandImage,\r\n modelType,\r\n groupColor,\r\n showPric\r\n });\r\n }\r\n }\r\n }>\r\n {\r\n trans(\"finance:apply\")\r\n }\r\n \r\n
    \r\n
    \r\n \r\n\r\n );\r\n}\r\n","import { Fragment, useEffect, useRef, useState } from \"react\";\r\nimport SwiperCore, { Pagination, Navigation, Autoplay, EffectFade } from \"swiper\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { FilterButton } from \"../../components/__simple/_filterButton\";\r\nimport { FinanceSearch } from \"./components/financeSearch\";\r\nimport { FinanceCar } from \"./components/financeCar\";\r\nimport PageHeading from \"../../components/__simple/_pageheading\";\r\nimport SectionHeading from \"../../components/sectionHeading\";\r\nimport Banner from \"../../components/banner\";\r\nimport { OfferSections } from \"../../sections/offersSection\";\r\nimport Breadcrumb from \"../../components/__simple/breadcrumb\";\r\nimport config from '../../configuration/config.json';\r\nimport axios from 'axios';\r\nimport Popup from \"../../User/popup\";\r\nimport { Price } from \"../../components/__simple/_price\";\r\nimport { InputField } from \"../../components/_input/_input\";\r\nimport { TextArea } from \"../../components/_input/_textArea\";\r\nimport PhoneDropDown from \"../../components/_input/_phoneDropDown\";\r\nimport { DropDownInput } from \"../../components/_input/_dropdown\";\r\nimport Joi from \"joi\";\r\nimport { formValidate, GetMessages } from \"../../utils/validation\";\r\nimport { includes } from \"lodash\";\r\nimport { toast } from \"react-toastify\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport Skeleton from 'react-loading-skeleton'\r\nSwiperCore.use([Pagination, Navigation, Autoplay, EffectFade]);\r\n\r\nexport function FinancePage() {\r\n const { t: trans, i18n } = useTranslation([\"heading\", \"finance\", \"model\", \"navbar\", \"form\", \"error2\", \"common\", \"info\", \"error\"]);\r\n let lang = i18n.language;\r\n const languageDir = 'language-' + lang;\r\n const popRef = useRef();\r\n const [products, setProducts] = useState([]);\r\n const [filteredCars, setFilteredCars] = useState(products);\r\n const [filteredCarsByBrand, setFilteredCarsByBrand] = useState(products);\r\n const [carBrandFilter, setCarFilter] = useState(null);\r\n const [activeMenu, setActiveMenu] = useState(1);\r\n const [banner, setbanner] = useState({});\r\n const [financeOffers, setFinanceOffers] = useState([]);\r\n const [showPopup, setShowPopup] = useState(false);\r\n const [carInfo, setCarInfo] = useState({});\r\n const [isLoadingVehicles, setLoadingVehicles] = useState(false);\r\n const [banks, setBanks] = useState([]);\r\n const [accountTypes, setAccountTypes] = useState([]);\r\n const [financeSettings, setFinanceSettings] = useState(null);\r\n const [profitRates, setProfitRates] = useState([]);\r\n const [isLoadingInfo, setLoadingInfo] = useState(true);\r\n const [isLoadingSendOrder, setLoadingSendOrder] = useState(false);\r\n const [selectionBank, setSelectionBank] = useState({});\r\n const [seoPageInfo, setSeoPageInfo] = useState({});\r\n const [approximateResult, setApproximateResult] = useState({\r\n period: '',\r\n mangFees: null,\r\n monthPay: null,\r\n firstPay: null,\r\n lastPay: null,\r\n annualRate: '',\r\n total: null\r\n });\r\n\r\n const [requestForm, setRequestForm] = useState({\r\n custType: null,\r\n identityNo: '',\r\n cn: '',\r\n fullNameAr: '',\r\n fullNameEn: '',\r\n phoneNumber: '',\r\n email: '',\r\n bankID: '',\r\n income: '',\r\n period: '60',\r\n groupColor: '',\r\n colorID: '',\r\n advancedPayment: '',\r\n monthlyPayment: '',\r\n note: ''\r\n });\r\n const [defaultBank, setDefaultBank] = useState(null);\r\n const [defaultperiod, setDefaultperiod] = useState(24);\r\n const [error, setError] = useState({});\r\n const [identityType, setIdentityType] = useState(null);\r\n const [colors, setColors] = useState([]);\r\n const schema = Joi.object({\r\n custType: Joi.string().required().messages(GetMessages()),\r\n identityNo: Joi.string().min(10).required().messages(GetMessages()),\r\n cn: Joi.string().min(10).required().messages(GetMessages()),\r\n fullNameAr: Joi.string().required().messages(GetMessages()),\r\n email: Joi.string().email({ minDomainSegments: 2, tlds: { allow: false } }).required().messages(GetMessages()),\r\n phoneNumber: Joi.string().min(13).required().messages(GetMessages()),\r\n income: Joi.string().required().messages(GetMessages()),\r\n period: Joi.number().min(24).max(60).required().messages(GetMessages()),\r\n });\r\n\r\n\r\n\r\n useEffect(() => {\r\n initialBanner();\r\n initialFinanceoffers();\r\n // initialProducts();\r\n // initialBanksData();\r\n initialCustGroups();\r\n initalSettings();\r\n intialProfitRates();\r\n }, []);\r\n\r\n // useEffect(() => {\r\n // setFilteredCars(products);\r\n // }, [products]);\r\n\r\n useEffect(() => {\r\n function handleClickOutside(event) {\r\n if (popRef.current && !popRef.current.contains(event.target) && showPopup === true) {\r\n resetControls();\r\n }\r\n }\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, [showPopup]);\r\n\r\n let handleRefechData;\r\n const fn = function (sayHelloFromComp1) {\r\n handleRefechData = sayHelloFromComp1;\r\n };\r\n\r\n useEffect(() => {\r\n\r\n if (products && products?.length > 0) {\r\n\r\n handleRefechData();\r\n }\r\n\r\n // if (activeMenu == 1)\r\n // handleFilterByActiveMenu({\r\n // maxFinanceAmount: 5000,\r\n // maxFinancePeriod: 24,\r\n // lastBatch: 40000\r\n // }, activeMenu, carBrandFilter);\r\n\r\n }, [products]);\r\n // filter cars\r\n function filterCars(carsData, brand) {\r\n\r\n // //console.log(\"getCarsByBrand:\", carsData);\r\n // //console.log(\"getCarsByBrand:\", brand);\r\n\r\n setCarFilter(brand);\r\n setFilteredCars(carsData);\r\n let filterData;\r\n if (brand != null) {\r\n switch (brand.toLowerCase()) {\r\n\r\n case trans(\"finance:brand_toyota\").toLowerCase():\r\n filterData = getCarsByBrand(carsData, trans(\"finance:brand_toyota\").toLowerCase());\r\n break;\r\n\r\n case trans(\"finance:brand_lexus\").toLowerCase():\r\n filterData = getCarsByBrand(carsData, trans(\"finance:brand_lexus\").toLowerCase());\r\n break;\r\n }\r\n } else {\r\n filterData = carsData;\r\n }\r\n setFilteredCarsByBrand(filterData);\r\n };\r\n\r\n const initialProductsByBank = async (thisBankID) => {\r\n setLoadingVehicles(true);\r\n try {\r\n setProducts([]);\r\n //console.log(\" initialProductsByBank:\", thisBankID);\r\n var res = null;\r\n var dataVehicles = null;\r\n // try {\r\n // if (\"caches\" in window) {\r\n // var curl = \"VehiclesByPriceListTypeOnlin-\" + lang + \"_\" + thisBankID;\r\n\r\n // // Opening that particular cache\r\n // const cacheStorage = await caches.open(\"FinancePage\");\r\n\r\n // // Fetching that particular cache data\r\n // const cachedResponse = await cacheStorage.match(\r\n // curl\r\n // );\r\n // dataVehicles = await cachedResponse?.json();\r\n\r\n // if (dataVehicles) {\r\n\r\n // setProducts(dataVehicles);\r\n // setLoadingVehicles(false);\r\n // }\r\n\r\n // }\r\n\r\n // } catch (error) {\r\n // ////console.log(error);\r\n // }\r\n axios.post(\r\n config.baseURL + \"func\",\r\n {//site_FetchVehiclesByPriceListTypeIDOnlineAr\r\n \"name\": lang == \"ar\" ? \"site_FetchVehiclesByPriceListTypeIDOnlineAr\" : \"site_FetchVehiclesByPriceListTypeOnlineEn\",\r\n // \"name\": \"SiteFetchSupportedCarsInFinance\",\r\n \"Values\": {\r\n \"PriceListTypeID\": thisBankID\r\n // \"PriceListTypeID\": \"Al Rajhi Rental\"\r\n }\r\n }\r\n ).then(response => {\r\n setLoadingVehicles(false);\r\n const result = response.data;\r\n const customizedResult = result.map(e => {\r\n return {\r\n id: e.OfferID,\r\n brandID: e.BrandID,\r\n brandTitle: e.Brand,\r\n brandImage: e.BrandImage ? \"data:image/png;base64,\" + e.BrandImage : null,\r\n productID: e.ProductID,\r\n productImage: e.Image ? config.mainURL + e.Image : null,\r\n groupID: e.CarGroupID,\r\n groupTitle: e.Group,\r\n model: e.Year,\r\n modelTypeID: e.Type,\r\n modelTypeTitle: e.ModelTypes,\r\n colorID: e.ColorID,\r\n colorGroupID: e.ColorGroupID,\r\n colorName: e.ColorName,\r\n colorImage: e.ColorImage ? \"data:image/png;base64,\" + e.ColorImage : null,\r\n price: e.MinPrice,\r\n showPric: true,\r\n buyOnline: e.BuyOnline\r\n }\r\n\r\n\r\n });\r\n\r\n if (dataVehicles != customizedResult) {\r\n setProducts(customizedResult);\r\n\r\n\r\n // const resdataVehicles = new Response(JSON.stringify(customizedResult));\r\n\r\n // if (\"caches\" in window) {\r\n // // Opening given cache and putting our data into it\r\n // caches.open(\"FinancePage\").then((cache) => {\r\n // cache.put(\"VehiclesByPriceListTypeOnlin-\" + lang + \"_\" + thisBankID, resdataVehicles);\r\n\r\n // });\r\n // }\r\n }\r\n }).catch(error => {\r\n //////console.log(error);\r\n setLoadingVehicles(false);\r\n });\r\n\r\n } catch (error) {\r\n ////console.log(error);\r\n setLoadingVehicles(false);\r\n }\r\n };\r\n\r\n\r\n // It's used to initialize the products\r\n const initialProducts = async () => {\r\n\r\n // try {\r\n\r\n // var res = null;\r\n // if (\"caches\" in window) {\r\n // var curl = \"OnlineVehicles-\" + lang;\r\n\r\n // // Opening that particular cache\r\n // const cacheStorage = await caches.open(\"FinancePage\");\r\n\r\n // // Fetching that particular cache data\r\n // const cachedResponse = await cacheStorage.match(\r\n // curl\r\n // );\r\n // var dataVehicles = await cachedResponse?.json();\r\n\r\n // setProducts(dataVehicles);\r\n\r\n // }\r\n\r\n // const response = await axios.request({\r\n // baseURL: config.controllURL,\r\n // url: lang + \"/api/vehicles/OnlineVehicles\",\r\n // method: \"get\",\r\n // });\r\n\r\n // const modelTrns = trans(\"model:description\");\r\n // const result = response.data.vehicles;\r\n // const customizedResult = result.map(e => {\r\n // return {\r\n // id: e.OfferID,\r\n // brandID: e.brandID,\r\n // brandTitle: e.brand,\r\n // brandIcon: e.BrandIcon ? \"data:image/png;base64,\" + e.BrandIcon : null,\r\n // brandImage: e.BrandImage ? \"data:image/png;base64,\" + e.BrandImage : null,\r\n // productID: e.ProductID,\r\n // productImage: e.image ? config.mainURL + e.image : null,\r\n // groupID: e.carGroupID,\r\n // groupTitle: e.group,\r\n // model: e.year,\r\n // modelTypeID: e.type,\r\n // modelTypeTitle: e.modelDescription,\r\n // colorID: e.colorID,\r\n // colorGroupID: e.ColorGroupID,\r\n // colorName: e.colorName,\r\n // colorImage: e.ColorImage ? \"data:image/png;base64,\" + e.ColorImage : null,\r\n // price: e.minPrice,\r\n // showPric: true,\r\n // buyOnline: e.buyOnline\r\n // }\r\n\r\n\r\n // });\r\n // setProducts(customizedResult);\r\n // const resdataVehicles = new Response(JSON.stringify(customizedResult));\r\n\r\n // if (\"caches\" in window) {\r\n // // Opening given cache and putting our data into it\r\n // caches.open(\"FinancePage\").then((cache) => {\r\n // cache.put(\"OnlineVehicles-\" + lang, resdataVehicles);\r\n\r\n // });\r\n // }\r\n\r\n\r\n // } catch (error) {\r\n // ////console.log(error);\r\n // }\r\n\r\n // const modelTrns = trans(\"model:description\");\r\n axios.post(\r\n config.baseURL + \"func\",\r\n {\r\n \"name\": lang == \"ar\" ? \"site_FetchVehiclesByPriceListTypeOnlineAr\" : \"site_FetchVehiclesByPriceListTypeOnlineEn\",\r\n // \"name\": \"SiteFetchSupportedCarsInFinance\",\r\n \"Values\": {\r\n \"PriceListTypeID\": 'Al Rajhi Bank'\r\n }\r\n }\r\n ).then(response => {\r\n const result = response.data;\r\n const customizedResult = result.map(e => {\r\n return {\r\n id: e.OfferID,\r\n brandID: e.BrandID,\r\n brandTitle: e.Brand,\r\n brandImage: e.BrandImage ? \"data:image/png;base64,\" + e.BrandImage : null,\r\n productID: e.ProductID,\r\n productImage: e.Image ? config.mainURL + e.Image : null,\r\n groupID: e.CarGroupID,\r\n groupTitle: e.Group,\r\n model: e.Year,\r\n modelTypeID: e.Type,\r\n modelTypeTitle: e.ModelTypes,\r\n colorID: e.ColorID,\r\n colorGroupID: e.ColorGroupID,\r\n colorName: e.ColorName,\r\n colorImage: e.ColorImage ? \"data:image/png;base64,\" + e.ColorImage : null,\r\n price: e.MinPrice,\r\n showPric: true,\r\n buyOnline: e.BuyOnline\r\n }\r\n\r\n\r\n });\r\n setProducts(customizedResult);\r\n }).catch(error => {\r\n //////console.log(error);\r\n });\r\n };\r\n\r\n // It's used to filter the cars by brand\r\n const getCarsByBrand = (carsData, brand) => {\r\n //////console.log(\"getCarsByBrand:\", carsData);\r\n //////console.log(\"getCarsByBrand:\", brand);\r\n\r\n try {\r\n return carsData?.filter(e => {\r\n return (e.brandTitle.toLowerCase() == brand)\r\n })\r\n } catch (error) {\r\n return [];\r\n\r\n }\r\n\r\n };\r\n\r\n\r\n const handleFilterByBank = (activeBank) => {\r\n try {\r\n //console.log(\"handleFilterByBank:\", activeBank);\r\n const val = { ...requestForm };\r\n val.bankID = activeBank.GUID;\r\n setRequestForm(val);\r\n setSelectionBank(activeBank);\r\n setDefaultBank(activeBank?.GUID);\r\n\r\n initialProductsByBank(activeBank?.PriceListTypeID);\r\n } catch (err) {\r\n //////console.log(err);\r\n //console.log(\"err handleFilterByBank:\", activeBank);\r\n }\r\n };\r\n\r\n const initialBanner = async () => {\r\n let result = [];\r\n\r\n const response = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/Finance/Banner\",\r\n method: \"get\",\r\n });\r\n\r\n //////console.log('response.data.banner:', response.data.banner);\r\n result = response.data.banner;\r\n setTimeout(setbanner(result), 500);\r\n return result;\r\n };\r\n\r\n // to fetch the finance offers\r\n const initialFinanceoffers = () => {\r\n axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"SiteFetchOffersFinanceWithSettingBank\"\r\n }\r\n ).then(response => {\r\n const descriptionModel = trans(\"model:description\");\r\n const responseData = response.data.map((item, index) => {\r\n return {\r\n key: index,\r\n startDate: item?.StartDate,\r\n endDate: item?.EndDate,\r\n title: item[`Title${descriptionModel}`],\r\n excerpt: item[`${lang == \"ar\" ? 'excerptAr' : 'excerptEn'}`],\r\n slug: item?.slugAr,\r\n otherLink: item?.slugEn,\r\n totalDays: item?.TotalDays,\r\n image: item.Image\r\n }\r\n });\r\n setFinanceOffers(responseData);\r\n }).catch(error => {\r\n //////console.log('Error in fetching the finance offers', error);\r\n })\r\n };\r\n\r\n\r\n\r\n //It's used to fetch all the customer types\r\n const initialCustGroups = () => {\r\n axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"name\": \"SiteGetCustGroupsCollection\"\r\n }\r\n ).then(response => {\r\n setAccountTypes(response.data);\r\n\r\n }).catch(err => {\r\n //////console.log(err);\r\n })\r\n };\r\n\r\n // to handle the specific car order\r\n const handleOnApplay = (car, selectionBank) => {\r\n setShowPopup(true);\r\n setCarInfo({ ...car });\r\n reCountFinanceSettings(car, selectionBank, requestForm?.period);\r\n axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"name\": \"SiteFetchColorsByGroup\",\r\n \"values\": {\r\n \"CroupColorID\": car.groupColor,\r\n \"Type\": car.modelType\r\n }\r\n }\r\n ).then(response => {\r\n setColors(response.data.map(item => {\r\n return { value: item.ColorID, text: item[`${trans(\"model:description\")}`] }\r\n }));\r\n }).catch(err => {\r\n\r\n });\r\n\r\n };\r\n\r\n // to intialize the finance settings\r\n const initalSettings = () => {\r\n axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"name\": \"SiteFetchActiveBankWithFinanceSettings\"\r\n }\r\n ).then(response => {\r\n setFinanceSettings(response.data[0]);\r\n }).catch(err => {\r\n //////console.log(err);\r\n })\r\n };\r\n // to intialize the finance profit Rates\r\n const intialProfitRates = () => {\r\n axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"name\": \"SiteFetchProfitRates\"\r\n }\r\n ).then(response => {\r\n setProfitRates(response.data);\r\n }).catch(err => {\r\n //////console.log(err);\r\n })\r\n };\r\n\r\n // to reset controls \r\n const resetControls = () => {\r\n setShowPopup(false);\r\n setCarInfo({});\r\n setIdentityType(null);\r\n setError({});\r\n setApproximateResult(\r\n {\r\n period: '',\r\n mangFees: null,\r\n monthPay: null,\r\n firstPay: null,\r\n lastPay: null,\r\n annualRate: '',\r\n total: ''\r\n }\r\n );\r\n setRequestForm({\r\n ...requestForm,\r\n custType: null,\r\n identityNo: '',\r\n cn: '',\r\n fullNameAr: '',\r\n fullNameEn: '',\r\n phoneNumber: '',\r\n email: '',\r\n income: null,\r\n colorID: '',\r\n advancedPayment: null,\r\n lastPayment: null,\r\n note: ''\r\n\r\n });\r\n };\r\n\r\n const countFinancCar = async (priceCar, instance) => {\r\n\r\n const { maxFinancePeriod, maxFinanceAmount, lastBatch } = instance;\r\n var finalAmount = 0;\r\n // try {\r\n const firstPay = (selectionBank?.AdvancedPaymentRate / 100) ?? 0;\r\n const lastPay = (selectionBank?.AdvancedPaymentRate / 100) ?? 0;\r\n const managementFees = financeSettings?.ManagementFees ? (financeSettings?.ManagementFees / 100) : 0; // الرسوم الادارية\r\n const financeRate = (selectionBank?.FinanceRate / 100) ?? 0; //نسبة الفائدة\r\n\r\n\r\n\r\n const firstPayPrice = (firstPay * parseFloat(priceCar))\r\n const lastPayPrice = (lastPay * parseFloat(priceCar));\r\n\r\n const financeAmount = (parseFloat(priceCar) - parseFloat(firstPayPrice));\r\n\r\n var addAmount = (financeAmount * financeRate) * (maxFinancePeriod / 12);\r\n\r\n\r\n if (addAmount && managementFees && managementFees > 0) {\r\n // الرسوم الادارية\r\n var managementFeesAmount = (financeAmount * managementFees);\r\n managementFeesAmount = managementFeesAmount + (managementFeesAmount * 0.15);\r\n addAmount = addAmount + managementFeesAmount;\r\n\r\n }\r\n\r\n\r\n const mounthBrach = ((financeAmount + addAmount) - lastPayPrice) / (maxFinancePeriod - 1);\r\n\r\n finalAmount = ((mounthBrach * (maxFinancePeriod - 1)) + lastPayPrice + firstPayPrice);\r\n\r\n // } catch (error) {\r\n\r\n // }\r\n\r\n\r\n\r\n ////console.log(\"finalAmount>>>>>>>>>>>>>>>>>>>:\", finalAmount);\r\n return parseFloat(finalAmount);\r\n }\r\n\r\n const handleFilterByActiveMenu = async (obj, thisActiveMenu, thiscarBrandFilter = carBrandFilter) => {\r\n //console.log(\"handleFilterByActiveMenu:\", thisActiveMenu);\r\n //console.log(\"handleFilterByActiveMenu:\", obj);\r\n //console.log(\"handleFilterByActiveMenu:\", products);\r\n if (products && products?.length > 0) {\r\n const instance = { ...obj };\r\n setLoadingInfo(true);\r\n setTimeout(() => {\r\n\r\n ////console.log(\"handleFilterByActiveMenu:\", instance);\r\n let filteredData;\r\n //////console.log(\"activeMenu:\", thisActiveMenu);\r\n //////console.log(\"thiscarBrandFilter:\", thiscarBrandFilter);\r\n //////console.log(\"products:\", products);\r\n\r\n switch (thisActiveMenu) {\r\n case 1:\r\n\r\n const { maxFinancePeriod, maxFinanceAmount, lastBatch } = instance;\r\n\r\n // setDefaultperiod(maxFinancePeriod);\r\n //////console.log(\"instance:\", instance);\r\n const total = (((parseFloat(maxFinanceAmount) * maxFinancePeriod) - parseFloat(lastBatch)) / (maxFinancePeriod - 1));\r\n //////console.log(\"total:\", total);\r\n const finalTotal = (parseFloat(total) * (maxFinancePeriod - 1)) + parseFloat(lastBatch);\r\n //////console.log(\"finalTotal>>>>>>>>>>>>>>>>>>>:\", finalTotal);\r\n\r\n // const DatawithFinanc = products?.filter(async car => {\r\n // return (car.finalFinaniceTotal = ((parseFloat(await countFinancCar(car.price, instance)))))\r\n // });\r\n\r\n const DatawithFinanc = products?.filter(async car => {\r\n return (car.finalFinaniceTotal = car.price)\r\n });\r\n ////console.log(\"DatawithFinanc>>>>>>>>>>>>>>>>>>>:\", DatawithFinanc);\r\n setTimeout(() => {\r\n filteredData = DatawithFinanc?.filter(car => {\r\n return (finalTotal >= car.finalFinaniceTotal)\r\n });\r\n ////console.log(\"filteredData>>>>>>>>>>>>>>>>>>>:\", filteredData);\r\n filterCars(filteredData, thiscarBrandFilter);\r\n setLoadingInfo(false);\r\n }, 100);\r\n break;\r\n case 2:\r\n const { brandID, groupID, subCategoryID } = instance;\r\n filteredData = products?.filter(car => {\r\n return (((brandID && brandID.trim().length > 0) ? car.brandID == brandID : 1 == 1) && ((groupID && groupID.trim().length > 0) ? car.groupID == groupID : 1 == 1) && ((subCategoryID && subCategoryID.trim().length > 0) ? car.modelTypeID == subCategoryID : 1 == 1))\r\n });\r\n\r\n filterCars(filteredData, thiscarBrandFilter);\r\n setLoadingInfo(false);\r\n break;\r\n case 3:\r\n const { budget } = instance;\r\n //////console.log(\"budget:\", budget);\r\n if (budget) {\r\n filteredData = products?.filter(car => {\r\n return (budget >= car.price)\r\n });\r\n }\r\n\r\n filterCars(filteredData, thiscarBrandFilter);\r\n setLoadingInfo(false);\r\n break;\r\n }\r\n\r\n //////console.log(\"filteredData:\", filteredData);\r\n\r\n\r\n }, 10);\r\n }\r\n };\r\n // to sumbit finance car order\r\n const handleSubmit = () => {\r\n try {\r\n\r\n if (!isLoadingSendOrder) {\r\n //////console.log(\"handleSubmit:\", requestForm);\r\n setLoadingSendOrder(true);\r\n const result = formValidate(schema, requestForm) ?? {};\r\n let unspesificErrors = null;\r\n let newErrors = {};\r\n if (identityType == 1) {\r\n // identity type is (identity card)\r\n unspesificErrors = ['cn'];\r\n\r\n } else if (identityType == 2) {\r\n\r\n unspesificErrors = ['identityNo'];\r\n\r\n }\r\n newErrors = unspesificErrors ? removeUnspecificError(result, unspesificErrors) : result;\r\n\r\n ////console.log(\"newErrors\", newErrors);\r\n setError(newErrors);\r\n if (Object.keys(newErrors).length === 0) {\r\n const { LastPaymentRate } = { ...financeSettings };\r\n if (requestForm.income > 0) {\r\n axios.post(\r\n config.baseURL + 'add',\r\n {\r\n \"object\": \"SiteFinanceOrders\",\r\n \"values\": {\r\n \"OfferID\": carInfo.offerID,\r\n \"ProductID\": carInfo.productID,\r\n \"ModelYear\": carInfo.model,\r\n \"CustType\": requestForm.custType,\r\n \"IdentityNo\": requestForm.identityNo,\r\n \"CN\": requestForm.cn,\r\n \"Email\": requestForm.email,\r\n \"FullNameAr\": requestForm.fullNameAr,\r\n \"FullNameEn\": requestForm.fullNameEn,\r\n \"ColorGroup\": carInfo.groupColor != '' || carInfo.groupColor != undefined || carInfo.groupColor != null ? carInfo.groupColor : null,\r\n \"ColorID\": requestForm.colorID != '' || requestForm.colorID != null || requestForm.colorID != undefined ? requestForm.colorID : null,\r\n \"BankID\": requestForm.bankID != '' ? requestForm.bankID : null,\r\n \"PhoneNumber\": requestForm.phoneNumber,\r\n \"Income\": Number(requestForm.income),\r\n \"FirstPayment\": (requestForm.advancedPayment != '' || requestForm.advancedPayment != null || requestForm.advancedPayment != undefined) ? Number(requestForm.advancedPayment) : 0,\r\n \"MonthlyAmount\": carInfo.price * (LastPaymentRate / 100),\r\n \"Period\": Math.floor(Number(requestForm.period)) ?? financeSettings.FinancePeriod ?? 1,\r\n \"Message\": requestForm.note ?? null\r\n\r\n }\r\n }\r\n ).then(response => {\r\n toast.success(trans(\"common:order-request-success\"));\r\n resetControls();\r\n setLoadingSendOrder(false);\r\n }).catch(err => {\r\n //////console.log(err);\r\n setLoadingSendOrder(false);\r\n });\r\n } else {\r\n toast.error(trans(\"error2:not_accept_less_than_0_error\"));\r\n setLoadingSendOrder(false);\r\n }\r\n } else {\r\n //////console.log(\"newErrors>>:\", newErrors);\r\n setLoadingSendOrder(false);\r\n }\r\n\r\n }\r\n } catch (err) {\r\n //////console.log(err);\r\n setLoadingSendOrder(false);\r\n }\r\n };\r\n\r\n //to select the type of identity\r\n const handleCustType = (option) => {\r\n const val = { ...requestForm };\r\n val.custType = option;\r\n setRequestForm(val);\r\n\r\n try {\r\n if (option == '' || option == null || option == '0') {\r\n setIdentityType(null);\r\n return;\r\n }\r\n\r\n // const currentValue = accountTypes.find(item => {\r\n // return item.ID == option\r\n // }) ?? {};\r\n\r\n let value = null;\r\n if (option == \"G1\") {\r\n value = 1;\r\n val.cn = null;\r\n } else {\r\n value = 2;\r\n val.identityNo = null;\r\n }\r\n\r\n setRequestForm(val);\r\n setIdentityType(value);\r\n\r\n } catch (err) {\r\n //////console.log(err);\r\n }\r\n };\r\n\r\n\r\n const [selectedFinancePeriod, setSelectedFinancePeriod] = useState(24);\r\n const [minFirstPayPrice, setMinFirstPayPrice] = useState(0);\r\n const reCountFinanceSettings = (carInfo, financeSettings, selectedFinancePeriod, currentFirstPayPrice) => {\r\n\r\n try {\r\n //////console.log('reCountFinanceSettings', financeSettings);\r\n if (carInfo && financeSettings) {\r\n let financeData = { ...approximateResult };\r\n if (carInfo?.price && financeSettings?.ManagementFees >= 0) {\r\n\r\n //selectedFinancePeriod = financeSettings?.MaxFinancePeriod;\r\n\r\n const firstPay = (financeSettings?.AdvancedPaymentRate / 100) ?? 0;\r\n const lastPay = (financeSettings?.LastPaymentRate / 100) ?? 0;\r\n const managementFees = (financeSettings?.ManagementFees / 100) ?? 0; // الرسوم الادارية\r\n const financeRate = (financeSettings?.FinanceRate / 100) ?? 0; //نسبة الفائدة\r\n\r\n setMinFirstPayPrice(parseInt(firstPay * carInfo?.price));\r\n\r\n const firstPayPrice = currentFirstPayPrice ? currentFirstPayPrice : (firstPay * parseFloat(carInfo?.price))\r\n const lastPayPrice = (lastPay * parseFloat(carInfo?.price));\r\n\r\n const financeAmount = (parseFloat(carInfo?.price) - parseFloat(firstPayPrice));\r\n\r\n var addAmount = (financeAmount * financeRate) * (selectedFinancePeriod / 12);\r\n var managementFeesAmount = 0;\r\n if (addAmount && managementFees && managementFees > 0) {\r\n // الرسوم الادارية\r\n managementFeesAmount = (financeAmount * managementFees);\r\n managementFeesAmount = managementFeesAmount + (managementFeesAmount * 0.15);\r\n addAmount = addAmount + managementFeesAmount;\r\n\r\n }\r\n\r\n //////console.log('financeAmount', financeAmount);\r\n //////console.log('addAmount', addAmount);\r\n //////console.log('lastPayPrice', lastPayPrice);\r\n //////console.log('financeSettings?.MaxFinancePeriod', selectedFinancePeriod);\r\n const mounthBrach = ((financeAmount + addAmount) - lastPayPrice) / (selectedFinancePeriod - 1)\r\n\r\n const finalAmount = ((mounthBrach * (selectedFinancePeriod - 1)) + lastPayPrice + firstPayPrice)\r\n\r\n financeData.period = selectedFinancePeriod;\r\n financeData.mangFees = managementFeesAmount;\r\n financeData.total = finalAmount;\r\n financeData.firstPay = firstPayPrice;\r\n financeData.lastPay = lastPayPrice;\r\n financeData.monthPay = mounthBrach;\r\n\r\n //////console.log('financeData', financeData);\r\n\r\n setApproximateResult(financeData);\r\n }\r\n }\r\n } catch (error) {\r\n\r\n ////console.log(\"error:\", error.messages);\r\n\r\n }\r\n\r\n }\r\n\r\n // to remove the unneeded props\r\n const removeUnspecificError = (errorList, values = []) => {\r\n let errorResult = {};\r\n if (values?.length > 0) {\r\n const lowerValues = values.map(item => {\r\n return item.toLowerCase()\r\n });\r\n Object.assign(errorResult, errorList);\r\n if (errorList) {\r\n for (let index = 0; index < Object.keys(errorList).length; index++) {\r\n const key = Object.keys(errorList)[index];\r\n if (includes(lowerValues, key.toLowerCase())) {\r\n delete errorResult[key];\r\n } else {\r\n continue;\r\n }\r\n }\r\n }\r\n }\r\n return errorResult;\r\n };\r\n\r\n\r\n useEffect(async () => {\r\n\r\n var page = \"finance\"\r\n\r\n const response = await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"SiteFetchSeoPages\",\r\n \"Values\": {\r\n \"page\": page\r\n }\r\n }\r\n );\r\n if (response.status == 200) {\r\n\r\n var resdata = response.data[0];\r\n\r\n setSeoPageInfo(resdata);\r\n\r\n\r\n }\r\n }, []);\r\n return (\r\n \r\n\r\n {\r\n seoPageInfo &&\r\n\r\n \r\n\r\n \r\n {\r\n seoPageInfo?.title &&\r\n {seoPageInfo?.title}\r\n }\r\n {\r\n seoPageInfo?.link &&\r\n \r\n\r\n }\r\n {\r\n seoPageInfo?.MetaDescription &&\r\n \r\n }\r\n {\r\n seoPageInfo?.MetaGroups &&\r\n \r\n }\r\n\r\n \r\n\r\n\r\n }\r\n \r\n {/* {banner.map(BN => {\r\n\r\n if (lang === \"en\") {\r\n return ();\r\n } else {\r\n return ();\r\n }\r\n })} */}\r\n\r\n
    \r\n \r\n {\r\n\r\n //////console.log(\"Banks>>>>>>>>>>>>>:\", Banks);\r\n setBanks(Banks);\r\n }}\r\n\r\n selectionBank={selectionBank}\r\n onBankSelected={\r\n (activeBank, thisActiveMenu) => {\r\n handleFilterByBank(activeBank);\r\n }}\r\n onActiveMenu={\r\n (index) => {\r\n setActiveMenu(index);\r\n // setCarFilter(null);\r\n filterCars([], null);\r\n }}\r\n onSelectedProduct={\r\n (value, thisActiveMenu, thiscarBrandFilter) => {\r\n //console.log(\"onSelectedProduct>>>>>>>>>>>>>:\", value);\r\n handleFilterByActiveMenu(value, thisActiveMenu, thiscarBrandFilter);\r\n\r\n }\r\n }\r\n onBudgetChange={\r\n (value, thisActiveMenu, thiscarBrandFilter) => {\r\n //console.log(\"onBudgetChange>>>>>>>>>>>>>:\", value);\r\n handleFilterByActiveMenu(value, thisActiveMenu, thiscarBrandFilter);\r\n\r\n }\r\n }\r\n onQuantitySearchClick={(value, thisActiveMenu, thiscarBrandFilter) => {\r\n //console.log(\"onQuantitySearchClick>>>>>>>>>>>>>:\", value);\r\n handleFilterByActiveMenu(value, thisActiveMenu, thiscarBrandFilter);\r\n\r\n }}\r\n\r\n onsetDefaultperiod={(value) => {\r\n\r\n\r\n\r\n var dp = 24;\r\n if (value < 36) {\r\n dp = 24;\r\n } else if (value < 48) {\r\n dp = 36;\r\n\r\n } else if (value < 60) {\r\n\r\n dp = 48;\r\n } else if (value >= 60) {\r\n\r\n dp = 60;\r\n }\r\n //////console.log(\"MMMMMMMMMMMMMMMMMMMMMMM:>>>\", dp);\r\n const val = { ...requestForm };\r\n val.period = dp;\r\n setRequestForm(val);\r\n setDefaultperiod(dp);\r\n\r\n }}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n filterCars(filteredCars, trans(\"finance:brand_lexus\"))} />\r\n filterCars(filteredCars, trans(\"finance:brand_toyota\"))} />\r\n filterCars(filteredCars, null)} />\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n {\r\n isLoadingVehicles == true ?\r\n\r\n <>\r\n \r\n\r\n \r\n\r\n :\r\n\r\n (
    \r\n {\r\n filteredCarsByBrand?.map((car, index) => {\r\n return (\r\n handleOnApplay(car, selectionBank)}\r\n offerID={car.id}\r\n groupColor={car.colorGroupID}\r\n modelType={car.modelTypeID}\r\n productID={car.productID}\r\n brand={car.brandTitle}\r\n brandImage={car.brandImage}\r\n brandIcon={car.brandIcon}\r\n image={car.productImage}\r\n name={car.modelTypeTitle}\r\n model={car.model}\r\n group={car.groupTitle}\r\n price={car?.finalFinaniceTotal ? car.finalFinaniceTotal : car?.price}\r\n hasOffer={true}\r\n brandID={car.brandID}\r\n showPric={car?.showPric}\r\n colorName={car?.colorName}\r\n />\r\n )\r\n })\r\n\r\n }\r\n\r\n
    \r\n )\r\n }\r\n\r\n\r\n
    \r\n\r\n
    \r\n\r\n \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \"toyota\"\r\n
    \r\n
    \r\n
    \r\n\r\n \r\n\r\n
    \r\n {(true\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n

    {carInfo.name}

    \r\n
    \r\n
    \r\n

    {trans(\"finance:group\")}

    \r\n

    {carInfo?.group}

    \r\n
    \r\n
    \r\n

    {trans(\"info:vehicle_year\")}

    \r\n

    {carInfo?.model}

    \r\n
    \r\n
    \r\n {\r\n carInfo?.showPric &&\r\n <>\r\n

    {trans(\"finance:price\")}

    \r\n

    \r\n \r\n }\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {\r\n carInfo?.showPric &&\r\n
    \r\n
    \r\n

    {trans(\"finance:period\")}

    \r\n

    {approximateResult?.period}

    \r\n
    \r\n
    \r\n

    {trans(\"finance:management_fees\")}

    \r\n

    \r\n
    \r\n
    \r\n

    {trans(\"finance:monthPayment\")}

    \r\n

    \r\n
    \r\n
    \r\n

    {trans(\"finance:advance_payment\")}

    \r\n

    \r\n
    \r\n
    \r\n

    {trans(\"finance:lastPayment\")}

    \r\n

    \r\n
    \r\n
    \r\n

    {trans(\"finance:final_price\")}

    \r\n

    \r\n
    \r\n
    \r\n\r\n }\r\n\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    {trans(\"finance:cust_type\")}:\r\n
    \r\n
    \r\n {\r\n return { text: item[`${trans(\"model:description\")}`], value: item.CustGroupCollectingID }\r\n })]}\r\n onSelect={handleCustType}\r\n\r\n selectedValue={requestForm?.custType}\r\n />\r\n
    \r\n
    \r\n <>\r\n {\r\n\r\n (identityType && identityType == 1) ?\r\n
    \r\n
    {trans(identityType == 1 ? \"form:identity-no\" : \"finance:cn\")}:\r\n
    \r\n
    \r\n {\r\n const val = { ...requestForm };\r\n val.identityNo = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n />\r\n
    \r\n
    \r\n : (identityType && identityType == 2) ?\r\n
    \r\n
    {trans(identityType == 1 ? \"form:identity-no\" : \"finance:cn\")}:\r\n
    \r\n
    \r\n {\r\n const val = { ...requestForm };\r\n val.cn = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n />\r\n
    \r\n
    \r\n : null\r\n\r\n\r\n }\r\n\r\n \r\n
    \r\n
    {trans(\"form:name\")}:\r\n
    \r\n
    \r\n {\r\n const val = { ...requestForm };\r\n val.fullNameAr = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n />\r\n\r\n
    \r\n
    \r\n {/* {\r\n const val = { ...requestForm };\r\n val.fullNameEn = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n /> */}\r\n\r\n
    \r\n
    {trans(\"form:phone\") + '*'}:\r\n
    \r\n
    \r\n {\r\n const val = { ...requestForm };\r\n val.phoneNumber = `+${countryCode}${phoneNumber}`;\r\n setRequestForm(val);\r\n }}\r\n />\r\n
    \r\n
    \r\n\r\n
    \r\n
    {trans(\"form:email\") + '*'}:\r\n
    \r\n
    \r\n {\r\n const val = { ...requestForm };\r\n val.email = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n />\r\n\r\n
    \r\n
    \r\n \r\n\r\n \r\n\r\n
    \r\n
    {trans(\"finance:bank_name\")}:\r\n
    \r\n
    \r\n {\r\n return { text: lang == \"ar\" ? (item.nameAr ? item.nameAr : item.DescriptionAr) : (item.nameEn ? item.nameEn : item.DescriptionEn), value: item.GUID }\r\n })]}\r\n\r\n onSelect={(option) => {\r\n const val = { ...requestForm };\r\n val.bankID = option;\r\n setRequestForm(val);\r\n }}\r\n selectedValue={requestForm?.bankID ? requestForm?.bankID : selectionBank.GUID}\r\n />\r\n
    \r\n
    \r\n\r\n
    \r\n
    {trans(\"finance:net_income\") + '*'}:\r\n
    \r\n
    \r\n {\r\n const val = { ...requestForm };\r\n val.income = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n />\r\n
    \r\n
    \r\n\r\n {/* {\r\n const val = { ...requestForm };\r\n val.period = e.target.value;\r\n setRequestForm(val);\r\n reCountFinanceSettings(carInfo, selectionBank, val.period);\r\n }}\r\n /> */}\r\n\r\n\r\n
    \r\n
    {trans(\"finance:finance_period\") + \" (\" + trans(\"finance:byMonth\") + \" )\" + '*'}:\r\n
    \r\n
    \r\n {\r\n const val = { ...requestForm };\r\n val.period = option;\r\n setRequestForm(val);\r\n reCountFinanceSettings(carInfo, selectionBank, val.period);\r\n }}\r\n selectedValue={requestForm.period}\r\n />\r\n
    \r\n
    \r\n\r\n
    \r\n
    {trans(\"finance:advance_payment\")}:\r\n
    \r\n
    \r\n {\r\n\r\n // if (e?.target?.value >= minFirstPayPrice) {\r\n\r\n const val = { ...requestForm };\r\n val.advancedPayment = e.target.value;\r\n setRequestForm(val);\r\n\r\n\r\n // }\r\n\r\n }}\r\n\r\n onLeave={(e) => {\r\n if (e?.target?.value >= minFirstPayPrice) {\r\n\r\n reCountFinanceSettings(carInfo, selectionBank, requestForm.period, e.target.value);\r\n\r\n } else {\r\n\r\n const val = { ...requestForm };\r\n val.advancedPayment = minFirstPayPrice;\r\n setRequestForm(val);\r\n reCountFinanceSettings(carInfo, selectionBank, requestForm.period, minFirstPayPrice);\r\n }\r\n\r\n }}\r\n />\r\n
    \r\n
    \r\n {/* {\r\n\r\n colors && {\r\n const val = { ...requestForm };\r\n val.colorID = option;\r\n setRequestForm(val);\r\n }}\r\n />\r\n } */}\r\n {\r\n const val = { ...requestForm };\r\n val.note = e;\r\n setRequestForm(val);\r\n }}\r\n row={3}\r\n />\r\n\r\n \r\n
    \r\n
    \r\n {/*
    {\r\n\r\n // handleCalculate\r\n reCountFinanceSettings(carInfo, selectionBank, requestForm?.period);\r\n }\r\n\r\n\r\n }\r\n >\r\n {trans(\"finance:calculate\")}\r\n
    */}\r\n \r\n {trans(\"finance:apply\")}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n );\r\n}","import { Fragment } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nconst BrandImage = ({brand})=>{\r\nconst {t:trans} = useTranslation([\"finance\"]); \r\nconst isLexus = (brand == trans(\"finance:brand_lexus\").toLowerCase());\r\nreturn( \r\n \r\n
    \r\n
    \r\n \"toyota\"\r\n

    {(isLexus ? trans(\"finance:brand_lexus\") : trans(\"finance:brand_toyota\"))}

    \r\n
    \r\n
    \r\n
    \r\n \"\"/\r\n
    \r\n
    \r\n);\r\n};\r\nexport default BrandImage;","import {Fragment , useEffect,useState} from \"react\";\r\nimport SwiperCore, {Pagination, Navigation, Autoplay, EffectFade} from \"swiper\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport {useLocation} from \"react-router\";\r\nimport Banner from \"../../components/banner\";\r\nimport {DropDownInput} from \"../../components/_input/_dropdown\";\r\nimport Breadcrumb from \"../../components/__simple/breadcrumb\";\r\nimport {Link} from \"react-router-dom\";\r\nimport axios from \"axios\";\r\nimport config from '../../configuration/config.json';\r\nimport BrandImage from \"../../components/brandImage\";\r\n\r\nSwiperCore.use([Pagination, Navigation, Autoplay, EffectFade]);\r\n\r\nexport function FinanceDetailPage() {\r\n const {t: trans} = useTranslation([\"heading\",\"finance\",\"common\",\"inputs\"]);\r\n const location = useLocation();\r\n const query = new URLSearchParams(location.search);\r\n const [financeDetails,setFinanceDetails] = useState({});\r\n const [branches,setBranches] = useState([]);\r\n useEffect(()=>{\r\n try{\r\n initialBranches();\r\n const financeId = query.toString().split('_')[1];\r\n axios.post(\r\n config.baseURL + \"details\",\r\n {\r\n \"Object\":\"siteCarsFinanceView\",\r\n \"ObjectSettings\":{\r\n \"MetaData\":false\r\n },\r\n \"Filters\":`where BankTermID = '${financeId}'`\r\n }\r\n ).then(response=>{\r\n const fullResult = response.data.ApiObjectData;\r\n if(fullResult.length > 0){\r\n const result = fullResult[0];\r\n const showData = {\r\n id:result.BankTermID,bankId:result.BankID,firstPayment:result.FirstPayment,monthsCount:result.MonthsNumber,model:result.ModelRange,\r\n monthsQuantity:result.MonthlyQuantity,groupId:result.GroupID,groupDescription:result[`${trans(\"finance:groupDescription\")}`],\r\n brandDescription:result[`${trans(\"finance:brandDescription\")}`],image:result.GroupImage,offerId:result.OfferID,rate:result.ManagmentFees\r\n };\r\n setFinanceDetails(showData);\r\n }\r\n });\r\n }catch(error){\r\n console.log(error);\r\n }\r\n },[]);\r\n\r\n\r\n const initialBranches = ()=>{\r\n axios.post(\r\n config.baseURL + \"details\",\r\n {\r\n \"Object\":\"InvSites\",\r\n \"ObjectSettings\":{\r\n \"MetaData\":false\r\n },\r\n \"Option\":\"Column\",\r\n \"Fields\":\"SiteID,DescriptionAr,DescriptionEn\"\r\n }\r\n ).then(response=>{\r\n const result = response.data.ApiObjectData;\r\n const customizedResult = result.map(e=>{\r\n return {\r\n value:e.SiteID , text:e[`${trans(\"model:description\")}`]\r\n }\r\n });\r\n setBranches(customizedResult);\r\n }).catch(error=>{ \r\n console.log(error);\r\n });\r\n };\r\n \r\n const getFullPrice = ()=>{\r\n let total = (financeDetails?.firstPayment + (financeDetails?.monthsQuantity * financeDetails?.monthsCount));\r\n if(financeDetails.rate){\r\n const totalAfterRate = total * (financeDetails?.rate / 100);\r\n total+=totalAfterRate;\r\n }\r\n return total;\r\n };\r\n\r\n return (\r\n \r\n\r\n \r\n\r\n
    \r\n \r\n\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n

    {financeDetails?.groupDescription}

    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    الدفعة الأولى

    \r\n

    {financeDetails?.firstPayment +' ' + trans(\"common:rial\")}

    \r\n
    \r\n
    \r\n

    القسط الشهري

    \r\n

    {financeDetails?.monthsQuantity + ' ' + trans(\"common:rial\")}

    \r\n
    \r\n
    \r\n

    مدة التمويل

    \r\n

    {financeDetails?.monthsCount + ' ' + trans(\"finance:month\")}

    \r\n
    \r\n
    \r\n\r\n\r\n \r\n
    \r\n
    \r\n
    \r\n

    حساب الاقساط

    \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    السعر (غير شامل الضريبة)\r\n {\r\n getFullPrice()\r\n } {trans(\"common:rial\")}\r\n
    الدفعة الأولى{financeDetails?.firstPayment +' '} {trans(\"common:rial\")}
    القسط الشهري {financeDetails?.monthsQuantity + ' ' } {trans(\"common:rial\")}
    رسوم إدارية{financeDetails.rate ? (financeDetails.rate + '%') :'لايوجد'}
    عدد الأشهر{financeDetails?.monthsCount + ' ' + trans(\"finance:month\")}
    \r\n تقدم طلب تمويل\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n );\r\n}","import { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport SwiperCore, { Autoplay, EffectFade, Navigation, Pagination } from \"swiper\";\r\nSwiperCore.use([Pagination, Navigation, Autoplay, EffectFade]);\r\n\r\nexport default function AwardsSection({ awards }) {\r\n if (awards == null)\r\n return null;\r\n\r\n return (\r\n
    \r\n\r\n \r\n {\r\n awards.map((award) => {\r\n return (\r\n \r\n
    \r\n

    {award.title}

    \r\n

    {award.description}

    \r\n {\"\"}\r\n
    \r\n
    \r\n );\r\n })\r\n }\r\n\r\n \r\n\r\n {/*
    \r\n\r\n {\r\n awards.map((award) => {\r\n return (\r\n {award.title}\r\n );\r\n })\r\n }\r\n
    */}\r\n
    \r\n );\r\n}","export default function VisionsSection({ visions }) {\r\n if (visions == null)\r\n return null;\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const languageDir = 'language-' + lang;\r\n return (\r\n
    \r\n\r\n {\r\n visions.map((vision) => {\r\n return (\r\n
    \r\n

    {vision.name}

    \r\n

    {vision.content}

    \r\n
    \r\n );\r\n })\r\n }\r\n
    \r\n );\r\n}","import { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport SwiperCore, { Autoplay, EffectFade, Navigation, Pagination } from \"swiper\";\r\nSwiperCore.use([Pagination, Navigation, Autoplay, EffectFade]);\r\n\r\nexport default function CounterSection({ about }) {\r\n if (about?.counter3 == null)\r\n return null;\r\n\r\n return (\r\n\r\n
    \r\n
    \r\n

    {about?.title}

    \r\n

    \r\n {about?.desc}\r\n

    \r\n
    \r\n
    \r\n\r\n
    \r\n

    {Intl.NumberFormat().format(about?.counter1)}{\"+\"}

    \r\n {about?.counterTitle1}\r\n
    \r\n
    \r\n

    {Intl.NumberFormat().format(about?.counter2)}{\"+\"}

    \r\n {about?.counterTitle2}\r\n
    \r\n
    \r\n

    {Intl.NumberFormat().format(about?.counter3)}{\"+\"}

    \r\n {about?.counterTitle3}\r\n
    \r\n
    \r\n\r\n
    \r\n );\r\n}","import { Fragment, useEffect, useState } from \"react\";\r\nimport SwiperCore, { Pagination, Navigation, Autoplay, EffectFade } from \"swiper\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport Banner from \"../../components/banner\";\r\nimport { WhyHJSection } from \"../../sections/whyHJSection\";\r\nimport { TestimonialSection } from \"../../sections/testimonialSection\";\r\nimport Breadcrumb from \"../../components/__simple/breadcrumb\";\r\nimport axios from \"axios\";\r\nimport AwardsSection from \"./components/about-awards\";\r\nimport VisionsSection from \"./components/about-visions\";\r\nimport CounterSection from \"./components/about-counter\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport config from '../../configuration/config.json';\r\n\r\nSwiperCore.use([Pagination, Navigation, Autoplay, EffectFade]);\r\n\r\nexport function AboutPage() {\r\n const { t: trans } = useTranslation([\"common\", \"about\"]);\r\n\r\n const [banner, setBanner] = useState({});\r\n const [awards, setAwards] = useState([]);\r\n const [visions, setVisions] = useState([]);\r\n const [about, setAbout] = useState({});\r\n\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const languageDir = 'language-' + lang;\r\n useEffect(async () => {\r\n try {\r\n\r\n const response = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/About/index\",\r\n method: \"get\",\r\n });\r\n\r\n setBanner(response.data.banner)\r\n setVisions(response.data.visions)\r\n setAwards(response.data.awards)\r\n setAbout(response.data.about)\r\n\r\n } catch (error) {\r\n\r\n }\r\n }, [])\r\n\r\n\r\n const [seoPageInfo, setSeoPageInfo] = useState({});\r\n useEffect(async () => {\r\n\r\n var page = \"about us\"\r\n\r\n\r\n const response = await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"SiteFetchSeoPages\",\r\n \"Values\": {\r\n \"page\": page\r\n }\r\n }\r\n );\r\n if (response.status == 200) {\r\n\r\n var resdata = response.data[0];\r\n\r\n setSeoPageInfo(resdata);\r\n\r\n\r\n }\r\n }, []);\r\n\r\n return (\r\n \r\n\r\n {\r\n seoPageInfo &&\r\n\r\n \r\n\r\n \r\n {\r\n seoPageInfo?.title &&\r\n {seoPageInfo?.title}\r\n }\r\n {\r\n seoPageInfo?.link &&\r\n \r\n\r\n }\r\n {\r\n seoPageInfo?.MetaDescription &&\r\n \r\n }\r\n {\r\n seoPageInfo?.MetaGroups &&\r\n \r\n }\r\n\r\n \r\n\r\n\r\n }\r\n \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n\r\n\r\n \r\n\r\n\r\n\r\n \r\n\r\n {/*
    */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/*
    */}\r\n\r\n\r\n \r\n\r\n {\r\n about?.bannerPath ?\r\n
    \r\n \"hassan\r\n
    \r\n : null\r\n }\r\n\r\n \r\n\r\n \r\n\r\n
    \r\n\r\n
    \r\n

    {about?.lastTitle}

    \r\n
    \r\n {\r\n about?.lastDesc\r\n }\r\n
    \r\n\r\n {trans(\"common:contact-us\")}\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n );\r\n}","import { useRef, useState } from \"react\";\r\nimport ContactTile from \"./contactTile\";\r\n\r\nexport default function ContactList({ branch, contacts, onGeo }) {\r\n const height = useRef(null);\r\n const [divHeight, setHeight] = useState(0);\r\n\r\n function showData() {\r\n onGeo(branch)\r\n setHeight(divHeight <= 0 ? height.current.scrollHeight : 0);\r\n }\r\n\r\n return (\r\n
    \r\n\r\n
    \r\n
    {branch.content}
    \r\n\r\n 0 && \"rotate-180\")}\r\n src={\"/assets/icons/arrow.svg\"} alt={\"show\"} />\r\n
    \r\n
    \r\n
    \r\n\r\n {\r\n contacts?.map((contact, index) => {\r\n return (\r\n \r\n );\r\n })\r\n }\r\n
    \r\n
    \r\n
    \r\n );\r\n}","import { Map } from \"./map\";\r\nimport ContactList from \"./contactList\";\r\nimport { useEffect, useState } from 'react';\r\n\r\nexport function MapBanner({ branches, contacts, activebranche }) {\r\n\r\n const [geoLocation, setGeoLocation] = useState({\r\n location: {\r\n name: '',\r\n content: '',\r\n latitude: '',\r\n longitude: ''\r\n }\r\n });\r\n\r\n function handleChangeLocation(geo) {\r\n const { latitude, longitude, content, name } = geo;\r\n const newLocation = { ...geoLocation };\r\n newLocation.location.latitude = latitude;\r\n newLocation.location.longitude = longitude;\r\n newLocation.location.content = content;\r\n newLocation.location.name = name;\r\n setGeoLocation(newLocation);\r\n }\r\n\r\n useEffect(() => {\r\n try {\r\n console.log('length', branches.length);\r\n if (branches.length > 0)\r\n handleChangeLocation(branches[0]);\r\n } catch (err) {\r\n }\r\n }, [branches]);\r\n\r\n useEffect(() => {\r\n if (activebranche) {\r\n handleChangeLocation(activebranche);\r\n }\r\n }, [activebranche]);\r\n\r\n\r\n\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n {\r\n branches?.map((branch, index) => {\r\n return (\r\n handleChangeLocation(e)}\r\n branch={branch}\r\n contacts={contacts.filter((contact) => contact.branchId == branch.name)}\r\n />\r\n );\r\n })\r\n }\r\n
    \r\n
    \r\n )\r\n\r\n}\r\n\r\n","import { MapBanner } from \"./components/mapBanner\";\r\nimport PageHeading from \"../../components/__simple/_pageheading\";\r\nimport { Fragment, useEffect, useState } from \"react\";\r\nimport ContactTile from \"./components/contactTile\";\r\nimport { InputField } from \"../../components/_input/_input\";\r\nimport { TextArea } from \"../../components/_input/_textArea\";\r\nimport { FormButton } from \"../../components/_input/_button\";\r\nimport Breadcrumb from \"../../components/__simple/breadcrumb\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useLocation } from \"react-router\";\r\nimport { changeHeader, changeIcons } from \"../../_redux/slices/navSlice\";\r\nimport axios from \"axios\";\r\nimport { FilterButton } from \"../../components/__simple/_filterButton\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport Joi from \"joi\";\r\nimport { GetMessages, formValidate, validateProperty } from '../../utils/validation';\r\nimport config from '../../configuration/config.json';\r\nimport PhoneDropDown from \"../../components/_input/_phoneDropDown\";\r\nimport { toast } from \"react-toastify\";\r\nimport { DropDownInput } from \"../../components/_input/_dropdown\";\r\nimport { Helmet } from \"react-helmet\";\r\nexport function ContactPage() {\r\n const { t: trans } = useTranslation([\"common\", \"form\", \"messages\", \"inputs\"]);\r\n const location = useLocation();\r\n const query = new URLSearchParams(location.search);\r\n const [paramSubject, setParamSubject] = useState(query.get(\"subject\") ?? null);\r\n\r\n const dispatch = useDispatch();\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const languageDir = 'language-' + lang;\r\n const [page, setPage] = useState({});\r\n const [branches, setBranches] = useState([]);\r\n const [contacts, setContacts] = useState([]);\r\n const [subjects, setSubjects] = useState([]);\r\n const [selectedBranch, setSelectedBranch] = useState(null);\r\n const [message, setMessage] = useState({\r\n fullName: '',\r\n phone: '',\r\n email: '',\r\n subject: paramSubject,\r\n messageContent: ''\r\n });\r\n\r\n const schema = Joi.object({\r\n fullName: Joi.string().required().messages(GetMessages()),\r\n phone: Joi.string().min(12).required().messages(GetMessages()),\r\n email: Joi.string().email({ minDomainSegments: 2, tlds: { allow: false } }).required().messages(GetMessages()),\r\n subject: Joi.string().required().messages(GetMessages()),\r\n messageContent: Joi.string().required().messages(GetMessages())\r\n });\r\n\r\n const [error, setError] = useState({});\r\n\r\n const submitRequest = async (e) => {\r\n e.preventDefault();\r\n const result = formValidate(schema, message) ?? {};\r\n setError(result);\r\n try {\r\n if (Object.keys(result).length === 0) {\r\n console.log(Object.keys(error).length);\r\n const response = await axios.post(\r\n config.baseURL + 'add',\r\n {\r\n \"object\": \"siteContactMessages\",\r\n \"values\": {\r\n \"name\": message.fullName,\r\n \"email\": message.email,\r\n \"phoneNumber\": message.phone,\r\n \"subject\": Number(message.subject),\r\n \"message\": message.messageContent,\r\n }\r\n }\r\n );\r\n if (response.status === 200 || response.status === 201) {\r\n const defaultValue = { ...message };\r\n setMessage({\r\n fullName: '',\r\n phone: defaultValue.phone,\r\n email: '',\r\n subject: '',\r\n messageContent: ''\r\n });\r\n setError({});\r\n toast.success(trans(\"messages:message_sent_successfully\"));\r\n }\r\n }\r\n } catch (e) {\r\n\r\n }\r\n\r\n }\r\n useEffect(async () => {\r\n\r\n try {\r\n\r\n const response = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/contact/contact/\",\r\n method: \"get\",\r\n });\r\n\r\n setPage(response.data.page);\r\n setBranches(response.data.branches);\r\n setContacts(response.data.contacts);\r\n setSubjects(response.data.subjects.map(item => { return { text: item.description, value: item.id } }));\r\n\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n dispatch(\r\n changeIcons({ iconsBlack: true })\r\n )\r\n return () => {\r\n dispatch(\r\n changeIcons({ iconsBlack: false })\r\n )\r\n }\r\n }, []\r\n );\r\n useEffect(() => {\r\n if (branches.length > 0)\r\n setSelectedBranch(branches[0].name)\r\n }, []);\r\n\r\n\r\n const [seoPageInfo, setSeoPageInfo] = useState({});\r\n useEffect(async () => {\r\n\r\n var page = \"contact\"\r\n\r\n\r\n const response = await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"SiteFetchSeoPages\",\r\n \"Values\": {\r\n \"page\": page\r\n }\r\n }\r\n );\r\n if (response.status == 200) {\r\n\r\n var resdata = response.data[0];\r\n\r\n setSeoPageInfo(resdata);\r\n\r\n\r\n }\r\n }, []);\r\n return (\r\n\r\n\r\n {\r\n seoPageInfo &&\r\n\r\n \r\n\r\n \r\n {\r\n seoPageInfo?.title &&\r\n {seoPageInfo?.title}\r\n }\r\n {\r\n seoPageInfo?.link &&\r\n \r\n\r\n }\r\n {\r\n seoPageInfo?.MetaDescription &&\r\n \r\n }\r\n {\r\n seoPageInfo?.MetaGroups &&\r\n \r\n }\r\n\r\n \r\n\r\n\r\n }\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n \r\n\r\n
    \r\n
    \r\n {\r\n branches?.map((branch, index) => {\r\n return (\r\n setSelectedBranch(branch)}\r\n />\r\n );\r\n })\r\n }\r\n
    \r\n\r\n
    \r\n {\r\n contacts?.map((contact, index) => {\r\n if (contact.branchId == selectedBranch?.name)\r\n return (\r\n \r\n );\r\n })\r\n }\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n {\r\n submitRequest(e);\r\n }\r\n }\r\n\r\n >\r\n {\r\n const val = { ...message };\r\n val.fullName = e.target.value;\r\n setMessage(val);\r\n }\r\n }\r\n />\r\n {\r\n const val = { ...message };\r\n val.phone = `+${countryCode}${phoneNumber}`;\r\n setMessage(val);\r\n }}\r\n />\r\n {\r\n const val = { ...message };\r\n val.email = e.target.value;\r\n setMessage(val);\r\n }\r\n }\r\n />\r\n {\r\n const val = { ...message };\r\n val.subject = String(e);\r\n setMessage(val);\r\n }}\r\n\r\n selectedValue={message.subject}\r\n name='subject'\r\n className={\"flex-grow-1\"}\r\n defaultOption={ { text: trans(\"form:subject\"), value: \"0\" }}\r\n options={[...subjects]}\r\n errorLabel={error?.subject}\r\n />\r\n {\r\n console.log(e);\r\n const val = { ...message };\r\n val.messageContent = e;\r\n setMessage(val);\r\n }\r\n }\r\n row={3}\r\n\r\n />\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n )\r\n}\r\n\r\n","import {useEffect} from 'react';\r\nimport {withRouter} from 'react-router-dom';\r\n\r\nfunction ScrollToTop({history}) {\r\n useEffect(() => {\r\n const unlisten = history.listen(() => {\r\n window.scrollTo(0, 0);\r\n });\r\n return () => {\r\n unlisten();\r\n }\r\n }, []);\r\n\r\n return (null);\r\n}\r\n\r\nexport default withRouter(ScrollToTop);","import {configureStore, combineReducers} from '@reduxjs/toolkit'\r\n\r\nimport navReducer from './slices/navSlice';\r\nimport cartReducer from './slices/cartSlice';\r\n\r\n\r\nconst entitiesReducer = combineReducers({\r\n\r\n nav: navReducer,\r\n cart: cartReducer,\r\n\r\n});\r\n\r\nconst reducers = combineReducers({\r\n entities: entitiesReducer,\r\n});\r\n\r\n\r\nexport default configureStore({\r\n reducer: reducers,\r\n\r\n},)","import { useTranslation } from 'react-i18next';\r\nimport { useHistory, useRouteMatch } from 'react-router';\r\nimport { Price } from \"../../../components/__simple/_price\";\r\nexport const ServiceOrderButton = ({ title = '', onClick }) => {\r\n return (\r\n {\r\n if (onClick) {\r\n onClick(true);\r\n }\r\n }}\r\n >\r\n
    \r\n {title}\r\n
    \r\n \r\n );\r\n};\r\nexport const MaintenanceServiceBox = ({ serviceID = '', title = '', to = '', minPrice = 0, maxPrice = 0, image, onServiceOrder }) => {\r\n const history = useHistory();\r\n const { t: trans } = useTranslation(\"info\");\r\n return (\r\n {\r\n\r\n if (to == \"#\") {\r\n\r\n event.stopPropagation();\r\n if (onServiceOrder) {\r\n onServiceOrder(serviceID);\r\n }\r\n } else {\r\n history.push(to);\r\n\r\n }\r\n\r\n }\r\n }\r\n >\r\n
    \r\n {/*
    \r\n

    {title}

    \r\n
    */}\r\n {/*
    \r\n
    {\r\n event.stopPropagation();\r\n if (onServiceOrder) {\r\n onServiceOrder(serviceID);\r\n }\r\n }} className=\"nice-bg-btn-border bg-primary text-white text-14\">\r\n {trans(\"info:order-service\")}\r\n
    \r\n
    */}\r\n {\r\n event.stopPropagation();\r\n if (onServiceOrder) {\r\n onServiceOrder(serviceID);\r\n }\r\n }}\r\n\r\n className=\"mainteance-box-details nice-flex nice-flex-column p-4\">\r\n

    {title}

    \r\n \r\n
    \r\n \r\n \r\n\r\n );\r\n};","import { useEffect, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport config from '../../../configuration/config.json';\r\nimport Banner from \"../../../components/banner\";\r\nimport axios from \"axios\";\r\nconst ServiceHeaderBanner = ({ defaultBanner = 5, bannerDescriptor = null, to = '', hasRedirect = false }) => {\r\n const { t: trans, i18n } = useTranslation(['info']);\r\n const [banner, setBanner] = useState([]);\r\n let lang = localStorage.getItem('i18nextLng');\r\n const requsetBanner = async () => {\r\n let result = [];\r\n\r\n const response = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/Maintenance/Banner\",\r\n method: \"get\",\r\n });\r\n\r\n console.log('response.data.banner:', response.data.banner);\r\n result = response.data.banner;\r\n\r\n return result;\r\n };\r\n useEffect(async () => {\r\n let bannerObject;\r\n try {\r\n if (bannerDescriptor) {\r\n bannerObject = (\r\n );\r\n } else {\r\n const banner = await requsetBanner();\r\n bannerObject = ;\r\n\r\n\r\n }\r\n setBanner(bannerObject);\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }, []);\r\n return (\r\n <>\r\n {banner}\r\n \r\n );\r\n};\r\n\r\nexport default ServiceHeaderBanner;","import React from 'react';\r\nconst MaintenanceContext = React.createContext();\r\nMaintenanceContext.displayName = 'maintenanceContext';\r\nexport default MaintenanceContext;\r\n","import { Fragment, useEffect, useRef, useState, useContext } from \"react\"; import ErrorLabel from '../../components/error';\r\nimport { InputField } from \"../_input/_input\"\r\nimport { useTranslation } from \"react-i18next\";\r\nexport function DropDownInput2({\r\n styles,\r\n title,\r\n placeholder,\r\n disabled = false,\r\n className,\r\n classDropdownField,\r\n fieldTextClass,\r\n isSecondary,\r\n selectedValue = null,\r\n inputName,\r\n options = null,\r\n onSelect,\r\n defaultOption = null,\r\n currentOption = null,\r\n onfilter,\r\n isepart,\r\n errorLabel,\r\n force = false\r\n}) {\r\n\r\n const { t: trans, i18n } = useTranslation([\"mobileInputs\"]);\r\n const optionsRef = useRef(null);\r\n const [isOpen, setIsOpen] = useState(false);\r\n const [selectedOption, setSelectedOption] = useState((defaultOption != null && defaultOption != undefined) ? defaultOption : { text: '', value: '' });\r\n const [filterOptions, setfilterOptions] = useState(options);\r\n const lang = i18n.language;\r\n const languageDir = \"language-\" + lang;\r\n useEffect(() => {\r\n setfilterOptions(options);\r\n\r\n }, [options]);\r\n\r\n useEffect(() => {\r\n\r\n function handleClickOutside(event) {\r\n if (optionsRef.current && !optionsRef.current.contains(event.target) && isOpen === true) {\r\n setIsOpen(false);\r\n }\r\n }\r\n // Bind the event listener\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => {\r\n // Unbind the event listener on clean up\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, [optionsRef, isOpen]);\r\n function selectOption(option) {\r\n\r\n if (selectedOption.value !== option.value) {\r\n if (onSelect) {\r\n const val = option.value !== '0' ? option.value : '';\r\n onSelect(val);\r\n }\r\n setIsOpen(false);\r\n setSelectedOption(option);\r\n if (onfilter)\r\n if (defaultOption?.value !== option.value)\r\n onfilter(option);\r\n } else {\r\n\r\n setIsOpen(false);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n\r\n // console.log(\"options>>>>>>>>>>>>>\",options);\r\n // console.log(\"selectedValue>>>>>>>>>>>>>\",selectedValue);\r\n if (selectedValue == null || selectedValue == undefined) {\r\n setSelectedOption((defaultOption != null && defaultOption != undefined) ? defaultOption : ((defaultOption != null && defaultOption != undefined) ? defaultOption : { text: '', value: '' }));\r\n } else {\r\n\r\n var vv = options.find(item => item?.value == selectedValue) ?? null;\r\n setSelectedOption(vv ? vv : { text: '', value: '' });\r\n }\r\n\r\n }, [selectedValue]);\r\n\r\n return (\r\n\r\n \r\n\r\n {\r\n inputName ? (\r\n \r\n ) : null\r\n }\r\n\r\n
    \r\n\r\n {\r\n title &&\r\n
    {title}\r\n
    \r\n }\r\n\r\n
    \r\n
    {\r\n setIsOpen(!isOpen);\r\n }}>\r\n
    \r\n\r\n \r\n {\r\n selectedOption.text\r\n }\r\n\r\n\r\n \r\n\r\n {\r\n\r\n selectedOption?.icon &&\r\n < img className={\"dropdown-field-icon \"} src={selectedOption?.icon} alt=\"\" />\r\n }\r\n
    \r\n
    \r\n \"arrow\"\r\n
    \r\n\r\n
    \r\n {\r\n !disabled &&
    \r\n\r\n {\r\n filterOptions && options && options.length > 10 &&\r\n < InputField\r\n extraClasses={\"\"}\r\n placeholder={trans(\"info:search_now\")}\r\n onChangeValue={(value) => {\r\n if (value.target.value) {\r\n const filterData = options?.filter(a => a.text.includes(value.target.value));\r\n setfilterOptions(filterData);\r\n } else {\r\n setfilterOptions(options);\r\n }\r\n\r\n }} />\r\n\r\n }\r\n\r\n
      \r\n {\r\n filterOptions?.map((option, index) => {\r\n\r\n return (\r\n
    • {\r\n selectOption(option);\r\n }}>\r\n {option.text}\r\n {\r\n\r\n option?.icon &&\r\n < img className={\"dropdown-field-icon \"} src={option?.icon} alt=\"\" />\r\n }\r\n
    • \r\n );\r\n\r\n }\r\n )\r\n }\r\n\r\n
    \r\n
    \r\n }\r\n\r\n\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n );\r\n}\r\n","import axios from \"axios\";\r\nimport {useContext, useEffect, useState} from \"react\"\r\nimport {useTranslation} from \"react-i18next\";\r\nimport {useRouteMatch,useParams} from \"react-router\";\r\nimport Breadcrumb from \"../../../components/__simple/breadcrumb\";\r\nimport PageHeading from \"../../../components/__simple/_pageheading\"\r\nimport {AboutHJSection} from \"../../../sections/aboutHJ\";\r\nimport {TestimonialSection} from \"../../../sections/testimonialSection\";\r\nimport {WhyHJSection} from \"../../../sections/whyHJSection\";\r\nimport {MaintenanceServiceBox, ServiceOrderButton} from \"../components/maintenance\";\r\nimport ServiceHeaderBanner from \"../components/serviceHeaderBanner\";\r\nimport MaintenanceContext from \"../maintenanceContext\";\r\nimport {DropDownInput2 as DropDownInput} from \"../../../components/_input/_dropdown2\";\r\n// import { DropDownInput } from \"../../../components/_input/_dropdown\";\r\nimport {Price} from \"../../../components/__simple/_price\";\r\nimport config from \"../../../configuration/config.json\";\r\nimport Offer from \"../../../components/offer\";\r\nimport {SwiperSlide, Swiper} from 'swiper/react';\r\nimport {Link} from \"react-router-dom\";\r\nimport {slugCombine} from '../../../utils/slugManager';\r\n\r\nconst MainServicePage = ({}) => {\r\n\r\n let {PGroupID,PYear,PSerciveID} = useParams();\r\n const [maintenanceInfo, setMaintenanceInfo] = useState({});\r\n\r\n const {t: trans, i18n} = useTranslation([\"info\", \"navbar\"]);\r\n const {handleServiceOrder} = useContext(MaintenanceContext);\r\n const {path} = useRouteMatch();\r\n const languageDir = 'language-' + i18n.language;\r\n const lang = i18n.language;\r\n const [MainService, setMainService] = useState([]);\r\n const [indexPanel, setIndexPanel] = useState(\"1000\");\r\n \r\n const [ServiceOptions, setServiceOptions] = useState([]);\r\n const [Service, setService] = useState([]);\r\n const [lodingService, setLodingService] = useState(false);\r\n const [settings, setSettings] = useState({\r\n brands: [],\r\n groups: [],\r\n\r\n models: [],\r\n productModels: []\r\n });\r\n const [filteredSettings, setFilteredSettings] = useState({\r\n brands: [],\r\n groups: [],\r\n models: [],\r\n productModels: []\r\n });\r\n const [firstByLink22, setFirstByLink22] = useState(true);\r\n useEffect(() => {\r\n\r\n if(PGroupID && PYear && PSerciveID && settings && settings?.groups?.length > 0 && firstByLink22 ==true){\r\n setFirstByLink22(false);\r\n // console.log(\">>>>>>>>>>>>>>>>>>>>>>>>>>>:\",PGroupID);\r\n // console.log(\">>>>>>>>>>>>>>>>>>>>>>>>>>>:\",PYear);\r\n // console.log(\">>>>>>>>>>>>>>>>>>>>>>>>>>>:\",PSerciveID);\r\n const ttGroup =settings?.groups?.filter(a => a.productGroupID == PGroupID);\r\n if(ttGroup && ttGroup?.length > 0){\r\n\r\n const PGroupData = ttGroup[0];\r\n\r\n setYear(PGroupData?.Year);\r\n\r\n const val = {...requestForm};\r\n val.year = PGroupData?.Year;\r\n setRequestForm(val);\r\n handelSelectBrand(PGroupData.brandID, PGroupData?.Year);\r\n \r\n }\r\n\r\n }\r\n\r\n }, [PGroupID,PYear,PSerciveID,settings])\r\n\r\n const [firstByLink, setFirstByLink] = useState(true);\r\n useEffect(() => {\r\n if(PGroupID && PYear && PSerciveID && settings && filteredSettings?.groups?.length > 0 && firstByLink ==true ){\r\n setFirstByLink(false);\r\n const ttGroup =settings?.groups?.filter(a => a.productGroupID == PGroupID);\r\n if(ttGroup && ttGroup?.length > 0){\r\n const PGroupData = ttGroup[0];\r\n handleFilteredModels(PGroupData.productGroupID);\r\n\r\n }\r\n\r\n }\r\n\r\n }, [filteredSettings,firstByLink])\r\n\r\n const [firstByLink33, setFirstByLink33] = useState(true);\r\n useEffect(() => {\r\n if(PGroupID && PYear && PSerciveID && settings && filteredSettings?.groups?.length > 0 && ServiceOptions?.length > 0 && firstByLink33 ==true ){\r\n setFirstByLink33(false);\r\n\r\n const val = {...requestForm};\r\n val.SerciveID = PSerciveID;\r\n setRequestForm(val);\r\n\r\n setSerciveID(null);\r\n //console.log(\"setSerciveID>>>>>>>>>>>>>>>>>>>>>>>:\", option.value);\r\n \r\n FetchPrice(modelCode, PSerciveID);\r\n setSerciveID(PSerciveID);\r\n\r\n handleServiceOrder({\r\n showPopup: true,\r\n type: \"sub2\",\r\n main: \"0a5e145a-bf3f-4a8e-aa7b-d8f0a1e0d9b0\",\r\n sub1: \"eb199b7e-55be-4ac8-b465-9a110b415ca8\",\r\n sub2: \"2b995873-d703-47d8-9f58-f1df7f1e3979\",\r\n ServiceID: PSerciveID,\r\n brand: brand,\r\n group: group,\r\n year: year,\r\n modelType: type,\r\n serviceOptions:Service\r\n\r\n });\r\n }\r\n\r\n }, [ServiceOptions])\r\n async function fetchMainService() {\r\n\r\n try {\r\n if (\"caches\" in window) {\r\n var curl = \"site_fetchMainService_Req\";\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"MainServicePage\");\r\n\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n curl\r\n );\r\n var datacash = await cachedResponse?.json();\r\n if (datacash && datacash?.length > 0) {\r\n setTimeout(() => {\r\n setMainService(datacash)\r\n }, 1000);\r\n\r\n }\r\n\r\n\r\n }\r\n } catch (error) {\r\n\r\n }\r\n const Body = {\r\n \"name\": \"site_fetchMainService\"\r\n }\r\n\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n //console.log(\"setMainService:\", response.data);\r\n setTimeout(() => {\r\n setMainService(response.data)\r\n }, 1000);\r\n\r\n\r\n const dataResponse = new Response(JSON.stringify(response.data));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"MainServicePage\").then((cache) => {\r\n cache.put(\"site_fetchMainService_Req\", dataResponse);\r\n\r\n });\r\n }\r\n\r\n\r\n })\r\n .catch(function (error) {\r\n //console.log(error);\r\n });\r\n\r\n\r\n }\r\n\r\n useEffect(async () => {\r\n\r\n try {\r\n\r\n const response = await axios.request({\r\n baseURL: config.controllURL,\r\n url: i18n.language + \"/api/maintenance/index\",\r\n method: \"get\",\r\n });\r\n setMaintenanceInfo(response.data);\r\n } catch (error) {\r\n //console.log(error);\r\n }\r\n }, []);\r\n useEffect(() => {\r\n fetchMainService();\r\n intialOffers();\r\n\r\n }, [])\r\n\r\n\r\n const [maintenanceOffers, setMaintenanceOffers] = useState([]);\r\n // to intialize the offers\r\n const intialOffers = async () => {\r\n await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/Maintenance/MaintenanceOffers\",\r\n method: \"get\",\r\n }).then(response => {\r\n\r\n setMaintenanceOffers(response.data);\r\n\r\n }).catch(error => {\r\n //console.log(error);\r\n });\r\n\r\n };\r\n\r\n\r\n let [modelCode, setModelCode] = useState(\"\");\r\n const [error, setError] = useState({});\r\n const [requestForm, setRequestForm] = useState({\r\n lastName: '',\r\n firstName: '',\r\n phone: '',\r\n email: '',\r\n subject: '',\r\n date: '',\r\n time: '',\r\n messageContent: '',\r\n myCarID: '',\r\n SiteID: null,\r\n });\r\n\r\n\r\n useEffect(() => {\r\n\r\n fetchSettings();\r\n // fetchService();\r\n\r\n }, [])\r\n const fetchSettings = async () => {\r\n\r\n\r\n try {\r\n\r\n if (\"caches\" in window) {\r\n var curl = \"Settings-\" + lang;\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"HJWeb\");\r\n\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n curl\r\n );\r\n var settingResponseCash = await cachedResponse?.json();\r\n\r\n const currentSettings = {...settings};\r\n currentSettings.brands = settingResponseCash?.brands;\r\n currentSettings.groups = settingResponseCash?.groups;\r\n currentSettings.models = settingResponseCash?.models;\r\n currentSettings.productModels = settingResponseCash?.productModels;\r\n setSettings(currentSettings);\r\n\r\n const fGroups = currentSettings?.groups?.filter(a => a.brandID == brand);\r\n setGroupData(fGroups);\r\n //---------------------------------------------------------------\r\n\r\n let currentvModelCode = {};\r\n currentSettings?.productModels?.map((item) => {\r\n\r\n if (item.ModelCode)\r\n currentvModelCode[item.productGroupID] = item.ModelCode;\r\n\r\n })\r\n\r\n // console.log(\"currentvModelCode>>>>>>>:\", currentvModelCode);\r\n setVModelCode(currentvModelCode);\r\n\r\n }\r\n\r\n const settingResponse = await axios.request({\r\n baseURL: '/',\r\n url: config.controllURL + lang + \"/api/Maintenance/Settings\",\r\n method: \"get\"\r\n });\r\n\r\n const currentSettings = {...settings};\r\n currentSettings.brands = settingResponse.data?.brands;\r\n currentSettings.groups = settingResponse.data?.groups;\r\n currentSettings.models = settingResponse.data?.models;\r\n currentSettings.productModels = settingResponse.data?.productModels;\r\n setSettings(currentSettings);\r\n\r\n const fGroups = currentSettings?.groups?.filter(a => a.brandID == brand);\r\n setGroupData(fGroups);\r\n //---------------------------------------------------------------\r\n\r\n let currentvModelCode = {};\r\n currentSettings?.productModels?.map((item) => {\r\n if (item.ModelCode)\r\n currentvModelCode[item.productGroupID] = item.ModelCode;\r\n\r\n })\r\n\r\n ////console.log(\"currentvModelCode>>>>>>>>>\", currentvModelCode);\r\n setVModelCode(currentvModelCode);\r\n\r\n const data = new Response(JSON.stringify(settingResponse.data));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"HJWeb\").then((cache) => {\r\n cache.put(\"Settings-\" + lang, data);\r\n\r\n });\r\n }\r\n\r\n } catch (error) {\r\n ////console.log(error);\r\n }\r\n\r\n };\r\n \r\n\r\n const [brand, setBrand] = useState(null);\r\n const [type, setType] = useState(null);\r\n const [groupData, setGroupData] = useState([]);\r\n const [group, setGroup] = useState(null);\r\n const [vModelCode, setVModelCode] = useState([]);\r\n const [year, setYear] = useState(null);\r\n const handleFilteredModels = (option,vYear=year) => {\r\n\r\n setModelCode(vModelCode[option]);\r\n\r\n // FetchPrice(vModelCode[option], SerciveID);\r\n\r\n fetchService(vModelCode[option]);\r\n\r\n setGroup(null);\r\n setType(null);\r\n setFilteredSettings({...filteredSettings, models: [], productModels: []});\r\n setGroup(option);\r\n\r\n var fModels =[];\r\n try{\r\n const currentgroupData =settings?.groups?.filter(a => a.brandID ==brand && a.productGroupID == option && a.Year ==vYear);\r\n const ListTreeGroups =(currentgroupData && currentgroupData?.length > 0 )? currentgroupData[0].ListTreeGroups :option;\r\n // Split the comma-separated string into an array\r\n const listVArray = ListTreeGroups.split(',');\r\n\r\n // Assuming settings.productModels is an array of objects with properties productGroupID and Model\r\n fModels = settings?.productModels?.filter(a => \r\n listVArray.includes(a.productGroupID) && a.Model == vYear\r\n );\r\n }catch{\r\n\r\n fModels = settings?.productModels?.filter(a => a.productGroupID == option && a.Model ==vYear);\r\n }\r\n\r\n // console.log(\"handleFilteredModels fModels:\", fModels);\r\n setFilteredSettings({...filteredSettings, productModels: fModels});\r\n\r\n if (fModels && fModels.length > 0)\r\n setType(fModels[0]?.productTypeID)\r\n\r\n };\r\n\r\n const handelSelectBrand = (option, year) => {\r\n setBrand(null);\r\n setGroup(null);\r\n setType(null);\r\n setSerciveID(null);\r\n setService([]);\r\n setinfoPrice([{Price: 0}]);\r\n setFilteredSettings({...settings, groups: [], models: [], productModels: []});\r\n setGroupData([]);\r\n setBrand(option);\r\n\r\n\r\n const fGroups = settings?.groups?.filter(a => a.brandID == option && a.Year ==year );\r\n \r\n setFilteredSettings({...settings, groups: fGroups});\r\n setGroupData(fGroups);\r\n\r\n };\r\n const [infoPrice, setinfoPrice] = useState([{Price: 0}]);\r\n const [SerciveID, setSerciveID] = useState(null);\r\n\r\n async function FetchPrice(modelC, SID) {\r\n\r\n // console.log(\"FetchPrice>>>>>>>>>:\", modelC)\r\n setinfoPrice([{Price: 0}]);\r\n if (!modelC) {\r\n return;\r\n }\r\n if (!SID) return;\r\n\r\n\r\n const Body = {\r\n \"name\": \"Site_fetchPriceService\",\r\n \"values\": {\r\n \"ModelCode\": modelC,\r\n \"ServicID\": SID\r\n }\r\n }\r\n\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n // ////console.log(response.data.ApiObjectData);\r\n\r\n setinfoPrice(response.data);\r\n\r\n const data = new Response(JSON.stringify(response.data));\r\n\r\n\r\n })\r\n .catch(function (error) {\r\n setinfoPrice([{Price: 0}]);\r\n\r\n ////console.log(error);\r\n });\r\n\r\n\r\n }\r\n\r\n\r\n async function fetchService(mc) {\r\n\r\n var option = \"2b995873-d703-47d8-9f58-f1df7f1e3979\";\r\n setService([]);\r\n setServiceOptions([]);\r\n setinfoPrice([{Price: 0}]);\r\n setSerciveID(null);\r\n setLodingService(true);\r\n\r\n //console.log(\"fetchService?>>>>>>>>>>>>>>>>>>>>>>>>>>\", option);\r\n\r\n const Body = {\r\n \"name\": \"site_FetchServices\",\r\n \"values\": {\r\n \"GUID\": option,\r\n // \"ModelCode\": mc\r\n \"ModelCode\": null\r\n }\r\n }\r\n\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n // ////console.log(response.data.ApiObjectData);\r\n\r\n var vv = response.data?.map(B => {\r\n return {value: B.ServiceID, text: lang === 'ar' ? B.ServiceNameAR : B.ServiceName};\r\n });\r\n setServiceOptions(vv);\r\n setService(response.data);\r\n if (response?.data.length == 1) {\r\n\r\n setSerciveID(response?.data[0].ServiceID);\r\n FetchPrice(modelCode, response?.data[0].ServiceID);\r\n }\r\n\r\n\r\n setLodingService(false);\r\n\r\n\r\n })\r\n .catch(function (error) {\r\n\r\n setLodingService(false);\r\n setService([]);\r\n setServiceOptions([]);\r\n setinfoPrice([{Price: 0}]);\r\n setSerciveID(null);\r\n ////console.log(error);\r\n });\r\n\r\n\r\n }\r\n\r\n return (\r\n <>\r\n \r\n
    \r\n \r\n
    \r\n\r\n\r\n
    \r\n\r\n \r\n\r\n
    \r\n
    \r\n {\r\n return {text: item?.description, value: item?.brandID}\r\n })}\r\n selectedValue={brand}\r\n onSelect={(value) => handelSelectBrand(value, requestForm?.year)}\r\n />\r\n
    \r\n\r\n
    \r\n {\r\n // return { text: item?.modelID, value: item?.modelID }\r\n // })}\r\n\r\n options={\r\n settings?.models?.filter(\r\n item => item?.modelID?.startsWith('20')).map(\r\n item => ({\r\n text: item?.modelID,\r\n value: item?.modelID\r\n })\r\n )\r\n }\r\n\r\n selectedValue={year}\r\n onSelect={(value) => {\r\n ////console.log(\"models:\", value)\r\n\r\n setYear(value);\r\n\r\n const val = {...requestForm};\r\n val.year = value;\r\n setRequestForm(val);\r\n handelSelectBrand(brand, value);\r\n }}\r\n />\r\n
    \r\n\r\n
    \r\n {\r\n return {text: item?.description, value: item?.productGroupID}\r\n })}\r\n selectedValue={group}\r\n onSelect={handleFilteredModels}\r\n />\r\n
    \r\n\r\n
    \r\n {\r\n\r\n const val = {...requestForm};\r\n val.SerciveID = option.value;\r\n setRequestForm(val);\r\n\r\n setSerciveID(null);\r\n //console.log(\"setSerciveID>>>>>>>>>>>>>>>>>>>>>>>:\", option.value);\r\n setSerciveID(option.value);\r\n FetchPrice(modelCode, option.value);\r\n\r\n }}\r\n isepart={true}\r\n isLoading={lodingService}\r\n selectedValue={SerciveID}\r\n defaultOption={SerciveID == null || SerciveID == '0' ? {\r\n value: '0',\r\n text: trans(\"info:servce\")\r\n } : null}\r\n\r\n />\r\n
    \r\n\r\n\r\n
    \r\n\r\n\r\n
    \r\n \r\n
    \r\n {\r\n // infoPrice[0].Price ?\r\n
    \r\n {/* السعر */}\r\n {/*
    \r\n
    \r\n

    {trans(\"info:price\")}{\":\"}

    \r\n\r\n
    \r\n\r\n
    \r\n {\r\n infoPrice[0] && \r\n }\r\n\r\n\r\n\r\n
    \r\n
    \r\n {\r\n
    \r\n \r\n

    {trans(\"info:service_price_head_message\")}

    \r\n
    \r\n } */}\r\n
    \r\n // : null\r\n }\r\n\r\n\r\n {\r\n SerciveID ?\r\n
    \r\n
    {\r\n e.preventDefault();\r\n handleServiceOrder({\r\n showPopup: true,\r\n type: \"sub2\",\r\n main: \"0a5e145a-bf3f-4a8e-aa7b-d8f0a1e0d9b0\",\r\n sub1: \"eb199b7e-55be-4ac8-b465-9a110b415ca8\",\r\n sub2: \"2b995873-d703-47d8-9f58-f1df7f1e3979\",\r\n ServiceID: SerciveID,\r\n brand: brand,\r\n group: group,\r\n year: year,\r\n modelType: type,\r\n serviceOptions:Service\r\n\r\n\r\n });\r\n\r\n }}>\r\n {trans(\"info:reserve\")} {trans(\"info:servce\")}\r\n
    \r\n
    \r\n : null\r\n }\r\n\r\n
    \r\n {\r\n indexPanel != \"2000\" ?\r\n
    \r\n {\r\n Service && Service.find(a => a.ServiceID == SerciveID) && Service.find(a => a.ServiceID == SerciveID)[lang == \"ar\" ? \"ServiceDetails\" : \"ServiceDetailsEn\"] &&\r\n <>\r\n
      \r\n\r\n {\r\n Service.find(a => a.ServiceID == SerciveID)[lang == \"ar\" ? \"ServiceDetails\" : \"ServiceDetailsEn\"]?.replaceAll(\"\\\\n\", \"\\n\")?.split('\\n')?.map((note, index) => {\r\n return (\r\n\r\n note &&\r\n
    • \r\n {note}\r\n
    • \r\n );\r\n })\r\n }\r\n\r\n\r\n
    \r\n\r\n {\"...\"}\r\n\r\n\r\n \r\n\r\n }\r\n\r\n
    \r\n : null\r\n\r\n }\r\n\r\n\r\n
    \r\n
    \r\n\r\n {\r\n Service && Service.find(a => a.ServiceID == SerciveID) && Service.find(a => a.ServiceID == SerciveID)[lang == \"ar\" ? \"ServiceDetails\" : \"ServiceDetailsEn\"] &&\r\n <>\r\n
      \r\n\r\n {\r\n Service.find(a => a.ServiceID == SerciveID)[lang == \"ar\" ? \"ServiceDetails\" : \"ServiceDetailsEn\"]?.replaceAll(\"\\\\n\", \"\\n\")?.split('\\n')?.map((note, index) => {\r\n return (\r\n\r\n note &&\r\n
    • \r\n {note}\r\n
    • \r\n );\r\n })\r\n }\r\n
    \r\n \r\n\r\n }\r\n\r\n
    \r\n
    \r\n\r\n setIndexPanel(indexPanel == \"2000\" ? \"000\" : \"2000\")}\r\n >\r\n\r\n \r\n
    \r\n
    \r\n\r\n\r\n \r\n \r\n\r\n\r\n \r\n {\r\n maintenanceInfo &&\r\n
    \r\n
    \r\n

    {maintenanceInfo?.title ?? ''}

    \r\n

    \r\n {maintenanceInfo?.desc ?? ''}\r\n

    \r\n
    \r\n
    \r\n {maintenanceInfo && <>\r\n {maintenanceInfo?.image1Path &&
    \r\n {maintenanceInfo.title}/\r\n
    \r\n }\r\n {maintenanceInfo?.image2Path &&
    \r\n {maintenanceInfo.title}/\r\n
    \r\n }\r\n {maintenanceInfo?.image3Path &&
    \r\n {maintenanceInfo.title}/\r\n
    \r\n }\r\n \r\n }\r\n
    \r\n
    \r\n }\r\n\r\n
    \r\n \r\n
    \r\n {/* {\r\n\r\n MainService && MainService?.length > 0 &&\r\n
    \r\n {\r\n handleServiceOrder({\r\n showPopup: status,\r\n type: 'order', main: \"\", sub1: \"\", sub2: \"\"\r\n\r\n });\r\n }}\r\n />\r\n
    \r\n } */}\r\n\r\n \r\n {\r\n MainService?.map((item, index) => {\r\n return (\r\n \r\n \r\n {\r\n // //console.log(item.Level);\r\n handleServiceOrder({\r\n showPopup: true,\r\n\r\n type: item.Level,\r\n main: item.MainServiceID,\r\n sub1: item.SubService1ID,\r\n sub2: item.SubService2ID\r\n\r\n });\r\n }}\r\n />\r\n
    \r\n \r\n )\r\n })\r\n }\r\n \r\n
    \r\n \r\n\r\n\r\n
    \r\n\r\n

    \r\n {\r\n trans(\"navbar:man_offer\")\r\n }\r\n

    \r\n \r\n {\r\n maintenanceOffers && maintenanceOffers?.length > 0 &&\r\n maintenanceOffers?.map((offer, index) => {\r\n return (\r\n \r\n \r\n \r\n )\r\n })\r\n }\r\n \r\n {/*
    \r\n \r\n {trans(\"common:show-more\")}\r\n \r\n
    */}\r\n
    \r\n \r\n \r\n \r\n );\r\n}\r\nexport default MainServicePage;","import {useEffect} from \"react\";\r\n\r\nconst ServiceFeatureList = ({ title = '', values = [] }) => {\r\n\r\n return (\r\n
    \r\n

    {title}

    \r\n
    \r\n {\r\n values.map((item, index) => {\r\n return (\r\n
    \r\n
    \r\n {item.title}/\r\n
    \r\n

    {item.title}

    \r\n
    \r\n
    \r\n )\r\n })\r\n }\r\n
    \r\n
    \r\n )\r\n};\r\nexport default ServiceFeatureList;","import axios from \"axios\";\r\nimport { useContext, useEffect, useState } from \"react\"\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { useParams, useRouteMatch } from \"react-router\"\r\nimport SwiperCore, { Pagination, Navigation, Autoplay, EffectFade } from \"swiper\";\r\nimport { Swiper } from 'swiper/react';\r\nimport PageHeading from \"../../../components/__simple/_pageheading\"\r\nimport { WhyHJSection } from \"../../../sections/whyHJSection\";\r\nimport MainSubServiceOffer from \"../components/mainSubServiceOffer\";\r\nimport { MaintenanceServiceBox } from \"../components/maintenance\";\r\nimport ServiceBanner from \"../components/serviceBanner\";\r\nimport ServicesList from \"../components/servicesList\";\r\nimport MaintenanceContext from \"../maintenanceContext\";\r\nimport ServiceFeatureList from \"../components/serviceFeature\";\r\nimport Breadcrumb from \"../../../components/__simple/breadcrumb\";\r\nimport ServiceHeaderBanner from \"../components/serviceHeaderBanner\";\r\nimport config from \"../../../configuration/config.json\";\r\nSwiperCore.use([Pagination, Navigation, Autoplay, EffectFade]);\r\nconst SubMainServicePage = () => {\r\n const { t: trans, i18n } = useTranslation([\"info\", \"common\"]);\r\n const { handleServiceOrder } = useContext(MaintenanceContext);\r\n const { path } = useRouteMatch()\r\n const languageDir = 'language-' + i18n.language;\r\n let { ID } = useParams();\r\n const [SubService, setSubService] = useState([]);\r\n function fetchSubService(IDMain) {\r\n const Body = {\r\n \"name\": \"site_fetchMntc_SubService1\",\r\n \"values\": {\r\n \"MainID\": IDMain\r\n }\r\n }\r\n\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n // console.log(response.data.ApiObjectData);\r\n setTimeout(setSubService(response.data), 1000);\r\n\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n\r\n\r\n\r\n }\r\n\r\n const [MainInfo, setMainInfo] = useState([]);\r\n function fetchMainInfo(IDMain) {\r\n const Body = {\r\n \"name\": \"site_fetchMainService_Info\",\r\n \"values\": {\r\n \"Main\": IDMain\r\n }\r\n }\r\n\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n // console.log(response.data.ApiObjectData);\r\n setTimeout(setMainInfo(response.data), 1000);\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n }\r\n\r\n const [Special, setSpecial] = useState([]);\r\n function fetchFetchMaintenanceSpecial() {\r\n const Body = {\r\n \"name\": \"Site_FetchMaintenanceSpecial\"\r\n }\r\n\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n // console.log(response.data.ApiObjectData);\r\n setTimeout(setSpecial(response.data), 1000);\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n }\r\n const [lang, setlang] = useState(localStorage.getItem('i18nextLng'));\r\n useEffect(() => {\r\n fetchSubService(ID); fetchFetchMaintenanceSpecial();\r\n setTimeout(() => { fetchMainInfo(ID) }, 100);\r\n }, []);\r\n return (\r\n <>\r\n {\r\n\r\n MainInfo.map((p) => {\r\n\r\n return ()\r\n })\r\n }\r\n\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n {\r\n SubService.map(item => {\r\n return
    \r\n {\r\n console.log(item.Level);\r\n handleServiceOrder({\r\n showPopup: true,\r\n type: item.Level, main: item.MainServiceID, sub1: item.SubService1ID, sub2: item.SubService2ID\r\n\r\n });\r\n }}\r\n />\r\n
    \r\n })\r\n }\r\n
    \r\n\r\n {\r\n Special && Special.length > 0 &&\r\n { return { title: lang === \"ar\" ? Sp.titleAr : Sp.titleEn, image: \"data:image/png;base64,\" + Sp.icon } })}\r\n />\r\n\r\n }\r\n\r\n\r\n
    \r\n \r\n \r\n );\r\n}\r\nexport default SubMainServicePage;","import axios from \"axios\";\r\nimport { useContext, useEffect, useState } from \"react\"\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Link } from \"react-router-dom\";\r\nimport SwiperCore, { Pagination, Navigation, Autoplay, EffectFade } from \"swiper\";\r\nimport { Swiper } from 'swiper/react';\r\nimport {useParams, useRouteMatch} from \"react-router\"\r\nimport PageHeading from \"../../../components/__simple/_pageheading\"\r\nimport { WhyHJSection } from \"../../../sections/whyHJSection\";\r\nimport { MaintenanceServiceBox } from \"../components/maintenance\";\r\nimport ServiceDescription from \"../components/serviceDescription\";\r\nimport ServicesList from \"../components/servicesList\";\r\nimport MaintenanceContext from \"../maintenanceContext\";\r\nimport ServiceHeaderBanner from \"../components/serviceHeaderBanner\";\r\nimport Breadcrumb from \"../../../components/__simple/breadcrumb\";\r\nimport config from \"../../../configuration/config.json\";\r\nSwiperCore.use([Pagination, Navigation, Autoplay, EffectFade]);\r\nconst SubServicePage = () => {\r\n const [maintenanceInfo, setMaintenanceInfo] = useState({});\r\n const { t: trans, i18n } = useTranslation([\"info\", \"common\"]);\r\n const { handleServiceOrder } = useContext(MaintenanceContext);\r\n const { path } = useRouteMatch();\r\n const languageDir = 'language-' + i18n.language;\r\n //----------------------------------------------\r\n let { ID } = useParams();\r\n const [SubService, setSubService] = useState([]);\r\n function fetchSubService(SubID){\r\n const Body= {\r\n \"name\":\"site_fetchMntc_SubService2\" ,\r\n \"values\":{\r\n \"SubID\":SubID\r\n }\r\n }\r\n\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method:\"POST\",responseType:\"json\"\r\n })\r\n .then(function (response) {\r\n // console.log(response.data.ApiObjectData);\r\n setTimeout(setSubService(response.data),1000);\r\n\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n\r\n\r\n\r\n }\r\n const [SubInfo, setSubInfo] = useState([]);\r\n function fetchSubnfo(IDMain){\r\n const Body= {\r\n \"name\":\"site_fetchInfo_SubService1\" ,\r\n \"values\":{\r\n \"Sub1 \":IDMain\r\n }\r\n }\r\n\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method:\"POST\",responseType:\"json\"\r\n })\r\n .then(function (response) {\r\n // console.log(response.data.ApiObjectData);\r\n setTimeout(setSubInfo(response.data),1000);\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n }\r\n const [lang, setlang] = useState(localStorage.getItem('i18nextLng'));\r\n useEffect(async () => {\r\n try {\r\n fetchSubService(ID);\r\n fetchSubnfo(ID);\r\n const response = await axios.request({\r\n baseURL: config.controllURL,\r\n url: i18n.language + \"/api/maintenance/index\",\r\n method: \"get\",\r\n });\r\n setMaintenanceInfo(response.data);\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }, []);\r\n return (\r\n <>\r\n {\r\n\r\n SubInfo.map((p)=>{\r\n\r\n return( )\r\n })\r\n }\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n {\r\n SubService.map(item => {\r\n return
    \r\n {\r\n handleServiceOrder({\r\n showPopup: true,\r\n type:item.Level,main:item.MainServiceID,sub1:item.SubService1ID,sub2:item.SubService2ID\r\n\r\n });\r\n }}\r\n />\r\n
    \r\n })\r\n }\r\n
    \r\n
    \r\n \r\n \r\n );\r\n}\r\nexport default SubServicePage;","import axios from \"axios\";\r\nimport { useContext, useEffect, useState } from \"react\"\r\nimport { useTranslation } from \"react-i18next\";\r\nimport {useParams, useRouteMatch} from \"react-router\"\r\nimport Breadcrumb from \"../../../components/__simple/breadcrumb\";\r\nimport PageHeading from \"../../../components/__simple/_pageheading\"\r\nimport { WhyHJSection } from \"../../../sections/whyHJSection\";\r\nimport { MaintenanceServiceBox } from \"../components/maintenance\";\r\nimport ServiceDescription from \"../components/serviceDescription\";\r\nimport ServiceHeaderBanner from \"../components/serviceHeaderBanner\";\r\nimport ServicesList from \"../components/servicesList\";\r\nimport MaintenanceContext from \"../maintenanceContext\";\r\nimport config from \"../../../configuration/config.json\";\r\nconst ServicePage = () => {\r\n const [maintenanceInfo, setMaintenanceInfo] = useState({});\r\n const { t: trans, i18n } = useTranslation([\"info\", \"common\"]);\r\n const { handleServiceOrder } = useContext(MaintenanceContext);\r\n const { path } = useRouteMatch();\r\n const languageDir = 'language-' + i18n.language;\r\n let { ID } = useParams(); const [SubService, setSubService] = useState([]);\r\n function fetchSubService(IDMain){\r\n const Body= {\r\n \"name\":\"site_FetchServices\" ,\r\n \"values\":{\r\n \"GUID\":IDMain,\r\n \"ModelCode\":null\r\n }\r\n }\r\n\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method:\"POST\",responseType:\"json\"\r\n })\r\n .then(function (response) {\r\n // console.log(response.data.ApiObjectData);\r\n setTimeout(setSubService(response.data),1000);\r\n\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n\r\n\r\n\r\n }\r\n const [lang, setlang] = useState(localStorage.getItem('i18nextLng'));\r\n\r\n const [SubInfo, setSubInfo] = useState([]);\r\n function fetchSubnfo(IDMain){\r\n const Body= {\r\n \"name\":\"site_fetchInfo_SubService2\" ,\r\n \"values\":{\r\n \"SubID\":IDMain\r\n }\r\n }\r\n\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method:\"POST\",responseType:\"json\"\r\n })\r\n .then(function (response) {\r\n // console.log(response.data.ApiObjectData);\r\n setTimeout(setSubInfo(response.data),1000);\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n }\r\n useEffect(async () => {\r\n try {\r\n fetchSubService(ID);\r\n fetchSubnfo(ID);\r\n const response = await axios.request({\r\n baseURL: config.controllURL,\r\n url: i18n.language + \"/api/maintenance/index\",\r\n method: \"get\",\r\n });\r\n setMaintenanceInfo(response.data);\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }, []);\r\n return (\r\n <>\r\n {\r\n SubInfo.map((p)=>{\r\n return( )\r\n })\r\n }\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n\r\n
    \r\n {\r\n SubService.map(item => {\r\n return
    \r\n {\r\n handleServiceOrder({\r\n type:\"sub2\",\r\n showPopup: true\r\n ,...item\r\n });\r\n }}\r\n />\r\n
    \r\n })\r\n }\r\n
    \r\n \r\n
    \r\n \r\n \r\n );\r\n}\r\nexport default ServicePage;","import { useEffect, useState, useRef } from \"react\";\r\nimport axios from \"axios\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport moment from \"moment\";\r\nimport Popup from \"../../User/popup\";\r\nimport { DropDownInput } from \"../../components/_input/_dropdown\";\r\nimport { TextArea } from \"../../components/_input/_textArea\";\r\nimport { DateInput3 } from \"../../components/_input/_dateInput_3\";\r\nimport { InputField } from \"../../components/_input/_input\";\r\nimport { useParams } from \"react-router\";\r\nimport config from '../../configuration/config.json';\r\nimport DatePicker from 'react-datepicker';\r\nimport { useHistory, useLocation } from \"react-router\";\r\nimport { GetMessages, formValidate } from '../../utils/validation';\r\nimport Joi from \"joi\";\r\nimport { toast } from \"react-toastify\";\r\nimport { Helmet } from \"react-helmet\";\r\nexport function ServiceReservation() {\r\n\r\n let { PVIN, PGroupID, PYear, PServiceID } = useParams();\r\n const { t: trans, i18n } = useTranslation([\"info\", \"eparts\", \"common\", \"global\", \"offers\", \"cartFile\"]);\r\n let lang = i18n.language;\r\n const [showFinalPopup, setShowFinalPopup] = useState(false);\r\n const popRef = useRef(null);\r\n const [resOrderID, setResOrderID] = useState(null);\r\n const history = useHistory();\r\n const [stepNum, setStepNum] = useState(1);\r\n const [dataFullNum, setDataFullNum] = useState(0);\r\n const [VINDetails, setVINDetails] = useState([]);\r\n const [infoPrice, setinfoPrice] = useState([{ Price: 0 }]);\r\n const [isSendeng, setIsSendeng] = useState(false);\r\n const [orderReservation, setOrderReservation] = useState(null);\r\n const [requestForm, setRequestForm] = useState({\r\n name: '',\r\n phone: '',\r\n email: '',\r\n subject: '',\r\n date: '',\r\n time: '',\r\n messageContent: '',\r\n myCarID: '',\r\n SiteID: null,\r\n ServiceID: ''\r\n });\r\n const [filteredSettings, setFilteredSettings] = useState({\r\n brands: [],\r\n groups: [],\r\n models: [],\r\n productModels: []\r\n });\r\n\r\n\r\n const [settings, setSettings] = useState({\r\n brands: [],\r\n groups: [],\r\n models: [],\r\n productModels: []\r\n });\r\n const location = useLocation();\r\n\r\n useEffect(() => {\r\n FetchOrderReservation();\r\n\r\n }, [])\r\n\r\n useEffect(() => {\r\n\r\n if (orderReservation) {\r\n setResOrderID(orderReservation?.MaintenanceOrderID);\r\n setShowFinalPopup(true);\r\n\r\n }\r\n fetchSettings();\r\n\r\n\r\n if (PVIN)\r\n GetVINDetails(PVIN);\r\n\r\n\r\n\r\n }, [PVIN, orderReservation])\r\n const [firstByLink22, setFirstByLink22] = useState(true);\r\n useEffect(() => {\r\n\r\n if (VINDetails && VINDetails.length > 0 && PServiceID && settings && settings?.groups?.length > 0 && firstByLink22 == true) {\r\n\r\n setFirstByLink22(false);\r\n PGroupID = VINDetails[0].CarGroup;\r\n PYear = VINDetails[0].Model;\r\n let PBrandID = VINDetails[0].BrandID;\r\n let ttmodelType = VINDetails[0].Type;\r\n var threeDaysFromNow = new Date();\r\n\r\n if (orderReservation) {\r\n\r\n if (orderReservation?.DateIn)\r\n threeDaysFromNow = new Date(orderReservation?.DateIn);\r\n if (orderReservation?.Note)\r\n setNote(orderReservation?.Note);\r\n } else {\r\n\r\n threeDaysFromNow.setDate(threeDaysFromNow.getDate() + 2);\r\n\r\n if (threeDaysFromNow.getDay() == 5) {\r\n threeDaysFromNow.setDate(threeDaysFromNow.getDate() + 1);\r\n }\r\n\r\n\r\n }\r\n if (threeDaysFromNow) {\r\n webAvailableReshours(moment(threeDaysFromNow).format('yyyy-MM-DD'));\r\n }\r\n setRequestForm({\r\n ...requestForm,\r\n name: lang == \"ar\" ? VINDetails[0].CustNameAr : VINDetails[0].CustNameEn,\r\n phone: VINDetails[0].Mobile,\r\n email: VINDetails[0].Email,\r\n myCarID: VINDetails[0].VIN,\r\n date: threeDaysFromNow,\r\n time: orderReservation ? threeDaysFromNow : \"\",\r\n ServiceID: PServiceID\r\n });\r\n\r\n FetchInfoService(PServiceID);\r\n\r\n setTimeout(() => {\r\n handleServiceOrder({\r\n showPopup: true,\r\n type: \"sub2\",\r\n main: \"0a5e145a-bf3f-4a8e-aa7b-d8f0a1e0d9b0\",\r\n sub1: \"eb199b7e-55be-4ac8-b465-9a110b415ca8\",\r\n sub2: \"2b995873-d703-47d8-9f58-f1df7f1e3979\",\r\n ServiceID: PServiceID,\r\n brand: PBrandID,\r\n group: PGroupID,\r\n year: PYear,\r\n modelType: ttmodelType,\r\n name: lang == \"ar\" ? VINDetails[0].CustNameAr : VINDetails[0].CustNameEn,\r\n phone: VINDetails[0].Mobile,\r\n email: VINDetails[0].Email,\r\n myCarID: VINDetails[0].VIN,\r\n\r\n });\r\n }, 2000);\r\n\r\n\r\n }\r\n\r\n }, [PGroupID, PYear, PServiceID, settings, VINDetails, orderReservation])\r\n\r\n\r\n async function GetVINDetails(VIN) {\r\n\r\n\r\n\r\n const Body = {\r\n \"name\": \"App_GetVINDetails\",\r\n \"values\": {\r\n \"VIN\": VIN\r\n }\r\n }\r\n\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n //console.log(\"App_GetVINDetails:\", response.data);\r\n setVINDetails(response.data);\r\n })\r\n .catch(function (error) {\r\n\r\n //console.log(error);\r\n });\r\n\r\n\r\n }\r\n\r\n useEffect(() => {\r\n\r\n function handleClickOutside(event) {\r\n if (popRef.current && !popRef.current.contains(event.target) && showFinalPopup === true) {\r\n setShowFinalPopup(false);\r\n setResOrderID(null);\r\n if (location.pathname)\r\n history.push(location.pathname);\r\n\r\n }\r\n }\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, [showFinalPopup]);\r\n\r\n\r\n //--------------------------------------------------\r\n const [maintenanceObj, setMaintenanceObj] = useState({\r\n showPopup: false, type: \"Notset\", main: \"\", sub1: \"\", sub2: \"\"\r\n });\r\n const [Defult, setDefult] = useState({\r\n showPopup: false, type: \"Notset\", main: \"\", sub1: \"\", sub2: \"\"\r\n });\r\n\r\n\r\n\r\n const notLoginSchema = Joi.object({\r\n date: Joi.date().required().messages(GetMessages()),\r\n time: Joi.date().required().messages(GetMessages()),\r\n SiteID: Joi.string().required().messages(GetMessages()),\r\n ServiceID: Joi.string().required().messages(GetMessages()),\r\n name: Joi.string().required().messages(GetMessages()),\r\n year: Joi.string().required().messages(GetMessages())\r\n });\r\n\r\n\r\n\r\n const [brand, setBrand] = useState(null);\r\n const [type, setType] = useState(null);\r\n const [group, setGroup] = useState(null);\r\n const [vModelCode, setVModelCode] = useState([]);\r\n const [year, setYear] = useState(null);\r\n const handleFilteredModels = (option) => {\r\n\r\n setModelCode(vModelCode[option]);\r\n setGroup(null);\r\n setType(null);\r\n setFilteredSettings({ ...filteredSettings, models: [], productModels: [] });\r\n setGroup(option);\r\n\r\n var fModels = [];\r\n try {\r\n const currentgroupData = settings?.groups?.filter(a => a.brandID == brand && a.productGroupID == option);\r\n\r\n\r\n const ListTreeGroups = (currentgroupData && currentgroupData?.length > 0) ? currentgroupData[0].ListTreeGroups : option;\r\n // Split the comma-separated string into an array\r\n const listVArray = ListTreeGroups.split(',');\r\n\r\n // Assuming settings.productModels is an array of objects with properties productGroupID and Model\r\n fModels = settings?.productModels?.filter(a =>\r\n listVArray.includes(a.productGroupID)\r\n );\r\n\r\n\r\n } catch {\r\n\r\n fModels = settings?.productModels?.filter(a => a.productGroupID == option);\r\n }\r\n\r\n\r\n setFilteredSettings({ ...filteredSettings, productModels: fModels });\r\n\r\n };\r\n\r\n const handelSelectBrand = (option, vYear = year) => {\r\n setBrand(null);\r\n setGroup(null);\r\n setType(null);\r\n\r\n setFilteredSettings({ ...settings, groups: [], models: [], productModels: [] });\r\n\r\n setBrand(option);\r\n\r\n\r\n const fGroups = settings?.groups?.filter(a => a.brandID == option && a.Year == vYear);\r\n\r\n setFilteredSettings({ ...settings, groups: fGroups, models: [], productModels: [] });\r\n\r\n\r\n };\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (settings?.brands && settings?.brands.length > 0 && Defult?.first != true\r\n ) {\r\n if (Defult?.year) {\r\n setYear(Defult?.year)\r\n const val = { ...requestForm };\r\n val.year = Defult?.year;\r\n setRequestForm(val);\r\n }\r\n if (Defult?.brand)\r\n handelSelectBrand(Defult?.brand, Defult?.year);\r\n }\r\n\r\n }, [Defult, settings]);\r\n\r\n\r\n useEffect(() => {\r\n\r\n try {\r\n\r\n if (requestForm?.date) {\r\n\r\n var md = new Date(requestForm?.date);\r\n try {\r\n if (requestForm?.time) {\r\n\r\n var Hours = requestForm?.time.split(\":\");\r\n\r\n md.setHours(Hours[0], Hours[1], 0);\r\n }\r\n } catch (error) {\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n } catch (error) {\r\n }\r\n\r\n\r\n }, [requestForm]);\r\n\r\n useEffect(() => {\r\n\r\n\r\n if (settings?.brands && settings?.brands.length > 0 && filteredSettings?.groups?.length > 0 && Defult?.first != true) {\r\n\r\n setDefult({ ...Defult, first: true });\r\n if (Defult?.group)\r\n handleFilteredModels(Defult?.group);\r\n\r\n if (Defult?.modelType) {\r\n setType(Defult?.modelType);\r\n }\r\n }\r\n }, [filteredSettings]);\r\n const FetchInfoService = async (PServiceID) => {\r\n\r\n\r\n setinfoPrice([{ Price: 0 }]);\r\n setLodingService(true);\r\n const Body = {\r\n \"name\": \"site_FetchInfoService\",\r\n \"values\": {\r\n \"ServiceID\": PServiceID\r\n }\r\n }\r\n\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n setService(response?.data[0]);\r\n setServiceID(response?.data[0].ServiceID);\r\n setLodingService(false);\r\n })\r\n .catch(function (error) {\r\n console.log(\"FetchOrderReservation>>>>\", error);\r\n setLodingService(false);\r\n });\r\n };\r\n\r\n const FetchOrderReservation = async () => {\r\n const Body = {\r\n \"name\": \"site_FetchOrderReservationByVIN_ServiceID\",\r\n \"values\": {\r\n \"VIN\": PVIN,\r\n \"ServiceID\": PServiceID\r\n }\r\n }\r\n\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n console.log(\"FetchOrderReservation>>>>\", response.data);\r\n if (response.data && response.data.length > 0)\r\n setOrderReservation(response.data[0]);\r\n\r\n })\r\n .catch(function (error) {\r\n console.log(\"FetchOrderReservation>>>>\", error);\r\n });\r\n };\r\n const fetchSettings = async () => {\r\n try {\r\n\r\n if (\"caches\" in window) {\r\n var curl = \"Settings-\" + lang;\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"HJWeb\");\r\n\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n curl\r\n );\r\n var settingResponseCash = await cachedResponse?.json();\r\n const currentSettings = {};\r\n console.log(\"currentSettings:\", currentSettings);\r\n currentSettings.brands = settingResponseCash?.brands;\r\n currentSettings.groups = settingResponseCash?.groups;\r\n currentSettings.models = settingResponseCash?.models;\r\n currentSettings.productModels = settingResponseCash?.productModels;\r\n if (currentSettings.brands && currentSettings.groups && currentSettings.productModels) {\r\n\r\n setSettings(currentSettings);\r\n\r\n\r\n //---------------------------------------------------------------\r\n let currentvModelCode = {};\r\n currentSettings?.productModels?.map((item) => {\r\n if (item.ModelCode) {\r\n currentvModelCode[item.productGroupID] = item.ModelCode;\r\n }\r\n })\r\n setVModelCode(currentvModelCode);\r\n }\r\n\r\n }\r\n } catch (error) {\r\n //////console.log(error);\r\n }\r\n try {\r\n const settingResponse = await axios.request({\r\n baseURL: '/',\r\n url: config.controllURL + lang + \"/api/Maintenance/Settings\",\r\n method: \"get\"\r\n });\r\n\r\n const currentSettings = { ...settings };\r\n currentSettings.brands = settingResponse.data?.brands;\r\n currentSettings.groups = settingResponse.data?.groups;\r\n currentSettings.models = settingResponse.data?.models;\r\n currentSettings.productModels = settingResponse.data?.productModels;\r\n\r\n setSettings(currentSettings);\r\n\r\n //---------------------------------------------------------------\r\n\r\n let currentvModelCode = {};\r\n currentSettings?.productModels?.map((item) => {\r\n currentvModelCode[item.productGroupID] = item.ModelCode\r\n\r\n })\r\n\r\n //////console.log(\"currentvModelCode>>>>>>>>>\", currentvModelCode);\r\n setVModelCode(currentvModelCode);\r\n\r\n const data = new Response(JSON.stringify(settingResponse.data));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"HJWeb\").then((cache) => {\r\n cache.put(\"Settings-\" + lang, data);\r\n\r\n });\r\n }\r\n\r\n } catch (error) {\r\n //////console.log(error);\r\n }\r\n\r\n };\r\n const handleServiceOrder = (data) => {\r\n\r\n try {\r\n data['firstFetchPrice'] = null;\r\n data['first'] = null;\r\n setStepNum(1);\r\n setDataFullNum(0);\r\n\r\n\r\n setinfoPrice([{ Price: 0 }]);\r\n\r\n const value = { ...maintenanceObj, ...data };\r\n if (data?.main == '') {\r\n\r\n data['main'] = null;\r\n }\r\n if (data?.sub1 == '') {\r\n\r\n data['sub1'] = null;\r\n }\r\n if (data?.sub2 == '') {\r\n\r\n data['sub2'] = null;\r\n\r\n\r\n }\r\n\r\n setDefult(data);\r\n\r\n GetBranch();\r\n\r\n\r\n setTimeout(() => { setMaintenanceObj(value) }, 2000);\r\n\r\n\r\n } catch (e) {\r\n console.error(e)\r\n\r\n }\r\n\r\n };\r\n const [Note, setNote] = useState(\"\");\r\n\r\n const [lodingService, setLodingService] = useState(false);\r\n\r\n const [Branches, setBranches] = useState([]);\r\n let [modelCode, setModelCode] = useState(\"\");\r\n const [ServiceID, setServiceID] = useState(null);\r\n const [Service, setService] = useState(null);\r\n async function FetchPrice(modelC, SID) {\r\n\r\n setinfoPrice([{ Price: 0 }]);\r\n if (!modelC) {\r\n return;\r\n }\r\n if (!SID) return;\r\n\r\n\r\n\r\n const Body = {\r\n \"name\": \"Site_fetchPriceService\",\r\n \"values\": {\r\n \"ModelCode\": modelC,\r\n \"ServicID\": SID\r\n }\r\n }\r\n\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n // //////console.log(response.data.ApiObjectData);\r\n\r\n setinfoPrice(response.data);\r\n\r\n })\r\n .catch(function (error) {\r\n setinfoPrice([{ Price: 0 }]);\r\n\r\n //////console.log(error);\r\n });\r\n\r\n\r\n }\r\n\r\n const checkDataFullNum = async () => {\r\n\r\n if (group && ServiceID && requestForm?.date && requestForm?.time && requestForm?.SiteID && requestForm?.name) {\r\n\r\n setDataFullNum(2);\r\n return 2;\r\n } else if (group && ServiceID && requestForm?.name) {\r\n\r\n setDataFullNum(1);\r\n return 2;\r\n } else {\r\n setDataFullNum(0);\r\n return 0;\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n const [error, setError] = useState({});\r\n function SendResreve(VIN, ServecID, UserID, Amount) {\r\n\r\n\r\n const val = { ...requestForm };\r\n val.year = year;\r\n val.ServiceID = ServiceID;\r\n setRequestForm(val);\r\n const result = formValidate(notLoginSchema, val) ?? {};\r\n\r\n setError(result);\r\n\r\n if (Object.keys(result).length == 0 && isSendeng == false) {\r\n if (orderReservation == null) {\r\n\r\n setIsSendeng(true);\r\n var myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n\r\n var raw = {\r\n \"VIN\": VIN,\r\n \"Model\": type,\r\n \"CarType\": modelCode,\r\n \"UserID\": UserID ?? \"\",\r\n \"Year\": year,\r\n \"TotalAmount\": Amount ? Amount : 0,\r\n \"RequiredServicesList\": ServecID,\r\n \"Note\": Note,\r\n \"MeterReading\": requestForm?.meterReading,\r\n \"FirstName\": requestForm?.name,\r\n \"phone\": requestForm?.phone,\r\n \"StoreID\": requestForm?.SiteID,\r\n \"Orderdate\": moment(requestForm?.date).format('YYYY-MM-DD'),\r\n \"OrderTime\": moment(requestForm?.time).format('HH:mm:ss'),\r\n // \"PaymentMethodID\": paymentType == 1 ? \"Credit Card\" : (paymentType == 2 ? \"Sadad\" : (paymentType == 3 ? \"Installment\" : \"CashByBranch\")),\r\n };\r\n\r\n\r\n axios.request({\r\n url: config.controllURL + \"api/Service/ServiceRequestAdd\", headers: myHeaders,\r\n data: raw, method: \"POST\", responseType: \"json\"\r\n }).then(function (response) {\r\n if (response?.data?.OrderID)\r\n setResOrderID(response?.data?.OrderID);\r\n setShowFinalPopup(true);\r\n toast.success(trans(\"info:reservation_completed_successfully\"));\r\n\r\n }\r\n ).then((response) => {\r\n })\r\n .catch(error => {\r\n setIsSendeng(false);\r\n }\r\n\r\n\r\n\r\n );\r\n\r\n\r\n } else {\r\n setIsSendeng(true);\r\n try {\r\n axios.put(\r\n config.baseURL + 'update',\r\n {\r\n \"object\": \"FleetMaintenanceOrderReservation\",\r\n \"values\": {\r\n \"DateIn\": moment(requestForm?.date).format('YYYY-MM-DD') + \"T\" + moment(requestForm?.time).format('HH:mm:ss')\r\n },\r\n \"filters\": `where GUID = '${orderReservation?.GUID}'`\r\n }\r\n ).then(response => {\r\n window.location.reload();\r\n }).catch(error => {\r\n console.log(error);\r\n setIsSendeng(false);\r\n })\r\n } catch (err) {\r\n console.log('error in deleting the vehicle', err);\r\n setIsSendeng(false);\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n const GetUrlfunc = config.baseURL + 'func';\r\n async function GetBranch() {\r\n\r\n const Body = {\r\n \"name\": \"site_FetchMaintenanceBranches\"\r\n };\r\n\r\n await axios.request({\r\n url: GetUrlfunc,\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n\r\n setBranches(response.data);\r\n\r\n\r\n })\r\n .catch(function (error) {\r\n //////console.log(error);\r\n });\r\n\r\n\r\n }\r\n\r\n useEffect(() => {\r\n\r\n if (Branches && Branches?.length > 0 && !requestForm?.SiteID) {\r\n\r\n if (Branches?.length == 1) {\r\n let val = {};\r\n val.SiteID = Branches[0]?.SiteID;\r\n setRequestForm({ ...requestForm, ...val });\r\n }\r\n\r\n }\r\n\r\n }, [Branches, requestForm]);\r\n\r\n\r\n useEffect(() => {\r\n checkDataFullNum();\r\n }, [requestForm, ServiceID, year, type, requestForm.SiteID]);\r\n\r\n\r\n\r\n useEffect(() => {\r\n if (vModelCode != null && ServiceID && Defult?.firstFetchPrice != true) {\r\n setDefult({ ...Defult, firstFetchPrice: true });\r\n if (Defult?.modelType) {\r\n if (vModelCode[Defult?.modelType] && ServiceID)\r\n FetchPrice(vModelCode[Defult?.modelType], ServiceID);\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n }, [vModelCode, ServiceID]);\r\n\r\n\r\n const [listTimeAvailable, setListTimeAvailable] = useState([]);\r\n\r\n const webAvailableReshours = async (date = '') => {\r\n const Body = {\r\n \"name\": \"web_AvailableReshours\",\r\n \"values\": {\r\n \"Resdate\": date\r\n }\r\n }\r\n\r\n await axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n //console.log(\"web_AvailableReshours:response\", response);\r\n if (response.status >= 200 && response.status < 299) {\r\n //console.log(\"web_AvailableReshours:response\", response.statusText);\r\n if (response?.data && response?.data.length != 0) {\r\n response?.data.forEach((val, index) => {\r\n //console.log(\"ForEach:val\", parseInt(val?.AvailableHour));\r\n setListTimeAvailable(_lstTime => [..._lstTime, parseInt(val?.AvailableHour)]);\r\n });\r\n\r\n }\r\n }\r\n })\r\n .catch(function (error) {\r\n //console.log(\"web_AvailableReshours:Error\", error);\r\n toast.warn(trans(\"form:please-choose-another-date\"));\r\n });\r\n }\r\n\r\n\r\n return (\r\n <>\r\n \r\n
    \r\n\r\n
    \r\n\r\n {\r\n lang == \"ar\" ?\r\n\r\n
    \r\n \"hassan\r\n \"hassan\r\n
    \r\n\r\n\r\n :\r\n\r\n
    \r\n \"hassan\r\n \"hassan\r\n
    \r\n }\r\n
    \r\n {\r\n\r\n if (window.location.href.includes(\"/ar\") || window.location.href.includes(\"/en\")) {\r\n\r\n if (window.location.href.includes(\"/en\"))\r\n window.location = window.location.href.replace(\"/en\", \"/ar\");\r\n if (window.location.href.includes(\"/ar\"))\r\n window.location = window.location.href.replace(\"/ar\", \"/en\");\r\n\r\n } else {\r\n\r\n window.location = window.location.origin + \"/en\" + window.location.pathname;\r\n }\r\n }}\r\n className=\"reservation-head-Logo-lang h-full flex justify-center items-center\">\r\n\r\n {trans('common:changeLang')}\r\n \"change\r\n \r\n\r\n
    \r\n
    \r\n {\r\n lang == \"ar\" ?\r\n\r\n

    لعمر افتراضي أطول، حافظ على سيارتك

    \r\n :\r\n

    For longer longevity, maintain your vehicle

    \r\n }\r\n\r\n
    \r\n {/*
    \r\n
    \r\n\r\n {\r\n lang == \"ar\" ?\r\n\r\n
    \r\n \"hassan\r\n \"hassan\r\n
    \r\n\r\n\r\n :\r\n\r\n
    \r\n \"hassan\r\n \"hassan\r\n
    \r\n }\r\n
    \r\n
    \r\n {\r\n lang == \"ar\" ?\r\n\r\n

    لعمر افتراضي أطول، حافظ على سيارتك

    \r\n :\r\n

    For longer longevity, maintain your vehicle

    \r\n }\r\n
    \r\n
    */}\r\n {/*
    \r\n
    \r\n \r\n \r\n\r\n \r\n
    \r\n
    \r\n {\r\n lang == \"ar\" ?\r\n\r\n
    \r\n \"hassan\r\n \"hassan\r\n
    \r\n\r\n\r\n :\r\n\r\n
    \r\n \"hassan\r\n \"hassan\r\n
    \r\n }\r\n\r\n
    \r\n\r\n
    */}\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n

    {trans(\"info:appointment-booking\") + \" \" + trans(\"global:maintenance\")}

    \r\n\r\n
    \r\n {\r\n (brand == 1) ?\r\n\r\n {brand} e.target.style.display = 'none'} />\r\n :\r\n (\r\n (brand == 2) ?\r\n {brand} e.target.style.display = 'none'} />\r\n :\r\n null\r\n\r\n )\r\n\r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n {\r\n stepNum == 1 &&\r\n <>\r\n\r\n {\r\n <>\r\n
    \r\n\r\n
    \r\n\r\n {\r\n const val = {};\r\n val.name = e.target.value;\r\n setRequestForm({ ...requestForm, ...val });\r\n }\r\n }\r\n />\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n {/* {\r\n return { text: item?.description, value: item?.brandID }\r\n })}\r\n selectedValue={brand}\r\n onSelect={handelSelectBrand}\r\n disabled={true}\r\n\r\n /> */}\r\n\r\n g.brandID == brand)[0]?.description}\r\n length={255}\r\n onChangeValue={\r\n (e) => {\r\n\r\n }\r\n }\r\n />\r\n
    \r\n
    \r\n {/* {\r\n return { text: item?.description, value: item?.productGroupID }\r\n })}\r\n selectedValue={group}\r\n onSelect={handleFilteredModels}\r\n disabled={true}\r\n /> */}\r\n\r\n g.ListTreeGroups?.split(',').includes(group))[0]?.description}\r\n length={255}\r\n onChangeValue={\r\n (e) => {\r\n\r\n }\r\n }\r\n />\r\n
    \r\n\r\n
    \r\n {/* {\r\n // return { text: item?.modelID, value: item?.modelID }\r\n // })}\r\n\r\n options={\r\n settings?.models?.filter(\r\n item => item?.modelID?.startsWith('20')).map(\r\n item => ({\r\n text: item?.modelID,\r\n value: item?.modelID\r\n })\r\n )\r\n }\r\n\r\n selectedValue={year}\r\n onSelect={(value) => {\r\n //////console.log(\"models:\", value)\r\n\r\n setYear(value);\r\n\r\n const val = {};\r\n val.year = value;\r\n setRequestForm({ ...requestForm, ...val });\r\n }}\r\n /> */}\r\n\r\n {\r\n\r\n }\r\n }\r\n />\r\n
    \r\n\r\n
    \r\n\r\n\r\n \r\n\r\n }\r\n \r\n }\r\n\r\n {\r\n\r\n\r\n <>\r\n
    \r\n\r\n\r\n {\r\n\r\n {\r\n const val = {};\r\n val.ServiceID = e.target.value;\r\n setRequestForm({ ...requestForm, ...val });\r\n }\r\n }\r\n />\r\n }\r\n\r\n
    \r\n\r\n {\r\n return { value: B.SiteID, text: lang === 'ar' ? B.DescriptionAr : B.DescriptionEn };\r\n })]}\r\n selectedValue={Branches?.length == 1 ? Branches[0]?.SiteID : requestForm?.SiteID}\r\n onSelect={(value) => {\r\n\r\n //////console.log(\"onSelect:\", value);\r\n const val = {};\r\n val.SiteID = value;\r\n setRequestForm({ ...requestForm, ...val });\r\n }}\r\n\r\n\r\n />\r\n\r\n \r\n
    \r\n \"user\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n\r\n {\r\n\r\n const val = {};\r\n val.date = value;\r\n val.time = null;\r\n setRequestForm({ ...requestForm, ...val });\r\n setListTimeAvailable([]);\r\n\r\n if (val.date) {\r\n await webAvailableReshours(moment(value).format('yyyy-MM-DD'));\r\n }\r\n }}\r\n filterDate={(date) => {\r\n const today = new Date();\r\n const yesterday = new Date(today);\r\n yesterday.setDate(today.getDate() - 1);\r\n const day = date.getDay();\r\n return (day === 0 || day === 1 || day === 2 || day === 3 || day === 4 || day === 6)\r\n && (new Date(date).setHours(0, 0, 0) > yesterday.setHours(0, 0, 0)); // Sunday (0), Saturday (6)\r\n\r\n }}\r\n placeholderText={trans(\"form:maintenance-date\")}\r\n dateFormat=\"yyyy-MM-dd\"\r\n customInput={}\r\n />\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n const time = new Date();\r\n let res;\r\n\r\n if (requestForm.date && new Date(requestForm.date).toDateString() === new Date().toDateString()) {\r\n if (val > new Date().getHours()) {\r\n res = time.setHours(val, 0, 0);\r\n }\r\n } else if (requestForm.date && new Date(requestForm.date) > new Date()) {\r\n res = time.setHours(val, 0, 0);\r\n } else {\r\n res = time.setHours(val, 0, 0);\r\n }\r\n\r\n return res;\r\n })}\r\n\r\n\r\n isClearable={!!requestForm.time}\r\n selected={requestForm.time}\r\n onChange={(value) => {\r\n\r\n const val = {};\r\n val.time = value;\r\n setRequestForm({ ...requestForm, ...val });\r\n }}\r\n className=\"w-100\"\r\n\r\n placeholderText={trans(\"form:maintenance-time\")}\r\n showTimeSelect\r\n showTimeSelectOnly\r\n timeIntervals={60}\r\n timeInputLabel={trans(\"form:maintenance-time\")}\r\n timeCaption={trans(\"form:maintenance-time\")}\r\n dateFormat=\"hh:mm aa\"\r\n customInput={}\r\n\r\n />\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n {\r\n setNote(data);\r\n }}\r\n />\r\n\r\n \r\n\r\n }\r\n
    \r\n
    \r\n {\r\n\r\n <>\r\n {\r\n\r\n
    \r\n
    \r\n
    = 2 ? \" bg-primary \" : \" bg-gray \")} onClick={() => {\r\n\r\n\r\n\r\n if (dataFullNum >= 2 && isSendeng == false)\r\n SendResreve(PVIN, ServiceID, VINDetails[0]?.CustID, infoPrice[0].Price);\r\n\r\n }}>\r\n {\r\n (orderReservation) ?\r\n trans(\"info:save_changes\")\r\n :\r\n trans(\"info:reserve\")\r\n\r\n }\r\n\r\n {\r\n isSendeng && \r\n \r\n \r\n }\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n\r\n\r\n }\r\n\r\n \r\n }\r\n\r\n\r\n \r\n\r\n
    \r\n\r\n\r\n
    \r\n\r\n\r\n\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n {trans(\"new:thank_to_choose\")}\r\n {trans(\"new:HJ_cars\")}\r\n
    \r\n\r\n {\r\n <>\r\n
    \r\n {trans(\"new:The_appointment_has_been_booked\")}\r\n
    \r\n\r\n {filteredSettings?.groups?.filter(s => s.productGroupID == group).length > 0 &&\r\n
    \r\n \r\n {filteredSettings?.groups?.filter(s => s.productGroupID == group)[0]?.description}\r\n {` (${PVIN}) `}\r\n
    \r\n }\r\n {Service &&\r\n
    \r\n {trans(\"info:servce\")}: \r\n {Service?.ServiceNameAR} \r\n
    \r\n }\r\n\r\n
    \r\n {trans(\"form:maintenance-date\")}: \r\n {orderReservation?.DateIn ?\r\n moment(orderReservation?.DateIn).format('YYYY-MM-DD')\r\n : moment(requestForm?.date).format('YYYY-MM-DD')} \r\n
    \r\n
    \r\n {trans(\"form:maintenance-time\")}: \r\n \r\n {\r\n orderReservation?.DateIn ? moment(orderReservation?.DateIn).format('hh:mm A')\r\n : moment(requestForm?.time).format('hh:mm A')} \r\n
    \r\n\r\n {\r\n\r\n resOrderID &&\r\n
    {\r\n\r\n navigator.clipboard.writeText(resOrderID);\r\n }}\r\n\r\n >\r\n\r\n {trans(\"new:Reservation_number\") + \" :\"}\r\n {resOrderID && resOrderID}\r\n \r\n
    \r\n }\r\n\r\n \r\n\r\n }\r\n
    \r\n
    \r\n
    {\r\n\r\n setShowFinalPopup(false);\r\n setResOrderID(null);\r\n if (location.pathname)\r\n history.push(\"/\");\r\n\r\n }}>\r\n {trans(\"cartFile:Continue_browsing\")}\r\n
    \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n\r\n
    \r\n\r\n {\r\n\r\n orderReservation && orderReservation?.OrderStatusID && orderReservation?.OrderStatusID == \"Created\" &&\r\n\r\n\r\n
    \r\n
    \r\n
    {\r\n\r\n var threeDaysFromNow = new Date();\r\n if (orderReservation?.DateIn)\r\n threeDaysFromNow = new Date(orderReservation?.DateIn);\r\n if (orderReservation?.Note)\r\n setNote(orderReservation?.Note);\r\n\r\n setRequestForm({\r\n ...requestForm,\r\n date: threeDaysFromNow,\r\n time: orderReservation ? threeDaysFromNow : \"\"\r\n });\r\n\r\n setShowFinalPopup(false);\r\n\r\n }}>\r\n\r\n\r\n {/* \"\" */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {trans(\"info:edit\") + \" \" + trans(\"info:the_appointment\")}\r\n\r\n
    \r\n
    \r\n
    \r\n\r\n }\r\n
    \r\n
    \r\n \r\n );\r\n}","import { useEffect, useState, useRef } from \"react\";\r\nimport axios from \"axios\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport moment from \"moment\";\r\nimport Popup from \"../../User/popup\";\r\nimport { DropDownInput } from \"../../components/_input/_dropdown\";\r\nimport PhoneDropDown from \"../../components/_input/_phoneDropDown\";\r\nimport { TextArea } from \"../../components/_input/_textArea\";\r\nimport { DateInput3 } from \"../../components/_input/_dateInput_3\";\r\nimport { InputField } from \"../../components/_input/_input\";\r\nimport { useParams } from \"react-router\";\r\nimport config from '../../configuration/config.json';\r\nimport DatePicker from 'react-datepicker';\r\nimport { useHistory, useLocation } from \"react-router\";\r\nimport { GetMessages, formValidate } from '../../utils/validation';\r\nimport Joi from \"joi\";\r\nimport { toast } from \"react-toastify\";\r\nimport { Helmet } from \"react-helmet\";\r\nexport function ServiceReservationByID() {\r\n\r\n let { PVIN, PGroupID, PYear, PServiceID } = useParams();\r\n const { t: trans, i18n } = useTranslation([\"info\", \"eparts\", \"common\", \"global\", \"offers\", \"cartFile\"]);\r\n let lang = i18n.language;\r\n const [showFinalPopup, setShowFinalPopup] = useState(false);\r\n const popRef = useRef(null);\r\n const [resOrderID, setResOrderID] = useState(null);\r\n const history = useHistory();\r\n const [stepNum, setStepNum] = useState(1);\r\n const [dataFullNum, setDataFullNum] = useState(0);\r\n const [VINDetails, setVINDetails] = useState([]);\r\n const [infoPrice, setinfoPrice] = useState([{ Price: 0 }]);\r\n const [isSendeng, setIsSendeng] = useState(false);\r\n const [orderReservation, setOrderReservation] = useState(null);\r\n const [requestForm, setRequestForm] = useState({\r\n name: '',\r\n phone: '',\r\n email: '',\r\n subject: '',\r\n date: '',\r\n time: '',\r\n messageContent: '',\r\n myCarID: '',\r\n SiteID: null,\r\n ServiceID: ''\r\n });\r\n const [filteredSettings, setFilteredSettings] = useState({\r\n brands: [],\r\n groups: [],\r\n models: [],\r\n productModels: []\r\n });\r\n\r\n\r\n const [settings, setSettings] = useState({\r\n brands: [],\r\n groups: [],\r\n models: [],\r\n productModels: []\r\n });\r\n const location = useLocation();\r\n\r\n useEffect(() => {\r\n FetchOrderReservation();\r\n\r\n }, [])\r\n\r\n useEffect(() => {\r\n\r\n if (orderReservation) {\r\n setResOrderID(orderReservation?.MaintenanceOrderID);\r\n setShowFinalPopup(true);\r\n\r\n }\r\n fetchSettings();\r\n\r\n\r\n if (PVIN)\r\n GetVINDetails(PVIN);\r\n\r\n\r\n\r\n }, [PVIN, orderReservation])\r\n const [firstByLink22, setFirstByLink22] = useState(true);\r\n useEffect(() => {\r\n\r\n if (PServiceID && settings && settings?.groups?.length > 0 && firstByLink22 == true) {\r\n\r\n setFirstByLink22(false);\r\n setRequestForm({\r\n ...requestForm,\r\n ServiceID: PServiceID\r\n });\r\n\r\n FetchInfoService(PServiceID);\r\n\r\n setTimeout(() => {\r\n handleServiceOrder({\r\n showPopup: true,\r\n type: \"sub2\",\r\n main: \"0a5e145a-bf3f-4a8e-aa7b-d8f0a1e0d9b0\",\r\n sub1: \"eb199b7e-55be-4ac8-b465-9a110b415ca8\",\r\n sub2: \"2b995873-d703-47d8-9f58-f1df7f1e3979\",\r\n ServiceID: PServiceID,\r\n\r\n });\r\n }, 2000);\r\n\r\n\r\n }\r\n\r\n }, [PGroupID, PYear, PServiceID, settings, VINDetails, orderReservation])\r\n\r\n\r\n async function GetVINDetails(VIN) {\r\n\r\n\r\n\r\n const Body = {\r\n \"name\": \"App_GetVINDetails\",\r\n \"values\": {\r\n \"VIN\": VIN\r\n }\r\n }\r\n\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n //console.log(\"App_GetVINDetails:\", response.data);\r\n setVINDetails(response.data);\r\n })\r\n .catch(function (error) {\r\n\r\n //console.log(error);\r\n });\r\n\r\n\r\n }\r\n\r\n useEffect(() => {\r\n\r\n function handleClickOutside(event) {\r\n if (popRef.current && !popRef.current.contains(event.target) && showFinalPopup === true) {\r\n setShowFinalPopup(false);\r\n setResOrderID(null);\r\n if (location.pathname)\r\n history.push(location.pathname);\r\n\r\n }\r\n }\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, [showFinalPopup]);\r\n\r\n\r\n //--------------------------------------------------\r\n const [maintenanceObj, setMaintenanceObj] = useState({\r\n showPopup: false, type: \"Notset\", main: \"\", sub1: \"\", sub2: \"\"\r\n });\r\n const [Defult, setDefult] = useState({\r\n showPopup: false, type: \"Notset\", main: \"\", sub1: \"\", sub2: \"\"\r\n });\r\n\r\n\r\n\r\n const notLoginSchema = Joi.object({\r\n date: Joi.date().required().messages(GetMessages()),\r\n time: Joi.date().required().messages(GetMessages()),\r\n SiteID: Joi.string().required().messages(GetMessages()),\r\n ServiceID: Joi.string().required().messages(GetMessages()),\r\n name: Joi.string().required().messages(GetMessages()),\r\n year: Joi.string().required().messages(GetMessages())\r\n });\r\n\r\n\r\n\r\n const [brand, setBrand] = useState(null);\r\n const [type, setType] = useState(null);\r\n const [group, setGroup] = useState(null);\r\n const [vModelCode, setVModelCode] = useState([]);\r\n const [year, setYear] = useState(null);\r\n const handleFilteredModels = (option, vYear = year) => {\r\n\r\n setGroup(null);\r\n setType(null);\r\n setFilteredSettings({ ...filteredSettings, models: [], productModels: [] });\r\n setGroup(option);\r\n var fModels = [];\r\n try {\r\n\r\n const currentgroupData = settings?.groups?.filter(a => a.brandID == brand && a.productGroupID == option && a.Year == vYear);\r\n const ListTreeGroups = (currentgroupData && currentgroupData?.length > 0) ? currentgroupData[0].ListTreeGroups : option;\r\n\r\n // Split the comma-separated string into an array\r\n const listVArray = ListTreeGroups.split(',');\r\n\r\n // Assuming settings.productModels is an array of objects with properties productGroupID and Model\r\n fModels = settings?.productModels?.filter(a =>\r\n listVArray.includes(a.productGroupID) && a.Model == vYear\r\n );\r\n } catch {\r\n\r\n fModels = settings?.productModels?.filter(a => a.productGroupID == option && a.Model == vYear);\r\n }\r\n\r\n\r\n\r\n\r\n\r\n setFilteredSettings({ ...filteredSettings, productModels: fModels });\r\n\r\n };\r\n\r\n const handelSelectBrand = (option, vYear = year) => {\r\n setBrand(null);\r\n setType(null);\r\n setGroup(null);\r\n\r\n setFilteredSettings({ ...settings, groups: [], models: [], productModels: [] });\r\n setBrand(option);\r\n\r\n\r\n const fGroups = settings?.groups?.filter(a => a.brandID == option && a.Year == vYear);\r\n\r\n setFilteredSettings({ ...settings, groups: fGroups, models: [], productModels: [] });\r\n\r\n };\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (settings?.brands && settings?.brands.length > 0 && Defult?.first != true\r\n ) {\r\n if (Defult?.year) {\r\n setYear(Defult?.year)\r\n const val = { ...requestForm };\r\n val.year = Defult?.year;\r\n setRequestForm(val);\r\n }\r\n if (Defult?.brand)\r\n handelSelectBrand(Defult?.brand, Defult?.year);\r\n }\r\n\r\n }, [Defult, settings]);\r\n\r\n\r\n useEffect(() => {\r\n\r\n try {\r\n\r\n if (requestForm?.date) {\r\n\r\n var md = new Date(requestForm?.date);\r\n try {\r\n if (requestForm?.time) {\r\n\r\n var Hours = requestForm?.time.split(\":\");\r\n\r\n md.setHours(Hours[0], Hours[1], 0);\r\n }\r\n } catch (error) {\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n } catch (error) {\r\n }\r\n\r\n\r\n }, [requestForm]);\r\n\r\n useEffect(() => {\r\n\r\n\r\n if (settings?.brands && settings?.brands.length > 0 && filteredSettings?.groups?.length > 0 && Defult?.first != true) {\r\n\r\n setDefult({ ...Defult, first: true });\r\n if (Defult?.group)\r\n handleFilteredModels(Defult?.group);\r\n\r\n if (Defult?.modelType) {\r\n setType(Defult?.modelType);\r\n }\r\n }\r\n }, [filteredSettings]);\r\n const FetchInfoService = async (PServiceID) => {\r\n\r\n\r\n setinfoPrice([{ Price: 0 }]);\r\n setLodingService(true);\r\n const Body = {\r\n \"name\": \"site_FetchInfoService\",\r\n \"values\": {\r\n \"ServiceID\": PServiceID\r\n }\r\n }\r\n\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n setService(response?.data[0]);\r\n setServiceID(response?.data[0].ServiceID);\r\n setLodingService(false);\r\n })\r\n .catch(function (error) {\r\n console.log(\"FetchOrderReservation>>>>\", error);\r\n setLodingService(false);\r\n });\r\n };\r\n\r\n const FetchOrderReservation = async () => {\r\n const Body = {\r\n \"name\": \"site_FetchOrderReservationByVIN_ServiceID\",\r\n \"values\": {\r\n \"VIN\": PVIN,\r\n \"ServiceID\": PServiceID\r\n }\r\n }\r\n\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n console.log(\"FetchOrderReservation>>>>\", response.data);\r\n if (response.data && response.data.length > 0)\r\n setOrderReservation(response.data[0]);\r\n\r\n })\r\n .catch(function (error) {\r\n console.log(\"FetchOrderReservation>>>>\", error);\r\n });\r\n };\r\n const fetchSettings = async () => {\r\n try {\r\n\r\n if (\"caches\" in window) {\r\n var curl = \"Settings-\" + lang;\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"HJWeb\");\r\n\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n curl\r\n );\r\n var settingResponseCash = await cachedResponse?.json();\r\n const currentSettings = {};\r\n console.log(\"currentSettings:\", currentSettings);\r\n currentSettings.brands = settingResponseCash?.brands;\r\n currentSettings.groups = settingResponseCash?.groups;\r\n currentSettings.models = settingResponseCash?.models;\r\n currentSettings.productModels = settingResponseCash?.productModels;\r\n if (currentSettings.brands && currentSettings.groups && currentSettings.productModels) {\r\n\r\n setSettings(currentSettings);\r\n\r\n\r\n //---------------------------------------------------------------\r\n let currentvModelCode = {};\r\n currentSettings?.productModels?.map((item) => {\r\n if (item.ModelCode) {\r\n currentvModelCode[item.productGroupID] = item.ModelCode;\r\n }\r\n })\r\n setVModelCode(currentvModelCode);\r\n }\r\n\r\n }\r\n } catch (error) {\r\n //////console.log(error);\r\n }\r\n try {\r\n const settingResponse = await axios.request({\r\n baseURL: '/',\r\n url: config.controllURL + lang + \"/api/Maintenance/Settings\",\r\n method: \"get\"\r\n });\r\n\r\n const currentSettings = { ...settings };\r\n currentSettings.brands = settingResponse.data?.brands;\r\n currentSettings.groups = settingResponse.data?.groups;\r\n currentSettings.models = settingResponse.data?.models;\r\n currentSettings.productModels = settingResponse.data?.productModels;\r\n\r\n setSettings(currentSettings);\r\n\r\n //---------------------------------------------------------------\r\n\r\n let currentvModelCode = {};\r\n currentSettings?.productModels?.map((item) => {\r\n currentvModelCode[item.productGroupID] = item.ModelCode\r\n\r\n })\r\n\r\n //////console.log(\"currentvModelCode>>>>>>>>>\", currentvModelCode);\r\n setVModelCode(currentvModelCode);\r\n\r\n const data = new Response(JSON.stringify(settingResponse.data));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"HJWeb\").then((cache) => {\r\n cache.put(\"Settings-\" + lang, data);\r\n\r\n });\r\n }\r\n\r\n } catch (error) {\r\n //////console.log(error);\r\n }\r\n\r\n };\r\n const handleServiceOrder = (data) => {\r\n\r\n try {\r\n data['firstFetchPrice'] = null;\r\n data['first'] = null;\r\n setStepNum(1);\r\n setDataFullNum(0);\r\n\r\n\r\n setinfoPrice([{ Price: 0 }]);\r\n\r\n const value = { ...maintenanceObj, ...data };\r\n if (data?.main == '') {\r\n\r\n data['main'] = null;\r\n }\r\n if (data?.sub1 == '') {\r\n\r\n data['sub1'] = null;\r\n }\r\n if (data?.sub2 == '') {\r\n\r\n data['sub2'] = null;\r\n\r\n\r\n }\r\n\r\n setDefult(data);\r\n\r\n GetBranch();\r\n\r\n\r\n setTimeout(() => { setMaintenanceObj(value) }, 2000);\r\n\r\n\r\n } catch (e) {\r\n console.error(e)\r\n\r\n }\r\n\r\n };\r\n const [Note, setNote] = useState(\"\");\r\n\r\n const [lodingService, setLodingService] = useState(false);\r\n\r\n const [Branches, setBranches] = useState([]);\r\n let [modelCode, setModelCode] = useState(\"\");\r\n const [ServiceID, setServiceID] = useState(null);\r\n const [Service, setService] = useState(null);\r\n async function FetchPrice(modelC, SID) {\r\n\r\n setinfoPrice([{ Price: 0 }]);\r\n if (!modelC) {\r\n return;\r\n }\r\n if (!SID) return;\r\n\r\n\r\n\r\n const Body = {\r\n \"name\": \"Site_fetchPriceService\",\r\n \"values\": {\r\n \"ModelCode\": modelC,\r\n \"ServicID\": SID\r\n }\r\n }\r\n\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n // //////console.log(response.data.ApiObjectData);\r\n\r\n setinfoPrice(response.data);\r\n\r\n })\r\n .catch(function (error) {\r\n setinfoPrice([{ Price: 0 }]);\r\n\r\n //////console.log(error);\r\n });\r\n\r\n\r\n }\r\n\r\n const checkDataFullNum = async () => {\r\n\r\n if (group && type && ServiceID && requestForm?.date && requestForm?.time && requestForm?.SiteID && requestForm?.name) {\r\n\r\n setDataFullNum(2);\r\n return 2;\r\n } else if (group && ServiceID && requestForm?.name) {\r\n\r\n setDataFullNum(1);\r\n return 2;\r\n } else {\r\n setDataFullNum(0);\r\n return 0;\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n const [error, setError] = useState({});\r\n function SendResreve(VIN, ServecID, UserID, Amount) {\r\n\r\n\r\n const val = { ...requestForm };\r\n val.year = year;\r\n val.ServiceID = ServiceID;\r\n setRequestForm(val);\r\n const result = formValidate(notLoginSchema, val) ?? {};\r\n\r\n setError(result);\r\n\r\n if (Object.keys(result).length == 0 && isSendeng == false) {\r\n if (orderReservation == null) {\r\n\r\n setIsSendeng(true);\r\n var myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n\r\n var raw = {\r\n \"VIN\": VIN,\r\n \"Model\": type,\r\n \"CarType\": modelCode,\r\n \"UserID\": UserID ?? \"\",\r\n \"Year\": year,\r\n \"TotalAmount\": Amount ? Amount : 0,\r\n \"RequiredServicesList\": ServecID,\r\n \"Note\": Note,\r\n \"MeterReading\": requestForm?.meterReading,\r\n \"FirstName\": requestForm?.name,\r\n \"phone\": requestForm?.phone,\r\n \"StoreID\": requestForm?.SiteID,\r\n \"Orderdate\": moment(requestForm?.date).format('YYYY-MM-DD'),\r\n \"OrderTime\": moment(requestForm?.time).format('HH:mm:ss'),\r\n // \"PaymentMethodID\": paymentType == 1 ? \"Credit Card\" : (paymentType == 2 ? \"Sadad\" : (paymentType == 3 ? \"Installment\" : \"CashByBranch\")),\r\n };\r\n\r\n\r\n axios.request({\r\n url: config.controllURL + \"api/Service/ServiceRequestAdd\", headers: myHeaders,\r\n data: raw, method: \"POST\", responseType: \"json\"\r\n }).then(function (response) {\r\n if (response?.data?.OrderID)\r\n setResOrderID(response?.data?.OrderID);\r\n setShowFinalPopup(true);\r\n toast.success(trans(\"info:reservation_completed_successfully\"));\r\n\r\n }\r\n ).then((response) => {\r\n })\r\n .catch(error => {\r\n setIsSendeng(false);\r\n }\r\n\r\n\r\n\r\n );\r\n\r\n\r\n } else {\r\n setIsSendeng(true);\r\n try {\r\n axios.put(\r\n config.baseURL + 'update',\r\n {\r\n \"object\": \"FleetMaintenanceOrderReservation\",\r\n \"values\": {\r\n \"DateIn\": moment(requestForm?.date).format('YYYY-MM-DD') + \"T\" + moment(requestForm?.time).format('HH:mm:ss')\r\n },\r\n \"filters\": `where GUID = '${orderReservation?.GUID}'`\r\n }\r\n ).then(response => {\r\n window.location.reload();\r\n }).catch(error => {\r\n console.log(error);\r\n setIsSendeng(false);\r\n })\r\n } catch (err) {\r\n console.log('error in deleting the vehicle', err);\r\n setIsSendeng(false);\r\n }\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n const GetUrlfunc = config.baseURL + 'func';\r\n async function GetBranch() {\r\n\r\n const Body = {\r\n \"name\": \"site_FetchMaintenanceBranches\"\r\n };\r\n\r\n await axios.request({\r\n url: GetUrlfunc,\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n\r\n setBranches(response.data);\r\n\r\n\r\n })\r\n .catch(function (error) {\r\n //////console.log(error);\r\n });\r\n\r\n\r\n }\r\n\r\n useEffect(() => {\r\n\r\n if (Branches && Branches?.length > 0 && !requestForm?.SiteID) {\r\n\r\n if (Branches?.length == 1) {\r\n let val = {};\r\n val.SiteID = Branches[0]?.SiteID;\r\n setRequestForm({ ...requestForm, ...val });\r\n }\r\n\r\n }\r\n\r\n }, [Branches, requestForm]);\r\n\r\n\r\n useEffect(() => {\r\n checkDataFullNum();\r\n }, [requestForm, ServiceID, year, group, requestForm.SiteID,type]);\r\n\r\n\r\n\r\n useEffect(() => {\r\n if (vModelCode != null && ServiceID && Defult?.firstFetchPrice != true) {\r\n setDefult({ ...Defult, firstFetchPrice: true });\r\n if (Defult?.modelType) {\r\n if (vModelCode[Defult?.modelType] && ServiceID)\r\n FetchPrice(vModelCode[Defult?.modelType], ServiceID);\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n }, [vModelCode, ServiceID]);\r\n\r\n\r\n\r\n const [listTimeAvailable, setListTimeAvailable] = useState([]);\r\n\r\n const webAvailableReshours = async (date = '') => {\r\n const Body = {\r\n \"name\": \"web_AvailableReshours\",\r\n \"values\": {\r\n \"Resdate\": date\r\n }\r\n }\r\n\r\n await axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n //console.log(\"web_AvailableReshours:response\", response);\r\n if (response.status >= 200 && response.status < 299) {\r\n //console.log(\"web_AvailableReshours:response\", response.statusText);\r\n if (response?.data && response?.data.length != 0) {\r\n response?.data.forEach((val, index) => {\r\n //console.log(\"ForEach:val\", parseInt(val?.AvailableHour));\r\n setListTimeAvailable(_lstTime => [..._lstTime, parseInt(val?.AvailableHour)]);\r\n });\r\n\r\n }\r\n }\r\n })\r\n .catch(function (error) {\r\n //console.log(\"web_AvailableReshours:Error\", error);\r\n toast.warn(trans(\"form:please-choose-another-date\"));\r\n });\r\n }\r\n\r\n\r\n return (\r\n <>\r\n \r\n
    \r\n\r\n
    \r\n\r\n {\r\n lang == \"ar\" ?\r\n\r\n
    \r\n \"hassan\r\n \"hassan\r\n
    \r\n\r\n\r\n :\r\n\r\n
    \r\n \"hassan\r\n \"hassan\r\n
    \r\n }\r\n
    \r\n {\r\n\r\n if (window.location.href.includes(\"/ar\") || window.location.href.includes(\"/en\")) {\r\n\r\n if (window.location.href.includes(\"/en\"))\r\n window.location = window.location.href.replace(\"/en\", \"/ar\");\r\n if (window.location.href.includes(\"/ar\"))\r\n window.location = window.location.href.replace(\"/ar\", \"/en\");\r\n\r\n } else {\r\n\r\n window.location = window.location.origin + \"/en\" + window.location.pathname;\r\n }\r\n }}\r\n className=\"reservation-head-Logo-lang h-full flex justify-center items-center\">\r\n\r\n {trans('common:changeLang')}\r\n \"change\r\n \r\n\r\n
    \r\n
    \r\n {\r\n lang == \"ar\" ?\r\n\r\n

    لعمر افتراضي أطول، حافظ على سيارتك

    \r\n :\r\n

    For longer longevity, maintain your vehicle

    \r\n }\r\n\r\n
    \r\n {/*
    \r\n
    \r\n\r\n {\r\n lang == \"ar\" ?\r\n\r\n
    \r\n \"hassan\r\n \"hassan\r\n
    \r\n\r\n\r\n :\r\n\r\n
    \r\n \"hassan\r\n \"hassan\r\n
    \r\n }\r\n
    \r\n
    \r\n {\r\n lang == \"ar\" ?\r\n\r\n

    لعمر افتراضي أطول، حافظ على سيارتك

    \r\n :\r\n

    For longer longevity, maintain your vehicle

    \r\n }\r\n
    \r\n
    */}\r\n {/*
    \r\n
    \r\n \r\n \r\n\r\n \r\n
    \r\n
    \r\n {\r\n lang == \"ar\" ?\r\n\r\n
    \r\n \"hassan\r\n \"hassan\r\n
    \r\n\r\n\r\n :\r\n\r\n
    \r\n \"hassan\r\n \"hassan\r\n
    \r\n }\r\n\r\n
    \r\n\r\n
    */}\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n

    {trans(\"info:appointment-booking\") + \" \" + trans(\"global:maintenance\")}

    \r\n\r\n
    \r\n {\r\n (brand == 1) ?\r\n\r\n {brand} e.target.style.display = 'none'} />\r\n :\r\n (\r\n (brand == 2) ?\r\n {brand} e.target.style.display = 'none'} />\r\n :\r\n null\r\n\r\n )\r\n\r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n {\r\n stepNum == 1 &&\r\n <>\r\n\r\n {\r\n <>\r\n
    \r\n\r\n
    \r\n\r\n {\r\n const val = {};\r\n val.name = e.target.value;\r\n setRequestForm({ ...requestForm, ...val });\r\n }\r\n }\r\n />\r\n
    \r\n\r\n
    \r\n {\r\n const val = { ...requestForm };\r\n val.phone = phoneNumber ? `+${countryCode}${phoneNumber}` : null;\r\n val.codephone = `+${countryCode}`;\r\n setRequestForm(val);\r\n }}\r\n\r\n defaultValue={requestForm?.phone?.replace(`${requestForm?.codephone}`, '')}\r\n />\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n {\r\n return { text: item?.description, value: item?.brandID }\r\n })}\r\n selectedValue={brand}\r\n onSelect={handelSelectBrand}\r\n\r\n />\r\n\r\n
    \r\n\r\n\r\n
    \r\n {\r\n // return { text: item?.modelID, value: item?.modelID }\r\n // })}\r\n\r\n options={\r\n settings?.models?.filter(\r\n item => item?.modelID?.startsWith('20')).map(\r\n item => ({\r\n text: item?.modelID,\r\n value: item?.modelID\r\n })\r\n )\r\n }\r\n\r\n selectedValue={year}\r\n onSelect={(value) => {\r\n //////console.log(\"models:\", value)\r\n\r\n setYear(value);\r\n\r\n const val = {};\r\n val.year = value;\r\n setRequestForm({ ...requestForm, ...val });\r\n handelSelectBrand(brand, value);\r\n }}\r\n />\r\n\r\n
    \r\n\r\n
    \r\n {\r\n return { text: item?.description, value: item?.productGroupID }\r\n })}\r\n selectedValue={group}\r\n onSelect={handleFilteredModels}\r\n\r\n />\r\n\r\n
    \r\n\r\n\r\n
    \r\n {\r\n return { text: item?.description, value: item?.productTypeID }\r\n })}\r\n selectedValue={type}\r\n onSelect={(value) => {\r\n setType(value);\r\n setModelCode(vModelCode[value]);\r\n\r\n }}\r\n />\r\n
    \r\n\r\n
    \r\n\r\n\r\n \r\n\r\n }\r\n \r\n }\r\n\r\n {\r\n\r\n\r\n <>\r\n
    \r\n\r\n\r\n {\r\n\r\n {\r\n const val = {};\r\n val.ServiceID = e.target.value;\r\n setRequestForm({ ...requestForm, ...val });\r\n }\r\n }\r\n />\r\n }\r\n\r\n
    \r\n\r\n {\r\n return { value: B.SiteID, text: lang === 'ar' ? B.DescriptionAr : B.DescriptionEn };\r\n })]}\r\n selectedValue={Branches?.length == 1 ? Branches[0]?.SiteID : requestForm?.SiteID}\r\n onSelect={(value) => {\r\n\r\n //////console.log(\"onSelect:\", value);\r\n const val = {};\r\n val.SiteID = value;\r\n setRequestForm({ ...requestForm, ...val });\r\n }}\r\n\r\n\r\n />\r\n\r\n \r\n
    \r\n \"user\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n
    \r\n\r\n {\r\n\r\n const val = {};\r\n val.date = value;\r\n val.time = null;\r\n setRequestForm({ ...requestForm, ...val });\r\n setListTimeAvailable([]);\r\n\r\n if (val.date) {\r\n await webAvailableReshours(moment(value).format('yyyy-MM-DD'));\r\n }\r\n }}\r\n filterDate={(date) => {\r\n const today = new Date();\r\n const yesterday = new Date(today);\r\n yesterday.setDate(today.getDate() - 1);\r\n const day = date.getDay();\r\n return (day === 0 || day === 1 || day === 2 || day === 3 || day === 4 || day === 6)\r\n && (new Date(date).setHours(0, 0, 0) > yesterday.setHours(0, 0, 0)); // Sunday (0), Saturday (6)\r\n\r\n }}\r\n placeholderText={trans(\"form:maintenance-date\")}\r\n dateFormat=\"yyyy-MM-dd\"\r\n customInput={}\r\n />\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n const time = new Date();\r\n let res;\r\n\r\n if (requestForm.date && new Date(requestForm.date).toDateString() === new Date().toDateString()) {\r\n if (val > new Date().getHours()) {\r\n res = time.setHours(val, 0, 0);\r\n }\r\n } else if (requestForm.date && new Date(requestForm.date) > new Date()) {\r\n res = time.setHours(val, 0, 0);\r\n } else {\r\n res = time.setHours(val, 0, 0);\r\n }\r\n\r\n return res;\r\n })}\r\n\r\n\r\n isClearable={!!requestForm.time}\r\n selected={requestForm.time}\r\n onChange={(value) => {\r\n\r\n const val = {};\r\n val.time = value;\r\n setRequestForm({ ...requestForm, ...val });\r\n }}\r\n className=\"w-100\"\r\n\r\n placeholderText={trans(\"form:maintenance-time\")}\r\n showTimeSelect\r\n showTimeSelectOnly\r\n timeIntervals={60}\r\n timeInputLabel={trans(\"form:maintenance-time\")}\r\n timeCaption={trans(\"form:maintenance-time\")}\r\n dateFormat=\"hh:mm aa\"\r\n customInput={}\r\n\r\n />\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n {\r\n setNote(data);\r\n }}\r\n />\r\n\r\n \r\n\r\n }\r\n
    \r\n
    \r\n {\r\n\r\n <>\r\n {\r\n\r\n
    \r\n
    \r\n
    = 2 ? \" bg-primary \" : \" bg-gray \")} onClick={() => {\r\n\r\n\r\n\r\n if (dataFullNum >= 2 && isSendeng == false)\r\n SendResreve(PVIN, ServiceID, VINDetails[0]?.CustID, infoPrice[0].Price);\r\n\r\n }}>\r\n {\r\n (orderReservation) ?\r\n trans(\"info:save_changes\")\r\n :\r\n trans(\"info:reserve\")\r\n\r\n }\r\n\r\n {\r\n isSendeng && \r\n \r\n \r\n }\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n\r\n\r\n }\r\n\r\n \r\n }\r\n\r\n\r\n \r\n\r\n
    \r\n\r\n\r\n
    \r\n\r\n\r\n\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n {trans(\"new:thank_to_choose\")}\r\n {trans(\"new:HJ_cars\")}\r\n
    \r\n\r\n {\r\n <>\r\n
    \r\n {trans(\"new:The_appointment_has_been_booked\")}\r\n
    \r\n\r\n {filteredSettings?.groups?.filter(s => s.productGroupID == group).length > 0 &&\r\n
    \r\n \r\n {filteredSettings?.groups?.filter(s => s.productGroupID == group)[0]?.description}\r\n {` (${year}) `}\r\n
    \r\n }\r\n {Service &&\r\n
    \r\n {trans(\"info:servce\")}: \r\n {Service?.ServiceNameAR} \r\n
    \r\n }\r\n\r\n
    \r\n {trans(\"form:maintenance-date\")}: \r\n {orderReservation?.DateIn ?\r\n moment(orderReservation?.DateIn).format('YYYY-MM-DD')\r\n : moment(requestForm?.date).format('YYYY-MM-DD')} \r\n
    \r\n
    \r\n {trans(\"form:maintenance-time\")}: \r\n \r\n {\r\n orderReservation?.DateIn ? moment(orderReservation?.DateIn).format('hh:mm A')\r\n : moment(requestForm?.time).format('hh:mm A')} \r\n
    \r\n\r\n {\r\n\r\n resOrderID &&\r\n
    {\r\n\r\n navigator.clipboard.writeText(resOrderID);\r\n }}\r\n\r\n >\r\n\r\n {trans(\"new:Reservation_number\") + \" :\"}\r\n {resOrderID && resOrderID}\r\n \r\n
    \r\n }\r\n\r\n \r\n\r\n }\r\n
    \r\n
    \r\n
    {\r\n\r\n setShowFinalPopup(false);\r\n setResOrderID(null);\r\n if (location.pathname)\r\n history.push(\"/\");\r\n\r\n }}>\r\n {trans(\"cartFile:Continue_browsing\")}\r\n
    \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n\r\n
    \r\n\r\n {\r\n\r\n orderReservation && orderReservation?.OrderStatusID && orderReservation?.OrderStatusID == \"Created\" &&\r\n\r\n\r\n
    \r\n
    \r\n
    {\r\n\r\n var threeDaysFromNow = new Date();\r\n if (orderReservation?.DateIn)\r\n threeDaysFromNow = new Date(orderReservation?.DateIn);\r\n if (orderReservation?.Note)\r\n setNote(orderReservation?.Note);\r\n\r\n setRequestForm({\r\n ...requestForm,\r\n date: threeDaysFromNow,\r\n time: orderReservation ? threeDaysFromNow : \"\"\r\n });\r\n\r\n setShowFinalPopup(false);\r\n\r\n }}>\r\n\r\n\r\n {/* \"\" */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {trans(\"info:edit\") + \" \" + trans(\"info:the_appointment\")}\r\n\r\n
    \r\n
    \r\n
    \r\n\r\n }\r\n
    \r\n
    \r\n \r\n );\r\n}","import { useState } from \"react\";\r\n\r\nexport const EvaluationType = ({ title = \"\", error = null, countOptions = 6, click, mandatory = false, defultActive =null}) => {\r\n const [activeItem, setActiveItem] = useState(null);\r\n\r\n const handelClik = (_nomC) => {\r\n click(_nomC);\r\n };\r\n\r\n\r\n return (\r\n
    \r\n

    \r\n {title}\r\n {mandatory && {\"*\"}}\r\n {error && {error}}\r\n

    \r\n
    \r\n {/*
    \r\n {[...Array(11)].map((num, index) => {\r\n return (\r\n \r\n {getActualIcon(index)}\r\n
    \r\n );\r\n })}\r\n
    */}\r\n\r\n
    \r\n {[...Array(countOptions)].map((num, index) => {\r\n return (\r\n\r\n \r\n {\r\n handelClik((index / 10));\r\n setActiveItem((index / 10));\r\n }}\r\n >\r\n {(index / 10)}\r\n
    \r\n );\r\n })}\r\n \r\n \r\n
    \r\n );\r\n};\r\n","import { useEffect, useState, useRef } from \"react\";\r\nimport axios from \"axios\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport moment from \"moment\";\r\nimport Popup from \"../../User/popup\";\r\nimport { TextArea } from \"../../components/_input/_textArea\";\r\nimport { useParams } from \"react-router\";\r\nimport config from '../../configuration/config.json';\r\nimport { useHistory, useLocation } from \"react-router\";\r\nimport { GetMessages, formValidate } from '../../utils/validation';\r\nimport Joi from \"joi\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport Skeleton from 'react-loading-skeleton'\r\nimport { EvaluationType } from \"./components/EvaluationType\";\r\nimport { toast } from \"react-toastify\";\r\nimport { Price } from \"../../components/__simple/_price\";\r\nimport { Helmet } from \"react-helmet\";\r\nimport CustomItemServices from \"../../components/CustomItemServices\";\r\nimport { CheckInput } from \"../../components/_input/_checkInput\";\r\nimport { filter } from \"lodash\";\r\nexport function ProtectionAndShading() {\r\n\r\n let { PVIN, PUser, PGroupID, PYear, PServiceID } = useParams();\r\n const { t: trans, i18n } = useTranslation([\"info\", \"employment\", \"eparts\", \"common\", \"global\", \"offers\", \"cartFile\"]);\r\n let lang = i18n.language;\r\n const location = useLocation();\r\n const query = new URLSearchParams(location.search);\r\n const [paramGUID, setParamGUID] = useState(query.get(\"Id\") ?? null);\r\n const [sadadInfo, setSadadInfo] = useState(null);\r\n const [showFinalPopup, setShowFinalPopup] = useState(false);\r\n const [showFinalPopupMessage, setShowFinalPopupMessage] = useState(\"\");\r\n const popRef = useRef(null);\r\n const [resOrderID, setResOrderID] = useState(null);\r\n const history = useHistory();\r\n const [stepNum, setStepNum] = useState(1);\r\n const [dataFullNum, setDataFullNum] = useState(0);\r\n const [VINDetails, setVINDetails] = useState(null);\r\n const [infoPrice, setinfoPrice] = useState([{ Price: 0 }]);\r\n const [isSendeng, setIsSendeng] = useState(false);\r\n const [orderReservation, setOrderReservation] = useState(null);\r\n const [allselectServices, setAllSelectServices] = useState([]);\r\n const [selectService, setSelectService] = useState({});\r\n const [acticeService, setActiceService] = useState(null);\r\n const [acticeMenu, setActiceMenu] = useState(\"Saving Packages\");\r\n const [selsub0, setselsub0] = useState({ ID: \"0\", desAr: \"اختيار قيمة\", desEn: \"chose\" });\r\n const [paymentType, setPaymentType] = useState(null);\r\n const [isToggleSwitch, setIsToggleSwitch] = useState(true);\r\n const [indexPanel, setIndexPanel] = useState(\"1000\");\r\n const [evaluations, setEvaluations] = useState({\r\n evaluation_false_0: 0,\r\n evaluation_false_1: 0.2,\r\n evaluation_false_2: 0.2,\r\n evaluation_false_3: 0.2,\r\n evaluation_true_0: 0.2,\r\n });\r\n const evaluationOptions = [{\r\n titel: \"زجاج أمامي\",\r\n titelEn: \"Windshield\",\r\n mandatory: false,\r\n defultValue: 0\r\n },\r\n {\r\n titel: \"زجاج خلفي\",\r\n titelEn: \"Rear glass\",\r\n mandatory: true,\r\n defultValue: 0.2\r\n },\r\n {\r\n titel: \"زجاج جانبي أمامي \",\r\n titelEn: \"Front side glass\",\r\n mandatory: true,\r\n defultValue: 0.2\r\n },\r\n {\r\n titel: \"زجاج جانبي خلفي\",\r\n titelEn: \"Rear side glass\",\r\n mandatory: true,\r\n defultValue: 0.2\r\n },];\r\n const [requestForm, setRequestForm] = useState({\r\n name: '',\r\n phone: '',\r\n email: '',\r\n subject: '',\r\n date: '',\r\n time: '',\r\n messageContent: '',\r\n myCarID: '',\r\n SiteID: null,\r\n ServiceID: ''\r\n });\r\n const [filteredSettings, setFilteredSettings] = useState({\r\n brands: [],\r\n groups: [],\r\n models: [],\r\n productModels: []\r\n });\r\n\r\n\r\n const [settings, setSettings] = useState({\r\n brands: [],\r\n groups: [],\r\n models: [],\r\n productModels: []\r\n });\r\n\r\n useEffect(() => {\r\n const paymentStatus = new URL(window.location.href).searchParams.get(\"paymentStatus\");\r\n const orderId = new URL(window.location.href).searchParams.get(\"orderId\");\r\n\r\n const paymentMethodCallback = new URL(window.location.href).searchParams.get(\"PaymentMethod\");\r\n const paymentTypeCallback = new URL(window.location.href).searchParams.get(\"PaymentType\");\r\n if (paymentMethodCallback != null && paymentTypeCallback != null) {\r\n if (paymentMethodCallback == 'paytabs') {\r\n StatusPaymentPayTabsSalesOrdersService();\r\n } else if (paymentMethodCallback == 'tamara') {\r\n if (paymentStatus == 'approved') {\r\n StatusPaymentTamaraSalesOrdersService(orderId);\r\n setShowFinalPopup(true);\r\n }\r\n\r\n } else if (paymentMethodCallback == 'sadad') {\r\n StatusPaymentSadadSalesOrdersService();\r\n //site_fetchSadadCode_salesOrdersService\r\n } else {\r\n setIsSendeng(false);\r\n toast.error(trans(\"error:unknown_failure\"));\r\n }\r\n\r\n }\r\n\r\n }, [])\r\n\r\n useEffect(() => {\r\n\r\n if (orderReservation) {\r\n setResOrderID(orderReservation?.MaintenanceOrderID);\r\n setShowFinalPopup(true);\r\n\r\n }\r\n fetchSettings();\r\n\r\n\r\n if (PVIN)\r\n GetVINDetails(PVIN);\r\n\r\n\r\n\r\n }, [PVIN, orderReservation])\r\n const [firstByLink22, setFirstByLink22] = useState(true);\r\n useEffect(() => {\r\n\r\n if (VINDetails && VINDetails.length > 0 && settings && settings?.groups?.length > 0 && firstByLink22 == true) {\r\n\r\n setFirstByLink22(false);\r\n PGroupID = VINDetails[0].CarGroup;\r\n PYear = VINDetails[0].Model;\r\n let PBrandID = VINDetails[0].BrandID;\r\n let ttmodelType = VINDetails[0].Type;\r\n\r\n\r\n setRequestForm({\r\n ...requestForm,\r\n name: lang == \"ar\" ? VINDetails[0].CustNameAr : VINDetails[0].CustNameEn,\r\n phone: VINDetails[0].Mobile,\r\n email: VINDetails[0].Email,\r\n myCarID: VINDetails[0].VIN\r\n });\r\n\r\n setTimeout(() => {\r\n handleServiceOrder({\r\n showPopup: true,\r\n type: \"sub2\",\r\n main: \"B56D30C7-3AA6-4698-A640-6F392138CB24\",\r\n sub1: \"635F9201-A9F5-404D-9A9A-FD537F32B5A0\",\r\n sub2: \"A82C0550-2A18-44EA-B466-7343BFC45340\",\r\n ServiceID: PServiceID,\r\n brand: PBrandID,\r\n group: PGroupID,\r\n year: PYear,\r\n modelType: ttmodelType,\r\n name: lang == \"ar\" ? VINDetails[0].CustNameAr : VINDetails[0].CustNameEn,\r\n phone: VINDetails[0].Mobile,\r\n email: VINDetails[0].Email,\r\n myCarID: VINDetails[0].VIN,\r\n\r\n });\r\n }, 2000);\r\n\r\n\r\n }\r\n\r\n }, [PGroupID, PYear, settings, VINDetails, orderReservation])\r\n\r\n\r\n async function GetVINDetails(VIN) {\r\n\r\n\r\n\r\n const Body = {\r\n \"name\": \"App_GetVINDetailsByUserId\",\r\n \"values\": {\r\n \"VIN\": VIN,\r\n \"UserId\": PUser\r\n }\r\n }\r\n\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n //console.log(\"App_GetVINDetails:\", response.data);\r\n setVINDetails(response.data);\r\n })\r\n .catch(function (error) {\r\n\r\n console.log(error);\r\n setVINDetails([]);\r\n setShowFinalPopupMessage(trans(\"employment:The_page_link_is_incorrect\"));\r\n setShowFinalPopup(true);\r\n });\r\n\r\n\r\n }\r\n\r\n useEffect(() => {\r\n\r\n function handleClickOutside(event) {\r\n if (popRef.current && !popRef.current.contains(event.target) && showFinalPopup === true) {\r\n setShowFinalPopup(false);\r\n setResOrderID(null);\r\n if (location.pathname)\r\n history.push(location.pathname);\r\n\r\n }\r\n }\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, [showFinalPopup]);\r\n\r\n\r\n //--------------------------------------------------\r\n const [maintenanceObj, setMaintenanceObj] = useState({\r\n showPopup: false, type: \"Notset\", main: \"\", sub1: \"\", sub2: \"\"\r\n });\r\n const [Defult, setDefult] = useState({\r\n showPopup: false, type: \"Notset\", main: \"\", sub1: \"\", sub2: \"\"\r\n });\r\n\r\n\r\n\r\n const notLoginSchema = Joi.object({\r\n name: Joi.string().required().messages(GetMessages()),\r\n year: Joi.string().required().messages(GetMessages())\r\n });\r\n\r\n\r\n\r\n const [brand, setBrand] = useState(null);\r\n const [type, setType] = useState(null);\r\n const [group, setGroup] = useState(null);\r\n const [vModelCode, setVModelCode] = useState([]);\r\n const [year, setYear] = useState(null);\r\n const handleFilteredModels = (option) => {\r\n\r\n setModelCode(vModelCode[option]);\r\n setGroup(null);\r\n setType(null);\r\n setFilteredSettings({ ...filteredSettings, models: [], productModels: [] });\r\n setGroup(option);\r\n\r\n var fModels = [];\r\n try {\r\n const currentgroupData = settings?.groups?.filter(a => a.brandID == brand && a.productGroupID == option);\r\n\r\n\r\n const ListTreeGroups = (currentgroupData && currentgroupData?.length > 0) ? currentgroupData[0].ListTreeGroups : option;\r\n // Split the comma-separated string into an array\r\n const listVArray = ListTreeGroups.split(',');\r\n\r\n // Assuming settings.productModels is an array of objects with properties productGroupID and Model\r\n fModels = settings?.productModels?.filter(a =>\r\n listVArray.includes(a.productGroupID)\r\n );\r\n\r\n\r\n } catch {\r\n\r\n fModels = settings?.productModels?.filter(a => a.productGroupID == option);\r\n }\r\n\r\n\r\n setFilteredSettings({ ...filteredSettings, productModels: fModels });\r\n\r\n };\r\n\r\n const handelSelectBrand = (option, vYear = year) => {\r\n setBrand(null);\r\n setGroup(null);\r\n setType(null);\r\n\r\n setFilteredSettings({ ...settings, groups: [], models: [], productModels: [] });\r\n\r\n setBrand(option);\r\n\r\n\r\n const fGroups = settings?.groups?.filter(a => a.brandID == option && a.Year == vYear);\r\n\r\n setFilteredSettings({ ...settings, groups: fGroups, models: [], productModels: [] });\r\n\r\n\r\n };\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (settings?.brands && settings?.brands.length > 0 && Defult?.first != true\r\n ) {\r\n if (Defult?.year) {\r\n setYear(Defult?.year)\r\n const val = { ...requestForm };\r\n val.year = Defult?.year;\r\n setRequestForm(val);\r\n }\r\n if (Defult?.brand)\r\n handelSelectBrand(Defult?.brand, Defult?.year);\r\n }\r\n\r\n }, [Defult, settings]);\r\n\r\n\r\n useEffect(() => {\r\n\r\n try {\r\n\r\n if (requestForm?.date) {\r\n\r\n var md = new Date(requestForm?.date);\r\n try {\r\n if (requestForm?.time) {\r\n\r\n var Hours = requestForm?.time.split(\":\");\r\n\r\n md.setHours(Hours[0], Hours[1], 0);\r\n }\r\n } catch (error) {\r\n\r\n }\r\n\r\n\r\n }\r\n\r\n } catch (error) {\r\n }\r\n\r\n\r\n }, [requestForm]);\r\n\r\n useEffect(() => {\r\n\r\n\r\n if (settings?.brands && settings?.brands.length > 0 && filteredSettings?.groups?.length > 0 && Defult?.first != true) {\r\n\r\n setDefult({ ...Defult, first: true });\r\n if (Defult?.group)\r\n handleFilteredModels(Defult?.group);\r\n\r\n if (Defult?.modelType) {\r\n setType(Defult?.modelType);\r\n }\r\n }\r\n }, [filteredSettings]);\r\n const FetchInfoService = async (PServiceID) => {\r\n\r\n\r\n setinfoPrice([{ Price: 0 }]);\r\n setLodingService(true);\r\n const Body = {\r\n \"name\": \"site_FetchInfoService\",\r\n \"values\": {\r\n \"ServiceID\": PServiceID\r\n }\r\n }\r\n\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n setService(response?.data[0]);\r\n setServiceID(response?.data[0].ServiceID);\r\n setLodingService(false);\r\n })\r\n .catch(function (error) {\r\n console.log(\"FetchOrderReservation>>>>\", error);\r\n setLodingService(false);\r\n });\r\n };\r\n\r\n\r\n const fetchSettings = async () => {\r\n try {\r\n\r\n if (\"caches\" in window) {\r\n var curl = \"Settings-\" + lang;\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"HJWeb\");\r\n\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n curl\r\n );\r\n var settingResponseCash = await cachedResponse?.json();\r\n\r\n const currentSettings = { ...settings };\r\n currentSettings.brands = settingResponseCash?.brands;\r\n currentSettings.groups = settingResponseCash?.groups;\r\n currentSettings.models = settingResponseCash?.models;\r\n currentSettings.productModels = settingResponseCash?.productModels;\r\n setSettings(currentSettings);\r\n\r\n const fGroups = currentSettings?.groups?.filter(a => a.brandID == brand);\r\n\r\n //---------------------------------------------------------------\r\n let currentvModelCode = {};\r\n currentSettings?.productModels?.map((item) => {\r\n if (item.ModelCode) {\r\n currentvModelCode[item.productGroupID] = item.ModelCode;\r\n }\r\n })\r\n setVModelCode(currentvModelCode);\r\n }\r\n\r\n\r\n const settingResponse = await axios.request({\r\n baseURL: '/',\r\n url: config.controllURL + lang + \"/api/Maintenance/Settings\",\r\n method: \"get\"\r\n });\r\n\r\n const currentSettings = { ...settings };\r\n currentSettings.brands = settingResponse.data?.brands;\r\n currentSettings.groups = settingResponse.data?.groups;\r\n currentSettings.models = settingResponse.data?.models;\r\n currentSettings.productModels = settingResponse.data?.productModels;\r\n\r\n setSettings(currentSettings);\r\n\r\n const fGroups = currentSettings?.groups?.filter(a => a.brandID == brand);\r\n\r\n //---------------------------------------------------------------\r\n\r\n let currentvModelCode = {};\r\n currentSettings?.productModels?.map((item) => {\r\n currentvModelCode[item.productGroupID] = item.ModelCode\r\n\r\n })\r\n\r\n //////console.log(\"currentvModelCode>>>>>>>>>\", currentvModelCode);\r\n setVModelCode(currentvModelCode);\r\n\r\n const data = new Response(JSON.stringify(settingResponse.data));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"HJWeb\").then((cache) => {\r\n cache.put(\"Settings-\" + lang, data);\r\n\r\n });\r\n }\r\n\r\n } catch (error) {\r\n //////console.log(error);\r\n }\r\n\r\n };\r\n const handleServiceOrder = (data) => {\r\n\r\n try {\r\n data['firstFetchPrice'] = null;\r\n data['first'] = null;\r\n setStepNum(1);\r\n setDataFullNum(0);\r\n\r\n\r\n setinfoPrice([{ Price: 0 }]);\r\n\r\n const value = { ...maintenanceObj, ...data };\r\n if (data?.main == '') {\r\n\r\n data['main'] = null;\r\n }\r\n if (data?.sub1 == '') {\r\n\r\n data['sub1'] = null;\r\n }\r\n if (data?.sub2 == '') {\r\n\r\n data['sub2'] = null;\r\n\r\n }\r\n\r\n setDefult(data);\r\n\r\n var sub2 = { value: data.sub2, ServiceID: data?.ServiceID }\r\n fetchService(sub2);\r\n\r\n\r\n\r\n setTimeout(() => {\r\n\r\n setMaintenanceObj(value)\r\n\r\n }, 2000);\r\n\r\n\r\n } catch (e) {\r\n console.error(e)\r\n\r\n }\r\n\r\n };\r\n const [Note, setNote] = useState(\"\");\r\n\r\n const [lodingService, setLodingService] = useState(false);\r\n\r\n const [Branches, setBranches] = useState([]);\r\n let [modelCode, setModelCode] = useState(\"\");\r\n const [ServiceID, setServiceID] = useState(null);\r\n const [allServiceID, setAllServiceID] = useState([]);\r\n const [Service, setService] = useState(null);\r\n async function fetchService(option) {\r\n setService([]);\r\n setinfoPrice([{ Price: 0 }]);\r\n\r\n setLodingService(true);\r\n\r\n\r\n const Body = {\r\n \"name\": \"site_FetchProtectionServiceByVehicleType_forNewCar\",\r\n \"values\": {\r\n \"VehicleType\": \"TOYOTA SMALL VEHICLES\"\r\n }\r\n }\r\n\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n // //////console.log(response.data.ApiObjectData);\r\n selectService[lang == \"ar\" ? \"ServiceDetails\" : \"ServiceDetailsEn\"]?.includes(\"Tinting\")\r\n // var filterservice = response?.data?.filter(s => !s.ServiceDetails?.includes(\"تلميع\") && !s.ServiceDetails?.includes(\"الصغيرة\") && !s.ServiceDetails?.includes(\"الصغيره\"))\r\n var filterservice = response?.data;\r\n setTimeout(setService(filterservice), 1000);\r\n\r\n if (option?.ServiceID) {\r\n setServiceID(option?.ServiceID)\r\n const val = { ...requestForm };\r\n val.ServiceID = option?.ServiceID;\r\n setRequestForm(val);\r\n filterservice.map((B) => {\r\n if (B.ServiceID === option?.ServiceID) {\r\n const v = selsub0;\r\n v.desAr = B.ServiceNameAR;\r\n v.desEn = B.ServiceName;\r\n v.ID = B.ServiceID;\r\n setselsub0(v);\r\n ////////console.log(v);\r\n }\r\n })\r\n }\r\n\r\n\r\n setLodingService(false);\r\n\r\n })\r\n .catch(function (error) {\r\n\r\n setLodingService(false);\r\n //////console.log(error);\r\n });\r\n\r\n\r\n\r\n }\r\n async function FetchPrice(modelC, SID) {\r\n\r\n setinfoPrice([{ Price: 0 }]);\r\n if (!modelC) {\r\n return;\r\n }\r\n if (!SID) return;\r\n\r\n\r\n\r\n const Body = {\r\n \"name\": \"Site_fetchPriceService\",\r\n \"values\": {\r\n \"ModelCode\": modelC,\r\n \"ServicID\": SID\r\n }\r\n }\r\n\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n // //////console.log(response.data.ApiObjectData);\r\n\r\n setinfoPrice(response.data);\r\n\r\n })\r\n .catch(function (error) {\r\n setinfoPrice([{ Price: 0 }]);\r\n\r\n //////console.log(error);\r\n });\r\n\r\n\r\n }\r\n\r\n const checkDataFullNum = async () => {\r\n\r\n if (group && paymentType && allServiceID && allServiceID.length > 0 && requestForm?.name) {\r\n\r\n setDataFullNum(2);\r\n return 2;\r\n } else if (group && paymentType && allServiceID && allServiceID.length > 0 && requestForm?.name) {\r\n\r\n setDataFullNum(2);\r\n return 2;\r\n } else {\r\n setDataFullNum(0);\r\n return 0;\r\n }\r\n\r\n\r\n }\r\n\r\n\r\n const [error, setError] = useState({});\r\n async function SendResreve(VIN, ServecID, UserID, Amount) {\r\n\r\n\r\n const val = { ...requestForm };\r\n val.year = year;\r\n val.ServiceID = ServiceID;\r\n setRequestForm(val);\r\n var mainNote = Note;\r\n const result = formValidate(notLoginSchema, val) ?? {};\r\n\r\n const hasTintingService = allselectServices.find(s => allServiceID.includes(s.ServiceID) && (s?.text?.includes(\"تظليل\") || s?.text?.includes(\"Tinting\") || s[\"ServiceDetailsEn\"]?.includes(\"tinting\")\r\n || s[\"ServiceDetails\"]?.includes(\"تظليل\")));\r\n\r\n\r\n var noteTinting = \"\";\r\n if (hasTintingService) {\r\n\r\n if (isToggleSwitch == false) {\r\n if (evaluations[hasTintingService?.ServiceID + \"_\" + isToggleSwitch + \"_\" + 0] == null || evaluations[hasTintingService?.ServiceID + \"_\" + isToggleSwitch + \"_\" + 0] === \"\") {\r\n noteTinting += \"\\\\nزجاج امامي:\" + \"0\";\r\n\r\n } else {\r\n noteTinting += \"\\\\nزجاج امامي:\" + evaluations[hasTintingService?.ServiceID + \"_\" + isToggleSwitch + \"_\" + 0];\r\n }\r\n if (evaluations[hasTintingService?.ServiceID + \"_\" + isToggleSwitch + \"_\" + 1] == null || evaluations[hasTintingService?.ServiceID + \"_\" + isToggleSwitch + \"_\" + 1] === \"\") {\r\n result[hasTintingService?.ServiceID + \"_\" + isToggleSwitch + \"_\" + 1] = trans(\"الاختيار اجباري\");\r\n setActiceMenu(hasTintingService?.MainWebGroup);\r\n setIndexPanel(hasTintingService?.ServiceID);\r\n setActiceService(hasTintingService);\r\n } else {\r\n noteTinting += \"\\\\nزجاج خلفي:\" + evaluations[hasTintingService?.ServiceID + \"_\" + isToggleSwitch + \"_\" + 1];\r\n }\r\n if (evaluations[hasTintingService?.ServiceID + \"_\" + isToggleSwitch + \"_\" + 2] == null || evaluations[hasTintingService?.ServiceID + \"_\" + isToggleSwitch + \"_\" + 2] === \"\") {\r\n result[hasTintingService?.ServiceID + \"_\" + isToggleSwitch + \"_\" + 2] = trans(\"الاختيار اجباري\");\r\n setActiceMenu(hasTintingService?.MainWebGroup);\r\n setIndexPanel(hasTintingService?.ServiceID);\r\n setActiceService(hasTintingService);\r\n } else {\r\n noteTinting += \"\\\\nزجاج جانبي امامي:\" + evaluations[hasTintingService?.ServiceID + \"_\" + isToggleSwitch + \"_\" + 2];\r\n }\r\n if (evaluations[hasTintingService?.ServiceID + \"_\" + isToggleSwitch + \"_\" + 3] == null || evaluations[hasTintingService?.ServiceID + \"_\" + isToggleSwitch + \"_\" + 3] === \"\") {\r\n result[hasTintingService?.ServiceID + \"_\" + isToggleSwitch + \"_\" + 3] = trans(\"الاختيار اجباري\");\r\n setActiceMenu(hasTintingService?.MainWebGroup);\r\n setIndexPanel(hasTintingService?.ServiceID);\r\n setActiceService(hasTintingService);\r\n } else {\r\n noteTinting += \"\\\\nزجاج جانبي خلفي:\" + evaluations[hasTintingService?.ServiceID + \"_\" + isToggleSwitch + \"_\" + 3];\r\n }\r\n\r\n\r\n\r\n } else {\r\n\r\n if (evaluations[hasTintingService?.ServiceID + \"_\" + isToggleSwitch + \"_\" + 0] == null || evaluations[hasTintingService?.ServiceID + \"_\" + isToggleSwitch + \"_\" + 0] === \"\") {\r\n result[hasTintingService?.ServiceID + \"_\" + isToggleSwitch + \"_\" + 0] = trans(\"الاختيار اجباري\");\r\n setActiceMenu(hasTintingService?.MainWebGroup);\r\n setIndexPanel(hasTintingService?.ServiceID);\r\n setActiceService(hasTintingService);\r\n } else {\r\n noteTinting += \"\\\\n كامل زجاج السياره:\" + evaluations[hasTintingService?.ServiceID + \"_\" + isToggleSwitch + \"_\" + 0];\r\n }\r\n }\r\n\r\n }\r\n\r\n console.log(\">>>>>>>>>>>>>>>>>result\", result)\r\n setError(result);\r\n\r\n if (Object.keys(result).length == 0 && isSendeng == false) {\r\n\r\n let listofServices;\r\n\r\n allServiceID.map((item) => {\r\n\r\n if (listofServices)\r\n listofServices += \",\" + item;\r\n else\r\n listofServices = item;\r\n });\r\n setIsSendeng(false);\r\n\r\n mainNote += noteTinting;\r\n try {\r\n var myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n var raw = {\r\n \"paytype\": paymentType,\r\n \"VIN\": VIN,\r\n \"note\": mainNote,\r\n \"servicelist\": listofServices,\r\n \"callback\": window.location.origin + \"/\" + lang + `/maintenance/ProtectionAndShading/${VIN}${PUser ? '/' + PUser : ''}`\r\n };\r\n\r\n console.log(\"raw>>>>>>>>>>>>>>>>:\", raw);\r\n\r\n await axios.request({\r\n baseURL: config.paymentURL,\r\n url: \"/api/Payment/applyPaymentSalesOrdersService\",\r\n headers: myHeaders,\r\n data: raw, method: \"POST\", responseType: \"json\"\r\n })\r\n\r\n .then(async response => {\r\n console.log('Payment respons data:\\n', response.data);\r\n\r\n\r\n if (response.data.URL_Paytabs) {\r\n window.location.href = response.data.URL_Paytabs;\r\n\r\n } else if (response.data.url_payment) {\r\n window.location.href = response.data.url_payment;\r\n //site_fetchSadadCode_salesOrdersService\r\n } else {\r\n setIsSendeng(false);\r\n toast.error(trans(\"error:unknown_failure\"));\r\n }\r\n\r\n\r\n\r\n\r\n setIsSendeng(false);\r\n })\r\n .catch(function (error) {\r\n setIsSendeng(false);\r\n });\r\n\r\n } catch (error) {\r\n setIsSendeng(false);\r\n console.log(\"error:\", error);\r\n }\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n const GetUrlfunc = config.baseURL + 'func';\r\n async function GetBranch() {\r\n\r\n const Body = {\r\n \"name\": \"site_FetchMaintenanceBranches\"\r\n };\r\n\r\n await axios.request({\r\n url: GetUrlfunc,\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n\r\n setBranches(response.data);\r\n\r\n\r\n })\r\n .catch(function (error) {\r\n //////console.log(error);\r\n });\r\n\r\n\r\n }\r\n\r\n async function StatusPaymentTamaraSalesOrdersService(orderId) {\r\n console.log('StatusPaymentTamaraSalesOrdersService >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>');\r\n\r\n if (paramGUID && orderId) {\r\n\r\n\r\n\r\n try {\r\n var myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n var raw = {\r\n \"GUID\": paramGUID,\r\n \"orderId\": orderId ?? \"\"\r\n };\r\n\r\n await axios.request({\r\n baseURL: config.paymentURL,\r\n url: \"/api/Payment/StatusPaymentTamaraSalesOrdersService\",\r\n headers: myHeaders,\r\n data: raw, method: \"POST\", responseType: \"json\"\r\n }).then(async response => {\r\n console.log('StatusPaymentTamaraSalesOrdersService respons:', response);\r\n\r\n\r\n\r\n }\r\n ).catch(async error => {\r\n console.log('error StatusPaymentTamaraSalesOrdersService:', error)\r\n\r\n });\r\n } catch (error) {\r\n console.log('error', error)\r\n\r\n\r\n }\r\n }\r\n }\r\n async function StatusPaymentPayTabsSalesOrdersService() {\r\n console.log('StatusPaymentPayTabsSalesOrdersService >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>');\r\n\r\n if (paramGUID) {\r\n\r\n\r\n\r\n try {\r\n var myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n var raw = {\r\n \"GUID\": paramGUID\r\n };\r\n\r\n await axios.request({\r\n baseURL: config.paymentURL,\r\n url: \"/api/Payment/StatusPaymentPayTabsSalesOrdersService\",\r\n headers: myHeaders,\r\n data: raw, method: \"POST\", responseType: \"json\"\r\n }).then(async response => {\r\n console.log('PaymentPaytabsStatusFully respons:', response);\r\n\r\n\r\n\r\n }\r\n ).catch(async error => {\r\n console.log('error PaymentPaytabsStatusFully:', error)\r\n\r\n });\r\n } catch (error) {\r\n console.log('error', error)\r\n\r\n\r\n }\r\n }\r\n }\r\n async function StatusPaymentSadadSalesOrdersService() {\r\n console.log('StatusPaymentSadadSalesOrdersService >>>>>>>', paramGUID);\r\n\r\n if (paramGUID) {\r\n\r\n\r\n\r\n try {\r\n var myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n var raw = {\r\n \"GUID\": paramGUID\r\n };\r\n\r\n await axios.request({\r\n baseURL: config.paymentURL,\r\n url: \"/api/Payment/StatusPaymentSadadSalesOrdersService\",\r\n headers: myHeaders,\r\n data: raw, method: \"POST\", responseType: \"json\"\r\n }).then(async response => {\r\n console.log('StatusPaymentSadadSalesOrdersService respons:', response);\r\n\r\n var invoiceID = response.data.sadadNumber.replaceAll('\"', \"\");\r\n\r\n try {\r\n if (invoiceID && parseInt(invoiceID)) {\r\n var datasadad = response.data;\r\n datasadad.sadadNumber = invoiceID;\r\n setSadadInfo(datasadad);\r\n } else {\r\n setSadadInfo(response?.data);\r\n }\r\n } catch (error) {\r\n setSadadInfo(response.data);\r\n }\r\n //! اهمم مرحلة في الفحص\r\n if (invoiceID != null && invoiceID != undefined) {\r\n setShowFinalPopup(true);\r\n }\r\n\r\n }\r\n ).catch(async error => {\r\n console.log('error StatusPaymentSadadSalesOrdersService:', error)\r\n\r\n });\r\n } catch (error) {\r\n console.log('error', error)\r\n\r\n\r\n }\r\n }\r\n }\r\n useEffect(() => {\r\n\r\n if (Branches && Branches?.length > 0 && !requestForm?.SiteID) {\r\n\r\n if (Branches?.length == 1) {\r\n let val = {};\r\n val.SiteID = Branches[0]?.SiteID;\r\n setRequestForm({ ...requestForm, ...val });\r\n }\r\n\r\n }\r\n\r\n }, [Branches, requestForm]);\r\n\r\n\r\n useEffect(() => {\r\n checkDataFullNum();\r\n }, [requestForm, ServiceID, allServiceID, year, type, paymentType]);\r\n\r\n\r\n\r\n useEffect(() => {\r\n if (vModelCode != null && ServiceID && Defult?.firstFetchPrice != true) {\r\n setDefult({ ...Defult, firstFetchPrice: true });\r\n if (Defult?.modelType) {\r\n if (vModelCode[Defult?.modelType] && ServiceID)\r\n FetchPrice(vModelCode[Defult?.modelType], ServiceID);\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n }, [vModelCode, ServiceID]);\r\n\r\n\r\n\r\n return (\r\n <>\r\n {\r\n (VINDetails && brand) ?\r\n\r\n
    \r\n\r\n {/*
    \r\n {\r\n\r\n if (window.location.href.includes(\"/ar\") || window.location.href.includes(\"/en\")) {\r\n\r\n if (window.location.href.includes(\"/en\"))\r\n window.location = window.location.href.replace(\"/en\", \"/ar\");\r\n if (window.location.href.includes(\"/ar\"))\r\n window.location = window.location.href.replace(\"/ar\", \"/en\");\r\n\r\n } else {\r\n\r\n window.location = window.location.origin + \"/en\" + window.location.pathname;\r\n }\r\n }}\r\n className=\"protection-and-shading-top-lang h-full flex justify-center items-center\">\r\n\r\n {trans('common:changeLangCode')}\r\n \"change\r\n \r\n
    */}\r\n
    \r\n
    \r\n\r\n {\r\n lang == \"ar\" ?\r\n\r\n
    \r\n \"hassan\r\n \"hassan\r\n
    \r\n\r\n\r\n :\r\n\r\n
    \r\n \"hassan\r\n \"hassan\r\n
    \r\n }\r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n (brand == 1) ?\r\n <>\r\n {brand}\r\n \r\n :\r\n (\r\n (brand == 2) ?\r\n <>\r\n {brand}\r\n \r\n :\r\n null\r\n\r\n )\r\n\r\n }\r\n
    \r\n\r\n {\r\n\r\n if (window.location.href.includes(\"/ar\") || window.location.href.includes(\"/en\")) {\r\n\r\n if (window.location.href.includes(\"/en\"))\r\n window.location = window.location.href.replace(\"/en\", \"/ar\");\r\n if (window.location.href.includes(\"/ar\"))\r\n window.location = window.location.href.replace(\"/ar\", \"/en\");\r\n\r\n } else {\r\n\r\n window.location = window.location.origin + \"/en\" + window.location.pathname;\r\n }\r\n }}\r\n className=\"protection-and-shading-top-lang h-full flex justify-center items-center\">\r\n\r\n {trans('common:changeLangCode')}\r\n \"change\r\n \r\n
    \r\n\r\n\r\n
    \r\n {/*
    \r\n {\r\n lang == \"ar\" ?\r\n\r\n

    لعمر افتراضي أطول، حافظ على سيارتك

    \r\n :\r\n

    For longer longevity, maintain your vehicle

    \r\n }\r\n\r\n
    */}\r\n\r\n\r\n\r\n
    \r\n
    \r\n
    \r\n

    \r\n {trans(\"info:Pamper_your_car_and_dont_skimp_on_it\")}

    \r\n

    {trans(\"info:Congratulations_on_your_new_car\") +\r\n (requestForm?.name?.split(' ')[0] ? (lang == \"ar\" ? \" يا\" : \",\") + requestForm.name.split(' ')[0] : \" \")}

    \r\n

    {trans(\"info:These_are_some_additional_services_to_protect_the_car\")}

    \r\n {/*
    \r\n {\r\n (brand == 1) ?\r\n\r\n {brand} e.target.style.display = 'none'} />\r\n :\r\n (\r\n (brand == 2) ?\r\n {brand} e.target.style.display = 'none'} />\r\n :\r\n null\r\n\r\n )\r\n\r\n }\r\n
    */}\r\n
    \r\n\r\n {/*
    \r\n {\r\n stepNum == 1 &&\r\n <>\r\n\r\n {\r\n <>\r\n
    \r\n\r\n
    \r\n\r\n {\r\n const val = {};\r\n val.name = e.target.value;\r\n setRequestForm({ ...requestForm, ...val });\r\n }\r\n }\r\n />\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n\r\n\r\n g.brandID == brand)[0]?.description}\r\n length={255}\r\n onChangeValue={\r\n (e) => {\r\n\r\n }\r\n }\r\n />\r\n
    \r\n
    \r\n\r\n\r\n g.productGroupID == group)[0]?.description}\r\n length={255}\r\n onChangeValue={\r\n (e) => {\r\n\r\n }\r\n }\r\n />\r\n
    \r\n\r\n
    \r\n\r\n {\r\n\r\n }\r\n }\r\n />\r\n
    \r\n\r\n
    \r\n\r\n\r\n \r\n\r\n }\r\n \r\n }\r\n\r\n {\r\n
    \r\n\r\n\r\n {\r\n // Service &&\r\n // {\r\n // return { value: B.ServiceID, text: lang === 'ar' ? B.ServiceNameAR : B.ServiceName, ...B };\r\n // })]}\r\n // errorLabel={error?.ServiceID}\r\n // onfilter={(option) => {\r\n\r\n // const val = { ...requestForm };\r\n // val.ServiceID = option.value;\r\n // setRequestForm(val);\r\n\r\n // setServiceID(null);\r\n // setServiceID(option.value);\r\n // setSelectService(option);\r\n // FetchPrice(modelCode, option.value);\r\n\r\n // }}\r\n // isepart={true}\r\n // isLoading={lodingService}\r\n // selectedValue={ServiceID ? ServiceID : requestForm?.ServiceID}\r\n // defaultOption={{ value: selsub0.ID, text: trans(\"info:servce\") }}\r\n\r\n // />\r\n\r\n // {\r\n // const val = {};\r\n // val.ServiceID = e.target.value;\r\n // setRequestForm({ ...requestForm, ...val });\r\n // }\r\n // }\r\n // />\r\n }\r\n\r\n\r\n
    \r\n\r\n }\r\n
    */}\r\n
    \r\n\r\n
    \r\n\r\n\r\n\r\n {\r\n Service &&\r\n
    \r\n
    \r\n {/* menu tabs */}\r\n
    \r\n \r\n\r\n {[{ name: \"الباقات التوفيرية\", id: \"Saving Packages\" }, { name: \"الحماية والتظليل\", id: \"Protection And Shading\" }, { name: \"خدمات خاصة\", id: \"Special Services\" }]?.map((_val, _index) => {\r\n return (\r\n\r\n \r\n
    {\r\n setActiceService(null);\r\n setActiceMenu(_val.id);\r\n setIndexPanel(null);\r\n }}>\r\n\r\n
    \r\n

    {lang == \"ar\" ? _val.name : _val.id}

    \r\n
    \r\n\r\n {/*
    \r\n {\r\n const isChecked = target.checked;\r\n\r\n if (isChecked) {\r\n // Add the service to the lists\r\n setAllSelectServices(prevServices => [...prevServices, _val]);\r\n\r\n setAllServiceID(prevServiceIDs => [...prevServiceIDs, _val.ServiceID]);\r\n } else {\r\n // Remove the service from the lists\r\n setAllSelectServices(prevServices =>\r\n prevServices.filter(service => service !== _val)\r\n );\r\n\r\n setAllServiceID(prevServiceIDs =>\r\n prevServiceIDs.filter(id => !_val.ServiceID.includes(id))\r\n );\r\n }\r\n\r\n }}\r\n Name={\"23-44\"}\r\n >\r\n \r\n
    \r\n */}\r\n
    \r\n
    \r\n\r\n );\r\n })}\r\n\r\n\r\n\r\n \r\n
    \r\n {/* body */}\r\n
    \r\n {\r\n Service?.filter(s => s.MainWebGroup == acticeMenu).map((_Srtvice, _index) => {\r\n return (\r\n
    \r\n
    \r\n
    {\r\n setIndexPanel(null);\r\n setActiceService(null);\r\n if (indexPanel != _Srtvice.ServiceID) {\r\n setIndexPanel(_Srtvice.ServiceID);\r\n setActiceService(_Srtvice);\r\n }\r\n\r\n\r\n }}\r\n\r\n\r\n >\r\n
    \r\n

    \r\n {lang == \"ar\" ? _Srtvice.ServiceNameAR : _Srtvice.ServiceName}

    \r\n\r\n
    \r\n\r\n {\r\n _Srtvice?.Price && \r\n }\r\n
    \r\n
    \r\n\r\n \r\n
    \r\n\r\n
    \r\n\r\n
      \r\n {\r\n _Srtvice[lang == \"ar\" ? \"ServiceDetails\" : \"ServiceDetailsEn\"]?.replaceAll(\"\\\\n\\\\n\", \"\\\\n\")?.split('\\n').filter(a => a)?.map((note, index) => {\r\n\r\n return (\r\n\r\n note ?\r\n
    • \r\n {note}\r\n
    • \r\n : null\r\n\r\n );\r\n })\r\n }\r\n\r\n\r\n
    \r\n\r\n\r\n\r\n\r\n {\r\n acticeService && (acticeService?.text?.includes(\"تظليل\") || acticeService?.text?.includes(\"Tinting\") || acticeService[\"ServiceDetailsEn\"]?.includes(\"tinting\")\r\n || acticeService[\"ServiceDetails\"]?.includes(\"تظليل\")) &&\r\n
    \r\n
    \r\n
    \r\n
    \r\n {trans('info:Degree_of_shading')}\r\n
    \r\n\r\n\r\n
    \r\n\r\n
    \r\n {\r\n console.log(\"setIsToggleSwitch:\", isToggleSwitch)\r\n setIsToggleSwitch(isToggleSwitch ? false : true)\r\n\r\n }}\r\n />\r\n \r\n
    \r\n

    {trans('info:multiple_degrees')}

    \r\n
    \r\n
    \r\n
    \r\n\r\n {\r\n\r\n (isToggleSwitch) ?\r\n\r\n\r\n [trans('info:full_car_glass')].map((item, index) => (\r\n\r\n {\r\n\r\n var evalua = { ...evaluations };\r\n evalua[acticeService?.ServiceID + \"_\" + isToggleSwitch + \"_\" + index] = val;\r\n // avg = avg + val;\r\n setEvaluations(evalua);\r\n\r\n }}\r\n />\r\n ))\r\n\r\n\r\n :\r\n\r\n\r\n acticeService ?\r\n evaluationOptions?.map((item, index) => (\r\n\r\n {\r\n\r\n var evalua = { ...evaluations };\r\n evalua[acticeService?.ServiceID + \"_\" + isToggleSwitch + \"_\" + index] = val;\r\n // avg = avg + val;\r\n console.log(\"evalua\", evalua);\r\n setEvaluations(evalua);\r\n\r\n }}\r\n />\r\n ))\r\n : null\r\n\r\n }\r\n
    \r\n
    \r\n
    \r\n }\r\n {\r\n\r\n if (!allServiceID.includes(_Srtvice.ServiceID)) {\r\n // Add the service to the lists\r\n setAllSelectServices(prevServices => [...prevServices, _Srtvice]);\r\n\r\n setAllServiceID(prevServiceIDs => [...prevServiceIDs, _Srtvice.ServiceID]);\r\n } else {\r\n // Remove the service from the lists\r\n setAllSelectServices(prevServices =>\r\n prevServices.filter(service => service !== _Srtvice)\r\n );\r\n\r\n setAllServiceID(prevServiceIDs =>\r\n prevServiceIDs.filter(id => !_Srtvice.ServiceID.includes(id))\r\n );\r\n }\r\n }}\r\n className=\"protection-and-shading-menu-addbtn h-full flex justify-center items-center\">\r\n {\r\n\r\n allServiceID.includes(_Srtvice.ServiceID) ?\r\n <>\r\n {\" - \"}\r\n {trans('common:cancel')}\r\n \r\n\r\n :\r\n <>\r\n {\" + \"}\r\n {trans('common:addition')}\r\n \r\n\r\n\r\n }\r\n\r\n\r\n \r\n\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n );\r\n })\r\n // < div className=\"panel-section panel-white bg-theme-up w-100 \">\r\n // \r\n // {\r\n\r\n //
    \r\n // {\r\n\r\n // acticeService && acticeService[lang == \"ar\" ? \"ServiceDetails\" : \"ServiceDetailsEn\"] &&\r\n // <>\r\n\r\n //
      \r\n\r\n // {\r\n // acticeService[lang == \"ar\" ? \"ServiceDetails\" : \"ServiceDetailsEn\"]?.replaceAll(\"\\\\n\\\\n\", \"\\\\n\")?.split('\\n').filter(a => a)?.map((note, index) => {\r\n // return (\r\n\r\n\r\n //
    • \r\n // {note}\r\n //
    • \r\n // );\r\n // })\r\n // }\r\n\r\n\r\n //
    \r\n // {\r\n // indexPanel != \"2000\" && acticeService[lang == \"ar\" ? \"ServiceDetails\" : \"ServiceDetailsEn\"]?.replaceAll(\"\\\\n\\\\n\", \"\\\\n\")?.split('\\n').filter(a => a)?.length > 2 &&\r\n // < span className=\"mx-10 text-30 text-bold text-primary\">\r\n // {\"...\"}\r\n // }\r\n\r\n\r\n\r\n // \r\n\r\n // }\r\n\r\n //
    \r\n\r\n\r\n // }\r\n\r\n\r\n\r\n // setIndexPanel(indexPanel == \"2000\" ? \"000\" : \"2000\")}\r\n // >\r\n\r\n // \r\n //
    \r\n //
    \r\n\r\n\r\n //
    \r\n }\r\n\r\n\r\n
    \r\n \r\n \r\n }\r\n\r\n\r\n {/* menu tabs */}\r\n {\r\n allselectServices && allselectServices.length > 0 &&\r\n
    \r\n\r\n
    \r\n

    \r\n {trans(\"info:الخدمات المضافة \")}

    \r\n
    \r\n
    \r\n \r\n\r\n {allselectServices?.map((_val, _index) => {\r\n return (\r\n\r\n \r\n
    \r\n\r\n
    \r\n {\r\n const isChecked = target.checked;\r\n\r\n if (isChecked) {\r\n // Add the service to the lists\r\n setAllSelectServices(prevServices => [...prevServices, _val]);\r\n\r\n setAllServiceID(prevServiceIDs => [...prevServiceIDs, _val.ServiceID]);\r\n } else {\r\n // Remove the service from the lists\r\n setAllSelectServices(prevServices =>\r\n prevServices.filter(service => service !== _val)\r\n );\r\n\r\n setAllServiceID(prevServiceIDs =>\r\n prevServiceIDs.filter(id => !_val.ServiceID.includes(id))\r\n );\r\n }\r\n\r\n }}\r\n Name={\"23-44\"}\r\n >\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n );\r\n })}\r\n\r\n\r\n\r\n \r\n
    \r\n
    \r\n }\r\n
    \r\n {\r\n allselectServices && allselectServices.length > 0 &&\r\n
    \r\n\r\n {\r\n allselectServices?.map((_val, _index) => {\r\n return (\r\n\r\n
    \r\n
    {lang == \"ar\" ? _val.ServiceNameAR : _val.ServiceName} 
    \r\n
    {_val?.Price ? : \"\"}
    \r\n\r\n
    \r\n\r\n );\r\n })\r\n }\r\n
    \r\n }\r\n\r\n {\r\n allselectServices && allselectServices.length > 0 &&\r\n
    \r\n
    {trans(\"new:total\")} {trans(\"new:total_include_tax\")}
    \r\n
    {allselectServices?.reduce((total, service) => total + service.Price, 0) ? total + service.Price, 0)} className={\"white-space-pre\"} /> : \"\"}
    \r\n
    \r\n }\r\n\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n {\r\n setNote(data);\r\n }}\r\n />\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n

    {trans(\"new:pay_method\")}

    \r\n\r\n
    \r\n
    \r\n\r\n\r\n {\r\n\r\n
    \r\n \r\n
    \r\n {\"master\"}\r\n {\"visa\"}\r\n {\"mada\"}\r\n\r\n
    \r\n\r\n
    \r\n\r\n\r\n }\r\n\r\n\r\n\r\n {\r\n
    \r\n \r\n \r\n \r\n
    \r\n\r\n }\r\n\r\n\r\n
    \r\n \r\n\r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n\r\n
    \r\n {\r\n\r\n
    \r\n {\r\n\r\n
    \r\n
    \r\n
    = 2 ? \" bg-primary \" : \" bg-gray \")} onClick={() => {\r\n\r\n setIsSendeng(false);\r\n\r\n if (dataFullNum >= 2 && isSendeng == false)\r\n SendResreve(PVIN, ServiceID, VINDetails[0]?.CustID, infoPrice[0].Price);\r\n\r\n }}>\r\n {\r\n (orderReservation) ?\r\n trans(\"info:save_changes\")\r\n :\r\n trans(\"cartFile:comlete_buying\")\r\n\r\n }\r\n\r\n {\r\n isSendeng && \r\n \r\n \r\n }\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n\r\n\r\n }\r\n\r\n
    \r\n }\r\n\r\n \r\n\r\n :\r\n <>\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n }\r\n\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n {trans(\"new:thank_to_choose\")}\r\n {trans(\"new:HJ_cars\")}\r\n
    \r\n\r\n {\r\n showFinalPopupMessage &&\r\n <>\r\n
    \r\n {showFinalPopupMessage}\r\n
    \r\n\r\n \r\n\r\n }\r\n {\r\n VINDetails && VINDetails.length > 0 &&\r\n <>\r\n
    \r\n {trans(\"new:The_appointment_has_been_booked\")}\r\n
    \r\n\r\n {filteredSettings?.groups?.filter(s => s.productGroupID == group).length > 0 &&\r\n
    \r\n \r\n {filteredSettings?.groups?.filter(s => s.productGroupID == group)[0]?.description}\r\n {` (${PVIN}) `}\r\n
    \r\n }\r\n \r\n {\r\n\r\n resOrderID &&\r\n
    {\r\n\r\n navigator.clipboard.writeText(resOrderID);\r\n }}\r\n\r\n >\r\n\r\n {trans(\"new:Reservation_number\") + \" :\"}\r\n {resOrderID && resOrderID}\r\n \r\n
    \r\n }\r\n\r\n \r\n\r\n }\r\n
    \r\n
    \r\n
    {\r\n\r\n setShowFinalPopup(false);\r\n setResOrderID(null);\r\n if (location.pathname)\r\n history.push(\"/\");\r\n\r\n }}>\r\n {trans(\"cartFile:Continue_browsing\")}\r\n
    \r\n
    \r\n
    \r\n\r\n\r\n
    \r\n\r\n
    \r\n\r\n {\r\n\r\n orderReservation && orderReservation?.OrderStatusID && orderReservation?.OrderStatusID == \"Created\" &&\r\n\r\n\r\n
    \r\n
    \r\n
    {\r\n\r\n var threeDaysFromNow = new Date();\r\n if (orderReservation?.DateIn)\r\n threeDaysFromNow = new Date(orderReservation?.DateIn);\r\n if (orderReservation?.Note)\r\n setNote(orderReservation?.Note);\r\n\r\n setRequestForm({\r\n ...requestForm,\r\n date: threeDaysFromNow,\r\n time: orderReservation ? threeDaysFromNow : \"\"\r\n });\r\n\r\n setShowFinalPopup(false);\r\n\r\n }}>\r\n\r\n\r\n {/* \"\" */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {trans(\"info:edit\") + \" \" + trans(\"info:the_appointment\")}\r\n\r\n
    \r\n
    \r\n
    \r\n\r\n }\r\n
    \r\n
    \r\n\r\n \r\n );\r\n}","import { useEffect, useState, useRef,useCallback } from \"react\";\r\nimport axios from \"axios\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport moment from \"moment\";\r\nimport Popup from \"../../User/popup\";\r\nimport { DropDownInput } from \"../../components/_input/_dropdown\";\r\nimport { TextArea } from \"../../components/_input/_textArea\";\r\nimport { DateInput3 } from \"../../components/_input/_dateInput_3\";\r\nimport { InputField } from \"../../components/_input/_input\";\r\nimport { Route, Switch, useRouteMatch } from \"react-router\";\r\nimport PhoneDropDown from \"../../components/_input/_phoneDropDown\";\r\nimport config from '../../configuration/config.json';\r\nimport MainSericePage from '../maintenance/subpages/mainServicePage';\r\nimport MaintenanceContext from \"./maintenanceContext\";\r\nimport SubMainServicePage from \"./subpages/subMainServicePage\";\r\nimport SubServicePage from \"./subpages/subServicePage\";\r\nimport ServicePage from \"./subpages/servicePage\";\r\nimport { ServiceReservation } from \"./serviceReservation\";\r\nimport { ServiceReservationByID } from \"./serviceReservationByID\";\r\nimport { ProtectionAndShading } from \"./protectionAndShading\";\r\nimport DatePicker from 'react-datepicker';\r\nimport { useHistory, useLocation } from \"react-router\";\r\nimport { GetMessages, formValidate } from '../../utils/validation';\r\nimport Joi from \"joi\";\r\nimport { useUserCart } from '../../User/hooks/useUserCart';\r\nimport { getData, User_Data_Key } from \"../../utils/localStorageManager\";\r\nimport { toast } from \"react-toastify\";\r\nimport { Helmet } from \"react-helmet\";\r\nexport function MaintenancePage() {\r\n const { t: trans, i18n } = useTranslation([\"info\", \"eparts\"]);\r\n const { path } = useRouteMatch();\r\n let lang = i18n.language;\r\n const [showFinalPopup, setShowFinalPopup] = useState(false);\r\n const popRef = useRef(null);\r\n const [resOrderID, setResOrderID] = useState(null);\r\n const history = useHistory();\r\n const { changecartItem } = useUserCart();\r\n const [stepNum, setStepNum] = useState(1);\r\n const [dataFullNum, setDataFullNum] = useState(0);\r\n const [ServicesDataJson, setServiceDataJson] = useState({});\r\n const location = useLocation();\r\n\r\n useEffect(() => {\r\n\r\n function handleClickOutside(event) {\r\n if (popRef.current && !popRef.current.contains(event.target) && showFinalPopup === true) {\r\n setShowFinalPopup(false);\r\n setResOrderID(null);\r\n if (location.pathname)\r\n history.push(location.pathname);\r\n\r\n }\r\n }\r\n document.addEventListener(\"mousedown\", handleClickOutside);\r\n return () => {\r\n document.removeEventListener(\"mousedown\", handleClickOutside);\r\n };\r\n }, [showFinalPopup]);\r\n\r\n\r\n //--------------------------------------------------\r\n const [maintenanceObj, setMaintenanceObj] = useState({\r\n showPopup: false, type: \"Notset\", main: \"\", sub1: \"\", sub2: \"\"\r\n });\r\n const [Defult, setDefult] = useState({\r\n showPopup: false, type: \"Notset\", main: \"\", sub1: \"\", sub2: \"\"\r\n });\r\n\r\n const [infoPrice, setinfoPrice] = useState([{ Price: 0 }]);\r\n const [isLogin, setLogin] = useState(false);\r\n const [isSendeng, setIsSendeng] = useState(false);\r\n const [requestForm, setRequestForm] = useState({\r\n lastName: '',\r\n firstName: '',\r\n phone: '',\r\n email: '',\r\n subject: '',\r\n date: '',\r\n time: '',\r\n messageContent: '',\r\n myCarID: '',\r\n SiteID: null,\r\n });\r\n const LoginSchema = Joi.object({\r\n date: Joi.date().required().messages(GetMessages()),\r\n time: Joi.date().required().messages(GetMessages()),\r\n SerciveID: Joi.string().required().messages(GetMessages()),\r\n SiteID: Joi.string().required().messages(GetMessages()),\r\n });\r\n const notLoginSchema = Joi.object({\r\n date: Joi.date().required().messages(GetMessages()),\r\n time: Joi.date().required().messages(GetMessages()),\r\n SiteID: Joi.string().required().messages(GetMessages()),\r\n SerciveID: Joi.string().required().messages(GetMessages()),\r\n firstName: Joi.string().required().messages(GetMessages()),\r\n lastName: Joi.string().required().messages(GetMessages()),\r\n phone: Joi.string().required().messages(GetMessages()),\r\n year: Joi.string().required().messages(GetMessages())\r\n });\r\n\r\n\r\n const [filteredSettings, setFilteredSettings] = useState({\r\n brands: [],\r\n groups: [],\r\n models: [],\r\n productModels: []\r\n });\r\n\r\n\r\n const [settings, setSettings] = useState({\r\n brands: [],\r\n groups: [],\r\n models: [],\r\n productModels: []\r\n });\r\n const [brand, setBrand] = useState(null);\r\n const [type, setType] = useState(null);\r\n const [groupData, setGroupData] = useState([]);\r\n const [group, setGroup] = useState(null);\r\n const [vModelCode, setVModelCode] = useState([]);\r\n const [year, setYear] = useState(null);\r\n const handleFilteredModels = (option, vYear = year) => {\r\n\r\n setGroup(null);\r\n setType(null);\r\n setFilteredSettings({ ...filteredSettings, models: [], productModels: [] });\r\n setGroup(option);\r\n var fModels = [];\r\n try {\r\n\r\n const currentgroupData = settings?.groups?.filter(a => a.brandID == brand && a.productGroupID == option && a.Year == vYear);\r\n const ListTreeGroups = (currentgroupData && currentgroupData?.length > 0) ? currentgroupData[0].ListTreeGroups : option;\r\n\r\n // Split the comma-separated string into an array\r\n const listVArray = ListTreeGroups.split(',');\r\n\r\n // Assuming settings.productModels is an array of objects with properties productGroupID and Model\r\n fModels = settings?.productModels?.filter(a =>\r\n listVArray.includes(a.productGroupID) && a.Model == vYear\r\n );\r\n } catch {\r\n\r\n fModels = settings?.productModels?.filter(a => a.productGroupID == option && a.Model == vYear);\r\n }\r\n\r\n\r\n\r\n\r\n\r\n setFilteredSettings({ ...filteredSettings, productModels: fModels });\r\n\r\n };\r\n\r\n const handelSelectBrand = (option, vYear = year) => {\r\n setBrand(null);\r\n setType(null);\r\n setGroup(null);\r\n\r\n setFilteredSettings({ ...settings, groups: [], models: [], productModels: [] });\r\n setGroupData([]);\r\n setBrand(option);\r\n\r\n\r\n const fGroups = settings?.groups?.filter(a => a.brandID == option && a.Year == vYear);\r\n\r\n setFilteredSettings({ ...settings, groups: fGroups, models: [], productModels: [] });\r\n setGroupData(fGroups);\r\n\r\n };\r\n\r\n\r\n useEffect(() => {\r\n\r\n\r\n // && filteredSettings?.groups?.length == 0\r\n if (settings?.brands && settings?.brands.length > 0 && Defult?.first != true\r\n ) {\r\n\r\n if (Defult?.year) {\r\n setYear(Defult?.year)\r\n const val = { ...requestForm };\r\n val.year = Defult?.year;\r\n setRequestForm(val);\r\n }\r\n\r\n if (Defult?.brand)\r\n handelSelectBrand(Defult?.brand, Defult?.year);\r\n }\r\n\r\n }, [Defult, settings]);\r\n\r\n const [fullDatetime, setFullDatetime] = useState(null);\r\n useEffect(() => {\r\n\r\n try {\r\n\r\n if (requestForm?.date) {\r\n\r\n var md = new Date(requestForm?.date);\r\n try {\r\n if (requestForm?.time) {\r\n\r\n var Hours = requestForm?.time.split(\":\");\r\n\r\n md.setHours(Hours[0], Hours[1], 0);\r\n }\r\n } catch (error) {\r\n\r\n }\r\n\r\n // var datetime = new moment(md).format('yyyy-MM-DD HH:mm:ss')\r\n var datetime = md.toLocaleDateString(\"en-GB\", { year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit', second: '2-digit' }).replaceAll(',', '').replaceAll('/', '-');\r\n setFullDatetime(datetime);\r\n console.log();\r\n }\r\n\r\n } catch (error) {\r\n }\r\n\r\n\r\n }, [requestForm]);\r\n\r\n useEffect(() => {\r\n if (settings?.brands && settings?.brands.length > 0 && filteredSettings?.groups?.length > 0 && Defult?.first != true) {\r\n\r\n setDefult({ ...Defult, first: true });\r\n if (Defult?.group)\r\n handleFilteredModels(Defult?.group);\r\n // if (Defult?.year) {\r\n // setYear(Defult?.year)\r\n // const val = { ...requestForm };\r\n // val.year = Defult?.year;\r\n // setRequestForm(val);\r\n // }\r\n\r\n if (Defult?.modelType) {\r\n setType(Defult?.modelType);\r\n }\r\n }\r\n }, [filteredSettings]);\r\n\r\n\r\n useEffect(() => {\r\n getMainUserData();\r\n }, []);\r\n const getMainUserData = async () => {\r\n let data = {};\r\n\r\n try {\r\n data = JSON.parse(getData(User_Data_Key, true));\r\n } catch (error) {\r\n\r\n }\r\n try {\r\n\r\n if (getData('isAuthenticated'))\r\n setLogin(true);\r\n } catch (err) {\r\n //////console.log(err);\r\n setLogin(false);\r\n }\r\n\r\n\r\n\r\n return data;\r\n };\r\n\r\n const fetchSettings = async () => {\r\n try {\r\n\r\n if (\"caches\" in window) {\r\n var curl = \"Settings-\" + lang;\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"HJWeb\");\r\n\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n curl\r\n );\r\n var settingResponseCash = await cachedResponse?.json();\r\n\r\n const currentSettings = { ...settings };\r\n currentSettings.brands = settingResponseCash?.brands;\r\n currentSettings.groups = settingResponseCash?.groups;\r\n currentSettings.models = settingResponseCash?.models;\r\n currentSettings.productModels = settingResponseCash?.productModels;\r\n setSettings(currentSettings);\r\n\r\n const fGroups = currentSettings?.groups?.filter(a => a.brandID == brand);\r\n setGroupData(fGroups);\r\n //---------------------------------------------------------------\r\n let currentvModelCode = {};\r\n currentSettings?.productModels?.map((item) => {\r\n if (item.ModelCode) {\r\n currentvModelCode[item.productTypeID] = item.ModelCode;\r\n }\r\n })\r\n setVModelCode(currentvModelCode);\r\n }\r\n\r\n\r\n const settingResponse = await axios.request({\r\n baseURL: '/',\r\n url: config.controllURL + lang + \"/api/Maintenance/Settings\",\r\n method: \"get\"\r\n });\r\n\r\n const currentSettings = { ...settings };\r\n currentSettings.brands = settingResponse.data?.brands;\r\n currentSettings.groups = settingResponse.data?.groups;\r\n currentSettings.models = settingResponse.data?.models;\r\n currentSettings.productModels = settingResponse.data?.productModels;\r\n\r\n setSettings(currentSettings);\r\n\r\n const fGroups = currentSettings?.groups?.filter(a => a.brandID == brand);\r\n setGroupData(fGroups);\r\n //---------------------------------------------------------------\r\n\r\n let currentvModelCode = {};\r\n currentSettings?.productModels?.map((item) => {\r\n currentvModelCode[item.productTypeID] = item.ModelCode\r\n\r\n })\r\n\r\n //////console.log(\"currentvModelCode>>>>>>>>>\", currentvModelCode);\r\n setVModelCode(currentvModelCode);\r\n\r\n const data = new Response(JSON.stringify(settingResponse.data));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"HJWeb\").then((cache) => {\r\n cache.put(\"Settings-\" + lang, data);\r\n\r\n });\r\n }\r\n\r\n } catch (error) {\r\n //////console.log(error);\r\n }\r\n\r\n };\r\n\r\n \r\n const handleServiceOrder = useCallback(async (data) => {\r\n\r\n try {\r\n data['firstFetchPrice'] = null;\r\n data['first'] = null;\r\n\r\n\r\n var serviceOptions = data.serviceOptions;\r\n var objectservicesJON = {};\r\n if (serviceOptions && serviceOptions.length > 0 && data.sub2) {\r\n objectservicesJON[`${data.sub2}`] = serviceOptions;\r\n setServiceDataJson(objectservicesJON);\r\n }\r\n setSerciveID(null);\r\n\r\n setRequestForm({\r\n lastName: null,\r\n firstName: null,\r\n phone: null,\r\n email: null,\r\n subject: null,\r\n date: null,\r\n time: null,\r\n messageContent: null,\r\n myCarID: null,\r\n });\r\n\r\n setStepNum(1);\r\n setDataFullNum(0);\r\n\r\n setselsub0({ ID: \"0\", desAr: \"اختيار قيمة\", desEn: \"chose\" });\r\n setService([]);\r\n setinfoPrice([{ Price: 0 }]);\r\n\r\n var value = { ...maintenanceObj, ...data };\r\n if (data?.main == '') {\r\n\r\n data['main'] = null;\r\n }\r\n if (data?.sub1 == '') {\r\n\r\n data['sub1'] = null;\r\n }\r\n if (data?.sub2 == '') {\r\n\r\n data['sub2'] = null;\r\n\r\n\r\n }\r\n\r\n setMainServiceID(data?.main);\r\n setSubServiceID(data?.sub1);\r\n setTypeServiceID(data?.sub2);\r\n setDefult(data);\r\n\r\n if (getData('isAuthenticated') && data?.modelType == null) {\r\n GetVehicales();\r\n\r\n } else {\r\n\r\n fetchSettings();\r\n }\r\n\r\n fetchMainService(data);\r\n GetBranch();\r\n\r\n setSubService1([]);\r\n setSubService2([]);\r\n setService([]);\r\n\r\n if (value.type === \"order\") {\r\n\r\n setselMain({ ID: \"0\", desAr: \"اختيار قيمة\", desEn: \"chose\" });\r\n setselsub1({ ID: \"0\", desAr: \"اختيار قيمة\", desEn: \"chose\" });\r\n setselsub2({ ID: \"0\", desAr: \"اختيار قيمة\", desEn: \"chose\" });\r\n\r\n }\r\n setTimeout(() => {\r\n if (value.type === 'main') {\r\n var main = { value: data.main, sub1: data.sub1 }\r\n fetchSubService(data);\r\n setselsub2({ ID: \"0\", desAr: \"اختيار قيمة\", desEn: \"chose\" });\r\n\r\n } else if (value.type === 'sub1') {\r\n var main = { value: data.main }\r\n fetchSubService(data);\r\n var sub1 = { value: data.sub1, ServiceID: data?.ServiceID }\r\n fetchSubService2(data);\r\n\r\n } else if (value.type == 'sub2') {\r\n \r\n var main = { value: data.main }\r\n fetchSubService(data);\r\n var sub1 = { value: data.sub1, ServiceID: data?.ServiceID }\r\n fetchSubService2(data,objectservicesJON);\r\n var sub2 = { value: data.sub2, ServiceID: data?.ServiceID }\r\n \r\n fetchService(sub2, null, objectservicesJON);\r\n\r\n\r\n }\r\n setTimeout(() => { setMaintenanceObj(value) }, 1000);\r\n\r\n }, 0,[ServicesDataJson]);\r\n } catch (e) {\r\n console.error(e)\r\n\r\n }\r\n\r\n\r\n\r\n\r\n\r\n \r\n }, [ServicesDataJson]);\r\n const [Note, setNote] = useState(\"\");\r\n\r\n const [MainServic, setMainServic] = useState([]);\r\n async function fetchMainService(opiton) {\r\n\r\n try {\r\n if (\"caches\" in window) {\r\n var curl = \"site_fetchMainService_Req\";\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"HJWeb\");\r\n\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n curl\r\n );\r\n var datacash = await cachedResponse?.json();\r\n if (datacash && datacash?.length > 0) {\r\n\r\n setTimeout(setMainServic(datacash), 1000);\r\n if (opiton.main)\r\n datacash?.map((B) => {\r\n if (B.MainServiceID === opiton.main) {\r\n const v = selMain;\r\n v.desAr = B.DescriptionAr;\r\n v.desEn = B.DescriptionEn;\r\n v.ID = B.MainServiceID;\r\n // setselMain(v);\r\n ////////console.log(v);\r\n }\r\n })\r\n }\r\n\r\n\r\n\r\n }\r\n } catch (error) {\r\n\r\n }\r\n\r\n const Body = {\r\n \"name\": \"site_fetchMainService_Req\"\r\n }\r\n\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n // //////console.log(response.data.ApiObjectData);\r\n setTimeout(setMainServic(response.data), 1000);\r\n if (opiton.main)\r\n response.data.map((B) => {\r\n if (B.MainServiceID === opiton.main) {\r\n const v = selMain;\r\n v.desAr = B.DescriptionAr;\r\n v.desEn = B.DescriptionEn;\r\n v.ID = B.MainServiceID;\r\n // setselMain(v);\r\n ////////console.log(v);\r\n }\r\n })\r\n\r\n const data = new Response(JSON.stringify(response.data));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"HJWeb\").then((cache) => {\r\n cache.put(\"site_fetchMainService_Req\", data);\r\n\r\n });\r\n }\r\n\r\n\r\n })\r\n .catch(function (error) {\r\n //////console.log(error);\r\n });\r\n\r\n\r\n\r\n }\r\n const [SubService1, setSubService1] = useState([]);\r\n async function fetchSubService(option) {\r\n\r\n\r\n setselsub1({ ID: \"0\", desAr: \"اختيار قيمة\", desEn: \"chose\" });\r\n setselsub2({ ID: \"0\", desAr: \"اختيار قيمة\", desEn: \"chose\" });\r\n setselsub0({ ID: \"0\", desAr: \"اختيار قيمة\", desEn: \"chose\" });\r\n setSubService1([]);\r\n setSubService2([]);\r\n setService([]);\r\n setinfoPrice([{ Price: 0 }]);\r\n var SID = option.main ? option.main : option.value;\r\n\r\n // if (SID != \"9ceb8b65-14a4-4a61-9223-a06ae0db53cf\") {\r\n\r\n\r\n if (\"caches\" in window) {\r\n var curl = \"site_fetchMntc_SubService1-\" + SID;\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"HJWeb\");\r\n\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n curl\r\n );\r\n var settingResponseCash = await cachedResponse?.json();\r\n\r\n if (settingResponseCash && settingResponseCash?.length > 0) {\r\n setTimeout(setSubService1(settingResponseCash), 1000);\r\n\r\n if (settingResponseCash.length == 1 || SID == \"9ceb8b65-14a4-4a61-9223-a06ae0db53cf\") {\r\n\r\n ////console.log(\"settingResponseCash>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>:\", settingResponseCash);\r\n if (SID == \"9ceb8b65-14a4-4a61-9223-a06ae0db53cf\" && settingResponseCash && settingResponseCash[1]) {\r\n setFirestOptionService1(settingResponseCash[0])\r\n } else {\r\n\r\n setFirestOptionService1(settingResponseCash[0])\r\n }\r\n }\r\n if (option.sub1)\r\n settingResponseCash?.map((B) => {\r\n if (B.SubService1ID === option.sub1) {\r\n const v = selsub1;\r\n v.desAr = B.DescriptionAr;\r\n v.desEn = B.DescriptionEn;\r\n v.ID = B.SubService1ID;\r\n setselsub1(v);\r\n\r\n }\r\n }\r\n )\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n const Body = {\r\n \"name\": \"site_fetchMntc_SubService1\",\r\n \"values\": {\r\n \"MainID\": option.main ? option.main : option.value\r\n }\r\n }\r\n\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n // //////console.log(response.data.ApiObjectData);\r\n setTimeout(setSubService1(response.data), 1000);\r\n\r\n if (response?.data.length == 1 || SID == \"9ceb8b65-14a4-4a61-9223-a06ae0db53cf\") {\r\n\r\n if (SID == \"9ceb8b65-14a4-4a61-9223-a06ae0db53cf\") {\r\n setFirestOptionService1(response?.data[0])\r\n } else {\r\n\r\n setFirestOptionService1(response?.data[0])\r\n }\r\n }\r\n if (option.sub1)\r\n response.data.map((B) => {\r\n if (B.SubService1ID === option.sub1) {\r\n const v = selsub1;\r\n v.desAr = B.DescriptionAr;\r\n v.desEn = B.DescriptionEn;\r\n v.ID = B.SubService1ID;\r\n setselsub1(v);\r\n\r\n }\r\n }\r\n )\r\n\r\n\r\n const data = new Response(JSON.stringify(response.data));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"HJWeb\").then((cache) => {\r\n cache.put(\"site_fetchMntc_SubService1-\" + SID, data);\r\n\r\n });\r\n }\r\n\r\n\r\n\r\n })\r\n .catch(function (error) {\r\n //////console.log(error);\r\n });\r\n\r\n\r\n // }\r\n }\r\n const [SubService2, setSubService2] = useState([]);\r\n async function fetchSubService2(option,objectservicesJON) {\r\n\r\n\r\n setselsub2({ ID: \"0\", desAr: \"اختيار قيمة\", desEn: \"chose\" });\r\n setselsub0({ ID: \"0\", desAr: \"اختيار قيمة\", desEn: \"chose\" });\r\n setSubService2([]);\r\n setService([]);\r\n setinfoPrice([{ Price: 0 }]);\r\n\r\n var getFirestOption = false;\r\n\r\n var SID = option.sub1 ? option.sub1 : option.value;\r\n\r\n //////console.log(\"fetchSubService2PPPPPPPPPPPPPPPPPPPPPPPPPP?\",SID);\r\n if (\"caches\" in window) {\r\n var curl = \"site_fetchMntc_SubService2-\" + SID;\r\n\r\n // Opening that particular cache\r\n const cacheStorage = await caches.open(\"HJWeb\");\r\n\r\n // Fetching that particular cache data\r\n const cachedResponse = await cacheStorage.match(\r\n curl\r\n );\r\n var settingResponseCash = await cachedResponse?.json();\r\n\r\n if (settingResponseCash && settingResponseCash?.length > 0) {\r\n setTimeout(setSubService2(settingResponseCash), 100);\r\n if (settingResponseCash?.length == 1 || SID == \"a4df3008-2236-4455-854b-da6ddd592364\" || SID == \"22d24d95-04cd-4c88-88ec-317d940231e0\"\r\n || SID == \"619b5424-1a20-4e01-950a-a8d87f9f1c7e\") {\r\n getFirestOption = true;\r\n\r\n\r\n if (SID == \"a4df3008-2236-4455-854b-da6ddd592364\" || SID == \"22d24d95-04cd-4c88-88ec-317d940231e0\" || SID == \"619b5424-1a20-4e01-950a-a8d87f9f1c7e\") {\r\n setFirestOption(settingResponseCash[1], SID, option?.SerciveID,objectservicesJON)\r\n\r\n } else {\r\n\r\n setFirestOption(settingResponseCash[0], SID, option?.SerciveID,objectservicesJON)\r\n }\r\n }\r\n\r\n if (option.sub2)\r\n settingResponseCash?.map((B) => {\r\n if (B.SubService2ID === option.sub2) {\r\n const v = selsub2;\r\n v.desAr = B.DescriptionAr;\r\n v.desEn = B.DescriptionEn;\r\n v.ID = B.SubService2ID;\r\n setselsub2(v);\r\n ////////console.log(v);\r\n }\r\n })\r\n }\r\n\r\n\r\n\r\n }\r\n const Body = {\r\n \"name\": \"site_fetchMntc_SubService2\",\r\n \"values\": {\r\n \"SubID\": option.sub1 ? option.sub1 : option.value\r\n }\r\n }\r\n\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n\r\n setTimeout(setSubService2(response.data), 100);\r\n if (response?.data.length == 1 || SID == \"a4df3008-2236-4455-854b-da6ddd592364\" || SID == \"22d24d95-04cd-4c88-88ec-317d940231e0\"\r\n || SID == \"619b5424-1a20-4e01-950a-a8d87f9f1c7e\") {\r\n\r\n if (getFirestOption == false) {\r\n\r\n\r\n if (SID == \"a4df3008-2236-4455-854b-da6ddd592364\" || SID == \"22d24d95-04cd-4c88-88ec-317d940231e0\"\r\n || SID == \"619b5424-1a20-4e01-950a-a8d87f9f1c7e\") {\r\n setFirestOption(response?.data[1], SID, option?.SerciveID,objectservicesJON)\r\n\r\n } else {\r\n\r\n setFirestOption(response?.data[0], SID, option?.SerciveID,objectservicesJON)\r\n }\r\n\r\n }\r\n\r\n }\r\n\r\n if (option.sub2)\r\n response.data.map((B) => {\r\n if (B.SubService2ID === option.sub2) {\r\n const v = selsub2;\r\n v.desAr = B.DescriptionAr;\r\n v.desEn = B.DescriptionEn;\r\n v.ID = B.SubService2ID;\r\n setselsub2(v);\r\n ////////console.log(v);\r\n }\r\n })\r\n\r\n const data = new Response(JSON.stringify(response.data));\r\n\r\n if (\"caches\" in window) {\r\n // Opening given cache and putting our data into it\r\n caches.open(\"HJWeb\").then((cache) => {\r\n cache.put(\"site_fetchMntc_SubService2-\" + SID, data);\r\n\r\n });\r\n }\r\n\r\n })\r\n .catch(function (error) {\r\n //////console.log(error);\r\n });\r\n\r\n\r\n\r\n }\r\n \r\n const [Service, setService] = useState([]);\r\n const [lodingService, setLodingService] = useState(false);\r\n async function fetchService(option, subServiceID, objectservicesJON = ServicesDataJson) {\r\n setselsub0({ ID: \"0\", desAr: \"اختيار قيمة\", desEn: \"chose\" });\r\n setService([]);\r\n setinfoPrice([{ Price: 0 }]);\r\n\r\n setLodingService(true);\r\n\r\n if (objectservicesJON[option.value]) {\r\n\r\n var responseData = objectservicesJON[option.value];\r\n setTimeout(setService(responseData), 1000);\r\n if (responseData.length == 1 || subServiceID == \"a4df3008-2236-4455-854b-da6ddd592364\" || subServiceID == \"22d24d95-04cd-4c88-88ec-317d940231e0\"\r\n || subServiceID == \"619b5424-1a20-4e01-950a-a8d87f9f1c7e\") {\r\n setSerciveID(responseData[0].ServiceID);\r\n const val = { ...requestForm };\r\n val.SerciveID = responseData[0].ServiceID;\r\n setRequestForm(val);\r\n\r\n }\r\n\r\n if (option?.ServiceID) {\r\n setSerciveID(option?.ServiceID)\r\n const val = { ...requestForm };\r\n val.SerciveID = option?.ServiceID;\r\n setRequestForm(val);\r\n responseData.map((B) => {\r\n if (B.ServiceID === option?.ServiceID) {\r\n const v = selsub0;\r\n v.desAr = B.ServiceNameAR;\r\n v.desEn = B.ServiceName;\r\n v.ID = B.ServiceID;\r\n setselsub0(v);\r\n ////////console.log(v);\r\n }\r\n })\r\n }\r\n\r\n\r\n setLodingService(false);\r\n } else {\r\n const Body = {\r\n \"name\": \"site_FetchServices\",\r\n \"values\": {\r\n \"GUID\": option.value,\r\n \"ModelCode\": null\r\n // \"ModelCode\": modelCode\r\n }\r\n }\r\n\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n // //////console.log(response.data.ApiObjectData);\r\n setTimeout(setService(response.data), 1000);\r\n if (response?.data.length == 1 || subServiceID == \"a4df3008-2236-4455-854b-da6ddd592364\" || subServiceID == \"22d24d95-04cd-4c88-88ec-317d940231e0\"\r\n || subServiceID == \"619b5424-1a20-4e01-950a-a8d87f9f1c7e\") {\r\n\r\n setSerciveID(response?.data[0].ServiceID);\r\n\r\n const val = { ...requestForm };\r\n val.SerciveID = response?.data[0].ServiceID;\r\n setRequestForm(val);\r\n ////console.log(\"response?.data[0]?>>>>>>>>>>>>>>>>>>>>>>>>>>\", response?.data[0])\r\n //console.log(\"setRequestForm?>>>>>>>>>>>>>>>>>>>>>>>>>>\", val)\r\n }\r\n\r\n if (option?.ServiceID) {\r\n setSerciveID(option?.ServiceID)\r\n const val = { ...requestForm };\r\n val.SerciveID = option?.ServiceID;\r\n setRequestForm(val);\r\n response.data.map((B) => {\r\n if (B.ServiceID === option?.ServiceID) {\r\n const v = selsub0;\r\n v.desAr = B.ServiceNameAR;\r\n v.desEn = B.ServiceName;\r\n v.ID = B.ServiceID;\r\n setselsub0(v);\r\n ////////console.log(v);\r\n }\r\n })\r\n }\r\n\r\n\r\n setLodingService(false);\r\n\r\n })\r\n .catch(function (error) {\r\n\r\n setLodingService(false);\r\n //////console.log(error);\r\n });\r\n\r\n }\r\n\r\n }\r\n const [Branches, setBranches] = useState([]);\r\n\r\n let [modelCode, setModelCode] = useState(\"\");\r\n let [VIN, setVIN] = useState(\"\");\r\n\r\n const [SerciveID, setSerciveID] = useState(null);\r\n const [MainServiceID, setMainServiceID] = useState(null);\r\n const [subServiceID, setSubServiceID] = useState(null);\r\n const [TypeServiceID, setTypeServiceID] = useState(null);\r\n async function FetchPrice(modelC, SID) {\r\n\r\n ////console.log(\"FetchPrice>>>>>>>>>:\", modelC)\r\n setinfoPrice([{ Price: 0 }]);\r\n if (!modelC) {\r\n return;\r\n }\r\n if (!SID) return;\r\n\r\n\r\n\r\n const Body = {\r\n \"name\": \"Site_fetchPriceService\",\r\n \"values\": {\r\n \"ModelCode\": modelC,\r\n \"ServicID\": SID\r\n }\r\n }\r\n\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n // //////console.log(response.data.ApiObjectData);\r\n\r\n setinfoPrice(response.data);\r\n\r\n })\r\n .catch(function (error) {\r\n setinfoPrice([{ Price: 0 }]);\r\n\r\n //////console.log(error);\r\n });\r\n\r\n\r\n }\r\n\r\n const checkDataFullNum = async () => {\r\n\r\n\r\n if (((isLogin && requestForm?.VIN) || type) && SerciveID && requestForm?.date && requestForm?.time && requestForm?.SiteID && (isLogin || (requestForm?.firstName && requestForm?.lastName && requestForm?.phone))) {\r\n setDataFullNum(2);\r\n return 2;\r\n } else if (((isLogin && requestForm?.VIN) || type) && SerciveID) {\r\n setDataFullNum(1);\r\n return 2;\r\n } else {\r\n setDataFullNum(0);\r\n return 0;\r\n }\r\n\r\n\r\n }\r\n\r\n const checkErrors = () => {\r\n var thisSchema = null;\r\n\r\n if (isLogin) {\r\n\r\n thisSchema = LoginSchema;\r\n } else {\r\n thisSchema = notLoginSchema;\r\n\r\n }\r\n const result = formValidate(thisSchema, requestForm) ?? {};\r\n\r\n ////console.log(\"formValidate>>>>>>>>>>>>>>:\", result);\r\n setError(result);\r\n\r\n\r\n }\r\n const [error, setError] = useState({});\r\n function SendResreve(VIN, ServecID, UserID, Amount) {\r\n\r\n var thisSchema = null;\r\n\r\n if (isLogin) {\r\n\r\n thisSchema = LoginSchema;\r\n } else {\r\n thisSchema = notLoginSchema;\r\n\r\n }\r\n const val = { ...requestForm };\r\n val.year = year;\r\n setRequestForm(val);\r\n const result = formValidate(thisSchema, val) ?? {};\r\n\r\n setError(result);\r\n if (Object.keys(result).length == 0 && isSendeng == false) {\r\n setIsSendeng(true);\r\n var myHeaders = new Headers();\r\n myHeaders.append(\"Content-Type\", \"application/json\");\r\n\r\n var raw = {\r\n \"VIN\": VIN,\r\n \"Model\": type,\r\n \"CarType\": modelCode,\r\n \"UserID\": UserID ?? \"\",\r\n \"Year\": year,\r\n \"TotalAmount\": Amount ? Amount : 0,\r\n \"RequiredServicesList\": ServecID,\r\n \"Note\": Note,\r\n \"MeterReading\": requestForm?.meterReading,\r\n \"FirstName\": requestForm?.firstName,\r\n \"LastName\": requestForm?.lastName,\r\n \"phone\": requestForm?.phone,\r\n \"StoreID\": requestForm?.SiteID,\r\n \"Email\": requestForm?.email,\r\n \"Orderdate\": moment(requestForm?.date).format('YYYY-MM-DD'),\r\n \"OrderTime\": moment(requestForm?.time).format('HH:mm:ss'),\r\n // \"PaymentMethodID\": paymentType == 1 ? \"Credit Card\" : (paymentType == 2 ? \"Sadad\" : (paymentType == 3 ? \"Installment\" : \"CashByBranch\")),\r\n };\r\n\r\n\r\n axios.request({\r\n url: config.controllURL + \"api/Service/ServiceRequestAdd\", headers: myHeaders,\r\n data: raw, method: \"POST\", responseType: \"json\"\r\n }).then(function (response) {\r\n //////console.log(\"Service\", response.data)\r\n setStepNum(1);\r\n setDataFullNum(0);\r\n\r\n setSerciveID(null);\r\n setselsub0({ ID: \"0\", desAr: \"اختيار قيمة\", desEn: \"chose\" });\r\n setService([]);\r\n setinfoPrice([{ Price: 0 }]);\r\n\r\n setRequestForm({\r\n lastName: '',\r\n firstName: '',\r\n phone: '',\r\n email: '',\r\n subject: '',\r\n date: '',\r\n time: '',\r\n messageContent: '',\r\n myCarID: '',\r\n SiteID: null,\r\n });\r\n\r\n setMaintenanceObj({\r\n showPopup: false, type: \"Notset\", main: \"\", sub1: \"\", sub2: \"\"\r\n });\r\n //console.log(\"OrderID\", response?.data)\r\n if (response?.data?.OrderID)\r\n setResOrderID(response?.data?.OrderID);\r\n setShowFinalPopup(true);\r\n toast.success(trans(\"info:reservation_completed_successfully\"));\r\n\r\n }\r\n ).then((response) => {\r\n //////console.log('Error', response);\r\n setIsSendeng(false);\r\n })\r\n .catch(error => {\r\n //////console.log('error', error);\r\n setIsSendeng(false);\r\n }\r\n\r\n\r\n\r\n );\r\n\r\n }\r\n }\r\n\r\n\r\n\r\n const GetUrlfunc = config.baseURL + 'func';\r\n async function GetBranch() {\r\n\r\n const Body = {\r\n \"name\": \"site_FetchMaintenanceBranches\"\r\n };\r\n\r\n await axios.request({\r\n url: GetUrlfunc,\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n\r\n setBranches(response.data);\r\n\r\n\r\n })\r\n .catch(function (error) {\r\n //////console.log(error);\r\n });\r\n\r\n\r\n }\r\n\r\n useEffect(() => {\r\n if (Branches && Branches?.length > 0 && requestForm?.SerciveID && requestForm?.SerciveID != '' && !requestForm?.SiteID) {\r\n\r\n\r\n if (Branches?.length == 1) {\r\n const val = { ...requestForm };\r\n val.SiteID = Branches[0]?.SiteID;\r\n setRequestForm(val);\r\n }\r\n\r\n }\r\n\r\n }, [Branches, requestForm]);\r\n\r\n const [Vehicales, setVehicales] = useState([]);\r\n\r\n\r\n async function GetVehicales() {\r\n try {\r\n const isLogin = getData('isAuthenticated')\r\n if (!isLogin) {\r\n setVehicales([]);\r\n toast.error(trans(\"info:login_to_get_my_cars\"));\r\n return;\r\n }\r\n const cleanData = JSON.parse(getData(User_Data_Key, true));\r\n\r\n if (!cleanData.custID) {\r\n setVehicales([]);\r\n toast.error(trans(\"info:approveAccount\"));\r\n return;\r\n }\r\n\r\n const Body = {\r\n \"name\": \"site_fetchMyVehical\",\r\n \"values\": {\r\n \"CustID\": Number(cleanData.custID)\r\n }\r\n };\r\n await axios.request({\r\n url: GetUrlfunc,\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n\r\n setVehicales(response.data);\r\n })\r\n .catch(function (error) {\r\n\r\n toast.error(trans(\"info:pleas_add_your_car\"));\r\n //////console.log(error);\r\n });\r\n } catch (error) {\r\n //////console.log(error);\r\n }\r\n\r\n\r\n\r\n }\r\n //selected option \r\n const [selMain, setselMain] = useState({ ID: \"0\", desAr: \"اختيار قيمة\", desEn: \"chose\" });\r\n const [selsub1, setselsub1] = useState({ ID: \"0\", desAr: \"اختيار قيمة\", desEn: \"chose\" });\r\n const [selsub2, setselsub2] = useState({ ID: \"0\", desAr: \"اختيار قيمة\", desEn: \"chose\" });\r\n const [selsub0, setselsub0] = useState({ ID: \"0\", desAr: \"اختيار قيمة\", desEn: \"chose\" });\r\n\r\n\r\n function setFirestOption(option, SID, currentServiceID = SerciveID,objectservicesJON=ServicesDataJson) {\r\n fetchService({ value: option.SubService2ID, text: lang === 'ar' ? option.DescriptionAr : option.DescriptionEn, currentServiceID }, SID,objectservicesJON);\r\n\r\n setTypeServiceID(option.SubService2ID);\r\n }\r\n\r\n\r\n function setFirestOptionService1(option) {\r\n fetchSubService2({ value: option.SubService1ID, text: lang === 'ar' ? option.DescriptionAr : option.DescriptionEn });\r\n setSubServiceID(option.SubService1ID);\r\n }\r\n\r\n\r\n function setFirestOptionService(option) {\r\n setSerciveID(option.ServiceID);\r\n }\r\n\r\n useEffect(() => {\r\n checkDataFullNum();\r\n }, [requestForm, SerciveID, year, type, isLogin]);\r\n\r\n\r\n\r\n useEffect(() => {\r\n if (vModelCode != null && SerciveID && Defult?.firstFetchPrice != true) {\r\n setDefult({ ...Defult, firstFetchPrice: true });\r\n if (Defult?.modelType) {\r\n if (vModelCode[Defult?.modelType] && SerciveID)\r\n FetchPrice(vModelCode[Defult?.modelType], SerciveID);\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n }, [vModelCode, SerciveID]);\r\n\r\n const [seoPageInfo, setSeoPageInfo] = useState({});\r\n useEffect(async () => {\r\n\r\n var page = \"maintenance services\"\r\n\r\n\r\n const response = await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"SiteFetchSeoPages\",\r\n \"Values\": {\r\n \"page\": page\r\n }\r\n }\r\n );\r\n if (response.status == 200) {\r\n\r\n var resdata = response.data[0];\r\n\r\n setSeoPageInfo(resdata);\r\n\r\n\r\n }\r\n }, []);\r\n\r\n const [listTimeAvailable, setListTimeAvailable] = useState([]);\r\n // const [maxTime, setMaxTime] = useState(0);\r\n // const [minTime, setMinTime] = useState(0);\r\n\r\n const webAvailableReshours = async (date = '') => {\r\n const Body = {\r\n \"name\": \"web_AvailableReshours\",\r\n \"values\": {\r\n \"Resdate\": date\r\n }\r\n }\r\n\r\n await axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n console.log(\"web_AvailableReshours:response\", response);\r\n if (response.status >= 200 && response.status < 299) {\r\n console.log(\"web_AvailableReshours:response\", response.statusText);\r\n if (response?.data && response?.data.length != 0) {\r\n response?.data.forEach((val, index) => {\r\n\r\n setListTimeAvailable(_lstTime => [..._lstTime, parseInt(val?.AvailableHour)]);\r\n });\r\n\r\n }\r\n }\r\n })\r\n .catch(function (error) {\r\n console.log(\"web_AvailableReshours:Error\", error);\r\n toast.warn(trans(\"form:please-choose-another-date\"));\r\n });\r\n }\r\n\r\n // useEffect(() => {\r\n //\r\n // debugger\r\n // setMaxTime(Math.max(...listTimeAvailable));\r\n // console.log(\"setMaxTime(Math.max(...listTimeAvailable))\", setMaxTime(Math.max(...listTimeAvailable)));\r\n // setMinTime(Math.min(...listTimeAvailable));\r\n // console.log(\"setMaxTime(Math.min(...listTimeAvailable))\", setMaxTime(Math.min(...listTimeAvailable)));\r\n //\r\n // }, [listTimeAvailable]);\r\n\r\n const maxTime = Math.max(...listTimeAvailable);\r\n const minTime = Math.min(...listTimeAvailable);\r\n\r\n\r\n\r\n\r\n return (\r\n \r\n\r\n {\r\n seoPageInfo &&\r\n\r\n \r\n\r\n \r\n {\r\n seoPageInfo?.title &&\r\n {seoPageInfo?.title}\r\n }\r\n {\r\n seoPageInfo?.link &&\r\n \r\n\r\n }\r\n {\r\n seoPageInfo?.MetaDescription &&\r\n \r\n }\r\n {\r\n seoPageInfo?.MetaGroups &&\r\n \r\n }\r\n\r\n \r\n\r\n\r\n }\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    {trans(\"info:request-maintenance-service\")}

    \r\n {\r\n setMaintenanceObj({ showPopup: false })\r\n }}>×\r\n\r\n\r\n
    \r\n\r\n
    \r\n
    0 ? \"active\" : \" \")}>\r\n {/*
  • {\"1\"}
  • {'بيانات المركبة'}
    */}\r\n
    \r\n
    \r\n
    1 ? \"active\" : \" \")}>\r\n {/*
  • {\"2\"}
  • {'بيانات الخدمة'}
    */}\r\n
    \r\n
    \r\n\r\n {/*
    2 ? \"active\" : \" \")}>\r\n
  • {\"3\"}
  • {'البيانات الشخصية'}
    \r\n
    \r\n
    */}\r\n\r\n
    \r\n
    \r\n
    \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n {\r\n stepNum == 1 &&\r\n <>\r\n\r\n {\r\n !isLogin || Defult?.modelType ?\r\n <>\r\n\r\n\r\n\r\n
    \r\n
    \r\n {\r\n return { text: item?.description, value: item?.brandID }\r\n })}\r\n placeholder={trans(\"info:company\")}\r\n selectedValue={brand}\r\n onSelect={handelSelectBrand}\r\n />\r\n
    \r\n\r\n
    \r\n {\r\n // return { text: item?.modelID, value: item?.modelID }\r\n // })}\r\n\r\n options={\r\n settings?.models?.filter(\r\n item => item?.modelID?.startsWith('20')).map(\r\n item => ({\r\n text: item?.modelID,\r\n value: item?.modelID\r\n })\r\n )\r\n }\r\n\r\n selectedValue={year}\r\n onSelect={(value) => {\r\n //////console.log(\"models:\", value)\r\n\r\n setYear(value);\r\n\r\n const val = { ...requestForm };\r\n val.year = value;\r\n setRequestForm(val);\r\n handelSelectBrand(brand, value);\r\n // handleFilteredModels(group,value);\r\n }}\r\n />\r\n
    \r\n\r\n\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n {\r\n return { text: item?.description, value: item?.productGroupID }\r\n })}\r\n selectedValue={group}\r\n onSelect={handleFilteredModels}\r\n />\r\n
    \r\n
    \r\n {\r\n return { text: item?.description, value: item?.productTypeID }\r\n })}\r\n selectedValue={type}\r\n onSelect={(value) => {\r\n //////console.log(\"setType:\", value)\r\n setType(value);\r\n //////console.log(\"vModelCode[value]:\", vModelCode[value])\r\n setModelCode(vModelCode[value]);\r\n FetchPrice(vModelCode[value], SerciveID);\r\n\r\n }}\r\n />\r\n
    \r\n
    \r\n \r\n :\r\n {\r\n return { value: B.SN, text: lang == 'ar' ? B.carAr : B.carEn, ModelCode: B.ModelCode, year: B.Model, type: B.Type };\r\n })]}\r\n onfilter={(option) => {\r\n setModelCode(option.ModelCode);\r\n setVIN(option.value);\r\n setYear(option.year);\r\n setType(option.type);\r\n FetchPrice(option.ModelCode, SerciveID);\r\n\r\n const val = { ...requestForm };\r\n val.VIN = option.value;\r\n setRequestForm(val);\r\n }}\r\n isepart={true}\r\n />\r\n }\r\n\r\n {\r\n\r\n\r\n
    \r\n {\r\n return { value: B.MainServiceID, text: lang === 'ar' ? B.DescriptionAr : B.DescriptionEn };\r\n })]}\r\n onfilter={(option) => {\r\n setMainServiceID(null);\r\n setSubServiceID(null);\r\n setTypeServiceID(null);\r\n setSerciveID(null);\r\n fetchSubService(option);\r\n setMainServiceID(option.value);\r\n }\r\n }\r\n defaultOption={{ value: selMain.ID, text: trans(\"info:main_service\") }}\r\n selectedValue={MainServiceID}\r\n isepart={true}\r\n />\r\n\r\n {\r\n (SubService1?.length > 1 && MainServiceID != \"9ceb8b65-14a4-4a61-9223-a06ae0db53cf\") ?\r\n\r\n {\r\n\r\n return ({ value: B.SubService1ID, text: lang === 'ar' ? (B.DescriptionAr ? B.DescriptionAr : B.DescriptionEn) : B.DescriptionEn });\r\n\r\n\r\n })]}\r\n onfilter={(option) => {\r\n setSubServiceID(null);\r\n setTypeServiceID(null);\r\n setSerciveID(null);\r\n fetchSubService2(option);\r\n setSubServiceID(option.value);\r\n }}\r\n isepart={true}\r\n selectedValue={subServiceID}\r\n defaultOption={{ value: selsub1.ID, text: trans(\"info:sub_main_service\") }}\r\n />\r\n : null\r\n\r\n }\r\n\r\n\r\n {\r\n (SubService2?.length > 1 && MainServiceID != \"9ceb8b65-14a4-4a61-9223-a06ae0db53cf\" && subServiceID != \"a4df3008-2236-4455-854b-da6ddd592364\" && subServiceID != \"619b5424-1a20-4e01-950a-a8d87f9f1c7e\") ?\r\n {\r\n return { value: B.SubService2ID, text: lang === 'ar' ? (B.DescriptionAr ? B.DescriptionAr : B.DescriptionEn) : B.DescriptionEn };\r\n })]}\r\n onfilter={(option) => {\r\n setTypeServiceID(null);\r\n setSerciveID(null);\r\n fetchService(option, subServiceID);\r\n setTypeServiceID(option.value);\r\n\r\n }}\r\n\r\n isepart={true}\r\n selectedValue={TypeServiceID}\r\n defaultOption={{ value: selsub2.ID, text: trans(\"info:main_service_type\") }}\r\n\r\n\r\n />\r\n : null\r\n\r\n\r\n }\r\n {\r\n\r\n (MainServiceID != \"9ceb8b65-14a4-4a61-9223-a06ae0db53cf\" && subServiceID != \"a4df3008-2236-4455-854b-da6ddd592364\" && subServiceID != \"619b5424-1a20-4e01-950a-a8d87f9f1c7e\") ?\r\n {\r\n return { value: B.ServiceID, text: lang === 'ar' ? B.ServiceNameAR : B.ServiceName };\r\n })]}\r\n errorLabel={error?.SerciveID}\r\n onfilter={(option) => {\r\n\r\n const val = { ...requestForm };\r\n val.SerciveID = option.value;\r\n setRequestForm(val);\r\n\r\n setSerciveID(null);\r\n setSerciveID(option.value);\r\n FetchPrice(modelCode, option.value);\r\n\r\n }}\r\n isepart={true}\r\n isLoading={lodingService}\r\n selectedValue={SerciveID ? SerciveID : requestForm?.SerciveID}\r\n defaultOption={{ value: selsub0.ID, text: trans(\"info:servce\") }}\r\n\r\n />\r\n\r\n :\r\n null\r\n }\r\n\r\n\r\n
    \r\n }\r\n\r\n {/*السعر */}\r\n {/* { \r\n // infoPrice[0].Price ?\r\n
    \r\n
    \r\n

    {trans(\"info:price\")}

    \r\n\r\n
    \r\n\r\n {\r\n
    \r\n \r\n

    {trans(\"info:service_price_head_message\")}

    \r\n
    \r\n }\r\n {\r\n
    \r\n {\r\n infoPrice[0] && \r\n }\r\n\r\n
    \r\n }\r\n
    \r\n // : null\r\n } */}\r\n\r\n \r\n }\r\n\r\n {\r\n // stepNum == 2 &&\r\n <>\r\n\r\n\r\n {\r\n stepNum == 2 &&\r\n <>\r\n {\r\n\r\n !isLogin &&\r\n <>\r\n
    \r\n <>\r\n
    \r\n\r\n {\r\n const val = { ...requestForm };\r\n val.firstName = e.target.value;\r\n setRequestForm(val);\r\n }\r\n }\r\n />\r\n
    \r\n \r\n <>\r\n\r\n
    \r\n {\r\n const val = { ...requestForm };\r\n val.lastName = e.target.value;\r\n setRequestForm(val);\r\n }\r\n }\r\n />\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n const val = { ...requestForm };\r\n val.phone = phoneNumber ? `+${countryCode}${phoneNumber}` : null;\r\n val.codephone = `+${countryCode}`;\r\n setRequestForm(val);\r\n }}\r\n\r\n defaultValue={requestForm?.phone?.replace(`${requestForm?.codephone}`, '')}\r\n />\r\n
    \r\n\r\n
    \r\n {\r\n const val = { ...requestForm };\r\n val.email = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n errorLabel={error?.email}\r\n placeholder={trans(\"form:email\")}\r\n name='email'\r\n />\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n {\r\n const val = { ...requestForm };\r\n val.VIN = e.target.value;\r\n setRequestForm(val);\r\n setVIN(e.target.value);\r\n\r\n\r\n\r\n }} />\r\n
    \r\n\r\n\r\n \r\n }\r\n\r\n\r\n\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n\r\n (\r\n //
    {children}
    \r\n // )}\r\n\r\n className=\" w-100\"\r\n // popperPlacement=\"top-end\"\r\n // icon={\"fa fa-calendar\"}\r\n selected={requestForm.date}\r\n onChange={async (value) => {\r\n\r\n\r\n const val = { ...requestForm };\r\n val.date = value;\r\n val.time = null;\r\n setRequestForm(val);\r\n setListTimeAvailable([]);\r\n\r\n if (val.date) {\r\n await webAvailableReshours(moment(value).format('yyyy-MM-DD'));\r\n }\r\n }}\r\n filterDate={(date) => {\r\n const today = new Date();\r\n const yesterday = new Date(today);\r\n yesterday.setDate(today.getDate() - 1);\r\n const day = date.getDay();\r\n return (day === 0 || day === 1 || day === 2 || day === 3 || day === 4 || day === 6)\r\n && (new Date(date).setHours(0, 0, 0) > yesterday.setHours(0, 0, 0)); // Sunday (0), Saturday (6)\r\n\r\n }}\r\n placeholderText={trans(\"form:maintenance-date\")}\r\n dateFormat=\"yyyy-MM-dd\"\r\n customInput={}\r\n />\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n // const time = new Date();\r\n // time.setHours(val, 0, 0);\r\n // return time;\r\n // })\r\n // }\r\n\r\n includeTimes={listTimeAvailable.map((val) => {\r\n const time = new Date();\r\n let res;\r\n\r\n if (requestForm.date && new Date(requestForm.date).toDateString() === new Date().toDateString()) {\r\n if (val > new Date().getHours()) {\r\n res = time.setHours(val, 0, 0);\r\n }\r\n } else if (requestForm.date && new Date(requestForm.date) > new Date()) {\r\n res = time.setHours(val, 0, 0);\r\n } else {\r\n res = time.setHours(val, 0, 0);\r\n }\r\n\r\n return res;\r\n })}\r\n isClearable={!!requestForm.time}\r\n selected={requestForm.time}\r\n onChange={(value) => {\r\n\r\n const val = { ...requestForm };\r\n val.time = value;\r\n setRequestForm(val);\r\n }}\r\n className=\"w-100\"\r\n // filterTime={(time) => {\r\n // // Define your custom logic to disable specific times\r\n // // For example, disable times before 9:00 AM and after 5:00 PM\r\n // const startTime = new Date().setHours(8, 0, 0); // 9:00 AM\r\n // const endTime = new Date().setHours(18, 0, 0); // 5:00 PM\r\n // return time < startTime || time > endTime;\r\n // }}\r\n placeholderText={trans(\"form:maintenance-time\")}\r\n showTimeSelect\r\n showTimeSelectOnly\r\n timeIntervals={60}\r\n timeInputLabel={trans(\"form:maintenance-time\")}\r\n // minTime={\r\n // (requestForm.date && new Date(requestForm.date).getDate() > new Date().getDate()) \r\n // ? new Date().setHours(8, 0, 0) \r\n // :(new Date().getHours() > 19 \r\n // ? new Date().setHours(18, 55, 0) \r\n // : new Date().setHours(new Date().getHours(), new Date().getMinutes(), 0) ) }\r\n // maxTime={new Date().setHours(18, 59, 0)}\r\n timeCaption={trans(\"form:maintenance-time\")}\r\n // withPortal\r\n dateFormat=\"hh:mm aa\"\r\n // showTimeInput\r\n customInput={}\r\n\r\n // customTimeInput={}\r\n />\r\n
    \r\n
    \r\n\r\n {/*
    \r\n
    \r\n\r\n {\r\n //////console.log(\">>>>>>>>>>>>>:\", e.target.value);\r\n if (e.target.value >= (new Date().toJSON().slice(0, 10)) || !e.target.value) {\r\n const val = { ...requestForm };\r\n val.date = e.target.value;\r\n setRequestForm(val);\r\n }\r\n }\r\n }\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n {\r\n const val = { ...requestForm };\r\n val.time = e.target.value;\r\n setRequestForm(val);\r\n }\r\n }\r\n />\r\n
    \r\n
    */}\r\n
    \r\n
    \r\n\r\n\r\n
    \r\n\r\n {\r\n const val = { ...requestForm };\r\n val.meterReading = e.target.value;\r\n setRequestForm(val);\r\n\r\n }} />\r\n
    \r\n\r\n {\r\n return { value: B.SiteID, text: lang === 'ar' ? B.DescriptionAr : B.DescriptionEn };\r\n })]}\r\n selectedValue={Branches?.length == 1 ? Branches[0]?.SiteID : requestForm?.SiteID}\r\n onSelect={(value) => {\r\n\r\n //////console.log(\"onSelect:\", value);\r\n const val = { ...requestForm };\r\n val.SiteID = value;\r\n setRequestForm(val);\r\n }}\r\n\r\n />\r\n
    \r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n {\r\n setNote(data);\r\n }}\r\n />\r\n\r\n \r\n\r\n }\r\n\r\n\r\n\r\n \r\n }\r\n\r\n
    \r\n
    \r\n {\r\n\r\n <>\r\n
    \r\n\r\n\r\n {\r\n\r\n
    \r\n\r\n {\r\n stepNum > 1 &&\r\n
    {\r\n if (stepNum > 1)\r\n setStepNum(stepNum - 1);\r\n }}>\r\n\r\n\r\n {trans(\"info:back\")}\r\n\r\n\r\n
    \r\n\r\n \r\n \r\n \r\n\r\n\r\n\r\n
    \r\n
    \r\n }\r\n\r\n
    \r\n }\r\n\r\n {\r\n\r\n
    \r\n\r\n {\r\n stepNum < 2 &&\r\n
    {\r\n\r\n const num = await checkDataFullNum();\r\n\r\n if (num >= (stepNum)) {\r\n\r\n if (stepNum < 2)\r\n setStepNum(stepNum + 1);\r\n\r\n if (Object.keys(error).length > 0) {\r\n setError({});\r\n\r\n }\r\n } else {\r\n checkErrors();\r\n }\r\n\r\n }}>\r\n {trans(\"form:next\")}\r\n
    \r\n\r\n \r\n \r\n \r\n\r\n
    \r\n\r\n\r\n
    \r\n }\r\n\r\n
    \r\n }\r\n\r\n\r\n\r\n
    \r\n\r\n {\r\n dataFullNum >= 2 &&\r\n
    \r\n
    \r\n
    {\r\n\r\n var cleanData = {};\r\n try {\r\n cleanData = JSON.parse(getData(User_Data_Key, true));\r\n } catch (e) {\r\n\r\n\r\n }\r\n\r\n if (isSendeng == false)\r\n SendResreve(VIN, SerciveID, cleanData?.custID, infoPrice[0].Price);\r\n\r\n }}>\r\n {trans(\"info:reserve\")}\r\n\r\n {\r\n isSendeng && \r\n \r\n \r\n }\r\n\r\n
    \r\n
    \r\n {/*
    \r\n
    {\r\n\r\n if (infoPrice[0].Price) {\r\n\r\n setIsSendeng(true);\r\n\r\n\r\n var brandDesc = settings?.brands?.filter(a => a.brandID == brand)[0];\r\n var groupDesc = settings?.groups?.filter(a => a.productGroupID == group)[0];\r\n var typeDesc = settings?.productModels?.filter(a => a.productTypeID == type)[0];\r\n var ServiceDesc = Service?.filter(a => a.ServiceID == SerciveID)[0];\r\n var objectCart =\r\n {\r\n id: modelCode + '-' + SerciveID,\r\n productID: SerciveID,\r\n name: ServiceDesc.ServiceNameAR,\r\n nameEn: ServiceDesc.ServiceName,\r\n // image :img,\r\n modelTypeID: VIN,\r\n modelCode: modelCode,\r\n price: infoPrice[0].Price,\r\n Type: \"service\",\r\n brand: brandDesc?.descriptionAr\r\n , brandEn: brandDesc?.descriptionEn\r\n , group: groupDesc?.descriptionAr\r\n , groupEn: groupDesc?.descriptionen\r\n , BrandID: brand\r\n , modelTypes: typeDesc?.descriptionAr\r\n , modelTypesEn: typeDesc?.descriptionEn\r\n ,Orderdate :fullDatetime\r\n\r\n\r\n }\r\n changecartItem(SerciveID, null, VIN, 1, modelCode, null,objectCart,fullDatetime );\r\n\r\n\r\n setTimeout(() => {\r\n\r\n\r\n setIsSendeng(false);\r\n\r\n\r\n setSerciveID(null);\r\n setselsub0({ ID: \"0\", desAr: \"اختيار قيمة\", desEn: \"chose\" });\r\n setService([]);\r\n setinfoPrice([{ Price: 0 }]);\r\n setRequestForm({\r\n lastName: '',\r\n firstName: '',\r\n phone: '',\r\n email: '',\r\n subject: '',\r\n date: '',\r\n time: '',\r\n messageContent: '',\r\n myCarID: '',\r\n SiteID: null,\r\n });\r\n setStepNum(1);\r\n setDataFullNum(0);\r\n\r\n setMaintenanceObj({\r\n showPopup: false, type: \"Notset\", main: \"\", sub1: \"\", sub2: \"\"\r\n });\r\n\r\n\r\n }, 1000);\r\n\r\n\r\n } else {\r\n toast.warning(trans(\"info:can_reserve_service\"));\r\n setIsSendeng(false);\r\n\r\n }\r\n }\r\n }>\r\n {trans(\"info:add_to_cart\")} \r\n\r\n {\r\n isSendeng && \r\n \r\n \r\n }\r\n
    \r\n
    */}\r\n
    \r\n }\r\n\r\n \r\n }\r\n\r\n
    \r\n
    \r\n
    \r\n\r\n\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n {trans(\"new:thank_to_choose\")}\r\n {trans(\"new:HJ_cars\")}\r\n
    \r\n\r\n {\r\n <>\r\n
    \r\n {trans(\"new:The_appointment_has_been_booked\")}\r\n
    \r\n
    \r\n {trans(\"new:You-will-be-contacted\")}\r\n
    \r\n\r\n {\r\n\r\n resOrderID &&\r\n
    {\r\n\r\n navigator.clipboard.writeText(resOrderID);\r\n }}\r\n\r\n >\r\n\r\n {trans(\"new:Reservation_number\") + \" :\"}\r\n {resOrderID && resOrderID}\r\n \r\n
    \r\n }\r\n\r\n \r\n\r\n }\r\n\r\n\r\n\r\n
    \r\n
    \r\n
    {\r\n\r\n setShowFinalPopup(false);\r\n setResOrderID(null);\r\n if (location.pathname)\r\n history.push(location.pathname);\r\n\r\n }}>\r\n {trans(\"cartFile:Continue_browsing\")}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n\r\n
    \r\n\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n );\r\n}","import {Fragment, useState} from \"react\";\r\nimport {Link} from \"react-router-dom\";\r\n\r\nexport function SubServiceBox({linkTxt=\"عرض التفاصيل\",small = true, link,img,titleEn=\"not set title\",subtitleEn=\"not set subtitle\",titleAr=\"غيار المحركات\",subtitleAr=\"غيار المحركات\"}) {\r\n const [lang,setlang]=useState( localStorage.getItem('i18nextLng'));\r\n let {titel}=lang===\"en\"?titleEn:titleAr;\r\n let image = \"/assets/images/car-bg.png\";\r\n image = img!== \"null\" ? \"data:image/png;base64,\" +img :image;\r\n return (\r\n \r\n \r\n
    \r\n \"service\"\r\n
    \r\n
    \r\n

    {titel}

    \r\n {linkTxt}\r\n
    \r\n \r\n
    \r\n );\r\n}","import {Fragment, useEffect, useState} from \"react\";\r\nimport Banner from \"../../components/banner\";\r\nimport SwiperCore, {Autoplay, EffectFade, Navigation, Pagination} from \"swiper\";\r\nimport {TestimonialSection} from \"../../sections/testimonialSection\";\r\nimport {WhyHJSection} from \"../../sections/whyHJSection\";\r\nimport {AboutHJSection} from \"../../sections/aboutHJ\";\r\nimport {ServiceBox} from \"../../components/serviceBox\";\r\nimport PageHeading from \"../../components/__simple/_pageheading\";\r\nimport Info from \"../../components/_info\";\r\nimport {OfferSections} from \"../../sections/offersSection\";\r\nimport {SimpleBanner} from \"../../components/__simple/_simpleBanner\";\r\nimport {SubServiceBox} from \"./components/subServiceBox\";\r\nimport InfoCircle from \"../../components/__simple/_infoCirclejsx\";\r\nimport Breadcrumb from \"../../components/__simple/breadcrumb\";\r\nimport {useParams} from \"react-router\";\r\nimport axios from \"axios\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport Offer from \"../../components/offer\";\r\nimport config from \"../../configuration/config.json\";\r\n\r\nSwiperCore.use([Pagination, Navigation, Autoplay, EffectFade]);\r\n\r\nexport function MaintenanceServicePage() {\r\n let {CATid} = useParams();\r\n const [offers, setOffers] = useState([]);\r\n const {t: trans} = useTranslation([\"maintenance\", \"home\"]);\r\n const [lang, setlang] = useState(localStorage.getItem('i18nextLng'));\r\n const languageDir = 'language-' + lang;\r\n let content = \"\";\r\n let title = \"\";\r\n let subtitle = \"\";\r\n let excerpt = \"\";\r\n let upDesc = \"\";\r\n let upTitle = \"\";\r\n let categoryId = 0;\r\n let image = \"/assets/images/offers/bg.png\";\r\n let upImage = \"/assets/images/offers/bg.png\";\r\n const GetUrl = config.baseURL + 'details';\r\n const [CAT, setCAT] = useState([]);\r\n\r\n function RequsetCAT() {\r\n const Body = {\r\n \"object\": \"siteMaintenanceCategories\",\r\n \"ObjectSettings\": {\"MetaData\": false},\r\n \"Filters\": \"where GUID='\" + CATid + \"'\"\r\n };\r\n\r\n axios.request({\r\n url: GetUrl,\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n //console.log(response.data.ApiObjectData);\r\n setTimeout(setCAT(response.data.ApiObjectData), 1000);\r\n RequsetRCAT(response.data.ApiObjectData[\"0\"].categoryId);\r\n\r\n\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n\r\n\r\n }\r\n\r\n const [Featured, setFeatured] = useState([]);\r\n\r\n function RequsetFeatured() {\r\n const Body = {\r\n \"object\": \"SiteMaintenanceSpecial\",\r\n \"ObjectSettings\": {\"MetaData\": false}\r\n };\r\n\r\n axios.request({\r\n url: GetUrl,\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n //console.log(response.data.ApiObjectData);\r\n setTimeout(setFeatured(response.data.ApiObjectData), 1000);\r\n\r\n\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n\r\n\r\n }\r\n\r\n ///////الخدمات الفرعيه\r\n const [RCAT, setRCAT] = useState([]);\r\n\r\n function RequsetRCAT(catId) {\r\n const Body = {\r\n \"object\": \"siteMaintenanceServices\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n\r\n },\r\n \"Filters\": \"where categoryId=\" + catId\r\n\r\n\r\n }\r\n axios.request({\r\n url: GetUrl,\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n //console.log(response.data.ApiObjectData);\r\n setTimeout(setRCAT(response.data.ApiObjectData), 1000);\r\n\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n\r\n\r\n }\r\n\r\n useEffect(async () => {\r\n\r\n RequsetCAT();\r\n RequsetFeatured();\r\n\r\n\r\n }, [])\r\n useEffect(async () => {\r\n try {\r\n const response = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/maintenance/offers/\" + RCAT[0].categoryId,\r\n method: \"get\",\r\n });\r\n\r\n setOffers(response.data);\r\n\r\n } catch (error) {\r\n\r\n }\r\n }, [RCAT])\r\n\r\n // console.log(ٌCAT);\r\n if (CAT.length !== 0) {\r\n content = lang === \"en\" ? CAT[\"0\"].contentEn : CAT[\"0\"].contentAr;\r\n title = lang === \"en\" ? CAT[\"0\"].titleEn : CAT[\"0\"].titleAr;\r\n subtitle = lang === \"en\" ? CAT[\"0\"].subtitleEn : CAT[\"0\"].subtitleAr;\r\n excerpt = lang === \"en\" ? CAT[\"0\"].excerptEn : CAT[\"0\"].excerptAr;\r\n upDesc = lang === \"en\" ? CAT[\"0\"].upDescEn : CAT[\"0\"].upDescAr;\r\n upTitle = lang === \"en\" ? CAT[\"0\"].upTitleEn : CAT[\"0\"].upTitleAr;\r\n image = CAT[\"0\"].image !== \"null\" ? \"data:image/png;base64,\" + CAT[\"0\"].image : image;\r\n upImage = CAT[\"0\"].upImage !== \"null\" ? \"data:image/png;base64,\" + CAT[\"0\"].upImage : upImage;\r\n categoryId = CAT[\"0\"].categoryId;\r\n console.log(\"content\", content);\r\n console.log(\"title\", title);\r\n console.log(\"subtitle\", subtitle);\r\n console.log(\"excerpt\", excerpt);\r\n console.log(\"categoryId\", categoryId);\r\n console.log(\"CAT\", CAT);\r\n\r\n }\r\n\r\n return (\r\n \r\n\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n\r\n\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n {RCAT.map(RC => (\r\n\r\n \r\n ))}\r\n\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n {\r\n CAT.map((BN,index) => {\r\n if (lang === \"en\" && BN != null && BN.bannerEn !== null && BN.bannerEn !== \"null\") {\r\n\r\n return (\"banner\"/);\r\n\r\n } else if (BN != null && BN.bannerAr !== null && BN.bannerAr !== \"null\") {\r\n\r\n return (\"banner\"/)\r\n\r\n }\r\n })\r\n }\r\n
    \r\n
    \r\n \r\n
    \r\n\r\n {Featured.map((a,index) => (\r\n\r\n \r\n ))}\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n\r\n \r\n\r\n \r\n );\r\n}","import {Fragment, useEffect, useState} from \"react\";\r\nimport Banner from \"../../components/banner\";\r\nimport SwiperCore, {Autoplay, EffectFade, Navigation, Pagination} from \"swiper\";\r\nimport {WhyHJSection} from \"../../sections/whyHJSection\";\r\nimport Info from \"../../components/_info\";\r\nimport Breadcrumb from \"../../components/__simple/breadcrumb\";\r\nimport {useParams} from \"react-router\";\r\nimport axios from \"axios\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport config from \"../../configuration/config.json\";\r\n\r\nSwiperCore.use([Pagination, Navigation, Autoplay, EffectFade]);\r\n\r\n\r\nexport function MaintenanceServiceDetailPage() {\r\n let {ServicId} = useParams();\r\n const [lang, setlang] = useState(localStorage.getItem('i18nextLng'));\r\n const langaugeDir = 'language-' + lang;\r\n const {t:trans} = useTranslation(['info'])\r\n /////// تفثاصبل الخدمات الفرعيه\r\n const GetUrl = config.baseURL + 'details';\r\n\r\n const [CAT, setCAT] = useState([]);\r\n\r\n function RequsetRCAT(catId) {\r\n const Body = {\r\n \"object\": \"siteMaintenanceServices\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n },\r\n \"Filters\": \"where GUID='\" + ServicId + \"'\"\r\n\r\n\r\n }\r\n axios.request({\r\n url: GetUrl,\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n //console.log(response.data.ApiObjectData);\r\n setTimeout(setCAT(response.data.ApiObjectData), 1000);\r\n\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n\r\n\r\n }\r\n\r\n let title = \"\";\r\n let subtitle = \"\";\r\n let excerpt = \"\";\r\n let categoryId = 0;\r\n let image = \"/assets/images/offers/bg.png\";\r\n let content = \"\";\r\n let upDesc = \"\";\r\n let upTitle = \"\";\r\n let upImage = \"/assets/images/offers/bg.png\";\r\n useEffect(() => {\r\n\r\n RequsetRCAT();\r\n\r\n }, [])\r\n if (CAT.length !== 0) {\r\n content = lang === \"en\" ? CAT[\"0\"].contentEn : CAT[\"0\"].contentAr;\r\n title = lang === \"en\" ? CAT[\"0\"].titleEn : CAT[\"0\"].titleAr;\r\n subtitle = lang === \"en\" ? CAT[\"0\"].subtitleEn : CAT[\"0\"].subtitleAr;\r\n excerpt = lang === \"en\" ? CAT[\"0\"].excerptEn : CAT[\"0\"].excerptAr;\r\n image = CAT[\"0\"].image !== \"null\" ? \"data:image/png;base64,\" + CAT[\"0\"].image : image;\r\n upDesc = lang === \"en\" ? CAT[\"0\"].upDescEn : CAT[\"0\"].upDescAr;\r\n upTitle = lang === \"en\" ? CAT[\"0\"].upTitleEn : CAT[\"0\"].upTitleAr;\r\n\r\n upImage = CAT[\"0\"].upImage !== \"null\" ? \"data:image/png;base64,\" + CAT[\"0\"].upImage : upImage;\r\n categoryId = CAT[\"0\"].categoryId;\r\n\r\n }\r\n return (\r\n \r\n\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n\r\n\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n \r\n\r\n \r\n );\r\n}"," const CarFeature = ({ value = 0, iconName = 'petrol', text, iconStyle}) => {\r\n return (\r\n
    \r\n \r\n {value}\r\n {text}\r\n \r\n
    \r\n {iconName}\r\n
    \r\n\r\n
    \r\n );\r\n};\r\n\r\nexport default CarFeature;","import { Fragment, useEffect, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { InputField } from \"../../components/_input/_input\";\r\nimport PhoneDropDown from \"../../components/_input/_phoneDropDown\";\r\nimport { TextArea } from \"../../components/_input/_textArea\";\r\nimport { DropDownInput } from \"../../components/_input/_dropdown\";\r\nimport { FormButton } from \"../../components/_input/_button\";\r\nimport CarFeature from \"../../components/carFeature\";\r\nimport Breadcrumb from \"../../components/__simple/breadcrumb\";\r\nimport axios from \"axios\";\r\nimport config from '../../configuration/config.json';\r\nimport Joi from \"joi\";\r\nimport { groupBy, mapValues, omit } from \"lodash\";\r\nimport { GetMessages, formValidate } from '../../utils/validation';\r\nimport { toast } from \"react-toastify\";\r\nimport { useHistory, useLocation } from \"react-router\";\r\nimport { uniqBy } from \"lodash\";\r\nimport { getData, User_Data_Key } from \"../../utils/localStorageManager\";\r\nimport dropDownResetter from \"../../utils/resetDropDown\";\r\n\r\nexport function OrderCarPage() {\r\n const { t: trans } = useTranslation([\"heading\", \"finance\", \"form\", \"model\", \"inputs\", \"info\", \"eparts\"]);\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const [error, setError] = useState({});\r\n const [banner, setbanner] = useState([]);\r\n const [product, setproduct] = useState(null);\r\n const [requestForm, setRequestForm] = useState({\r\n name: '',\r\n custType: null,\r\n identityNo: '',\r\n cn: '',\r\n address: '',\r\n email: '',\r\n phoneNumber: '',\r\n quantity: 1,\r\n message: '',\r\n note: '',\r\n selectedProduct: '',\r\n selectedModel: '',\r\n selectedColor: ''\r\n });\r\n const [showProductSection, setShowProductSection] = useState(true);\r\n const [brands, setBrands] = useState([]);\r\n const [brand, setBrand] = useState(null);\r\n const [group, setGroup] = useState(null);\r\n const [type, setType] = useState(null);\r\n const [year, setYear] = useState(null);\r\n const [fColors, setFColors] = useState([]);\r\n //--------------------------------------------------- \r\n const [fProductGroups, setFProductGroups] = useState([]);\r\n const [productGroups, setProductGroups] = useState([]);\r\n const [products, setProducts] = useState([]);\r\n const [fProducts, setFProduct] = useState(null);\r\n const [fModels, setFModels] = useState([]);\r\n //---------------------------------------------------\r\n const [supportedColors, setSupportedColors] = useState([]);\r\n const [selectedColor, setSelectedColor] = useState(null);\r\n const [selectedObjectColor, setSelectedObjectColor] = useState(null);\r\n //---------------------------------------------------\r\n const [isLoading, setIsLoading] = useState(false);\r\n //---------------------------------------------------\r\n const [vehicleInfo, setVehicleInfo] = useState(null);\r\n //-------------- other declaration------------------\r\n const [defultMobile, setDefultMobile] = useState(\"\");\r\n const schema = Joi.object({\r\n name: Joi.string().required().messages(GetMessages()),\r\n address: Joi.string().required().messages(GetMessages()),\r\n email: Joi.string().email({ minDomainSegments: 2, tlds: { allow: false } }).required().messages(GetMessages()),\r\n phoneNumber: Joi.string().min(12).required().messages(GetMessages()),\r\n quantity: Joi.number().min(1).required().messages(GetMessages()),\r\n selectedProduct: Joi.string().required().messages(GetMessages()),\r\n selectedModel: Joi.string().required().messages(GetMessages()),\r\n custType: Joi.string().required().messages(GetMessages()),\r\n });\r\n\r\n const schemaidentityNo = Joi.object({\r\n identityNo: Joi.string().min(10).required().messages(GetMessages()),\r\n\r\n });\r\n const schemacn = Joi.object({\r\n cn: Joi.string().min(10).required().messages(GetMessages()),\r\n\r\n });\r\n // declarations ver that using in route & searching in url\r\n const history = useHistory();\r\n const location = useLocation();\r\n const query = new URLSearchParams(location.search);\r\n //------------------------------------------------------\r\n const [userTypeList, setUserTypeList] = useState([]);\r\n const [userType, setUserType] = useState(\"\");\r\n const [identityType, setIdentityType] = useState(null);\r\n\r\n const [cnValue, setCnValue] = useState(\"\");\r\n const [identityValue, setIdentityValue] = useState(\"\");\r\n\r\n // ------------\r\n useEffect(() => {\r\n\r\n initialBanner();\r\n getAllUserType();\r\n handleFilterModelsByProduct();\r\n getAllGroups();\r\n getAllBrands();\r\n getAllProducts();\r\n\r\n }, []);\r\n\r\n useEffect(() => {\r\n let data = {};\r\n\r\n const val = { ...requestForm };\r\n\r\n try {\r\n data = JSON.parse(getData(User_Data_Key, true));\r\n console.log(\"_userData:\", data);\r\n\r\n\r\n console.log(\"requestForm:\", val);\r\n val.name = lang == \"ar\" ? (data?.arFirstName ?? \"\") + \" \" + (data?.arMiddleName ?? \"\") + \" \" + (data?.arLastName ?? \"\") : (data?.enFirstName ?? \"\") + \" \" + (data?.enMiddleName ?? \"\") + \" \" + (data?.enLastName ?? \"\");\r\n val.address = data?.address ?? \"\";\r\n val.phoneNumber = data?.phone ?? \"\";\r\n\r\n console.log(\"phone>>>>>>>>>>>>:\", data?.phone.replace(/\\D/g, '').slice(-9).toString());\r\n if (data?.phone)\r\n setDefultMobile(data?.phone.replace(/\\D/g, '').slice(-9).toString());\r\n val.email = data?.email ?? \"\";\r\n\r\n console.log(\"val:\", val);\r\n\r\n setRequestForm(val);\r\n\r\n\r\n } catch (error) {\r\n\r\n\r\n }\r\n\r\n\r\n const productID = query.get('vehicle');\r\n const typeID = query.get('type');\r\n const model = query.get('model');\r\n const color = query.get('color');\r\n if (productID) {\r\n\r\n val.selectedProduct = String(productID);\r\n val.selectedModel = String(model);\r\n val.selectedColor = String(color);\r\n val.selectedTypeID = String(typeID);\r\n setproduct(val);\r\n if (model) {\r\n handleShowVehicleDetails(productID, model);\r\n }\r\n setRequestForm(val);\r\n setShowProductSection(false);\r\n setType(typeID);\r\n handleFetchColors(typeID, model, color);\r\n }\r\n\r\n if (color)\r\n setSelectedColor(color);\r\n\r\n fetchCarDesign(color, productID, model);\r\n }, []);\r\n\r\n useEffect(() => {\r\n\r\n if (products && products.length > 0 && product && product.selectedTypeID && fProducts == null) {\r\n\r\n var GroupID = null;\r\n\r\n const filteredProducts = products.filter(e => e.productTypeID == product.selectedTypeID);\r\n\r\n if (filteredProducts[0])\r\n GroupID = filteredProducts[0].productGroupID;\r\n\r\n if (GroupID) {\r\n const filteredProductsbyGroupID = products.filter(e => e.productGroupID == GroupID && e.Model == product.selectedModel);\r\n setFProduct(filteredProductsbyGroupID.map(product => {\r\n return { value: product.productTypeID, text: product[`${trans(\"model:gamelDescription\")}`], ...product }\r\n }));\r\n\r\n setGroup(GroupID);\r\n } else {\r\n setFProduct([]);\r\n }\r\n\r\n\r\n }\r\n\r\n }, [product, products, fProducts]);\r\n //----------------Functions + Methods------------------------\r\n // fetch all brands from db\r\n const getAllBrands = () => {\r\n axios.post(\r\n config.baseURL + \"details\",\r\n {\r\n \"object\": \"InvBrands\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n }\r\n , \"option\": \"column\",\r\n \"Fields\": \"BrandID,DescriptionAr,DescriptionEn\",\r\n \"filters\": \" where IsEnabled =1\"\r\n }\r\n ).then(response => {\r\n const result = response.data.ApiObjectData;\r\n setBrands(result.map(brand => {\r\n return {\r\n value: brand.BrandID, text: brand[`${trans(\"model:description\")}`]\r\n }\r\n }));\r\n }).catch(err => {\r\n console.log(err);\r\n });\r\n };\r\n //It's used to intialize the banner\r\n const initialBanner = () => {\r\n axios.post(\r\n config.baseURL + \"details\",\r\n {\r\n \"object\": \"sitePageBanners\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n },\r\n \"filters\": \"where bannerId=9\"\r\n }\r\n ).then(response => {\r\n setTimeout(setbanner(response.data.ApiObjectData), 500);\r\n }).catch(err => {\r\n console.log(err);\r\n });\r\n };\r\n // It's used to filter the groups by brand\r\n const filterModel = (option) => {\r\n\r\n setVehicleInfo(null);\r\n setSelectedColor(null);\r\n setType(null);\r\n setGroup(null);\r\n if (option.value == '0') {\r\n dropDownResetter(() => {\r\n setFProductGroups();\r\n setFModels([]);\r\n setFProduct([]);\r\n setFColors([]);\r\n });\r\n }\r\n setBrand(option.value);\r\n const fGroups = productGroups.filter(a => a.BrandID == option.value);\r\n setFProductGroups(fGroups.map(group => {\r\n return {\r\n value: group.ProductGroupID, text: group[`${trans(\"model:description\")}`]\r\n }\r\n }));\r\n };\r\n // Fetch all groups\r\n const getAllGroups = () => {\r\n\r\n const Body = {\r\n \"name\": \"SiteFetchAvailableGroupsOnSite\"\r\n }\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n setProductGroups(response.data);\r\n\r\n\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n };\r\n\r\n // * siteGetCustGroupsforOrder\r\n const getAllUserType = () => {\r\n axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"name\": \"siteGetCustGroupsforOrder\"\r\n }\r\n ).then(response => {\r\n setUserTypeList(response.data);\r\n }).catch(err => {\r\n console.log(err);\r\n })\r\n };\r\n\r\n\r\n const handleCustType = (option) => {\r\n const val = { ...requestForm };\r\n val.custType = option;\r\n setRequestForm(val);\r\n console.log(userType);\r\n setUserType(\"\");\r\n\r\n setCnValue(\"\");\r\n setIdentityValue(\"\");\r\n\r\n try {\r\n if (option == '' || option == null || option == '0') {\r\n setIdentityType(null);\r\n return;\r\n }\r\n\r\n // const currentValue = accountTypes.find(item => {\r\n // return item.ID == option\r\n // }) ?? {};\r\n\r\n let value = null;\r\n if (option == \"G4\") {\r\n value = 1;\r\n val.cn = null;\r\n setUserType(val.cn);\r\n } else {\r\n value = 2;\r\n val.identityNo = null;\r\n setUserType(val.identityNo);\r\n }\r\n\r\n setRequestForm(val);\r\n setIdentityType(value);\r\n\r\n } catch (err) {\r\n //////console.log(err);\r\n }\r\n };\r\n\r\n\r\n //Fetch all products\r\n const getAllProducts = () => {\r\n // SiteFetchAvailableCarsOnSite\r\n axios.post(\r\n config.baseURL + \"func\",\r\n {\r\n \"Name\": \"SiteFetchALLProductModelTypesOnSite\",\r\n }\r\n ).then(response => {\r\n const result = response.data;\r\n setProducts(result);\r\n }).catch(err => {\r\n console.log(err);\r\n });\r\n\r\n\r\n // axios.post(\r\n // config.baseURL + \"details\",\r\n // {\r\n // \"object\": \"InvProducts\",\r\n // \"ObjectSettings\": {\r\n // \"MetaData\": false,\r\n // },\r\n // \"Option\": \"Column\",\r\n // \"Fields\": \"ProductID,DescriptionAr,DescriptionEn,ProductGroupID,Model\",\r\n // \"Filters\": `where ProductID not like 'SP%'`\r\n // }\r\n // ).then(response => {\r\n // const result = response.data.ApiObjectData;\r\n // setProducts(result);\r\n\r\n // }).catch(err => {\r\n // console.log(err);\r\n // });\r\n };\r\n // to get the model of the product\r\n const handleFilterModelsByProduct = () => {\r\n axios.post(\r\n config.baseURL + \"details\",\r\n {\r\n \"object\": \"InvProductModel\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false,\r\n },\r\n \"Option\": \"Column\",\r\n \"Fields\": \"modelID\",\r\n \"Filters\": `where modelID >='2015' `\r\n }\r\n ).then(response => {\r\n const result = response.data.ApiObjectData;\r\n const models = result.map(item => {\r\n return item.modelID\r\n });\r\n const uniqueModels = uniqBy(models, (mY) => {\r\n return mY;\r\n }).filter((value) => {\r\n return value !== null\r\n }).map(item => {\r\n return { text: item, value: item }\r\n });\r\n setFModels(uniqueModels);\r\n }).catch(err => {\r\n console.log(err);\r\n });\r\n }\r\n //Filter the products by group\r\n const filterProductsByGroup = (option) => {\r\n setType(null);\r\n setGroup(null);\r\n setVehicleInfo(null);\r\n setSelectedColor(null);\r\n if (option.value == '0') {\r\n dropDownResetter(() => {\r\n setFProduct([]);\r\n setFModels([]);\r\n });\r\n }\r\n setGroup(option.value);\r\n const filteredProducts = products.filter(e => e.productGroupID == option.value && e.Model == requestForm.selectedModel);\r\n setFProduct(filteredProducts.map(product => {\r\n return { value: product.productTypeID, text: product[`${trans(\"model:gamelDescription\")}`], ...product }\r\n }));\r\n };\r\n const handleSendRequest = async () => {\r\n\r\n if (isLoading == true)\r\n return;\r\n\r\n let result = formValidate(schema, requestForm) ?? {};\r\n\r\n // ex:\r\n // const mergedObj = Object.assign({}, obj1, obj2);\r\n if (identityType && identityType == 1) {\r\n const result22 = formValidate(schemaidentityNo, requestForm) ?? {};\r\n result = { ...result, ...result22 }\r\n\r\n } else {\r\n\r\n const result33 = formValidate(schemacn, requestForm) ?? {};\r\n result = { ...result, ...result33 }\r\n\r\n }\r\n setError(result);\r\n\r\n if (Object.keys(result).length == 0) {\r\n if (supportedColors?.length > 0 && selectedColor == null) {\r\n toast.error(trans(\"finance:color_not_select\"));\r\n setIsLoading(false);\r\n return;\r\n }\r\n setIsLoading(true);\r\n const basicInfo = await getMainUserData();\r\n\r\n axios.post(\r\n config.baseURL + \"add\",\r\n {\r\n \"Object\": \"SitePurchaseVehicleOrder\",\r\n \"Values\": {\r\n \"Name\": requestForm.name,\r\n \"Phone\": requestForm.phoneNumber,\r\n \"Email\": requestForm.email,\r\n \"Message\": requestForm.message,\r\n \"Address\": requestForm.address,\r\n \"Quantity\": Number(requestForm.quantity),\r\n \"ColorID\": (selectedColor != null || selectedColor != '') ? String(selectedColor) : null,\r\n \"Web_UserID\": basicInfo ? Number(basicInfo.userId) : null,\r\n \"CustID\": basicInfo ? basicInfo.custId ? String(basicInfo.custId) : null : null,\r\n \"ProductID\": requestForm.selectedProduct,\r\n \"ModelYear\": requestForm.selectedModel,\r\n \"CustGroupID\": requestForm.custType,\r\n \"TaxationNumber\": cnValue ?? \"\",\r\n \"AddtionalNo\": identityValue ?? \"\",\r\n }\r\n }\r\n ).then(response => {\r\n toast.success(trans(\"common:order-request-success\"));\r\n setIsLoading(false);\r\n history.push(\"/\");\r\n }).catch(err => {\r\n toast.error(trans(\"finance:error_send_data\"));\r\n setIsLoading(false);\r\n });\r\n\r\n }\r\n };\r\n // get the main essetional info about user [web_user_id & cust_id]\r\n const getMainUserData = async () => {\r\n let data = null;\r\n try {\r\n const _data = JSON.parse(getData(User_Data_Key, true));\r\n if (localStorage.getItem(\"isAuthenticated\")) {\r\n data = {\r\n userId: Number(_data.id.toString().split('_')[1]),\r\n custId: _data.custID\r\n };\r\n } else {\r\n const response = await axios.post(\r\n config.baseURL + \"details\",\r\n {\r\n \"Object\": \"web_users\",\r\n \"Option\": \"Column\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false,\r\n \"Limit\": {\r\n \"Value\": 1,\r\n \"Optional\": \"Top\"\r\n }\r\n },\r\n \"Fields\": \"Web_UserId,CustID\",\r\n \"Filters\": `where lower(email) = lower('${requestForm.email}')`\r\n }\r\n );\r\n if (response.status == 200) {\r\n const result = response.data.ApiObjectData;\r\n if (result.length > 0) {\r\n const finalResult = result[0];\r\n data = {\r\n userId: finalResult.Web_UserId,\r\n custId: finalResult.CustID\r\n };\r\n }\r\n }\r\n }\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n return data;\r\n };\r\n const handleFetchColors = (productTypeID, modelYear, defultColor) => {\r\n\r\n if (productTypeID != '' && modelYear != '') {\r\n axios.post(\r\n config.baseURL + 'func',\r\n // {\r\n // \"name\": \"SiteGetColorsByProduct\",\r\n // \"values\": {\r\n // \"productID\": `${productID}`,\r\n // \"model\": `${model}`\r\n // }\r\n // }\r\n\r\n {\r\n \"Name\": \"site_fetchColorOfType\",\r\n \"Values\": {\r\n \"Type\": productTypeID,\r\n \"model\": modelYear\r\n }\r\n }\r\n ).then(response => {\r\n const filterColors = response.data.map((item) => {\r\n return {\r\n text: (lang == \"ar\" ? item?.ColorDescriptionAr : item?.ColorDescriptionEn),\r\n value: item.ColorID, ...item\r\n }\r\n });\r\n setFColors(filterColors);\r\n\r\n if (defultColor) {\r\n setSelectedColor(defultColor);\r\n } else {\r\n\r\n if (filterColors && filterColors[0]) {\r\n setSelectedColor(filterColors[0].value);\r\n }\r\n }\r\n if (response.data[0])\r\n handleShowVehicleDetails(response.data[0].ProductID, modelYear);\r\n }).catch(error => {\r\n console.log(error);\r\n })\r\n\r\n\r\n }\r\n };\r\n //Show the vehicle details[image-features]\r\n const handleShowVehicleDetails = (productID, model) => {\r\n axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"name\": \"SiteGetMoreCarInfo\",\r\n \"values\": {\r\n \"productID\": `${productID}`,\r\n \"model\": `${model}`\r\n }\r\n }\r\n ).then(response => {\r\n setVehicleInfo(response.data[0]);\r\n }).catch(err => {\r\n console.log(err);\r\n })\r\n };\r\n\r\n\r\n\r\n const [cashCarImages, setCashCarImages] = useState({});\r\n const [outerCarImagesJson, setOuterCarImagesJson] = useState(null);\r\n const [isLoadingImages, setIsLoadingImages] = useState(false);\r\n const fetchCarDesign = async (activeColor, model, year) => {\r\n\r\n // console.log(\"activeColor>>>>>>>>>>>>>>>>>>>>>>>>>:\", activeColor);\r\n // console.log(\"model>>>>>>>>>>>>>>>>>>>>>>>>>:\", model);\r\n if (isLoadingImages == false) {\r\n\r\n const Namefiled = \"frontImage,leftImage,backImage,sideImage,rightImage,mainColorImage\"\r\n\r\n const prefix = 'data:image/png;base64,';\r\n if (model) {\r\n if (cashCarImages[model + \"-part-\" + 0]) {\r\n setIsLoadingImages(false);\r\n var AllCarImagesOUT = cashCarImages[model + \"-part-\" + 0];\r\n setOuterCarImagesJson(AllCarImagesOUT);\r\n\r\n } else {\r\n axios.post(\r\n config.baseURL + 'func',\r\n {\r\n //SiteFetchCarColorImages\r\n \"Name\": \"SiteFetchCarColorCodeImages\",\r\n \"Values\": {\r\n \"Id\": model,\r\n \"year\": year,\r\n // \"ColorID\": String(codeColor),\r\n \"ColorID\": null,\r\n \"FieldNameList\": null\r\n }\r\n }\r\n ).then(response => {\r\n setIsLoadingImages(false);\r\n var maincolorimageIndex = 0;\r\n // console.log(\"SiteFetchCarColorCodeImages responseData>>>>>>>>>>>>>>>>>>>>>>>>>:\", response.data);\r\n if (Array.isArray(response.data)) {\r\n const responseData = response.data;\r\n const groupResult = mapValues(groupBy(responseData, 'ColorCode'), fList => fList.map(items => omit(items, 'ColorCode')));\r\n\r\n // console.log(\"responseData groupResult>>>>>>>>>>>>>>>>>>>>>>>>>:\", groupResult);\r\n setOuterCarImagesJson(groupResult);\r\n cashCarImages[model + \"-part-\" + 0] = groupResult;\r\n setCashCarImages(cashCarImages);\r\n setIsLoadingImages(false);\r\n\r\n }\r\n }).catch(error => {\r\n // console.log(error);\r\n setIsLoadingImages(false);\r\n // cashCarImages[model + \"-part-\" + 0] = {};\r\n });\r\n\r\n }\r\n\r\n }\r\n }\r\n };\r\n\r\n return (\r\n \r\n\r\n {/* {banner.map(BN => {\r\n\r\n if (lang === \"en\") {\r\n return ();\r\n } else {\r\n return ();\r\n }\r\n })} */}\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n const val = { ...requestForm };\r\n val.name = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n placeholder={trans(\"form:name\")}\r\n name='name'\r\n />\r\n {\r\n const val = { ...requestForm };\r\n val.address = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n placeholder={trans(\"form:address\")}\r\n name='name'\r\n />\r\n\r\n {\r\n const val = { ...requestForm };\r\n val.phoneNumber = `+${key}${value}`;\r\n setRequestForm(val);\r\n }\r\n }\r\n />\r\n {\r\n const val = { ...requestForm };\r\n val.email = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n errorLabel={error?.email}\r\n placeholder={trans(\"form:email\")}\r\n name='email'\r\n />\r\n\r\n\r\n {\r\n const val = { ...requestForm };\r\n val.note = e;\r\n setRequestForm(val);\r\n }\r\n }\r\n name='note'\r\n\r\n row={3}\r\n\r\n />\r\n {/* {\r\n const val = { ...requestForm };\r\n val.message = e;\r\n setRequestForm(val);\r\n }\r\n }\r\n name='message'\r\n title={trans(\"form:message\")}\r\n /> */}\r\n
    \r\n
    \r\n\r\n {\r\n // \r\n
    \r\n\r\n {\r\n return { text: item.DescriptionAr, value: item.ID }\r\n })]}\r\n onSelect={handleCustType}\r\n\r\n selectedValue={requestForm.custType}\r\n />\r\n\r\n {\r\n (requestForm?.custType == null)\r\n ? <>\r\n :
    \r\n {\r\n const val = { ...requestForm };\r\n if (identityType && identityType == 1) {\r\n\r\n val.identityNo = e.target.value;\r\n setIdentityValue(e.target.value);\r\n\r\n } else {\r\n\r\n val.cn = e.target.value;\r\n setCnValue(e.target.value);\r\n }\r\n setRequestForm(val);\r\n }}\r\n\r\n onLeave={(e) => {\r\n console.log(\"eeeeeeeeeeeeeeeeeeeeeeeeeeeeee\", e);\r\n }}\r\n />\r\n
    \r\n }\r\n\r\n
    \r\n //\r\n }\r\n\r\n {showProductSection && <>\r\n \r\n {\r\n const val = { ...requestForm };\r\n val.selectedModel = String(e);\r\n setYear(e);\r\n setRequestForm(val);\r\n setVehicleInfo(null);\r\n setSelectedColor(null);\r\n handleFetchColors(val.selectedProduct, e);\r\n }\r\n }\r\n />\r\n \r\n\r\n \r\n }\r\n {\r\n\r\n if (e.value == '0') {\r\n dropDownResetter(() => {\r\n setFModels([]);\r\n setFColors([]);\r\n });\r\n return;\r\n }\r\n const val = { ...requestForm };\r\n val.productTypeID = String(e.value);\r\n setType(val.productTypeID);\r\n setRequestForm(val);\r\n setVehicleInfo(null);\r\n setSelectedColor(null);\r\n handleFetchColors(e.productTypeID, val.selectedModel);\r\n }\r\n }\r\n />\r\n\r\n {\r\n fColors.length > 0 && (\r\n {\r\n setSelectedColor(option);\r\n // setOuterCarImagesJson(null);\r\n console.log(\"fColors:\", fColors);\r\n console.log(\"option:\", option);\r\n const objectColor = fColors.filter(c => c.value == option)[0]?.ProductID;\r\n console.log(\"objectColor:\", objectColor);\r\n fetchCarDesign(option, objectColor, requestForm.selectedModel);\r\n }}\r\n options={[...fColors]}\r\n />\r\n )\r\n }\r\n {\r\n const val = { ...requestForm };\r\n val.quantity = e.target.value;\r\n setRequestForm(val);\r\n }}\r\n errorLabel={error?.quantity}\r\n name='quantity'\r\n />\r\n\r\n\r\n
    \r\n
    \r\n

    {lang == \"ar\" ? vehicleInfo?.brand : vehicleInfo?.brandEn}

    \r\n
    \r\n\r\n
    \r\n
    \r\n

    {lang == \"ar\" ? vehicleInfo?.ModelTypes : vehicleInfo?.ModelTypesEn}

    \r\n
    \r\n {vehicleInfo &&
    \r\n\r\n\r\n {outerCarImagesJson &&\r\n\r\n outerCarImagesJson[selectedColor?.split(\"/\")[0]] ?\r\n\r\n \"car\"\r\n :\r\n
    \r\n {/* {\r\n trans(\"finance:no_image_set\")\r\n } */}\r\n
    \r\n\r\n }\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n\r\n {\r\n if (isLoading == false)\r\n await handleSendRequest();\r\n }}\r\n />\r\n
    \r\n
    \r\n );\r\n}","import { Fragment, useEffect, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport Banner from \"../../components/banner\";\r\nimport { InputField } from \"../../components/_input/_input\";\r\nimport { PhoneInput } from \"../../components/_input/_phoneInput\";\r\nimport { TextArea } from \"../../components/_input/_textArea\";\r\nimport { DropDownInput } from \"../../components/_input/_dropdown\";\r\nimport { FormButton } from \"../../components/_input/_button\";\r\nimport Breadcrumb from \"../../components/__simple/breadcrumb\";\r\nimport { CarColorPicker } from \"../vehicles/components/colorPicker\";\r\nimport { useHistory, useLocation } from \"react-router\";\r\nimport config from '../../configuration/config.json';\r\nimport axios from \"axios\";\r\nimport Joi from \"joi\";\r\nimport { GetMessages, formValidate, validateProperty } from '../../utils/validation';\r\nimport { toast } from \"react-toastify\";\r\nimport _ from 'lodash';\r\nexport function OrderFinancePage() {\r\n const history = useHistory();\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const languageDir = \"language-\" + lang;\r\n const { t: trans } = useTranslation([\"error\", \"heading\", \"model\", \"vehicales\", \"form\", \"finance\", \"common\"]);\r\n const [selectedColor, setSelectedColor] = useState(null);\r\n const location = useLocation();\r\n const query = new URLSearchParams(location.search);\r\n const [offerId, setOfferId] = useState();\r\n const [terms, setTerms] = useState(null);\r\n const [vehicleDetails, setVehicleDetails] = useState({});\r\n const [supportedColors, setSupportedColors] = useState([]);\r\n const [error, setError] = useState({});\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [banner, setbanner] = useState([]);\r\n const [userData, setUserData] = useState({\r\n name: '',\r\n address: '',\r\n email: '',\r\n phoneNumber: '',\r\n quantity: 1,\r\n message: '',\r\n note: ''\r\n\r\n });\r\n\r\n const schema = Joi.object({\r\n name: Joi.string().required().messages(GetMessages()),\r\n address: Joi.string().required().messages(GetMessages()),\r\n email: Joi.string().email({ minDomainSegments: 2, tlds: { allow: false} }).required().messages(GetMessages()),\r\n phoneNumber: Joi.string().length(13).required().messages(GetMessages()),\r\n quantity: Joi.number().min(1).required().messages(GetMessages())\r\n });\r\n\r\n useEffect(() => {\r\n try {\r\n const id = query.get(\"id\").split(\"_\")[1];\r\n setOfferId(id);\r\n initialBanner();\r\n initialVehicle(id);\r\n initialColors();\r\n initialTerms();\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }, []);\r\n\r\n const initialTerms = () => {\r\n axios.post(\r\n config.baseURL + \"details\",\r\n {\r\n \"Object\": \"Financil_Bank_Condations\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n },\r\n \"Filters\": `where ShowInWebsite = 1 and bankId = '${query.get(\"b\")}'`\r\n }\r\n ).then(response => {\r\n const result = response.data.ApiObjectData;\r\n if (result.length > 0) {\r\n setTerms(result.map(e => {\r\n return { description: e[`${trans(\"model:description\")}`] }\r\n })[0]);\r\n }\r\n }).catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n // initial colors\r\n const initialColors = () => {\r\n axios.post(\r\n config.baseURL + \"details\",\r\n {\r\n \"Object\": \"SiteColorView\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n },\r\n }\r\n ).then(response => {\r\n const result = response.data.ApiObjectData;\r\n if (result.length > 0) {\r\n const colors = result.filter(ee => {\r\n return (ee.CarGroupID == query.get(\"group\") && (query.get(\"model\") >= ee.StartModel && query.get(\"model\") <= ee.EndModel))\r\n })\r\n setSupportedColors(colors);\r\n };\r\n }).catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n // initilal vehicle values\r\n const initialVehicle = (offerId) => {\r\n axios.post(\r\n config.baseURL + \"details\",\r\n {\r\n \"Object\": \"SiteCarsFinanceDataView\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n },\r\n \"Option\": \"column\",\r\n \"Fields\": \"HorsePower,Cylinder,Liter,Petrol,Seats,GroupImage\",\r\n \"Filters\": `where EndFinance = 0 and BankTermId = ${offerId}`\r\n }\r\n ).then(respone => {\r\n const result = respone.data.ApiObjectData;\r\n if (result.length > 0) {\r\n const info = result[0];\r\n setVehicleDetails({\r\n hoursePower: info.HorsePower,\r\n cylinder: info.Cylinder,\r\n liter: info.Liter,\r\n petrol: info.Petrol,\r\n seats: info.Seats,\r\n image: info.GroupImage\r\n });\r\n }\r\n }).catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n // send request\r\n const handleRequestOrder = async () => {\r\n const result = formValidate(schema, userData) ?? {};\r\n setError(result);\r\n if (Object.keys(result).length === 0) {\r\n setIsLoading(true);\r\n if (supportedColors?.length > 0 && selectedColor == null) {\r\n toast.error(trans(\"finance:color_not_select\"));\r\n setIsLoading(false);\r\n return;\r\n }\r\n const data = await getNewUserID();\r\n alert(JSON.stringify(data));\r\n if (data.hasAlready) {\r\n const statusOrder = await createOrder(data.id);\r\n alert(JSON.stringify(statusOrder));\r\n if (statusOrder) {\r\n toast.success(trans(\"common:order-request-success\"));\r\n setError({});\r\n history.push(\"/finance\")\r\n } else {\r\n toast.error(trans(\"finance:error_send_data\"));\r\n }\r\n } else {\r\n const status = await createFinancialUser(data.id);\r\n if (status) {\r\n const statusOrder = await createOrder(data.id);\r\n if (statusOrder) {\r\n toast.success(trans(\"common:order-request-success\"));\r\n setError({});\r\n history.push(\"/finance\")\r\n } else {\r\n toast.error(trans(\"finance:error_send_data\"));\r\n }\r\n } else {\r\n toast.error(trans(\"finance:error_send_data\"));\r\n }\r\n }\r\n }\r\n setIsLoading(false);\r\n };\r\n // initilaize the new id for the financial user\r\n const getNewUserID = async () => {\r\n let userInfo = {\r\n hasAlready: false,\r\n id: 1\r\n };\r\n try {\r\n const response = await axios.post(\r\n config.baseURL + \"details\",\r\n {\r\n \"Object\": \"CustTable_Finance\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n },\r\n \"Option\": \"Column\",\r\n \"Fields\": \"FinancialUserID,Email\"\r\n }\r\n );\r\n if (response.status == 200) {\r\n const result = response.data.ApiObjectData;\r\n if (result.length > 0) {\r\n const userExisting = result.find(e => e.Email.toString().toLowerCase() == userData.email.toLowerCase());\r\n if (userExisting) {\r\n userInfo.hasAlready = true;\r\n userInfo.id = userExisting.FinancialUserID;\r\n } else {\r\n const arr = result.map(e => Number(e.FinancialUserID));\r\n const maxNumber = _.max(arr) + 1;\r\n userInfo.id = maxNumber;\r\n }\r\n }\r\n }\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n return userInfo;\r\n };\r\n // get the main essetional info about user [web_user_id & cust_id]\r\n const getMainUserData = async () => {\r\n let data = null;\r\n try {\r\n if (localStorage.getItem(\"isAuthenticated\")) {\r\n data = {\r\n userId: localStorage.getItem(\"userId\"),\r\n custId: localStorage.getItem(\"custId\") != 'null'?localStorage.getItem(\"custId\"):null\r\n };\r\n } else {\r\n const response = await axios.post(\r\n config.baseURL + \"details\",\r\n {\r\n \"Object\": \"web_users\",\r\n \"Option\": \"Column\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false,\r\n \"Limit\": {\r\n \"Value\": 1,\r\n \"Optional\": \"Top\"\r\n }\r\n },\r\n \"Fields\": \"Web_UserId,CustID\",\r\n \"Filters\": `where lower(email) = lower('${userData.email}')`\r\n }\r\n );\r\n if (response.status == 200) {\r\n const result = response.data.ApiObjectData;\r\n if (result.length > 0) {\r\n const finalResult = result[0];\r\n data = {\r\n userId: finalResult.Web_UserId,\r\n custId: finalResult.CustID\r\n };\r\n }\r\n }\r\n }\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n return data;\r\n };\r\n // create new financial user\r\n const createFinancialUser = async (id) => {\r\n let success = false;\r\n try {\r\n const basicData = await getMainUserData();\r\n const response = await axios.post(\r\n config.baseURL + \"add\",\r\n {\r\n \"Object\": \"CustTable_Finance\",\r\n \"Values\": {\r\n \"FinancialUserID\": id,\r\n \"Web_UserId\": basicData ? Number(basicData.userId) : null,\r\n \"CustID\": basicData ? basicData.custId ? String(basicData.custId) : null : null,\r\n \"Name\": userData.name.trim(),\r\n \"Phone\": userData.phoneNumber,\r\n \"Email\": userData.email,\r\n \"Adderss\": userData.address\r\n }\r\n }\r\n );\r\n if (response.status == 200) {\r\n success = true;\r\n }\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n return success;\r\n };\r\n // create new financial order\r\n const createOrder = async (id) => {\r\n let success = false;\r\n try {\r\n const response = await axios.post(\r\n config.baseURL + \"add\",\r\n {\r\n \"Object\": \"FinanceOrdersTable\",\r\n \"Values\": {\r\n \"FinanceUserID\": Number(id),\r\n \"BankOfferID\": Number(offerId),\r\n \"ColorID\": selectedColor ? String(selectedColor.id) : null,\r\n \"Quantity\": Number(userData.quantity),\r\n \"Note\": userData.note,\r\n \"Message\": userData.message\r\n }\r\n }\r\n );\r\n alert(JSON.stringify(response));\r\n if (response.status == 200 || response.status ==201) {\r\n success = true;\r\n }\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n return success;\r\n };\r\n //It's used to intialize the banner\r\n const initialBanner = () => {\r\n axios.post(\r\n config.baseURL + \"details\",\r\n {\r\n \"object\": \"sitePageBanners\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n },\r\n \"filters\": \"where bannerId=7\"\r\n }\r\n ).then(response => {\r\n setTimeout(setbanner(response.data.ApiObjectData), 500);\r\n }).catch(err => {\r\n console.log(err);\r\n });\r\n };\r\n\r\n return (\r\n \r\n\r\n {banner.map(BN => {\r\n\r\n if (lang === \"en\") {\r\n return ();\r\n } else {\r\n return ();\r\n }\r\n })}\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n {trans(\"finance:finance_terms\")}\r\n
    \r\n {
      \" + terms?.description.replaceAll(\"\\n\", \"
    • \") + \"
    • \"\r\n }}>\r\n\r\n
    }\r\n
    \r\n
    \r\n
    \r\n

    {trans(\"finance:personal_info\")}

    \r\n {\r\n const val = { ...userData };\r\n val.name = e.target.value;\r\n setUserData(val);\r\n }}\r\n title={trans(\"form:name\")}\r\n name='name'\r\n />\r\n {\r\n const val = { ...userData };\r\n val.address = e.target.value;\r\n setUserData(val);\r\n }}\r\n title={trans(\"form:address\")}\r\n name='address'\r\n />\r\n {\r\n const val = { ...userData };\r\n val.phoneNumber = e;\r\n setUserData(val);\r\n }\r\n }\r\n />\r\n {\r\n const val = { ...userData };\r\n val.email = e.target.value;\r\n setUserData(val);\r\n }}\r\n errorLabel={error?.email}\r\n title={trans(\"form:email\")}\r\n name='email'\r\n />\r\n {\r\n const val = { ...userData };\r\n val.message = e;\r\n setUserData(val);\r\n }\r\n }\r\n name='message'\r\n title={trans(\"form:message\")}\r\n />\r\n
    {trans(\"finance:vehicle_info\")}
    \r\n\r\n {\r\n const val = { ...userData };\r\n val.quantity = e.target.value;\r\n setUserData(val);\r\n }}\r\n errorLabel={error?.quantity}\r\n title={trans(\"finance:quantity\")}\r\n name='quantity'\r\n />\r\n {\r\n const val = { ...userData };\r\n val.note = e;\r\n setUserData(val);\r\n }\r\n }\r\n name='note'\r\n title={trans(\"finance:note\")}\r\n />\r\n
    \r\n {\r\n supportedColors && supportedColors?.map(color => {\r\n return setSelectedColor({\r\n id: color.ColorID,\r\n active: color.HexCode\r\n })}\r\n active={selectedColor?.active} />\r\n })\r\n }\r\n
    \r\n\r\n
    \r\n\r\n \"car\"\r\n\r\n
    \r\n
    \r\n \r\n \r\n {\r\n vehicleDetails.petrol ?? \"0\"\r\n }\r\n \r\n {trans(\"vehicales:veh-petrol\")}\r\n \r\n
    \r\n \"petrol\"\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {\r\n vehicleDetails.seats ?? \"0\"\r\n }\r\n \r\n {trans(\"vehicales:veh-seat\")}\r\n \r\n
    \r\n \"seats\"\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {\r\n vehicleDetails.cylinder ?? \"0\"\r\n }\r\n \r\n {trans(\"vehicales:veh-cle\")}\r\n \r\n
    \r\n \"cylinders\"\r\n
    \r\n
    \r\n
    \r\n\r\n \r\n \r\n {\r\n vehicleDetails.hoursePower ?? \"0\"\r\n }\r\n \r\n {trans(\"vehicales:veh-eng\")}\r\n\r\n \r\n
    \r\n \"engine\"\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n handleRequestOrder()}\r\n name={trans(\"form:send-order\")}\r\n />\r\n
    \r\n
    \r\n );\r\n}","import ErrorLabel from '../../components/error';\r\nimport { useTranslation } from \"react-i18next\";\r\nexport function DateInput({name,title , errorLabel , onSelect, type = \"date\" , value}) {\r\n const { t: trans,i18n } = useTranslation([\"info\"]);\r\n let lang =i18n.language;\r\n let languageDir = \"language-\" + lang;\r\n return (\r\n
    \r\n \r\n \r\n onSelect(e)} value={value} name={name} className={\"input-field bg-white\"} type={type} lang=\"en\"/>\r\n \r\n
    \r\n );\r\n}\r\n","import {Fragment, useEffect, useState} from \"react\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport Banner from \"../../components/banner\";\r\nimport {InputField} from \"../../components/_input/_input\";\r\nimport {TextArea} from \"../../components/_input/_textArea\";\r\nimport {DropDownInput} from \"../../components/_input/_dropdown\";\r\nimport {FormButton} from \"../../components/_input/_button\";\r\nimport Breadcrumb from \"../../components/__simple/breadcrumb\";\r\nimport {DateInput} from \"../../components/_input/_dateInput\";\r\nimport {CheckInput} from \"../../components/_input/_checkInput\";\r\nimport axios from \"axios\";\r\nimport {useLocation, useParams} from \"react-router\";\r\nimport {PhoneInput} from \"../../components/_input/_phoneInput\";\r\nimport Joi from 'joi';\r\nimport {GetMessages , formValidate,validateProperty} from '../../utils/validation';\r\nimport config from '../../configuration/config.json';\r\nimport { toast } from \"react-toastify\";\r\nimport {getCleanSlug,slugCombine} from '../../utils/slugManager';\r\n\r\nexport function MaintenanceOrderPage() {\r\n const {t: trans} = useTranslation([\"heading\", \"maintenance\", \"form\",\"inputs\",\"eparts\"]);\r\n const [requestForm, setRequestForm] = useState({\r\n name: '',\r\n address: '',\r\n phoneNumber: '',\r\n email: '',\r\n message: '',\r\n selectedBrand: '',\r\n selectedGroup: '',\r\n selectedType: '',\r\n selectedBranch: '',\r\n selectedOffer:'',\r\n maintenanceDate: ''\r\n });\r\n const [error, setError] = useState({});\r\n const [selectedPrivacy , setSelectedPrivacy] = useState(false);\r\n const schema = Joi.object({\r\n name:Joi.string().required().messages(GetMessages()),\r\n address:Joi.string().required().messages(GetMessages()),\r\n email:Joi.string().email({minDomainSegments: 2, tlds: { allow: false}}).required().messages(GetMessages()),\r\n phoneNumber:Joi.string().length(13).required().messages(GetMessages()),\r\n message:Joi.string().required().messages(GetMessages()),\r\n selectedBrand:Joi.string().required().messages(GetMessages()),\r\n selectedGroup:Joi.string().required().messages(GetMessages()),\r\n selectedType:Joi.string().required().messages(GetMessages()),\r\n selectedBranch:Joi.string().required().messages(GetMessages()),\r\n maintenanceDate:Joi.string().required().messages(GetMessages()),\r\n });\r\n\r\n let {service} = useParams();\r\n\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const languageDir = 'language-' + lang;\r\n const [serviceData, setServiceData] = useState({});\r\n const [locations, setLocations] = useState([{text: \"\", value: \"\"}]);\r\n const [offers, setOffers] = useState([{text: \"\", value: \"\"}]);\r\n \r\n const submitRequest = async () => {\r\n const result = formValidate(schema, requestForm)??{};\r\n setError(result);\r\n if(selectedPrivacy){\r\n try { \r\n if (Object.keys(result).length === 0) {\r\n const response = await axios.post(\r\n config.baseURL + 'add',\r\n {\r\n \"object\":\"siteCarMaintenanceRequests\",\r\n \"values\":{\r\n \"name\": requestForm.name,\r\n \"address\":requestForm.address,\r\n \"phoneNumber\":requestForm.phoneNumber,\r\n \"email\":requestForm.email,\r\n \"message\":requestForm.message,\r\n \"brandId\":requestForm.selectedBrand,\r\n \"groupId\":requestForm.selectedGroup,\r\n \"typeId\":requestForm.selectedType,\r\n \"branchId\":requestForm.selectedBranch,\r\n \"categoryId\":parseInt(serviceData.categoryID),\r\n \"serviceId\":parseInt(serviceData.serviceID),\r\n \"offerId\": (requestForm.selectedOffer != '' ? Number(requestForm.selectedOffer) : null), \r\n \"created_at\":requestForm.maintenanceDate\r\n }\r\n }\r\n );\r\n console.log('response' , response);\r\n if(response.status === 200 || response.status === 201){\r\n const defaultValue = {...requestForm}; \r\n setRequestForm({\r\n name: '',\r\n address: '',\r\n phoneNumber: defaultValue.phoneNumber,\r\n email: '',\r\n message: '',\r\n selectedBrand: defaultValue.selectedBrand,\r\n selectedGroup: defaultValue.selectedGroup,\r\n selectedType: defaultValue.selectedType,\r\n selectedBranch: defaultValue.selectedBranch,\r\n selectedOffer:defaultValue.selectedOffer,\r\n maintenanceDate: ''\r\n });\r\n setError({});\r\n toast.success(trans(\"eparts:success-sent\"));\r\n //alert(trans(\"employment:success_employment_success\"));\r\n }\r\n }\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n }else{\r\n toast.error(trans(\"common:not-agree\"));\r\n } \r\n }\r\n\r\n///starting_code_hamza\r\nconst [Brands,setBrands]=useState([]);\r\nconst [ProductGroups,setProductGroups]=useState([]);\r\nconst [ProductModel,setProductModel]=useState([]);\r\nconst [ProductModelTypes,setProductModelTypes]=useState([]);\r\nconst [brand, setBrand] = useState(\"0\");\r\nconst [group, setGroup] = useState( \"0\");\r\n\r\n\r\n //values for filter dropdown\r\n const [FProductGroups,setFProductGroups]=useState([]);\r\n const [FProductModelTypes,setFProductModelTypes]=useState([]);\r\n\r\n\r\nfunction filterModel(option)\r\n{\r\n setBrand(option.value);\r\n setFProductGroups(ProductGroups.filter(a=>a.BrandID===option.value));\r\n console.log(FProductGroups);\r\n} \r\nfunction filterModelType(option)\r\n{\r\n setGroup(option.value);\r\n setFProductModelTypes(ProductModelTypes.filter(a=>a.ProductGroupID===option.value));\r\n console.log(FProductModelTypes);\r\n} \r\nconst GetUrl= config.baseURL + 'details';\r\nasync function SendRequset()\r\n{\r\n \r\n const BodyBrands={\r\n \"object\":\"InvBrands\",\r\n \"ObjectSettings\":{\r\n \"MetaData\":false\r\n }\r\n ,\"option\":\"column\",\r\n \"Fields\":\"BrandID,DescriptionAr,DescriptionEn\"\r\n\r\n};\r\n const requestBrands= axios.request({\r\n url: GetUrl,\r\n data: BodyBrands, method:\"POST\",responseType:\"json\"\r\n });\r\n \r\n const BodyProductGroups={\r\n \"object\":\"InvProductGroups\",\r\n \"ObjectSettings\":{\r\n \"MetaData\":false,\r\n },\r\n \"Option\":\"Column\",\r\n \"Fields\":\"DescriptionAr,DescriptionEn,ProductGroupID,BrandID\"\r\n };\r\n const requestProductGroups=axios.request({\r\n url: GetUrl,\r\n data: BodyProductGroups, method:\"POST\",responseType:\"json\"\r\n });\r\n \r\n const BodyProductModel={\r\n \"object\":\"InvProductModel\",\r\n \"ObjectSettings\":{\r\n \"MetaData\":false\r\n }\r\n };\r\n const requestProductModel=axios.request({\r\n url: GetUrl,\r\n data: BodyProductModel, method:\"POST\",responseType:\"json\"\r\n });\r\n \r\n const BodyProductModelTypes={\r\n \"object\":\"InvProductModelTypes\",\r\n \"ObjectSettings\":{\r\n \"MetaData\":false\r\n }\r\n };\r\n const requestProductModelTypes=axios.request({\r\n url: GetUrl,\r\n data: BodyProductModelTypes, method:\"POST\",responseType:\"json\"\r\n});\r\n \r\n \r\n \r\n await axios.all([requestBrands,requestProductGroups,requestProductModel,requestProductModelTypes]).then(axios.spread(function(Brands, ProductGroups, ProductModel, ProductModelTypes) {\r\n \r\n setTimeout(setBrands(Brands.data.ApiObjectData),500);\r\n setTimeout(setProductGroups(ProductGroups.data.ApiObjectData),500);\r\n setTimeout(setProductModel(ProductModel.data.ApiObjectData),500);\r\n setTimeout(setProductModelTypes(ProductModelTypes.data.ApiObjectData),500);\r\n\r\n})).catch(function (error) {\r\n console.log(error);\r\n });\r\n \r\n}\r\n\r\n///Finsh_code_hamza\r\n useEffect(async () => {\r\n try {\r\n SendRequset();\r\n const response = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/maintenance/orderPage/\" + service,\r\n method: \"get\",\r\n });\r\n\r\n setServiceData(response.data.service);\r\n setLocations(response.data.locations);\r\n setOffers(response.data.offers)\r\n // setJobs(response.data.employments);\r\n // setJobDepartments(response.data.jobDepartments);\r\n // setJobBranches(response.data.jobBranches);\r\n\r\n } catch (error) {\r\n\r\n }\r\n }, [service]);\r\n\r\n\r\n return (\r\n \r\n\r\n \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n
    \r\n {trans(\"maintenance:explanation\")}\r\n
    \r\n

    \r\n

    \r\n\r\n

    \r\n
    \r\n
    \r\n
    \r\n

    \r\n {trans(\"form:personal-info\")}\r\n

    \r\n {\r\n const val = {...requestForm};\r\n val.name = e.target.value;\r\n setRequestForm(val);\r\n }\r\n }\r\n />\r\n {\r\n const val = {...requestForm};\r\n val.address = e.target.value;\r\n setRequestForm(val);\r\n }\r\n }\r\n />\r\n {\r\n const val = {...requestForm};\r\n val.phoneNumber = e;\r\n setRequestForm(val);\r\n }\r\n }\r\n />\r\n {\r\n const val = {...requestForm};\r\n val.email = e.target.value;\r\n setRequestForm(val);\r\n }\r\n }\r\n />\r\n {\r\n const val = {...requestForm};\r\n val.message = e;\r\n setRequestForm(val);\r\n }\r\n }\r\n />\r\n
    \r\n {trans(\"form:vehicle-info\")}\r\n
    \r\n {\r\n if (lang===\"ar\")\r\n {\r\n return {value: B.BrandID, text:B.DescriptionAr};\r\n }else {\r\n return {value: B.BrandID, text:B.DescriptionEn}; \r\n }\r\n \r\n })]}\r\n onSelect={\r\n (e)=>{\r\n const val = {...requestForm};\r\n val.selectedBrand= String(e); \r\n setRequestForm(val); \r\n }\r\n }\r\n />\r\n\r\n {\r\n\r\n if (lang===\"ar\")\r\n {\r\n return {value: B.ProductGroupID, text:B.DescriptionAr};\r\n }else {\r\n return {value: B.ProductGroupID, text:B.DescriptionEn};\r\n }\r\n \r\n })]}\r\n onfilter={filterModelType}\r\n onSelect={\r\n (e)=>{\r\n const val = {...requestForm};\r\n val.selectedGroup= String(e); \r\n setRequestForm(val); \r\n }\r\n }\r\n />\r\n\r\n {\r\n\r\n if (lang===\"ar\")\r\n {\r\n return {value: B.ProductTypeID, text:B.DescriptionAr};\r\n }else {\r\n return {value: B.ProductTypeID, text:B.DescriptionEn};\r\n }\r\n \r\n })]}\r\n onSelect={\r\n (e)=>{\r\n const val = {...requestForm};\r\n val.selectedType= String(e); \r\n setRequestForm(val); \r\n }\r\n }\r\n />\r\n\r\n\r\n
    {trans(\"form:maintenance-info\")}
    \r\n {\r\n return {\r\n text: job.content,\r\n value: job.name\r\n }\r\n })\r\n ]}\r\n onSelect={\r\n (e)=>{\r\n const val = {...requestForm};\r\n val.selectedBranch= String(e); \r\n setRequestForm(val); \r\n }\r\n }\r\n errorLabel = {error?.selectedBranch}\r\n />\r\n\r\n {/* \r\n\r\n */}\r\n {\r\n const val = {...requestForm};\r\n val.maintenanceDate = e.target.value;\r\n setRequestForm(val);\r\n }\r\n }\r\n name='maintenanceDate'\r\n title={trans(\"form:maintenance-date\")}\r\n errorLabel={error?.maintenanceDate}/>\r\n
    {trans(\"form:maintenance-available-offers\")}
    \r\n\r\n {\r\n return {\r\n text: offer.content,\r\n value: offer.name\r\n }\r\n })\r\n ]}\r\n onSelect={(e)=>{\r\n const val = {...requestForm};\r\n val.selectedOffer= String(e); \r\n setRequestForm(val); \r\n }}\r\n errorLabel = {error.selectedOffer}\r\n />\r\n\r\n {\r\n setSelectedPrivacy(e.checked);\r\n }\r\n }>\r\n
    \r\n\r\n \r\n\r\n \r\n\r\n
    \r\n
    \r\n\r\n\r\n
    \r\n \r\n );\r\n}","import {useRef, useState} from \"react\";\r\n\r\nexport default function AdviceTile({key = null ,name, content}) {\r\n const height = useRef(null);\r\n const [divHeight, setHeight] = useState(0);\r\n\r\n function showData() {\r\n setHeight(divHeight <= 0 ? height.current.scrollHeight : 0);\r\n }\r\n\r\n return (\r\n
    \r\n\r\n
    \r\n
    {name}
    \r\n\r\n 0 && \"rotate-180\")}\r\n src={\"/assets/icons/arrow.svg\"} alt={\"show\"}/>\r\n
    \r\n
    \r\n
    \r\n {content}\r\n
    \r\n
    \r\n
    \r\n );\r\n}","import PageHeading from \"../../components/__simple/_pageheading\";\r\nimport { Fragment, useEffect, useState } from \"react\";\r\nimport Breadcrumb from \"../../components/__simple/breadcrumb\";\r\nimport Banner from \"../../components/banner\";\r\nimport AdviceTile from \"./components/adviceTile\";\r\nimport { WhyHJSection } from \"../../sections/whyHJSection\";\r\nimport axios from \"axios\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport config from \"../../configuration/config.json\";\r\nimport { Helmet } from \"react-helmet\";\r\nexport function HJAdvisesPage() {\r\n const { t: trans } = useTranslation([\"common\"]);\r\n\r\n const [banner, setBanner] = useState({});\r\n const [advises, setAdvises] = useState([]);\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const languageDir = \"language-\" + lang;\r\n\r\n\r\n\r\n useEffect(async () => {\r\n try {\r\n const response = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/hj/advises\",\r\n method: \"get\",\r\n });\r\n setBanner(response.data.banner)\r\n setAdvises(response.data.tips)\r\n } catch (error) {\r\n\r\n }\r\n\r\n\r\n }, []);\r\n\r\n\r\n const [seoPageInfo, setSeoPageInfo] = useState({});\r\n useEffect(async () => {\r\n\r\n var page = \"hassan jameel tips\"\r\n\r\n\r\n const response = await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"SiteFetchSeoPages\",\r\n \"Values\": {\r\n \"page\": page\r\n }\r\n }\r\n );\r\n if (response.status == 200) {\r\n\r\n var resdata = response.data[0];\r\n\r\n setSeoPageInfo(resdata);\r\n\r\n\r\n }\r\n }, []);\r\n return (\r\n \r\n\r\n {\r\n seoPageInfo &&\r\n\r\n \r\n\r\n \r\n {\r\n seoPageInfo?.title &&\r\n {seoPageInfo?.title}\r\n }\r\n {\r\n seoPageInfo?.link &&\r\n \r\n\r\n }\r\n {\r\n seoPageInfo?.MetaDescription &&\r\n \r\n }\r\n {\r\n seoPageInfo?.MetaGroups &&\r\n \r\n }\r\n\r\n \r\n\r\n\r\n }\r\n \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n\r\n {\r\n advises?.map((advise, index) => {\r\n return (\r\n \r\n )\r\n })\r\n }\r\n
    \r\n \r\n
    \r\n\r\n )\r\n}\r\n\r\n","import { NavLink } from \"react-router-dom\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useEffect, useState } from \"react\";\r\nimport axios from \"axios\";\r\nimport config from \"../../configuration/config.json\";\r\nimport { User_Data_Key, getData, saveData } from \"../../utils/localStorageManager\";\r\nfunction Navlink({ title, to, icon, state, handelonClick, ...props }) {\r\n return (\r\n {\r\n if (handelonClick)\r\n handelonClick();\r\n }}>\r\n {title}\r\n
    {title}
    \r\n
    \r\n );\r\n}\r\n\r\nexport default function UserNav({ url }) {\r\n const defaultProfileImage = '/assets/images/profile.jpg';\r\n const { t: trans } = useTranslation([\"common\", \"model\", \"info\", \"user\", \"home\"]);\r\n const lang = localStorage.getItem(\"i18nextLng\");\r\n const pageDir = 'language-' + lang;\r\n const handleLayout = () => {\r\n const isLagout = window.confirm(trans(\"common:lagout-confirm\"));\r\n if (isLagout) {\r\n window.localStorage.clear();\r\n saveData(\"i18nextLng\", lang, false);\r\n deleteAllCookies();\r\n window.location = '/';\r\n }\r\n };\r\n const [showItems, setShowItems] = useState(false);\r\n const [userInfo, setUserInfo] = useState({});\r\n const [names, setNames] = useState('');\r\n const [imageProfile, setImageProfile] = useState(defaultProfileImage);\r\n const b64toBlob = (b64Data, contentType = '', sliceSize = 512) => {\r\n const byteCharacters = atob(b64Data);\r\n const byteArrays = [];\r\n\r\n for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\r\n const slice = byteCharacters.slice(offset, offset + sliceSize);\r\n\r\n const byteNumbers = new Array(slice.length);\r\n for (let i = 0; i < slice.length; i++) {\r\n byteNumbers[i] = slice.charCodeAt(i);\r\n }\r\n\r\n const byteArray = new Uint8Array(byteNumbers);\r\n byteArrays.push(byteArray);\r\n }\r\n\r\n const blob = new Blob(byteArrays);\r\n return blob;\r\n };\r\n\r\n useEffect(() => {\r\n try {\r\n const _temp = JSON.parse(getData(User_Data_Key, true));\r\n setUserInfo(_temp);\r\n const firstName = _temp[`${lang}FirstName`];\r\n const lastName = _temp[`${lang}LastName`];\r\n let finalResult = trans(\"info:no_set_names\");\r\n if (firstName)\r\n finalResult = firstName + ' ' + lastName;\r\n setNames(finalResult);\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n\r\n\r\n intialUserData();\r\n }, []);\r\n const intialUserData = async () => {\r\n\r\n\r\n try {\r\n const userKey = getData('secretKey');\r\n console.log(\">>>>>>>>>>>>>>>>>GetUserImage>>>>>>>>userKey>>>>>>>>>>:\", userKey)\r\n const settingsResponse = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/user/GetUserImage\",\r\n method: \"get\",\r\n params: {\r\n ID: userKey\r\n },\r\n });\r\n\r\n if (settingsResponse.status === 200) {\r\n const imgeUser = settingsResponse?.data?.userImage?.Logo;\r\n\r\n if (imgeUser) {\r\n setImageProfile(URL.createObjectURL(b64toBlob(imgeUser)));\r\n } else {\r\n setImageProfile(defaultProfileImage);\r\n }\r\n }\r\n\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n const deleteAllCookies = () => {\r\n var cookies = document.cookie.split(\";\");\r\n for (var i = 0; i < cookies.length; i++) {\r\n var cookie = cookies[i];\r\n var eqPos = cookie.indexOf(\"=\");\r\n var name = eqPos > -1 ? cookie.substring(0, eqPos) : cookie;\r\n document.cookie = name + \"=;max-age=-1\";\r\n }\r\n\r\n };\r\n return (\r\n <>\r\n {\r\n\r\n
    \r\n
    { setShowItems(!showItems) }}>\r\n \r\n
    \r\n
    \r\n\r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n {\r\n
    \r\n
    { setShowItems(!showItems) }} className=\"text-black nice-flex nice-flex-center nice-pointer user-page-content-phone-items-icon-cancel\">\r\n ×\r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n \"logout\"\r\n {trans(\"user:logout\")}\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    {names}

    \r\n
    \r\n\r\n
    \r\n setShowItems(false)} />\r\n setShowItems(false)} />\r\n setShowItems(false)} />\r\n setShowItems(false)} />\r\n setShowItems(false)} />\r\n setShowItems(false)} />\r\n setShowItems(false)} />\r\n setShowItems(false)} />\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n}","import { useEffect, useState } from \"react\";\r\nimport axios from \"axios\";\r\nimport config from '../configuration/config.json';\r\nimport moment from 'moment';\r\nimport { groupBy, mapValues, omit } from \"lodash\";\r\nimport { getData } from \"../utils/localStorageManager\";\r\nimport { DropDownInput } from \"../components/_input/_dropdown\";\r\nimport { useTranslation } from \"react-i18next\";\r\nexport function UserNotificationPage() {\r\n //siteusernotifications\r\n const { t: trans } = useTranslation([\"info\", \"model\"]);\r\n const lang = localStorage.getItem('i18nextLng');\r\n const dir = lang == 'en' ? 'left' : 'right';\r\n const languageDir = 'language-' + lang;\r\n const [notifications, setNotifications] = useState([]);\r\n const [filteredNotification, setFilteredNotification] = useState([]);\r\n const Filteredcategories = [\r\n {\r\n text: trans(\"info:all\"), value: \"1\"\r\n },\r\n {\r\n text: trans(\"info:today\"), value: \"2\"\r\n },\r\n {\r\n text: trans(\"info:newer\"), value: \"3\"\r\n }\r\n ];\r\n useEffect(() => {\r\n initialNotificationsAsGroup();\r\n }, []);\r\n\r\n\r\n // to fetch all the user offers\r\n const initialNotificationsAsGroup = () => {\r\n try {\r\n const secretKey = getData('secretKey');\r\n if (secretKey) {\r\n axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"name\": \"SiteusernotificationsFunc\",\r\n \"values\": {\r\n \"id\": secretKey\r\n }\r\n }\r\n ).then(response => {\r\n const result = response.data;\r\n const groupResult = mapValues(groupBy(result, 'alertType'), fList => fList.map(items => omit(items, 'alertType')));\r\n let groupValues = {};\r\n Object.assign(groupValues, groupResult);\r\n let finalResults = [];\r\n //---------------------------------------------------------------------------- \r\n for (let item in groupValues) {\r\n const obj = { heading: '', items: [] };\r\n let title = '';\r\n const results = groupValues[item].map(item => item[`${trans(\"model:description\")}`]);\r\n if (results?.length > 0) {\r\n title = results[0];\r\n }\r\n obj.heading = title;\r\n obj.items = groupValues[item];\r\n finalResults.push(obj);\r\n }\r\n setNotifications(finalResults);\r\n setFilteredNotification(finalResults);\r\n }).catch(error => {\r\n console.log(error);\r\n })\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n };\r\n\r\n\r\n // to filter the notification by type\r\n const handleFilterNotification = (option) => {\r\n const type = Number(option);\r\n\r\n let result = [];\r\n switch (type) {\r\n case 1:\r\n result = notifications;\r\n break;\r\n case 2:\r\n\r\n for(let parentItem of notifications){ \r\n const {heading} = parentItem;\r\n const childItemSet = parentItem?.items?.filter(childItem=> {return moment(childItem.createdDate).format('YYYY-MM-DD') == moment().format('YYYY-MM-DD')});\r\n if(childItemSet?.length > 0){\r\n result.push({\r\n heading : heading,\r\n items:childItemSet\r\n });\r\n }\r\n }\r\n break;\r\n case 3:\r\n for(let parentItem of notifications){ \r\n const {heading} = parentItem;\r\n const childItemSet = parentItem?.items?.filter(childItem=> {return moment(childItem.createdDate).format('YYYY-MM-DD') >= moment().subtract(10, 'days').format('YYYY-MM-DD')});\r\n if(childItemSet?.length > 0){\r\n result.push({\r\n heading : heading,\r\n items:childItemSet\r\n });\r\n }\r\n }\r\n break;\r\n }\r\n setFilteredNotification(result ?? []);\r\n };\r\n\r\n return (<>\r\n
    \r\n
    \r\n
    \r\n {\r\n handleFilterNotification(option)\r\n }}\r\n />\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n {\r\n filteredNotification?.map((parentItem, parentIndex) => {\r\n return (\r\n

    {parentItem?.heading}

    \r\n <>\r\n
    \r\n {\r\n parentItem?.items?.map((childItem, childIndex) => {\r\n\r\n if (lang === \"en\") {\r\n return (\r\n
    \r\n
    \r\n
    \r\n \"notification\"\r\n
    \r\n
    \r\n
    {childItem.titleEn}
    \r\n
    {moment(new Date(childItem.createdDate)).format('YYYY-MM-DD (HH:mm:ss A)')}
    \r\n
    \r\n {childItem.contentEn}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n );\r\n } else {\r\n return (\r\n
    \r\n
    \r\n
    \r\n \"notification\"\r\n
    \r\n
    \r\n
    {childItem.titleAr}
    \r\n
    {moment(new Date(childItem.createdDate)).format('YYYY-MM-DD (HH:mm:ss A)')}
    \r\n
    \r\n {childItem.contentAr}\r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n );\r\n }\r\n })\r\n }\r\n \r\n\r\n\r\n \r\n )\r\n })\r\n }\r\n
    \r\n \r\n\r\n );\r\n}","import {useEffect, useState } from \"react\";\r\nimport PageHeading from \"../components/__simple/_pageheading\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport Offer from \"../components/offer\";\r\nimport SwiperCore, { Autoplay, EffectFade, Navigation, Pagination } from \"swiper\";\r\nimport axios from \"axios\";\r\nimport CarUser from \"./components/CarUser\";\r\nimport config from \"../configuration/config.json\";\r\nimport { groupBy, mapValues, omit } from \"lodash\";\r\nimport { slugCombine } from \"../utils/slugManager\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { getData, User_Data_Key } from \"../utils/localStorageManager\";\r\nimport SectionHeading from \"../components/sectionHeading\";\r\nimport { Link } from \"react-router-dom\";\r\nSwiperCore.use([Pagination, Navigation, Autoplay, EffectFade]);\r\n\r\nexport default function UserHomePage() {\r\n const { t: trans, i18n } = useTranslation([\"global\", \"model\",\"common\"]);\r\n const languageDir = 'language-' + i18n.language;\r\n //-------------------------------------------------\r\n const [cars, setCars] = useState([]);\r\n const [offers,setOffers] = useState([]);\r\n //-------------------------------------------------\r\n useEffect(() => {\r\n getUserCars();\r\n initialUserOffers();\r\n }, []);\r\n // to fetch user cars\r\n const getUserCars = () => {\r\n try {\r\n const _userID = JSON.parse(getData(User_Data_Key, true)).id.toString().split('_')[1];\r\n axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"name\": \"SiteGetUserCars\",\r\n \"values\": {\r\n \"userID\": Number(_userID)\r\n }\r\n }\r\n ).then(response => {\r\n setCars(response.data);\r\n \r\n }).catch(error => {\r\n console.log(error);\r\n });\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n };\r\n // to fetch all the user offers\r\n const initialUserOffers = () => {\r\n try {\r\n const isLogin = getData(\"isAuthenticated\");\r\n if(isLogin){\r\n const userID = getData('secretKey');\r\n axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"SiteFetchActiveOffers\",\r\n \"values\":{\r\n \"Id\":userID\r\n }\r\n }\r\n ).then(response=>{ \r\n const result = response.data;\r\n const groupResult = mapValues(groupBy(result, 'OfferType'), fList => fList.map(items => omit(items, 'OfferType')));\r\n console.log(groupResult);\r\n let groupValues = {};\r\n Object.assign(groupValues, groupResult);\r\n let finalResults = [];\r\n //---------------------------------------------------------------------------- \r\n for (let item in groupValues) {\r\n\r\n const obj = { heading: '', items: [] };\r\n let title = '';\r\n const results = groupValues[item].map(item=> item[`Type${trans(\"model:description\")}`]);\r\n \r\n if(results?.length > 0){\r\n title = results[0];\r\n }\r\n obj.heading = title;\r\n obj.items = groupValues[item];\r\n finalResults.push(obj);\r\n } \r\n \r\n setOffers(finalResults);\r\n }).catch(error=>{\r\n console.log(error);\r\n })\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n };\r\n return (\r\n
    \r\n \r\n \r\n {\r\n cars.map((item, index) => {\r\n return (\r\n \r\n \r\n\r\n \r\n )\r\n })\r\n }\r\n\r\n \r\n \r\n
    \r\n {\r\n offers.map((parent,index)=>{\r\n return (\r\n
    \r\n \r\n \r\n {\r\n parent.items?.map((item, index2) => {\r\n return (\r\n \r\n \r\n \r\n )\r\n })\r\n }\r\n\r\n \r\n {\r\n (parent.items?.length > 4 ) && (\r\n
    \r\n \r\n {trans(\"common:show-more\")}\r\n \r\n
    \r\n )\r\n }\r\n
    \r\n )\r\n })\r\n }\r\n
    \r\n
    \r\n );\r\n}","import {Fragment, useEffect, useState} from \"react\";\r\nimport UserNav from \"./components/sideNavbar\";\r\nimport PageHeading from \"../components/__simple/_pageheading\";\r\nimport {FilterButton} from \"../components/__simple/_filterButton\";\r\nimport {Swiper, SwiperSlide} from \"swiper/react\";\r\nimport Offer from \"../components/offer\";\r\nimport SwiperCore, {Autoplay, EffectFade, Navigation, Pagination} from \"swiper\";\r\nimport axios from \"axios\";\r\nimport config from \"../configuration/config.json\";\r\nimport { getData, User_Data_Key } from \"../utils/localStorageManager\";\r\nimport { groupBy, mapValues, omit } from \"lodash\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport SectionHeading from \"../components/sectionHeading\";\r\nimport { slugCombine } from \"../utils/slugManager\";\r\nSwiperCore.use([Pagination, Navigation, Autoplay, EffectFade,]);\r\n\r\nexport default function UserOfferPage() {\r\n const {t:trans} = useTranslation([\"global\",\"model\"]);\r\n const [offers,setOffers] = useState([]);\r\n useEffect(()=>{\r\n initialUserOffers();\r\n },[]);\r\n // to fetch all the user offers\r\n const initialUserOffers = () => {\r\n try {\r\n const isLogin = getData(\"isAuthenticated\");\r\n if(isLogin){\r\n const userID = getData('secretKey');\r\n axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"SiteFetchUserOffers\",\r\n \"Values\": {\r\n \"UserID\": String(userID)\r\n }\r\n }\r\n ).then(response=>{ \r\n const result = response.data;\r\n const groupResult = mapValues(groupBy(result, 'OfferType'), fList => fList.map(items => omit(items, 'OfferType')));\r\n let groupValues = {};\r\n Object.assign(groupValues, groupResult);\r\n let finalResults = [];\r\n //---------------------------------------------------------------------------- \r\n for (let item in groupValues) {\r\n const obj = { heading: '', items: [] };\r\n let title = '';\r\n const results = groupValues[item].map(item=> item[`Type${trans(\"model:description\")}`]);\r\n if(results?.length > 0){\r\n title = results[0];\r\n }\r\n obj.heading = title;\r\n obj.items = groupValues[item];\r\n finalResults.push(obj);\r\n } \r\n setOffers(finalResults);\r\n }).catch(error=>{\r\n console.log(error);\r\n })\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n };\r\n\r\n return (\r\n \r\n
    \r\n {\r\n offers.map((parent,index)=>{\r\n return (\r\n <>\r\n

    {parent.heading}

    \r\n \r\n {\r\n parent.items?.map((item, index) => {\r\n return (\r\n \r\n \r\n \r\n )\r\n })\r\n }\r\n\r\n \r\n \r\n \r\n )\r\n })\r\n }\r\n
    \r\n \r\n )\r\n}","export default function SectionHeader({title,no,colorClass = 'text-primary-dark'}){\r\n return
    {no +'.'+ title}
    ;\r\n}","import { useEffect, useState, useCallback } from \"react\";\r\nimport { FormButton } from \"../components/_input/_button\";\r\nimport { SwiperSlide, Swiper } from 'swiper/react';\r\nimport axios from \"axios\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport Popup from \"./popup\";\r\nimport SwiperCore, { Pagination, Navigation, Autoplay, EffectFade } from \"swiper\";\r\nimport PopupHeader from \"./components/popupHeader\";\r\nimport { InputField } from \"../components/_input/_input\";\r\nimport SectionHeader from \"./components/seactionHeader\";\r\nimport SectionHeading from \"../components/sectionHeading\";\r\nimport CarUser from \"./components/CarUser\";\r\nimport { DropDownInput } from \"../components/_input/_dropdown\";\r\nimport Joi, { string } from \"joi\";\r\nimport { formValidate, GetMessages } from \"../utils/validation\";\r\nimport config from \"../configuration/config.json\";\r\nimport { toast } from \"react-toastify\";\r\nimport { CarColorPicker } from \"../pages/vehicles/components/colorPicker\";\r\nimport { findIndex, includes, isEqual, join, reverse, split, uniq, uniqBy, uniqWith } from \"lodash\";\r\nimport ErrorLabel from \"../components/error\";\r\nimport { getData, User_Data_Key } from \"../utils/localStorageManager\";\r\nimport dropDownResetter from \"../utils/resetDropDown\";\r\nSwiperCore.use([Pagination, Navigation, Autoplay, EffectFade,]);\r\nexport default function UserVehicle(props) {\r\n const lang = localStorage.getItem(\"i18nextLng\");\r\n const langaugeDir = 'language-' + lang;\r\n const dir = lang == 'en' ? 'left' : 'right';\r\n const otherLang = lang == 'en' ? 'ar' : 'en';\r\n const { t: trans } = useTranslation([\"common\", \"inputs\", \"offers\", \"home\", \"eparts\", \"user\", \"info\", \"hints\"]);\r\n const [color, setColor] = useState(null);\r\n const [error, setError] = useState({});\r\n const [standardColors, setStandardColors] = useState([]);\r\n const [selectedBrand, setSelectedBrand] = useState(null);\r\n const [selectedModel, setSelectedModel] = useState(null);\r\n const [isLoadingForAdd, setIsLoadingForAdd] = useState(false);\r\n const [isLoadingForEdit, setIsLoadingForEdit] = useState(false);\r\n\r\n const [requestForm, setRequestForm] = useState({\r\n brand: null,\r\n group: null,\r\n private_name: '',\r\n color: null,\r\n board_No: '',\r\n structure_no: '',\r\n year: null,\r\n productID: null,\r\n selectedColor: null,\r\n image: null\r\n });\r\n const [requestUpdateForm, setRequestUpdateForm] = useState({\r\n id: '',\r\n brand: '',\r\n group: '',\r\n private_name: '',\r\n color: '',\r\n board_No: '',\r\n structure_no: '',\r\n year: null,\r\n productID: '',\r\n selectedColor: '',\r\n image: null\r\n });\r\n const [vehicleCurrentData, setVehicleCurrentData] = useState({\r\n brand: {},\r\n group: {},\r\n model: {},\r\n year: {}\r\n });\r\n const [requestFormNewModel, setRequestFormNewModel] = useState({\r\n newModel: null\r\n });\r\n const schema2 = Joi.object({\r\n newModel: Joi.string().required().messages(GetMessages())\r\n });\r\n const [error2, setError2] = useState(null);\r\n const [carBoardNo, setCarBoardNo] = useState({\r\n ar: '',\r\n en: ''\r\n });\r\n const [otherLangBoardNo, setOtherBoardNo] = useState('');\r\n const schema = Joi.object({\r\n productID: Joi.string().required().messages(GetMessages()),\r\n board_No: Joi.string().required().messages(GetMessages()),\r\n structure_no: Joi.string().length(17).required().messages(GetMessages()),\r\n group: Joi.string().required().messages(GetMessages()),\r\n brand: Joi.string().required().messages(GetMessages())\r\n });\r\n //--------------------------------------------------------\r\n\r\n //values for filter dropdown\r\n const [Brands, setBrands] = useState([]);\r\n const [ProductGroups, setProductGroups] = useState([]);\r\n const [ProductModel, setProductModel] = useState([]);\r\n const [Products, setProducts] = useState([]);\r\n const [ProductModelTypes, setProductModelTypes] = useState([]);\r\n\r\n\r\n\r\n const [FProductGroups, setFProductGroups] = useState([]);\r\n const [FProductModelTypes, setFProductModelTypes] = useState([]);\r\n const [FProducts, setFProducts] = useState([]);\r\n\r\n\r\n\r\n useEffect(() => {\r\n if (ProductGroups && ProductGroups?.length > 0)\r\n filterModel();\r\n }, [selectedBrand, selectedModel, ProductGroups])\r\n\r\n const filterModel = () => {\r\n\r\n if (selectedBrand && selectedModel) {\r\n setFProductGroups((ProductGroups?.filter(a => (a.brandId == selectedBrand) && (a.model == selectedModel))));\r\n\r\n }\r\n\r\n\r\n };\r\n function filterModelType(option) {\r\n setFProductModelTypes(ProductModelTypes.filter(a => a.productGroupId === option.value));\r\n }\r\n const getUserCars = () => {\r\n try {\r\n const _userID = JSON.parse(getData(User_Data_Key, true)).id.toString().split('_')[1];\r\n axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"name\": \"SiteGetUserCars\",\r\n \"values\": {\r\n \"userID\": Number(_userID)\r\n }\r\n }\r\n ).then(response => {\r\n setCars(response.data);\r\n\r\n\r\n }).catch(error => {\r\n console.log(error);\r\n });\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n };\r\n const [cars, setCars] = useState([]);\r\n useEffect(() => {\r\n getUserCars();\r\n axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/user/index\",\r\n method: \"get\",\r\n }).then(response => {\r\n const dataResponse = response.data;\r\n setBrands(dataResponse?.brands);\r\n setProductGroups(dataResponse?.groups);\r\n setProductModel(reverse(dataResponse?.models));\r\n setProductModelTypes(dataResponse?.modelTypes);\r\n console.log('info', dataResponse);\r\n }).catch(err => {\r\n console.log(err);\r\n });\r\n }, [])\r\n const [showPopup, setShowPopup] = useState(false);\r\n const [showUpdatePopup, setShowUpdatePopup] = useState(false);\r\n //------------------------------------------------------------------------------\r\n const handlePopupStatus = (status) => {\r\n setError({});\r\n setError2({});\r\n setColor(null);\r\n setRequestFormNewModel({ newModel: null });\r\n setOtherBoardNo('');\r\n setCarBoardNo({\r\n ar: '',\r\n en: ''\r\n });\r\n setShowPopup(status);\r\n\r\n };\r\n const handleUpdatePopupStatus = (status) => {\r\n setVehicleCurrentData({\r\n brand: {},\r\n group: {},\r\n model: {},\r\n year: {}\r\n });\r\n setRequestFormNewModel({ newModel: null });\r\n setError({});\r\n setError2({});\r\n setColor(null);\r\n setOtherBoardNo('');\r\n setCarBoardNo({\r\n ar: '',\r\n en: ''\r\n });\r\n setShowUpdatePopup(status);\r\n };\r\n // to submit the data to server\r\n const submitRequest = async () => {\r\n const result = formValidate(schema, requestForm) ?? {};\r\n const specialResult = formValidate(schema2, requestFormNewModel) ?? {};\r\n setError(result);\r\n setIsLoadingForAdd(true);\r\n if (Object.keys(result).length === 0) {\r\n if (requestForm.productID == 'null') {\r\n setError2(specialResult);\r\n if (Object.keys(specialResult).length != 0)\r\n return;\r\n }\r\n try {\r\n const _userID = JSON.parse(getData(User_Data_Key, true)).id.toString().split('_')[1];\r\n const vehicleImage = await fetchVehicleImage(requestForm.year, requestForm?.productID == 'null' ? null : requestForm?.productID);\r\n const body = {\r\n \"Brand\": requestForm.brand,\r\n \"ProductGroupID\": requestForm.group,\r\n \"UserId\": Number(_userID),\r\n \"carId\": requestForm?.productID == 'null' ? null : requestForm?.productID,\r\n \"ModelID\": requestForm.year == '' || requestForm.year == null ? null : requestForm.year,\r\n \"NewModelType\": requestFormNewModel.newModel != null ? requestFormNewModel.newModel : null,\r\n \"colorCode\": (requestForm?.selectedColor) ? requestForm?.selectedColor : null,\r\n \"alias\": requestForm.private_name,\r\n \"boardNoAr\": join(split(carBoardNo.ar?.replaceAll(' ', ''), ''), ' '),\r\n \"boardNoEn\": join(split(carBoardNo.en?.replaceAll(' ', ''), ''), ' '),\r\n \"structureno\": requestForm.structure_no,\r\n \"Image\": vehicleImage,\r\n \"createdDate\": new Date()\r\n\r\n };\r\n axios.post(\r\n config.baseURL + 'add',\r\n {\r\n \"Object\": \"SiteUserCars\",\r\n \"Values\": body\r\n }\r\n ).then(response => {\r\n getUserCars();\r\n handlePopupStatus(false);\r\n setRequestForm({});\r\n dropDownResetter(() => {\r\n setFProductGroups([]);\r\n setFProductModelTypes([]);\r\n setVehicleCurrentData({\r\n brand: null,\r\n group: null,\r\n model: null,\r\n year: null\r\n })\r\n });\r\n toast.success(trans('common:vehicle-added'));\r\n }).catch(err => {\r\n toast.error(trans('common:vehicle-added-fail'));\r\n })\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n setIsLoadingForAdd(false);\r\n };\r\n\r\n const fetchVehicleImage = async (model, modelType) => {\r\n let vehicleImage = null;\r\n try {\r\n const response = await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"name\": \"FetchImageOfModelCar\",\r\n \"values\": {\r\n \"modelType\": String(modelType),\r\n \"modelYear\": String(model)\r\n }\r\n }\r\n );\r\n if (response.status === 200) {\r\n const responseData = response.data;\r\n vehicleImage = responseData[0]?.productImage;\r\n }\r\n } catch (err) {\r\n console.log('something wrong happened in fetch vehicle image', err);\r\n }\r\n return vehicleImage;\r\n };\r\n // the following fun is used to determine acceptable letters for car's plate no\r\n const handleAcceptCarBoardLetters = (event) => {\r\n const _numKeys = [48, 49, 50, 51, 52, 53, 54, 55, 56, 57];\r\n const _arKeys = [1571, 1575, 1576, 1581, 1583, 1585, 1587, 1589, 1591, 1593, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609];\r\n const _enCapitalKeys = [65, 66, 74, 68, 82, 83, 88, 84, 69, 71, 75, 76, 90, 78, 72, 85, 86];\r\n const _enSmallKeys = [97, 98, 106, 100, 114, 115, 120, 116, 101, 103, 107, 108, 122, 110, 104, 117, 118];\r\n const _key = event.which || event.keyCode;\r\n const _request = { ...requestForm };\r\n const _request2 = { ...requestUpdateForm };\r\n const _letters = { ...carBoardNo };\r\n const _enLetters = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'A', 'B', 'J', 'D', 'R', 'S', 'X', 'T', 'E', 'G', 'K', 'L', 'Z', 'N', 'H', 'U', 'V'];\r\n const _arLetters = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'ا', 'أ', 'ب', 'ح', 'د', 'ر', 'س', 'ص', 'ط', 'ع', 'ق', 'ك', 'ل', 'م', 'ن', 'ه', 'و', 'ى'];\r\n const _keyChar = String.fromCharCode(_key);\r\n if (lang == 'ar') {\r\n if (includes([..._arKeys], _key)) {\r\n const _index = findIndex(_arLetters, (item) => {\r\n return item.toLowerCase() == _keyChar.toLowerCase()\r\n });\r\n _letters.ar += _arLetters[_index];\r\n _letters.en = _enLetters[_index] + _letters.en;\r\n _request.board_No += _keyChar;\r\n _request2.board_No += _keyChar;\r\n setOtherBoardNo(_letters.en ?? '');\r\n }\r\n else if (includes([..._numKeys], _key)) {\r\n const _index = findIndex(_arLetters, (item) => {\r\n return item.toLowerCase() == _keyChar.toLowerCase()\r\n });\r\n _letters.ar += _arLetters[_index];\r\n _letters.en += _enLetters[_index];\r\n _request.board_No += _keyChar;\r\n _request2.board_No += _keyChar;\r\n setOtherBoardNo(_letters.en ?? '');\r\n }\r\n } else {\r\n\r\n //---------------------------------------------------------\r\n //---------------------------------------------------------\r\n if (includes([..._enCapitalKeys, ..._enSmallKeys], _key)) {\r\n const _index = findIndex(_enLetters, (item) => {\r\n return item.toLowerCase() == _keyChar.toLowerCase()\r\n });\r\n _letters.ar = _arLetters[_index] + _letters.ar;\r\n _letters.en += _enLetters[_index];\r\n _request.board_No += _keyChar;\r\n _request2.board_No += _keyChar;\r\n setOtherBoardNo(_letters.ar ?? '');\r\n }\r\n else if (includes([..._numKeys], _key)) {\r\n const _index = findIndex(_enLetters, (item) => {\r\n return item.toLowerCase() == _keyChar.toLowerCase()\r\n });\r\n _letters.ar += _arLetters[_index];\r\n _letters.en += _enLetters[_index];\r\n _request.board_No += _keyChar;\r\n _request2.board_No += _keyChar;\r\n setOtherBoardNo(_letters.ar ?? '');\r\n }\r\n }\r\n\r\n setRequestForm(_request);\r\n setRequestUpdateForm(_request2);\r\n setCarBoardNo(_letters);\r\n };\r\n // the following fun is used to remove the letters from end\r\n const handleRemoveCarBoardLetters = (event, data) => {\r\n const _request = { ...requestForm };\r\n const _request2 = { ...requestUpdateForm };\r\n const _letters = { ...carBoardNo };\r\n if (event.key == 'Backspace') {\r\n data = data?.replaceAll(' ', '')?.trim();\r\n const _len = data && data?.length;\r\n if (_len > 0) {\r\n\r\n const _enLetters = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'A', 'B', 'J', 'D', 'R', 'S', 'X', 'T', 'E', 'G', 'K', 'L', 'Z', 'N', 'H', 'U', 'V'];\r\n const _arLetters = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'ا', 'أ', 'ب', 'ح', 'د', 'ر', 'س', 'ص', 'ط', 'ع', 'ق', 'ك', 'ل', 'م', 'ن', 'ه', 'و', 'ى'];\r\n //--------------------------------------\r\n const _valAsArray = data.split('');\r\n const _valAr = _letters.ar.split('');\r\n const _valEn = _letters.en.split('');\r\n const _valTemp = otherLangBoardNo?.replaceAll(' ', '')?.trim().split('');\r\n const _valueDeleted = _valAsArray[_len - 1];\r\n if (lang == 'ar') {\r\n const _indexDeleted = findIndex(_arLetters, (item) => {\r\n return item.toLowerCase() == _valueDeleted\r\n });\r\n delete _valAsArray[_len - 1];\r\n delete _valAr[_len - 1];\r\n\r\n var _indexENDeleted = 0;\r\n _valEn?.map((item, index) => {\r\n if (item.toLowerCase() == _enLetters[_indexDeleted]?.toLowerCase()) {\r\n\r\n _indexENDeleted = index\r\n }\r\n });\r\n if (_valEn.length > 0)\r\n delete _valEn[_indexENDeleted];\r\n if (_valTemp.length > 0)\r\n delete _valTemp[_indexENDeleted];\r\n } else {\r\n //------------------\r\n const _indexDeleted = findIndex(_enLetters, (item) => {\r\n return item.toLowerCase() == _valueDeleted\r\n });\r\n\r\n var _indexARDeleted = 0;\r\n _valAr.map((item, index) => {\r\n if (item.toLowerCase() == _arLetters[_indexDeleted]?.toLowerCase()) {\r\n\r\n _indexARDeleted = index;\r\n }\r\n });\r\n\r\n if (_valTemp.length > 0)\r\n delete _valTemp[_indexARDeleted];\r\n if (_valAr.length > 0)\r\n delete _valAr[_indexARDeleted];\r\n\r\n delete _valAsArray[_len - 1];\r\n delete _valEn[_len - 1];\r\n\r\n }\r\n\r\n //-----------------------------------------\r\n\r\n const _valAsString = _valAsArray.join('');\r\n _request.board_No = _valAsString.trim();\r\n _request2.board_No = _valAsString.trim();\r\n _letters.ar = _valAr.join('').trim();\r\n _letters.en = _valEn.join('').trim();\r\n setOtherBoardNo(_valTemp.join('').trim());\r\n setRequestForm(_request);\r\n setRequestUpdateForm(_request2);\r\n setCarBoardNo(_letters);\r\n return;\r\n }\r\n }\r\n };\r\n // to convert image to base64\r\n const toBase64 = file => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => resolve(reader.result);\r\n reader.onerror = error => reject(error);\r\n });\r\n const handleSetStringWithSpaces = useCallback((board_No) => {\r\n if (board_No != null && board_No != \"\") {\r\n // Split the string into an array of characters and then rearrange\r\n let chars = board_No?.split('') || [];\r\n\r\n // Filter out the numbers and letters separately\r\n const numbers = chars.filter(char => /\\d/.test(char)).join(' ');\r\n const letters = chars.filter(char => /[\\u0600-\\u06FF]/.test(char)).join(' ');\r\n const englishLetters = chars.filter(char => /[a-zA-Z]/.test(char)).join(' ');\r\n // Combine numbers and letters with a space between them\r\n return `${numbers} ${letters} ${englishLetters}`.trim();\r\n } else {\r\n console.log(\"handleSetStringWithSpaces>:else \", board_No)\r\n return \"\";\r\n }\r\n }, []);\r\n\r\n // to choose the image\r\n const handleChangeImage = async (event) => {\r\n const files = event.target.files;\r\n if (files.length > 0) {\r\n const fileURL = URL.createObjectURL(files[0]);\r\n const fileBase64 = await toBase64(files[0]);\r\n const finalFile = fileBase64.substr(fileBase64.indexOf(',') + 1, fileBase64.length);\r\n const val = { ...requestForm };\r\n const val2 = { ...requestUpdateForm };\r\n val.image = finalFile;\r\n val2.image = finalFile;\r\n setRequestUpdateForm(val2);\r\n setRequestForm(val);\r\n }\r\n };\r\n\r\n const [cashColors, setCashColors] = useState({});\r\n const handleFetchModelAvaliableColors = async (productTypeID, year, deColor) => {\r\n let _colors = [];\r\n setStandardColors([]);\r\n if (deColor?.split(\"/\")[0])\r\n setColor(deColor?.split(\"/\")[0]);\r\n try {\r\n\r\n if (cashColors[productTypeID + \"-\" + year]) {\r\n _colors = cashColors[productTypeID + \"-\" + year];\r\n setStandardColors(_colors);\r\n\r\n\r\n } else {\r\n\r\n const response = await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"site_fetchColorOfTypeWithOutImages\",\r\n \"Values\": {\r\n \"Type\": productTypeID,\r\n \"model\": year\r\n }\r\n }\r\n );\r\n\r\n if (response.status == 200) {\r\n\r\n var currentOutColor = [];\r\n var Out_colors = [];\r\n\r\n response.data?.forEach((item, i) => {\r\n\r\n\r\n if (!currentOutColor.includes(item.ColorID?.split(\"/\")[0])) {\r\n\r\n Out_colors = [...Out_colors, item];\r\n currentOutColor = [...currentOutColor, item.ColorID?.split(\"/\")[0]];\r\n }\r\n\r\n })\r\n\r\n\r\n var cc = { ...cashColors };\r\n cc[productTypeID + \"-\" + year] = Out_colors;\r\n setCashColors(cc);\r\n\r\n\r\n\r\n\r\n _colors = Out_colors;\r\n setStandardColors(_colors);\r\n\r\n }\r\n\r\n }\r\n\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n\r\n\r\n\r\n return _colors;\r\n };\r\n\r\n // to update the vehicle selected\r\n const onUpdate = (vehID) => {\r\n if (vehID) {\r\n // the following code is to set the user selected data on the controls\r\n axios.post(\r\n config.baseURL + 'details',\r\n {\r\n \"object\": \"siteuserCars\",\r\n \"objectSettings\": {\r\n \"metaData\": false\r\n },\r\n \"option\": \"column\",\r\n \"fields\": \"carId,Image,alias,ProductGroupID,Brand,NewModelType,ModelID,Carcolor,boardNoAr,boardNoEn,structureno,colorCode\",\r\n \"filters\": `where GUID ='${vehID}'`\r\n }\r\n ).then(response => {\r\n const responseData = response.data.ApiObjectData?.length > 0 ? response.data?.ApiObjectData[0] : null;\r\n const _request = { ...requestUpdateForm };\r\n if (responseData) {\r\n setShowUpdatePopup(true);\r\n const _brand = Brands.find(item => {\r\n return item.brandId == responseData.Brand\r\n });\r\n const _group = ProductGroups.find(item => {\r\n return item.productGroupID == responseData.ProductGroupID\r\n });\r\n const _modelData = { text: '', value: '' };\r\n const _model = ProductModelTypes.find(item => {\r\n return item.productTypeId == responseData.carId\r\n });\r\n if (_model != undefined || _model != null) {\r\n _modelData.text = _model.description;\r\n _modelData.value = _model.productTypeId;\r\n } else {\r\n _modelData.text = trans(\"info:vehicle_add_new\");\r\n _modelData.value = 'null';\r\n }\r\n const _year = ProductModel.find(item => {\r\n return item.modelId == responseData.ModelID\r\n }) ?? null;\r\n if (lang == 'en') {\r\n _request.board_No = responseData.boardNoEn;\r\n setOtherBoardNo(responseData.boardNoAr)\r\n } else {\r\n _request.board_No = responseData.boardNoAr;\r\n setOtherBoardNo(responseData.boardNoEn)\r\n }\r\n _request.id = vehID;\r\n _request.brand = responseData.Brand;\r\n _request.group = responseData.ProductGroupID;\r\n _request.productID = responseData.carId ?? 'null';\r\n _request.year = responseData.ModelID;\r\n _request.structure_no = responseData.structureno;\r\n _request.private_name = responseData.alias ?? '';\r\n _request.image = responseData.Image;\r\n _request.selectedColor = String(responseData.colorCode);\r\n if (responseData.ModelID)\r\n setSelectedModel(responseData.ModelID);\r\n\r\n if (responseData.Brand)\r\n setSelectedBrand(responseData.Brand);\r\n setCarBoardNo({\r\n en: responseData.boardNoEn,\r\n ar: responseData.boardNoAr\r\n })\r\n setColor(responseData?.Carcolor);\r\n setRequestFormNewModel({ newModel: responseData.NewModelType });\r\n filterModel();\r\n filterModelType({ value: _group.productGroupID });\r\n setVehicleCurrentData({\r\n brand: _brand,\r\n group: _group,\r\n model: _modelData,\r\n year: _year\r\n });\r\n setRequestUpdateForm(_request);\r\n\r\n handleFetchModelAvaliableColors(_request.productID, _request.year, responseData?.colorCode);\r\n }\r\n }).catch(err => {\r\n console.log(err);\r\n });\r\n }\r\n };\r\n // submit to update the vehicle\r\n const submitUpdateRequest = async () => {\r\n const result = formValidate(schema, requestUpdateForm) ?? {};\r\n const specialResult = formValidate(schema2, requestFormNewModel) ?? {};\r\n setError(result);\r\n setIsLoadingForEdit(true);\r\n if (Object.keys(result).length === 0) {\r\n if (requestUpdateForm.productID == 'null') {\r\n setError2(specialResult);\r\n if (Object.keys(specialResult).length != 0)\r\n return;\r\n }\r\n try {\r\n const _userID = JSON.parse(getData(User_Data_Key, true)).id.toString().split('_')[1];\r\n const vehicleImage = await fetchVehicleImage(requestUpdateForm.year, requestUpdateForm?.productID == 'null' ? null : requestUpdateForm?.productID);\r\n const body = {\r\n \"Brand\": requestUpdateForm.brand,\r\n \"ProductGroupID\": requestUpdateForm.group,\r\n \"carId\": requestUpdateForm?.productID == 'null' ? null : requestUpdateForm?.productID,\r\n \"ModelID\": requestUpdateForm.year == '' || requestUpdateForm.year == null ? null : requestUpdateForm.year,\r\n \"NewModelType\": requestFormNewModel.newModel != null ? requestFormNewModel.newModel : null,\r\n \"colorCode\": requestUpdateForm?.selectedColor,\r\n \"alias\": requestUpdateForm.private_name,\r\n \"boardNoAr\": join(split(carBoardNo.ar?.replaceAll(' ', ''), ''), ' '),\r\n \"boardNoEn\": join(split(carBoardNo.en?.replaceAll(' ', ''), ''), ' '),\r\n \"structureno\": requestUpdateForm.structure_no,\r\n \"Image\": vehicleImage,\r\n \"updatedDate\": new Date()\r\n };\r\n\r\n axios.put(\r\n config.baseURL + 'update',\r\n {\r\n \"Object\": \"SiteUserCars\",\r\n \"Values\": body,\r\n \"filters\": `where GUID = '${requestUpdateForm.id}'`\r\n }\r\n ).then(response => {\r\n getUserCars();\r\n handleUpdatePopupStatus(false);\r\n setRequestUpdateForm({});\r\n toast.success(trans('info:vehicle_was_updated'));\r\n dropDownResetter(() => {\r\n setFProductModelTypes([]);\r\n setVehicleCurrentData({\r\n brand: null,\r\n group: null,\r\n model: null,\r\n year: null\r\n })\r\n });\r\n }).catch(err => {\r\n toast.error(trans('info:vehicle_was_updated_err'));\r\n })\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n setIsLoadingForEdit(false);\r\n };\r\n //------------------------------------------------------------------------------\r\n return (\r\n
    \r\n handlePopupStatus(true)} />\r\n
    \r\n \r\n \r\n {cars?.map((car, index) => {\r\n\r\n return \r\n \r\n\r\n \r\n })}\r\n \r\n \r\n \r\n\r\n
    \r\n
    \r\n\r\n
    \r\n

    {trans(\"common:add-new-car\")}

    \r\n {\r\n handlePopupStatus(false)\r\n }}>×\r\n
    \r\n\r\n
    \r\n\r\n\r\n\r\n \r\n\r\n {\r\n return { value: B.brandId, text: B.description };\r\n })]}\r\n onSelect={(value) => {\r\n if (value == '' || value == '0') {\r\n dropDownResetter(() => {\r\n setFProductGroups([]);\r\n setFProductModelTypes([]);\r\n });\r\n }\r\n const val = { ...requestForm };\r\n val.brand = String(value);\r\n setSelectedBrand(val.brand);\r\n setRequestForm(val);\r\n }}\r\n\r\n selectedValue={requestForm?.brand}\r\n />\r\n\r\n {\r\n return { value: B.modelId, text: B.modelId };\r\n })]}\r\n onSelect={(e) => {\r\n if (e == '' || e == '0') {\r\n dropDownResetter(() => {\r\n setFProductGroups([]);\r\n setFProductModelTypes([]);\r\n });\r\n }\r\n const val = { ...requestForm };\r\n val.year = String(e);\r\n setSelectedModel(val.year);\r\n setRequestForm(val);\r\n }}\r\n errorLabel={error?.year}\r\n />\r\n\r\n {\r\n return { value: B.productGroupID, text: B.description };\r\n })]}\r\n errorLabel={error?.group}\r\n onfilter={filterModelType}\r\n onSelect={(value) => {\r\n if (value == '' || value == '0') {\r\n dropDownResetter(() => {\r\n setFProductModelTypes([]);\r\n });\r\n }\r\n const val = { ...requestForm };\r\n val.group = String(value);\r\n setRequestForm(val);\r\n }}\r\n />\r\n {\r\n return { value: B.productTypeId, text: B.description };\r\n }), { text: trans(\"info:vehicle_add_new\"), value: \"null\" }]}\r\n errorLabel={error?.productID}\r\n onSelect={(e) => {\r\n if (e !== 'null') {\r\n setRequestFormNewModel({\r\n newModel: null\r\n });\r\n }\r\n const val = { ...requestForm };\r\n val.productID = String(e);\r\n setRequestForm(val);\r\n\r\n handleFetchModelAvaliableColors(String(e), requestForm?.year);\r\n }}\r\n />\r\n {requestForm.productID == 'null' && {\r\n const val = { ...requestFormNewModel };\r\n val.newModel = e.target.value;\r\n setRequestFormNewModel(val);\r\n }\r\n }\r\n title={trans(\"info:new_model\")}\r\n />}\r\n\r\n \r\n\r\n {\r\n // try {\r\n // let currentValue = { ...requestForm };\r\n // if (currentValue?.board_No) {\r\n\r\n // // Split the string into an array of characters and then rearrange\r\n // let chars = currentValue?.board_No?.split('') || [];\r\n\r\n // // Filter out the numbers and letters separately\r\n // const numbers = chars.filter(char => /\\d/.test(char)).join(' ');\r\n // const letters = chars.filter(char => /[\\u0600-\\u06FF]/.test(char)).join(' ');\r\n // const englishLetters = chars.filter(char => /[a-zA-Z]/.test(char)).join(' ');\r\n // // Combine numbers and letters with a space between them\r\n // currentValue.board_No = `${numbers} ${letters} ${englishLetters}`.trim();\r\n\r\n // // const chars = split(currentValue?.board_No?.replaceAll(' ', ''), '');\r\n // // currentValue.board_No = join(chars, ' ');\r\n // setRequestForm(currentValue);\r\n // //----------------------------------------------------\r\n // let other = otherLangBoardNo?.split('') || [];\r\n\r\n // // Filter out the numbers and letters separately\r\n // const othernumbers = other.filter(char => /\\d/.test(char)).join(' ');\r\n // const otherletters = other.filter(char => /[\\u0600-\\u06FF]/.test(char)).join(' ');\r\n // const otherenglishLetters = other.filter(char => /[a-zA-Z]/.test(char)).join(' ');\r\n\r\n // setOtherBoardNo(`${othernumbers} ${otherletters} ${otherenglishLetters}`.trim());\r\n // }\r\n // } catch (err) {\r\n // console.log(err);\r\n // }\r\n // }}\r\n extraClasses={'language-en-d ' + (lang == 'en' ? 'language-en-t' : 'language-ar-t')}\r\n errorLabel={error?.board_No}\r\n value={handleSetStringWithSpaces(requestForm.board_No)}\r\n onKeyPress={handleAcceptCarBoardLetters}\r\n onKeyDown={(event) => { handleRemoveCarBoardLetters(event, requestForm.board_No) }}\r\n placeholder={trans(\"form:board-no\") + ` (${lang}) `}\r\n />\r\n \r\n\r\n {\r\n const val = { ...requestForm };\r\n val.structure_no = e.target.value;\r\n setRequestForm(val);\r\n }\r\n }\r\n placeholder={trans(\"form:structure-no\") + '(VIN)'}\r\n />\r\n {\r\n const val = { ...requestForm };\r\n val.private_name = e.target.value;\r\n setRequestForm(val);\r\n }\r\n }\r\n title={trans(\"info:private-name\") + ' ' + trans(\"common:optional\")}\r\n placeholder={trans(\"info:private-name\") + ' ' + trans(\"common:optional\")}\r\n />\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n {\r\n standardColors.map((item, index) => {\r\n return {\r\n const val = { ...requestForm };\r\n val.selectedColor = String(item?.ColorID);\r\n setRequestForm(val);\r\n setColor(item?.ColorID?.split(\"/\")[0])\r\n }\r\n }\r\n />\r\n })\r\n }\r\n
    \r\n
    \r\n
    \r\n {/* */}\r\n submitRequest()} name={trans(\"form:add\")} />\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n

    {trans(\"info:vehicle_update_car\")}

    \r\n {\r\n handleUpdatePopupStatus(false)\r\n }}>×\r\n
    \r\n\r\n
    \r\n\r\n \r\n\r\n {\r\n return { value: B.brandId, text: B.description };\r\n })]}\r\n onSelect={(value) => {\r\n setVehicleCurrentData({\r\n brand: null,\r\n group: null,\r\n model: null,\r\n year: null\r\n })\r\n const val = { ...requestUpdateForm };\r\n val.brand = String(value);\r\n setRequestUpdateForm(val);\r\n setSelectedBrand(val.brand);\r\n }}\r\n />\r\n {\r\n\r\n return { value: B.modelId, text: B.modelId };\r\n })]}\r\n\r\n onSelect={(e) => {\r\n const currentValue = { ...vehicleCurrentData };\r\n setVehicleCurrentData({\r\n brand: currentValue?.brand,\r\n group: null,\r\n model: null,\r\n year: null\r\n });\r\n const val = { ...requestUpdateForm };\r\n val.year = String(e);\r\n setRequestUpdateForm(val);\r\n setSelectedModel(val.year);\r\n }}\r\n errorLabel={error?.year}\r\n />\r\n {\r\n return { value: B.productGroupID, text: B.description };\r\n })]}\r\n errorLabel={error?.group}\r\n onfilter={filterModelType}\r\n onSelect={(value) => {\r\n const currentValue = { ...vehicleCurrentData };\r\n setVehicleCurrentData({\r\n brand: currentValue?.brand,\r\n group: null,\r\n model: null,\r\n year: null\r\n })\r\n\r\n const val = { ...requestUpdateForm };\r\n val.group = String(value);\r\n setRequestUpdateForm(val);\r\n }}\r\n />\r\n\r\n {\r\n return { value: B.productTypeId, text: B.description };\r\n }), { text: trans(\"info:vehicle_add_new\"), value: \"null\" }]}\r\n errorLabel={error?.productID}\r\n onSelect={(e) => {\r\n\r\n const currentValue = { ...vehicleCurrentData };\r\n setVehicleCurrentData({\r\n brand: currentValue?.brand,\r\n group: null,\r\n model: null,\r\n year: null\r\n })\r\n\r\n\r\n if (e !== 'null') {\r\n setRequestFormNewModel({\r\n newModel: null\r\n });\r\n }\r\n const val = { ...requestUpdateForm };\r\n val.productID = String(e);\r\n setRequestUpdateForm(val);\r\n\r\n handleFetchModelAvaliableColors(String(e), requestUpdateForm?.year);\r\n }}\r\n />\r\n\r\n {requestUpdateForm.productID == 'null' && {\r\n const val = { ...requestFormNewModel };\r\n val.newModel = e.target.value;\r\n setRequestFormNewModel(val);\r\n }\r\n }\r\n title={trans(\"info:new_model\")}\r\n />}\r\n\r\n\r\n \r\n\r\n {\r\n // try {\r\n // let currentValue = { ...requestUpdateForm };\r\n // if (currentValue?.board_No) {\r\n // const chars = split(currentValue?.board_No?.replaceAll(' ', ''), '');\r\n // currentValue.board_No = join(chars, ' ');\r\n // setRequestUpdateForm(currentValue);\r\n // //----------------------------------------------------\r\n // const other = split(otherLangBoardNo?.replaceAll(' ', ''), '');\r\n // setOtherBoardNo(join(other, ' '));\r\n // }\r\n // } catch (err) {\r\n // console.log(err);\r\n // }\r\n // }}\r\n extraClasses={'language-en-d ' + (otherLang == 'en' ? 'language-en-t' : 'language-ar-t')}\r\n errorLabel={error?.board_No}\r\n value={handleSetStringWithSpaces(requestUpdateForm.board_No)}\r\n onKeyPress={handleAcceptCarBoardLetters}\r\n onKeyDown={(event) => { handleRemoveCarBoardLetters(event, requestUpdateForm.board_No) }}\r\n title={trans(\"form:board-no\") + ` (${lang}) `}\r\n />\r\n \r\n\r\n {\r\n const val = { ...requestUpdateForm };\r\n val.structure_no = e.target.value;\r\n setRequestUpdateForm(val);\r\n }\r\n }\r\n />\r\n {\r\n const val = { ...requestUpdateForm };\r\n val.private_name = e.target.value;\r\n setRequestUpdateForm(val);\r\n }\r\n }\r\n title={trans(\"info:private-name\") + ' ' + trans(\"common:optional\")}\r\n />\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n {\r\n standardColors.map((item, index) => {\r\n return {\r\n const val = { ...requestUpdateForm };\r\n val.selectedColor = String(item?.ColorID);\r\n setRequestUpdateForm(val);\r\n setColor(item?.ColorID?.split(\"/\")[0])\r\n }\r\n }\r\n />\r\n })\r\n }\r\n
    \r\n
    \r\n
    \r\n {/* */}\r\n submitUpdateRequest()} name={trans(\"info:edit\")} />\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}","import axios from \"axios\";\r\nimport { useEffect, useRef, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport config from '../configuration/config.json';\r\nimport { FormButton } from \"../components/_input/_button\";\r\nimport { DropDownInput } from \"../components/_input/_dropdown\";\r\nimport { DropDownInput2 } from \"../components/_input/_dropdown2\";\r\nimport { CheckInput } from \"../components/_input/_checkInput\";\r\nimport { InputField } from \"../components/_input/_input\";\r\nimport crypto from 'crypto-js';\r\nimport Joi from 'joi';\r\nimport { formValidate, GetMessages, validateProperty } from \"../utils/validation\";\r\nimport { toast } from \"react-toastify\";\r\nimport { Tab, TabList, TabPanel, Tabs } from \"react-tabs\";\r\nimport SectionHeading from \"../components/sectionHeading\";\r\nimport PhoneDropDown, { countriesCode } from \"../components/_input/_phoneDropDown\";\r\nimport { FileInput } from \"../components/_input/_fileInput\";\r\nimport { getData, saveData, User_Data_Key } from \"../utils/localStorageManager\";\r\nimport { includes } from \"lodash\";\r\nimport dropDownResetter from \"../utils/resetDropDown\";\r\nexport default function Profile() {\r\n const defaultProfileImage = '/assets/images/profile.jpg';\r\n // db.createDbRequest(\"UserDB\", 1);\r\n const fileInputRef = useRef();\r\n const { t: trans } = useTranslation([\"common\", \"form\", \"model\", \"user\", \"info\", \"hints\", \"error2\", \"inputs\", \"new\", \"extra\"]);\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const languageDir = 'language-' + lang;\r\n const [showResetPasswordBox, setShowResetPasswordBox] = useState(false);\r\n const [acceptPasswordStatus, setAcceptPasswordStatus] = useState(false);\r\n const [genderList, setGenderList] = useState([{}]);\r\n const [selectedGender, setSelectedGender] = useState(null);\r\n const [readOnly, setReadOnly] = useState(true);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [imageProfile, setImageProfile] = useState(defaultProfileImage);\r\n const [editableStatus, setEditableStatus] = useState(0);\r\n const [isLoading2, setIsLoading2] = useState(false);\r\n const [accountTypes, setAccountTypes] = useState([]);\r\n const [identityType, setIdentityType] = useState(null);\r\n const [settings, setSettings] = useState({\r\n countries: [],\r\n cities: [],\r\n genders: []\r\n });\r\n const [defaultGeoLocation, setDefaultGeoLocation] = useState({\r\n country: null,\r\n city: null\r\n });\r\n const [filteredCities, setFilteredCities] = useState([]);\r\n const [personalDataRequest, setPersonalDataRequest] = useState({\r\n arFirstName: '',\r\n arMiddleName: '',\r\n arLastName: '',\r\n enFirstName: '',\r\n enMiddleName: '',\r\n enLastName: '',\r\n genderID: '',\r\n address: '',\r\n cityID: '',\r\n countryID: '',\r\n logo: defaultProfileImage\r\n });\r\n const [error, setError] = useState({});\r\n //------------------------------------------------------------------------\r\n const schemaPassword = Joi.object({\r\n newPassword: Joi.string().min(8).max(20).required().messages(GetMessages()),\r\n confirmPassword: Joi.string().valid(Joi.ref('newPassword')).required().messages(GetMessages())\r\n });\r\n\r\n const [changePhoneNumber, setChangePhoneNumber] = useState(false);\r\n const [changeEmail, setChangeEmail] = useState(false);\r\n const [requestChangePassword, setRequestChangePassword] = useState({\r\n oldPassword: '',\r\n newPassword: '',\r\n confirmPassword: ''\r\n });\r\n const [userHasNoPassword, setUserHasNoPassword] = useState(false);\r\n const [passwordError, setPasswordError] = useState({});\r\n //--------------------------------------------------------------------\r\n const [personalPhoneNumber, setPersonalPhoneNumber] = useState({\r\n phoneNumber: '',\r\n });\r\n const schemaPhoneNumber = Joi.object({\r\n phoneNumber: Joi.string().min(12).required().messages(GetMessages())\r\n });\r\n const [phoneError, setPhoneError] = useState({});\r\n //------------------------------------------------------------------------\r\n\r\n const [personalContactDataRequest, setPersonalContactDataRequest] = useState({\r\n email: '',\r\n phoneNumber: '',\r\n identityNo: '',\r\n identityImage: null,\r\n });\r\n\r\n const [personalDocumentDataRequest, setPersonalDocumentDataRequest] = useState({\r\n custGroupID: '',\r\n identityNo: '',\r\n identityImage: null,\r\n cn: '',\r\n cnImage: null\r\n });\r\n\r\n const schemaDocument = Joi.object({\r\n identityNo: Joi.string().length(10).required().messages(GetMessages()),\r\n cn: Joi.string().length(10).required().messages(GetMessages()),\r\n custGroupID: Joi.string().required().messages(GetMessages()),\r\n });\r\n\r\n const [errorDocument, setErrorDocument] = useState({});\r\n\r\n //-----------------------------------------------------------------\r\n const [personalEmailDataRequest, setPersonalEmailDataRequest] = useState({\r\n email: ''\r\n });\r\n\r\n const schemaEmail = Joi.object({\r\n email: Joi.string().email({ minDomainSegments: 2, tlds: { allow: false } }).required().messages(GetMessages())\r\n });\r\n\r\n const [emailError, setEmailError] = useState({});\r\n //----------------------------------------------------------------\r\n\r\n const [personalIdentityDataRequest, setPersonalIdentityDataRequest] = useState({\r\n identity: '',\r\n identityImage: null\r\n });\r\n const schemaIdentity = Joi.object({\r\n identity: Joi.string().length(10).required().messages(GetMessages())\r\n });\r\n const [identityError, setIdentityError] = useState({});\r\n const [showIdentityImage, setShowIdentityImage] = useState(false);\r\n const [freazeType, setFrazeType] = useState(false);\r\n const [defaultIdentityType, setDefaultIdentityType] = useState(null);\r\n\r\n //-----------------------------------------------------------------\r\n const schemaSection1 = Joi.object({\r\n arFirstName: Joi.string().max(50).required().messages(GetMessages()),\r\n arMiddleName: Joi.string().max(50).required().messages(GetMessages()),\r\n arLastName: Joi.string().max(50).required().messages(GetMessages()),\r\n enFirstName: Joi.string().max(50).required().messages(GetMessages()),\r\n enMiddleName: Joi.string().max(50).required().messages(GetMessages()),\r\n enLastName: Joi.string().max(50).required().messages(GetMessages()),\r\n countryID: Joi.required().messages(GetMessages()),\r\n cityID: Joi.required().messages(GetMessages()),\r\n });\r\n\r\n\r\n useEffect(async () => {\r\n try {\r\n const settingsResponse = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/user/getSettings\",\r\n method: \"get\",\r\n });\r\n\r\n if (settingsResponse.status === 200) {\r\n setSettings(settingsResponse.data);\r\n }\r\n\r\n var mm = settingsResponse?.data?.genders.map(e => {\r\n return { value: String(e.id), text: e.description }\r\n });\r\n setGenderList(mm);\r\n \r\n intialUserData(settingsResponse?.data);\r\n\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n }, []);\r\n\r\n\r\n\r\n const intialIdentityTypes = async () => {\r\n let responseData = [];\r\n try {\r\n const response = await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"name\": \"SiteGetUserAccountTypes\"\r\n }\r\n );\r\n if (response.status == 200) {\r\n responseData = response.data;\r\n setAccountTypes(responseData);\r\n intialUserContactData();\r\n }\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n return responseData;\r\n };\r\n\r\n const handlePicker = () => {\r\n fileInputRef.current.click();\r\n };\r\n\r\n const intialUserData = async (data) => {\r\n\r\n try {\r\n const genderModel = trans(\"model:description\");\r\n const userData = JSON.parse(getData(User_Data_Key, true));\r\n \r\n if (userData) {\r\n if (userData.logo) {\r\n setImageProfile(URL.createObjectURL(b64toBlob(userData?.logo)));\r\n } else {\r\n setImageProfile(defaultProfileImage);\r\n }\r\n if (userData.genderID) {\r\n const userGender = data?.genders?.find(item => String(item.id) == String(userData?.genderID));\r\n if (userGender) {\r\n setSelectedGender({ text: userGender.description, value: String(userGender.id) });\r\n }\r\n }\r\n\r\n const { custGroupID, identity, tradeNo, countryID, cityID } = { ...userData };\r\n\r\n const cResult = data?.countries?.find(item => {\r\n return item.id == countryID\r\n }) ?? null;\r\n\r\n\r\n\r\n setFilteredCities(data?.cities?.filter(item => {\r\n return item.code == countryID\r\n }));\r\n setTimeout(() => {\r\n\r\n setPersonalDataRequest(userData);\r\n\r\n const ccResult = data?.cities?.find(item => {\r\n return item.id == cityID\r\n }) ?? null;\r\n\r\n const _userGeo = { ...defaultGeoLocation };\r\n\r\n if (cResult) {\r\n _userGeo.country = { text: cResult?.description, value: cResult?.id };\r\n }\r\n if (ccResult) {\r\n _userGeo.city = { text: ccResult?.description, value: ccResult?.id };\r\n }\r\n\r\n setDefaultGeoLocation(_userGeo);\r\n }, 1000)\r\n\r\n const results = await intialIdentityTypes();\r\n if (results?.length > 0) {\r\n const value = results.find(item => {\r\n return item.ID === custGroupID\r\n });\r\n if (value) {\r\n const finalValue = value.NeedIdentity == true ? 1 : value.NeedIdentity == false ? 2 : null;\r\n setIdentityType(finalValue);\r\n setDefaultIdentityType({ text: value[`${trans(\"model:description\")}`], value: value.ID });\r\n if (finalValue == 1 && identity !== \"\") {\r\n // setFrazeType(true);\r\n } else if (finalValue == 2 && tradeNo !== \"\") {\r\n // setFrazeType(true);\r\n }\r\n }\r\n }\r\n }\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n\r\n console.log(\">>>>>>>>>>>>>>>>>GetUserImage>>>>>>>>>>>>>>>>>>:\")\r\n try {\r\n const userKey = getData('secretKey');\r\n console.log(\">>>>>>>>>>>>>>>>>GetUserImage>>>>>>>>userKey>>>>>>>>>>:\", userKey)\r\n const settingsResponse = await axios.request({\r\n baseURL: config.controllURL,\r\n url: lang + \"/api/user/GetUserImage\",\r\n method: \"get\",\r\n params: {\r\n ID: userKey\r\n },\r\n });\r\n\r\n if (settingsResponse?.status === 200) {\r\n const imgeUser = settingsResponse?.data?.userImage?.Logo;\r\n\r\n if (imgeUser) {\r\n setImageProfile(URL.createObjectURL(b64toBlob(imgeUser)));\r\n } else {\r\n setImageProfile(defaultProfileImage);\r\n }\r\n }\r\n\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n };\r\n const intialUserContactData = () => {\r\n const userData = JSON.parse(getData(User_Data_Key, true));\r\n if (userData) {\r\n const { email, phone, identity, identityImage, tradeNo, tradeNoImage, custGroupID } = userData;\r\n\r\n setPersonalContactDataRequest({\r\n phoneNumber: phone,\r\n identityNo: identity,\r\n email: email,\r\n identityImage: identityImage\r\n });\r\n setPersonalIdentityDataRequest(\r\n {\r\n identity: identity,\r\n identityImage: identityImage\r\n }\r\n );\r\n setPersonalDocumentDataRequest({\r\n identityNo: identity ?? '',\r\n identityImage,\r\n cn: tradeNo ?? '',\r\n cnImage: tradeNoImage,\r\n custGroupID: custGroupID ?? ''\r\n });\r\n }\r\n };\r\n const b64toBlob = (b64Data, contentType = '', sliceSize = 512) => {\r\n const byteCharacters = atob(b64Data);\r\n const byteArrays = [];\r\n\r\n for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\r\n const slice = byteCharacters.slice(offset, offset + sliceSize);\r\n\r\n const byteNumbers = new Array(slice.length);\r\n for (let i = 0; i < slice.length; i++) {\r\n byteNumbers[i] = slice.charCodeAt(i);\r\n }\r\n const byteArray = new Uint8Array(byteNumbers);\r\n byteArrays.push(byteArray);\r\n }\r\n const blob = new Blob(byteArrays);\r\n return blob;\r\n }\r\n const handleChangeImage = async (event) => {\r\n const files = event.target.files;\r\n if (files.length > 0) {\r\n const fileURL = URL.createObjectURL(files[0]);\r\n setImageProfile(fileURL);\r\n const fileBase64 = await toBase64(files[0]);\r\n const finalFile = fileBase64.substr(fileBase64.indexOf(',') + 1, fileBase64.length);\r\n const val = { ...personalDataRequest };\r\n val.logo = finalFile;\r\n setPersonalDataRequest(val);\r\n }\r\n };\r\n const handleChangeIdentityImage = async (event) => {\r\n const files = event.target.files;\r\n const val = { ...personalDocumentDataRequest };\r\n if (files.length > 0) {\r\n const fileBase64 = await toBase64(files[0]);\r\n const finalFile = fileBase64.substr(fileBase64.indexOf(',') + 1, fileBase64.length);\r\n val.identityImage = finalFile;\r\n } else {\r\n val.identityImage = val.identityImage || null;\r\n }\r\n setPersonalDocumentDataRequest(val);\r\n };\r\n const handleChangeCRImage = async (event) => {\r\n const files = event.target.files;\r\n const val = { ...personalDocumentDataRequest };\r\n if (files.length > 0) {\r\n const fileBase64 = await toBase64(files[0]);\r\n const finalFile = fileBase64.substr(fileBase64.indexOf(',') + 1, fileBase64.length);\r\n val.cnImage = finalFile;\r\n } else {\r\n val.cnImage = val.cnImage || null;\r\n }\r\n setPersonalDocumentDataRequest(val);\r\n };\r\n const toBase64 = file => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => resolve(reader.result);\r\n reader.onerror = error => reject(error);\r\n });\r\n const isPasswordMatched = async () => {\r\n let isMatched = false;\r\n try {\r\n const response = await axios.post(\r\n config.baseURL + \"details\",\r\n {\r\n \"Object\": \"Web_Users\",\r\n \"ObjectSettings\": {\r\n \"MetaData\": false\r\n },\r\n \"Option\": \"Column\",\r\n \"Fields\": \"DescriptionAr\",\r\n \"Filters\": `where GUID = '${getData(\"secretKey\")}' and password = '${crypto.MD5(requestChangePassword?.oldPassword).toString()}'`\r\n }\r\n );\r\n if (response.status == 200) {\r\n isMatched = response.data.ApiObjectData?.length != 0;\r\n }\r\n return isMatched;\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n };\r\n // to change the current user password\r\n const handleChangePassword = async () => {\r\n const result = formValidate(schemaPassword, requestChangePassword) ?? {};\r\n setPasswordError(result);\r\n console.log(\"userHasNoPassword:>>>>>>>>>>>>>>>>\",userHasNoPassword);\r\n if (Object.keys(result).length == 0) {\r\n setIsLoading2(true);\r\n if (userHasNoPassword) {\r\n axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"name\": \"SiteCheckUserHasNoPassword\",\r\n \"values\": {\r\n \"guid\": `${getData('secretKey')}`\r\n }\r\n }\r\n ).then(response => {\r\n\r\n console.log(\"SiteCheckUserHasNoPassword:>>>>>>>>>>>>>>>>\",response?.data);\r\n console.log(\"acceptPasswordStatus:>>>>>>>>>>>>>>>>\",acceptPasswordStatus);\r\n if (response?.data) {\r\n if (acceptPasswordStatus) {\r\n axios.put(\r\n config.baseURL + \"update\",\r\n {\r\n \"Object\": \"Web_users\",\r\n \"Values\": {\r\n \"Password\": crypto.MD5(requestChangePassword.newPassword).toString()\r\n },\r\n \"Filters\": `where GUID = '${getData(\"secretKey\")}'`\r\n }\r\n ).then((response) => {\r\n toast.success(trans(\"common:reset-password-successfully\"));\r\n setPasswordError({});\r\n setRequestChangePassword({\r\n oldPassword: '',\r\n newPassword: '',\r\n confirmPassword: ''\r\n });\r\n setShowResetPasswordBox(false);\r\n }).catch((err) => {\r\n if (err.response && err.response.status == 400) {\r\n toast.error(\"error:unknown_failure\");\r\n }\r\n });\r\n }\r\n } else {\r\n toast.error(trans(\"error2:user_has_pre_password\"))\r\n }\r\n }).catch(err => {\r\n console.log(err);\r\n });\r\n } else {\r\n if ((await isPasswordMatched())) {\r\n if (acceptPasswordStatus) {\r\n axios.put(\r\n config.baseURL + \"update\",\r\n {\r\n \"Object\": \"Web_users\",\r\n \"Values\": {\r\n \"Password\": crypto.MD5(requestChangePassword.newPassword).toString()\r\n },\r\n \"Filters\": `where GUID = '${getData(\"secretKey\")}'`\r\n }\r\n ).then((response) => {\r\n if (response.status == 200) {\r\n toast.success(trans(\"common:reset-password-successfully\"));\r\n setPasswordError({});\r\n setRequestChangePassword({\r\n oldPassword: '',\r\n newPassword: '',\r\n confirmPassword: ''\r\n });\r\n setShowResetPasswordBox(false);\r\n }\r\n }).catch((err) => {\r\n if (err.response && err.response.status == 400) {\r\n toast.error(\"error:unknown_failure\");\r\n }\r\n });\r\n }\r\n } else {\r\n toast.error(trans(\"common:wrong-password\"));\r\n }\r\n }\r\n }\r\n setIsLoading2(false);\r\n };\r\n // to change personal data\r\n const handleChangePersonalData = () => {\r\n const result = formValidate(schemaSection1, personalDataRequest) ?? {};\r\n setError(result);\r\n if (Object.keys(result).length == 0) {\r\n if (readOnly) {\r\n toast.error(trans(\"common:enable-read-only\"));\r\n return;\r\n }\r\n setIsLoading(true);\r\n const userKey = getData('secretKey');\r\n axios.put(\r\n config.baseURL + \"update\",\r\n {\r\n \"Object\": \"Web_users\",\r\n \"Values\": {\r\n \"firstNameAr\": personalDataRequest?.arFirstName.trim(),\r\n \"middleNameAr\": personalDataRequest?.arMiddleName.trim(),\r\n \"lastNameAr\": personalDataRequest?.arLastName.trim(),\r\n \"firstNameEn\": personalDataRequest?.enFirstName.trim(),\r\n \"middleNameEn\": personalDataRequest?.enMiddleName.trim(),\r\n \"lastNameEn\": personalDataRequest?.enLastName.trim(),\r\n \"GenderID\": (personalDataRequest?.genderID != '' && personalDataRequest?.genderID != undefined) ? Number(personalDataRequest?.genderID) : Number(genderList[0].value),\r\n \"Address\": personalDataRequest.address ?? '',\r\n \"Logo\": personalDataRequest?.logo,\r\n \"countryID\": personalDataRequest?.countryID ?? null,\r\n \"cityID\": personalDataRequest?.cityID ?? null\r\n },\r\n \"Filters\": `where GUID = '${userKey}'`\r\n }).then((response) => {\r\n if (response.status == 200) {\r\n toast.success(trans(\"common:update-successful\"));\r\n setIsLoading(false);\r\n setReadOnly(true);\r\n setEditableStatus(0);\r\n saveData(User_Data_Key, personalDataRequest, true);\r\n window.location = '/user/profile';\r\n }\r\n }).catch(error => {\r\n console.log(error);\r\n setIsLoading(false);\r\n });\r\n }\r\n };\r\n // to change user phone number\r\n const handleChangePhoneNumber = async () => {\r\n const result = formValidate(schemaPhoneNumber, personalPhoneNumber) ?? {};\r\n setPhoneError(result);\r\n if (Object.keys(result).length == 0) {\r\n try {\r\n const response = await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"SiteNewPhoneNumberExisting\",\r\n \"Values\": {\r\n \"phoneNumber\": `${personalPhoneNumber.phoneNumber}`\r\n }\r\n }\r\n );\r\n if (response.status == 200 ) {\r\n if (response.data) {\r\n toast.error(trans(\"error2:phone_number_existing\"));\r\n } else {\r\n // the following code is to change the phone number\r\n axios.put(\r\n config.baseURL + 'update',\r\n {\r\n \"Object\": \"Web_users\",\r\n \"Values\": {\r\n \"Phone\": `${personalPhoneNumber.phoneNumber}`\r\n },\r\n \"Filters\": `where GUID = '${getData(\"secretKey\")}'`\r\n }\r\n ).then(responseData => {\r\n if (responseData.status == 200) {\r\n toast.success(trans(\"info:success_update_phone\"));\r\n const currentValue = JSON.parse(getData(User_Data_Key, true));\r\n currentValue.phone = personalPhoneNumber.phoneNumber;\r\n saveData(User_Data_Key, currentValue, true);\r\n window.location = '/user/profile'\r\n }\r\n }).catch(error => {\r\n console.log(error);\r\n });\r\n }\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }\r\n };\r\n // to chnage user email\r\n const handleChangeEmail = async () => {\r\n\r\n const result = formValidate(schemaEmail, personalEmailDataRequest) ?? {};\r\n setEmailError(result);\r\n if (Object.keys(result).length == 0) {\r\n try {\r\n const response = await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"SiteNewEmailExisting\",\r\n \"Values\": {\r\n \"email\": `${personalEmailDataRequest.email.trim()}`\r\n }\r\n }\r\n );\r\n if (response.status == 200) {\r\n if (response.data) {\r\n toast.error(trans(\"error2:email_existing\"));\r\n } else {\r\n // the following code is to change the phone number\r\n axios.put(\r\n config.baseURL + 'update',\r\n {\r\n \"Object\": \"Web_users\",\r\n \"Values\": {\r\n \"email\": `${personalEmailDataRequest.email.trim()}`\r\n },\r\n \"Filters\": `where GUID = '${getData(\"secretKey\")}'`\r\n }\r\n ).then(responseData => {\r\n toast.success(trans(\"info:success_update_email\"));\r\n const currentValue = JSON.parse(getData(User_Data_Key, true));\r\n currentValue.email = personalEmailDataRequest.email;\r\n saveData(User_Data_Key, currentValue, true);\r\n window.location = '/user/profile'\r\n }).catch(error => {\r\n console.log(error);\r\n });\r\n\r\n }\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }\r\n };\r\n // to change the identity info for the user\r\n const handleChangeIdentity = async () => {\r\n const result = formValidate(schemaIdentity, personalIdentityDataRequest) ?? {};\r\n setIdentityError(result);\r\n if (Object.keys(result).length == 0) {\r\n try {\r\n const response = await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"SiteNewIdentityExisting\",\r\n \"Values\": {\r\n \"identity\": `${personalIdentityDataRequest.identity}`,\r\n \"guid\": `${getData(\"secretKey\")}`\r\n }\r\n }\r\n );\r\n if (response.status == 200) {\r\n if (response.data) {\r\n toast.error(trans(\"error2:identity_existing\"));\r\n } else {\r\n axios.put(\r\n\r\n config.baseURL + 'update',\r\n {\r\n \"Object\": \"Web_users\",\r\n \"Values\": {\r\n \"IdentityNumber\": `${personalIdentityDataRequest.identity}`,\r\n \"IdentityImage\": personalIdentityDataRequest.identityImage\r\n },\r\n \"Filters\": `where GUID = '${getData(\"secretKey\")}'`\r\n }\r\n ).then(responseData => {\r\n\r\n toast.success(trans(\"common:update-successful\"));\r\n const currentValue = JSON.parse(getData(User_Data_Key, true));\r\n currentValue.identity = personalIdentityDataRequest.identity;\r\n currentValue.identityImage = personalIdentityDataRequest.identityImage;\r\n saveData(User_Data_Key, currentValue, true);\r\n window.location = '/user/profile'\r\n }).catch(error => {\r\n console.log(error);\r\n });\r\n }\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }\r\n };\r\n // to handle the identity type [cn-identity]\r\n const handleChangeIdentityType = async () => {\r\n const val = { ...personalDocumentDataRequest };\r\n const result = formValidate(schemaDocument, val);\r\n setIsLoading(true);\r\n if (freazeType) {\r\n if (identityType == 1) {\r\n axios.put(\r\n config.baseURL + 'update',\r\n {\r\n \"Object\": \"Web_users\",\r\n \"Values\": {\r\n \"CRImage\": personalDocumentDataRequest.cnImage\r\n },\r\n \"Filters\": `where GUID = '${getData(\"secretKey\")}'`\r\n }\r\n ).then(response => {\r\n setIsLoading(false);\r\n toast.success(trans(\"common:update-successful\"));\r\n const currentValue = JSON.parse(getData(User_Data_Key, true));\r\n currentValue.identityImage = personalDocumentDataRequest.identityImage;\r\n saveData(User_Data_Key, currentValue, true);\r\n window.location = '/user/profile';\r\n }).catch(err => {\r\n console.log(err);\r\n setIsLoading(false);\r\n })\r\n } else if (identityType == 2) {\r\n axios.put(\r\n config.baseURL + 'update',\r\n {\r\n \"Object\": \"Web_users\",\r\n \"Values\": {\r\n \"CRImage\": personalDocumentDataRequest.cnImage\r\n },\r\n \"Filters\": `where GUID = '${getData(\"secretKey\")}'`\r\n }\r\n ).then(response => {\r\n setIsLoading(false);\r\n toast.success(trans(\"common:update-successful\"));\r\n const currentValue = JSON.parse(getData(User_Data_Key, true));\r\n currentValue.tradeNoImage = personalDocumentDataRequest.cnImage;\r\n saveData(User_Data_Key, currentValue, true);\r\n window.location = '/user/profile';\r\n }).catch(err => {\r\n console.log(err);\r\n setIsLoading(false);\r\n })\r\n }\r\n } else {\r\n let values = {};\r\n let options = [];\r\n let jsonRequest;\r\n let messageError;\r\n // identity card\r\n if (identityType == 1) {\r\n messageError = 'error2:identity_existing';\r\n options = ['identityNo', 'custGroupID'];\r\n values = {\r\n \"Object\": \"Web_users\",\r\n \"Values\": {\r\n \"CustGroupID\": personalDocumentDataRequest.custGroupID,\r\n \"IdentityNumber\": personalDocumentDataRequest.identityNo,\r\n \"IdentityImage\": personalDocumentDataRequest.identityImage\r\n },\r\n \"Filters\": `where GUID = '${getData(\"secretKey\")}'`\r\n };\r\n // ----------------------------------------------------\r\n jsonRequest = {\r\n \"Name\": \"SiteNewIdentityExisting\",\r\n \"Values\": {\r\n \"identity\": `${personalDocumentDataRequest.identityNo}`,\r\n \"guid\": `${getData(\"secretKey\")}`\r\n }\r\n };\r\n } else if (identityType == 2) {\r\n messageError = 'error2:cr_existing';\r\n options = ['cn', 'custGroupID'];\r\n values = {\r\n \"Object\": \"Web_users\",\r\n \"Values\": {\r\n \"CustGroupID\": personalDocumentDataRequest.custGroupID,\r\n \"TradeNo\": personalDocumentDataRequest.cn,\r\n \"TradeNoImage\": personalDocumentDataRequest.cnImage\r\n },\r\n \"Filters\": `where GUID = '${getData(\"secretKey\")}'`\r\n };\r\n jsonRequest = {\r\n \"Name\": \"SiteNewCRExisting\",\r\n \"Values\": {\r\n \"identity\": `${personalDocumentDataRequest.cn}`,\r\n \"guid\": `${getData(\"secretKey\")}`\r\n }\r\n };\r\n }\r\n const newErrors = removeUnspecific2Error(result, options);\r\n setErrorDocument(newErrors);\r\n const _isFound = await isFound(jsonRequest);\r\n if (!_isFound) {\r\n if (Object.keys(newErrors).length === 0) {\r\n axios.put(\r\n config.baseURL + 'update',\r\n values\r\n ).then(response => {\r\n setIsLoading(false);\r\n toast.success(trans(\"common:update-successful\"));\r\n const currentValue = JSON.parse(getData(User_Data_Key, true));\r\n currentValue.tradeNoImage = personalDocumentDataRequest.cnImage;\r\n currentValue.tradeNo = personalDocumentDataRequest.cn;\r\n currentValue.identity = personalDocumentDataRequest.identityNo;\r\n currentValue.identityImage = personalDocumentDataRequest.identityImage;\r\n currentValue.custGroupID = personalDocumentDataRequest.custGroupID;\r\n saveData(User_Data_Key, currentValue, true);\r\n window.location = '/user/profile';\r\n }).catch(err => {\r\n console.log(err);\r\n setIsLoading(false);\r\n })\r\n }\r\n } else {\r\n toast.error(trans(messageError));\r\n }\r\n }\r\n };\r\n // to remove the unneeded props\r\n const removeUnspecific2Error = (errorList, values = []) => {\r\n let errorResult = {};\r\n if (values?.length > 0) {\r\n const lowerValues = values.map(item => {\r\n return item.toLowerCase()\r\n });\r\n Object.assign(errorResult, errorList);\r\n if (errorList) {\r\n for (let index = 0; index < Object.keys(errorList).length; index++) {\r\n const key = Object.keys(errorList)[index];\r\n if (includes(lowerValues, key.toLowerCase())) {\r\n continue;\r\n } else {\r\n delete errorResult[key];\r\n }\r\n }\r\n }\r\n }\r\n return errorResult;\r\n };\r\n\r\n const getCorrectIdentitySection = () => {\r\n let result = <>;\r\n // for identity card\r\n if (identityType == 1) {\r\n result = <>\r\n
    \r\n {\r\n const val = { ...personalDocumentDataRequest };\r\n val.identityNo = e.target.value;\r\n setPersonalDocumentDataRequest(val);\r\n }}\r\n title={trans(\"form:identity-no\")}\r\n />\r\n
    \r\n
    \r\n {\r\n await handleChangeIdentityImage(file);\r\n }}\r\n />\r\n {\r\n personalDocumentDataRequest?.identityImage && <>
    {\r\n setShowIdentityImage(!showIdentityImage);\r\n }}>\r\n {trans(\"user:show\")}\r\n
    \r\n {showIdentityImage && }\r\n \r\n }\r\n
    \r\n \r\n // for commercial no\r\n } else if (identityType == 2) {\r\n result = <>\r\n
    \r\n {\r\n const val = { ...personalDocumentDataRequest };\r\n val.cn = e.target.value;\r\n setPersonalDocumentDataRequest(val);\r\n }}\r\n title={trans(\"user:cn\")}\r\n />\r\n
    \r\n
    \r\n {\r\n await handleChangeCRImage(file);\r\n }}\r\n />\r\n {\r\n personalDocumentDataRequest?.cnImage && <>
    {\r\n setShowIdentityImage(!showIdentityImage);\r\n }}>\r\n {trans(\"user:show\")}\r\n
    \r\n {showIdentityImage && }\r\n \r\n }\r\n
    \r\n \r\n }\r\n return result;\r\n };\r\n\r\n // to check if the identity value is existing here includes [cr - identity type]\r\n const isFound = async (jsonRequest) => {\r\n let isExisting = false;\r\n try {\r\n const response = await axios.post(\r\n config.baseURL + 'func',\r\n jsonRequest\r\n );\r\n if (response.status === 200) {\r\n isExisting = response.data;\r\n }\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n return isExisting;\r\n };\r\n\r\n\r\n return (\r\n
    \r\n
    \r\n {\r\n }}>\r\n \r\n \r\n {trans(\"user:profile\")}\r\n \r\n \r\n \r\n {trans(\"user:contact_info\")}\r\n \r\n \r\n \r\n {trans(\"user:secret_info\")}\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n handleChangeImage(e)}\r\n />\r\n \r\n
    \r\n
    \r\n
    {selectedGender?.text ?? ''}
    \r\n
    {personalDataRequest?.email ?? ''}
    \r\n
    {personalDataRequest?.phone ?? ''}
    \r\n
    \r\n {\r\n if (status == 0) {\r\n intialUserData(genderList);\r\n setReadOnly(true);\r\n setEditableStatus(1);\r\n } else {\r\n setEditableStatus(0);\r\n setReadOnly(false);\r\n }\r\n\r\n }}\r\n title={trans(\"user:private_info\")}\r\n infoText={trans(\"user:private_info_note\")}\r\n hasRuler={true}\r\n >\r\n
    \r\n
    \r\n {\r\n const val = { ...personalDataRequest };\r\n val.arFirstName = e.target.value;\r\n setPersonalDataRequest(val);\r\n }}\r\n title={trans(\"form:first-name\") + ' (' + trans('user:ar') + ') '}\r\n />\r\n
    \r\n
    \r\n {\r\n const val = { ...personalDataRequest };\r\n val.arMiddleName = e.target.value;\r\n setPersonalDataRequest(val);\r\n }}\r\n title={trans(\"info:middle-name\") + ' (' + trans('user:ar') + ') '}\r\n />\r\n
    \r\n
    \r\n {\r\n const val = { ...personalDataRequest };\r\n val.arLastName = e.target.value;\r\n setPersonalDataRequest(val);\r\n }}\r\n title={trans(\"info:surname\") + ' (' + trans('user:ar') + ') '}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n const val = { ...personalDataRequest };\r\n val.enFirstName = e.target.value;\r\n setPersonalDataRequest(val);\r\n }}\r\n title={trans(\"form:first-name\") + ' (' + trans('user:en') + ') '}\r\n />\r\n
    \r\n
    \r\n {\r\n const val = { ...personalDataRequest };\r\n val.enMiddleName = e.target.value;\r\n setPersonalDataRequest(val);\r\n }}\r\n title={trans(\"info:middle-name\") + ' (' + trans('user:en') + ') '}\r\n />\r\n
    \r\n
    \r\n {\r\n const val = { ...personalDataRequest };\r\n val.enLastName = e.target.value;\r\n setPersonalDataRequest(val);\r\n }}\r\n title={trans(\"info:surname\") + ' (' + trans('user:en') + ') '}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n const val = { ...personalDataRequest };\r\n val.genderID = String(option);\r\n setPersonalDataRequest(val);\r\n }}\r\n selectedValue={personalDataRequest.genderID}\r\n options={[...genderList]}\r\n title={trans(\"form:gender\")}\r\n />\r\n
    \r\n
    \r\n\r\n {\r\n const val = { ...personalDataRequest };\r\n val.countryID = String(option);\r\n setPersonalDataRequest(val);\r\n }}\r\n selectedValue={personalDataRequest.countryID}\r\n options={[...settings?.countries?.map(item => {\r\n return { text: item?.description, value: item?.id }\r\n })]}\r\n onfilter={(value) => {\r\n dropDownResetter(() => {\r\n setFilteredCities([]);\r\n setDefaultGeoLocation(null);\r\n });\r\n if (value.value === '') {\r\n dropDownResetter(() => {\r\n setFilteredCities([]);\r\n setDefaultGeoLocation(null);\r\n });\r\n return;\r\n }\r\n setFilteredCities(settings?.cities?.filter(item => {\r\n return item.code == value?.value\r\n }));\r\n }}\r\n />\r\n
    \r\n\r\n
    \r\n\r\n {\r\n const val = { ...personalDataRequest };\r\n val.cityID = String(option);\r\n setPersonalDataRequest(val);\r\n }}\r\n options={[...filteredCities?.map(item => {\r\n return { text: item?.description, value: item?.id, optional: item?.code }\r\n })]}\r\n title={trans(\"extra:city\")}\r\n />\r\n
    \r\n
    \r\n {\r\n const val = { ...personalDataRequest };\r\n val.address = e.target.value;\r\n setPersonalDataRequest(val);\r\n }}\r\n />\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {\r\n if (lang === 'ar') {\r\n return { text: item.DescriptionAr, value: item.ID, isClient: item.NeedIdentity }\r\n } else {\r\n return { text: item.DescriptionEn, value: item.ID, isClient: item.NeedIdentity }\r\n }\r\n })]}\r\n selectedValue={personalDocumentDataRequest.custGroupID}\r\n onfilter={(option) => {\r\n if (option.value == '' || option.value == '0') {\r\n setIdentityType(null);\r\n return;\r\n } else {\r\n const { isClient, value } = { ...option };\r\n setIdentityType(isClient ? 1 : 2);\r\n const val = { ...personalDocumentDataRequest };\r\n val.custGroupID = value;\r\n setPersonalDocumentDataRequest(val);\r\n }\r\n }}\r\n />\r\n
    \r\n {getCorrectIdentitySection()}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {\r\n }}\r\n title={trans(\"user:current_phone\")}\r\n />\r\n
    {\r\n setChangePhoneNumber(!changePhoneNumber);\r\n }}>\r\n {trans(\"user:update_phone_note\")}\r\n
    \r\n {changePhoneNumber && <> {\r\n setPersonalPhoneNumber({\r\n phoneNumber: `+${countryCode}${phoneNumber}`\r\n });\r\n }}\r\n />\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n {\r\n }}\r\n title={trans(\"form:email\")}\r\n />\r\n
    {\r\n setChangeEmail(!changeEmail);\r\n }}>\r\n {trans(\"user:update_email_note\")}\r\n
    \r\n {changeEmail && <>\r\n {\r\n const val = { ...personalEmailDataRequest };\r\n val.email = e.target.value;\r\n setPersonalEmailDataRequest(val);\r\n }}\r\n title={trans(\"form:email\") + ' (' + trans(\"info:new\") + ')'}\r\n />\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n }\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n {\r\n const val = { ...requestChangePassword };\r\n val.oldPassword = e.target.value.trim();\r\n setRequestChangePassword(val);\r\n }}\r\n title={trans(\"form:user-current-password\")}\r\n />\r\n {\r\n setUserHasNoPassword(value.checked);\r\n }\r\n }\r\n >\r\n {trans(\"info:user_has_password\")}\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n setAcceptPasswordStatus(status);\r\n }}\r\n errorLabel={passwordError?.newPassword}\r\n onChangeValue={(e) => {\r\n const val = { ...requestChangePassword };\r\n val.newPassword = e.target.value;\r\n setRequestChangePassword(val);\r\n }}\r\n title={trans(\"form:user-new-password\")}\r\n />\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n const val = { ...requestChangePassword };\r\n val.confirmPassword = e.target.value;\r\n setRequestChangePassword(val);\r\n }}\r\n title={trans(\"form:confirm-password\")}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n","import React, { useEffect } from \"react\";\r\nimport { Redirect, Route } from \"react-router-dom\";\r\nfunction ProtectedRoute({ component: Component, ...restOfProps }) {\r\n const isAuthenticated = localStorage.getItem(\"isAuthenticated\");\r\n return (\r\n \r\n isAuthenticated ? : \r\n }\r\n />\r\n );\r\n}\r\nexport default ProtectedRoute;","import {useDispatch} from \"react-redux\";\r\nimport {Fragment, useEffect} from \"react\";\r\nimport {changeIcons} from \"../../_redux/slices/navSlice\";\r\nimport {useTranslation} from \"react-i18next\";\r\nimport {Helmet} from \"react-helmet\";\r\n\r\nexport default function NotFoundPage_404() {\r\n const {t: trans} = useTranslation([\"messages\"]);\r\n\r\n const dispatch = useDispatch();\r\n useEffect(async () => {\r\n\r\n dispatch(\r\n changeIcons({iconsBlack: true})\r\n )\r\n\r\n return () => {\r\n dispatch(\r\n changeIcons({iconsBlack: false})\r\n )\r\n }\r\n }, []);\r\n return (\r\n \r\n {\r\n \r\n \r\n \r\n }\r\n
    \r\n
    \r\n\r\n
    \r\n {trans(\"messages:page_not_found\")}\r\n
    \r\n

    \r\n 404\r\n

    \r\n

    \r\n {trans(\"messages:page_not_found_message\")}\r\n

    \r\n\r\n
    \r\n\r\n
    \r\n \"\"/\r\n
    \r\n
    \r\n
    \r\n );\r\n}","import { useTranslation } from \"react-i18next\";\r\nimport config from \"../../configuration/config.json\";\r\nexport default function VehicleDetails({\r\n carBrand = '',\r\n carNameTitle = '',\r\n carModelTitle = '',\r\n isHybrid = false,\r\n colorImage,\r\n structureNo = '',\r\n plateNo = '',\r\n createdInput = '',\r\n values = [],\r\n showValues = false,\r\n carImage,\r\n userCarName = '',\r\n industryYear = ''\r\n}) {\r\n const { t: trans } = useTranslation([\"common\", \"vehicales\", \"form\", \"info\"]);\r\n const preIconPath = '/assets/icons/car/';\r\n const lang = localStorage.getItem(\"i18nextLng\");\r\n const languageDir = 'language-' + lang;\r\n const carInnerDetails = [\r\n { id: 1, description: trans(\"vehicales:veh-cle\"), icon: preIconPath + 'cylinders.svg' },\r\n { id: 2, description: trans(\"vehicales:veh-seat\"), icon: preIconPath + 'seat.svg' },\r\n { id: 3, description: trans(\"vehicales:veh-eng\"), icon: preIconPath + 'engine.svg' },\r\n { id: 4, description: trans(\"vehicales:veh-lettr\"), icon: preIconPath + 'gasoline.svg' },\r\n { id: 5, description: trans(\"vehicales:veh-petrol\"), icon: preIconPath + 'petrol.svg' },\r\n ];\r\n return (\r\n
    \r\n
    \r\n
    \r\n\r\n {'info'}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    {carNameTitle}
    \r\n
    \r\n
    \r\n {\r\n isHybrid &&
    {trans(\"vehicales:veh-hybrid\")}
    \r\n }\r\n
    {carBrand}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {carModelTitle}\r\n
    \r\n
    \r\n {industryYear}\r\n
    \r\n
    \r\n
    \r\n {trans(\"form:color\")} :\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {trans(\"vehicales:veh-struc\")} : {structureNo}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {trans(\"vehicales:veh-plat\")} : {plateNo}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {trans(\"vehicales:veh-created\")} : {createdInput}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {trans(\"info:private-name\")} : {userCarName}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n showValues && carInnerDetails.map((e, i) => {\r\n return
    \r\n
    \r\n
    \r\n \r\n {\r\n values && values[i]\r\n }\r\n \r\n \r\n {e.description}\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n })\r\n }\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n );\r\n}","import { useEffect, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport { Tab, Tabs, TabList, TabPanel } from 'react-tabs';\r\nimport SwiperCore, { Autoplay, EffectFade, Navigation, Pagination } from \"swiper\";\r\nimport PageHeading from \"../components/__simple/_pageheading\";\r\nimport VehicleDetails from \"./components/vehicleDetails\";\r\nimport axios from \"axios\";\r\nimport { useParams } from \"react-router\";\r\nimport config from '../configuration/config.json';\r\nimport { Part } from \"../pages/eparts/components/part\";\r\nimport { DropDownInput } from \"../components/_input/_dropdown\";\r\nimport TrackItem from \"./components/trackItem\";\r\nimport moment from \"moment\";\r\nimport { groupBy, mapValues, omit } from \"lodash\";\r\nimport { slugCombine } from \"../utils/slugManager\";\r\nimport { getData, User_Data_Key } from \"../utils/localStorageManager\";\r\nimport Offer from \"../components/offer\";\r\nimport dropDownResetter from \"../utils/resetDropDown\";\r\nimport { Link } from \"react-router-dom\";\r\nimport \"./MaintenanceTwo.scss\"\r\nimport { Price } from \"../components/__simple/_price\";\r\nSwiperCore.use([Pagination, Navigation, Autoplay, EffectFade]);\r\nexport default function UserVehiclesDetailsPage() {\r\n const { t: trans, i18n } = useTranslation([\"eparts\", \"common\", \"form\", \"vehicales\", \"model\", \"info\", \"inputs\", \"global\"]);\r\n const lang = i18n.language;\r\n const { car, fetchType } = useParams();\r\n const languageDir = 'language-' + lang;\r\n //--------------------------------------------------\r\n const [vehicleDetails, setVehicleDetails] = useState(null);\r\n const [primaryCategory, setPrimaryCategory] = useState([]);\r\n const [subPrimaryCategory, setSubPrimaryCategory] = useState([]);\r\n const [lastSubPrimaryCategory, setLastSubPrimaryCategory] = useState([]);\r\n const [fSubPrimaryCategory, setFSubPrimaryCategory] = useState([]);\r\n const [flastSubPrimaryCategory, setFLastSubPrimaryCategory] = useState([]);\r\n const [allParts, setAllParts] = useState([]);\r\n const [fAllParts, setFAllParts] = useState([]);\r\n const [selectedPrimaryCategory, setSelectedPrimaryCategory] = useState('');\r\n const [selectedSubPrimaryCategory, setSubSelectedPrimaryCategory] = useState('');\r\n const [selectedSubLastPrimaryCategory, setSubLastSelectedPrimaryCategory] = useState('');\r\n const [offers, setOffers] = useState([]);\r\n\r\n const getIsExpireDate = async (date) => {\r\n\r\n try {\r\n\r\n const date1 = new Date(date);\r\n const date2 = new Date();\r\n const diffTime = date1 - date2;\r\n const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));\r\n\r\n if (diffDays <= 0 && diffTime <= 0) {\r\n return true;\r\n\r\n } else {\r\n\r\n return false;\r\n }\r\n\r\n } catch (error) {\r\n console.log(\"error:\", error);\r\n return true\r\n\r\n }\r\n\r\n }\r\n useEffect(async () => {\r\n getVehicleDetails();\r\n await initalCategories();\r\n }, []);\r\n\r\n useEffect(async () => {\r\n console.log(\"useEffect ReservationFetch>>>>>>>>>>:\", vehicleDetails)\r\n if (vehicleDetails && vehicleDetails?.vinNo)\r\n ReservationFetch();\r\n PreviousMaintenance();\r\n }, [vehicleDetails]);\r\n\r\n const [Reservation, setReservation] = useState(null);\r\n const [isLoadingReservation, setLoadingReservation] = useState(false);\r\n const [isFetchedReservation, setFetchedReservation] = useState(false);\r\n const ReservationFetch = async () => {\r\n\r\n\r\n console.log(\"ReservationFetch>>>>>>>>>>:\", vehicleDetails)\r\n console.log(\"userId>>>>>>>>>>:\", vehicleDetails)\r\n\r\n const userId = JSON.parse(getData(User_Data_Key, true))?.custID?.toString() ?? 0;\r\n setLoadingReservation(true);\r\n const Body3 = {\r\n \"name\": \"App_ReservationFetchWithVIN\",\r\n \"values\": {\r\n \"UserID\": userId.toString(),\r\n \"VIN\": vehicleDetails?.vinNo\r\n }\r\n\r\n }\r\n\r\n await axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body3, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n console.log(\"FetchTypeCart:\", response.data);\r\n setReservation(response.data);\r\n setFetchedReservation(true);\r\n setLoadingReservation(false);\r\n })\r\n .catch(function (error) {\r\n setLoadingReservation(false);\r\n console.log(error);\r\n });\r\n\r\n\r\n }\r\n const [isLoadingContent, setLoadingContent] = useState(false);\r\n const [ReservationFilterData, setReservationFilterData] = useState([]);\r\n const [isActive, setIsActive] = useState(1);\r\n const filterReservation = async (type) => {\r\n\r\n if (!isLoadingContent) {\r\n setLoadingContent(true);\r\n setIsActive(type);\r\n\r\n if (type == 1) {\r\n\r\n let newData = [];\r\n\r\n await Reservation?.map(async a => {\r\n var ex = await getIsExpireDate(a.Orderdate)\r\n if (!ex)\r\n newData = [...newData, a];\r\n\r\n })\r\n\r\n setReservationFilterData(newData);\r\n } else {\r\n let newData = [];\r\n await Reservation?.map(async a => {\r\n var ex = await getIsExpireDate(a.Orderdate)\r\n if (ex)\r\n newData = [...newData, a];\r\n\r\n })\r\n setReservationFilterData(newData);\r\n\r\n }\r\n\r\n setLoadingContent(false);\r\n }\r\n\r\n }\r\n const [Maintenance, setMaintenance] = useState([]);\r\n const [MaintenanceDetails, setMaintenanceDetails] = useState({});\r\n const [isFetchedMaintenance, setFetchedMaintenance] = useState(false);\r\n const [isLoadingMaintenance, setLoadingMaintenance] = useState(false);\r\n const PreviousMaintenance = async () => {\r\n\r\n setLoadingMaintenance(true);\r\n\r\n const userId = JSON.parse(getData(User_Data_Key, true))?.custID?.toString() ?? 0;\r\n\r\n const Body3 = {\r\n \"name\": \"App_PreviousMaintenanceWithVIN\",\r\n \"values\": {\r\n \"UserID\": userId.toString(),\r\n \"VIN\": vehicleDetails?.vinNo\r\n }\r\n\r\n }\r\n\r\n await axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body3, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n console.log(\"App_PreviousMaintenance :\", response.data);\r\n setMaintenance(response.data);\r\n setFetchedMaintenance(true)\r\n setLoadingMaintenance(false);\r\n })\r\n .catch(function (error) {\r\n setLoadingMaintenance(false);\r\n console.log(error);\r\n });\r\n\r\n\r\n }\r\n\r\n useEffect(() => {\r\n console.log(\"useEffect filterReservation:\", isActive);\r\n\r\n filterReservation(isActive);\r\n }, [isActive, Reservation]);\r\n //---------------------------------------------------\r\n // to fetch the vehicle details by passing the vehicleID\r\n const getVehicleDetails = () => {\r\n\r\n const funSiteGetVehicleDetails = fetchType == \"user\" ? \"SiteGetVehicleDetails\" : \"SiteGetVehiclePurchase\" ;\r\n if (car) {\r\n axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"name\": funSiteGetVehicleDetails,\r\n \"values\": {\r\n \"vehicleID\": car\r\n }\r\n }\r\n ).then(response => {\r\n const responseData = response.data[0];\r\n const modelTrans = trans(\"model:description\");\r\n const _vehicle = { ...vehicleDetails };\r\n _vehicle.groupName = responseData[`Group${modelTrans}`];\r\n _vehicle.modelName = responseData[`Model${modelTrans}`];\r\n _vehicle.colorImage = responseData.ColorImage;\r\n _vehicle.plateNo = responseData[`Board${modelTrans}`];\r\n _vehicle.vinNo = responseData.VIN;\r\n _vehicle.carImage = responseData.Image;\r\n _vehicle.industryYear = responseData.Model ?? '';\r\n _vehicle.inputDate = responseData.InputDate;\r\n _vehicle.brand = responseData[`Brand${modelTrans}`];\r\n _vehicle.userCarName = responseData.UserCarName ?? ''\r\n intialAllPartsByGroup(responseData.BrandID, responseData.ProductGroupID, responseData.Model);\r\n setVehicleDetails(_vehicle);\r\n initialOffers(responseData.ProductGroupID);\r\n }).catch(error => {\r\n console.log('error in fetching the vehicle details,', error);\r\n });\r\n }\r\n };\r\n //----------------------------------------------------\r\n //to fetch all the categories\r\n const initalCategories = async () => {\r\n const primaryCategoriesBody = {\r\n \"object\": \"Site_categorySP\",\r\n \"objectSettings\": {\r\n \"metaData\": false\r\n },\r\n \"option\": \"column\",\r\n \"fields\": \"GroupIDMain,DescriptionAr,DescriptionEn\"\r\n };\r\n const subPrimaryCategoriesBody = {\r\n \"object\": \"Site_SupCategory\",\r\n \"objectSettings\": {\r\n \"metaData\": false\r\n },\r\n \"option\": \"column\",\r\n \"fields\": \"GroupIDMainSup1,DescriptionAr,DescriptionEn,GroupIDMain\"\r\n };\r\n const lastSubPrimaryCategoriesBody = {\r\n \"object\": \"Site_ItemsSupCategory\",\r\n \"objectSettings\": {\r\n \"metaData\": false\r\n },\r\n \"option\": \"column\",\r\n \"fields\": \"GroupIDMainSup2,DescriptionAr,DescriptionEn,GroupIDMainSup1\"\r\n };\r\n\r\n try {\r\n const primaryCategoriesRequest = axios.request(\r\n {\r\n url: config.baseURL + 'details',\r\n data: primaryCategoriesBody, method: \"POST\", responseType: \"json\"\r\n }\r\n );\r\n\r\n const subPrimaryCategoriesRequest = axios.request(\r\n {\r\n url: config.baseURL + 'details',\r\n data: subPrimaryCategoriesBody, method: \"POST\", responseType: \"json\"\r\n }\r\n );\r\n\r\n\r\n const lastSubPrimaryCategoriesRequest = axios.request(\r\n {\r\n url: config.baseURL + 'details',\r\n data: lastSubPrimaryCategoriesBody, method: \"POST\", responseType: \"json\"\r\n }\r\n );\r\n\r\n await axios.all([primaryCategoriesRequest, subPrimaryCategoriesRequest, lastSubPrimaryCategoriesRequest])\r\n .then(axios.spread((category1, category2, category3) => {\r\n setPrimaryCategory(category1.data.ApiObjectData);\r\n setSubPrimaryCategory(category2.data.ApiObjectData);\r\n setLastSubPrimaryCategory(category3.data.ApiObjectData);\r\n })).catch(err => {\r\n console.log(err);\r\n });\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n };\r\n // filter the sub categories\r\n const handlFilterSubCategories = (option) => {\r\n try {\r\n if (option?.value == '' || option?.value == '0' || option?.value == null) {\r\n dropDownResetter(() => {\r\n setFSubPrimaryCategory([]);\r\n setFLastSubPrimaryCategory([]);\r\n setSelectedPrimaryCategory('');\r\n });\r\n return;\r\n }\r\n setSelectedPrimaryCategory(option.value);\r\n setFSubPrimaryCategory(subPrimaryCategory.filter(item => {\r\n return item.GroupIDMain == option.value\r\n }));\r\n\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n };\r\n // filter the last sub categories\r\n const handlFilterLastSubCategories = (option) => {\r\n try {\r\n if (option?.value == '' || option?.value == '0' || option?.value == null) {\r\n dropDownResetter(() => {\r\n setFLastSubPrimaryCategory([]);\r\n setSubSelectedPrimaryCategory('');\r\n });\r\n return;\r\n }\r\n setSubSelectedPrimaryCategory(option.value);\r\n setFLastSubPrimaryCategory(lastSubPrimaryCategory.filter(item => {\r\n return item.GroupIDMainSup1 == option.value\r\n }));\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n };\r\n // to intialize the parts that are base on the group and brand\r\n const intialAllPartsByGroup = (brandID, groupID, model) => {\r\n axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"name\": \"Site_FeatchPartByVehicle\",\r\n \"values\": {\r\n \"brand\": Number(brandID),\r\n \"group\": groupID,\r\n \"type\": null,\r\n \"year\": String(model)\r\n }\r\n }\r\n ).then(response => {\r\n setAllParts(response.data);\r\n setFAllParts(response.data);\r\n }).catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n // to search by the dropdowns\r\n const handleOnSearch = () => {\r\n try {\r\n let filterResults = [];\r\n if ((selectedPrimaryCategory != '' && selectedPrimaryCategory != 0)\r\n && (selectedSubLastPrimaryCategory == '' || selectedSubLastPrimaryCategory == 0) && (selectedSubLastPrimaryCategory == '')) {\r\n filterResults = allParts.filter((item => {\r\n return item.CategorySPID == selectedPrimaryCategory\r\n }));\r\n } else if ((selectedPrimaryCategory != '' && selectedPrimaryCategory != 0) &&\r\n (selectedSubLastPrimaryCategory != '' && selectedSubLastPrimaryCategory != 0) && (selectedSubLastPrimaryCategory == '')) {\r\n filterResults = allParts.filter((item => {\r\n return item.CategorySPID == selectedPrimaryCategory && item.SupCategorySPID == selectedSubPrimaryCategory\r\n }));\r\n } else if ((selectedPrimaryCategory != '' && selectedPrimaryCategory != 0) &&\r\n (selectedSubLastPrimaryCategory != '' && selectedSubLastPrimaryCategory != 0) && (selectedSubLastPrimaryCategory != '')) {\r\n filterResults = allParts.filter((item => {\r\n return item.CategorySPID == selectedPrimaryCategory && item.SupCategorySPID == selectedSubPrimaryCategory && item.ItemsSupCategorySPID == selectedSubLastPrimaryCategory\r\n }));\r\n } else {\r\n filterResults = allParts;\r\n }\r\n setFAllParts(filterResults);\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n };\r\n const [favoriteProducts, setFavoriteProducts] = useState([]);\r\n useEffect(async () => {\r\n const results = await fetchUserFavorites();\r\n setFavoriteProducts(results);\r\n }, []);\r\n // to fetch the user favorites\r\n const fetchUserFavorites = async () => {\r\n let _favorites = [];\r\n try {\r\n const isLogin = getData('isAuthenticated');\r\n if (isLogin) {\r\n const { id } = JSON.parse(getData(User_Data_Key, true));\r\n const userID = Number(id.toString().split('_')[1]);\r\n const response = await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"SiteFetchUserFavorites\",\r\n \"values\": {\r\n \"userID\": userID\r\n }\r\n }\r\n );\r\n if (response.status == 200) {\r\n const favorites = response.data;\r\n _favorites = _favorites.concat(favorites);\r\n }\r\n }\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n return _favorites;\r\n };\r\n // to fetch all the user offers\r\n const initialOffers = (groupID) => {\r\n try {\r\n axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"SiteFetchOffersByGroup\",\r\n \"Values\": {\r\n \"GroupID\": String(groupID)\r\n }\r\n }\r\n ).then(response => {\r\n const result = response.data;\r\n const groupResult = mapValues(groupBy(result, 'OfferType'), fList => fList.map(items => omit(items, 'OfferType')));\r\n let groupValues = {};\r\n Object.assign(groupValues, groupResult);\r\n let finalResults = [];\r\n //---------------------------------------------------------------------------- \r\n for (let item in groupValues) {\r\n const obj = { heading: '', items: [] };\r\n let title = '';\r\n const results = groupValues[item].map(item => item[`Type${trans(\"model:description\")}`]);\r\n if (results?.length > 0) {\r\n title = results[0];\r\n }\r\n obj.heading = title;\r\n obj.items = groupValues[item];\r\n finalResults.push(obj);\r\n }\r\n setOffers(finalResults);\r\n }).catch(error => {\r\n console.log(error);\r\n })\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n };\r\n\r\n\r\n const formatDateTime = (date, time) => {\r\n\r\n try {\r\n if (date) {\r\n let dateNow = new Date(date);\r\n\r\n\r\n if (time) {\r\n\r\n let timeNow = new Date(\"2023-02-26T\" + time);\r\n\r\n dateNow.setHours(timeNow.getHours(), timeNow.getMinutes(), timeNow.getSeconds());\r\n }\r\n\r\n\r\n\r\n var formatDate = { year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', hour12: true, minute: '2-digit' };\r\n\r\n if (lang.language === \"en\") {\r\n return dateNow.toLocaleDateString('en-US', formatDate);\r\n\r\n } else {\r\n return dateNow.toLocaleDateString('en-US', formatDate);\r\n // return dateNow.toLocaleDateString('ar-US', formatDate);\r\n }\r\n\r\n } else {\r\n return date;\r\n\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n return date;\r\n }\r\n };\r\n return (\r\n
    \r\n \r\n ;\r\n\r\n \r\n
    \r\n \r\n\r\n \r\n {trans(\"info:offers\")}\r\n \r\n {/* \r\n \r\n {trans(\"info:spare-parts\")}\r\n */}\r\n {/* \r\n \r\n {trans(\"info:history\")}\r\n */}\r\n \r\n \r\n {trans(\"info:my-bookings\")}\r\n \r\n \r\n \r\n {trans(\"info:previous-maintenance\")}\r\n \r\n \r\n
    \r\n \r\n
    \r\n {\r\n offers.map((parent, index) => {\r\n return (\r\n <>\r\n

    {parent.heading}

    \r\n \r\n {\r\n parent.items?.map((item, index) => {\r\n return (\r\n \r\n \r\n \r\n )\r\n })\r\n }\r\n\r\n \r\n \r\n\r\n )\r\n })\r\n }\r\n
    \r\n
    \r\n {/* \r\n
    \r\n
    \r\n
    \r\n
    \r\n {\r\n if (lang == 'ar') {\r\n return { text: item.DescriptionAr, value: item.GroupIDMain }\r\n } else {\r\n return { text: item.DescriptionEn, value: item.GroupIDMain }\r\n }\r\n })]}\r\n onfilter={handlFilterSubCategories}\r\n />\r\n {\r\n if (lang == 'ar') {\r\n return { text: item.DescriptionAr, value: item.GroupIDMainSup1 }\r\n } else {\r\n return { text: item.DescriptionEn, value: item.GroupIDMainSup1 }\r\n }\r\n })]}\r\n onfilter={handlFilterLastSubCategories}\r\n />\r\n\r\n {\r\n if (lang == 'ar') {\r\n return { text: item.DescriptionAr, value: item.GroupIDMainSup2 }\r\n } else {\r\n return { text: item.DescriptionEn, value: item.GroupIDMainSup2 }\r\n }\r\n })]}\r\n onSelect={(value) => {\r\n setSubLastSelectedPrimaryCategory(value)\r\n }}\r\n />\r\n
    \r\n {trans(\"eparts:search\")}\r\n \r\n
    \r\n
    \r\n {\r\n fAllParts?.length > 0 ? (
    \r\n {\r\n fAllParts.map((P, index) => {\r\n return (\r\n \r\n \r\n \r\n )\r\n })\r\n }\r\n\r\n \r\n {\r\n (fAllParts?.length > 10) && (\r\n
    \r\n \r\n {trans(\"common:show-more\")}\r\n \r\n
    \r\n )\r\n }\r\n
    ) :\r\n\r\n
    \r\n \"hassan\r\n

    {trans(\"info:no_parts\")}

    \r\n
    \r\n\r\n }\r\n
    \r\n
    */}\r\n {/* \r\n
    \r\n {\r\n [1, 2, 3].map(item => {\r\n return (\r\n \r\n )\r\n })\r\n }\r\n
    \r\n
    */}\r\n \r\n
    \r\n {\r\n ReservationFilterData?.map((res, index) => {\r\n return (\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n

    {lang == \"ar\" ? res?.DescriptionAr : res?.DescriptionEn}

    \r\n\r\n

    {trans(\"info:order-number\")}: {res?.ReceptionID}

    \r\n\r\n {\r\n

    {trans(\"info:booking-date\")}: {formatDateTime(res.Orderdate, res.Ordertime)}

    \r\n\r\n }\r\n\r\n\r\n

    \r\n \r\n {res?.price && }\r\n \r\n

    \r\n
    \r\n
    \r\n )\r\n })\r\n }\r\n
    \r\n
    \r\n \r\n
    \r\n {\r\n Maintenance?.map((res, index) => {\r\n return (\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n

    {res?.Description}

    \r\n\r\n

    {trans(\"info:order-number\")}: {res?.OrderID}

    \r\n\r\n {\r\n

    {trans(\"info:maintenance-date\")}: {formatDateTime(res?.CompleteDate, null)}

    \r\n\r\n }\r\n\r\n\r\n

    \r\n \r\n {res?.Price && }\r\n \r\n

    \r\n
    \r\n
    \r\n )\r\n })\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}","import { useEffect, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Swiper, SwiperSlide } from \"swiper/react\";\r\nimport { Tab, Tabs, TabList, TabPanel } from 'react-tabs';\r\nimport SwiperCore, { Autoplay, EffectFade, Navigation, Pagination } from \"swiper\";\r\nimport PageHeading from \"../components/__simple/_pageheading\";\r\nimport VehicleDetails from \"./components/vehicleDetails\";\r\nimport axios from \"axios\";\r\nimport { useParams } from \"react-router\";\r\nimport config from '../configuration/config.json';\r\n\r\nimport { groupBy, mapValues, omit } from \"lodash\";\r\n\r\nimport { getData, User_Data_Key } from \"../utils/localStorageManager\";\r\nimport dropDownResetter from \"../utils/resetDropDown\";\r\nimport \"./MaintenanceTwo.scss\"\r\nimport { Price } from \"../components/__simple/_price\";\r\nimport SectionHeading from \"../components/sectionHeading\";\r\nimport CarUser from \"./components/CarUser\";\r\nSwiperCore.use([Pagination, Navigation, Autoplay, EffectFade]);\r\nexport default function MyBookings() {\r\n const { t: trans, i18n } = useTranslation([\"eparts\", \"common\", \"form\", \"vehicales\", \"model\", \"info\", \"inputs\", \"global\"]);\r\n const lang = i18n.language;\r\n const { car, fetchType } = useParams();\r\n const languageDir = 'language-' + lang;\r\n //--------------------------------------------------\r\n const [vehicleDetails, setVehicleDetails] = useState(null);\r\n const [primaryCategory, setPrimaryCategory] = useState([]);\r\n const [subPrimaryCategory, setSubPrimaryCategory] = useState([]);\r\n const [lastSubPrimaryCategory, setLastSubPrimaryCategory] = useState([]);\r\n const [fSubPrimaryCategory, setFSubPrimaryCategory] = useState([]);\r\n const [flastSubPrimaryCategory, setFLastSubPrimaryCategory] = useState([]);\r\n const [allParts, setAllParts] = useState([]);\r\n const [fAllParts, setFAllParts] = useState([]);\r\n const [selectedPrimaryCategory, setSelectedPrimaryCategory] = useState('');\r\n const [selectedSubPrimaryCategory, setSubSelectedPrimaryCategory] = useState('');\r\n const [selectedSubLastPrimaryCategory, setSubLastSelectedPrimaryCategory] = useState('');\r\n const [offers, setOffers] = useState([]);\r\n const [isLoadingUserCars, setLoadingUserCars] = useState(true);\r\n const [myCars, setMyCars] = useState([]);\r\n const [activeId, setActiveId] = useState(null);\r\n const [curentCarId, setCurentCarId] = useState(null);\r\n useEffect(() => {\r\n\r\n getUserCars();\r\n }, []);\r\n\r\n const getUserCars = async () => {\r\n\r\n var _userID = JSON.parse(getData(User_Data_Key, true))?.id?.toString() ?? 0;\r\n _userID = Number(_userID.toString().split('_')[1]);\r\n\r\n try {\r\n setLoadingUserCars(true);\r\n\r\n await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"name\": \"SiteGetUserCars\",\r\n \"values\": {\r\n \"userID\": Number(_userID)\r\n }\r\n }\r\n ).then(function (response) {\r\n\r\n setMyCars(response.data);\r\n\r\n var index = 0;\r\n\r\n\r\n index = response?.data?.findIndex(0)\r\n var currentCar = response?.data[0];\r\n\r\n\r\n if (currentCar)\r\n setVehicleDetails(currentCar);\r\n\r\n\r\n\r\n console.log(\"currentCar:>>>>>>>>>>>>>>>>>>>>>>>>>:\", currentCar);\r\n setActiveId(index);\r\n\r\n setLoadingUserCars(false);\r\n\r\n }).catch(function (error) {\r\n console.log(error);\r\n setLoadingUserCars(false);\r\n });\r\n } catch (error) {\r\n console.log(error);\r\n setLoadingUserCars(false);\r\n }\r\n\r\n };\r\n const getIsExpireDate = async (date) => {\r\n\r\n try {\r\n\r\n const date1 = new Date(date);\r\n const date2 = new Date();\r\n const diffTime = date1 - date2;\r\n const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));\r\n\r\n if (diffDays <= 0 && diffTime <= 0) {\r\n return true;\r\n\r\n } else {\r\n\r\n return false;\r\n }\r\n\r\n } catch (error) {\r\n console.log(\"error:\", error);\r\n return true\r\n\r\n }\r\n\r\n }\r\n\r\n const onSliderHomePageChange = (activeIndex) => {\r\n try {\r\n \r\n setActiveId(activeIndex)\r\n var currentCar = myCars[activeIndex];\r\n\r\n\r\n\r\n if (currentCar)\r\n setVehicleDetails(currentCar);\r\n if (currentCar?.CarID)\r\n setCurentCarId(currentCar?.CarID);\r\n\r\n } catch (error) {\r\n console.log(\"onSliderHomePageChange error \", error);\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n\r\n\r\n // useEffect(async () => {\r\n // getVehicleDetails();\r\n // await initalCategories();\r\n // }, []);\r\n\r\n useEffect(async () => {\r\n console.log(\"useEffect ReservationFetch>>>>>>>>>>:\", vehicleDetails)\r\n if (vehicleDetails && vehicleDetails?.CarID)\r\n ReservationFetch();\r\n PreviousMaintenance();\r\n }, [vehicleDetails]);\r\n\r\n const [Reservation, setReservation] = useState(null);\r\n const [isLoadingReservation, setLoadingReservation] = useState(false);\r\n const [isFetchedReservation, setFetchedReservation] = useState(false);\r\n const [cachReservation, setCachReservation] = useState({});\r\n const ReservationFetch = async () => {\r\n let data = {};\r\n\r\n try {\r\n data = JSON.parse(getData(User_Data_Key, true));\r\n } catch (error) {\r\n\r\n }\r\n\r\n var userId = data?.custID ? data?.custID : 0;\r\n\r\n setLoadingReservation(true);\r\n\r\n\r\n if (cachReservation[curentCarId]) {\r\n\r\n var cr = cachReservation[curentCarId];\r\n setReservation(cr);\r\n setFetchedReservation(true);\r\n setLoadingReservation(false);\r\n } else {\r\n\r\n const Body3 = {\r\n \"name\": \"App_ReservationFetchWithVIN\",\r\n \"values\": {\r\n \"UserID\": userId.toString(),\r\n \"VIN\": curentCarId\r\n }\r\n\r\n }\r\n\r\n await axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body3, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n console.log(\"FetchTypeCart:\", response.data);\r\n setReservation(response.data);\r\n setFetchedReservation(true);\r\n setLoadingReservation(false);\r\n\r\n var cr = { ...cachReservation };\r\n cr[curentCarId] = response.data;\r\n setCachReservation(cr);\r\n })\r\n .catch(function (error) {\r\n setLoadingReservation(false);\r\n console.log(error);\r\n var cr = { ...cachReservation };\r\n cr[curentCarId] = [];\r\n setCachReservation(cr);\r\n });\r\n }\r\n\r\n\r\n\r\n }\r\n const [isLoadingContent, setLoadingContent] = useState(false);\r\n const [ReservationFilterData, setReservationFilterData] = useState([]);\r\n const [isActive, setIsActive] = useState(1);\r\n const filterReservation = async (type) => {\r\n\r\n if (!isLoadingContent) {\r\n setLoadingContent(true);\r\n setIsActive(type);\r\n\r\n if (type == 1) {\r\n\r\n let newData = [];\r\n\r\n await Reservation?.map(async a => {\r\n var ex = await getIsExpireDate(a.Orderdate)\r\n if (!ex)\r\n newData = [...newData, a];\r\n\r\n })\r\n\r\n setReservationFilterData(newData);\r\n } else {\r\n let newData = [];\r\n await Reservation?.map(async a => {\r\n var ex = await getIsExpireDate(a.Orderdate)\r\n if (ex)\r\n newData = [...newData, a];\r\n\r\n })\r\n setReservationFilterData(newData);\r\n\r\n }\r\n\r\n setLoadingContent(false);\r\n }\r\n\r\n }\r\n const [Maintenance, setMaintenance] = useState([]);\r\n const [MaintenanceDetails, setMaintenanceDetails] = useState({});\r\n const [isFetchedMaintenance, setFetchedMaintenance] = useState(false);\r\n const [isLoadingMaintenance, setLoadingMaintenance] = useState(false);\r\n const PreviousMaintenance = async () => {\r\n\r\n setLoadingMaintenance(true);\r\n\r\n const userId = JSON.parse(getData(User_Data_Key, true))?.custID?.toString() ?? 0;\r\n\r\n const Body3 = {\r\n \"name\": \"App_PreviousMaintenanceWithVIN\",\r\n \"values\": {\r\n \"UserID\": userId.toString(),\r\n \"VIN\": vehicleDetails?.CarID\r\n }\r\n\r\n }\r\n\r\n await axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body3, method: \"POST\", responseType: \"json\"\r\n })\r\n .then(function (response) {\r\n console.log(\"App_PreviousMaintenance :\", response.data);\r\n setMaintenance(response.data);\r\n setFetchedMaintenance(true)\r\n setLoadingMaintenance(false);\r\n })\r\n .catch(function (error) {\r\n setLoadingMaintenance(false);\r\n console.log(error);\r\n });\r\n\r\n\r\n }\r\n\r\n useEffect(() => {\r\n console.log(\"useEffect filterReservation:\", isActive);\r\n\r\n filterReservation(isActive);\r\n }, [isActive, Reservation]);\r\n //---------------------------------------------------\r\n // to fetch the vehicle details by passing the vehicleID\r\n const getVehicleDetails = () => {\r\n\r\n const funSiteGetVehicleDetails = fetchType === \"user\" ? \"SiteGetVehicleDetails\" : \"SiteGetVehiclePurchase\";\r\n if (car) {\r\n axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"name\": funSiteGetVehicleDetails,\r\n \"values\": {\r\n \"vehicleID\": car\r\n }\r\n }\r\n ).then(response => {\r\n const responseData = response.data[0];\r\n const modelTrans = lang == \"ar\" ? \"Ar\" : \"En\"\r\n const _vehicle = { ...vehicleDetails };\r\n _vehicle.groupName = responseData[`Group${modelTrans}`];\r\n _vehicle.modelName = responseData[`Model${modelTrans}`];\r\n _vehicle.colorImage = responseData.ColorImage;\r\n _vehicle.plateNo = responseData[`Board${modelTrans}`];\r\n _vehicle.vinNo = responseData.VIN;\r\n _vehicle.carImage = responseData.Image;\r\n _vehicle.industryYear = responseData.Model ?? '';\r\n _vehicle.inputDate = responseData.InputDate;\r\n _vehicle.brand = responseData[`BrandDescription${modelTrans}`];\r\n _vehicle.userCarName = responseData.UserCarName ?? ''\r\n intialAllPartsByGroup(responseData.BrandID, responseData.ProductGroupID, responseData.Model);\r\n console.log(\"_vehicle >>>>>>>>>>>>>>>>>>>>> :\", _vehicle);\r\n setVehicleDetails(_vehicle);\r\n initialOffers(responseData.ProductGroupID);\r\n }).catch(error => {\r\n console.log('error in fetching the vehicle details,', error);\r\n });\r\n }\r\n };\r\n //----------------------------------------------------\r\n //to fetch all the categories\r\n const initalCategories = async () => {\r\n const primaryCategoriesBody = {\r\n \"object\": \"Site_categorySP\",\r\n \"objectSettings\": {\r\n \"metaData\": false\r\n },\r\n \"option\": \"column\",\r\n \"fields\": \"GroupIDMain,DescriptionAr,DescriptionEn\"\r\n };\r\n const subPrimaryCategoriesBody = {\r\n \"object\": \"Site_SupCategory\",\r\n \"objectSettings\": {\r\n \"metaData\": false\r\n },\r\n \"option\": \"column\",\r\n \"fields\": \"GroupIDMainSup1,DescriptionAr,DescriptionEn,GroupIDMain\"\r\n };\r\n const lastSubPrimaryCategoriesBody = {\r\n \"object\": \"Site_ItemsSupCategory\",\r\n \"objectSettings\": {\r\n \"metaData\": false\r\n },\r\n \"option\": \"column\",\r\n \"fields\": \"GroupIDMainSup2,DescriptionAr,DescriptionEn,GroupIDMainSup1\"\r\n };\r\n\r\n try {\r\n const primaryCategoriesRequest = axios.request(\r\n {\r\n url: config.baseURL + 'details',\r\n data: primaryCategoriesBody, method: \"POST\", responseType: \"json\"\r\n }\r\n );\r\n\r\n const subPrimaryCategoriesRequest = axios.request(\r\n {\r\n url: config.baseURL + 'details',\r\n data: subPrimaryCategoriesBody, method: \"POST\", responseType: \"json\"\r\n }\r\n );\r\n\r\n\r\n const lastSubPrimaryCategoriesRequest = axios.request(\r\n {\r\n url: config.baseURL + 'details',\r\n data: lastSubPrimaryCategoriesBody, method: \"POST\", responseType: \"json\"\r\n }\r\n );\r\n\r\n await axios.all([primaryCategoriesRequest, subPrimaryCategoriesRequest, lastSubPrimaryCategoriesRequest])\r\n .then(axios.spread((category1, category2, category3) => {\r\n setPrimaryCategory(category1.data.ApiObjectData);\r\n setSubPrimaryCategory(category2.data.ApiObjectData);\r\n setLastSubPrimaryCategory(category3.data.ApiObjectData);\r\n })).catch(err => {\r\n console.log(err);\r\n });\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n };\r\n // filter the sub categories\r\n const handlFilterSubCategories = (option) => {\r\n try {\r\n if (option?.value == '' || option?.value == '0' || option?.value == null) {\r\n dropDownResetter(() => {\r\n setFSubPrimaryCategory([]);\r\n setFLastSubPrimaryCategory([]);\r\n setSelectedPrimaryCategory('');\r\n });\r\n return;\r\n }\r\n setSelectedPrimaryCategory(option.value);\r\n setFSubPrimaryCategory(subPrimaryCategory.filter(item => {\r\n return item.GroupIDMain == option.value\r\n }));\r\n\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n };\r\n // filter the last sub categories\r\n const handlFilterLastSubCategories = (option) => {\r\n try {\r\n if (option?.value == '' || option?.value == '0' || option?.value == null) {\r\n dropDownResetter(() => {\r\n setFLastSubPrimaryCategory([]);\r\n setSubSelectedPrimaryCategory('');\r\n });\r\n return;\r\n }\r\n setSubSelectedPrimaryCategory(option.value);\r\n setFLastSubPrimaryCategory(lastSubPrimaryCategory.filter(item => {\r\n return item.GroupIDMainSup1 == option.value\r\n }));\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n };\r\n // to intialize the parts that are base on the group and brand\r\n const intialAllPartsByGroup = (brandID, groupID, model) => {\r\n axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"name\": \"Site_FeatchPartByVehicle\",\r\n \"values\": {\r\n \"brand\": Number(brandID),\r\n \"group\": groupID,\r\n \"type\": null,\r\n \"year\": String(model)\r\n }\r\n }\r\n ).then(response => {\r\n setAllParts(response.data);\r\n setFAllParts(response.data);\r\n }).catch(error => {\r\n console.log(error);\r\n });\r\n };\r\n // to search by the dropdowns\r\n const handleOnSearch = () => {\r\n try {\r\n let filterResults = [];\r\n if ((selectedPrimaryCategory != '' && selectedPrimaryCategory != 0)\r\n && (selectedSubLastPrimaryCategory == '' || selectedSubLastPrimaryCategory == 0) && (selectedSubLastPrimaryCategory == '')) {\r\n filterResults = allParts.filter((item => {\r\n return item.CategorySPID == selectedPrimaryCategory\r\n }));\r\n } else if ((selectedPrimaryCategory != '' && selectedPrimaryCategory != 0) &&\r\n (selectedSubLastPrimaryCategory != '' && selectedSubLastPrimaryCategory != 0) && (selectedSubLastPrimaryCategory == '')) {\r\n filterResults = allParts.filter((item => {\r\n return item.CategorySPID == selectedPrimaryCategory && item.SupCategorySPID == selectedSubPrimaryCategory\r\n }));\r\n } else if ((selectedPrimaryCategory != '' && selectedPrimaryCategory != 0) &&\r\n (selectedSubLastPrimaryCategory != '' && selectedSubLastPrimaryCategory != 0) && (selectedSubLastPrimaryCategory != '')) {\r\n filterResults = allParts.filter((item => {\r\n return item.CategorySPID == selectedPrimaryCategory && item.SupCategorySPID == selectedSubPrimaryCategory && item.ItemsSupCategorySPID == selectedSubLastPrimaryCategory\r\n }));\r\n } else {\r\n filterResults = allParts;\r\n }\r\n setFAllParts(filterResults);\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n };\r\n const [favoriteProducts, setFavoriteProducts] = useState([]);\r\n useEffect(async () => {\r\n const results = await fetchUserFavorites();\r\n setFavoriteProducts(results);\r\n }, []);\r\n // to fetch the user favorites\r\n const fetchUserFavorites = async () => {\r\n let _favorites = [];\r\n try {\r\n const isLogin = getData('isAuthenticated');\r\n if (isLogin) {\r\n const { id } = JSON.parse(getData(User_Data_Key, true));\r\n const userID = Number(id.toString().split('_')[1]);\r\n const response = await axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"SiteFetchUserFavorites\",\r\n \"values\": {\r\n \"userID\": userID\r\n }\r\n }\r\n );\r\n if (response.status == 200) {\r\n const favorites = response.data;\r\n _favorites = _favorites.concat(favorites);\r\n }\r\n }\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n return _favorites;\r\n };\r\n // to fetch all the user offers\r\n const initialOffers = (groupID) => {\r\n try {\r\n axios.post(\r\n config.baseURL + 'func',\r\n {\r\n \"Name\": \"SiteFetchOffersByGroup\",\r\n \"Values\": {\r\n \"GroupID\": String(groupID)\r\n }\r\n }\r\n ).then(response => {\r\n const result = response.data;\r\n const groupResult = mapValues(groupBy(result, 'OfferType'), fList => fList.map(items => omit(items, 'OfferType')));\r\n let groupValues = {};\r\n Object.assign(groupValues, groupResult);\r\n let finalResults = [];\r\n //---------------------------------------------------------------------------- \r\n for (let item in groupValues) {\r\n const obj = { heading: '', items: [] };\r\n let title = '';\r\n const results = groupValues[item].map(item => item[`Type${trans(\"model:description\")}`]);\r\n if (results?.length > 0) {\r\n title = results[0];\r\n }\r\n obj.heading = title;\r\n obj.items = groupValues[item];\r\n finalResults.push(obj);\r\n }\r\n setOffers(finalResults);\r\n }).catch(error => {\r\n console.log(error);\r\n })\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n };\r\n\r\n\r\n const formatDateTime = (date, time) => {\r\n\r\n try {\r\n if (date) {\r\n let dateNow = new Date(date);\r\n\r\n\r\n if (time) {\r\n\r\n let timeNow = new Date(\"2023-02-26T\" + time);\r\n\r\n dateNow.setHours(timeNow.getHours(), timeNow.getMinutes(), timeNow.getSeconds());\r\n }\r\n\r\n\r\n\r\n var formatDate = { year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', hour12: true, minute: '2-digit' };\r\n\r\n if (lang.language === \"en\") {\r\n return dateNow.toLocaleDateString('en-US', formatDate);\r\n\r\n } else {\r\n return dateNow.toLocaleDateString('en-US', formatDate);\r\n // return dateNow.toLocaleDateString('ar-US', formatDate);\r\n }\r\n\r\n } else {\r\n return date;\r\n\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n return date;\r\n }\r\n };\r\n\r\n //------------------------------------------------------------------------------\r\n useEffect(() => {\r\n\r\n if (myCars?.length == 1)\r\n onSliderHomePageChange(0);\r\n }, [myCars]);\r\n\r\n //------------------------------------------------------------------------------\r\n\r\n const handelOnSlideChange = (swiperCore) => {\r\n\r\n console.log(\"swiperCore \", swiperCore);\r\n try {\r\n\r\n let swiperCoreValues = {\r\n activeIndex: 0,\r\n snapIndex: 0,\r\n previousIndex: 0,\r\n realIndex: 0,\r\n }\r\n swiperCoreValues = swiperCore;\r\n\r\n \r\n onSliderHomePageChange(swiperCore?.activeIndex);\r\n\r\n } catch (error) {\r\n\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n return (\r\n
    \r\n \r\n\r\n \r\n \r\n {myCars?.map((car, index) => {\r\n\r\n return \r\n {\r\n\r\n onSliderHomePageChange(index);\r\n \r\n }}\r\n\r\n withMoreLinke={false}\r\n key={index + 5000}\r\n inputDate={car.InputDate}\r\n showDetails={false}\r\n active ={activeId == index}\r\n id={car.CarID}\r\n img={car.Image ? car.Image : '/assets/images/eparts/default.png'}\r\n name={car[`Model${trans('model:description')}`]}\r\n brand={car[`Brand${trans('model:description')}`]}\r\n brandIcon={car.Icon ? \"data:image/png;base64,\" + car.Icon : null}\r\n brandImage={car.IconImage ? \"data:image/png;base64,\" + car.IconImage : null}\r\n link={\"/user/vehicles/privateVehicles/\" + car.CarID + \"/\" + car.FetchType}\r\n />\r\n\r\n \r\n })}\r\n \r\n \r\n {/* \r\n */}\r\n\r\n \r\n
    \r\n \r\n \r\n {trans(\"info:my-bookings\")}\r\n \r\n \r\n \r\n {trans(\"info:previous-maintenance\")}\r\n \r\n \r\n
    \r\n\r\n\r\n\r\n \r\n
    \r\n {\r\n ReservationFilterData?.map((res, index) => {\r\n return (\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n

    {lang == \"ar\" ? res?.DescriptionAr : res?.DescriptionEn}

    \r\n\r\n

    {trans(\"info:order-number\")}: {res?.ReceptionID}

    \r\n\r\n {\r\n

    {trans(\"info:booking-date\")}: {formatDateTime(res.Orderdate, res.Ordertime)}

    \r\n\r\n }\r\n\r\n\r\n

    \r\n \r\n {res?.price && }\r\n \r\n

    \r\n
    \r\n
    \r\n )\r\n })\r\n }\r\n
    \r\n
    \r\n \r\n
    \r\n {\r\n Maintenance?.map((res, index) => {\r\n return (\r\n\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n

    {res?.Description}

    \r\n\r\n

    {trans(\"info:order-number\")}: {res?.OrderID}

    \r\n\r\n {\r\n

    {trans(\"info:maintenance-date\")}: {formatDateTime(res?.CompleteDate, null)}

    \r\n\r\n }\r\n\r\n\r\n

    \r\n \r\n {res?.Price && }\r\n \r\n

    \r\n
    \r\n
    \r\n )\r\n })\r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n}","import React from 'react';\r\nconst OwnOrderContext = React.createContext();\r\nOwnOrderContext.displayName = 'OwnOrderContext';\r\nexport default OwnOrderContext;\r\n","\r\nimport { useEffect, useRef, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport SectionHeading from \"../../../components/sectionHeading\";\r\nimport { FormButton } from \"../../../components/_input/_button\";\r\nimport { DropDownInput } from \"../../../components/_input/_dropdown\";\r\nimport { DateInput } from \"../../../components/_input/_dateInput\";\r\nimport moment from 'moment';\r\nimport { Price } from \"../../../components/__simple/_price\";\r\nimport { useContext } from \"react\";\r\nimport OwnOrderContext from \"./ownOrderContext\";\r\nimport axios from \"axios\";\r\nimport config from \"../../../configuration/config.json\";\r\nimport { getData, User_Data_Key } from \"../../../utils/localStorageManager\";\r\nimport { toast } from \"react-toastify\";\r\nexport const OwnOrderHistory = ({\r\n historyTitle = '',\r\n historySubTitle = '',\r\n statusOptions = [],\r\n values = [],\r\n onClick\r\n}) => {\r\n const { t: trans } = useTranslation([\"ownOrder\", \"new\"]);\r\n let lang = localStorage.getItem(\"i18nextLng\");\r\n const [isActive, setIsActive] = useState(false);\r\n const [filterHistory, setFilterHistory] = useState({\r\n filterStatusOption: '',\r\n filterDate: ''\r\n });\r\n const [isLoading, setIsLoading] = useState(false);\r\n //-----------------------------------------------------\r\n const [activeItem, setActiveItem] = useState({\r\n key: null,\r\n status: false\r\n });\r\n //------------------------------------------------------\r\n const context = useContext(OwnOrderContext);\r\n //-----------------------------------------------------\r\n const handleOnFilter = () => {\r\n try {\r\n setIsLoading(true);\r\n if (onClick) {\r\n onClick(filterHistory);\r\n }\r\n } catch (error) {\r\n console.log('error fired once click on filter btn', error);\r\n }\r\n setIsLoading(false);\r\n };\r\n const handleOnItemChangeStatus = (id, status, CartID, Description, Total, CreatedAt, Delivery, TStatus, deliveryType) => {\r\n const val = { ...activeItem };\r\n val.key = id;\r\n val.status = status;\r\n\r\n\r\n setActiveItem(val);\r\n if (window.innerWidth < 577) {\r\n context.handleChangeParentState({ showDetailsBox: status, itemActive: status, showHistoryBox: !status, cartID: id, CID: CartID, Description: Description, Total: Total, CreatedAt: CreatedAt, Delivery: Delivery, TStatus: TStatus, deliveryMethod: deliveryType });\r\n } else {\r\n context.handleChangeParentState({ showDetailsBox: status, itemActive: status, showHistoryBox: true, cartID: id, CID: CartID, Description: Description, Total: Total, CreatedAt: CreatedAt, Delivery: Delivery, TStatus: TStatus, deliveryMethod: deliveryType });\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n\r\n\r\n if (values?.length > 0) {\r\n\r\n const item = values[0];\r\n const status= true;\r\n handleOnItemChangeStatus(item.CartID, status, item.CartID, lang === \"ar\" ? item.DescriptionAr : item.DescriptionEn, item.Total, item.CreatedAt, item.SiteDilveryID ? (lang === \"ar\" ? item.DilveryAr : item.DilveryEn) : (lang === \"ar\" ? item.siteAr : item.siteEn), lang === \"ar\" ? item.statusAr : item.statusAr, (item.SiteDilveryID ? trans('new:by_site') : trans('new:by_branch')));\r\n\r\n }\r\n\r\n }, [values])\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {\r\n return { text: (lang === 'ar' ? p.DescriptionAr : p.DescriptionEn), value: p.statusID.toString() };\r\n })]}\r\n onSelect={(option) => {\r\n const val = { ...filterHistory };\r\n val.filterStatusOption = option;\r\n setFilterHistory(val);\r\n }}\r\n />\r\n
    \r\n
    \r\n {\r\n const val = { ...filterHistory };\r\n val.filterDate = e.target.value;\r\n setFilterHistory(val);\r\n }} />\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n {\r\n values && values.map((item, index) => {\r\n return {\r\n handleOnItemChangeStatus(id, status, item.CartID, lang === \"ar\" ? item.DescriptionAr : item.DescriptionEn, item.Total, item.CreatedAt, item.SiteDilveryID ? (lang === \"ar\" ? item.DilveryAr : item.DilveryEn) : (lang === \"ar\" ? item.siteAr : item.siteEn), lang === \"ar\" ? item.statusAr : item.statusAr, (item.SiteDilveryID ? trans('new:by_site') : trans('new:by_branch')));\r\n }}\r\n />\r\n })\r\n }\r\n
    \r\n );\r\n}\r\n// component that is used to show the history item\r\nexport const OwnHistoryItem = (\r\n { key,\r\n id,\r\n orderCode = '#',\r\n orderDate,\r\n orderStatusText = '',\r\n orderStatusCode,\r\n total = 0.0,\r\n locationText = '',\r\n visualElements = 4,\r\n maxVisualElements = 4,\r\n isActive = false,\r\n onItemClick,\r\n url_payment\r\n }\r\n) => {\r\n const { t: trans } = useTranslation([\"ownOrder\"]);\r\n const lang = localStorage.getItem(\"i18nextLng\");\r\n const [file, setFile] = useState(null);\r\n const [step, setSteps] = useState(0);\r\n const handleOnItemClick = () => {\r\n if (onItemClick) {\r\n const activeStatus = !isActive;\r\n onItemClick(id, activeStatus);\r\n }\r\n };\r\n const [CartsImages, setCartImages] = useState([]);\r\n \r\n \r\n const fileRef = useRef();\r\n const handleOnCompleteBuy = (event) => {\r\n window.open(url_payment)\r\n\r\n };\r\n const handleOnUploadFile = (event) => {\r\n event.stopPropagation();\r\n if (step === 0) {\r\n fileRef.current.click();\r\n if (file == null) {\r\n setSteps(1);\r\n }\r\n } else if (step === 1) {\r\n if (file) {\r\n if (window.confirm(trans(\"new:send_transfer\") + \" \" + \"?\")) {\r\n try {\r\n const userData = JSON.parse(getData(User_Data_Key, true));\r\n const userID = userData.id.toString().split('_')[1];\r\n axios.post(\r\n config.baseURL + 'add',\r\n {\r\n \"Object\": \"SiteCartTransforms\",\r\n \"values\": {\r\n \"UserID\": Number(userID),\r\n \"CartID\": Number(id),\r\n \"TransformImage\": file\r\n }\r\n }\r\n ).then(response => {\r\n toast.success(trans(\"global:success_operation\"));\r\n }).catch(error => {\r\n console.log(error);\r\n });\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n setFile(null);\r\n }\r\n setSteps(0);\r\n }\r\n };\r\n const toBase64 = file => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => resolve(reader.result);\r\n reader.onerror = error => reject(error);\r\n });\r\n const handleChangeImage = async (event) => {\r\n const files = event.target.files;\r\n if (files.length > 0) {\r\n const fileBase64 = await toBase64(files[0]);\r\n const finalFile = fileBase64.substr(fileBase64.indexOf(',') + 1, fileBase64.length);\r\n setFile(finalFile);\r\n return;\r\n }\r\n setFile(null);\r\n };\r\n return (\r\n \r\n
    \r\n
    \r\n
    \r\n {trans(\"info:complete_buy\")}\r\n
    \r\n
    \r\n {step == 0 ? trans(\"info:select_file\") : trans(\"info:upload_file\")}\r\n {\r\n await handleChangeImage(event);\r\n }} accept=\"image/*\" style={{ display: 'none' }} ref={fileRef} />\r\n
    \r\n
    \r\n
    \r\n {orderStatusText}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n

    {orderCode}

    \r\n
    {(orderDate != null && moment(orderDate).isValid()) ? moment(orderDate).format('YYYY-MM-DD') : ''}
    \r\n
    \r\n\r\n
    \r\n
    \r\n {\r\n CartsImages.map((item, index) => {\r\n if (index < maxVisualElements)\r\n return (\r\n
    \r\n {id}\r\n
    )\r\n })\r\n }\r\n {\r\n (visualElements.length > maxVisualElements) &&\r\n
    \r\n
    2+
    \r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n
    \r\n {trans(\"ownOrder:total_amount\")}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n {trans(\"ownOrder:deleviry_place\")}\r\n
    \r\n
    \r\n {locationText}\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n );\r\n}","import { useContext } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Price } from \"../../../components/__simple/_price\";\r\nimport OwnOrderContext from '../../components/ownOrders/ownOrderContext';\r\nimport config from \"../../../configuration/config.json\";\r\nimport moment from 'moment';\r\nexport const OwnOrderDetails = ({ orderNumber = '',\r\n orderStatusText = '',\r\n orderDate = '',\r\n deliveryLocation = '',\r\n deliveryMethod = '',\r\n amount = 0,\r\n shippingPrice = 0,\r\n finalTotal = 0,\r\n orderHistory = [] }) => {\r\n const { t: trans } = useTranslation(\"ownOrder\");\r\n const lang = localStorage.getItem(\"i18nextLng\");\r\n const dir = lang == 'en' ? 'left' : 'right';\r\n const { handleChangeParentState } = useContext(OwnOrderContext);\r\n return (\r\n
    \r\n
    \r\n
    \r\n {trans(\"ownOrder:order_no\")} {orderNumber}\r\n
    \r\n
    \r\n
    {\r\n handleChangeParentState({ showDetailsBox: false, showHistoryBox: true });\r\n }}>\r\n \r\n {trans(\"ownOrder:back\")}\r\n
    \r\n
    \r\n {orderStatusText}\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    {trans(\"ownOrder:order-record\")}

    \r\n
    \r\n {\r\n orderHistory.map((item, index) => {\r\n return
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n

    {lang === 'ar' ? item.DescriptionAr : item.DescriptionEn}

    \r\n
    \r\n {new moment(item.Createdat).format('yyyy-MM-DD')}\r\n
    \r\n
    \r\n
    \r\n
    \r\n })\r\n }\r\n
    \r\n
    \r\n
    \r\n

    {trans(\"ownOrder:order_date\")}

    \r\n
    \r\n {new moment(orderDate).format('yyyy-MM-DD')}\r\n {/* |\r\n 2021 - 5 -12
    */}\r\n
    \r\n
    \r\n

    {trans(\"ownOrder:deleviry_place\")}

    \r\n
    {deliveryLocation}
    \r\n
    \r\n
    \r\n

    {trans(\"ownOrder:deleviry_method\")}

    \r\n
    {deliveryMethod}
    \r\n
    \r\n
    \r\n
    \r\n

    {trans(\"ownOrder:payment\")}

    \r\n
    \r\n

    {trans(\"ownOrder:amount\")}

    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n

    {trans(\"ownOrder:shipping\")}

    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n

    {trans(\"ownOrder:total\")}

    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\nconst lang = localStorage.getItem(\"i18nextLng\");\r\n\r\n\r\nexport const OwnVehicleOrders = ({ vehicles = [] }) => {\r\n const { t: trans } = useTranslation(\"ownOrder\");\r\n if (vehicles?.length > 0) {\r\n return (\r\n
    \r\n
    \r\n

    \r\n {trans(\"ownOrder:vehicle\")}\r\n

    \r\n {\r\n vehicles.map((item, index) => {\r\n return
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n

    \r\n {trans(\"ownOrder:vehicle_type\")}\r\n

    \r\n
    \r\n {lang === \"ar\" ? item.TypeCarAr : item.TypeCarEn}\r\n
    \r\n
    \r\n
    \r\n

    \r\n {trans(\"ownOrder:vehicle_color\")}\r\n

    \r\n
    \r\n {lang === \"ar\" ? item.colorsAr : item.colorsEn}\r\n
    \r\n
    \r\n
    \r\n

    \r\n {trans(\"ownOrder:quantity\")}\r\n

    \r\n
    \r\n {item.QTY}\r\n
    \r\n
    \r\n
    \r\n

    \r\n {trans(\"ownOrder:amount\")}\r\n

    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n })\r\n }\r\n
    \r\n
    \r\n )\r\n } else {\r\n return <>\r\n }\r\n\r\n}\r\n\r\nexport const OwnSpareOrders = ({ values = [], onEvaluate }) => {\r\n const { t: trans } = useTranslation(\"ownOrder\");\r\n if (values?.length > 0) {\r\n return (\r\n
    \r\n
    \r\n

    \r\n {trans(\"ownOrder:spare_parts\")}\r\n

    \r\n {\r\n values.map((item, index) => {\r\n return
    \r\n
    \r\n \r\n
    {\r\n if (onEvaluate) {\r\n onEvaluate(item.ProductID, true)\r\n }\r\n }} className=\"own-order-vehicle-box-btn p-2 nice-pointer nice-flex nice-flex-center text-14 nice-absolute\">\r\n تقيم المنتج\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n {trans(\"ownOrder:spare_parts\")}\r\n

    \r\n
    \r\n {lang === 'ar' ? item.PartAr : item.Parten}\r\n
    \r\n
    \r\n
    \r\n

    \r\n {trans(\"ownOrder:quantity\")}\r\n

    \r\n
    \r\n {item.QTY}\r\n
    \r\n
    \r\n
    \r\n

    \r\n {trans(\"ownOrder:amount\")}\r\n

    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n })\r\n }\r\n
    \r\n
    \r\n )\r\n } else {\r\n return <>\r\n }\r\n}\r\n\r\n\r\nexport const OwnSDCOrders = ({ values = [], onEvaluate }) => {\r\n const { t: trans } = useTranslation(\"ownOrder\");\r\n if (values?.length > 0) {\r\n return (\r\n
    \r\n
    \r\n

    \r\n {trans(\"ownOrder:compain_parts\")}\r\n

    \r\n {\r\n values.map((item, index) => {\r\n return
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n

    \r\n {trans(\"ownOrder:spare_parts\")}\r\n

    \r\n
    \r\n {lang === 'ar' ? item.SDCAr : item.SDCen}\r\n
    \r\n
    \r\n
    \r\n

    \r\n {trans(\"ownOrder:quantity\")}\r\n

    \r\n
    \r\n {item.QTY}\r\n
    \r\n
    \r\n
    \r\n

    \r\n {trans(\"ownOrder:amount\")}\r\n

    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n })\r\n }\r\n
    \r\n
    \r\n )\r\n } else {\r\n return <>\r\n }\r\n\r\n}\r\n\r\n\r\nexport const OwnPGTOrders = ({ values = [], onEvaluate }) => {\r\n const { t: trans } = useTranslation(\"ownOrder\");\r\n if (values?.length > 0) {\r\n return (\r\n
    \r\n
    \r\n

    \r\n {trans(\"ownOrder:package_parts\")}\r\n

    \r\n {\r\n values.map((item, index) => {\r\n return
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n

    \r\n {trans(\"ownOrder:spare_parts\")}\r\n

    \r\n
    \r\n {lang === 'ar' ? item.PGTAr : item.PGTen}\r\n
    \r\n
    \r\n
    \r\n

    \r\n {trans(\"ownOrder:quantity\")}\r\n

    \r\n
    \r\n {item.QTY}\r\n
    \r\n
    \r\n
    \r\n

    \r\n {trans(\"ownOrder:amount\")}\r\n

    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n })\r\n }\r\n
    \r\n
    \r\n )\r\n } else {\r\n return <>\r\n }\r\n\r\n}\r\n\r\nexport const OwnServiceOrders = ({ values = [] }) => {\r\n const { t: trans } = useTranslation(\"ownOrder\");\r\n if (values?.length > 0) {\r\n return (\r\n
    \r\n
    \r\n

    \r\n {trans(\"ownOrder:Service\")}\r\n

    \r\n {\r\n values.map((item, index) => {\r\n return
    \r\n
    \r\n
    \r\n

    \r\n {trans(\"ownOrder:Servic\")}\r\n

    \r\n
    \r\n {lang === 'ar' ? item.PartAr : item.Parten}\r\n
    \r\n
    \r\n
    \r\n

    \r\n {trans(\"ownOrder:amount\")}\r\n

    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n })\r\n }\r\n
    \r\n
    \r\n )\r\n } else {\r\n return <>\r\n }\r\n\r\n}\r\n","import { useState, useContext, useEffect } from \"react\";\r\nimport { OwnOrderHistory } from \"./components/ownOrders/ownHistory\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport OwnOrderContext from './components/ownOrders/ownOrderContext';\r\nimport Popup from './popup';\r\nimport { formValidate, GetMessages} from \"../utils/validation\";\r\nimport {TextArea} from '../components/_input/_textArea';\r\nimport {PartRating} from \"../pages/eparts/components/rate\";\r\nimport Joi from 'joi';\r\nimport _ from 'lodash';\r\nimport {\r\n OwnOrderDetails,\r\n OwnPGTOrders,\r\n OwnSDCOrders, OwnServiceOrders,\r\n OwnSpareOrders,\r\n OwnVehicleOrders\r\n} from \"./components/ownOrders/ownOrderDetails\";\r\nimport { FormButton } from \"../components/_input/_button\";\r\nimport axios from \"axios\";\r\nimport config from \"../configuration/config.json\";\r\nimport {getData, User_Data_Key} from \"../utils/localStorageManager\";\r\nimport { toast } from \"react-toastify\";\r\nimport moment, { isMoment } from \"moment\";\r\nconst UserOrdersPage = () => {\r\n const { t: trans } = useTranslation([\"ownOrder\",\"info\",\"error\",\"form\",\"global\"]);\r\n const lang = localStorage.getItem(\"i18nextLng\");\r\n const languageDir = 'language-' + lang;\r\n //------------------------------------------------\r\n const OwnContext = useContext(OwnOrderContext);\r\n const [parentBox, setParnetBox] = useState({\r\n itemActive: false,\r\n showHistoryBox: true,\r\n showDetailsBox: false\r\n });\r\n const [Carts, setCarts] = useState([]);\r\n const [fCarts,setFCarts] = useState([]);\r\n const [userID,setUserID] = useState(null);\r\n const [CartsTrans, setCartTrans] = useState([]);\r\n const [CartsTrac, setCartTrac] = useState([]);\r\n const [CartStatus, setCartStatus] = useState([]);\r\n const [evaluatePopupShow,setEvaluatePopupShow] = useState(false);\r\n const [CartInfo,setcartInfo]=useState({status:'',ID:0,Total:0,Description:0,CreatedAt:'',shippingPrice:0,deliveryLocation:'' ,deliveryMethod : ''});\r\n const [sparePartProductID,setSparePartProductID] = useState(null);\r\n const [evaluation,SetEvaluation] = useState({\r\n stars:0,\r\n comment:''\r\n });\r\n const schema = Joi.object({\r\n comment: Joi.string().required().messages(GetMessages())\r\n });\r\n const [error,setError] = useState({});\r\n //------------------------------------------------\r\n const handleChangeParentState = (data) => {\r\n \r\n\r\n console.log(\"handleChangeParentState:\",data);\r\n const currentValue=CartInfo;\r\n currentValue.ID=data.CID;\r\n currentValue.CreatedAt=data.CreatedAt;\r\n currentValue.status=data.TStatus;\r\n currentValue.Total=data.Total;\r\n currentValue.Description=data.Description;\r\n currentValue.shippingPrice=data.shippingPrice;\r\n currentValue.deliveryLocation=data.Delivery;\r\n currentValue.deliveryMethod = data.deliveryMethod;\r\n setcartInfo(currentValue);\r\n fetchMycartTrans(data);\r\n fetchMycartTracing(data);\r\n \r\n let currentState = { ...parentBox, ...data };\r\n setParnetBox(currentState);\r\n };\r\n const handleWindowResize = () => {\r\n const currentValue = { ...parentBox };\r\n if (window.innerWidth < 577) {\r\n currentValue.showHistoryBox = true;\r\n currentValue.showDetailsBox = false;\r\n } else {\r\n if (parentBox.itemActive) {\r\n currentValue.showDetailsBox = true;\r\n } else {\r\n currentValue.showDetailsBox = false;\r\n }\r\n }\r\n handleChangeParentState(currentValue);\r\n };\r\n const handleEvaluatePopup =(data,state)=>{\r\n setError({});\r\n SetEvaluation({\r\n stars:0,\r\n comment:''\r\n });\r\n setEvaluatePopupShow(state);\r\n setSparePartProductID(data);\r\n };\r\n //-----------------------------------------------\r\n function fetchMycart(ID){\r\n const Body= {\r\n \"name\":\"Site_FeatchMyRequests\",\r\n \"values\":{\r\n \"userID\":parseInt(ID)\r\n }}\r\n if(ID)\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method:\"POST\",responseType:\"json\"\r\n })\r\n .then(function (response) {\r\n // console.log(\"setFCarts:\",response.data);\r\n setTimeout(setCarts(response.data),1000);\r\n setTimeout(setFCarts(response.data),1000);\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n\r\n\r\n\r\n }\r\n function fetchMycartTrans({cartID}){\r\n const Body= {\r\n \"name\":\"site_featchTransCarts\",\r\n \"values\":{\r\n \"CartID\":Number(cartID)\r\n }}\r\n if(cartID)\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method:\"POST\",responseType:\"json\"\r\n })\r\n .then(function (response) {\r\n // console.log(response.data.ApiObjectData);\r\n setTimeout(setCartTrans(response.data),1000);\r\n\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n\r\n\r\n\r\n }\r\n function fetchMycartTracing({cartID}){\r\n const Body= {\r\n \"name\":\"Site_GetTrackingOFCart\",\r\n \"values\":{\r\n \"CartID\":Number(cartID)\r\n }}\r\n if(cartID)\r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method:\"POST\",responseType:\"json\"\r\n })\r\n .then(function (response) {\r\n // console.log(response.data.ApiObjectData);\r\n setTimeout(setCartTrac(response.data),1000);\r\n\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n\r\n\r\n\r\n } \r\n function fetchCartStatus(){\r\n const Body= {\r\n \"name\":\"site_fetchStatusCart\"\r\n }\r\n \r\n axios.request({\r\n url: config.baseURL + 'func',\r\n data: Body, method:\"POST\",responseType:\"json\"\r\n })\r\n .then(function (response) {\r\n // console.log(response.data.ApiObjectData);\r\n setTimeout(setCartStatus(response.data),1000);\r\n\r\n })\r\n .catch(function (error) {\r\n console.log(error);\r\n });\r\n\r\n\r\n\r\n }\r\n // to set the evaulation details on the spare part product\r\n const handleSendEvaluation = ()=>{\r\n try{\r\n const result = formValidate(schema,evaluation);\r\n setError(result);\r\n if(sparePartProductID){\r\n if(Object.keys(result).length === 0){\r\n const {stars , comment} = evaluation;\r\n axios.post(\r\n config.baseURL + 'add',\r\n {\r\n \"object\":\"SparePartsEvalutions\",\r\n \"values\":{\r\n \"ProductID\":sparePartProductID,\r\n \"WebUserID\":Number(userID),\r\n \"StarsCount\":stars,\r\n \"Comment\":_.trim(comment)\r\n }\r\n }\r\n ).then(response=>{\r\n if(response.status == 201){\r\n handleEvaluatePopup(null,false);\r\n toast.success(trans(\"global:success_operation\"));\r\n }\r\n }).catch(err=>{\r\n toast.error(trans(\"error:unknown_failure\"));\r\n });\r\n }\r\n }\r\n }catch(err){\r\n console.log(err);\r\n } \r\n };\r\n // to filter the history item\r\n const handleFilterHistoryItems = (value)=>{\r\n try{\r\n const {filterStatusOption,filterDate} = value;\r\n let _fValues = Carts;\r\n if(filterStatusOption){\r\n _fValues = Carts.filter(item=>{\r\n return item.statusId === Number(filterStatusOption)\r\n });\r\n setFCarts(_fValues);\r\n }else{\r\n setFCarts(Carts); \r\n }\r\n if(filterDate){\r\n _fValues = Carts.filter(item=>{\r\n return new moment(item.CreatedAt).format('yyyy-MM-DD') === new moment().format('yyyy-MM-DD') \r\n });\r\n setFCarts(_fValues);\r\n }\r\n console.log(_fValues);\r\n }catch(error){\r\n console.log(error);\r\n }\r\n };\r\n useEffect(() => {\r\n try{\r\n const cleanData = JSON.parse(getData(User_Data_Key,true));\r\n const user_id = cleanData.id.toString().split('_')[1];\r\n window.addEventListener('resize', handleWindowResize);\r\n fetchMycart(user_id);\r\n setUserID(user_id);\r\n fetchCartStatus();\r\n return () => window.removeEventListener('resize', handleWindowResize);\r\n }catch(err){\r\n console.log(err);\r\n }\r\n }, []);\r\n return (\r\n \r\n
    \r\n \r\n
    \r\n \r\n a.CartItemsTypeID===1)} />\r\n a.CartItemsTypeID===2)} onEvaluate={handleEvaluatePopup}/>\r\n a.CartItemsTypeID===3)}/>\r\n a.CartItemsTypeID===4)} />\r\n a.CartItemsTypeID===7)} />\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n

    {trans(\"global:what_elavoution\")}

    \r\n {\r\n handleEvaluatePopup(null,false);\r\n }}>×\r\n
    \r\n
    \r\n {\r\n const val = {...evaluation};\r\n val.stars = stars;\r\n SetEvaluation(val);\r\n }}\r\n />\r\n
    \r\n
    \r\n