| Current Path : /home/users/unlimited/www/ondemand.codeskitter.site/build/static/js/ |
| Current File : /home/users/unlimited/www/ondemand.codeskitter.site/build/static/js/70.92c3ecca.chunk.js.map |
{"version":3,"file":"static/js/70.92c3ecca.chunk.js","mappings":"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","sources":["Components/Reusable/Sections/Slider.jsx","Components/Reusable/Sections/Category.jsx","Components/Reusable/Sections/CategoriesSection.jsx","Components/Reusable/Sections/ProviderSection.jsx","Components/Reusable/Sections/SubCategory.jsx","Components/Reusable/Sections/SubCategories.jsx","Components/Reusable/Sections/RecentBookings.jsx","Components/Reusable/Sections/RecentBookingsOnGoingOrder.jsx","view/Home.jsx","Pages/Home.tsx","Components/Modals/ModalMap.js"],"sourcesContent":["import {\n Box,\n Button,\n Container,\n Divider,\n Paper,\n TextField,\n Skeleton,\n Autocomplete,\n IconButton,\n} from \"@mui/material\";\nimport React, { useRef, useEffect, useState } from \"react\";\nimport { Swiper, SwiperSlide } from \"swiper/react\";\nimport { Search } from \"@mui/icons-material\";\nimport { useTheme } from \"@emotion/react\";\nimport toast from \"react-hot-toast\";\nimport { useNavigate } from \"react-router\";\nimport slugify from \"slugify\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport {\n locationAddressData,\n setLatitude,\n setLongitude,\n setModalOpen,\n} from \"../../../redux/Location\";\nimport { getFormattedAddress } from \"../../../util/Helper\";\nimport ModalMap from \"../../Modals/ModalMap\";\nimport { useLoadScript } from \"@react-google-maps/api\";\nimport { MAP_API } from \"../../../config/config\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { t } from \"i18next\";\nimport \"swiper/css\";\nimport \"swiper/css/navigation\";\nimport { Link } from \"react-router-dom\";\nimport { Navigation, Autoplay } from \"swiper/modules\";\nimport api from \"../../../API/apiCollection\";\n\nconst libraries = [\"places\"];\n\nconst SwiperHome = ({ sliderData, loading }) => {\n // Handle slide navigation logic\n const swiperRef = useRef(null);\n const inputRef = useRef(null);\n const [open, setOpen] = useState(false);\n const dispatch = useDispatch();\n const location = useSelector((state) => state.Location);\n const theme = useTheme();\n const navigate = useNavigate();\n const [inputValue, setInputValue] = useState(location.locationAddress || \"\");\n const [isFirstSlide, setIsFirstSlide] = useState(true);\n const [isLastSlide, setIsLastSlide] = useState(false);\n const [suggestions, setSuggestions] = useState([]);\n const [providerSearchValue, setProviderSearchValue] = useState(\"\");\n const { isLoaded, loadError } = useLoadScript({\n googleMapsApiKey: MAP_API,\n libraries,\n });\n\n const fetchLocationName = (lat, lng) => {\n getFormattedAddress(lat, lng).then((res) => {\n dispatch(locationAddressData(res));\n });\n };\n\n const handleMapData = async (value) => {\n try {\n if (!value) return; // Early return if description is falsy\n try {\n const response = await api.getPlacesForWebApi({ address: value });\n const results = response?.data?.data.results[0];\n if (results) {\n const { lat, lng } = results.geometry.location;\n dispatch(setLatitude(lat));\n dispatch(setLongitude(lng));\n fetchLocationName(lat, lng);\n dispatch(setModalOpen(true));\n } else {\n toast.error(\"Pick another Location\");\n }\n } catch (error) {\n console.log(\"error\", error);\n }\n } catch (error) {\n console.error(error);\n // Handle error appropriately here, e.g., show an error message to the user\n }\n };\n\n const handleSearchInputChange = (event) => {\n const { value } = event.target;\n setProviderSearchValue(value);\n };\n\n useEffect(() => {\n if (isLoaded && !loadError) {\n const autocompleteService =\n new window.google.maps.places.AutocompleteService();\n\n const handleInputChange = (event) => {\n const value = event.target.value;\n setInputValue(value);\n\n if (value) {\n autocompleteService.getPlacePredictions(\n { input: value },\n (predictions, status) => {\n if (status === window.google.maps.places.PlacesServiceStatus.OK) {\n setSuggestions(predictions);\n } else {\n setSuggestions([]);\n }\n }\n );\n } else {\n setSuggestions([]);\n }\n };\n\n const inputElement = inputRef.current;\n\n if (inputElement) {\n inputElement.addEventListener(\"input\", handleInputChange);\n }\n\n return () => {\n if (inputElement) {\n inputElement.removeEventListener(\"input\", handleInputChange);\n }\n };\n }\n }, [isLoaded, loadError]);\n\n const handleSuggestionClick = (suggestion) => {\n const { description } = suggestion;\n setInputValue(description);\n setSuggestions([]);\n handleMapData(description);\n };\n\n useEffect(() => {\n if (location.modalOpen) {\n setOpen(true);\n }\n // eslint-disable-next-line\n }, [location.modalOpen]);\n\n if (loadError) {\n return <div>Error loading Google Maps</div>;\n }\n\n const handleSearch = (e) => {\n if (e.key === \"Enter\" || e.keyCode === 13 || e.type === \"click\") {\n // Check if Enter key is pressed\n try {\n e.preventDefault(); // Prevent default form submission behavior\n if (providerSearchValue !== \"\") {\n navigate(\n \"/search-and-provider/\" +\n slugify(providerSearchValue, { lower: true })\n );\n }\n } catch (error) {\n console.log(error);\n }\n }\n };\n\n const handleCustomPrev = (e) => {\n e.preventDefault(); // Prevent default behavior of the swiper button\n swiperRef.current.swiper.slidePrev(); // Move to the previous slide manually\n };\n\n const handleCustomNext = (e) => {\n e.preventDefault(); // Prevent default behavior of the swiper button\n swiperRef.current.swiper.slideNext(); // Move to the next slide manually\n };\n\n const handleSlideChange = (swiper) => {\n setIsFirstSlide(swiper.isBeginning);\n setIsLastSlide(swiper.isEnd);\n };\n return (\n <>\n <Box display={{ md: \"block\" }}>\n <Container sx={{ my: 5 }} className=\"mainContainer homeSlider\">\n <Box\n position={\"relative\"}\n mt={5}\n overflow={\"hidden\"}\n borderRadius={\"10px\"}\n className=\"object-fit\"\n sx={{ maxWidth: { sx: \"200px\", md: \"100%\" } }}\n >\n <Swiper\n ref={swiperRef} // Attach the ref here\n navigation={false}\n modules={[Autoplay]}\n className=\"mySwiper\"\n autoplay={false}\n onSlideChange={handleSlideChange}\n >\n {loading ? (\n <Skeleton\n variant=\"rectangular\"\n height={\"500px\"}\n width={\"100%\"}\n />\n ) : (\n <Box>\n {sliderData &&\n sliderData.map((response) => {\n const type = response.type;\n const slug = slugify(response?.provider_name, {\n lower: true, // Convert the slug to lowercase\n });\n return (\n <SwiperSlide key={response?.id}>\n {type === \"provider\" ? (\n <Link\n to={`/providers/services/${response?.type_id}/${slug}`}\n >\n <Box\n component={\"img\"}\n src={response?.slider_web_image}\n className=\"homeSliderImage\"\n width={\"100%\"}\n sx={{\n borderRadius: { xs: \"10px\" },\n objectFit: \"cover\",\n }}\n />\n </Link>\n ) : type === \"Category\" ? (\n <Link\n to={`/categories/${\n response?.category_parent_id === \"0\"\n ? response.type_id\n : response.category_parent_id\n }/${slugify(response?.category_name, {\n lower: true,\n })}`}\n >\n <Box\n component={\"img\"}\n src={response?.slider_web_image}\n className=\"homeSliderImage\"\n width={\"100%\"}\n sx={{\n borderRadius: { xs: \"10px\" },\n objectFit: \"cover\",\n }}\n />\n </Link>\n ) : type === \"url\" ? (\n <a\n href={response?.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <Box\n component={\"img\"}\n src={response?.slider_web_image}\n className=\"homeSliderImage\"\n width={\"100%\"}\n sx={{\n borderRadius: { xs: \"10px\" },\n objectFit: \"cover\",\n }}\n />\n </a>\n ) : (\n <a\n href={response?.url}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <Box\n component={\"img\"}\n src={response?.slider_web_image}\n className=\"homeSliderImage\"\n width={\"100%\"}\n sx={{\n borderRadius: { xs: \"10px\" },\n objectFit: \"cover\",\n }}\n />\n </a>\n )}\n </SwiperSlide>\n );\n })}\n </Box>\n )}\n </Swiper>\n {/* Custom Navigation Buttons */}\n <button\n onClick={handleCustomPrev} // Use the custom navigation handler for the previous button\n className={`swiper-button-prev ${isFirstSlide ? \"disable\" : \"\"}`}\n disabled={isFirstSlide} // Disable the previous button if it's the first slide\n ></button>\n <button\n onClick={handleCustomNext} // Use the custom navigation handler for the next button\n className={`swiper-button-next ${isLastSlide ? \"disable\" : \"\"}`}\n disabled={isLastSlide} // Disable the next button if it's the last slide\n ></button>\n </Box>\n <Box\n sx={{\n marginTop: {\n xs: \"20px\",\n md: \"-20px\",\n },\n }}\n alignItems={\"center\"}\n justifyContent={\"center\"}\n display={\"flex\"}\n position={\"relative\"}\n >\n <Paper\n component=\"form\"\n className=\"swiper-paper\"\n sx={{\n backgroundColor: theme.palette.background.input,\n }}\n >\n <Autocomplete\n sx={{ width: \"100%\" }}\n freeSolo\n options={suggestions.map(\n (suggestion) => suggestion.description\n )}\n clearIcon={\n <IconButton\n sx={{\n width: \"1.5rem\",\n height: \"1.5rem\",\n }}\n >\n <CloseIcon />\n </IconButton>\n }\n renderInput={(params) => (\n <TextField\n {...params}\n variant=\"standard\"\n inputRef={inputRef}\n onChange={(e) => setInputValue(e.target.value)}\n placeholder={\"Search Location, Area or City\"}\n InputProps={{\n ...params.InputProps,\n disableUnderline: true,\n }}\n />\n )}\n inputValue={inputValue}\n onInputChange={(event, newInputValue) => {\n setInputValue(newInputValue);\n }}\n onChange={(event, value) => {\n const selectedSuggestion = suggestions.find(\n (suggestion) => suggestion.description === value\n );\n if (selectedSuggestion) {\n handleSuggestionClick(selectedSuggestion);\n }\n }}\n />\n <Divider\n className=\"swiper-input-divider\"\n sx={{ height: \"28px\" }}\n orientation=\"vertical\"\n />\n <Box className=\"searchbar_customn\">\n <TextField\n variant=\"standard\"\n className=\"swiper-input-search\"\n sx={{ width: { xs: \"auto\", md: \"500px\" }, pl: 1 }}\n onChange={(e) => handleSearchInputChange(e)}\n placeholder={t(\"search_services_provider\")}\n InputProps={{\n type: \"search\",\n disableUnderline: true,\n onKeyDown: handleSearch, // Attach the handleSearch function here\n }}\n />\n <Button\n startIcon={<Search />}\n size=\"small\"\n variant=\"contained\"\n sx={{ textTransform: \"none\" }}\n className=\"swiper-button search-btn\"\n onClick={handleSearch}\n ></Button>\n </Box>\n </Paper>\n </Box>\n </Container>\n </Box>\n {open && (\n <ModalMap\n open={open}\n setOpen={setOpen}\n lat={location.lat}\n lang={location.lng}\n redirect={false}\n />\n )}\n </>\n );\n};\n\nexport default SwiperHome;\n","import { Box, Typography, useTheme } from \"@mui/material\";\nimport React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport slugify from \"slugify\";\n\nconst Category = ({ category }) => {\n const slug = slugify(category.name, { lower: true });\n const theme = useTheme();\n\n return (\n <Box\n component={Link}\n to={\"/categories/\" + category.id + \"/\" + slug}\n sx={{\n textDecoration: \"none\",\n \"&:hover\": {\n // Change the color of Typography when hovering\n \"& .MuiTypography-root\": {\n color: theme?.palette?.primary?.main,\n },\n },\n }}\n >\n <Box className=\"category-box\" borderColor={theme.palette.text.secondary}>\n <Box className=\"category-img-box\">\n <Box\n component={\"img\"}\n src={category.category_image}\n />\n </Box>\n <Typography\n color={theme.palette.text.secondary}\n // Set fontWeight to 800\n sx={{ py: \"12px\", fontSize: \"14px\", fontWeight: \"800 !important\" }} // Apply !important via sx prop\n >\n {category.name}\n </Typography>\n </Box>\n </Box>\n );\n};\n\nexport default Category;\n","import {\n Box,\n Button,\n Container,\n Divider,\n Link,\n Typography,\n} from \"@mui/material\";\nimport React, { useState } from \"react\";\nimport { Swiper, SwiperSlide } from \"swiper/react\";\nimport { Navigation, Pagination } from \"swiper/modules\";\nimport \"swiper/css\";\nimport { useTheme } from \"@emotion/react\";\nimport { t } from \"i18next\";\nimport ArrowBackIosIcon from \"@mui/icons-material/ArrowBackIosNew\";\nimport ArrowForwardIosIcon from \"@mui/icons-material/ArrowForwardIos\";\nimport Category from \"./Category\";\nimport { SkeletonSwiperSlide } from \"./Skeletons\";\nimport { useNavigate } from \"react-router\";\n\nconst CategoriesSection = ({ categories, loading }) => {\n const navigate = useNavigate();\n const [swiper, setSwiper] = useState(null);\n const theme = useTheme();\n // Function to handle sliding to the next slide\n const handleNextSlide = () => {\n if (swiper) {\n swiper.slideNext();\n }\n };\n\n // Function to handle sliding to the previous slide\n const handlePrevSlide = () => {\n if (swiper) {\n swiper.slidePrev();\n }\n };\n\n return (\n <Box sx={{ background: theme.palette.background.box, py: 2 }}>\n <Container className=\"mainContainer\">\n <Box>\n <Box\n display={\"flex\"}\n sx={{ my: 1 }}\n justifyContent={\"space-between\"}\n alignItems={\"center\"}\n >\n <Typography\n fontWeight={\"bold\"}\n sx={{\n fontSize: theme.palette.fonts.h2,\n typography: { md: \"h5\", xs: \"body1\" },\n }}\n >\n {t(\"categories\")}\n </Typography>\n {categories?.length > 6 ? (\n <Typography sx={{ typography: { md: \"body\", xs: \"body1\" } }}>\n <Link\n href=\"/categories\"\n underline=\"none\"\n sx={{ color: theme.palette.color.secondary, fontWeight: 700 }}\n onClick={(e) => {\n e.preventDefault();\n navigate(\"/categories\");\n }}\n >\n {t(\"view_all\")}\n </Link>\n </Typography>\n ) : null}\n </Box>\n\n <Divider />\n\n <Swiper\n className=\"myslider h-auto\"\n pagination={{\n type: \"progressbar\",\n }}\n slidesPerView={5}\n freeMode={true}\n modules={[Pagination, Navigation]}\n onSwiper={(s) => {\n setSwiper(s);\n }}\n breakpoints={{\n 0: {\n slidesPerView: 1,\n spaceBetween: 0,\n },\n 640: {\n slidesPerView: 2,\n spaceBetween: 20,\n },\n 768: {\n slidesPerView: 3,\n spaceBetween: 30,\n },\n 1024: {\n slidesPerView: 4,\n spaceBetween: 10,\n },\n 1200: {\n slidesPerView: 5,\n spaceBetween: 0,\n },\n 1400: {\n slidesPerView: 6,\n spaceBetween: 0,\n },\n }}\n >\n {loading\n ? // Render Skeletons when loading is true\n Array.from(Array(5).keys()).map((index) => (\n <SwiperSlide key={index}>\n <SkeletonSwiperSlide />\n </SwiperSlide>\n ))\n : categories?.map((category) => {\n return (\n <SwiperSlide\n key={category.id}\n className=\"display-flex just-space-around\"\n >\n <Box mt={4}>\n <Category category={category} />\n </Box>\n </SwiperSlide>\n );\n })}\n </Swiper>\n {categories?.length > 6 ? (\n <Box\n display={\"flex\"}\n sx={{ my: 3 }}\n gap={2}\n width={\"100%\"}\n justifyContent={\"center\"}\n alignContent={\"center\"}\n className=\"categoryNavigationBtns\"\n >\n <Button\n aria-label=\"Previous\"\n variant=\"contained\"\n size=\"small\"\n color=\"inherit\"\n className=\"categorySwiperBtn\"\n sx={{\n borderRadius: \"10px\",\n minWidth: \"40px\",\n backgroundColor: \"#F2F1F6\",\n \"&:hover\": {\n backgroundColor: \"#F2F1F6\",\n textDecoration: \"none\",\n },\n }}\n onClick={() => handlePrevSlide()}\n >\n <ArrowBackIosIcon sx={{ color: \"black\" }} size=\"small\" />\n </Button>\n <Button\n aria-label=\"Next\"\n variant=\"contained\"\n size=\"small\"\n color=\"inherit\"\n className=\"categorySwiperBtn\"\n sx={{\n borderRadius: \"10px\",\n minWidth: \"40px\",\n py: 1,\n backgroundColor: \"#F2F1F6\",\n \"&:hover\": {\n backgroundColor: \"#F2F1F6\",\n textDecoration: \"none\",\n },\n }}\n onClick={() => handleNextSlide()}\n >\n <ArrowForwardIosIcon sx={{ color: \"black\" }} size=\"small\" />\n </Button>\n {/* <span className=\"previous-next-btn\">\n </span> */}\n </Box>\n ) : null}\n </Box>\n </Container>\n </Box>\n );\n};\n\nexport default CategoriesSection;\n","import {\n Box,\n Button,\n Container,\n Divider,\n Skeleton,\n Typography,\n} from \"@mui/material\";\nimport \"swiper/css\";\nimport { useTheme } from \"@emotion/react\";\nimport Partner from \"./Partner\";\nimport { useState } from \"react\";\nimport { Swiper, SwiperSlide } from \"swiper/react\";\nimport { Navigation, Pagination } from \"swiper/modules\";\nimport ArrowBackIosIcon from \"@mui/icons-material/ArrowBackIosNew\";\nimport ArrowForwardIosIcon from \"@mui/icons-material/ArrowForwardIos\";\n\nconst ProviderSection = ({ Provider, loading, isHome = false }) => {\n const [swiper, setSwiper] = useState(null);\n const theme = useTheme();\n // Function to handle sliding to the next slide\n const handleNextSlide = () => {\n if (swiper) {\n swiper.slideNext();\n }\n };\n\n // Function to handle sliding to the previous slide\n const handlePrevSlide = () => {\n if (swiper) {\n swiper.slidePrev();\n }\n };\n\n return (\n <div>\n <>\n <Box sx={{ background: theme.palette.background.box }}>\n <Container className=\"mainContainer servicesSections\">\n <Box\n key={Provider.key}\n sx={{ padding: \"30px 0px\", margin: \"30px 0px\" }}\n >\n {loading ? (\n <Skeleton variant=\"rectangular\" width={200} height={50} />\n ) : (\n <Box\n display={\"flex\"}\n justifyContent={\"space-between\"}\n alignItems={\"center\"}\n >\n <Box>\n <Typography\n sx={{\n typography: { md: \"h5\", xs: \"body1\" },\n fontWeight: \"600 !important\",\n }}\n mt={1}\n >\n {Provider.title}\n </Typography>\n </Box>\n </Box>\n )}\n\n <Divider sx={{ my: 1 }} />\n <Box\n pb={\"12px\"}\n mt={2}\n mb={2}\n sx={{\n mr: { xs: 0 }, // Set mr to -2.1 for md screen size only\n }}\n >\n <Swiper\n className=\"myslider h-auto\"\n pagination={{\n type: \"progressbar\",\n }}\n slidesPerView={4}\n freeMode={true}\n modules={[Pagination, Navigation]}\n onSwiper={(s) => {\n setSwiper(s);\n }}\n breakpoints={{\n 0: {\n slidesPerView: 1,\n spaceBetween: 10,\n },\n 575: {\n slidesPerView: 1.5,\n spaceBetween: 20,\n },\n 768: {\n slidesPerView: 2.5,\n spaceBetween: 30,\n },\n 1024: {\n slidesPerView: 3,\n spaceBetween: 10,\n },\n 1200: {\n slidesPerView: 4,\n spaceBetween: 20,\n },\n }}\n >\n {Provider.partners.map((partner) => {\n return (\n <SwiperSlide key={partner.id}>\n <Box mt={4}>\n <Partner\n key={partner.id}\n partner={partner}\n isHome={isHome}\n />\n </Box>\n </SwiperSlide>\n );\n })}\n </Swiper>\n {Provider?.partners?.length > 4 ?\n <Box\n display={\"flex\"}\n sx={{ my: 3 }}\n gap={2}\n width={\"100%\"}\n justifyContent={\"center\"}\n alignContent={\"center\"}\n className=\"categoryNavigationBtns\"\n >\n <Button\n aria-label=\"Previous\"\n variant=\"contained\"\n size=\"small\"\n color=\"inherit\"\n className=\"categorySwiperBtn\"\n sx={{\n borderRadius: \"10px\",\n minWidth: \"40px\",\n backgroundColor: \"#F2F1F6\",\n \"&:hover\": {\n backgroundColor: \"#F2F1F6\",\n textDecoration: \"none\",\n },\n }}\n onClick={() => handlePrevSlide()}\n >\n <ArrowBackIosIcon sx={{ color: \"black\" }} size=\"small\" />\n </Button>\n <Button\n aria-label=\"Next\"\n variant=\"contained\"\n size=\"small\"\n color=\"inherit\"\n className=\"categorySwiperBtn\"\n sx={{\n borderRadius: \"10px\",\n minWidth: \"40px\",\n py: 1,\n backgroundColor: \"#F2F1F6\",\n \"&:hover\": {\n backgroundColor: \"#F2F1F6\",\n textDecoration: \"none\",\n },\n }}\n onClick={() => handleNextSlide()}\n >\n <ArrowForwardIosIcon sx={{ color: \"black\" }} size=\"small\" />\n </Button>\n {/* <span className=\"previous-next-btn\">\n </span> */}\n </Box>\n : null}\n </Box>\n </Box>\n </Container>\n </Box>\n </>\n </div>\n );\n};\n\nexport default ProviderSection;\n","import { Box, Card, Typography, useTheme } from \"@mui/material\";\nimport React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport slugify from \"slugify\";\nimport { placeholderImage } from \"../../../util/Helper\";\n\nconst SubCategory = ({ subCategory }) => {\n const theme = useTheme();\n\n return (\n <Box key={subCategory.id}>\n <Link\n to={`sub-categories/${subCategory.id}/${slugify(\n subCategory.name\n ).toLowerCase()}`}\n className=\"breadcrumb\"\n >\n <Card\n className=\"service-card\"\n sx={{ borderRadius: \"15px\", position: \"relative\" }}\n >\n {subCategory.discount !== undefined && subCategory.discount > 0 ? (\n <Box\n position={\"absolute\"}\n left={8}\n top={8}\n bgcolor={\"#34C57D\"}\n p={0.1}\n px={1}\n borderRadius={\"5px\"}\n zIndex={1} // Increase z-index\n >\n <Typography\n variant=\"caption\"\n color={theme.palette.color.subCatName}\n >\n {`${subCategory.discount}% OFF`}\n {/* {subCategory.discount !== undefined && subCategory.discount > 0\n ? `${subCategory.discount}% OFF`\n : \"75% OFF\"} */}\n </Typography>\n </Box>\n ) : null}\n {/* <Box\n position={\"absolute\"}\n left={8}\n top={8}\n bgcolor={\"#34C57D\"}\n p={0.1}\n px={1}\n borderRadius={\"5px\"}\n zIndex={1} // Increase z-index\n >\n <Typography\n variant=\"caption\"\n color={theme.palette.color.subCatName}\n >\n {subCategory.discount !== undefined && subCategory.discount > 0\n ? `${subCategory.discount}% OFF`\n : \"75% OFF\"}\n </Typography>\n </Box> */}\n\n <Box sx={{ position: \"relative\" }}>\n <img\n src={subCategory.image}\n title={subCategory.name}\n alt=\"service_image\"\n className=\"subcat-img\"\n onError={placeholderImage}\n style={{ height: \"319px\" }}\n />\n <Box\n sx={{\n position: \"absolute\",\n bottom: 0,\n right: 0,\n width: \"100%\",\n color: theme.palette.color.subCatName,\n padding: \"10px\", // Adjust the padding as needed\n textAlign: \"center\",\n overflow: \"hidden\", // Ensure text overflow is hidden\n whiteSpace: \"wrap\", // Allow text to wrap to new lines\n textOverflow: \"ellipsis\", // Display ellipsis (...) for overflowing text\n }}\n >\n <Typography variant=\"h6\" sx={{ textAlign: \"center\" }}>\n {subCategory.name}\n </Typography>\n </Box>\n </Box>\n </Card>\n </Link>\n </Box>\n );\n};\n\nexport default SubCategory;\n","import {\n Box,\n Container,\n Divider,\n Skeleton,\n Typography,\n useTheme,\n LinearProgress,\n useMediaQuery,\n} from \"@mui/material\";\nimport React, { useState, useEffect } from \"react\";\nimport { Swiper, SwiperSlide } from \"swiper/react\";\nimport { Navigation } from \"swiper/modules\";\nimport \"swiper/css\";\nimport SubCategory from \"./SubCategory\";\nimport { SkeletonSubCategory } from \"./Skeletons\";\n\nconst SubCategories = ({ subCategory, loading }) => {\n // eslint-disable-next-line no-unused-vars\n const [swiper, setSwiper] = useState(null);\n const theme = useTheme();\n\n const [progress, setProgress] = useState(0.05); // Initially filled 5%\n const isMdScreen = useMediaQuery(\"(min-width:1025px)\"); // Check if screen size is medium (md) or larger\n\n useEffect(() => {\n const updateProgress = () => {\n if (swiper) {\n const { progress } = swiper;\n setProgress(progress);\n }\n };\n\n if (swiper) {\n swiper.on(\"progress\", updateProgress);\n }\n\n return () => {\n if (swiper) {\n swiper.off(\"progress\", updateProgress);\n }\n };\n }, [swiper]);\n\n return (\n <>\n <Box sx={{ background: theme.palette.background.box }}>\n <Container\n sx={{ paddingBottom: \"8px\", marginBottom: \"16px\" }}\n className=\"mainContainer subCategoriesSection\"\n >\n <Box\n key={subCategory.id}\n sx={{\n padding: \"30px 0px\",\n paddingBottom: \"0px\",\n margin: \"30px 0px\",\n }}\n >\n <Box\n display={\"flex\"}\n justifyContent={\"space-between\"}\n alignItems={\"end\"}\n >\n {loading ? (\n <Skeleton height={50} width={200} />\n ) : (\n <Box>\n <Typography\n sx={{\n typography: { md: \"h5\", xs: \"body1\" },\n fontWeight: \"600 !important\", // Set font weight to 400\n }}\n fontWeight={\"bold\"} // This line is redundant, you can remove it\n marginTop={1}\n >\n {subCategory.title}\n </Typography>\n </Box>\n )}\n\n {loading ? \"\" : null}\n </Box>\n {isMdScreen ? (\n <Divider sx={{ my: 1 }} />\n ) : (\n <LinearProgress variant=\"determinate\" value={progress * 100} />\n )}\n <Box mb={2}>\n <Swiper\n className=\"swiper-wrapper-padding h-auto\"\n slidesPerView={5}\n onSwiper={(s) => {\n setSwiper(s);\n }}\n modules={[Navigation]}\n navigation\n breakpoints={{\n 0: {\n slidesPerView: 1,\n spaceBetween: 10,\n },\n 640: {\n slidesPerView: 2,\n spaceBetween: 20,\n },\n 898: {\n slidesPerView: 3,\n spaceBetween: 30,\n },\n 1204: {\n slidesPerView: 5,\n spaceBetween: 15,\n },\n }}\n >\n <Box>\n <Swiper\n navigation={true}\n modules={[Navigation]}\n className=\"mySwiper max-h-500\"\n >\n {subCategory?.sub_categories?.map((response) => (\n <SwiperSlide key={response.id} className=\"\">\n {loading ? (\n <SkeletonSubCategory />\n ) : (\n <SubCategory subCategory={response} />\n )}\n </SwiperSlide>\n ))}\n </Swiper>\n </Box>\n </Swiper>\n </Box>\n </Box>\n </Container>\n </Box>\n </>\n );\n};\n\nexport default SubCategories;\n","import {\n Box,\n Container,\n Divider,\n Skeleton,\n Typography,\n useTheme,\n LinearProgress,\n useMediaQuery,\n Button,\n Card,\n CardContent,\n} from \"@mui/material\";\nimport { useState, useEffect } from \"react\";\nimport { Swiper, SwiperSlide } from \"swiper/react\";\nimport { Navigation } from \"swiper/modules\";\nimport \"swiper/css\";\nimport { Grid, Avatar } from \"@mui/material\";\nimport { useNavigate } from \"react-router\";\nimport api from \"../../../API/apiCollection\";\nimport { t } from \"i18next\";\nimport { useSelector } from \"react-redux\";\n\nconst RecentBookings = ({ data, loading }) => {\n // eslint-disable-next-line no-unused-vars\n const [swiper, setSwiper] = useState(null);\n const theme = useTheme();\n const navigate = useNavigate();\n\n const [progress, setProgress] = useState(0.05); // Initially filled 5%\n const isMdScreen = useMediaQuery(\"(min-width:1025px)\"); // Check if screen size is medium (md) or larger\n const [Downloading, setDownloading] = useState(false);\n\n\n const authentication = useSelector(\n (state) => state.authentication\n )?.isLoggedIn;\n\n useEffect(() => {\n const updateProgress = () => {\n if (swiper) {\n const { progress } = swiper;\n setProgress(progress);\n }\n };\n\n if (swiper) {\n swiper.on(\"progress\", updateProgress);\n }\n\n return () => {\n if (swiper) {\n swiper.off(\"progress\", updateProgress);\n }\n };\n }, [swiper]);\n\n const handleViewServices = (e, id) => {\n e.preventDefault();\n navigate(\"/profile/booking/services/\" + id);\n };\n\n const DownloadInvoice = async (id) => {\n setDownloading(true);\n\n await api.download_invoices({ order_id: id }).then(async (result) => {\n // Convert the API response to a Blob object\n const blob = new Blob([result], { type: \"application/pdf\" });\n // Create a new anchor element and set its href attribute to the Blob object\n const downloadLink = document.createElement(\"a\");\n downloadLink.href = URL.createObjectURL(blob);\n downloadLink.download = `eDemand-invoice-${id}.pdf`;\n\n // Append the anchor element to the DOM and click it to initiate the download\n document.body.appendChild(downloadLink);\n downloadLink.click();\n\n // Remove the anchor element from the DOM\n document.body.removeChild(downloadLink);\n\n // Set your state, if needed (e.g., setDownloading(false))\n setDownloading(false);\n });\n };\n return (\n <>\n {data && authentication && data?.previous_order?.length > 0 ? (\n <Box sx={{ background: theme.palette.background.box }}>\n <Container\n sx={{ paddingBottom: \"8px\", marginBottom: \"16px\" }}\n className=\"mainContainer subCategoriesSection\"\n >\n <Box\n key={data.id}\n sx={{\n padding: \"30px 0px\",\n paddingBottom: \"0px\",\n margin: \"30px 0px\",\n }}\n >\n <Box\n display={\"flex\"}\n justifyContent={\"space-between\"}\n alignItems={\"end\"}\n >\n {loading ? (\n <Skeleton height={50} width={200} />\n ) : (\n <Box>\n <Typography\n sx={{\n textTransform: \"capitalize\",\n marginBottom: \"10px\",\n typography: { md: \"h5\", xs: \"body1\" },\n fontWeight: \"600 !important\", // Set font weight to 400\n }}\n fontWeight={\"bold\"} // This line is redundant, you can remove it\n marginTop={1}\n >\n {data.title}\n </Typography>\n </Box>\n )}\n\n {loading ? \"\" : null}\n </Box>\n {isMdScreen ? (\n <Divider sx={{ my: 1 }} />\n ) : (\n <LinearProgress variant=\"determinate\" value={progress * 100} />\n )}\n <Box mb={2}>\n <Swiper\n className=\"swiper-wrapper-padding h-auto\"\n slidesPerView={5}\n onSwiper={(s) => {\n setSwiper(s);\n }}\n modules={[Navigation]}\n navigation\n breakpoints={{\n 0: {\n slidesPerView: 1,\n spaceBetween: 10,\n },\n 640: {\n slidesPerView: 2,\n spaceBetween: 20,\n },\n 898: {\n slidesPerView: 3,\n spaceBetween: 30,\n },\n 1200: {\n slidesPerView: 3,\n spaceBetween: 15,\n },\n 1400: {\n slidesPerView: 3.5,\n spaceBetween: 15,\n },\n }}\n >\n <Box>\n <Swiper\n navigation={true}\n modules={[Navigation]}\n className=\"mySwiper max-h-500\"\n >\n {data &&\n data?.previous_order.map((booking) => (\n <SwiperSlide key={booking.id}>\n <Card\n sx={{\n backgroundColor: theme.palette.background.card,\n border: \"1px solid #00000017\",\n color: theme.palette.color.categories,\n maxWidth: 350,\n margin: \"10px 0\",\n }}\n >\n <CardContent\n sx={{\n padding: \"16px !important\",\n }}\n >\n <Grid\n container\n justifyContent=\"space-between\"\n alignItems=\"center\"\n >\n <Typography\n variant=\"body2\"\n color={theme.palette.primary.main}\n >\n {t(\"invoice\")}: {booking.invoice_no}\n </Typography>\n <Typography\n variant=\"body2\"\n sx={{\n color: \"green\",\n fontWeight: \"bold\",\n }}\n >\n {booking.status === \"completed\"\n ? \"Completed\"\n : \"\"}\n </Typography>\n </Grid>\n\n <Box sx={{ mt: 1 }}>\n {booking?.services\n .slice(0, 2)\n .map((service, index) => (\n <Typography\n key={index}\n variant=\"body1\"\n sx={{\n color: theme.palette.color.textColor,\n }}\n >\n {service.service_title}\n </Typography>\n ))}\n {booking?.services.length > 2 && (\n <Typography\n variant=\"body1\"\n sx={{\n color: theme.palette.color.textColor,\n }}\n >\n +{booking?.services.length - 2}{\" \"}\n {t(\"more\")}\n </Typography>\n )}\n </Box>\n\n <Grid\n container\n justifyContent=\"space-between\"\n alignItems=\"center\"\n sx={{ mt: 2 }}\n >\n <Grid\n item\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n gap: \"10px\",\n }}\n >\n <Avatar\n alt={booking.company_name}\n src={booking.profile_image}\n sx={{ width: 40, height: 40 }}\n />\n <Typography\n variant=\"body2\"\n sx={{\n color: theme.palette.color.textColor,\n }}\n >\n {booking.company_name}\n </Typography>\n </Grid>\n </Grid>\n <Grid\n container\n spacing={1}\n sx={{\n justifyContent: \"space-between\",\n alignItems: \"center\",\n marginTop: 2,\n }}\n >\n <Grid item xs={12} md={6}>\n <Button\n key={booking.id}\n variant=\"outlined\"\n className=\"button-background\"\n sx={{\n textTransform: \"capitalize\",\n color: theme.palette.primary.main,\n width: \"100%\",\n }}\n // color=\"primary\"\n onClick={(e) =>\n DownloadInvoice(booking.id)\n }\n disabled={Downloading === true}\n >\n {Downloading === false ? (\n <>\n {t(\"download\")}\n {\"\"}\n {t(\"invoice\")}\n </>\n ) : (\n <>\n {/* <FontAwesomeIcon icon={faDownload} bounce /> */}\n {t(\"download\")}\n {t(\"invoice\")}\n </>\n )}\n </Button>\n </Grid>\n <Grid item xs={12} md={6}>\n <Button\n variant=\"contained\"\n onClick={(e) =>\n handleViewServices(e, booking.id)\n }\n sx={{\n backgroundColor: \"#1976d2\",\n color: \"#fff\",\n width: \"100%\",\n textTransform: \"none\",\n }}\n >\n {t(\"view-services\")}\n </Button>\n </Grid>\n </Grid>\n </CardContent>\n </Card>\n </SwiperSlide>\n ))}\n </Swiper>\n </Box>\n </Swiper>\n </Box>\n </Box>\n </Container>\n </Box>\n ) : null}\n </>\n );\n};\n\nexport default RecentBookings;\n","import {\n Box,\n Container,\n Divider,\n Skeleton,\n Typography,\n useTheme,\n LinearProgress,\n useMediaQuery,\n Button,\n Card,\n CardContent,\n} from \"@mui/material\";\nimport { useState, useEffect } from \"react\";\nimport { Swiper, SwiperSlide } from \"swiper/react\";\nimport { Navigation } from \"swiper/modules\";\nimport \"swiper/css\";\nimport { Grid, Avatar } from \"@mui/material\";\nimport { useNavigate } from \"react-router\";\nimport { t } from \"i18next\";\nimport { getChatData } from \"../../../redux/chatData\";\nimport { truncate } from \"../../../util/Helper\";\nimport { useSelector } from \"react-redux\";\n\nconst RecentBookingsOnGoingOrder = ({ data, loading }) => {\n // eslint-disable-next-line no-unused-vars\n const [swiper, setSwiper] = useState(null);\n const theme = useTheme();\n const navigate = useNavigate();\n\n const [progress, setProgress] = useState(0.05); // Initially filled 5%\n const isMdScreen = useMediaQuery(\"(min-width:1025px)\"); // Check if screen size is medium (md) or larger\n\n const authentication = useSelector(\n (state) => state.authentication\n )?.isLoggedIn;\n\n useEffect(() => {\n const updateProgress = () => {\n if (swiper) {\n const { progress } = swiper;\n setProgress(progress);\n }\n };\n\n if (swiper) {\n swiper.on(\"progress\", updateProgress);\n }\n\n return () => {\n if (swiper) {\n swiper.off(\"progress\", updateProgress);\n }\n };\n }, [swiper]);\n\n const handleViewServices = (e, id) => {\n e.preventDefault();\n navigate(\"/profile/booking/services/\" + id);\n };\n\n const redirectToChat = async (data) => {\n try {\n getChatData({\n booking_id: data?.id,\n partner_id: data?.partner_id,\n partner_name: data?.company_name,\n image: data?.profile_image,\n order_status: data?.status,\n });\n navigate(\"/chat\");\n } catch (error) {\n console.log(error);\n }\n };\n return (\n <>\n {data && authentication && data?.ongoing_order?.length > 0 ? (\n <Box sx={{ background: theme.palette.background.box }}>\n <Container\n sx={{ paddingBottom: \"8px\", marginBottom: \"16px\" }}\n className=\"mainContainer subCategoriesSection\"\n >\n <Box\n key={data.id}\n sx={{\n padding: \"30px 0px\",\n paddingBottom: \"0px\",\n margin: \"30px 0px\",\n }}\n >\n <Box\n display={\"flex\"}\n justifyContent={\"space-between\"}\n alignItems={\"end\"}\n >\n {loading ? (\n <Skeleton height={50} width={200} />\n ) : (\n <Box>\n <Typography\n sx={{\n textTransform: \"capitalize\",\n marginBottom: \"10px\",\n typography: { md: \"h5\", xs: \"body1\" },\n fontWeight: \"600 !important\", // Set font weight to 400\n }}\n fontWeight={\"bold\"} // This line is redundant, you can remove it\n marginTop={1}\n >\n {data.title}\n </Typography>\n </Box>\n )}\n\n {loading ? \"\" : null}\n </Box>\n {isMdScreen ? (\n <Divider sx={{ my: 1 }} />\n ) : (\n <LinearProgress variant=\"determinate\" value={progress * 100} />\n )}\n <Box mb={2}>\n <Swiper\n className=\"swiper-wrapper-padding h-auto\"\n slidesPerView={5}\n onSwiper={(s) => {\n setSwiper(s);\n }}\n modules={[Navigation]}\n navigation\n breakpoints={{\n 0: {\n slidesPerView: 1,\n spaceBetween: 10,\n },\n 640: {\n slidesPerView: 2,\n spaceBetween: 20,\n },\n 898: {\n slidesPerView: 3,\n spaceBetween: 30,\n },\n 1200: {\n slidesPerView: 3,\n spaceBetween: 15,\n },\n 1400: {\n slidesPerView: 3.5,\n spaceBetween: 15,\n },\n }}\n >\n <Box>\n <Swiper\n navigation={true}\n modules={[Navigation]}\n className=\"mySwiper max-h-500\"\n >\n {data &&\n data?.ongoing_order.map((booking) => (\n <SwiperSlide key={booking.id}>\n <Card\n sx={{\n backgroundColor: theme.palette.background.card,\n border: \"1px solid #00000017\",\n color: theme.palette.color.categories,\n maxWidth: 350,\n margin: \"10px 0\",\n }}\n >\n <CardContent\n sx={{\n padding: \"16px !important\",\n }}\n >\n <Grid\n container\n justifyContent=\"space-between\"\n alignItems=\"center\"\n >\n <Typography\n variant=\"body2\"\n color={theme.palette.primary.main}\n >\n {t(\"invoice\")} : {booking.invoice_no}\n </Typography>\n <Typography\n variant=\"body2\"\n sx={{\n color: theme.palette.color.textColor,\n fontWeight: \"bold\",\n }}\n >\n {booking.status === \"started\"\n ? \"Started\"\n : \"\"}\n </Typography>\n </Grid>\n\n <Box sx={{ mt: 1 }}>\n {booking?.services\n .slice(0, 2)\n .map((service, index) => (\n <Typography\n key={index}\n variant=\"body1\"\n sx={{\n color: theme.palette.color.textColor,\n }}\n >\n {truncate(service.service_title, 80)}\n </Typography>\n ))}\n {booking?.services.length > 2 && (\n <Typography\n variant=\"body1\"\n sx={{\n color: theme.palette.color.textColor,\n }}\n >\n +{booking?.services.length - 2}{\" \"}\n {t(\"more\")}\n </Typography>\n )}\n </Box>\n\n <Grid\n container\n justifyContent=\"space-between\"\n alignItems=\"center\"\n sx={{ mt: 2 }}\n >\n <Grid\n item\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n gap: \"10px\",\n }}\n >\n <Avatar\n alt={booking.company_name}\n src={booking.profile_image}\n sx={{ width: 40, height: 40 }}\n />\n <Typography\n variant=\"body2\"\n sx={{\n color: theme.palette.color.textColor,\n }}\n >\n {booking.company_name}\n </Typography>\n </Grid>\n </Grid>\n <Grid\n container\n spacing={1}\n sx={{\n justifyContent: \"space-between\",\n alignItems: \"center\",\n marginTop: 2,\n }}\n >\n <Grid item xs={12} md={6}>\n <Button\n key={booking.id}\n variant=\"outlined\"\n className=\"button-background\"\n sx={{\n textTransform: \"capitalize\",\n color: theme.palette.primary.main,\n width: \"100%\",\n }}\n onClick={(e) => redirectToChat(booking)}\n >\n {t(\"chat\")}\n </Button>\n </Grid>\n <Grid item xs={12} md={6}>\n <Button\n variant=\"contained\"\n onClick={(e) =>\n handleViewServices(e, booking.id)\n }\n sx={{\n backgroundColor: \"#1976d2\",\n color: \"#fff\",\n width: \"100%\",\n textTransform: \"none\",\n }}\n >\n {t(\"view-services\")}\n </Button>\n </Grid>\n </Grid>\n </CardContent>\n </Card>\n </SwiperSlide>\n ))}\n </Swiper>\n </Box>\n </Swiper>\n </Box>\n </Box>\n </Container>\n </Box>\n ) : null}\n </>\n );\n};\n\nexport default RecentBookingsOnGoingOrder;\n","import React, { useEffect, useState } from \"react\";\nimport api from \"../API/apiCollection\";\nimport SwiperHome from \"../Components/Reusable/Sections/Slider\";\nimport CategoriesSection from \"../Components/Reusable/Sections/CategoriesSection\";\nimport ProviderSection from \"../Components/Reusable/Sections/ProviderSection\";\nimport SubCategories from \"../Components/Reusable/Sections/SubCategories\";\nimport {\n Box,\n Container,\n useTheme,\n Grid,\n Typography,\n Button,\n Card,\n CardMedia,\n} from \"@mui/material\";\nimport {\n PartnerSkeleton,\n SkeletonSubCategory,\n} from \"../Components/Reusable/Sections/Skeletons\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { setHomePage } from \"../redux/Pages\";\nimport { t } from \"i18next\";\nimport noDataImage from \"../Images/No__data-pana.png\";\nimport RecentBookings from \"../Components/Reusable/Sections/RecentBookings\";\nimport RecentBookingsOnGoingOrder from \"../Components/Reusable/Sections/RecentBookingsOnGoingOrder\";\nimport { Link } from \"react-router-dom\";\nimport slugify from \"slugify\";\n\nconst HomeFinal = () => {\n const [slider, setSlider] = useState([]);\n const [categories, setCategories] = useState([]);\n const [sections, setSections] = useState([]);\n const [loading, setLoading] = useState(true);\n const [fetchError, setFetchError] = useState(false); // State to track fetch errors\n const dispatch = useDispatch();\n const locationData = useSelector((state) => state.Location);\n //const HomeData = useSelector((state) => state.Pages).home;\n const web_settings = useSelector((state) => state.Settings)?.settings\n ?.web_settings;\n const theme = useTheme();\n\n\n // Function to fetch home data\n const fetchHome = async () => {\n setLoading(true); // Set loading state to true when fetching data\n setFetchError(false); // Reset fetch error state\n\n try {\n const response = await api.get_home_screen({\n latitude: locationData.lat,\n longitude: locationData.lng,\n });\n \n setSlider(response?.data?.sliders);\n setCategories(response?.data?.categories);\n setSections(response?.data?.sections);\n dispatch(setHomePage(response?.data));\n } catch (error) {\n console.log(error);\n setFetchError(true); // Set fetch error state to true\n } finally {\n setLoading(false); // Set loading state to false regardless of the outcome\n }\n };\n\n useEffect(() => {\n fetchHome();\n // eslint-disable-next-line\n }, [web_settings, locationData]);\n\n return (\n <>\n {fetchError ? ( // Render retry button only if fetch error\n <Grid\n container\n spacing={2}\n direction=\"column\" // Stack components vertically\n alignItems=\"center\"\n justifyContent=\"center\"\n height=\"100vh\" // Adjust this according to your layout\n sx={{\n marginTop: {\n xs: 0, // No margin on extra small screens\n md: -20, // 100px margin on medium screens and larger\n },\n }}\n >\n <Grid item>\n <Card\n sx={{\n boxShadow: \"none !important\",\n }}\n >\n <CardMedia\n component=\"img\"\n src={noDataImage} // Use the imported PNG image\n alt=\"No Data Image\"\n sx={{\n width: { xs: 300, sm: 600, md: 700 }, // Set width based on screen size\n height: \"auto\", // Maintain aspect ratio\n border: \"none\", // Remove border\n boxShadow: \"none\", // Remove box shadow\n }}\n />\n </Card>\n </Grid>\n <Grid item>\n <Typography\n sx={{\n textAlign: \"center\", // Center the text\n marginTop: {\n xs: 0, // No margin on extra small screens\n md: -22, // 100px margin on medium screens and larger\n },\n }}\n >\n <Typography\n variant=\"body1\"\n sx={{\n textAlign: \"left\",\n fontFamily: \"Plus Jakarta Sans\",\n fontWeight: \"bold\",\n fontSize: \"32px\",\n lineHeight: \"32px\",\n letterSpacing: \"0px\",\n }}\n >\n {t(\"something_went_wrong\")}\n </Typography>\n\n <Typography\n variant=\"body1\"\n sx={{\n color: \"var(--secondary-color-343f53)\", // Using custom color variable\n textAlign: \"left\",\n fontFamily: \"Plus Jakarta Sans\",\n fontWeight: \"normal\",\n fontSize: \"20px\",\n lineHeight: \"32px\",\n letterSpacing: \"0px\",\n opacity: 0.7,\n marginLeft: 5,\n }}\n >\n {t(\"try_again_later\")}\n </Typography>\n </Typography>\n </Grid>\n <Grid item>\n <Button\n variant=\"contained\"\n onClick={fetchHome}\n sx={{\n textTransform: \"none\",\n marginTop: {\n xs: 0, // No margin on extra small screens\n md: -28, // 100px margin on medium screens and larger\n },\n }}\n >\n {t(\"retry\")}\n </Button>\n </Grid>\n </Grid>\n ) : (\n <>\n <SwiperHome sliderData={slider} loading={loading} />\n {categories && categories?.length > 0 ? (\n <Box my={3}>\n <CategoriesSection categories={categories} loading={loading} />\n </Box>\n ) : null}\n\n {loading ? (\n <Box\n className=\"display-flex gap-12\"\n sx={{\n overflow: \"auto\",\n background: theme.palette.background.box,\n }}\n >\n <Container>\n <Box display={\"flex\"} gap={2} mt={1} mb={1}>\n {Array.from(Array(4).keys()).map((index) => (\n <SkeletonSubCategory key={index} />\n ))}\n </Box>\n\n <Box display={\"flex\"} gap={2} mt={1} mb={1}>\n {Array.from(Array(3).keys()).map((index) => (\n <PartnerSkeleton key={index} />\n ))}\n </Box>\n </Container>\n </Box>\n ) : (\n sections &&\n sections.map((section) => {\n if (\n section?.section_type === \"partners\" ||\n section?.section_type === \"top_rated_partner\" ||\n section?.section_type === \"near_by_provider\"\n ) {\n return (\n <>\n {section?.partners?.length > 0 ? (\n <ProviderSection\n key={section.id}\n Provider={section}\n loading={loading}\n isHome={true}\n />\n ) : null}\n </>\n );\n } else if (section?.section_type === \"sub_categories\") {\n return (\n <SubCategories\n key={section.id}\n subCategory={section}\n loading={loading}\n />\n );\n } else if (section?.section_type === \"previous_order\") {\n return <RecentBookings data={section} loading={loading} />;\n } else if (section?.section_type === \"ongoing_order\") {\n return (\n <RecentBookingsOnGoingOrder\n data={section}\n loading={loading}\n />\n );\n } else if (section?.section_type === \"banner\") {\n return (\n <>\n {section?.banner.map((response) => {\n const type = response.banner_type;\n const slug = slugify(response.provider_name, {\n lower: true, // Convert the slug to lowercase\n });\n return (\n <Box key={response.id} sx={{ background: theme.palette.background.box }}>\n <Container\n sx={{ paddingBottom: \"8px\", marginBottom: \"16px\" }}\n className=\"mainContainer subCategoriesSection\"\n >\n {type === \"banner_provider\" ? (\n <Link\n to={`/providers/services/${response.type_id}/${slug}`}\n >\n <Box\n component={\"img\"}\n src={response.web_banner_image}\n width={\"100%\"}\n sx={{\n objectFit: \"contain\",\n height: { xs: \"200px\", md: \"400px\" },\n borderRadius: { xs: \"10px\" },\n\n }}\n />\n </Link>\n ) : type === \"banner_category\" ? (\n <Link\n to={\n \"/categories/\" +\n response.category_parent_id +\n \"/\" +\n slugify(response.category_name, { lower: true })\n }\n >\n <Box\n component={\"img\"}\n src={response.web_banner_image}\n width={\"100%\"}\n sx={{\n objectFit: \"contain\",\n height: { xs: \"200px\", md: \"400px\" },\n borderRadius: { xs: \"10px\" },\n\n }}\n />\n </Link>\n ) : type === \"banner_url\" ? (\n <a href={response.banner_url !== \"\" ? response.banner_url : undefined}\n target={response.banner_url !== \"\" ? \"_blank\" : undefined}\n rel={response.banner_url !== \"\" ? \"noopener noreferrer\" : undefined}\n role={response.banner_url === \"\" ? \"button\" : undefined}\n onClick={response.banner_url === \"\" ? (e) => e.preventDefault() : undefined}>\n <Box\n component={\"img\"}\n src={response.web_banner_image}\n width={\"100%\"}\n sx={{\n objectFit: \"contain\",\n height: { xs: \"200px\", md: \"400px\" },\n borderRadius: { xs: \"10px\" },\n\n }}\n />\n </a>\n ) : (\n <a href={response.banner_url !== \"\" ? response.banner_url : undefined}\n target={response.banner_url !== \"\" ? \"_blank\" : undefined}\n rel={response.banner_url !== \"\" ? \"noopener noreferrer\" : undefined}\n role={response.banner_url === \"\" ? \"button\" : undefined}\n onClick={response.banner_url === \"\" ? (e) => e.preventDefault() : undefined}>\n <Box\n component={\"img\"}\n src={response.web_banner_image}\n width={\"100%\"}\n sx={{\n objectFit: \"contain\",\n height: { xs: \"200px\", md: \"400px\" },\n borderRadius: { xs: \"10px\" },\n\n }}\n />\n </a>\n )}\n </Container>\n </Box>\n );\n }\n )}\n\n </>\n );\n }\n return null;\n })\n )}\n </>\n )}\n </>\n );\n};\n\nexport default HomeFinal;\n","import Layout from \"../Components/layout/Layout\";\nimport HomeFinal from \"../view/Home\";\n\nconst Home = () => {\n\n return (\n <Layout>\n <HomeFinal />\n </Layout>\n );\n};\n\nexport default Home;\n","import { useEffect } from \"react\";\nimport Box from \"@mui/material/Box\";\nimport Button from \"@mui/material/Button\";\nimport Typography from \"@mui/material/Typography\";\nimport Modal from \"@mui/material/Modal\";\nimport api from \"../../API/apiCollection\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport {\n locationAddressData,\n setLatitude,\n setLongitude,\n setModalClose,\n} from \"../../redux/Location\";\nimport { setProviderAvailable } from \"../../redux/Provider\";\nimport { getFormattedAddress } from \"../../util/Helper\";\nimport toast from \"react-hot-toast\";\nimport { Divider, IconButton } from \"@mui/material\";\nimport { Close } from \"@mui/icons-material\";\nimport { useNavigate } from \"react-router\";\nimport { useTheme } from \"@emotion/react\";\nimport { t } from \"i18next\";\nimport { setModal } from \"../../redux/Settings\";\nimport GoogleMapBox from \"../GoogleMap/GoogleMapBox\";\nimport { MAP_API } from \"../../config/config\";\n\nconst ModalMap = ({ redirect }) => {\n\n const navigate = useNavigate();\n \n const style = {\n position: \"absolute\",\n top: \"50%\",\n left: \"50%\",\n transform: \"translate(-50%, -50%)\",\n width: { xs: \"90%\", md: \"60%\" },\n bgcolor: \"background.paper\",\n boxShadow: 24,\n borderRadius: \"var(--global-border-radius)\",\n p: 2,\n };\n\n const { modal } = useSelector((state) => state.Settings);\n\n const locationData = useSelector((state) => state.Location);\n\n const dispatch = useDispatch();\n\n useEffect(() => {}, [locationData]);\n\n const handleClose = () => {\n dispatch(setModal(false));\n dispatch(setModalClose(false));\n };\n\n const setLocation = async () => {\n try {\n const data = await api.providerAvailable({\n latitude: locationData.lat,\n longitude: locationData.lng,\n isCheckout: 0,\n });\n if (data?.error === false) {\n dispatch(setProviderAvailable(true));\n dispatch(setLatitude(locationData.lat));\n dispatch(setLongitude(locationData.lng));\n dispatch(setModalClose(false));\n const address = await getFormattedAddress(locationData.lat, locationData.lng);\n dispatch(locationAddressData(address));\n navigate(\"/\");\n } else {\n toast.error(t(\"our_service_not_area\"));\n if (redirect) {\n dispatch(setProviderAvailable(false));\n dispatch(setModal(false));\n dispatch(setModalClose(false));\n }\n }\n } catch (error) {\n console.error(error);\n }\n };\n\n\n const theme = useTheme();\n\n const handleLocationSelect = (data) => {\n dispatch(setLatitude(data?.lat));\n dispatch(setLongitude(data?.lng));\n dispatch(locationAddressData(data?.formatted_address));\n };\n\n\n return (\n <Box>\n <Modal\n open={modal}\n onClose={() => handleClose()}\n aria-labelledby=\"modal-modal-title\"\n aria-describedby=\"modal-modal-description\"\n >\n <Box sx={style}>\n <Box\n mt={1}\n display={\"flex\"}\n justifyContent={\"space-between\"}\n alignItems={\"center\"}\n >\n <Typography variant=\"h6\" color={theme.palette.text.primary}>\n {t(\"select_map_location\")}\n </Typography>\n <IconButton onClick={() => handleClose()}>\n <Close />\n </IconButton>\n </Box>\n <Divider sx={{ width: \"100%\", mb: 3 }} />\n <GoogleMapBox\n onSelectLocation={handleLocationSelect}\n apiKey={MAP_API}\n isLocationPass={true}\n locationlat={locationData.lat}\n locationlng={locationData.lng}\n modal={modal}\n />\n\n <Button\n fullWidth\n sx={{ mt: 2 }}\n variant=\"contained\"\n color=\"primary\"\n onClick={(e) => setLocation()}\n >\n Use this location\n </Button>\n </Box>\n </Modal>\n </Box>\n );\n};\n\nexport default ModalMap;\n"],"names":["libraries","_ref","sliderData","loading","swiperRef","useRef","inputRef","open","setOpen","useState","dispatch","useDispatch","location","useSelector","state","Location","theme","useTheme","navigate","useNavigate","inputValue","setInputValue","locationAddress","isFirstSlide","setIsFirstSlide","isLastSlide","setIsLastSlide","suggestions","setSuggestions","providerSearchValue","setProviderSearchValue","isLoaded","loadError","useLoadScript","googleMapsApiKey","MAP_API","handleMapData","async","value","_response$data","response","api","getPlacesForWebApi","address","results","data","lat","lng","geometry","setLatitude","setLongitude","fetchLocationName","getFormattedAddress","then","res","locationAddressData","setModalOpen","toast","error","console","log","useEffect","autocompleteService","window","google","maps","places","AutocompleteService","handleInputChange","event","target","getPlacePredictions","input","predictions","status","PlacesServiceStatus","OK","inputElement","current","addEventListener","removeEventListener","modalOpen","_jsx","children","handleSearch","e","key","keyCode","type","preventDefault","slugify","lower","_jsxs","_Fragment","Box","display","md","Container","sx","my","className","position","mt","overflow","borderRadius","maxWidth","Swiper","ref","navigation","modules","Autoplay","autoplay","onSlideChange","swiper","isBeginning","isEnd","Skeleton","variant","height","width","map","slug","provider_name","SwiperSlide","Link","to","type_id","component","src","slider_web_image","xs","objectFit","category_parent_id","category_name","href","url","rel","id","onClick","slidePrev","disabled","slideNext","marginTop","alignItems","justifyContent","Paper","backgroundColor","palette","background","Autocomplete","freeSolo","options","suggestion","description","clearIcon","IconButton","CloseIcon","renderInput","params","TextField","onChange","placeholder","InputProps","disableUnderline","onInputChange","newInputValue","selectedSuggestion","find","handleSuggestionClick","Divider","orientation","pl","handleSearchInputChange","t","onKeyDown","Button","startIcon","Search","size","textTransform","ModalMap","lang","redirect","_theme$palette","_theme$palette$primar","category","name","textDecoration","color","primary","main","borderColor","text","secondary","category_image","Typography","py","fontSize","fontWeight","categories","setSwiper","box","fonts","h2","typography","length","underline","pagination","slidesPerView","freeMode","Pagination","Navigation","onSwiper","s","breakpoints","spaceBetween","Array","from","keys","index","SkeletonSwiperSlide","Category","gap","alignContent","minWidth","ArrowBackIosIcon","ArrowForwardIosIcon","_Provider$partners","Provider","isHome","padding","margin","title","pb","mb","mr","partners","partner","Partner","subCategory","toLowerCase","Card","undefined","discount","left","top","bgcolor","p","px","zIndex","subCatName","image","alt","onError","placeholderImage","style","bottom","right","textAlign","whiteSpace","textOverflow","_subCategory$sub_cate","progress","setProgress","isMdScreen","useMediaQuery","updateProgress","on","off","paddingBottom","marginBottom","LinearProgress","sub_categories","SkeletonSubCategory","SubCategory","_useSelector","_data$previous_order","Downloading","setDownloading","authentication","isLoggedIn","previous_order","booking","card","border","CardContent","Grid","container","invoice_no","services","slice","service","textColor","service_title","item","Avatar","company_name","profile_image","spacing","download_invoices","order_id","blob","Blob","result","downloadLink","document","createElement","URL","createObjectURL","download","body","appendChild","click","removeChild","DownloadInvoice","handleViewServices","_data$ongoing_order","ongoing_order","truncate","getChatData","booking_id","partner_id","partner_name","order_status","redirectToChat","HomeFinal","_useSelector$settings","slider","setSlider","setCategories","sections","setSections","setLoading","fetchError","setFetchError","locationData","web_settings","Settings","settings","fetchHome","_response$data2","_response$data3","get_home_screen","latitude","longitude","sliders","setHomePage","direction","boxShadow","CardMedia","noDataImage","sm","fontFamily","lineHeight","letterSpacing","opacity","marginLeft","SwiperHome","CategoriesSection","PartnerSkeleton","section","_section$partners","section_type","ProviderSection","SubCategories","RecentBookings","RecentBookingsOnGoingOrder","banner","banner_type","web_banner_image","banner_url","role","Home","Layout","modal","handleClose","setModal","setModalClose","Modal","onClose","transform","Close","GoogleMapBox","onSelectLocation","formatted_address","apiKey","isLocationPass","locationlat","locationlng","fullWidth","providerAvailable","isCheckout","setProviderAvailable","setLocation"],"sourceRoot":""}