From a8b337ed5400d913c3ff3832a75f94dcb031112a Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Wed, 1 May 2024 15:14:37 +0900 Subject: [PATCH 1/8] chore(deps): react beta 20240430 --- examples/react-server/package.json | 6 +-- examples/react-ssr-workerd/package.json | 4 +- examples/react-ssr/package.json | 4 +- pnpm-lock.yaml | 58 ++++++++++++------------- 4 files changed, 36 insertions(+), 36 deletions(-) diff --git a/examples/react-server/package.json b/examples/react-server/package.json index 67a365d2..77a8ad0b 100644 --- a/examples/react-server/package.json +++ b/examples/react-server/package.json @@ -14,9 +14,9 @@ "cf-release": "cd misc/cloudflare-workers && wrangler deploy" }, "dependencies": { - "react": "19.0.0-canary-4c12339ce-20240408", - "react-dom": "19.0.0-canary-4c12339ce-20240408", - "react-server-dom-webpack": "19.0.0-canary-4c12339ce-20240408" + "react": "19.0.0-beta-4508873393-20240430", + "react-dom": "19.0.0-beta-4508873393-20240430", + "react-server-dom-webpack": "19.0.0-beta-4508873393-20240430" }, "devDependencies": { "@hiogawa/vite-plugin-ssr-middleware-alpha": "workspace:*", diff --git a/examples/react-ssr-workerd/package.json b/examples/react-ssr-workerd/package.json index e7a6028d..111b9b83 100644 --- a/examples/react-ssr-workerd/package.json +++ b/examples/react-ssr-workerd/package.json @@ -7,8 +7,8 @@ "test-e2e": "playwright test" }, "dependencies": { - "react": "19.0.0-canary-4c12339ce-20240408", - "react-dom": "19.0.0-canary-4c12339ce-20240408" + "react": "19.0.0-beta-4508873393-20240430", + "react-dom": "19.0.0-beta-4508873393-20240430" }, "devDependencies": { "@cloudflare/workers-types": "^4.20240405.0", diff --git a/examples/react-ssr/package.json b/examples/react-ssr/package.json index f38a5d06..63e66e1a 100644 --- a/examples/react-ssr/package.json +++ b/examples/react-ssr/package.json @@ -14,8 +14,8 @@ "vc-release": "vercel deploy --prebuilt misc/vercel-edge --prod" }, "dependencies": { - "react": "19.0.0-canary-4c12339ce-20240408", - "react-dom": "19.0.0-canary-4c12339ce-20240408" + "react": "19.0.0-beta-4508873393-20240430", + "react-dom": "19.0.0-beta-4508873393-20240430" }, "devDependencies": { "@hiogawa/vite-plugin-ssr-middleware-alpha": "workspace:*", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 95f13926..4a69c8c7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -91,14 +91,14 @@ importers: examples/react-server: dependencies: react: - specifier: 19.0.0-canary-4c12339ce-20240408 - version: 19.0.0-canary-4c12339ce-20240408 + specifier: 19.0.0-beta-4508873393-20240430 + version: 19.0.0-beta-4508873393-20240430 react-dom: - specifier: 19.0.0-canary-4c12339ce-20240408 - version: 19.0.0-canary-4c12339ce-20240408(react@19.0.0-canary-4c12339ce-20240408) + specifier: 19.0.0-beta-4508873393-20240430 + version: 19.0.0-beta-4508873393-20240430(react@19.0.0-beta-4508873393-20240430) react-server-dom-webpack: - specifier: 19.0.0-canary-4c12339ce-20240408 - version: 19.0.0-canary-4c12339ce-20240408(react-dom@19.0.0-canary-4c12339ce-20240408)(react@19.0.0-canary-4c12339ce-20240408)(webpack@5.91.0) + specifier: 19.0.0-beta-4508873393-20240430 + version: 19.0.0-beta-4508873393-20240430(react-dom@19.0.0-beta-4508873393-20240430)(react@19.0.0-beta-4508873393-20240430)(webpack@5.91.0) devDependencies: '@hiogawa/vite-plugin-ssr-middleware-alpha': specifier: workspace:* @@ -122,11 +122,11 @@ importers: examples/react-ssr: dependencies: react: - specifier: 19.0.0-canary-4c12339ce-20240408 - version: 19.0.0-canary-4c12339ce-20240408 + specifier: 19.0.0-beta-4508873393-20240430 + version: 19.0.0-beta-4508873393-20240430 react-dom: - specifier: 19.0.0-canary-4c12339ce-20240408 - version: 19.0.0-canary-4c12339ce-20240408(react@19.0.0-canary-4c12339ce-20240408) + specifier: 19.0.0-beta-4508873393-20240430 + version: 19.0.0-beta-4508873393-20240430(react@19.0.0-beta-4508873393-20240430) devDependencies: '@hiogawa/vite-plugin-ssr-middleware-alpha': specifier: workspace:* @@ -144,11 +144,11 @@ importers: examples/react-ssr-workerd: dependencies: react: - specifier: 19.0.0-canary-4c12339ce-20240408 - version: 19.0.0-canary-4c12339ce-20240408 + specifier: 19.0.0-beta-4508873393-20240430 + version: 19.0.0-beta-4508873393-20240430 react-dom: - specifier: 19.0.0-canary-4c12339ce-20240408 - version: 19.0.0-canary-4c12339ce-20240408(react@19.0.0-canary-4c12339ce-20240408) + specifier: 19.0.0-beta-4508873393-20240430 + version: 19.0.0-beta-4508873393-20240430(react@19.0.0-beta-4508873393-20240430) devDependencies: '@cloudflare/workers-types': specifier: ^4.20240405.0 @@ -3498,13 +3498,13 @@ packages: scheduler: 0.24.0-canary-6c3b8dbfe-20240226 dev: false - /react-dom@19.0.0-canary-4c12339ce-20240408(react@19.0.0-canary-4c12339ce-20240408): - resolution: {integrity: sha512-dMttAQ6IA63sUCCw+ZBE4QBO87PGjEcgNhNTYGHmw15ONqeUKQ8XmGEUKBOTmux7CIV9gdmKr3BGUFdGeT5ERA==} + /react-dom@19.0.0-beta-4508873393-20240430(react@19.0.0-beta-4508873393-20240430): + resolution: {integrity: sha512-/j97ai1qF3c6O3XV0nVzzExPV/0U2v8M75Sq6ThXYxePCi33kAnm+xRsCDpZOZOrIjz6nurLU/FzzPZIzXVvKQ==} peerDependencies: - react: 19.0.0-canary-4c12339ce-20240408 + react: 19.0.0-beta-4508873393-20240430 dependencies: - react: 19.0.0-canary-4c12339ce-20240408 - scheduler: 0.25.0-canary-4c12339ce-20240408 + react: 19.0.0-beta-4508873393-20240430 + scheduler: 0.25.0-beta-4508873393-20240430 dev: false /react-is@18.2.0: @@ -3516,18 +3516,18 @@ packages: engines: {node: '>=0.10.0'} dev: true - /react-server-dom-webpack@19.0.0-canary-4c12339ce-20240408(react-dom@19.0.0-canary-4c12339ce-20240408)(react@19.0.0-canary-4c12339ce-20240408)(webpack@5.91.0): - resolution: {integrity: sha512-elO6awJXbj1liRJKORVGPb/Teeu/8FDJUuinrOHdvTRAx4kXgXW4FlVr7QRuGQzi8JauT042ql0qYLfhGBD5qA==} + /react-server-dom-webpack@19.0.0-beta-4508873393-20240430(react-dom@19.0.0-beta-4508873393-20240430)(react@19.0.0-beta-4508873393-20240430)(webpack@5.91.0): + resolution: {integrity: sha512-/rRIMqNoeReqyioWwfLyqu/qUfZ39YLXOfkhLrXOStzG2g7Q2a5DoLD0eZOcCIpvpWg+/QRw1xOGZLm75mK+Aw==} engines: {node: '>=0.10.0'} peerDependencies: - react: 19.0.0-canary-4c12339ce-20240408 - react-dom: 19.0.0-canary-4c12339ce-20240408 + react: 19.0.0-beta-4508873393-20240430 + react-dom: 19.0.0-beta-4508873393-20240430 webpack: ^5.59.0 dependencies: acorn-loose: 8.4.0 neo-async: 2.6.2 - react: 19.0.0-canary-4c12339ce-20240408 - react-dom: 19.0.0-canary-4c12339ce-20240408(react@19.0.0-canary-4c12339ce-20240408) + react: 19.0.0-beta-4508873393-20240430 + react-dom: 19.0.0-beta-4508873393-20240430(react@19.0.0-beta-4508873393-20240430) webpack: 5.91.0(esbuild@0.20.2) dev: false @@ -3538,8 +3538,8 @@ packages: loose-envify: 1.4.0 dev: false - /react@19.0.0-canary-4c12339ce-20240408: - resolution: {integrity: sha512-QdQl76CTAmYrwjxq6fZRDWw2/MHPNxkYQ1xZVir2MbK/wxK62vFAPGr2j/AXs36ADVUq+tUGx4XNmdgnfL4f1Q==} + /react@19.0.0-beta-4508873393-20240430: + resolution: {integrity: sha512-//89udV7fhVq5pEzpNH7vlpmS5D4wDbPn0oif+G7vwDsuSks5yJGdqrE1uzn2CyFNL73FjV3/R3Pjyaxs+xnvg==} engines: {node: '>=0.10.0'} dev: false @@ -3631,8 +3631,8 @@ packages: loose-envify: 1.4.0 dev: false - /scheduler@0.25.0-canary-4c12339ce-20240408: - resolution: {integrity: sha512-XGG/Y5q5jeJy+rKp963+nlz81H/eDEMDmwem8QFHkuufjW/IEhM9ha6PO76m9qA6Qr59HVjlTGJ6D1bH1lemeQ==} + /scheduler@0.25.0-beta-4508873393-20240430: + resolution: {integrity: sha512-gk9vDoDOjTys0DpLgFll+hYk5gLhLnTipi81Pl+XSRtWkQnqQdjxLO2RF726t0g0jQ5tvwjLfBCgsvusgB6Luw==} dev: false /schema-utils@3.3.0: From 20835a61ff1304a2506b49ea5af6b2b41e55db19 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Wed, 1 May 2024 15:20:22 +0900 Subject: [PATCH 2/8] chore: update types --- examples/custom/package.json | 4 +- examples/react-server/package.json | 4 +- examples/react-server/src/routes/_client.tsx | 15 +------ examples/react-ssr-workerd/package.json | 4 +- examples/react-ssr/package.json | 4 +- pnpm-lock.yaml | 42 ++++++++++---------- 6 files changed, 30 insertions(+), 43 deletions(-) diff --git a/examples/custom/package.json b/examples/custom/package.json index e4cea31b..5a5782e9 100644 --- a/examples/custom/package.json +++ b/examples/custom/package.json @@ -10,8 +10,8 @@ "react-dom": "18.3.0-canary-6c3b8dbfe-20240226" }, "devDependencies": { - "@types/react": "18.2.72", - "@types/react-dom": "18.2.22" + "@types/react": "18.3.1", + "@types/react-dom": "18.3.0" }, "volta": { "extends": "../../package.json" diff --git a/examples/react-server/package.json b/examples/react-server/package.json index 77a8ad0b..727273c2 100644 --- a/examples/react-server/package.json +++ b/examples/react-server/package.json @@ -20,8 +20,8 @@ }, "devDependencies": { "@hiogawa/vite-plugin-ssr-middleware-alpha": "workspace:*", - "@types/react": "18.2.72", - "@types/react-dom": "18.2.22", + "@types/react": "18.3.1", + "@types/react-dom": "18.3.0", "@unocss/vite": "^0.59.4", "happy-dom": "^14.7.1", "unocss": "^0.59.4" diff --git a/examples/react-server/src/routes/_client.tsx b/examples/react-server/src/routes/_client.tsx index 200add26..66f89fc8 100644 --- a/examples/react-server/src/routes/_client.tsx +++ b/examples/react-server/src/routes/_client.tsx @@ -33,8 +33,7 @@ export function ClientComponent() { } export function UseActionStateDemo() { - const useActionState = (React as any).useActionState as ReactUseActionState; - const [data, formAction, isPending] = useActionState(checkAnswer, null); + const [data, formAction, isPending] = React.useActionState(checkAnswer, null); return (
@@ -61,15 +60,3 @@ export function UseActionStateDemo() {
); } - -// type is copied from ReactDOM.useFormState -// https://github.com/facebook/react/pull/28491 -type ReactUseActionState = ( - action: (state: Awaited, payload: Payload) => State | Promise, - initialState: Awaited, - permalink?: string, -) => [ - state: Awaited, - dispatch: (payload: Payload) => void, - isPending: boolean, -]; diff --git a/examples/react-ssr-workerd/package.json b/examples/react-ssr-workerd/package.json index 111b9b83..e617f05f 100644 --- a/examples/react-ssr-workerd/package.json +++ b/examples/react-ssr-workerd/package.json @@ -13,8 +13,8 @@ "devDependencies": { "@cloudflare/workers-types": "^4.20240405.0", "@hiogawa/vite-plugin-workerd": "workspace:*", - "@types/react": "18.2.72", - "@types/react-dom": "18.2.22" + "@types/react": "18.3.1", + "@types/react-dom": "18.3.0" }, "volta": { "extends": "../../package.json" diff --git a/examples/react-ssr/package.json b/examples/react-ssr/package.json index 63e66e1a..2ca343bf 100644 --- a/examples/react-ssr/package.json +++ b/examples/react-ssr/package.json @@ -20,8 +20,8 @@ "devDependencies": { "@hiogawa/vite-plugin-ssr-middleware-alpha": "workspace:*", "@hiogawa/vite-plugin-workerd": "workspace:*", - "@types/react": "18.2.72", - "@types/react-dom": "18.2.22" + "@types/react": "18.3.1", + "@types/react-dom": "18.3.0" }, "volta": { "extends": "../../package.json" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 4a69c8c7..8f9da69b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -82,11 +82,11 @@ importers: version: 18.3.0-canary-6c3b8dbfe-20240226(react@18.3.0-canary-6c3b8dbfe-20240226) devDependencies: '@types/react': - specifier: 18.2.72 - version: 18.2.72 + specifier: 18.3.1 + version: 18.3.1 '@types/react-dom': - specifier: 18.2.22 - version: 18.2.22 + specifier: 18.3.0 + version: 18.3.0 examples/react-server: dependencies: @@ -104,11 +104,11 @@ importers: specifier: workspace:* version: link:../../packages/ssr-middleware '@types/react': - specifier: 18.2.72 - version: 18.2.72 + specifier: 18.3.1 + version: 18.3.1 '@types/react-dom': - specifier: 18.2.22 - version: 18.2.22 + specifier: 18.3.0 + version: 18.3.0 '@unocss/vite': specifier: ^0.59.4 version: 0.59.4(vite@6.0.0-alpha.7) @@ -135,11 +135,11 @@ importers: specifier: workspace:* version: link:../../packages/workerd '@types/react': - specifier: 18.2.72 - version: 18.2.72 + specifier: 18.3.1 + version: 18.3.1 '@types/react-dom': - specifier: 18.2.22 - version: 18.2.22 + specifier: 18.3.0 + version: 18.3.0 examples/react-ssr-workerd: dependencies: @@ -157,11 +157,11 @@ importers: specifier: workspace:* version: link:../../packages/workerd '@types/react': - specifier: 18.2.72 - version: 18.2.72 + specifier: 18.3.1 + version: 18.3.1 '@types/react-dom': - specifier: 18.2.22 - version: 18.2.22 + specifier: 18.3.0 + version: 18.3.0 examples/vue-ssr: dependencies: @@ -1650,14 +1650,14 @@ packages: resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} dev: true - /@types/react-dom@18.2.22: - resolution: {integrity: sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==} + /@types/react-dom@18.3.0: + resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} dependencies: - '@types/react': 18.2.72 + '@types/react': 18.3.1 dev: true - /@types/react@18.2.72: - resolution: {integrity: sha512-/e7GWxGzXQF7OJAua7UAYqYi/4VpXEfbGtmYQcAQwP3SjjjAXfybTf/JK5S+SaetB/ChXl8Y2g1hCsj7jDXxcg==} + /@types/react@18.3.1: + resolution: {integrity: sha512-V0kuGBX3+prX+DQ/7r2qsv1NsdfnCLnTgnRJ1pYnxykBhGMz+qj+box5lq7XsO5mtZsBqpjwwTu/7wszPfMBcw==} dependencies: '@types/prop-types': 15.7.12 csstype: 3.1.3 From 387d8b9a59672b46f52c2a33b71b3cf325ac7700 Mon Sep 17 00:00:00 2001 From: Hiroshi Ogawa Date: Wed, 1 May 2024 15:23:55 +0900 Subject: [PATCH 3/8] chore: debug effect count --- examples/react-server/src/routes/_client.tsx | 23 +++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/examples/react-server/src/routes/_client.tsx b/examples/react-server/src/routes/_client.tsx index 66f89fc8..62bb451e 100644 --- a/examples/react-server/src/routes/_client.tsx +++ b/examples/react-server/src/routes/_client.tsx @@ -1,6 +1,7 @@ "use client"; import "./_client.css"; +import { tinyassert } from "@hiogawa/utils"; import React from "react"; import { checkAnswer } from "./_action"; import { SharedComponent } from "./_shared"; @@ -20,7 +21,10 @@ export function ClientComponent() {
unocss (client)
-
hydrated: {String(hydrated)}
+
+
[hydrated: {String(hydrated)}]
+ +
Count: {count}
-
+

Hello useActionState

@@ -97,11 +95,21 @@ exports[`basic 1`] = ` > unocss (client) -
- hydrated: - true +
+
+ [hydrated: + true + ] +
+
+ [effect: + + 2 + + ] +
Count: