From 931cc76a47f39989b18ffc0d8bfc4b265b5a79c0 Mon Sep 17 00:00:00 2001 From: hamid zarghami Date: Sat, 6 Jun 2026 11:48:22 +0330 Subject: [PATCH] update address --- .../[id]/components/AddressSelectionModal.tsx | 15 +++++++++ .../profile/address/hooks/useAddressData.ts | 3 +- .../new/components/AddressDetailsModal.tsx | 8 +++-- .../address/new/components/AddressDisplay.tsx | 19 ++++++----- .../(Profile)/profile/address/new/page.tsx | 32 +++++++++++++++---- .../address/new/utils/formatAddress.ts | 6 +++- .../[name]/(Profile)/profile/address/page.tsx | 7 +++- 7 files changed, 70 insertions(+), 20 deletions(-) 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) { )}
- +