diff --git a/src/components/DataTypes/Object.tsx b/src/components/DataTypes/Object.tsx index 0bd96d1d..580dfae2 100644 --- a/src/components/DataTypes/Object.tsx +++ b/src/components/DataTypes/Object.tsx @@ -223,12 +223,13 @@ export const ObjectType: React.FC> = (props) => { groupArraysAfterLength, displayLength, keyColor]) + const indentWidth = useJsonViewerStore(store => store.indentWidth) return ( diff --git a/src/index.tsx b/src/index.tsx index 5837c1d2..c2a1d508 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -40,20 +40,12 @@ const JsonViewerInner: React.FC = (props) => { setIfNotUndefined('value', props.value) }, [props.value, setIfNotUndefined]) useEffect(() => { - // setIfNotUndefined('indentWidth', props.indentWidth) + setIfNotUndefined('indentWidth', props.indentWidth) setIfNotUndefined('onChange', props.onChange) setIfNotUndefined('groupArraysAfterLength', props.groupArraysAfterLength) setIfNotUndefined('keyRenderer', props.keyRenderer) setIfNotUndefined('maxDisplayLength', props.maxDisplayLength) - }, [ - api, - props.groupArraysAfterLength, - props.keyRenderer, - props.onChange, - props.value, - props.maxDisplayLength, - setIfNotUndefined - ]) + }, [api, props.groupArraysAfterLength, props.keyRenderer, props.onChange, props.value, props.maxDisplayLength, setIfNotUndefined, props.indentWidth]) useEffect(() => { if (props.theme === 'light') { diff --git a/src/stores/JsonViewerStore.ts b/src/stores/JsonViewerStore.ts index 200f6dc2..83de371a 100644 --- a/src/stores/JsonViewerStore.ts +++ b/src/stores/JsonViewerStore.ts @@ -14,6 +14,7 @@ DefaultKeyRenderer.when = () => false export type JsonViewerState = { inspectCache: Record hoverPath: { path: Path; nestedIndex?: number } | null + indentWidth: number groupArraysAfterLength: number maxDisplayLength: number defaultInspectDepth: number @@ -38,6 +39,7 @@ export const createJsonViewerStore = (props: JsonViewerProps) => { inspectCache: {}, hoverPath: null, + indentWidth: props.indentWidth ?? 2, groupArraysAfterLength: props.groupArraysAfterLength ?? 100, maxDisplayLength: props.maxDisplayLength ?? 30, rootName: 'root', diff --git a/src/type.ts b/src/type.ts index 334d865e..a0798835 100644 --- a/src/type.ts +++ b/src/type.ts @@ -36,6 +36,7 @@ export type JsonViewerProps = { value: T /** * indent width for nested objects + * @default 2 */ indentWidth?: number /**