Skip to content

Commit b5eacee

Browse files
committed
drops custom useComponentId hook and React 16/17 support
1 parent 8b0b424 commit b5eacee

File tree

5 files changed

+10
-65
lines changed

5 files changed

+10
-65
lines changed

package.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,14 @@
3737
"build-storybook": "storybook build"
3838
},
3939
"peerDependencies": {
40-
"react": "^16.13.1 || ^17.0.0 || ^18.0.0"
40+
"react": "^18.0.0"
4141
},
4242
"devDependencies": {
4343
"@babel/preset-typescript": "^7.24.7",
4444
"@chromatic-com/storybook": "^1.9.0",
4545
"@storybook/addon-essentials": "^8.3.3",
4646
"@storybook/addon-interactions": "^8.3.3",
4747
"@storybook/addon-links": "^8.3.3",
48-
"@storybook/addon-onboarding": "^8.3.3",
4948
"@storybook/blocks": "^8.3.3",
5049
"@storybook/react": "^8.3.3",
5150
"@storybook/react-vite": "^8.3.3",

src/DataRenderer.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import * as React from 'react';
22
import * as DataTypeDetection from './DataTypeDetection';
3-
import { useBool, useComponentId } from './hooks';
3+
import { useBool } from './hooks';
44

55
export interface StyleProps {
66
container: string;
@@ -80,7 +80,7 @@ function ExpandableObject({
8080

8181
const expanderIconStyle = expanded ? style.collapseIcon : style.expandIcon;
8282
const ariaLabel = expanded ? 'collapse JSON' : 'expand JSON';
83-
const contentsId = useComponentId();
83+
const contentsId = React.useId();
8484
const childLevel = level + 1;
8585
const lastIndex = data.length - 1;
8686

src/hooks.test.tsx

Lines changed: 5 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import * as React from 'react';
2-
import { useBool, useComponentId } from './hooks';
2+
import { useBool } from './hooks';
33

44
import { render } from '@testing-library/react';
5-
import { act } from 'react-dom/test-utils';
65

76
describe('useBool', () => {
87
it('should use initial value creator function', async () => {
@@ -31,13 +30,13 @@ describe('useBool', () => {
3130
};
3231

3332
render(<HookComponent />);
34-
act(() => {
33+
React.act(() => {
3534
toggle();
3635
});
3736

3837
expect(value!).toBe(false);
3938

40-
act(() => {
39+
React.act(() => {
4140
toggle();
4241
});
4342
expect(value!).toBe(true);
@@ -53,45 +52,15 @@ describe('useBool', () => {
5352
};
5453

5554
render(<HookComponent />);
56-
act(() => {
55+
React.act(() => {
5756
setValue(false);
5857
});
5958

6059
expect(value!).toBe(false);
6160

62-
act(() => {
61+
React.act(() => {
6362
setValue(true);
6463
});
6564
expect(value!).toBe(true);
6665
});
6766
});
68-
69-
describe('useComponentId', () => {
70-
let id1 = '';
71-
let id1AfterFirstRender = '';
72-
73-
let id2 = '';
74-
let id2AfterFirstRender = '';
75-
76-
const HookComponent1 = ({ text }: { text: string }) => {
77-
id1 = useComponentId();
78-
return <div>{text}</div>;
79-
};
80-
81-
const HookComponent2 = ({ text }: { text: string }) => {
82-
id2 = useComponentId();
83-
return <div>{text}</div>;
84-
};
85-
86-
const { rerender: rerender1 } = render(<HookComponent1 text={'component1'} />);
87-
id1AfterFirstRender = id1;
88-
rerender1(<HookComponent1 text={'component1 second render'} />);
89-
90-
const { rerender: rerender2 } = render(<HookComponent2 text={'component2'} />);
91-
id2AfterFirstRender = id2;
92-
rerender2(<HookComponent2 text={'component2 second render'} />);
93-
94-
expect(id1).toBe(id1AfterFirstRender);
95-
expect(id2).toBe(id2AfterFirstRender);
96-
expect(id1).not.toBe(id2);
97-
});

src/hooks.ts

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { useState, useRef } from 'react';
1+
import { useState } from 'react';
22

33
export function useBool(
44
initialValueCreator: () => boolean
@@ -9,14 +9,3 @@ export function useBool(
99

1010
return [value, tooggle, setValue];
1111
}
12-
13-
let componentId = 1;
14-
const generateNextId = () => componentId++;
15-
16-
export function useComponentId() {
17-
const componentId = useRef<string>();
18-
if (componentId.current === undefined) {
19-
componentId.current = `:jsnvw:${generateNextId()}:`;
20-
}
21-
return componentId.current;
22-
}

yarn.lock

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2943,17 +2943,6 @@ __metadata:
29432943
languageName: node
29442944
linkType: hard
29452945

2946-
"@storybook/addon-onboarding@npm:^8.3.3":
2947-
version: 8.3.3
2948-
resolution: "@storybook/addon-onboarding@npm:8.3.3"
2949-
dependencies:
2950-
react-confetti: ^6.1.0
2951-
peerDependencies:
2952-
storybook: ^8.3.3
2953-
checksum: 5b5a07cf946c213c8a4eaea55fca497b9e4d0f452acef2cf2b4a0241ec32a042b03c4c889dc64dcedc84cbb22fda041d5104af1f6e257ae4c5e2e09cfa19a1e2
2954-
languageName: node
2955-
linkType: hard
2956-
29572946
"@storybook/addon-outline@npm:8.3.3":
29582947
version: 8.3.3
29592948
resolution: "@storybook/addon-outline@npm:8.3.3"
@@ -14296,7 +14285,6 @@ __metadata:
1429614285
"@storybook/addon-essentials": ^8.3.3
1429714286
"@storybook/addon-interactions": ^8.3.3
1429814287
"@storybook/addon-links": ^8.3.3
14299-
"@storybook/addon-onboarding": ^8.3.3
1430014288
"@storybook/blocks": ^8.3.3
1430114289
"@storybook/react": ^8.3.3
1430214290
"@storybook/react-vite": ^8.3.3
@@ -14335,7 +14323,7 @@ __metadata:
1433514323
storybook: ^8.3.3
1433614324
typescript: 5.5.4
1433714325
peerDependencies:
14338-
react: ^16.13.1 || ^17.0.0 || ^18.0.0
14326+
react: ^18.0.0
1433914327
languageName: unknown
1434014328
linkType: soft
1434114329

0 commit comments

Comments
 (0)