import { memo, useEffect, useState } from 'react'; import { useFormContext, useWatch } from 'react-hook-form'; import evaluate from '../../../utility/Evaluate.js'; const initCode = `function run(data) { return JSON.stringify(data,undefined, 2); }(args); `; interface MultipleAnalysisCodeEditorProps { data: any; } function MultipleAnalysisCodeEditor({ data }: MultipleAnalysisCodeEditorProps) { const { setValue } = useFormContext(); const previousCode = useWatch({ name: 'code' }); const [code, setCode] = useState(previousCode || initCode); const [result, setResult] = useState(''); useEffect(() => { const evalResult = evaluate(code, data); if (evalResult instanceof Error) { setResult(evalResult.message); } else { setValue('code', code); setResult(evalResult); } }, [code, data, setValue]); return (