diff --git a/examples/hello-world/package.json b/examples/hello-world/package.json
index b30b59b..f9fd444 100644
--- a/examples/hello-world/package.json
+++ b/examples/hello-world/package.json
@@ -11,8 +11,8 @@
},
"dependencies": {
"dayjs": "^1.11.10",
- "react": "file://../../packages/react/pkg/react",
- "react-dom": "file://../../packages/react-dom/pkg/react-dom",
+ "react": "file://../../dist/react",
+ "react-dom": "file://../../dist/react-dom",
"vite-plugin-wasm": "^3.3.0"
},
"devDependencies": {
diff --git a/examples/hello-world/pnpm-lock.yaml b/examples/hello-world/pnpm-lock.yaml
index b6ae9ec..35d363b 100644
--- a/examples/hello-world/pnpm-lock.yaml
+++ b/examples/hello-world/pnpm-lock.yaml
@@ -9,11 +9,11 @@ dependencies:
specifier: ^1.11.10
version: 1.11.10
react:
- specifier: file://../../packages/react/pkg/react
- version: file:../../packages/react/pkg/react
+ specifier: file://../../dist/react
+ version: file:../../dist/react
react-dom:
- specifier: file://../../packages/react-dom/pkg/react-dom
- version: file:../../packages/react-dom/pkg/react-dom
+ specifier: file://../../dist/react-dom
+ version: file:../../dist/react-dom
vite-plugin-wasm:
specifier: ^3.3.0
version: 3.3.0(vite@5.2.2)
@@ -1839,12 +1839,12 @@ packages:
engines: {node: '>=10'}
dev: true
- file:../../packages/react-dom/pkg/react-dom:
- resolution: {directory: ../../packages/react-dom/pkg/react-dom, type: directory}
- name: react-dom
+ file:../../dist/react:
+ resolution: {directory: ../../dist/react, type: directory}
+ name: react
dev: false
- file:../../packages/react/pkg/react:
- resolution: {directory: ../../packages/react/pkg/react, type: directory}
- name: react
+ file:../../dist/react-dom:
+ resolution: {directory: ../../dist/react-dom, type: directory}
+ name: react-dom
dev: false
diff --git a/examples/hello-world/src/App.tsx b/examples/hello-world/src/App.tsx
index 6786e83..3a7c6a3 100644
--- a/examples/hello-world/src/App.tsx
+++ b/examples/hello-world/src/App.tsx
@@ -1,8 +1,12 @@
-import dayjs from 'dayjs'
+import {useState} from 'react'
function App() {
+ const [name, setName] = useState(() => 'ayou')
+ setTimeout(() => {
+ setName('ayouayou')
+ }, 1000)
return (
-
{dayjs().format()}
+ {name}
)
}
diff --git a/package.json b/package.json
index 9d26db3..e1aa8ff 100644
--- a/package.json
+++ b/package.json
@@ -7,9 +7,7 @@
"example": "examples"
},
"scripts": {
- "build:react": "wasm-pack build packages/react --out-dir pkg/react --out-name jsx-dev-runtime",
- "build:react-dom": "wasm-pack build packages/react-dom --out-dir pkg/react-dom --out-name index",
- "build": "npm run build:react && npm run build:react-dom"
+ "build": "node scripts/build.js"
},
"author": "",
"license": "ISC"
diff --git a/packages/react-dom/src/renderer.rs b/packages/react-dom/src/renderer.rs
index 10d5d9d..57f4efa 100644
--- a/packages/react-dom/src/renderer.rs
+++ b/packages/react-dom/src/renderer.rs
@@ -3,7 +3,6 @@ use std::rc::Rc;
use wasm_bindgen::JsValue;
use wasm_bindgen::prelude::*;
-use wasm_bindgen::prelude::wasm_bindgen;
use react_reconciler::fiber::FiberRootNode;
use react_reconciler::Reconciler;
diff --git a/packages/react-reconciler/src/begin_work.rs b/packages/react-reconciler/src/begin_work.rs
index 879d46d..ae7849a 100644
--- a/packages/react-reconciler/src/begin_work.rs
+++ b/packages/react-reconciler/src/begin_work.rs
@@ -6,8 +6,8 @@ use wasm_bindgen::JsValue;
use shared::derive_from_js_value;
use crate::child_fiber::{mount_child_fibers, reconcile_child_fibers};
-use crate::fiber::FiberNode;
-use crate::fiber_hooks::FiberHooks;
+use crate::fiber::{FiberNode, MemoizedState};
+use crate::fiber_hooks::render_with_hooks;
use crate::update_queue::process_update_queue;
use crate::work_tags::WorkTag;
@@ -24,8 +24,7 @@ pub fn begin_work(work_in_progress: Rc>) -> Result