import { useState } from 'react' import PropTypes from 'prop-types' import { FormControl } from '@mui/material' import ReactJson from 'react-json-view' export const JsonEditorInput = ({ value, onChange, disabled = false, isDarkMode = false }) => { const [myValue, setMyValue] = useState(value ? JSON.parse(value) : {}) const onClipboardCopy = (e) => { const src = e.src if (Array.isArray(src) || typeof src === 'object') { navigator.clipboard.writeText(JSON.stringify(src, null, ' ')) } else { navigator.clipboard.writeText(src) } } return ( <> {disabled && ( onClipboardCopy(e)} quotesOnKeys={false} displayDataTypes={false} /> )} {!disabled && ( onClipboardCopy(e)} onEdit={(edit) => { setMyValue(edit.updated_src) onChange(JSON.stringify(edit.updated_src)) }} onAdd={() => { //console.log(add) }} onDelete={(deleteobj) => { setMyValue(deleteobj.updated_src) onChange(JSON.stringify(deleteobj.updated_src)) }} /> )} ) } JsonEditorInput.propTypes = { value: PropTypes.string, onChange: PropTypes.func, disabled: PropTypes.bool, isDarkMode: PropTypes.bool }