import React from "react"; import Image from "next/image"; import { useRouter } from 'next/router'; import { useMutation } from '@apollo/client'; import { DELETE_CLIENT_LEGAL_ENTITY } from '@/lib/graphql'; interface LegalEntity { id: string; shortName: string; fullName?: string; form?: string; legalAddress?: string; actualAddress?: string; taxSystem?: string; responsiblePhone?: string; responsiblePosition?: string; responsibleName?: string; accountant?: string; signatory?: string; registrationReasonCode?: string; ogrn?: string; inn: string; vatPercent: number; bankDetails: Array<{ id: string; name: string; accountNumber: string; bankName: string; bik: string; correspondentAccount: string; }>; } interface LegalEntityListBlockProps { legalEntities: LegalEntity[]; onRefetch: () => void; onEdit?: (entity: LegalEntity) => void; } const LegalEntityListBlock: React.FC = ({ legalEntities, onRefetch, onEdit }) => { const router = useRouter(); const [deleteLegalEntity] = useMutation(DELETE_CLIENT_LEGAL_ENTITY, { onCompleted: () => { console.log('Юридическое лицо удалено'); onRefetch(); }, onError: (error) => { console.error('Ошибка удаления юридического лица:', error); alert('Ошибка удаления юридического лица'); } }); const handleDelete = async (id: string, name: string) => { if (window.confirm(`Вы уверены, что хотите удалить юридическое лицо "${name}"?`)) { try { await deleteLegalEntity({ variables: { id } }); } catch (error) { console.error('Ошибка удаления:', error); } } }; if (legalEntities.length === 0) { return (
Юридические лица
У вас пока нет добавленных юридических лиц. Нажмите кнопку "Добавить юридическое лицо" для создания первого.
); } return (
Юридические лица
{legalEntities.map((entity, idx) => (
{entity.shortName}
ИНН {entity.inn}
router.push('/profile-requisites')} >
", }} />
Реквизиты компании
onEdit && onEdit(entity)} aria-label="Редактировать юридическое лицо" >
Редактировать
Редактировать
handleDelete(entity.id, entity.shortName)} onKeyDown={e => (e.key === 'Enter' || e.key === ' ') && handleDelete(entity.id, entity.shortName)} style={{ display: 'inline-flex', cursor: 'pointer', transition: 'color 0.2s' }} onMouseEnter={e => { const path = e.currentTarget.querySelector('path'); if (path) path.setAttribute('fill', '#ec1c24'); }} onMouseLeave={e => { const path = e.currentTarget.querySelector('path'); if (path) path.setAttribute('fill', '#D0D0D0'); }} >
Удалить
))}
); }; export default LegalEntityListBlock;