'use client' import authAxios from '@/utils/axios'; import { MapPin, Edit, Trash2 } from 'lucide-react'; import Link from 'next/link'; import { useRouter } from 'next/navigation'; import React, { useEffect, useState } from 'react'; const Addresses = () => { const [addresses, setAddresses] = useState([]); const [error, setError] = useState(''); const [isDeleting, setIsDeleting] = useState(false); const router = useRouter(); const fetchAddresses = async () => { try { const response = await authAxios.get('/account/addresses/'); setAddresses(response.data); } catch (error) { setError('Failed to fetch addresses'); console.error(error); } }; const handleEdit = (id) => { router.push(`/accounts/profile/addresses/${id}`); }; const handleDelete = async (id) => { if (!window.confirm('Are you sure you want to delete this address?')) return; setIsDeleting(true); try { await authAxios.delete(`/account/addresses/${id}/`); setAddresses(addresses.filter(address => address.id !== id)); } catch (error) { setError('Failed to delete address'); console.error(error); } finally { setIsDeleting(false); } }; useEffect(() => { fetchAddresses(); }, []); return (

Address

Add new address

{error &&

{error}

} {addresses.map((address) => (

{address.first_name} {address.last_name}

{address.company &&

{address.company}

}

{address.address} {address.apartment && `, ${address.apartment}`}

{address.city}, {address.country} - {address.zipcode}

Phone: {address.phone}

))}
); }; export default Addresses;