'use client'; import React, { useState } from 'react'; import { useEditAddressMutation, useRemoveAddressMutation, useSetDefaultAddressMutation } from '@akinon/next/data/client/address'; import { Address } from '@akinon/next/types'; import { AddressForm } from './address-form'; import { Button, Modal, Radio } from '@theme/components'; import { useLocalization } from '@akinon/next/hooks'; export interface Props { address: Address; index: number; } export const AddressCard = (props: Props) => { const { t } = useLocalization(); const { address, index } = props; const [isEditAddressModalOpen, setIsEditAddressModalOpen] = useState(false); const [editAddress] = useEditAddressMutation(); const [removeAddress, { isLoading: removeAddressLoading }] = useRemoveAddressMutation(); const [setDefaultAddress] = useSetDefaultAddressMutation(); const [isRemoveAddressModalOpen, setRemoveAddressModalOpen] = useState(false); const onSubmit = async (data) => { await editAddress({ ...data, invalidateTag: 'Addresses' }); setIsEditAddressModalOpen(false); }; const handleRemoveAddress = async (pk: number) => { try { await removeAddress({ id: pk, invalidateTag: 'Addresses' }) .unwrap() .then(() => setRemoveAddressModalOpen(false)) .catch((err) => console.error(err)); } catch (error) { console.error('Error in operation:', error); } }; return (
{address.line}
{address.township.name}/{address.city.name}
{t('account.address_book.modal.delete_description')}