Skip to content

Commit 4c73913

Browse files
committed
fix: editable for basic value
1 parent fb0087c commit 4c73913

File tree

2 files changed

+20
-7
lines changed

2 files changed

+20
-7
lines changed

docs/pages/full/index.tsx

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
import {
22
AppBar,
3-
FormControl, FormControlLabel,
3+
FormControl,
4+
FormControlLabel,
45
InputLabel,
56
MenuItem,
6-
Select, Switch,
7-
TextField, Toolbar, Typography
7+
Select,
8+
Switch,
9+
TextField,
10+
Toolbar,
11+
Typography
812
} from '@mui/material'
913
import {
1014
applyValue,
@@ -106,6 +110,7 @@ const IndexPage: React.FC = () => {
106110
const [theme, setTheme] = useState<JsonViewerTheme>('light')
107111
const [src, setSrc] = useState(() => example)
108112
const [displayDataTypes, setDisplayDataTypes] = useState(true)
113+
const [editable, setEditable] = useState(true)
109114
useEffect(() => {
110115
const loop = () => {
111116
setSrc(src => ({
@@ -135,7 +140,14 @@ const IndexPage: React.FC = () => {
135140
<Toolbar/>
136141
<FormControlLabel
137142
control={<Switch
138-
value={displayDataTypes}
143+
checked={editable}
144+
onChange={event => setEditable(event.target.checked)}
145+
/>}
146+
label='Editable'
147+
/>
148+
<FormControlLabel
149+
control={<Switch
150+
checked={displayDataTypes}
139151
onChange={event => setDisplayDataTypes(event.target.checked)}
140152
/>}
141153
label='DisplayDataTypes'
@@ -189,6 +201,7 @@ const IndexPage: React.FC = () => {
189201
</FormControl>
190202
<JsonViewer
191203
value={src}
204+
editable={editable}
192205
indentWidth={indent}
193206
theme={theme}
194207
displayDataTypes={displayDataTypes}

src/components/DataKeyPair.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,20 +32,20 @@ const IconBox = styled(props => <Box {...props} component='span'/>)`
3232

3333
export const DataKeyPair: React.FC<DataKeyPairProps> = (props) => {
3434
const { value, path, nestedIndex } = props
35-
const propsEditable = props.editable ?? false
35+
const propsEditable = props.editable ?? undefined
3636
const storeEditable = useJsonViewerStore(store => store.editable)
3737
const editable = useMemo(() => {
3838
if (storeEditable === false) {
3939
return false
4040
}
41-
if (!propsEditable) {
41+
if (propsEditable === false) {
4242
// props.editable is false which means we cannot provide the suitable way to edit it
4343
return false
4444
}
4545
if (typeof storeEditable === 'function') {
4646
return !!storeEditable(path, value)
4747
}
48-
return propsEditable
48+
return storeEditable
4949
}, [path, propsEditable, storeEditable, value])
5050
const [tempValue, setTempValue] = useState(typeof value === 'function' ? () => value : value)
5151
const depth = path.length

0 commit comments

Comments
 (0)