import { useEffect, useState } from 'react' import { Input, Modal } from 'ui' import { FormItemLayout } from 'ui-patterns/form/FormItemLayout/FormItemLayout' import CodeEditor from '@/components/ui/CodeEditor/CodeEditor' import { tryParseJson } from '@/lib/helpers' interface SendMessageModalProps { visible: boolean onSelectCancel: () => void onSelectConfirm: (v: { message: string; payload: string }) => void } const defaultPayload = { message: 'Test message', payload: '{ "message": "Hello World" }', } export const SendMessageModal = ({ visible, onSelectCancel, onSelectConfirm, }: SendMessageModalProps) => { const [error, setError] = useState() const [values, setValues] = useState(defaultPayload) useEffect(() => { if (visible) { setError(undefined) setValues(defaultPayload) } }, [visible]) return ( { const payload = tryParseJson(values.payload) if (payload === undefined) { setError('Please provide a valid JSON') } else { onSelectConfirm({ ...values, payload }) } }} > setValues({ ...values, message: v.target.value })} />
setValues({ ...values, payload: e ?? '{}' }) } options={{ wordWrap: 'off', contextmenu: false }} value={values.payload} /> {error !== undefined &&

{error}

}
) }