diff --git a/demo/src/js/components/Demo.js b/demo/src/js/components/Demo.js index bd4592de..45577591 100644 --- a/demo/src/js/components/Demo.js +++ b/demo/src/js/components/Demo.js @@ -27,6 +27,7 @@ export default class extends React.PureComponent { onDelete: true, displayObjectSize: true, enableClipboard: true, + disableArrayIndicies: true, indentWidth: 4, displayDataTypes: true, iconStyle: "triangle" @@ -40,6 +41,7 @@ export default class extends React.PureComponent { onDelete, displayObjectSize, enableClipboard, + disableArrayIndicies, theme, iconStyle, collapsed, @@ -107,6 +109,7 @@ export default class extends React.PureComponent { } displayObjectSize={displayObjectSize} enableClipboard={enableClipboard} + disableArrayIndicies={disableArrayIndicies} indentWidth={indentWidth} displayDataTypes={displayDataTypes} iconStyle={iconStyle} diff --git a/index.d.ts b/index.d.ts index 4a91dc29..690859e0 100644 --- a/index.d.ts +++ b/index.d.ts @@ -94,6 +94,14 @@ export interface ReactJsonViewProps { * * Default: false */ + + disableArrayIndicies?: boolean; + /** + * Whether or not the indicies/indexes for an array should be disable when JSON is displayed. + * + * + * Default: false + */ onEdit?: ((edit: InteractionProps) => false | any) | false; /** * When a callback function is passed in, add functionality is enabled. diff --git a/src/js/components/ObjectName.js b/src/js/components/ObjectName.js index 05124dbc..f7a646f5 100644 --- a/src/js/components/ObjectName.js +++ b/src/js/components/ObjectName.js @@ -3,18 +3,16 @@ import Theme from './../themes/getStyle'; export default function getObjectName(props) { const { - parent_type, namespace, theme, jsvRoot, name + parent_type, namespace, theme, jsvRoot, name, disableArrayIndicies } = props; const display_name = props.name ? props.name : ''; if (jsvRoot && (name === false || name === null)) { return (); - } else if (parent_type == 'array') { + } else if (parent_type == 'array' && disableArrayIndicies) { return ( - - {display_name} - : + ); } else { diff --git a/src/js/components/VariableEditor.js b/src/js/components/VariableEditor.js index 60497bac..a1d6ab89 100644 --- a/src/js/components/VariableEditor.js +++ b/src/js/components/VariableEditor.js @@ -51,6 +51,7 @@ class VariableEditor extends React.PureComponent { namespace, indentWidth, enableClipboard, + disableArrayIndicies, onEdit, onDelete, onSelect, @@ -58,6 +59,8 @@ class VariableEditor extends React.PureComponent { } = this.props; const { editMode } = this.state; + + return (
- {type == 'array' ? ( - - {variable.name} -
:
+ {type == 'array' && disableArrayIndicies? ( + ) : ( diff --git a/src/js/index.js b/src/js/index.js index 64773a3a..41079a62 100644 --- a/src/js/index.js +++ b/src/js/index.js @@ -51,6 +51,7 @@ class ReactJsonView extends React.PureComponent { enableClipboard: true, displayObjectSize: true, displayDataTypes: true, + disableArrayIndicies: true, onEdit: false, onDelete: false, onAdd: false,