import { message } from 'antd'; import { useEffect, useState } from 'react'; import { useParams, useSearchParams } from 'react-router-dom'; import { ApiError } from '../api/client'; import PageTitle from '../components/PageTitle'; import { fetchOneCompanyGroup } from '../services/api/directories/company_groups'; import { setSelectedVersion } from '../store/slices/consolidations/consolidationsSlice'; import { getConsolidationsListThunk } from '../store/slices/consolidations/thunks'; import { useAppDispatch } from '../store/store'; import { ConsoleLegalEntitiesTable } from '../widgets/ConsoleLegalEntities/ConsoleLegalEntities'; import { ConsoleTableWidget } from '../widgets/ConsoleTable/ConsoleTable'; import { DocumentsDrawer } from '../widgets/FilesDrawer/FilesDrawer'; export function ConsolidationPage() { const [drawerOpen, setDrawerOpen] = useState(false); const { group_id } = useParams(); const [searchParams] = useSearchParams(); const versionParam = searchParams.get('version'); const dispatch = useAppDispatch(); const [comGroupName, setComGroupName] = useState(''); const [locationPath, setLocationPath] = useState('Отчетность>'); const [desc, setDesc] = useState(''); useEffect(() => { if (!group_id) return; async function getAllInfo(id: string) { try { const data = await fetchOneCompanyGroup(id); setComGroupName(data.name); setLocationPath(`Отчетность>${data.name}>Консолидации`); setDesc(`${data.legal_entities_count} организаций`); await dispatch(getConsolidationsListThunk(id)); if (versionParam) dispatch(setSelectedVersion(versionParam)); } catch (e: unknown) { message.error(e instanceof ApiError ? e.message : 'Не удалось загрузить группу компаний'); } } getAllInfo(group_id); return () => { dispatch(setSelectedVersion(null)); }; }, [dispatch, group_id, versionParam]); return (
{ setDrawerOpen(true); }} />
{ setDrawerOpen(false); }} />
); }