Skip to content

Commit 58121f9

Browse files
authored
fix: ignore rootName when its false (#57)
1 parent c8475cf commit 58121f9

File tree

5 files changed

+63
-11
lines changed

5 files changed

+63
-11
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@
8888
"@types/react-dom": "^18.0.6",
8989
"@types/web": "^0.0.73",
9090
"@vitest/coverage-c8": "^0.23.4",
91+
"@vitest/ui": "^0.23.4",
9192
"husky": "^8.0.1",
9293
"jsdom": "^20.0.0",
9394
"lint-staged": "^13.0.3",

src/components/DataKeyPair.tsx

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,7 @@ export const DataKeyPair: React.FC<DataKeyPairProps> = (props) => {
188188
}), [inspect, path, setInspect, value])
189189
return (
190190
<Box className='data-key-pair'
191+
data-testid={'data-key-pair' + path.join('.')}
191192
onMouseEnter={
192193
useCallback(() => setHover(path, nestedIndex),
193194
[setHover, path, nestedIndex])
@@ -226,17 +227,19 @@ export const DataKeyPair: React.FC<DataKeyPairProps> = (props) => {
226227
{
227228
(isRoot && rootName !== false)
228229
? <>&quot;{rootName}&quot;</>
229-
: !isRoot && KeyRenderer.when(downstreamProps)
230-
? <KeyRenderer {...downstreamProps} />
231-
: nestedIndex === undefined && (
232-
isNumberKey
233-
? <Box component='span'
234-
style={{ color: numberKeyColor }}>{key}</Box>
235-
: quotesOnKeys ? <>&quot;{key}&quot;</> : <>{key}</>
236-
)
230+
: isRoot && rootName === false
231+
? <></>
232+
: !isRoot && KeyRenderer.when(downstreamProps)
233+
? <KeyRenderer {...downstreamProps} />
234+
: nestedIndex === undefined && (
235+
isNumberKey
236+
? <Box component='span'
237+
style={{ color: numberKeyColor }}>{key}</Box>
238+
: quotesOnKeys ? <>&quot;{key}&quot;</> : <>{key}</>
239+
)
237240
}
238241
{
239-
nestedIndex === undefined && (
242+
(nestedIndex === undefined && isRoot && rootName !== false) && (
240243
<DataBox sx={{ mx: 0.5 }}>:</DataBox>
241244
)
242245
}

src/index.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ const JsonViewerInner: React.FC<JsonViewerProps> = (props) => {
5050
useSetIfNotUndefinedEffect('keyRenderer', props.keyRenderer)
5151
useSetIfNotUndefinedEffect('maxDisplayLength', props.maxDisplayLength)
5252
useSetIfNotUndefinedEffect('enableClipboard', props.enableClipboard)
53+
useSetIfNotUndefinedEffect('rootName', props.rootName)
5354
useEffect(() => {
5455
if (props.theme === 'light') {
5556
api.setState({

tests/index.test.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { render } from '@testing-library/react'
1+
import { render, screen } from '@testing-library/react'
22
import React from 'react'
3-
import { describe, it } from 'vitest'
3+
import { describe, expect, it } from 'vitest'
44

55
import { JsonViewer } from '../src'
66

@@ -146,4 +146,9 @@ describe('render <JsonViewer/> with props', () => {
146146
render(<JsonViewer value={full} objectSortKeys={objectSortKeys}/>)
147147
})
148148
})
149+
150+
it('render with rootName false', async () => {
151+
render(<JsonViewer value={undefined} rootName={false}/>)
152+
expect((await screen.findByTestId('data-key-pair')).innerText).toEqual(undefined)
153+
})
149154
})

yarn.lock

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1277,6 +1277,13 @@ __metadata:
12771277
languageName: node
12781278
linkType: hard
12791279

1280+
"@polka/url@npm:^1.0.0-next.20":
1281+
version: 1.0.0-next.21
1282+
resolution: "@polka/url@npm:1.0.0-next.21"
1283+
checksum: c7654046d38984257dd639eab3dc770d1b0340916097b2fac03ce5d23506ada684e05574a69b255c32ea6a144a957c8cd84264159b545fca031c772289d88788
1284+
languageName: node
1285+
linkType: hard
1286+
12801287
"@popperjs/core@npm:^2.11.6":
12811288
version: 2.11.6
12821289
resolution: "@popperjs/core@npm:2.11.6"
@@ -1719,6 +1726,7 @@ __metadata:
17191726
"@types/react-dom": ^18.0.6
17201727
"@types/web": ^0.0.73
17211728
"@vitest/coverage-c8": ^0.23.4
1729+
"@vitest/ui": ^0.23.4
17221730
copy-to-clipboard: ^3.3.2
17231731
group-items: ^2.2.0
17241732
husky: ^8.0.1
@@ -2138,6 +2146,15 @@ __metadata:
21382146
languageName: node
21392147
linkType: hard
21402148

2149+
"@vitest/ui@npm:^0.23.4":
2150+
version: 0.23.4
2151+
resolution: "@vitest/ui@npm:0.23.4"
2152+
dependencies:
2153+
sirv: ^2.0.2
2154+
checksum: 52ccb6dda1da49d34e4fb18128cb25a7b02f5e39f1d0865a1dd723a386bb615dd7002ecc883a42ea7fbae1999af297f12c1e3de52804989808c332b4fa6e4bbd
2155+
languageName: node
2156+
linkType: hard
2157+
21412158
"JSONStream@npm:^1.0.4":
21422159
version: 1.3.5
21432160
resolution: "JSONStream@npm:1.3.5"
@@ -5859,6 +5876,13 @@ __metadata:
58595876
languageName: node
58605877
linkType: hard
58615878

5879+
"mrmime@npm:^1.0.0":
5880+
version: 1.0.1
5881+
resolution: "mrmime@npm:1.0.1"
5882+
checksum: cc979da44bbbffebaa8eaf7a45117e851f2d4cb46a3ada6ceb78130466a04c15a0de9a9ce1c8b8ba6f6e1b8618866b1352992bf1757d241c0ddca558b9f28a77
5883+
languageName: node
5884+
linkType: hard
5885+
58625886
"ms@npm:2.0.0":
58635887
version: 2.0.0
58645888
resolution: "ms@npm:2.0.0"
@@ -7095,6 +7119,17 @@ __metadata:
70957119
languageName: node
70967120
linkType: hard
70977121

7122+
"sirv@npm:^2.0.2":
7123+
version: 2.0.2
7124+
resolution: "sirv@npm:2.0.2"
7125+
dependencies:
7126+
"@polka/url": ^1.0.0-next.20
7127+
mrmime: ^1.0.0
7128+
totalist: ^3.0.0
7129+
checksum: 6982f8ecee9392d246d7eeea8144e50334fe1b46a4fa942995a844ea88c2d518b17cce781bb09926c9a5692a7002a207d18dfd67af2aa538a15e733dc2042298
7130+
languageName: node
7131+
linkType: hard
7132+
70987133
"slash@npm:^3.0.0":
70997134
version: 3.0.0
71007135
resolution: "slash@npm:3.0.0"
@@ -7564,6 +7599,13 @@ __metadata:
75647599
languageName: node
75657600
linkType: hard
75667601

7602+
"totalist@npm:^3.0.0":
7603+
version: 3.0.0
7604+
resolution: "totalist@npm:3.0.0"
7605+
checksum: ec499bddfc73d5b6c73f8ff68afd7bed286705797f928a11177fee5d1ee80e9052ffcb434638437702e16864bd5490f437a54f79bfea9564e875d34ed3254bca
7606+
languageName: node
7607+
linkType: hard
7608+
75677609
"tough-cookie@npm:^4.0.0":
75687610
version: 4.1.2
75697611
resolution: "tough-cookie@npm:4.1.2"

0 commit comments

Comments
 (0)