Skip to content

Commit 601131e

Browse files
Merge pull request #5300 from Hacker0x01/react-19
Upgrade to React 19
2 parents 66ab790 + 011c335 commit 601131e

File tree

12 files changed

+97
-136
lines changed

12 files changed

+97
-136
lines changed

docs-site/package.json

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
"private": true,
55
"dependencies": {
66
"highlight.js": "^11.11.1",
7-
"react": "^18.3.1",
8-
"react-dom": "^18.3.1",
7+
"react": "^19.0.0",
8+
"react-dom": "^19.0.0",
99
"react-live": "^4.1.8"
1010
},
1111
"scripts": {
@@ -18,11 +18,7 @@
1818
"extends": "react-app"
1919
},
2020
"browserslist": {
21-
"production": [
22-
">0.2%",
23-
"not dead",
24-
"not op_mini all"
25-
],
21+
"production": [">0.2%", "not dead", "not op_mini all"],
2622
"development": [
2723
"last 1 chrome version",
2824
"last 1 firefox version",

docs-site/yarn.lock

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -8876,7 +8876,7 @@ __metadata:
88768876
languageName: node
88778877
linkType: hard
88788878

8879-
"loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0":
8879+
"loose-envify@npm:^1.4.0":
88808880
version: 1.4.0
88818881
resolution: "loose-envify@npm:1.4.0"
88828882
dependencies:
@@ -10989,9 +10989,9 @@ __metadata:
1098910989
dependencies:
1099010990
highlight.js: "npm:^11.11.1"
1099110991
raw-loader: "npm:^4.0.2"
10992-
react: "npm:^18.3.1"
10992+
react: "npm:^19.0.0"
1099310993
react-app-rewired: "npm:^2.2.1"
10994-
react-dom: "npm:^18.3.1"
10994+
react-dom: "npm:^19.0.0"
1099510995
react-live: "npm:^4.1.8"
1099610996
react-scripts: "npm:5.0.1"
1099710997
sass: "npm:^1.83.0"
@@ -11030,15 +11030,14 @@ __metadata:
1103011030
languageName: node
1103111031
linkType: hard
1103211032

11033-
"react-dom@npm:^18.3.1":
11034-
version: 18.3.1
11035-
resolution: "react-dom@npm:18.3.1"
11033+
"react-dom@npm:^19.0.0":
11034+
version: 19.0.0
11035+
resolution: "react-dom@npm:19.0.0"
1103611036
dependencies:
11037-
loose-envify: "npm:^1.1.0"
11038-
scheduler: "npm:^0.23.2"
11037+
scheduler: "npm:^0.25.0"
1103911038
peerDependencies:
11040-
react: ^18.3.1
11041-
checksum: 10c0/a752496c1941f958f2e8ac56239172296fcddce1365ce45222d04a1947e0cc5547df3e8447f855a81d6d39f008d7c32eab43db3712077f09e3f67c4874973e85
11039+
react: ^19.0.0
11040+
checksum: 10c0/a36ce7ab507b237ae2759c984cdaad4af4096d8199fb65b3815c16825e5cfeb7293da790a3fc2184b52bfba7ba3ff31c058c01947aff6fd1a3701632aabaa6a9
1104211041
languageName: node
1104311042
linkType: hard
1104411043

@@ -11158,12 +11157,10 @@ __metadata:
1115811157
languageName: node
1115911158
linkType: hard
1116011159

11161-
"react@npm:^18.3.1":
11162-
version: 18.3.1
11163-
resolution: "react@npm:18.3.1"
11164-
dependencies:
11165-
loose-envify: "npm:^1.1.0"
11166-
checksum: 10c0/283e8c5efcf37802c9d1ce767f302dd569dd97a70d9bb8c7be79a789b9902451e0d16334b05d73299b20f048cbc3c7d288bbbde10b701fa194e2089c237dbea3
11160+
"react@npm:^19.0.0":
11161+
version: 19.0.0
11162+
resolution: "react@npm:19.0.0"
11163+
checksum: 10c0/9cad8f103e8e3a16d15cb18a0d8115d8bd9f9e1ce3420310aea381eb42aa0a4f812cf047bb5441349257a05fba8a291515691e3cb51267279b2d2c3253f38471
1116711164
languageName: node
1116811165
linkType: hard
1116911166

@@ -11624,12 +11621,10 @@ __metadata:
1162411621
languageName: node
1162511622
linkType: hard
1162611623

11627-
"scheduler@npm:^0.23.2":
11628-
version: 0.23.2
11629-
resolution: "scheduler@npm:0.23.2"
11630-
dependencies:
11631-
loose-envify: "npm:^1.1.0"
11632-
checksum: 10c0/26383305e249651d4c58e6705d5f8425f153211aef95f15161c151f7b8de885f24751b377e4a0b3dd42cce09aad3f87a61dab7636859c0d89b7daf1a1e2a5c78
11624+
"scheduler@npm:^0.25.0":
11625+
version: 0.25.0
11626+
resolution: "scheduler@npm:0.25.0"
11627+
checksum: 10c0/a4bb1da406b613ce72c1299db43759526058fdcc413999c3c3e0db8956df7633acf395cb20eb2303b6a65d658d66b6585d344460abaee8080b4aa931f10eaafe
1163311628
languageName: node
1163411629
linkType: hard
1163511630

examples/hello-world/package.json

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
"version": "0.1.0",
44
"private": true,
55
"dependencies": {
6-
"react": "^18.3.1",
6+
"react": "^19.0.0",
77
"react-datepicker": "^7.5.0",
8-
"react-dom": "^18.3.1",
8+
"react-dom": "^19.0.0",
99
"react-scripts": "5.0.1"
1010
},
1111
"scripts": {
@@ -18,16 +18,12 @@
1818
"extends": "react-app"
1919
},
2020
"browserslist": {
21-
"production": [
22-
">0.2%",
23-
"not dead",
24-
"not op_mini all"
25-
],
21+
"production": [">0.2%", "not dead", "not op_mini all"],
2622
"development": [
2723
"last 1 chrome version",
2824
"last 1 firefox version",
2925
"last 1 safari version"
3026
]
3127
},
32-
"packageManager": "yarn@4.3.1"
28+
"packageManager": "yarn@4.6.0"
3329
}

examples/hello-world/yarn.lock

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -7067,9 +7067,9 @@ __metadata:
70677067
version: 0.0.0-use.local
70687068
resolution: "hello-world@workspace:."
70697069
dependencies:
7070-
react: "npm:^18.3.1"
7070+
react: "npm:^19.0.0"
70717071
react-datepicker: "npm:^7.5.0"
7072-
react-dom: "npm:^18.3.1"
7072+
react-dom: "npm:^19.0.0"
70737073
react-scripts: "npm:5.0.1"
70747074
languageName: unknown
70757075
linkType: soft
@@ -8766,7 +8766,7 @@ __metadata:
87668766
languageName: node
87678767
linkType: hard
87688768

8769-
"loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0":
8769+
"loose-envify@npm:^1.4.0":
87708770
version: 1.4.0
87718771
resolution: "loose-envify@npm:1.4.0"
87728772
dependencies:
@@ -10841,15 +10841,14 @@ __metadata:
1084110841
languageName: node
1084210842
linkType: hard
1084310843

10844-
"react-dom@npm:^18.3.1":
10845-
version: 18.3.1
10846-
resolution: "react-dom@npm:18.3.1"
10844+
"react-dom@npm:^19.0.0":
10845+
version: 19.0.0
10846+
resolution: "react-dom@npm:19.0.0"
1084710847
dependencies:
10848-
loose-envify: "npm:^1.1.0"
10849-
scheduler: "npm:^0.23.2"
10848+
scheduler: "npm:^0.25.0"
1085010849
peerDependencies:
10851-
react: ^18.3.1
10852-
checksum: 10c0/a752496c1941f958f2e8ac56239172296fcddce1365ce45222d04a1947e0cc5547df3e8447f855a81d6d39f008d7c32eab43db3712077f09e3f67c4874973e85
10850+
react: ^19.0.0
10851+
checksum: 10c0/a36ce7ab507b237ae2759c984cdaad4af4096d8199fb65b3815c16825e5cfeb7293da790a3fc2184b52bfba7ba3ff31c058c01947aff6fd1a3701632aabaa6a9
1085310852
languageName: node
1085410853
linkType: hard
1085510854

@@ -10955,12 +10954,10 @@ __metadata:
1095510954
languageName: node
1095610955
linkType: hard
1095710956

10958-
"react@npm:^18.3.1":
10959-
version: 18.3.1
10960-
resolution: "react@npm:18.3.1"
10961-
dependencies:
10962-
loose-envify: "npm:^1.1.0"
10963-
checksum: 10c0/283e8c5efcf37802c9d1ce767f302dd569dd97a70d9bb8c7be79a789b9902451e0d16334b05d73299b20f048cbc3c7d288bbbde10b701fa194e2089c237dbea3
10957+
"react@npm:^19.0.0":
10958+
version: 19.0.0
10959+
resolution: "react@npm:19.0.0"
10960+
checksum: 10c0/9cad8f103e8e3a16d15cb18a0d8115d8bd9f9e1ce3420310aea381eb42aa0a4f812cf047bb5441349257a05fba8a291515691e3cb51267279b2d2c3253f38471
1096410961
languageName: node
1096510962
linkType: hard
1096610963

@@ -11397,12 +11394,10 @@ __metadata:
1139711394
languageName: node
1139811395
linkType: hard
1139911396

11400-
"scheduler@npm:^0.23.2":
11401-
version: 0.23.2
11402-
resolution: "scheduler@npm:0.23.2"
11403-
dependencies:
11404-
loose-envify: "npm:^1.1.0"
11405-
checksum: 10c0/26383305e249651d4c58e6705d5f8425f153211aef95f15161c151f7b8de885f24751b377e4a0b3dd42cce09aad3f87a61dab7636859c0d89b7daf1a1e2a5c78
11397+
"scheduler@npm:^0.25.0":
11398+
version: 0.25.0
11399+
resolution: "scheduler@npm:0.25.0"
11400+
checksum: 10c0/a4bb1da406b613ce72c1299db43759526058fdcc413999c3c3e0db8956df7633acf395cb20eb2303b6a65d658d66b6585d344460abaee8080b4aa931f10eaafe
1140611401
languageName: node
1140711402
linkType: hard
1140811403

package.json

Lines changed: 8 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -11,23 +11,9 @@
1111
"module": "dist/es/index.js",
1212
"unpkg": "dist/react-datepicker.min.js",
1313
"style": "dist/react-datepicker.min.css",
14-
"files": [
15-
"*.md",
16-
"dist",
17-
"lib",
18-
"es",
19-
"src/stylesheets"
20-
],
21-
"sideEffects": [
22-
"**/*.css"
23-
],
24-
"keywords": [
25-
"react",
26-
"datepicker",
27-
"calendar",
28-
"date",
29-
"react-component"
30-
],
14+
"files": ["*.md", "dist", "lib", "es", "src/stylesheets"],
15+
"sideEffects": ["**/*.css"],
16+
"keywords": ["react", "datepicker", "calendar", "date", "react-component"],
3117
"repository": {
3218
"type": "git",
3319
"url": "git://github.com/Hacker0x01/react-datepicker.git"
@@ -55,8 +41,8 @@
5541
"@types/eslint": "^8.56.10",
5642
"@types/jest": "^29.5.12",
5743
"@types/node": "22",
58-
"@types/react": "^18.3.4",
59-
"@types/react-dom": "^18.3.0",
44+
"@types/react": "^19.0.2",
45+
"@types/react-dom": "^19.0.2",
6046
"@typescript-eslint/eslint-plugin": "^7.18.0",
6147
"@typescript-eslint/parser": "^8.6.0",
6248
"axe-core": "^4.10.0",
@@ -77,8 +63,8 @@
7763
"lint-staged": "^15.2.9",
7864
"lodash": "^4.17.21",
7965
"prettier": "^3.3.3",
80-
"react": "^18.3.1",
81-
"react-dom": "^18.3.1",
66+
"react": "^19.0.0",
67+
"react-dom": "^19.0.0",
8268
"rollup": "^4.21.1",
8369
"rollup-plugin-filesize": "^10.0.0",
8470
"sass": "1.80.7",
@@ -124,10 +110,7 @@
124110
"prepare": "husky"
125111
},
126112
"lint-staged": {
127-
"*.{js,jsx,ts,tsx,json,css,scss,md}": [
128-
"prettier --write",
129-
"git add"
130-
]
113+
"*.{js,jsx,ts,tsx,json,css,scss,md}": ["prettier --write", "git add"]
131114
},
132115
"packageManager": "[email protected]"
133116
}

src/calendar.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ export default class Calendar extends Component<CalendarProps, CalendarState> {
281281
}
282282
}
283283

284-
containerRef: React.RefObject<HTMLDivElement>;
284+
containerRef: React.RefObject<HTMLDivElement | null>;
285285

286286
monthContainer: CalendarState["monthContainer"] = undefined;
287287

src/calendar_icon.tsx

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,16 @@ const CalendarIcon: React.FC<CalendarIconProps> = ({
4444

4545
if (React.isValidElement(icon)) {
4646
// Because we are checking that typeof icon is string first, we can safely cast icon as React.ReactElement on types level and code level
47-
return React.cloneElement(icon as React.ReactElement, {
48-
className: `${icon.props.className || ""} ${defaultClass} ${className}`,
47+
const iconElement = icon as React.ReactElement<{
48+
className: string;
49+
onClick: (event: React.MouseEvent) => void;
50+
}>;
51+
52+
return React.cloneElement(iconElement, {
53+
className: `${iconElement.props.className || ""} ${defaultClass} ${className}`,
4954
onClick: (event: React.MouseEvent) => {
50-
if (typeof icon.props.onClick === "function") {
51-
icon.props.onClick(event);
55+
if (typeof iconElement.props.onClick === "function") {
56+
iconElement.props.onClick(event);
5257
}
5358

5459
if (typeof onClick === "function") {

src/input_time.tsx

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,11 @@ interface InputTimeProps {
55
date?: Date;
66
timeString?: string;
77
timeInputLabel?: string;
8-
customTimeInput?: React.ReactElement;
8+
customTimeInput?: React.ReactElement<{
9+
date?: Date;
10+
value: string;
11+
onChange: (time: string) => void;
12+
}>;
913
}
1014

1115
interface InputTimeState {
@@ -32,7 +36,7 @@ export default class InputTime extends Component<
3236
InputTimeProps,
3337
InputTimeState
3438
> {
35-
inputRef: React.RefObject<HTMLInputElement> = React.createRef();
39+
inputRef: React.RefObject<HTMLInputElement | null> = React.createRef();
3640

3741
constructor(props: InputTimeProps) {
3842
super(props);

src/tab_loop.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ export default class TabLoop extends Component<TabLoopProps> {
5454
this.tabLoopRef = createRef();
5555
}
5656

57-
private tabLoopRef: React.RefObject<HTMLDivElement>;
57+
private tabLoopRef: React.RefObject<HTMLDivElement | null>;
5858

5959
/**
6060
* `getTabChildren` is a method of the `TabLoop` class that retrieves all tabbable children of the component.

src/with_floating.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ export default function withFloating<T extends FloatingProps>(
4848
const WithFloating: React.FC<R> = (props): React.ReactElement => {
4949
const hidePopper: boolean =
5050
typeof props.hidePopper === "boolean" ? props.hidePopper : true;
51-
const arrowRef: React.RefObject<HTMLElement> = useRef(null);
51+
const arrowRef: React.RefObject<HTMLElement | null> = useRef(null);
5252
const floatingProps = useFloating({
5353
open: !hidePopper,
5454
whileElementsMounted: autoUpdate,

0 commit comments

Comments
 (0)