import { useCallback, useEffect, useState } from 'react'; import PrettyJson from '../../components/Common/PrettyJSON'; import { useRSForm } from '../../context/RSFormContext'; import { GetCstTypeLabel } from '../../models'; import { toast } from 'react-toastify'; import TextArea from '../../components/Common/TextArea'; import ExpressionEditor from './ExpressionEditor'; import SubmitButton from '../../components/Common/SubmitButton'; function ConstituentEditor() { const { active, schema, setActive, processing, cstUpdate, isEditable, reload } = useRSForm(); const [alias, setAlias] = useState(''); const [type, setType] = useState(''); const [term, setTerm] = useState(''); const [textDefinition, setTextDefinition] = useState(''); const [expression, setExpression] = useState(''); const [convention, setConvention] = useState(''); useEffect(() => { if (!active && schema?.items && schema?.items.length > 0) { setActive(schema?.items[0]); } }, [schema, setActive, active]) useEffect(() => { if (active) { setAlias(active.alias); setType(GetCstTypeLabel(active.cstType)); setConvention(active.convention || ''); setTerm(active.term?.raw || ''); setTextDefinition(active.definition?.text?.raw || ''); setExpression(active.definition?.formal || ''); } }, [active]); const handleSubmit = (event: React.FormEvent) => { event.preventDefault(); if (!processing) { const data = { 'alias': alias, 'convention': convention, 'definition_formal': expression, 'definition_text': { 'raw': textDefinition, 'resolved': '', }, 'term': { 'raw': term, 'resolved': '', 'forms': active?.term?.forms || [], } }; cstUpdate(data, (response) => { console.log(response); toast.success('Изменения сохранены'); reload(); }); } }; const handleRename = useCallback(() => { toast.info('Переименование в разработке'); }, []); const handleChangeType = useCallback(() => { toast.info('Изменение типа в разработке'); }, []); return (
{alias} {type}