Skip to content

Commit 622bd65

Browse files
authored
Merge pull request mac-s-g#271 from kochis/remove-quotes-from-keys-option
Add quotesOnKeys option
2 parents 87011cd + 1a4591b commit 622bd65

File tree

5 files changed

+37
-3
lines changed

5 files changed

+37
-3
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ Name|Type|Default|Description
5959
`onDelete`|`(delete)=>{}`|`false`|When a callback function is passed in, `delete` functionality is enabled. The callback is invoked before deletions are completed. Returning `false` from `onDelete` will prevent the change from being made. [see: onDelete docs](#onedit-onadd-and-ondelete-interaction)
6060
`onSelect`|`(select)=>{}`|`false`|When a function is passed in, clicking a value triggers the `onSelect` method to be called.
6161
`sortKeys`|`boolean`|`false`|set to true to sort object keys
62+
`quotesOnKeys`|`boolean`|`true`|set to false to remove quotes from keys (eg. `"name":` vs. `name:`)
6263
`validationMessage`|`string`|"Validation Error"|Custom message for validation failures to `onEdit`, `onAdd`, or `onDelete` callbacks
6364

6465
### Features

src/js/components/ObjectName.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import Theme from './../themes/getStyle';
33

44
export default function getObjectName(props) {
55
const {
6-
parent_type, namespace, theme, jsvRoot, name
6+
parent_type, namespace, quotesOnKeys, theme, jsvRoot, name
77
} = props;
88

99
const display_name = props.name ? props.name : '';
@@ -21,9 +21,13 @@ export default function getObjectName(props) {
2121
return (
2222
<span {...Theme(theme, 'object-name')} key={namespace}>
2323
<span class="object-key">
24-
<span style={{verticalAlign:'top'}}>"</span>
24+
{ quotesOnKeys &&
25+
<span style={{verticalAlign:'top'}}>"</span>
26+
}
2527
<span>{display_name}</span>
26-
<span style={{verticalAlign:'top'}}>"</span>
28+
{ quotesOnKeys &&
29+
<span style={{verticalAlign:'top'}}>"</span>
30+
}
2731
</span>
2832
<span {...Theme(theme, 'colon')}>:</span>
2933
</span>

src/js/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ class ReactJsonView extends React.PureComponent {
4646
collapseStringsAfterLength: false,
4747
shouldCollapse: false,
4848
sortKeys: false,
49+
quotesOnKeys: true,
4950
groupArraysAfterLength: 100,
5051
indentWidth: 4,
5152
enableClipboard: true,

test/tests/js/components/DataTypes/Object-test.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,6 +341,7 @@ describe("<JsonObject />", function() {
341341
sortKeys={true}
342342
collapsed={false}
343343
shouldCollapse={() => false}
344+
quotesOnKeys={true}
344345
/>
345346
)
346347
expect(wrapper.text()).to.equal('"":{"a":"a""b":"b""c":"c""d":"d"}');
@@ -361,6 +362,7 @@ describe("<JsonObject />", function() {
361362
namespace={["root"]}
362363
collapsed={false}
363364
shouldCollapse={() => false}
365+
quotesOnKeys={true}
364366
/>
365367
)
366368
expect(wrapper.text()).to.equal('"":{"d":"d""b":"b""a":"a""c":"c"}');

test/tests/js/components/ObjectName-test.js

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,30 @@ describe("<ObjectName />", function() {
4141
)
4242
expect(wrapper.find("span").children()).to.have.length(0)
4343
})
44+
45+
it("ObjectName with quotesOnKeys enabled (default)", function() {
46+
const wrapper = render(
47+
<ObjectName
48+
namespace={"test"}
49+
name="test"
50+
theme="rjv-default"
51+
jsvRoot={false}
52+
quotesOnKeys={true}
53+
/>
54+
)
55+
expect(wrapper.find(".object-key").children('span')).to.have.length(3)
56+
})
57+
58+
it("ObjectName with quotesOnKeys disabled", function() {
59+
const wrapper = render(
60+
<ObjectName
61+
namespace={"test"}
62+
name="test"
63+
theme="rjv-default"
64+
jsvRoot={false}
65+
quotesOnKeys={false}
66+
/>
67+
)
68+
expect(wrapper.find(".object-key").children('span')).to.have.length(1)
69+
})
4470
})

0 commit comments

Comments
 (0)