'use client';
import { useEffect } from 'react';
import { ErrorBoundary } from 'react-error-boundary';
import { useParams } from 'react-router';
import { z } from 'zod';
import { urls, useBlockNavigation, useConceptNavigation } from '@/app';
import { ConstituentaTooltip } from '@/features/rsform/components';
import { isAxiosError } from '@/backend/api-transport';
import { TextURL } from '@/components/control';
import { type ErrorData } from '@/components/info-error';
import { useQueryStrings } from '@/hooks/use-query-strings';
import { useModificationStore } from '@/stores/modification';
import { OperationTooltip } from '../../components/operation-tooltip';
import { OssTabID } from './oss-edit-context';
import { OssEditState } from './oss-edit-state';
import { OssTabs } from './oss-tabs';
const paramsSchema = z.strictObject({
id: z.coerce.number(),
tab: z.preprocess(v => (v ? Number(v) : undefined), z.nativeEnum(OssTabID).default(OssTabID.GRAPH))
});
export function OssPage() {
const router = useConceptNavigation();
const params = useParams();
const query = useQueryStrings();
const urlData = paramsSchema.parse({
id: params.id,
tab: query.get('tab')
});
const { isModified, setIsModified } = useModificationStore();
useBlockNavigation(isModified);
useEffect(() => setIsModified(false), [setIsModified]);
if (!urlData.id) {
router.replace({ path: urls.page404, force: true });
return null;
}
return (
{`Операционная схема с указанным идентификатором отсутствует`}
Владелец ограничил доступ к данной схеме