import { useEffect, useState } from 'react' import CodeEditor from 'components/ui/CodeEditor/CodeEditor' import { tryParseJson } from 'lib/helpers' import { Input, Modal } from 'ui' 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 })} />

Message payload

setValues({ ...values, payload: e ?? '{}' })} options={{ wordWrap: 'off', contextmenu: false }} value={values.payload} /> {error !== undefined &&

{error}

}
) }