diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b0402b9f215e14..0c1f4ce8b5dfd9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -150,6 +150,10 @@ export class HashedLinkService { ... } [See README](https://github.com/calcom/cal.com#development) +### React Version Standard + +This monorepo has standardized on **React 19** (e.g., `react@19.2.4`, `@types/react@19.0.0`). We are using React 19 instead of React 18 because Next.js 16 does not support React 18. Please ensure any new apps, packages, or updates use React 19 to avoid version drift and hydration mismatches. + ## Building You can build the project with: diff --git a/apps/web/package.json b/apps/web/package.json index 9d4a5db8a1994d..0d40e4bddbc93d 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -120,9 +120,9 @@ "posthog-js": "1.274.1", "qrcode": "1.5.1", "raw-body": "2.5.2", - "react": "18.2.0", + "react": "19.2.4", "react-digit-input": "2.1.0", - "react-dom": "18.2.0", + "react-dom": "19.2.4", "react-easy-crop": "3.5.3", "react-hook-form": "7.43.3", "react-i18next": "12.3.1", @@ -175,7 +175,7 @@ "@types/module-alias": "2.0.1", "@types/nodemailer": "6.4.5", "@types/qrcode": "1.4.3", - "@types/react": "18.0.26", + "@types/react": "19.0.0", "@types/remove-markdown": "0.3.1", "@types/sanitize-html": "2.9.0", "@types/stripe": "8.0.417", diff --git a/package.json b/package.json index 17de92f933abd2..4905d61975ac4e 100644 --- a/package.json +++ b/package.json @@ -121,8 +121,10 @@ "@isaacs/brace-expansion": "5.0.1", "types-ramda": "0.29.4", "@apidevtools/json-schema-ref-parser": "9.0.9", - "@types/react": "18.0.26", - "@types/react-dom": "^18.0.9", + "@types/react": "19.0.0", + "@types/react-dom": "^19.0.0", + "react": "19.2.4", + "react-dom": "19.2.4", "@types/node": "^20.17.23", "next-i18next@^13.2.2": "patch:next-i18next@npm%3A13.3.0#./.yarn/patches/next-i18next-npm-13.3.0-bf25b0943c.patch", "libphonenumber-js": "patch:libphonenumber-js@1.12.38#./.yarn/patches/libphonenumber-js+1.12.38.patch", diff --git a/yarn.lock b/yarn.lock index 838a26c3f11d78..a8e3d1154bccb0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3399,7 +3399,7 @@ __metadata: "@types/module-alias": "npm:2.0.1" "@types/nodemailer": "npm:6.4.5" "@types/qrcode": "npm:1.4.3" - "@types/react": "npm:18.0.26" + "@types/react": "npm:19.0.0" "@types/remove-markdown": "npm:0.3.1" "@types/sanitize-html": "npm:2.9.0" "@types/stripe": "npm:8.0.417" @@ -3456,9 +3456,9 @@ __metadata: posthog-js: "npm:1.274.1" qrcode: "npm:1.5.1" raw-body: "npm:2.5.2" - react: "npm:18.2.0" + react: "npm:19.2.4" react-digit-input: "npm:2.1.0" - react-dom: "npm:18.2.0" + react-dom: "npm:19.2.4" react-easy-crop: "npm:3.5.3" react-hook-form: "npm:7.43.3" react-i18next: "npm:12.3.1" @@ -16176,13 +16176,6 @@ __metadata: languageName: node linkType: hard -"@types/prop-types@npm:*": - version: 15.7.5 - resolution: "@types/prop-types@npm:15.7.5" - checksum: 10/5b43b8b15415e1f298243165f1d44390403bb2bd42e662bca3b5b5633fdd39c938e91b7fce3a9483699db0f7a715d08cef220c121f723a634972fdf596aec980 - languageName: node - linkType: hard - "@types/qrcode@npm:1.4.3": version: 1.4.3 resolution: "@types/qrcode@npm:1.4.3" @@ -16215,12 +16208,12 @@ __metadata: languageName: node linkType: hard -"@types/react-dom@npm:^18.0.9": - version: 18.2.6 - resolution: "@types/react-dom@npm:18.2.6" - dependencies: - "@types/react": "npm:*" - checksum: 10/dbdf98d127db58130f3e4394f23a6b4b200703049579e97a4e6049c0f47f871c7731cec37e2067afb62cc7c5486bd1b151fc0ef672b9ea7369c40d811592b948 +"@types/react-dom@npm:^19.0.0": + version: 19.2.3 + resolution: "@types/react-dom@npm:19.2.3" + peerDependencies: + "@types/react": ^19.2.0 + checksum: 10/616c4a8aee250ea05fb1e7b98e7e00475dd3a6c1c30d7be18b4b93caba832f4203106b3a496a6b147e5acc2da14575eca47bce234c633bca1f8430ef8ffb234a languageName: node linkType: hard @@ -16245,14 +16238,12 @@ __metadata: languageName: node linkType: hard -"@types/react@npm:18.0.26": - version: 18.0.26 - resolution: "@types/react@npm:18.0.26" +"@types/react@npm:19.0.0": + version: 19.0.0 + resolution: "@types/react@npm:19.0.0" dependencies: - "@types/prop-types": "npm:*" - "@types/scheduler": "npm:*" csstype: "npm:^3.0.2" - checksum: 10/2c20b70468511f3393a60c39d2633d554c5f8a85b48ec7beff396fc01b4bfdb655a277a8d1d9c3bf6e944f8573bc693d8c95973f379c9534a4368bb8d430b0d1 + checksum: 10/5596d9a2c9c982d5e86add54f5d9b115153c4d47073dd3f8f8369a5e5b7f3088d614a935f85a2cf26eb6631d7ebebc7b913c5d22bf880847370070f2e60e63e6 languageName: node linkType: hard @@ -16296,13 +16287,6 @@ __metadata: languageName: node linkType: hard -"@types/scheduler@npm:*": - version: 0.16.2 - resolution: "@types/scheduler@npm:0.16.2" - checksum: 10/b6b4dcfeae6deba2e06a70941860fb1435730576d3689225a421280b7742318d1548b3d22c1f66ab68e414f346a9542f29240bc955b6332c5b11e561077583bc - languageName: node - linkType: hard - "@types/send@npm:*": version: 0.17.4 resolution: "@types/send@npm:0.17.4" @@ -33354,15 +33338,14 @@ __metadata: languageName: node linkType: hard -"react-dom@npm:18.2.0": - version: 18.2.0 - resolution: "react-dom@npm:18.2.0" +"react-dom@npm:19.2.4": + version: 19.2.4 + resolution: "react-dom@npm:19.2.4" dependencies: - loose-envify: "npm:^1.1.0" - scheduler: "npm:^0.23.0" + scheduler: "npm:^0.27.0" peerDependencies: - react: ^18.2.0 - checksum: 10/ca5e7762ec8c17a472a3605b6f111895c9f87ac7d43a610ab7024f68cd833d08eda0625ce02ec7178cc1f3c957cf0b9273cdc17aa2cd02da87544331c43b1d21 + react: ^19.2.4 + checksum: 10/ec17721a8cb131bc33480a9f738bc5bbfe4bd11b11cf69f3f473605346578a329ad26ceef6ef0761ea67a4b455803407dd7ed4ba3d8a5abd2cee8c32d221e498 languageName: node linkType: hard @@ -33817,15 +33800,6 @@ __metadata: languageName: node linkType: hard -"react@npm:18.2.0": - version: 18.2.0 - resolution: "react@npm:18.2.0" - dependencies: - loose-envify: "npm:^1.1.0" - checksum: 10/b9214a9bd79e99d08de55f8bef2b7fc8c39630be97c4e29d7be173d14a9a10670b5325e94485f74cd8bff4966ef3c78ee53c79a7b0b9b70cba20aa8973acc694 - languageName: node - linkType: hard - "react@npm:19.2.4": version: 19.2.4 resolution: "react@npm:19.2.4" @@ -34823,6 +34797,13 @@ __metadata: languageName: node linkType: hard +"scheduler@npm:^0.27.0": + version: 0.27.0 + resolution: "scheduler@npm:0.27.0" + checksum: 10/eab3c3a8373195173e59c147224fc30dabe6dd453f248f5e610e8458512a5a2ee3a06465dc400ebfe6d35c9f5b7f3bb6b2e41c88c86fd177c25a73e7286a1e06 + languageName: node + linkType: hard + "schema-dts@npm:1.1.0": version: 1.1.0 resolution: "schema-dts@npm:1.1.0"