'use client'; import clsx from 'clsx'; import { useEffect, useRef, useState } from 'react'; import { toast } from 'react-toastify'; import { urls } from '@/app/urls'; import { IconDownload } from '@/components/Icons'; import InfoError from '@/components/info/InfoError'; import Button from '@/components/ui/Button'; import Checkbox from '@/components/ui/Checkbox'; import Label from '@/components/ui/Label'; import MiniButton from '@/components/ui/MiniButton'; import Overlay from '@/components/ui/Overlay'; import SubmitButton from '@/components/ui/SubmitButton'; import TextArea from '@/components/ui/TextArea'; import TextInput from '@/components/ui/TextInput'; import AnimateFade from '@/components/wrap/AnimateFade'; import RequireAuth from '@/components/wrap/RequireAuth'; import { useLibrary } from '@/context/LibraryContext'; import { useConceptNavigation } from '@/context/NavigationContext'; import { LibraryItemType } from '@/models/library'; import { IRSFormCreateData } from '@/models/rsform'; import { EXTEOR_TRS_FILE, limits, patterns } from '@/utils/constants'; function CreateRSFormPage() { const router = useConceptNavigation(); const { createItem, error, setError, processing } = useLibrary(); const [title, setTitle] = useState(''); const [alias, setAlias] = useState(''); const [comment, setComment] = useState(''); const [common, setCommon] = useState(false); const [fileName, setFileName] = useState(''); const [file, setFile] = useState(); const inputRef = useRef(null); useEffect(() => { setError(undefined); }, [title, alias, setError]); function handleCancel() { if (router.canBack()) { router.back(); } else { router.push(urls.library); } } function handleSubmit(event: React.FormEvent) { event.preventDefault(); if (processing) { return; } const data: IRSFormCreateData = { item_type: LibraryItemType.RSFORM, title: title, alias: alias, comment: comment, is_common: common, is_canonical: false, file: file, fileName: file?.name }; createItem(data, newSchema => { toast.success('Схема успешно создана'); router.push(urls.schema(newSchema.id)); }); } function handleFileChange(event: React.ChangeEvent) { if (event.target.files && event.target.files.length > 0) { setFileName(event.target.files[0].name); setFile(event.target.files[0]); } else { setFileName(''); setFile(undefined); } } return (

Создание концептуальной схемы

} onClick={() => inputRef.current?.click()} /> {fileName ?