Skip to content

Commit 7d3b130

Browse files
authored
chore: bump @types/react from 18 to 19 (#690)
* update * update @types/react * update
1 parent fd7c864 commit 7d3b130

File tree

12 files changed

+47
-48
lines changed

12 files changed

+47
-48
lines changed

docs/examples/dynaymicCSS.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ function injectStyle(id: number, prepend?: Prepend, priority?: number) {
1111
});
1212
}
1313

14-
export default () => {
14+
const Demo = () => {
1515
const [id, setId] = React.useState(0);
16-
const idRef = React.useRef(id);
16+
const idRef = React.useRef<number>(id);
1717
idRef.current = id;
1818

1919
// Clean up
@@ -55,3 +55,5 @@ export default () => {
5555
</>
5656
);
5757
};
58+
59+
export default Demo;

docs/examples/getScrollBarSize.tsx

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,11 @@ const cssText = `
2121
}
2222
`;
2323

24-
export default () => {
25-
const defaultRef = React.useRef<HTMLDivElement>();
26-
const webkitRef = React.useRef<HTMLDivElement>();
27-
const scrollRef = React.useRef<HTMLDivElement>();
24+
const Demo = () => {
25+
const defaultRef = React.useRef<HTMLDivElement>(null);
26+
const webkitRef = React.useRef<HTMLDivElement>(null);
27+
const scrollRef = React.useRef<HTMLDivElement>(null);
28+
2829
const [sizeData, setSizeData] = React.useState('');
2930

3031
React.useEffect(() => {
@@ -45,12 +46,7 @@ export default () => {
4546

4647
return (
4748
<div>
48-
<style
49-
dangerouslySetInnerHTML={{
50-
__html: cssText,
51-
}}
52-
/>
53-
49+
<style dangerouslySetInnerHTML={{ __html: cssText }} />
5450
<div
5551
style={{
5652
width: 300,
@@ -87,3 +83,5 @@ export default () => {
8783
</div>
8884
);
8985
};
86+
87+
export default Demo;

docs/examples/portal.tsx

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
import React from 'react';
22
import PortalWrapper from 'rc-util/es/PortalWrapper';
33

4-
export default () => {
5-
const divRef = React.useRef();
6-
const outerRef = React.useRef();
4+
const Demo: React.FC = () => {
5+
const divRef = React.useRef<HTMLDivElement>(null);
6+
const outerRef = React.useRef<HTMLDivElement>(null);
77

88
React.useEffect(() => {
99
console.log('>>>', divRef.current);
1010
}, []);
11-
11+
1212
function getRef() {
1313
return outerRef.current;
1414
}
@@ -18,7 +18,9 @@ export default () => {
1818
<PortalWrapper visible getContainer={getRef}>
1919
{() => <div ref={divRef}>2333</div>}
2020
</PortalWrapper>
21-
<div style={{ background: 'red', height: 20 }} ref={outerRef} />
21+
<div style={{ backgroundColor: 'red', height: 20 }} ref={outerRef} />
2222
</>
2323
);
2424
};
25+
26+
export default Demo;

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
"@testing-library/react": "^16.0.0",
4848
"@types/jest": "^30.0.0",
4949
"@types/node": "^24.6.1",
50-
"@types/react": "^18.0.0",
50+
"@types/react": "^19.2.7",
5151
"@types/react-dom": "^19.2.2",
5252
"@types/react-is": "^19.0.0",
5353
"@types/responselike": "^1.0.0",

src/Portal.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,15 @@ export interface PortalProps {
1414
const Portal = forwardRef<PortalRef, PortalProps>((props, ref) => {
1515
const { didUpdate, getContainer, children } = props;
1616

17-
const parentRef = useRef<ParentNode>();
18-
const containerRef = useRef<HTMLElement>();
17+
const parentRef = useRef<ParentNode>(null);
18+
const containerRef = useRef<HTMLElement>(null);
1919

2020
// Ref return nothing, only for wrapper check exist
2121
useImperativeHandle(ref, () => ({}));
2222

2323
// Create container in client side with sync to avoid useEffect not get ref
24-
const initRef = useRef(false);
24+
const initRef = useRef<boolean>(false);
25+
2526
if (!initRef.current && canUseDom()) {
2627
containerRef.current = getContainer();
2728
parentRef.current = containerRef.current.parentNode;

src/hooks/useEffect.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
import * as React from 'react';
22

33
/** As `React.useEffect` but pass origin value in callback and not need care deps length change. */
4-
export default function useEffect(
5-
callback: (prevDeps: any[]) => void,
6-
deps: any[],
7-
) {
4+
function useEffect(callback: (prevDeps: any[]) => void, deps: any[]) {
85
const prevRef = React.useRef(deps);
96
React.useEffect(() => {
107
if (
@@ -16,3 +13,5 @@ export default function useEffect(
1613
prevRef.current = deps;
1714
});
1815
}
16+
17+
export default useEffect;

src/hooks/useLayoutEffect.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ const useLayoutEffect = (
1313
callback: (mount: boolean) => void | VoidFunction,
1414
deps?: React.DependencyList,
1515
) => {
16-
const firstMountRef = React.useRef(true);
16+
const firstMountRef = React.useRef<boolean>(true);
1717

1818
useInternalLayoutEffect(() => {
1919
return callback(firstMountRef.current);

src/hooks/useState.ts

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,12 @@ export type SetState<T> = (
1616
* We do not make this auto is to avoid real memory leak.
1717
* Developer should confirm it's safe to ignore themselves.
1818
*/
19-
export default function useSafeState<T>(
20-
defaultValue?: T | (() => T),
21-
): [T, SetState<T>] {
22-
const destroyRef = React.useRef(false);
19+
const useSafeState = <T>(defaultValue?: T | (() => T)): [T, SetState<T>] => {
20+
const destroyRef = React.useRef<boolean>(false);
2321
const [value, setValue] = React.useState(defaultValue);
2422

2523
React.useEffect(() => {
2624
destroyRef.current = false;
27-
2825
return () => {
2926
destroyRef.current = true;
3027
};
@@ -34,9 +31,10 @@ export default function useSafeState<T>(
3431
if (ignoreDestroy && destroyRef.current) {
3532
return;
3633
}
37-
3834
setValue(updater);
3935
}
4036

4137
return [value, safeSetState];
42-
}
38+
};
39+
40+
export default useSafeState;

src/hooks/useSyncState.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,10 @@ export type SetState<T> = (nextValue: Updater<T>) => void;
1010
* This is useful when React merge multiple state updates into one.
1111
* e.g. onTransitionEnd trigger multiple event at once will be merged state update in React.
1212
*/
13-
export default function useSyncState<T>(
14-
defaultValue?: T,
15-
): [get: () => T, set: SetState<T>] {
13+
function useSyncState<T>(defaultValue?: T): [get: () => T, set: SetState<T>] {
1614
const [, forceUpdate] = React.useReducer(x => x + 1, 0);
1715

18-
const currentValueRef = React.useRef(defaultValue);
16+
const currentValueRef = React.useRef<T>(defaultValue);
1917

2018
const getValue = useEvent(() => {
2119
return currentValueRef.current;
@@ -32,3 +30,5 @@ export default function useSyncState<T>(
3230

3331
return [getValue, setValue];
3432
}
33+
34+
export default useSyncState;

tests/ref-19.test.tsx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ describe('ref: React 19', () => {
4545
});
4646

4747
it('useComposeRef', () => {
48-
const Demo = ({ children }: { children: React.ReactElement }) => {
48+
const Demo: React.FC<React.PropsWithChildren> = ({ children }) => {
4949
const ref = React.useRef<HTMLDivElement>(null);
5050
const childRef = getNodeRef(children); // Should get child real `ref` props
5151
const mergedRef = useComposeRef(ref, childRef);
@@ -59,7 +59,10 @@ describe('ref: React 19', () => {
5959

6060
return (
6161
<>
62-
{React.cloneElement(children, { ref: mergedRef })}
62+
{React.cloneElement<{ ref?: any }>(
63+
children as React.ReactElement<any>,
64+
{ ref: mergedRef },
65+
)}
6366
<div className="test-output">{childClassName}</div>
6467
</>
6568
);
@@ -79,7 +82,6 @@ describe('ref: React 19', () => {
7982

8083
it('supportRef with not provide ref', () => {
8184
const Empty = () => <div />;
82-
8385
const Checker = ({ children }: { children: React.ReactElement }) => {
8486
return <p>{String(supportRef(children))}</p>;
8587
};

0 commit comments

Comments
 (0)