{"version":3,"file":"static/chunks/63-2b420eb5e11034d4.js","mappings":"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","sources":["webpack://_N_E/./src/commons/CarSearch.tsx","webpack://_N_E/./src/commons/helpers/dateUtils.tsx","webpack://_N_E/./src/components/Buttons/ModalsButton.tsx","webpack://_N_E/./src/components/Header/Avatar.tsx","webpack://_N_E/./src/components/Header/Logo.tsx","webpack://_N_E/./src/components/Header/SearchBar/DateTimePicker.tsx","webpack://_N_E/./src/components/Header/SearchBar/SearchBar.tsx","webpack://_N_E/./src/components/Header/MenuItems.tsx","webpack://_N_E/./src/constants/menuData.tsx","webpack://_N_E/./src/components/Header/WhatsappButton.tsx","webpack://_N_E/./src/components/Header/UserMenu.tsx","webpack://_N_E/./src/components/Header/LinksNavbarItem.tsx","webpack://_N_E/./src/components/Header/LinksNavBar.tsx","webpack://_N_E/./src/components/Header/Header.tsx","webpack://_N_E/./src/components/Footer/FooterTitle.tsx","webpack://_N_E/./src/components/Footer/FooterLink.tsx","webpack://_N_E/./src/components/Footer/FooterSocialMedia.tsx","webpack://_N_E/./src/components/Footer/FooterStore.tsx","webpack://_N_E/./src/components/Footer/Footer.tsx","webpack://_N_E/./src/components/Modals/register/RegisterModal.tsx","webpack://_N_E/./src/components/Modals/login/LoginModal.tsx","webpack://_N_E/./src/components/MainScreen.tsx","webpack://_N_E/./src/components/Modals/FormsHeading.tsx","webpack://_N_E/./src/components/Modals/Modal.tsx","webpack://_N_E/./src/components/Modals/SmallModal.tsx","webpack://_N_E/./src/components/Modals/createVehicle/AlertModal.tsx","webpack://_N_E/./src/components/Modals/login/LoginBody.tsx","webpack://_N_E/./src/components/Modals/login/LoginFooter.tsx","webpack://_N_E/./src/hooks/useValidatePhoneUser.tsx","webpack://_N_E/./src/components/Modals/validateUser/CodeInput.tsx","webpack://_N_E/./src/components/Modals/validateUser/ValidatePhoneUserMessage.tsx","webpack://_N_E/./src/hooks/useCreatedUserModal.tsx","webpack://_N_E/./src/components/Modals/validateUser/ValidatePhoneUserModal.tsx","webpack://_N_E/./src/components/Modals/register/CreatedUserMessage.tsx","webpack://_N_E/./src/components/Modals/register/CreatedUserModal.tsx","webpack://_N_E/./src/components/Modals/register/RegisterBody.tsx","webpack://_N_E/./src/components/Modals/register/RegisterFooter.tsx","webpack://_N_E/./src/components/SupportLink.tsx","webpack://_N_E/./src/hooks/useAlertModal.tsx","webpack://_N_E/./src/hooks/useEmailStore.tsx","webpack://_N_E/./src/hooks/useLoginModal.tsx","webpack://_N_E/./src/hooks/useRegisterModal.tsx","webpack://_N_E/./src/services/api/user.tsx","webpack://_N_E/./src/app/styles.css"],"sourcesContent":["// carSearchUtils.js\n\"use client\";\nimport { addDays } from \"date-fns\";\nimport { addDaysToString, formatTime } from \"@/commons/helpers/dateUtils\";\nimport useBookingDates from \"@/hooks/useBookingDates\";\nimport { useRouter, useSearchParams } from \"next/navigation\";\n\nconst SearchCars = () => {\n const router = useRouter();\n const searchParams = useSearchParams();\n\n //booking date and hours variables\n const { location, startDate, startHour, endDate, endHour } =\n useBookingDates();\n\n const startDateString = addDaysToString(\n startDate ?? addDays(new Date(), 1),\n 0\n );\n const endDateString = addDaysToString(endDate ?? addDays(new Date(), 3), 0);\n const startHourString = formatTime(startHour);\n const endHourString = formatTime(endHour);\n\n const handleSearch = (newLocation?: string) => {\n if (newLocation === null || location === \"\") {\n newLocation = location;\n }\n const period = startDateString + \",\" + endDateString;\n\n if (searchParams && newLocation) {\n const params = new URLSearchParams(searchParams);\n params.set(\"location\", newLocation.toString());\n params.set(\"period\", period);\n params.set(\"schedule_delivery_gte\", startHourString);\n params.set(\"schedule_return_lte\", endHourString);\n\n router.replace(`/cars/search?${params.toString()}`);\n }\n };\n\n return {\n handleSearch,\n };\n};\n\nexport default SearchCars;\n","import { format } from \"date-fns\";\nimport { es } from \"date-fns/locale\";\nimport { capitalizeFirstLetter } from \"./textUtils\";\n\nexport function formatDate(inputDate: string): string {\n const [datePart, timePart] = inputDate.split(\", \");\n const dateObj = new Date(datePart);\n const day = dateObj.getDate();\n const month = dateObj.getMonth() + 1;\n const year = dateObj.getFullYear();\n\n const formattedDay = String(day).padStart(2, \"0\");\n const formattedMonth = String(month).padStart(2, \"0\");\n\n return `${formattedDay}/${formattedMonth}/${year}`;\n}\n\nexport function formatDateToSpanishLocale(originalDate?: string): string {\n try {\n if (originalDate) {\n // Format the date using the date-fns library with Spanish locale settings.\n const formattedDate = format(\n new Date(originalDate),\n \"EEEE, d 'de' MMMM yyyy\",\n { locale: es }\n ).toString();\n // Capitalize the first letter of the formatted date using a utility function.\n return capitalizeFirstLetter(formattedDate);\n } else {\n // If the input date is undefined, log an error message and return an empty string.\n console.error(\"Error formatting date: originalDate is undefined\");\n return \"\";\n }\n } catch (error) {\n // If there was an error during date formatting, log the error and return the original input date or an empty string.\n console.error(\"Error formatting date:\", error);\n return originalDate || \"\";\n }\n}\n\nexport function addDaysToString(date: Date, days: number): string {\n const newDate = new Date(date);\n newDate.setDate(newDate.getDate() + days);\n const stringDate = newDate.toISOString().substring(0, 10);\n return stringDate;\n}\n\nexport function restPeriodDays(fechas: string[]): number | null {\n if (fechas.length !== 2) {\n console.error(\"The function requires an array of two dates.\");\n return null;\n }\n\n // Create Date objects from the date strings\n const fecha1 = new Date(fechas[0]);\n const fecha2 = new Date(fechas[1]);\n\n // Subtract the dates to get the difference in milliseconds\n const daysMiliseconds = fecha2.getTime() - fecha1.getTime();\n\n // Convert the difference from milliseconds to days\n const days = daysMiliseconds / (1000 * 60 * 60 * 24);\n\n return days;\n}\n\nexport function formatDateToYYYYMMDD(inputDate: string): string {\n try {\n const [datePart] = inputDate.split(\", \");\n const [day, month, year] = datePart.split(\"/\");\n const dateObj = new Date(Number(year), Number(month) - 1, Number(day));\n\n if (isNaN(dateObj.getTime())) {\n throw new Error(\"Fecha no válida\");\n }\n\n const formattedYear = String(dateObj.getFullYear());\n const formattedMonth = String(dateObj.getMonth() + 1).padStart(2, \"0\");\n const formattedDay = String(dateObj.getDate()).padStart(2, \"0\");\n\n return `${formattedYear}-${formattedMonth}-${formattedDay}`;\n } catch (error) {\n console.error(\"Error formatting date:\", error);\n return \"\";\n }\n}\n\nexport function formatDateToYYYYMMDDFromISO(isoDate: string): string {\n try {\n // Create a Date object from the ISO string\n const dateObj = new Date(isoDate);\n\n if (isNaN(dateObj.getTime())) {\n throw new Error(\"Invalid date\");\n }\n\n // Extract the year, month, and day\n const formattedYear = String(dateObj.getFullYear());\n const formattedMonth = String(dateObj.getMonth() + 1).padStart(2, \"0\");\n const formattedDay = String(dateObj.getDate()).padStart(2, \"0\");\n\n // Return the formatted date as yyyy-MM-dd\n return `${formattedYear}-${formattedMonth}-${formattedDay}`;\n } catch (error) {\n console.error(\"Error formatting date:\", error);\n return \"\";\n }\n}\n\nexport function formatTime(date: Date): string {\n const hours = String(date.getHours()).padStart(2, \"0\");\n const minutes = String(date.getMinutes()).padStart(2, \"0\");\n return `${hours}:${minutes}`;\n}\n\nexport function parseTimeStringToDateTime(timeString: string): Date {\n const [hours, minutes] = timeString.split(\":\").map(Number);\n const date = new Date();\n date.setHours(hours);\n date.setMinutes(minutes);\n return date;\n}\n\nexport function formatHour(datetime?: string): string {\n if (!datetime) return \"\";\n\n const time = datetime.split(\" \")[1];\n return time ? time.substring(0, 5) : \"\";\n}\n\nexport function convertToISO8601(dateStr: string): string {\n // Asegúrate de que el formato de entrada sea \"YYYY-MM-DD HH:mm:ss\"\n const dateParts = dateStr.split(' ');\n\n if (dateParts.length !== 2) {\n throw new Error('Invalid date format. Expected \"YYYY-MM-DD HH:mm:ss\"');\n }\n\n const [date, time] = dateParts;\n\n // Combina la fecha y la hora con \"T\" y agrega \"Z\" para indicar UTC.\n const isoDate = `${date}T${time}Z`;\n\n // Retorna solo la parte sin los milisegundos\n return isoDate;}\n","import React from \"react\";\n\ninterface Props {\n label: string;\n onClick?: () => void;\n disabled?: boolean;\n outline?: boolean;\n small?: boolean;\n disabledText?: string;\n type?: \"button\" | \"submit\" | \"reset\"; // Add the type prop\n}\n\nfunction ModalsButton({\n label,\n onClick,\n disabled,\n outline,\n small,\n disabledText,\n type = \"button\",\n}: Props) {\n return (\n <button\n type={type}\n disabled={disabled}\n onClick={onClick}\n className={`\n relative\n disabled:opacity-50\n disabled:cursor-not-allowed disabled:hover:scale-100\n rounded-lg \n hover:opacity-80\n hover:scale-[1.02]\n transition\n w-full\n ${outline ? \"bg-white\" : \"bg-violet-700\"}\n ${outline ? \"border-violet-700\" : \"border-violet-700\"}\n ${outline ? \"text-violet-700\" : \"text-white\"}\n ${small ? \"text-sm\" : \"text-md\"}\n ${small ? \"py-2\" : \"py-3\"}\n ${small ? \"font-light\" : \"font-semibold\"}\n ${small ? \"border-[1px]\" : \"border-2\"}\n `}\n >\n {disabled ? (\n disabledText ? (\n <p>{disabledText}</p>\n ) : (\n <p>{label}</p>\n )\n ) : (\n <p>{label}</p>\n )}\n </button>\n );\n}\n\nexport default ModalsButton;\n","\"use client\";\n\nimport Image from \"next/image\";\n\ninterface AvatarProps {\n photo?: string;\n height?: number;\n width?: number;\n}\n\nconst Avatar: React.FC<AvatarProps> = ({ photo, height, width }) => {\n return (\n <Image\n className=\"rounded-full object-cover\"\n height={height || \"30\"}\n width={width || \"30\"}\n blurDataURL=\"/assets/images/placeholder.jpg\"\n placeholder=\"blur\"\n loading=\"lazy\"\n quality=\"100\"\n alt=\"Avatar\"\n src={photo || \"/assets/images/placeholder.jpg\"}\n />\n );\n};\n\nexport default Avatar;\n","import LinksNavigation from \"@/constants/navigation\";\nimport Image from \"next/image\";\nimport React from \"react\";\n\nconst Logo: React.FC = () => {\n const links = LinksNavigation();\n return (\n <div className=\"flex items-center\" onClick={links.handleClickHome}>\n <Image\n src=\"/assets/images/atua.svg\"\n alt=\"Logotipo de ATUA - Alquiler de autos\"\n width={90}\n height={36}\n priority={true}\n className=\"h-auto w-[90px]\"\n />\n </div>\n );\n};\n\nexport default Logo;\n","import ReactDatePicker from \"react-datepicker\";\nimport { es } from \"date-fns/locale\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport \"../../../app/styles.css\";\nimport { addDays } from \"date-fns\";\nimport { ChevronDownIcon } from \"@heroicons/react/24/solid\";\n\ninterface Props {\n label: string;\n pickDate: Date;\n setPickDate: (date: Date) => void;\n hour: Date;\n setHour: (hour: Date) => void;\n minDate?: Date;\n}\n\nfunction DateTimePicker({\n label,\n pickDate,\n setPickDate,\n hour,\n setHour,\n minDate,\n}: Props) {\n return (\n <>\n <div className=\"flex-grow items-center align-middle pl-4\">\n <p className=\" text-[11px] font-semibold \">{label}</p>\n <div className=\"grid grid-cols-12 pr-2\">\n <div className=\"flex col-span-7 h-6\">\n <div className=\"relative\">\n <ReactDatePicker\n className={\n \"pl-2 outline-none w-full text-sm text-gray-600 placeholder-gray-400\"\n }\n selected={pickDate}\n onChange={(dateSelected) => {\n if (dateSelected !== null) {\n setPickDate(dateSelected);\n }\n }}\n dateFormat={\"dd/MM/yyyy\"}\n locale={es}\n minDate={minDate ? addDays(minDate, 1) : new Date()}\n calendarClassName={\"atua-date-time-picker-style\"}\n dayClassName={(date) => {\n if (pickDate.toDateString() === date.toDateString()) {\n return \"selected-day\";\n }\n return \"\";\n }}\n disabledKeyboardNavigation\n showPopperArrow={false}\n popperPlacement=\"bottom-start\"\n />\n <div className=\"absolute inset-y-0 right-0 flex items-center px-2 pointer-events-none\">\n <ChevronDownIcon className=\"h-3\" />\n </div>\n </div>\n </div>\n <div className=\"flex col-span-5 h-6\">\n <div className=\"relative\">\n <ReactDatePicker\n className={\n \"pl-6 outline-none w-full text-sm text-gray-600 placeholder-gray-400\"\n }\n selected={hour}\n onChange={(hourSelected) => {\n if (hourSelected !== null) {\n setHour(hourSelected);\n }\n }}\n locale={es}\n minDate={minDate ? minDate : new Date()}\n calendarClassName={\"atua-date-time-picker-style\"}\n disabledKeyboardNavigation\n showPopperArrow={false}\n popperPlacement=\"bottom-start\"\n showTimeSelect\n showTimeSelectOnly\n timeIntervals={30}\n timeCaption=\"Hora\"\n dateFormat=\"h:mm aa\"\n />\n <div className=\"absolute inset-y-0 right-0 flex items-center px-2 pointer-events-none\">\n <ChevronDownIcon className=\"h-3\" />\n </div>\n </div>\n </div>\n </div>\n </div>\n </>\n );\n}\n\nexport default DateTimePicker;\n","\"use client\";\nimport format from \"date-fns/format\";\nimport { MagnifyingGlassIcon } from \"@heroicons/react/24/solid\";\nimport React, { useEffect, useState } from \"react\";\nimport PlacesAutocomplete from \"../../Search/Maps/PlacesAutocomplete\";\nimport ModalsButton from \"../../Buttons/ModalsButton\";\nimport { ChevronDownIcon } from \"@heroicons/react/24/outline\";\nimport useOnclickOutside from \"react-cool-onclickoutside\";\nimport DateTimePicker from \"./DateTimePicker\";\nimport useBookingDates from \"@/hooks/useBookingDates\";\nimport SearchCars from \"@/commons/CarSearch\";\nimport { addDays } from \"date-fns\";\n\ninterface Props {\n landingPage?: boolean;\n}\n\nconst SearchBar = ({ landingPage }: Props) => {\n //ScreenSize variables\n const [isLarge, setIsLarge] = useState(window.innerWidth >= 768);\n const [isMedNavBar, setIsMedNavBar] = useState(\n window.innerWidth >= 1024 && !landingPage\n );\n const [placeName, setPlaceName] = useState(\"\");\n\n //booking date and hours variables\n const {\n location,\n place,\n startDate,\n startHour,\n endDate,\n endHour,\n setLocation,\n setPlace,\n setStartDate,\n setStartHour,\n setEndDate,\n setEndHour,\n } = useBookingDates();\n const searchCars = SearchCars();\n //Controler data picker show status\n const [showSearchBox, setShowSearchBox] = useState(false);\n //Locaction variables\n\n const placeLabel = \"Lugar de entrega:\";\n const toDateLabel = \"Hasta:\";\n\n // Effect to adjust the UI based on window resize\n useEffect(() => {\n function handleResize() {\n setIsLarge(window.innerWidth >= 768);\n setIsMedNavBar(window.innerWidth >= 1024);\n }\n window.addEventListener(\"resize\", handleResize);\n handleResize();\n return () => window.removeEventListener(\"resize\", handleResize);\n }, []);\n\n // Verificar si endDate es menor que startDate\n useEffect(() => {\n if (endDate < startDate) {\n const newEndDate = addDays(startDate, 3);\n setEndDate(newEndDate);\n }\n }, [startDate, endDate, setEndDate]);\n\n // Function to initiate car search based on selected options\n function carsSearch() {\n // Agregar Google Tag Manager event tracking\n if (window.dataLayer) {\n window.dataLayer.push({\n event: \"car_search\",\n category: \"Car Search\",\n action: \"Search\",\n label: `Search for cars in ${placeName}`,\n searchDetails: {\n location: placeName,\n startDate: startDate ? format(startDate, \"yyyy-MM-dd\") : \"N/A\",\n endDate: endDate ? format(endDate, \"yyyy-MM-dd\") : \"N/A\",\n },\n });\n }\n\n searchCars.handleSearch(location);\n setPlace(placeName);\n setShowSearchBox(false);\n }\n\n // Function to handle location selection\n const handleLocationSelect = (lat: any, lng: any, placeName: string) => {\n const coordinatesString = `${lat},${lng}`;\n setLocation(coordinatesString);\n setPlaceName(placeName);\n };\n\n // Click outside hook for closing search box\n const refBoxSearch = useOnclickOutside(() => {\n setShowSearchBox(false);\n });\n\n function RenderFromForm() {\n return (\n <>\n <DateTimePicker\n label=\"Desde:\"\n pickDate={startDate}\n setPickDate={setStartDate}\n hour={startHour}\n setHour={setStartHour}\n />\n </>\n );\n }\n\n function RenderToForm() {\n return (\n <>\n <DateTimePicker\n label={toDateLabel}\n pickDate={endDate}\n setPickDate={setEndDate}\n hour={endHour}\n setHour={setEndHour}\n minDate={startDate}\n />\n </>\n );\n }\n\n // Function to render the mini search bar (search box)\n function RenderMiniSearchBar() {\n return (\n <>\n <div className=\"absolute left-0 px-8 sm:px-16 w-full\">\n <div\n ref={refBoxSearch}\n className=\"items-center bg-white rounded-lg px-6 py-3 border-2 shadow-md\"\n >\n {/* Place selection */}\n <div className=\"w-full py-1 border-b \">\n <p className=\" text-[11px] font-semibold \">{placeLabel}</p>\n <div className=\"pl-6\">\n <PlacesAutocomplete onSelect={handleLocationSelect} />\n </div>\n </div>\n\n {/* Date selection */}\n <div className=\"w-full py-1 border-b\">\n <div className=\"-ml-4\">{RenderFromForm()}</div>\n </div>\n <div className=\"w-full py-1 border-b\">\n <div className=\"-ml-4\">{RenderToForm()}</div>\n </div>\n {/* Search button */}\n <div className=\"pt-3\">\n <ModalsButton label={\"Buscar\"} onClick={carsSearch} small />\n </div>\n </div>\n </div>\n </>\n );\n }\n\n return (\n <>\n {(isLarge && landingPage) || (isMedNavBar && !landingPage) ? (\n <>\n {/* Large screen view */}\n <div\n className={`flex items-center rounded-full py-2 h-16 bg-white ${\n landingPage ? \"md:border-2 md:shadow-md \" : \"\"\n }`}\n >\n <div className=\"flex-grow grid grid-cols-10\">\n {/* Place selection */}\n <div className={\"col-span-4\"}>\n <p className=\" text-[11px] font-semibold pl-6\">{placeLabel}</p>\n <div\n className={`pl-8 ${\n landingPage ? \"\" : \"border-b border-gray-300 mx-2\"\n }`}\n >\n <PlacesAutocomplete onSelect={handleLocationSelect} />\n </div>\n </div>\n\n {/* Date selection */}\n {/* From */}\n <div\n className={`col-span-3 w-full ${\n landingPage ? \"border-l-2 border-gray-200\" : \"\"\n }`}\n >\n <div\n className={`flex items-center align-middle ${\n landingPage ? \"\" : \"border-b border-gray-300 mx-1\"\n }`}\n >\n {RenderFromForm()}\n </div>\n </div>\n {/* to */}\n <div\n className={`col-span-3 w-full ${\n landingPage ? \"border-l-2 border-gray-200\" : \"\"\n }`}\n >\n <div\n className={`flex items-center align-middle ${\n landingPage ? \"\" : \"border-b border-gray-300 mx-1\"\n }`}\n >\n {RenderToForm()}\n </div>\n </div>\n </div>\n\n {/* Search button */}\n <div className=\" mr-2 w-10\">\n <MagnifyingGlassIcon\n className={`h-8 text-white rounded-full p-2 cursor-pointer hidden md:inline-flex md:mx-2 hover:shadow-lg hover:scale-105\n ${landingPage ? \"bg-violet-700\" : \"bg-black\"}`}\n onClick={carsSearch}\n />\n </div>\n </div>\n </>\n ) : (\n <>\n {/* Small screen view */}\n {landingPage ? (\n <>\n <div className=\"w-full\"></div>\n {RenderMiniSearchBar()}\n </>\n ) : (\n <>\n {/* Display when search box is not open */}\n {!showSearchBox && (\n <>\n <div\n onClick={() => {\n setShowSearchBox(!showSearchBox);\n }}\n className=\"bg-gray-100 py-4 px-6 flex justify-between items-center w-full cursor-pointer \"\n >\n <div className=\"truncate overflow-hidden text-ellipsis\">\n <p className=\"font-bold text-xs \">\n {place ? place : \"Ciudad, aeropuerto, dirección\"}\n </p>\n <p className=\"font-bold text-xs \">\n {startDate ? format(startDate, \"dd/MM/yyyy\") : \"\"}\n {\" - \"}\n {endDate ? format(endDate, \"dd/MM/yyyy\") : \"\"}\n </p>\n </div>\n <ChevronDownIcon className=\"pl-3 h-6 text-violet-700\" />\n </div>\n </>\n )}\n {showSearchBox && (\n <>\n {/* Display when search box is open */}\n <div className=\"fixed top-20 left-0 w-full p-10 h-screen bg-gray-500 bg-opacity-40\">\n {RenderMiniSearchBar()}\n </div>\n </>\n )}\n </>\n )}\n </>\n )}\n </>\n );\n};\n\nexport default React.memo(SearchBar);\n``;\n","import React, { ReactNode } from \"react\";\n\ninterface Props {\n label?: string;\n icon?: ReactNode;\n divider?: Boolean;\n onClick?: () => void;\n}\n\nfunction MenuItems({ onClick, label, icon, divider }: Props) {\n return (\n <>\n <div\n className={`px-4 py-2 items-center hover:bg-gray-100 transition flex text-[13px] gap-x-2 cursor-pointer\n ${divider ? \"border-t-2 border-gray-200\" : \"\"}`}\n onClick={onClick}\n >\n {icon}\n\n <div>{label}</div>\n </div>\n </>\n );\n}\n\nexport default MenuItems;\n","\"use client\";\nimport React from \"react\";\nimport useRegisterModal from \"@/hooks/useRegisterModal\";\nimport LinksNavigation from \"./navigation\";\nimport {\n ArrowRightOnRectangleIcon,\n BanknotesIcon,\n BriefcaseIcon,\n ChatBubbleLeftEllipsisIcon,\n CurrencyDollarIcon,\n InformationCircleIcon,\n KeyIcon,\n LockClosedIcon,\n MapIcon,\n MapPinIcon,\n PhoneArrowUpRightIcon,\n PresentationChartLineIcon,\n QuestionMarkCircleIcon,\n ShieldCheckIcon,\n TruckIcon,\n UserIcon,\n UserPlusIcon,\n WalletIcon,\n} from \"@heroicons/react/24/outline\";\nimport useLoginModal from \"@/hooks/useLoginModal\";\nimport { signOut } from \"next-auth/react\";\n\nfunction useMenuOptionsData() {\n const registerModal = useRegisterModal();\n const loginModal = useLoginModal();\n const links = LinksNavigation();\n\n // Function to return an array of authenticated user menu options\n function AuthData() {\n return [\n {\n icon: <ChatBubbleLeftEllipsisIcon className=\"h-5 text-gray-600\" />,\n label: \"Solicitudes y mensajes\",\n onClick: links.handleClickMessage,\n },\n {\n divider: true,\n icon: <UserIcon className=\"h-5 text-gray-600\" />,\n label: \"Mi perfil\",\n onClick: links.handleClickProfile,\n },\n {\n icon: <WalletIcon className=\"h-5 text-gray-600\" />,\n label: \"Mi dinero\",\n onClick: links.handleClickWallet,\n },\n {\n icon: <TruckIcon className=\"h-5 text-gray-600\" />,\n label: \"VehÃculos\",\n onClick: links.handleClickOwnerCars,\n },\n {\n icon: <MapIcon className=\"h-5 text-gray-600\" />,\n label: \"Publicaciones\",\n onClick: links.handleClickOwnerPosts,\n },\n {\n icon: <BriefcaseIcon className=\"h-5 text-gray-600\" />,\n label: \"Viajes\",\n onClick: links.handleClickBooking,\n },\n {\n divider: true,\n icon: <BanknotesIcon className=\"h-5 text-gray-600\" />,\n label: \"¿Por qué alquilar?\",\n onClick: links.handleClickWhyRent,\n },\n {\n icon: <PresentationChartLineIcon className=\"h-5 text-gray-600\" />,\n label: \"¿Cómo Invertir?\",\n onClick: links.handleClickHowInvest,\n },\n {\n divider: true,\n icon: <QuestionMarkCircleIcon className=\"h-5 text-gray-600\" />,\n label: \"Ayuda para conductores y anfitriones\",\n onClick: links.handleClickHowWork,\n },\n {\n icon: <ShieldCheckIcon className=\"h-5 text-gray-600\" />,\n label: \"Coberturas y GarantÃa para tu Auto\",\n onClick: links.handleClickInsurance,\n },\n {\n icon: <InformationCircleIcon className=\"h-5 text-gray-600\" />,\n label: \"Términos y Condiciones\",\n onClick: links.handleClickTerms,\n },\n {\n icon: <LockClosedIcon className=\"h-5 text-gray-600\" />,\n label: \"PolÃticas de privacidad\",\n onClick: links.handleClickPolicies,\n },\n {\n divider: true,\n icon: <PhoneArrowUpRightIcon className=\"h-5 text-gray-600\" />,\n label: \"Servicio al cliente\",\n onClick: links.handleClickWhatsappSupport,\n },\n {\n icon: <ArrowRightOnRectangleIcon className=\"h-5 text-gray-600\" />,\n label: \"Cerrar sesión\",\n onClick: () => {\n signOut();\n },\n },\n ];\n }\n // Function to return an array of non-authenticated user menu options\n function NotAuthData() {\n return [\n {\n icon: <ArrowRightOnRectangleIcon className=\"h-5 text-gray-600\" />,\n label: \"Login\",\n onClick: loginModal.onOpen,\n },\n {\n icon: <UserPlusIcon className=\"h-5 text-gray-600\" />,\n label: \"Registro\",\n onClick: registerModal.onOpen,\n },\n {\n divider: true,\n icon: <CurrencyDollarIcon className=\"h-5 text-gray-600\" />,\n label: \"Publicá tu auto\",\n onClick: links.handleClickBecomeHost,\n },\n {\n label: \"Publicá tu auto para Uber/Cabify\",\n icon: <MapPinIcon className=\"h-5 text-gray-600\" />,\n onClick: links.handleClickCabify,\n },\n {\n divider: true,\n icon: <BanknotesIcon className=\"h-5 text-gray-600\" />,\n label: \"¿Por qué alquilar?\",\n onClick: links.handleClickWhyRent,\n },\n {\n icon: <PresentationChartLineIcon className=\"h-5 text-gray-600\" />,\n label: \"¿Cómo Invertir?\",\n onClick: links.handleClickHowInvest,\n },\n {\n divider: true,\n icon: <QuestionMarkCircleIcon className=\"h-5 text-gray-600\" />,\n label: \"¿Cómo funciona ATUA?\",\n onClick: links.handleClickHowWork,\n },\n {\n icon: <ShieldCheckIcon className=\"h-5 text-gray-600\" />,\n label: \"Coberturas y GarantÃa para tu Auto\",\n onClick: links.handleClickInsurance,\n },\n {\n icon: <InformationCircleIcon className=\"h-5 text-gray-600\" />,\n label: \"Términos y Condiciones\",\n onClick: links.handleClickTerms,\n },\n {\n icon: <LockClosedIcon className=\"h-5 text-gray-600\" />,\n label: \"PolÃticas de privacidad\",\n onClick: links.handleClickPolicies,\n },\n {\n icon: <PhoneArrowUpRightIcon className=\"h-5 text-gray-600\" />,\n label: \"Servicio al cliente\",\n onClick: links.handleClickWhatsappSupport,\n },\n ];\n }\n\n function NavBarMenuData() {\n return [\n {\n label: \"¿Por qué alquilar?\",\n onClick: links.handleClickWhyRent,\n },\n {\n label: \"¿Cómo Invertir?\",\n onClick: links.handleClickHowInvest,\n },\n {\n label: \"Publicá tu auto\",\n onClick: links.handleClickBecomeHost,\n },\n {\n label: \"Publicá tu auto para Uber/Cabify\",\n onClick: links.handleClickCabify,\n },\n ];\n }\n return {\n AuthData,\n NotAuthData,\n NavBarMenuData,\n };\n}\n\nexport default useMenuOptionsData;\n","// ThemeButton.js\n\"use client\";\nimport Image from \"next/image\";\nimport LinksNavigation from \"@/constants/navigation\";\n\ninterface Props {\n isBooking?: boolean;\n}\n\nconst WhatsappButton = ({ isBooking }: Props) => {\n const links = LinksNavigation();\n\n const handleButtonClick = () => {\n if (isBooking) {\n // For booking clicks\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: \"button_click\",\n category: \"whatsapp_button\",\n action: \"click\",\n label: \"Booking\",\n });\n links.handleClickWhatsappSupport();\n } else {\n // For support clicks\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: \"button_click\",\n category: \"whatsapp_button\",\n action: \"click\",\n label: \"Support\",\n });\n links.handleClickWhatsappSupport();\n }\n };\n\n return (\n <>\n <button\n className=\"hover:scale-110 active:scale-100 rounded-full hover:menu-items-hover text-text duration-200 min-w-[45px]\"\n onClick={handleButtonClick}\n >\n <Image\n src={\"/assets/images/Whatsapp2.svg\"}\n alt={\"whatsapp\"}\n width={0}\n height={0}\n priority\n className=\"cursor-pointer w-[45px] h-auto\"\n />\n </button>\n </>\n );\n};\n\nexport default WhatsappButton;\n","\"use client\";\nimport React, { useCallback, useEffect, useMemo, useState } from \"react\";\nimport { Bars3Icon } from \"@heroicons/react/24/solid\";\nimport MenuItems from \"./MenuItems\";\nimport useMenuOptionsData from \"@/constants/menuData\";\nimport LinksNavigation from \"@/constants/navigation\";\nimport Avatar from \"./Avatar\";\nimport { useSession } from \"next-auth/react\";\nimport { getUserInformation } from \"@/services/api/user\";\nimport { User } from \"@/services/models/user\";\nimport useOnclickOutside from \"react-cool-onclickoutside\";\nimport WhatsappButton from \"./WhatsappButton\";\n\ninterface Props {\n isHomePage?: Boolean;\n}\n\n/**\n * UserMenu component displays the user menu with various options based on the user's authentication status.\n */\n\nfunction UserMenu({ isHomePage }: Props) {\n const { data: session } = useSession();\n const [isMenuOpen, setIsMenuOpen] = useState(false);\n const menu = useMenuOptionsData();\n const [user, setUser] = useState<User>();\n\n // Fetch user information from the server.\n const fetchData = useMemo(\n () => async () => {\n try {\n const accessToken = session?.user.accessToken;\n if (accessToken) {\n const userInfo = await getUserInformation({\n token: accessToken,\n });\n setUser(userInfo);\n }\n } catch (error) {\n console.error(\"Error fetching data:\", error);\n }\n },\n [session?.user.accessToken]\n );\n\n // Fetch user data when the component mounts or when the session data changes.\n useEffect(() => {\n fetchData();\n }, [fetchData]);\n\n // Generate the menu items based on the user's authentication status.\n const menuItems = useMemo(() => {\n if (session) {\n return menu.AuthData();\n }\n return menu.NotAuthData();\n }, [menu, session]);\n\n // Toggle the menu open/closed state.\n const toggleOpen = useCallback(() => {\n setIsMenuOpen((value) => !value);\n }, []);\n\n //Handle clicks outside the menu to close it.\n const refMenu = useOnclickOutside(() => {\n setIsMenuOpen(false);\n });\n\n return (\n <>\n <div className=\"flex items-center space-x-3 justify-end text-gray-500\">\n {isHomePage && <WhatsappButton isBooking />}\n\n {/* Render the user menu icon and avatar */}\n <div\n ref={refMenu}\n className=\"flex items-center space-x-1 p-2 rounded-xl hover:bg-gray-100 hover:scale-105\"\n onClick={toggleOpen}\n >\n <Bars3Icon className=\"h-6\" />\n\n <div className=\"flex w-[40px] h-[40px] rounded-full object-containt overflow-hidden border-white\">\n <Avatar photo={user?.avatar} width={40} height={40} />\n </div>\n </div>\n </div>\n\n {/* Render the user menu options when the menu is open */}\n {isMenuOpen && (\n <div\n ref={refMenu}\n className=\"absolute rounded-xl shadow-lg w-[100vw] md:w-[320px] md:mr-2 bg-white overflow-hidden right-0 top-[72px] text-sm\"\n >\n <div>\n {menuItems.map(({ onClick, label, icon, divider }) => (\n <MenuItems\n key={label}\n label={label}\n icon={icon}\n onClick={onClick}\n divider={divider}\n />\n ))}\n </div>\n </div>\n )}\n </>\n );\n}\n\nexport default UserMenu;\n","import React, { ReactNode } from \"react\";\n\ninterface Props {\n label: string;\n onClick: () => void;\n}\n\nexport default function LinksNavbarItem({ label, onClick }: Props) {\n return (\n <>\n <div\n className=\"flex items-center gap-x-2 text-sm font-semibold cursor-pointer hover:scale-105\"\n onClick={onClick}\n >\n <p>{label}</p>\n </div>\n </>\n );\n}\n","import React from \"react\";\nimport LinksNavbarItem from \"./LinksNavbarItem\";\nimport useMenuOptionsData from \"@/constants/menuData\";\n\nfunction LinksNavBar() {\n const menu = useMenuOptionsData();\n\n return (\n <div className=\"w-full hidden lg:flex items-center justify-end space-x-4 lg:space-x-8\">\n {menu.NavBarMenuData().map(({ onClick, label }) => (\n <LinksNavbarItem key={label} label={label} onClick={onClick} />\n ))}\n </div>\n );\n}\n\nexport default LinksNavBar;\n","/**\n * Header.js\n * This file contains the Header component, which represents the header section of the application.\n */\n\nimport React from \"react\";\nimport SearchBar from \"./SearchBar/SearchBar\";\nimport Logo from \"./Logo\";\nimport UserMenu from \"./UserMenu\";\nimport LinksNavBar from \"./LinksNavBar\";\n\n/**\n * Props interface for the Header component.\n * @interface Props\n * @property {boolean} [isHomePage] - Indicates if the current page is the home page.\n */\n\ninterface Props {\n isHomePage?: Boolean;\n}\n\n/**\n * Header component represents the header section of the application. It consists of the logo,\n * search bar (only on non-homepage), and the user menu.\n */\n\nfunction Header({ isHomePage }: Props) {\n return (\n <header\n className={`sticky top-0 z-40 bg-white shadow-md px-3 py-2 \n flex justify-between items-center gap-x-6 ${\n isHomePage ? \"h-[72px]\" : \" h-20\"\n }`}\n >\n {/* Render the logo */}\n <Logo />\n\n {/* Render the search bar on non-homepage */}\n <div\n className={`${isHomePage ? \"lg:px-0\" : \"lg:px-8\"} w-full`}\n >\n {!isHomePage && <SearchBar />}\n {isHomePage && <LinksNavBar />}\n </div>\n\n {/* Render the user menu */}\n <UserMenu isHomePage={isHomePage} />\n </header>\n );\n}\n\nexport default React.memo(Header);\n","import React from \"react\";\n\ninterface Props {\n title: string;\n}\n\nfunction FooterTitle({ title }: Props) {\n return <h5 className=\"font-bold text-gray-800 text-sm\">{title}</h5>;\n}\n\nexport default FooterTitle;\n","import React from \"react\";\n\ninterface Props {\n label: string;\n onClick?: () => void;\n ariaLabel?: string;\n}\n\nfunction FooterLink({ onClick, label, ariaLabel }: Props) {\n return (\n <p\n onClick={onClick}\n className=\"text-xs/[10px] cursor-pointer\"\n aria-label={ariaLabel}\n >\n {label}\n </p>\n );\n}\n\nexport default FooterLink;\n","import Image from \"next/image\";\n\ninterface Props {\n image: string;\n onClick: () => void;\n ariaLabel: string;\n}\n\nfunction FooterSocialMedia({ onClick, image, ariaLabel }: Props) {\n return (\n <Image\n src={`/assets/images/${image}`}\n alt={ariaLabel}\n width={30}\n height={30}\n priority\n className=\"cursor-pointer h-[30px] w-[30px]\"\n onClick={onClick}\n aria-label={ariaLabel}\n />\n );\n}\n\nexport default FooterSocialMedia;\n","import Image from \"next/image\";\nimport React from \"react\";\n\ninterface Props {\n image: string;\n onClick: () => void;\n ariaLabel: string;\n}\n\nfunction FooterStore({ onClick, image, ariaLabel }: Props) {\n return (\n <Image\n src={`/assets/images/${image}`}\n alt={ariaLabel}\n width={100}\n height={30}\n loading=\"lazy\"\n className=\"cursor-pointer h-[30px] w-[100px]\"\n onClick={onClick}\n aria-label={ariaLabel}\n />\n );\n}\n\nexport default FooterStore;\n","\"use client\";\nimport React from \"react\";\nimport FooterTitle from \"./FooterTitle\";\nimport FooterLink from \"./FooterLink\";\nimport FooterSocialMedia from \"./FooterSocialMedia\";\nimport FooterStore from \"./FooterStore\";\nimport LinksNavigation from \"@/constants/navigation\";\n\nfunction Footer() {\n const links = LinksNavigation();\n\n return (\n <footer className=\"grid grid-cols-1 lg:grid-cols-4 gap-y-10 px-30 py-8 mt-8 bg-gray-100 text-gray-600 justify-center text-center\">\n {/* Accesos */}\n <div className=\"footer-column\">\n <FooterTitle title=\"Accesos\" />\n <FooterLink\n onClick={links.handleClickTerms}\n label=\"Términos y Condiciones\"\n ariaLabel=\"Términos y Condiciones de ATUA Rent a Car\"\n />\n <FooterLink\n onClick={links.handleClickPolicies}\n label=\"PolÃticas de privacidad\"\n ariaLabel=\"PolÃticas de privacidad de ATUA Rent a Car\"\n />\n </div>\n\n {/* Contacto */}\n <div className=\"footer-column\">\n <FooterTitle title=\"¿Tenés dudas? Escribinos\" />\n <FooterLink\n onClick={links.handleClickWhatsappBooking}\n label=\"Alquileres: +54 9 11 3144-4404\"\n ariaLabel=\"Contacto de alquileres\"\n />\n <FooterLink\n onClick={links.handleClickWhatsappCaptureCar}\n label=\"Captación de autos: +54 9 11 4445-9333\"\n ariaLabel=\"Contacto de captación de autos\"\n />\n <FooterLink\n onClick={links.handleClickWhatsappSupport}\n label=\"Servicio al cliente: +54 9 11 2528-8822\"\n ariaLabel=\"Servicio al cliente de ATUA Rent a Car\"\n />\n <FooterLink\n label=\"support@atuarental.com\"\n ariaLabel=\"Correo de soporte de ATUA Rent a Car\"\n />\n </div>\n\n {/* Ubicación */}\n <div className=\"footer-column\">\n <FooterTitle title=\"ATUA RENT A CAR\" />\n <FooterLink\n onClick={links.handleClickGoogleMaps}\n label=\"Costa Rica 3966, Palermo (CABA) CP.1176.\"\n ariaLabel=\"Dirección de ATUA Rent a Car\"\n />\n <FooterLink\n label=\"de lunes a viernes de 9:00 a 19.00\"\n ariaLabel=\"Horario de atención de lunes a viernes\"\n />\n <FooterLink\n label=\"sábados y domingos de 9:00 a 18.00\"\n ariaLabel=\"Horario de atención de fines de semana\"\n />\n </div>\n\n {/* Redes Sociales y Tiendas */}\n <div className=\"footer-column\">\n <div className=\"flex items-center gap-3 justify-center\">\n <FooterSocialMedia\n onClick={links.handleClickFacebook}\n image=\"facebook.svg\"\n ariaLabel=\"Visitar página de Facebook de ATUA\"\n />\n <FooterSocialMedia\n onClick={links.handleClickInstagram}\n image=\"instagram.svg\"\n ariaLabel=\"Visitar página de Instagram de ATUA\"\n />\n <FooterSocialMedia\n onClick={links.handleClickWhatsappSupport}\n image=\"whatsapp.svg\"\n ariaLabel=\"Contactar vÃa WhatsApp con ATUA\"\n />\n </div>\n <div className=\"flex items-center gap-3 justify-center\">\n <FooterStore\n onClick={links.handleClickPlayStore}\n image=\"play-store.svg\"\n ariaLabel=\"Descargar aplicación de ATUA en Google Play Store\"\n />\n <FooterStore\n onClick={links.handleClickAppStore}\n image=\"app-store.svg\"\n ariaLabel=\"Descargar aplicación de ATUA en App Store\"\n />\n </div>\n </div>\n </footer>\n );\n}\n\nexport default Footer;\n","\"use client\";\nimport React, { useCallback, useState } from \"react\";\nimport Modal from \"../Modal\";\nimport useRegisterModal from \"@/hooks/useRegisterModal\";\nimport useLoginModal from \"@/hooks/useLoginModal\";\nimport RegisterFooter from \"./RegisterFooter\";\nimport RegisterBody from \"./RegisterBody\";\n\ninterface Props {\n validatedEmail?: string;\n}\n\nconst RegisterModal = ({ validatedEmail }: Props) => {\n const registerModal = useRegisterModal();\n const loginModal = useLoginModal();\n const [isLoading, setIsLoading] = useState(false);\n\n const onToggle = useCallback(() => {\n registerModal.onClose();\n loginModal.onOpen();\n }, [loginModal, registerModal]);\n\n return (\n <>\n <Modal\n disabled={isLoading}\n isOpen={registerModal.isOpen}\n title=\"Registrate\"\n onClose={registerModal.onClose}\n body={<RegisterBody validatedEmail={validatedEmail} />}\n footer={<RegisterFooter onClick={onToggle} />}\n />\n </>\n );\n};\n\nexport default RegisterModal;\n","\"use client\";\nimport React, { useCallback, useState } from \"react\";\nimport Modal from \"../Modal\";\nimport useLoginModal from \"@/hooks/useLoginModal\";\nimport useRegisterModal from \"@/hooks/useRegisterModal\";\nimport LoginBody from \"./LoginBody\";\nimport LoginFooter from \"./LoginFooter\";\n\ninterface Props {\n validatedEmail?: string;\n}\n\nconst LoginModal = ({ validatedEmail }: Props) => {\n const loginModal = useLoginModal();\n const registerModal = useRegisterModal();\n\n const onToggle = useCallback(() => {\n loginModal.onClose();\n registerModal.onOpen();\n }, [loginModal, registerModal]);\n\n return (\n <Modal\n isOpen={loginModal.isOpen}\n title=\"Inicia Sesión\"\n onClose={loginModal.onClose}\n body={<LoginBody validatedEmail={validatedEmail} />}\n footer={<LoginFooter onClick={onToggle} />}\n />\n );\n};\n\nexport default LoginModal;\n","\"use client\";\nimport React, { ReactNode, useEffect } from \"react\";\nimport Header from \"./Header/Header\";\nimport Footer from \"./Footer/Footer\";\nimport RegisterModal from \"./Modals/register/RegisterModal\";\nimport LoginModal from \"./Modals/login/LoginModal\";\nimport { useJsApiLoader } from \"@react-google-maps/api\";\nimport WhatsappButton from \"./Header/WhatsappButton\";\nimport useEmailStore from \"@/hooks/useEmailStore\";\n\ninterface Props {\n children?: ReactNode;\n isHomePage?: Boolean;\n isPostACar?: Boolean;\n}\n//List of libraries to be loaded from Google Maps API.\nconst libraries = [\"places\" as const];\n\nfunction MainScreen({ children, isHomePage, isPostACar }: Props) {\n const { email } = useEmailStore();\n\n //Load Google Maps API libraries using useJsApiLoader hook.\n const { isLoaded } = useJsApiLoader({\n id: \"google-map-script\",\n googleMapsApiKey: process.env.NEXT_PUBLIC_GOOGLE_MAPS_API_KEY as string,\n libraries: libraries,\n });\n\n if (isLoaded) {\n return (\n <>\n <Header isHomePage={isHomePage} />\n <RegisterModal validatedEmail={email} />\n <LoginModal validatedEmail={email} />\n {children}\n <Footer />\n {!isHomePage && (\n <div className=\"fixed bottom-10 z-50 right-5 flex justify-end\">\n <WhatsappButton isBooking={!isPostACar} />\n </div>\n )}\n </>\n );\n }\n // If Google Maps API libraries are not loaded yet, return an empty fragment.\n return <></>;\n}\n\nexport default MainScreen;\n","import React from \"react\";\n\ninterface Props {\n title?: string;\n subtitle?: string;\n center?: Boolean;\n}\n\nfunction FormsHeading({ title, subtitle, center }: Props) {\n return (\n <div className={center ? \"text-center\" : \"text-start pb-3\"}>\n <div className=\"text-xl font-bold\">{title}</div>\n <div className=\"text-sm font-light text-neutral-500 mt-2\">{subtitle}</div>\n </div>\n );\n}\n\nexport default FormsHeading;\n","import { XMarkIcon } from \"@heroicons/react/24/solid\";\nimport React, { ReactNode, useCallback, useEffect, useState } from \"react\";\nimport ModalsButton from \"../Buttons/ModalsButton\";\n\ninterface Props {\n isOpen: boolean;\n onClose: () => void;\n onSubmit?: () => void;\n title?: string;\n body?: ReactNode;\n footer?: ReactNode;\n actionLabel?: string;\n disabled?: boolean;\n secondaryAction?: () => void;\n secondaryActionLabel?: string;\n}\n\nconst Modal = ({\n isOpen,\n onClose,\n onSubmit,\n title,\n body,\n actionLabel,\n footer,\n disabled,\n secondaryAction,\n secondaryActionLabel,\n}: Props) => {\n const [showModal, setShowModal] = useState(false);\n\n useEffect(() => {\n setShowModal(isOpen);\n }, [isOpen]);\n\n const handleClose = useCallback(() => {\n if (disabled) return;\n\n setShowModal(false);\n setTimeout(onClose, 300);\n }, [onClose, disabled]);\n\n const handleSubmit = useCallback(() => {\n if (disabled || !onSubmit) return;\n\n onSubmit();\n }, [onSubmit, disabled]);\n\n const handleSecondaryAction = useCallback(() => {\n if (disabled || !secondaryAction) return;\n\n secondaryAction();\n }, [secondaryAction, disabled]);\n\n if (!isOpen) return null;\n\n return (\n <>\n <div className=\"flex justify-center items-center fixed inset-0 z-50 overflow-x-hidden overflow-y-auto bg-neutral-800/70 outline-none focus:outline-none\">\n <div className=\"relative w-full md:w-4/7 lg:w-3/7 xl:w-2/6 my-6 mx-auto max-h-[calc(100vh-1rem)] h-full lg:h-auto\">\n <div\n className={`translate duration-300 h-full ${\n showModal\n ? \"translate-y-0 opacity-100\"\n : \"translate-y-full opacity-0\"\n }`}\n >\n <div className=\"flex flex-col w-full h-full lg:h-auto border-0 rounded-lg shadow-lg bg-white outline-none max-h-[calc(100vh-1rem)]\">\n {/* Header */}\n <div className=\"flex items-center p-3 rounded-t justify-center relative border-b-[1px]\">\n <button\n className=\"absolute left-9 p-1 border-0 hover:opacity-70 transition\"\n onClick={handleClose}\n >\n <XMarkIcon className=\"h-4\" />\n </button>\n <div className=\"text-base font-semibold\">{title}</div>\n </div>\n {/* Body */}\n <div className=\"relative p-6 flex-auto overflow-y-auto max-h-[calc(100vh-9rem)]\">\n {body}\n </div>\n {/* Footer */}\n <div className=\"flex flex-col gap-2 p-5\">\n <div className=\"flex flex-row items-center gap-3 w-full\">\n {secondaryAction && secondaryActionLabel && (\n <ModalsButton\n disabled={disabled}\n label={secondaryActionLabel}\n onClick={handleSecondaryAction}\n outline\n />\n )}\n {actionLabel && (\n <ModalsButton\n disabled={disabled}\n label={actionLabel}\n onClick={handleSubmit}\n />\n )}\n </div>\n {footer}\n </div>\n </div>\n </div>\n </div>\n </div>\n </>\n );\n};\n\nexport default Modal;\n","import { XMarkIcon } from \"@heroicons/react/24/solid\";\nimport React, { ReactNode, useCallback, useEffect, useState } from \"react\";\nimport ModalsButton from \"../Buttons/ModalsButton\";\n\ninterface Props {\n isOpen: boolean;\n onClose: () => void;\n title?: string;\n body?: ReactNode;\n actionLabel?: string;\n onSubmit?: () => void;\n disabled?: boolean;\n secondaryAction?: () => void;\n secondaryActionLabel?: string;\n}\n\nfunction SmallModal({\n isOpen,\n onClose,\n onSubmit,\n title,\n body,\n actionLabel,\n disabled,\n secondaryAction,\n secondaryActionLabel,\n}: Props) {\n const [showModal, setShowModal] = useState(false);\n\n useEffect(() => {\n setShowModal(isOpen);\n }, [isOpen]);\n\n const handleClose = useCallback(() => {\n setShowModal(false);\n setTimeout(() => {\n onClose();\n }, 300);\n }, [onClose]);\n\n const handleSubmit = useCallback(() => {\n if (disabled || !onSubmit) {\n return;\n }\n onSubmit();\n }, [onSubmit, disabled]);\n\n const handleSecondaryAction = useCallback(() => {\n if (disabled || !secondaryAction) {\n return;\n }\n\n secondaryAction();\n }, [secondaryAction, disabled]);\n\n if (!isOpen) {\n return null;\n }\n return (\n <>\n <div className=\"justify-center items-center flex overflow-x-hidden overflow-y-auto fixed inset-0 z-50 outline-none focus:outline-none bg-neutral-800/70\">\n <div className=\" relative w-[400px] my-6 mx-auto h-auto \">\n {/*content*/}\n <div\n className={` translate duration-300 h-full ${\n showModal ? \"translate-y-0\" : \"translate-y-full\"\n } ${showModal ? \"opacity-100\" : \"opacity-0\"}`}\n >\n <div className=\" translate h-full lg:h-auto md:h-auto border-0 rounded-lg shadow-lg relative flex flex-col w-full bg-white outline-none focus:outline-none\">\n {/*header*/}\n <div className=\" flex items-center p-5 rounded-t justify-center relative border-b-[1px] \">\n <button\n className=\" p-1 border-0 hover:opacity-70 transition absolute left-9\"\n onClick={handleClose}\n >\n <XMarkIcon className=\"h-4\" />\n </button>\n <div className=\" text-base font-semibold\">{title}</div>\n </div>\n {/*body*/}\n <div className=\"relative p-5 flex-auto\">{body}</div>\n {/*footer*/}\n <div className=\"flex flex-col gap-2 p-5\">\n <div className=\" flex flex-row items-center gap-3 w-full \">\n {secondaryAction && secondaryActionLabel && (\n <ModalsButton\n disabled={disabled}\n label={secondaryActionLabel}\n onClick={handleSecondaryAction}\n outline\n />\n )}\n {actionLabel && (\n <ModalsButton\n disabled={disabled}\n label={actionLabel}\n onClick={handleSubmit}\n />\n )}\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </>\n );\n}\n\nexport default SmallModal;\n","\"use client\";\nimport React from \"react\";\nimport SmallModal from \"../SmallModal\";\nimport useDeleteAccountModal from \"@/hooks/useDeleteAccountModal\";\nimport useAlertModal from \"@/hooks/useAlertModal\";\nimport SupportLink from \"@/components/SupportLink\";\n\ninterface Props {\n onSubmit?: () => void;\n title?: string;\n subtitle?: string;\n support?: boolean;\n actionLabel?: string;\n}\n\nconst AlertModal = ({ onSubmit, title, subtitle, support = false, \n actionLabel = \"Aceptar\" }: Props) => {\n const alertModal = useAlertModal();\n\n return (\n <SmallModal\n isOpen={alertModal.isOpen}\n title=\"Alerta\"\n onClose={alertModal.onClose}\n body={\n <>\n <div className=\"items-center text-center space-y-2\">\n <p className=\"text-lg font-bold\">{title}</p>\n <p>{subtitle}</p>\n </div>\n {support && (\n <div className=\"flex justify-center items-center pt-4\">\n <SupportLink />\n </div>\n )}\n </>\n }\n actionLabel={actionLabel}\n onSubmit={onSubmit || alertModal.onClose} />\n );\n};\n\nexport default AlertModal;\n","\"use client\";\nimport React, { useEffect, useState } from \"react\";\nimport FormsHeading from \"../FormsHeading\";\nimport Input from \"../../Inputs/Input\";\nimport LinksNavigation from \"@/constants/navigation\";\nimport ModalsButton from \"@/components/Buttons/ModalsButton\";\nimport { signIn } from \"next-auth/react\";\nimport { addDaysToString } from \"@/commons/helpers/dateUtils\";\nimport useAlertModal from \"@/hooks/useAlertModal\";\nimport AlertModal from \"../createVehicle/AlertModal\";\nimport { usePathname, useSearchParams } from \"next/navigation\";\nimport useBookingDates from \"@/hooks/useBookingDates\";\n\ninterface Props {\n validatedEmail?: string;\n}\n\nfunction LoginBody({ validatedEmail }: Props) {\n const alertModal = useAlertModal();\n const links = LinksNavigation();\n const [emailInput, setEmailInput] = useState(validatedEmail ?? \"\");\n const [passwordInput, setPasswordInput] = useState(\"\");\n const [isLoading, setIsLoading] = useState(false);\n const searchParams = useSearchParams();\n const pathname = usePathname();\n const { location, startDate, endDate } = useBookingDates();\n\n // Redirect URL after successful login.\n const [redirectUrl, setRedirectUrl] = useState(\n `/cars/search?location=${location}&period=${addDaysToString(\n startDate,\n 0\n )},${addDaysToString(endDate, 0)}`\n );\n\n useEffect(() => {\n if (searchParams) {\n const params = new URLSearchParams(searchParams);\n if (params.has(\"error\")) {\n alertModal.onOpen();\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [searchParams]);\n\n useEffect(() => {\n if (\n pathname &&\n pathname !== \"/\" &&\n pathname !== \"/login\" &&\n pathname !== \"/register\"\n ) {\n if (searchParams) {\n const params = new URLSearchParams(searchParams);\n setRedirectUrl(`${pathname}?${params.toString()}`);\n } else {\n setRedirectUrl(pathname);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [searchParams]);\n\n // Function to handle form submission.\n const onSubmit = async () => {\n setIsLoading(true);\n //Next Auth signIn function\n const result = await signIn(\"credentials\", {\n email: emailInput,\n password: passwordInput,\n callbackUrl: redirectUrl,\n redirect: true,\n });\n setIsLoading(false);\n };\n\n return (\n <>\n <AlertModal\n title={\"Credenciales Inválidas\"}\n subtitle={\n \"! Ops! Algo salió mal. Revisa si tus credenciales son correctas. Si el error persiste, comunÃcate con el servicio al cliente.\"\n }\n />\n\n <div className=\"flex flex-col gap-4\">\n {/* Render the heading for the login form */}\n <FormsHeading\n title=\"Bienvenido a ATUA\"\n subtitle=\"¡Entrá a tu cuenta!\"\n />\n\n {/* Render the email input */}\n <Input\n id=\"email\"\n label=\"Email\"\n disabled={isLoading}\n required\n value={emailInput}\n onChange={(e) => setEmailInput(e.target.value)}\n />\n\n {/* Render the password input */}\n <Input\n id=\"password\"\n label=\"Password\"\n type=\"password\"\n disabled={isLoading}\n required\n value={passwordInput}\n onChange={(e) => setPasswordInput(e.target.value)}\n />\n\n {/* Render the \"Forgot Password\" link */}\n <p className=\"text-right\">\n <span\n onClick={links.handleClickForgotPassword}\n className=\"text-sm text-violet-700 cursor-pointer hover:underline\"\n >\n Olvidaste tu contraseña\n </span>\n </p>\n\n {/* Render the login button */}\n <div className=\"pt-5\">\n <ModalsButton\n label=\"Inicia Sesión\"\n onClick={onSubmit}\n disabled={isLoading}\n disabledText=\"Iniciando sesión...\"\n />\n </div>\n </div>\n </>\n );\n}\n\nexport default LoginBody;\n","import React from \"react\";\n\ninterface Props {\n onClick?: () => void;\n}\n\nfunction LoginFooter({ onClick }: Props) {\n return (\n <div className=\"flex flex-col gap-4 mt-3\">\n <div className=\"text-neutral-500 text-center mt-4 font-light text-sm\">\n <p>\n ¿Primera vez en ATUA?\n <span\n onClick={onClick}\n className=\" text-violet-700 cursor-pointer hover:underline\"\n >\n {\" \"}\n Registrate\n </span>\n </p>\n </div>\n </div>\n );\n}\n\nexport default LoginFooter;\n","import { create } from \"zustand\";\n\n// Define an interface for the RegisterModalStore\ninterface ValidatePhoneUserModalStore {\n isOpen: boolean;\n onOpen: () => void;\n onClose: () => void;\n}\n// Create a custom hook called useRegisterModal using Zustand's create function\nconst useValidatePhoneUserModal = create<ValidatePhoneUserModalStore>(\n (set) => ({\n isOpen: false,\n onOpen: () => set({ isOpen: true }),\n onClose: () => set({ isOpen: false }),\n })\n);\n\nexport default useValidatePhoneUserModal;\n","import React, {\n Dispatch,\n SetStateAction,\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\ninterface Props {\n setCompleteCode: Dispatch<SetStateAction<string>>;\n}\n\nfunction CodeInput({ setCompleteCode }: Props) {\n const [code, setCode] = useState<string>(\"\");\n const inputRefs = Array.from({ length: 4 }, () =>\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useRef<HTMLInputElement>(null)\n );\n\n useEffect(() => {\n if (code.length === 4) {\n setCompleteCode(code);\n }\n }, [code, setCompleteCode]);\n\n const handleChange = (index: number, value: string) => {\n const newCode = code.split(\"\");\n newCode[index] = value;\n setCode(newCode.join(\"\"));\n\n if (value && index < 3) {\n inputRefs[index + 1].current?.focus();\n }\n };\n\n const handleKeyDown = (\n index: number,\n event: React.KeyboardEvent<HTMLInputElement>\n ) => {\n if (event.key === \"Backspace\" && index > 0 && !code[index]) {\n inputRefs[index - 1].current?.focus();\n }\n };\n\n return (\n <div className=\"flex\">\n {Array.from({ length: 4 }).map((_, index) => (\n <input\n key={index}\n ref={inputRefs[index]}\n type=\"number\"\n maxLength={1}\n className=\"w-12 h-12 text-center pl-3 border rounded-md mr-2\"\n value={code[index] || \"\"}\n onChange={(e) => handleChange(index, e.target.value)}\n onKeyDown={(e) => handleKeyDown(index, e)}\n />\n ))}\n </div>\n );\n}\n\nexport default CodeInput;\n","import React, { Dispatch, SetStateAction } from \"react\";\nimport CodeInput from \"./CodeInput\";\nimport { requestPhoneCodeVerification } from \"@/services/api/user\";\n\ninterface Props {\n phone: string | undefined;\n setCode: Dispatch<SetStateAction<string>>;\n}\n\nfunction ValidatePhoneUserMessage({ phone, setCode }: Props) {\n const requestPhoneCode = async () => {\n try {\n const body = {\n phone: phone,\n };\n const res = await requestPhoneCodeVerification({\n body: body,\n });\n } catch (error) {\n console.error(\"Error fetching data:\", error);\n }\n };\n\n return (\n <>\n <div className=\"sitems-center\">\n <p className=\"font-bold text-center text-lg\">\n Confirmá tu número de teléfono\n </p>\n <p className=\"text-center text-sm py-4\">\n Introduce el código que te enviamos por SMS al {phone}\n </p>\n\n <div className=\"flex w-full items-center justify-center pt-4 pb-8\">\n <CodeInput setCompleteCode={setCode} />\n </div>\n\n <p className=\"text-sm text-center\">\n ¿No has recibido un código?{\" \"}\n <span\n className=\"font-semibold underline cursor-pointer\"\n onClick={requestPhoneCode}\n >\n Reenviar código\n </span>\n </p>\n </div>\n </>\n );\n}\n\nexport default ValidatePhoneUserMessage;\n","import { create } from \"zustand\";\n\n// Define an interface for the RegisterModalStore\ninterface CreatedUserModalStore {\n isOpen: boolean;\n onOpen: () => void;\n onClose: () => void;\n}\n// Create a custom hook called useRegisterModal using Zustand's create function\nconst useCreatedUserModal = create<CreatedUserModalStore>((set) => ({\n isOpen: false,\n onOpen: () => set({ isOpen: true }),\n onClose: () => set({ isOpen: false }),\n}));\n\nexport default useCreatedUserModal;\n","\"use client\";\nimport { useState, useEffect } from \"react\";\nimport SmallModal from \"../SmallModal\";\nimport ValidatePhoneUserMessage from \"./ValidatePhoneUserMessage\";\nimport useValidatePhoneUserModal from \"@/hooks/useValidatePhoneUser\";\nimport { createUser, phoneCodeVerification } from \"@/services/api/user\";\nimport AlertModal from \"../createVehicle/AlertModal\";\nimport useAlertModal from \"@/hooks/useAlertModal\";\nimport useCreatedUserModal from \"@/hooks/useCreatedUserModal\";\n\ninterface Props {\n name: string;\n lastname: string;\n phone: string;\n email: string;\n password: string;\n}\nfunction ValidatePhoneUserModal({\n name,\n lastname,\n phone,\n email,\n password,\n}: Props) {\n const [code, setCode] = useState(\"\");\n const [isLoading, setIsLoading] = useState(false);\n const validatePhoneUserModal = useValidatePhoneUserModal();\n const alertModal = useAlertModal();\n const [subtittle, setSubtittle] = useState(\"\");\n const [showSupportLink, setShowSupportLink] = useState(false);\n const createdUserModal = useCreatedUserModal();\n\n const createNewUser = async () => {\n try {\n const body = {\n email: email,\n password: password,\n phone: phone,\n first_name: name,\n last_name: lastname,\n };\n\n const res = await createUser({\n body: body,\n });\n if (res.code_transaction === \"OK\") {\n // Enviar el evento de registro al dataLayer\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: \"user_registration\",\n user: {\n email: email,\n name: name,\n lastname: lastname,\n phone: phone,\n },\n });\n\n createdUserModal.onOpen();\n validatePhoneUserModal.onClose();\n }\n } catch (error) {\n console.error(\"Error creating user:\", error);\n setSubtittle(\n \"Hemos tenido un error interno. Intenta nuevamente. Si el error persiste, comunÃcate con soporte.\"\n );\n setShowSupportLink(true);\n alertModal.onOpen();\n }\n };\n\n const validatePhoneCode = async () => {\n if (!phone) {\n console.error(\"Phone number is not available for validation\");\n return;\n }\n\n setIsLoading(true);\n try {\n const body = {\n phone: phone,\n code: code,\n };\n const res = await phoneCodeVerification({\n body: body,\n });\n if (res.code_transaction === \"OK\") {\n await createNewUser();\n } else {\n throw new Error(\"Invalid phone code\");\n }\n } catch (error) {\n console.error(\"Error validating phone code:\", error);\n setSubtittle(\"¡Código invalido! Intenta nuevamente.\");\n setShowSupportLink(false);\n alertModal.onOpen();\n }\n setIsLoading(false);\n };\n\n return (\n <>\n <SmallModal\n isOpen={validatePhoneUserModal.isOpen}\n title=\"Validación\"\n onClose={validatePhoneUserModal.onClose}\n body={<ValidatePhoneUserMessage phone={phone} setCode={setCode} />}\n actionLabel=\"Continuar\"\n onSubmit={validatePhoneCode}\n disabled={isLoading}\n />\n <AlertModal\n title={\"Ups! Algo salió mal!\"}\n subtitle={subtittle}\n support={showSupportLink}\n />\n </>\n );\n}\n\nexport default ValidatePhoneUserModal;\n","import GuideImage from \"@/components/Guide/GuideImage\";\nimport React from \"react\";\n\nfunction CreatedUserMessage() {\n return (\n <>\n <div className=\"sitems-center\">\n <div className=\"flex w-full justify-center m-auto mb-10 mt-4\">\n <GuideImage image={\"good.svg\"} />\n </div>\n <p className=\"font-bold text-center text-lg\">Registro completo</p>\n </div>\n </>\n );\n}\n\nexport default CreatedUserMessage;\n","\"use client\";\nimport React, { useState } from \"react\";\nimport SmallModal from \"../SmallModal\";\nimport useCreatedUserModal from \"@/hooks/useCreatedUserModal\";\nimport CreatedUserMessage from \"./CreatedUserMessage\";\nimport { signIn } from \"next-auth/react\";\nimport useRegisterModal from \"@/hooks/useRegisterModal\";\n\ninterface Props {\n email: string;\n password: string;\n}\n\nfunction CreatedUserModal({ email, password }: Props) {\n const createdUserModal = useCreatedUserModal();\n const [isLoading, setIsLoading] = useState(false);\n const registerModal = useRegisterModal();\n\n // Redirect URL after successful login.\n const redirectUrl = \"/user/onboarding\";\n\n const onSubmit = async () => {\n setIsLoading(true);\n //Next Auth signIn function\n const result = await signIn(\"credentials\", {\n email: email,\n password: password,\n callbackUrl: redirectUrl,\n redirect: true,\n });\n registerModal.onClose();\n setIsLoading(false);\n };\n\n return (\n <>\n <SmallModal\n isOpen={createdUserModal.isOpen}\n title=\"Usuario Creado\"\n onClose={createdUserModal.onClose}\n body={<CreatedUserMessage />}\n actionLabel=\"Continuar\"\n onSubmit={onSubmit}\n />\n </>\n );\n}\n\nexport default CreatedUserModal;\n","import React, { useState } from \"react\";\nimport FormsHeading from \"../FormsHeading\";\nimport Input from \"../../Inputs/Input\";\nimport CheckInput from \"@/components/Inputs/CheckInput\";\nimport LinksNavigation from \"@/constants/navigation\";\nimport PhoneInputWithCountrySelect, {\n type Value,\n} from \"react-phone-number-input\";\nimport \"react-phone-number-input/style.css\";\nimport ModalsButton from \"@/components/Buttons/ModalsButton\";\nimport useValidatePhoneUserModal from \"@/hooks/useValidatePhoneUser\";\nimport ValidatePhoneUserModal from \"../validateUser/ValidatePhoneUserModal\";\nimport {\n requestPhoneCodeVerification,\n userVerification,\n} from \"@/services/api/user\";\nimport useLoginModal from \"@/hooks/useLoginModal\";\nimport CreatedUserModal from \"./CreatedUserModal\";\n\ninterface Props {\n validatedEmail?: string;\n}\n\nfunction RegisterBody({ validatedEmail }: Props) {\n const links = LinksNavigation();\n const [name, setName] = useState<string>(\"\");\n const [lastname, setLastname] = useState<string>(\"\");\n const [phone, setPhone] = useState(\"\");\n const [email, setEmail] = useState(validatedEmail ?? \"\");\n const [password, setPassword] = useState(\"\");\n const [isTernsAcepted, setIsTernsAcepted] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [passwordError, setPasswordError] = useState(\"\");\n const [emailError, setEmailError] = useState(\"\");\n const [phoneError, setPhoneError] = useState(\"\");\n const validatePhoneUserModal = useValidatePhoneUserModal();\n const loginModal = useLoginModal();\n\n const handlePasswordChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const inputValue = event.target.value.slice(0, 4); // Limit to 4 characters\n const numericValue = inputValue.replace(/[^0-9]/g, \"\"); // Allow only numbers\n\n setPassword(numericValue);\n\n if (numericValue.length !== 4) {\n setPasswordError(\"La contraseña debe ser numérica de 4 dÃgitos\");\n } else {\n setPasswordError(\"\");\n }\n };\n\n const handleEmailChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const newEmail = event.target.value;\n setEmail(newEmail);\n\n if (!/^[\\w-]+(\\.[\\w-]+)*@([\\w-]+\\.)+[a-zA-Z]{2,7}$/.test(newEmail)) {\n setEmailError(\"El correo electrónico no es válido\");\n } else {\n setEmailError(\"\");\n }\n };\n\n const isFormValid =\n name &&\n lastname &&\n emailError === \"\" &&\n passwordError === \"\" &&\n phone !== \"\" &&\n email !== \"\" &&\n isTernsAcepted;\n\n const handleRegister = async (event: React.FormEvent<HTMLFormElement>) => {\n event.preventDefault(); // Prevent form submission\n\n if (isFormValid) {\n try {\n const res = await userVerification({ body: { email } });\n\n if (res.code_transaction === \"OK\") {\n await requestPhoneCode(); // Ensure this is called before opening the modal\n validatePhoneUserModal.onOpen();\n }\n } catch (error) {\n loginModal.onOpen();\n console.error(\"Error verifying user:\", error);\n }\n }\n };\n\n const requestPhoneCode = async () => {\n try {\n const body = {\n phone: phone,\n };\n await requestPhoneCodeVerification({ body });\n } catch (error) {\n console.error(\"Error fetching data:\", error);\n }\n };\n\n return (\n <>\n <form className=\"flex flex-col gap-4\" onSubmit={handleRegister}>\n <FormsHeading title=\"Bienvenido a ATUA\" subtitle=\"¡Creá una cuenta!\" />\n <Input\n id=\"name\"\n value={name}\n onChange={(e) => setName(e.target.value)}\n label=\"Nombres\"\n type=\"text\"\n required\n />\n\n <Input\n id=\"lastname\"\n value={lastname}\n onChange={(e) => setLastname(e.target.value)}\n label=\"Apellidos\"\n type=\"text\"\n required\n />\n <Input\n id=\"email\"\n label=\"Email\"\n required\n value={email}\n onChange={handleEmailChange}\n errors={emailError}\n />\n <Input\n id=\"password\"\n label=\"Password\"\n type=\"password\"\n disabled={isLoading}\n required\n value={password}\n onChange={handlePasswordChange}\n errors={passwordError}\n />\n <PhoneInputWithCountrySelect\n international\n countryCallingCodeEditable={false}\n defaultCountry=\"AR\"\n value={phone}\n onChange={(phone: Value) => {\n setPhone(phone);\n }}\n style={{\n borderWidth: \"2px\",\n borderColor: phoneError ? \"#EF4444\" : \"#D4D4D4\",\n background: \"white\",\n padding: \"11px\",\n color: \"#A1A1AA\",\n fontWeight: \"300\",\n borderRadius: \"6px\",\n outline: \"none\",\n }}\n />\n {phoneError && (\n <p className=\"text-red-500 text-xs -mt-2\">{phoneError}</p>\n )}\n\n <CheckInput\n onToggle={(value) => {\n setIsTernsAcepted(value);\n }}\n >\n <p>\n {\"Al continuar acepto todos los \"}\n <span\n onClick={links.handleClickTerms}\n className=\"text-violet-700 cursor-pointer hover:underline\"\n >\n términos y condiciones.\n </span>\n </p>\n </CheckInput>\n <div className=\"pt-5\">\n <ModalsButton\n label=\"Registrate\"\n disabled={isLoading || !isFormValid}\n type=\"submit\"\n />\n </div>\n </form>\n {validatePhoneUserModal.isOpen && (\n <ValidatePhoneUserModal\n name={name}\n lastname={lastname}\n phone={phone}\n email={email}\n password={password}\n />\n )}\n <CreatedUserModal email={email} password={password} />\n </>\n );\n}\n\nexport default RegisterBody;\n","import React from \"react\";\n\ninterface Props {\n onClick?: () => void;\n}\n\nfunction RegisterFooter({ onClick }: Props) {\n return (\n <div className=\"flex flex-col gap-4 mt-3\">\n <div className=\"text-neutral-500 text-center mt-4 font-light text-sm\">\n <p>{\" ¿Ya tenés una cuenta? \"}\n \n <span\n onClick={onClick}\n className=\" text-violet-700 cursor-pointer hover:underline\"\n >\n Inicia Sesión\n </span>\n </p>\n </div>\n </div>\n );\n}\n\nexport default RegisterFooter;\n","\"use client\";\nimport LinksNavigation from \"@/constants/navigation\";\nimport Image from \"next/image\";\nimport React from \"react\";\n\nfunction SupportLink() {\n const links = LinksNavigation();\n\n return (\n <>\n <div\n onClick={links.handleClickWhatsappSupport}\n className=\" flex cursor-pointer items-center align-middle\"\n >\n <Image\n src={\"/assets/images/Whatsapp2.svg\"}\n alt={\"whatsapp\"}\n width={0}\n height={0}\n priority\n className=\"cursor-pointer w-[30px] h-auto\"\n />\n <p className=\"text-violet-700 pl-2 underline\">Consultar a soporte</p>\n </div>\n </>\n );\n}\n\nexport default SupportLink;\n","import { create } from \"zustand\";\n\n// Define an interface for the RegisterModalStore\ninterface AlertModalStore {\n isOpen: boolean;\n onOpen: () => void;\n onClose: () => void;\n}\n// Create a custom hook called useRegisterModal using Zustand's create function\nconst useAlertModal = create<AlertModalStore>((set) => ({\n isOpen: false,\n onOpen: () => set({ isOpen: true }),\n onClose: () => set({ isOpen: false }),\n}));\n\nexport default useAlertModal;\n","import { create } from \"zustand\";\n\ninterface EmailStore {\n email: string;\n setEmail: (email: string) => void;\n resetEmail: () => void;\n}\n\nconst useEmailStore = create<EmailStore>((set) => ({\n email: \"\",\n setEmail: (email) => set({ email }),\n resetEmail: () => set({ email: \"\" }),\n}));\n\nexport default useEmailStore;\n","import { create } from \"zustand\";\n\n// Define an interface for the LoginModalStore\ninterface LoginModalStore {\n isOpen: boolean;\n onOpen: () => void;\n onClose: () => void;\n}\n// Create a custom hook called useLoginModal using Zustand's create function\nconst useLoginModal = create<LoginModalStore>((set) => ({\n isOpen: false,\n onOpen: () => set({ isOpen: true }),\n onClose: () => set({ isOpen: false }),\n}));\n\nexport default useLoginModal;\n","import { create } from \"zustand\";\n\n// Define an interface for the RegisterModalStore\ninterface RegisterModalStore {\n isOpen: boolean;\n onOpen: () => void;\n onClose: () => void;\n}\n// Create a custom hook called useRegisterModal using Zustand's create function\nconst useRegisterModal = create<RegisterModalStore>((set) => ({\n isOpen: false,\n onOpen: () => set({ isOpen: true }),\n onClose: () => set({ isOpen: false }),\n}));\n\nexport default useRegisterModal;\n","import { createConnection } from \"./connection\";\n\nexport async function getUserInformation({ token }: { token: string }) {\n try {\n const res = await createConnection({\n url: \"/users/summary/\",\n method: \"GET\",\n headers: { Authorization: `Bearer ${token}` },\n });\n return res.user_info;\n } catch (error) {\n throw new Error(\"Error fetching data: \");\n }\n}\n\nexport async function updateUserProfile({\n token,\n data,\n}: {\n token: string;\n data: FormData;\n}) {\n try {\n const res = await createConnection({\n url: \"/users/update/\",\n method: \"PUT\",\n data: data,\n headers: { Authorization: `Bearer ${token}` },\n });\n return res;\n } catch (error) {\n console.error(\"Error fetching data:\", error);\n throw new Error(\"Error fetching data\");\n }\n}\n\nexport async function getUserDocumentVerication({ token }: { token: string }) {\n try {\n // Send a GET request\n const res = await createConnection({\n url: \"/users/document-verification/summary/\",\n method: \"GET\",\n headers: { Authorization: `Bearer ${token}` },\n });\n // Extract and return the \"user_info\" property from the API response data.\n return res;\n } catch (error) {\n // If there's an error during the data fetching process, throw a new Error with a generic message.\n throw new Error(\"Error fetching data: \");\n }\n}\n\nexport async function updateUserDocumentVerication({\n token,\n data,\n params,\n}: {\n token: string;\n data: FormData;\n params: {\n document_verification_id: number | null;\n };\n}) {\n try {\n // Send a GET request to retrieve user trip data with authorization\n const res = await createConnection({\n url: \"/users/document-verification/update/\",\n method: \"PUT\",\n data: data,\n params: params,\n headers: { Authorization: `Bearer ${token}` },\n });\n return res;\n } catch (error) {\n console.error(\"Error fetching data:\", error);\n throw new Error(\"Error fetching data\");\n }\n}\n\nexport async function deleteUser({ token }: { token: string }) {\n // Send a GET request\n const res = await createConnection({\n url: \"/users/delete/\",\n method: \"POST\",\n headers: { Authorization: `Bearer ${token}` },\n });\n // Extract and return the \"user_info\" property from the API response data.\n return res;\n}\n\nexport async function requestChangePassword({\n body,\n}: {\n body: {\n email: string | null;\n };\n}) {\n try {\n // Send a GET request to retrieve user trip data with authorization\n const res = await createConnection({\n url: \"/users/process-recovery-password/\",\n method: \"POST\",\n body: body,\n });\n return res;\n // Extract and return the \"data\" property from the API response data.\n } catch (error: any) {\n if (\n error.response &&\n error.response.data &&\n error.response.data.message &&\n error.response.data.message.email\n ) {\n return error.response.data.message.email;\n }\n if (error.response && error.response.data && error.response.data.message) {\n return error.response.data.message;\n }\n }\n}\n\nexport async function changeUserPassword({\n body,\n}: {\n body: {\n email: string | null;\n code: string | null;\n new_password: string | null;\n };\n}) {\n try {\n // Send a GET request to retrieve user trip data with authorization\n const res = await createConnection({\n url: \"/users/recovery-password/\",\n method: \"POST\",\n body: body,\n });\n return res;\n // Extract and return the \"data\" property from the API response data.\n } catch (error: any) {\n if (error.response && error.response.data && error.response.data.message) {\n return error.response.data.message;\n }\n }\n}\n\nexport async function requestPhoneCodeVerification({\n body,\n}: {\n body: {\n phone: string | undefined;\n };\n}) {\n try {\n // Send a GET request to retrieve user trip data with authorization\n const res = await createConnection({\n url: \"/sms/send-verification-code/\",\n method: \"POST\",\n body: body,\n });\n return res;\n // Extract and return the \"data\" property from the API response data.\n } catch (error) {\n console.error(\"Error fetching data:\", error);\n throw new Error(\"Error fetching data\");\n }\n}\n\nexport async function phoneCodeVerification({\n body,\n}: {\n body: {\n phone: string | undefined;\n code: string | null;\n };\n}) {\n try {\n // Send a GET request to retrieve user trip data with authorization\n const res = await createConnection({\n url: \"/sms/verification-code/\",\n method: \"POST\",\n body: body,\n });\n return res;\n // Extract and return the \"data\" property from the API response data.\n } catch (error) {\n console.error(\"Error fetching data:\", error);\n throw new Error(\"Error fetching data\");\n }\n}\n\nexport async function createUser({\n body,\n}: {\n body: {\n phone: string | undefined;\n password: string | undefined;\n email: string | undefined;\n first_name?: string | undefined;\n last_name?: string | undefined;\n document_number?: string | undefined;\n document_type?: string | undefined;\n };\n}) {\n try {\n // Send a GET request to retrieve user trip data with authorization\n const res = await createConnection({\n url: \"/users/create/\",\n method: \"POST\",\n body: body,\n });\n return res;\n // Extract and return the \"data\" property from the API response data.\n } catch (error: any) {\n console.error(\"Error fetching data:\", error);\n throw new Error(\"Error fetching data\");\n }\n}\n\nexport async function userVerification({\n body,\n}: {\n body: {\n email: string | undefined;\n };\n}) {\n try {\n // Send a GET request to retrieve user trip data with authorization\n const res = await createConnection({\n url: \"/users/verification/\",\n method: \"POST\",\n body: body,\n });\n return res;\n // Extract and return the \"data\" property from the API response data.\n } catch (error: any) {\n console.error(\"Error fetching data:\", error);\n throw new Error(\"Error fetching data\");\n }\n}\n","// extracted by mini-css-extract-plugin"],"names":["__webpack_exports__","Z","router","useRouter","searchParams","useSearchParams","location","startDate","startHour","endDate","endHour","useBookingDates","startDateString","addDaysToString","addDays","Date","endDateString","startHourString","formatTime","endHourString","handleSearch","newLocation","params","URLSearchParams","set","toString","replace","concat","formatDate","inputDate","datePart","timePart","split","dateObj","day","getDate","month","getMonth","year","getFullYear","formattedDay","String","padStart","formattedMonth","formatDateToSpanishLocale","originalDate","console","error","formattedDate","format","locale","es","capitalizeFirstLetter","date","days","newDate","setDate","toISOString","substring","restPeriodDays","fechas","length","fecha1","daysMiliseconds","fecha2","getTime","formatDateToYYYYMMDD","Number","isNaN","formattedYear","formatDateToYYYYMMDDFromISO","isoDate","hours","getHours","minutes","getMinutes","formatHour","datetime","time","param","label","onClick","disabled","outline","small","disabledText","type","react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__","jsx","button","className","p","photo","height","width","Image","blurDataURL","placeholder","loading","quality","alt","src","links","LinksNavigation","div","handleClickHome","priority","SearchBar_DateTimePicker","pickDate","setPickDate","hour","setHour","minDate","jsx_runtime","Fragment","jsxs","ReactDatePicker","selected","onChange","dateSelected","dateFormat","calendarClassName","dayClassName","toDateString","disabledKeyboardNavigation","showPopperArrow","popperPlacement","ChevronDownIcon","hourSelected","showTimeSelect","showTimeSelectOnly","timeIntervals","timeCaption","SearchBar_SearchBar","React","landingPage","isLarge","setIsLarge","useState","window","innerWidth","isMedNavBar","setIsMedNavBar","placeName","setPlaceName","place","setLocation","setPlace","setStartDate","setStartHour","setEndDate","setEndHour","searchCars","SearchCars","showSearchBox","setShowSearchBox","placeLabel","carsSearch","dataLayer","push","event","category","action","searchDetails","useEffect","handleResize","addEventListener","removeEventListener","handleLocationSelect","lat","lng","refBoxSearch","useOnclickOutside","RenderFromForm","DateTimePicker","RenderToForm","RenderMiniSearchBar","ref","PlacesAutocomplete","onSelect","ModalsButton","MagnifyingGlassIcon","Header_MenuItems","icon","divider","menuData","registerModal","useRegisterModal","loginModal","useLoginModal","AuthData","ChatBubbleLeftEllipsisIcon","handleClickMessage","UserIcon","handleClickProfile","WalletIcon","handleClickWallet","TruckIcon","handleClickOwnerCars","MapIcon","handleClickOwnerPosts","BriefcaseIcon","handleClickBooking","BanknotesIcon","handleClickWhyRent","PresentationChartLineIcon","handleClickHowInvest","QuestionMarkCircleIcon","handleClickHowWork","ShieldCheckIcon","handleClickInsurance","InformationCircleIcon","handleClickTerms","LockClosedIcon","handleClickPolicies","PhoneArrowUpRightIcon","handleClickWhatsappSupport","ArrowRightOnRectangleIcon","signOut","NotAuthData","onOpen","UserPlusIcon","CurrencyDollarIcon","handleClickBecomeHost","MapPinIcon","handleClickCabify","NavBarMenuData","Header_WhatsappButton","isBooking","Header_UserMenu","isHomePage","data","session","useSession","isMenuOpen","setIsMenuOpen","menu","useMenuOptionsData","user","setUser","fetchData","useMemo","accessToken","userInfo","getUserInformation","token","menuItems","toggleOpen","useCallback","value","refMenu","WhatsappButton","Bars3Icon","Avatar","avatar","map","MenuItems","LinksNavbarItem","Header_LinksNavBar","Header_Header","header","Logo","SearchBar","LinksNavBar","UserMenu","Footer_FooterTitle","title","h5","Footer_FooterLink","ariaLabel","aria-label","Footer_FooterSocialMedia","image","Footer_FooterStore","Footer_Footer","footer","FooterTitle","FooterLink","handleClickWhatsappBooking","handleClickWhatsappCaptureCar","handleClickGoogleMaps","FooterSocialMedia","handleClickFacebook","handleClickInstagram","FooterStore","handleClickPlayStore","handleClickAppStore","register_RegisterModal","validatedEmail","isLoading","setIsLoading","onToggle","onClose","Modal","isOpen","body","RegisterBody","RegisterFooter","login_LoginModal","LoginBody","LoginFooter","libraries","components_MainScreen","children","isPostACar","email","useEmailStore","isLoaded","useJsApiLoader","id","googleMapsApiKey","process","Header","RegisterModal","LoginModal","Footer","subtitle","center","onSubmit","actionLabel","secondaryAction","secondaryActionLabel","showModal","setShowModal","handleClose","setTimeout","handleSubmit","handleSecondaryAction","XMarkIcon","support","alertModal","useAlertModal","SmallModal","SupportLink","emailInput","setEmailInput","passwordInput","setPasswordInput","pathname","usePathname","redirectUrl","setRedirectUrl","has","signIn","password","callbackUrl","redirect","AlertModal","FormsHeading","Input","required","e","target","span","handleClickForgotPassword","useValidatePhoneUserModal","create","validateUser_CodeInput","setCompleteCode","code","setCode","inputRefs","Array","from","useRef","handleChange","index","newCode","join","current","focus","handleKeyDown","key","_","input","maxLength","onKeyDown","validateUser_ValidatePhoneUserMessage","phone","requestPhoneCode","requestPhoneCodeVerification","CodeInput","useCreatedUserModal","validateUser_ValidatePhoneUserModal","name","lastname","validatePhoneUserModal","subtittle","setSubtittle","showSupportLink","setShowSupportLink","createdUserModal","createNewUser","res","createUser","first_name","last_name","code_transaction","validatePhoneCode","phoneCodeVerification","ValidatePhoneUserMessage","register_CreatedUserMessage","GuideImage","register_CreatedUserModal","CreatedUserMessage","register_RegisterBody","setName","setLastname","setPhone","setEmail","setPassword","isTernsAcepted","setIsTernsAcepted","passwordError","setPasswordError","emailError","setEmailError","phoneError","setPhoneError","isFormValid","handleRegister","preventDefault","userVerification","form","newEmail","test","errors","numericValue","inputValue","slice","PhoneInputWithCountrySelect","international","countryCallingCodeEditable","defaultCountry","style","borderWidth","borderColor","background","padding","color","fontWeight","borderRadius","CheckInput","ValidatePhoneUserModal","CreatedUserModal","resetEmail","createConnection","url","method","headers","Authorization","user_info","updateUserProfile","getUserDocumentVerication","updateUserDocumentVerication","deleteUser","requestChangePassword","response","message","changeUserPassword"],"sourceRoot":""}