import React from 'react';
import { useParams, useNavigate } from 'react-router-dom';
import { useTranslation } from 'react-i18next';
import { useCompany } from '@/api/hooks';
import { Tabs, TabItem } from '@/components/shared/Tabs';
import { Card } from '@/components/ui/Card';
import { Button } from '@/components/ui/Button';
import { Badge } from '@/components/ui/Badge';
import { EmptyState } from '@/components/ui/EmptyState';
import { Skeleton } from '@/components/ui/Skeleton';
import { Avatar } from '@/components/ui/Avatar';
import { TagPicker } from '@/components/tags/TagPicker';
import { AddressList } from '@/components/AddressList';
export function CompanyDetailPage() {
const { id } = useParams<{ id: string }>();
const navigate = useNavigate();
const { t } = useTranslation();
const { data: company, isLoading, isError } = useCompany(id);
if (isLoading) {
return (
);
}
if (isError || !company) {
return (
navigate('/companies')}>{t('common.back')}}
/>
);
}
const contacts = company.contacts ?? [];
const overviewTab: TabItem = {
key: 'overview',
label: t('companies.overview'),
content: (
{company.name}
{company.account_number || '—'}
{company.industry ? {company.industry} : —
}
{company.phone || '—'}
{company.email ? (
{company.email}
) : —
}
{company.website ? (
{company.website}
) : —
}
{company.description && (
{company.description}
)}
),
};
const contactsTab: TabItem = {
key: 'contacts',
label: t('companies.contacts'),
badge: contacts.length,
content: contacts.length === 0 ? (
) : (
{contacts.map((contact) => (
-
))}
),
};
const addressesTab: TabItem = {
key: 'addresses',
label: t('address.title'),
content: (
),
};
const tagsTab: TabItem = {
key: 'tags',
label: t('tags.title'),
content: (
),
};
const filesTab: TabItem = {
key: 'files',
label: t('companies.files'),
content: ,
};
const activityTab: TabItem = {
key: 'activity',
label: t('companies.activity'),
content: ,
};
return (
{company.name}
);
}