'use client'; import { useSearchParams, useRouter } from 'next/navigation'; import React, { useMemo } from 'react'; import { ArrowLeft } from 'iconsax-react'; import { useAuthStore } from '@/zustand/authStore'; import { AddressDetailsModal } from './components/AddressDetailsModal'; import { useAddressForm } from './hooks/useAddressForm'; import { useGetAddressById } from '../hooks/useAddressData'; import { useGetAbout } from '@/app/[name]/(Main)/about/hooks/useAboutData'; function OrderTrackingPage() { const router = useRouter(); const params = useSearchParams(); const id = params.get('id'); const editMode = !!id; const { data: addressResponse, isLoading: isLoadingAddress } = useGetAddressById(id); const { data: aboutData } = useGetAbout(); const address = addressResponse?.data; const user = useAuthStore((state) => state.user); const restaurant = aboutData?.data; const fallbackPosition = useMemo<[number, number] | null>(() => { if (editMode && address?.latitude && address?.longitude) { return [address.latitude, address.longitude]; } const latFromQuery = Number(params?.get('lat')); const lonFromQuery = Number(params?.get('lon')); if (!Number.isNaN(latFromQuery) && !Number.isNaN(lonFromQuery) && latFromQuery !== 0 && lonFromQuery !== 0) { return [latFromQuery, lonFromQuery]; } if (restaurant?.latitude && restaurant?.longitude) { return [restaurant.latitude, restaurant.longitude]; } return null; }, [ editMode, address?.latitude, address?.longitude, params, restaurant?.latitude, restaurant?.longitude ]); const { formData, isPending, handleFormDataChange, submitAddress } = useAddressForm({ selectedPosition: null, selectedAddress: null, fallbackPosition, initialPhone: user?.number || '', editMode, addressData: address || null, }); if (editMode && isLoadingAddress) { return (
در حال بارگذاری...