import { useEffect, useState } from "react"; import InputText from "../../../../../../../components/ui/input/InputText"; import { PageBlockDto } from "../../../../../dtos/PageBlockDto"; export default function JsonBlockForm({ item, onUpdate }: { item?: PageBlockDto; onUpdate: (item: PageBlockDto) => void }) { const [error, setError] = useState(); const [json, setJson] = useState(""); useEffect(() => { if (item) { setJson(JSON.stringify(item, null, 2)); } }, [item]); useEffect(() => { try { setError(""); if (json) { const block = JSON.parse(json) as PageBlockDto; onUpdate(block); } } catch (e: any) { setError(e.toString()); } // eslint-disable-next-line react-hooks/exhaustive-deps }, [json]); return (
{error &&

{error}

} setJson(e.toString())} editor="monaco" editorLanguage="json" editorFontSize={14} editorSize="lg" />
); }