diff --git a/src/app/[name]/(Dialogs)/order/checkout/[id]/components/AddressSelectionModal.tsx b/src/app/[name]/(Dialogs)/order/checkout/[id]/components/AddressSelectionModal.tsx index 5963699..4848fbc 100644 --- a/src/app/[name]/(Dialogs)/order/checkout/[id]/components/AddressSelectionModal.tsx +++ b/src/app/[name]/(Dialogs)/order/checkout/[id]/components/AddressSelectionModal.tsx @@ -6,6 +6,7 @@ import Modal from '@/components/utils/Modal'; import Link from 'next/link'; import { useEffect, useState } from 'react'; import { ef } from '@/lib/helpers/utfNumbers'; +import { Edit2 } from 'iconsax-react'; const formatAddress = (address: Address) => { return `${address.address}، ${address.city}، ${address.province}`; @@ -78,6 +79,20 @@ export const AddressSelectionModal = ({

تلفن: {ef(address.phone)}

+
+ e.stopPropagation()} + > + + +
))} diff --git a/src/app/[name]/(Profile)/profile/address/hooks/useAddressData.ts b/src/app/[name]/(Profile)/profile/address/hooks/useAddressData.ts index 70c1fe6..0762a53 100644 --- a/src/app/[name]/(Profile)/profile/address/hooks/useAddressData.ts +++ b/src/app/[name]/(Profile)/profile/address/hooks/useAddressData.ts @@ -29,8 +29,9 @@ export const useUpdateAddress = () => { const queryClient = useQueryClient(); return useMutation({ mutationFn: updateAddress, - onSuccess: () => { + onSuccess: (_data, variables) => { queryClient.invalidateQueries({ queryKey: ["addresses"] }); + queryClient.invalidateQueries({ queryKey: ["address", variables.id] }); }, }); }; diff --git a/src/app/[name]/(Profile)/profile/address/new/components/AddressDetailsModal.tsx b/src/app/[name]/(Profile)/profile/address/new/components/AddressDetailsModal.tsx index 3d2dafb..b91199f 100644 --- a/src/app/[name]/(Profile)/profile/address/new/components/AddressDetailsModal.tsx +++ b/src/app/[name]/(Profile)/profile/address/new/components/AddressDetailsModal.tsx @@ -2,12 +2,13 @@ import AnimatedBottomSheet from '@/components/bottomsheet/AnimatedBottomSheet'; import Button from '@/components/button/PrimaryButton'; import { AddressDisplay } from './AddressDisplay'; import { AddressForm } from './AddressForm'; -import { NominatimReverseGeocodingResponse } from '../../types/Types'; +import { Address, NominatimReverseGeocodingResponse } from '../../types/Types'; import { Location } from 'iconsax-react'; interface AddressDetailsModalProps { visible: boolean; selectedAddress: NominatimReverseGeocodingResponse | null; + existingAddress?: Address | null; formData: { title: string; addressDetails: string; @@ -26,6 +27,7 @@ interface AddressDetailsModalProps { export const AddressDetailsModal = ({ visible, selectedAddress, + existingAddress, formData, isPending, editMode = false, @@ -41,13 +43,13 @@ export const AddressDetailsModal = ({ blurOpacity={null} noBlur visible={visible} - title='آدرس' + title={editMode ? 'ویرایش آدرس' : 'آدرس'} onClick={onClose} overrideClassName='bg-container!' >
- + {editMode && onChangePosition && (
+
+ ); + } + if (!restaurant) { - return null + return null; } return ( @@ -82,6 +101,7 @@ function OrderTrackingPage() { { + return `${address.address}، ${address.city}، ${address.province}`; +}; export const formatSelectedAddress = (selectedAddress: NominatimReverseGeocodingResponse | null): string => { if (!selectedAddress) { diff --git a/src/app/[name]/(Profile)/profile/address/page.tsx b/src/app/[name]/(Profile)/profile/address/page.tsx index f360f93..939a200 100644 --- a/src/app/[name]/(Profile)/profile/address/page.tsx +++ b/src/app/[name]/(Profile)/profile/address/page.tsx @@ -72,6 +72,11 @@ function UserAddressesPage({ }: Props) { return `${address.address}، ${address.city}، ${address.province}`; }; + const getEditHref = (addressId: string) => { + const base = `address/new?id=${addressId}`; + return redirect ? `${base}&redirect=${encodeURIComponent(redirect)}` : base; + }; + return (
@@ -134,7 +139,7 @@ function UserAddressesPage({ }: Props) { )}
- +