diff --git a/README.md b/README.md index d284c0cd..864633e6 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,11 @@ To build and run the River UI locally for development: # This example is for Ubuntu and may be different on your system sudo apt-get install libssl-dev + # Install Node.js (v20+) and npm + # See https://nodejs.org/en/download for installation instructions. + # Note: system packages (e.g. `apt-get install npm`) may ship outdated + # versions that don't work — install from the official site instead. + # Install build tools cargo install dioxus-cli cargo install cargo-make @@ -85,6 +90,9 @@ To build and run the River UI locally for development: git submodule init git submodule update + # Install Node.js dependencies (Tailwind CSS) + cd ui && npm install && cd .. + # Run development server with example data cargo make dev-example ``` diff --git a/ui/src/components/app/freenet_api/room_synchronizer.rs b/ui/src/components/app/freenet_api/room_synchronizer.rs index 90a4c567..1641d16a 100644 --- a/ui/src/components/app/freenet_api/room_synchronizer.rs +++ b/ui/src/components/app/freenet_api/room_synchronizer.rs @@ -493,10 +493,11 @@ impl RoomSynchronizer { let authorized_upgrade = AuthorizedUpgradeV1::new(upgrade, &room_data.self_sk); - ChatRoomStateV1 { - upgrade: OptionalUpgradeV1(Some(authorized_upgrade)), - ..Default::default() - } + // Clone the current room state so the old contract's + // validation passes, then set the upgrade pointer on it. + let mut state = room_data.room_state.clone(); + state.upgrade = OptionalUpgradeV1(Some(authorized_upgrade)); + state } else { continue; }