Replace the current glimmer-yew to glimmer-yew-deprecated

This commit is contained in:
2026-07-20 19:09:04 -04:00
parent bdfb322c86
commit fbee5baf4e
34 changed files with 288 additions and 54 deletions

View File

@@ -104,9 +104,9 @@ async fn test_name() {
- Optional properties: `#[prop_or_default]`
### Cloning in Callbacks
Use the `clone!` macro from glimmer-yew:
Use the `clone!` macro from luminescent-dreams-common:
```rust
use glimmer_yew::clone;
use luminescent_dreams_common::clone;
let on_click = Callback::from(clone!(state, move |_| {
state.set(new_value);

266
Cargo.lock generated
View File

@@ -1683,6 +1683,27 @@ dependencies = [
[[package]]
name = "glimmer-yew"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fc3c984e6c1bd4b2d146c8030e931a61c8ba9f3ce694bebb75ad3701c4c0d6f3"
dependencies = [
"derive_builder",
"gloo-console 0.4.0",
"gloo-timers 0.4.0",
"implicit-clone 0.6.0",
"luminescent-dreams-common",
"serde",
"serde_json",
"thiserror 2.0.18",
"wasm-bindgen-futures",
"web-sys",
"yew 0.23.0",
"yew-autoprops",
"yew-router 0.20.0",
]
[[package]]
name = "glimmer-yew-deprecated"
version = "0.1.0"
dependencies = [
"derive_builder",
"glimmer-yew-macros",
@@ -1692,8 +1713,8 @@ dependencies = [
"stylist",
"wasm-bindgen-futures",
"web-sys",
"yew",
"yew-router",
"yew 0.21.0",
"yew-router 0.18.0",
]
[[package]]
@@ -1743,6 +1764,25 @@ dependencies = [
"gloo-worker 0.4.0",
]
[[package]]
name = "gloo"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d15282ece24eaf4bd338d73ef580c6714c8615155c4190c781290ee3fa0fd372"
dependencies = [
"gloo-console 0.3.0",
"gloo-dialogs 0.2.0",
"gloo-events 0.2.0",
"gloo-file 0.3.0",
"gloo-history 0.2.2",
"gloo-net 0.5.0",
"gloo-render 0.2.0",
"gloo-storage 0.3.0",
"gloo-timers 0.3.0",
"gloo-utils 0.2.0",
"gloo-worker 0.5.0",
]
[[package]]
name = "gloo-console"
version = "0.2.3"
@@ -1769,6 +1809,19 @@ dependencies = [
"web-sys",
]
[[package]]
name = "gloo-console"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9f1d5cec0b97edb53f21221f799c659cef3764ad5a00eca52950eb9b902028ba"
dependencies = [
"gloo-utils 0.3.0",
"js-sys",
"serde",
"wasm-bindgen",
"web-sys",
]
[[package]]
name = "gloo-dialogs"
version = "0.1.1"
@@ -1909,6 +1962,27 @@ dependencies = [
"web-sys",
]
[[package]]
name = "gloo-net"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "43aaa242d1239a8822c15c645f02166398da4f8b5c4bae795c1f5b44e9eee173"
dependencies = [
"futures-channel",
"futures-core",
"futures-sink",
"gloo-utils 0.2.0",
"http 0.2.12",
"js-sys",
"pin-project",
"serde",
"serde_json",
"thiserror 1.0.69",
"wasm-bindgen",
"wasm-bindgen-futures",
"web-sys",
]
[[package]]
name = "gloo-net"
version = "0.6.0"
@@ -2002,6 +2076,18 @@ dependencies = [
"wasm-bindgen",
]
[[package]]
name = "gloo-timers"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "482ce8a491a501da4cd806bd190275363d674f2845005c6ddbd5d3e1dd54495d"
dependencies = [
"futures-channel",
"futures-core",
"js-sys",
"wasm-bindgen",
]
[[package]]
name = "gloo-utils"
version = "0.1.7"
@@ -2028,6 +2114,19 @@ dependencies = [
"web-sys",
]
[[package]]
name = "gloo-utils"
version = "0.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4202275d95a142fa209a1e35e91c250a710c5600731372cd3464a39ed01573d6"
dependencies = [
"js-sys",
"serde",
"serde_json",
"wasm-bindgen",
"web-sys",
]
[[package]]
name = "gloo-worker"
version = "0.2.1"
@@ -2064,6 +2163,25 @@ dependencies = [
"web-sys",
]
[[package]]
name = "gloo-worker"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "085f262d7604911c8150162529cefab3782e91adb20202e8658f7275d2aefe5d"
dependencies = [
"bincode",
"futures",
"gloo-utils 0.2.0",
"gloo-worker-macros",
"js-sys",
"pinned",
"serde",
"thiserror 1.0.69",
"wasm-bindgen",
"wasm-bindgen-futures",
"web-sys",
]
[[package]]
name = "gloo-worker-macros"
version = "0.1.0"
@@ -2614,6 +2732,16 @@ dependencies = [
"indexmap",
]
[[package]]
name = "implicit-clone"
version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1689b939ee35e3a075b0834b5672efd43aec8a6e81a1c6002b76a5ca2f211ae0"
dependencies = [
"implicit-clone-derive",
"indexmap",
]
[[package]]
name = "implicit-clone-derive"
version = "0.1.2"
@@ -2903,6 +3031,16 @@ dependencies = [
"value-bag",
]
[[package]]
name = "luminescent-dreams-common"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09e2cad009434512e22672ab9de76ff09183cc37699577474ba98a9e2108e903"
dependencies = [
"tokio",
"tokio-macros",
]
[[package]]
name = "markdown"
version = "1.0.0"
@@ -2968,9 +3106,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
[[package]]
name = "mio"
version = "1.1.1"
version = "1.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc"
checksum = "30d65c71f1ce40ab09135ce117d742b9f8a19ff91a41a8b57ed50bc2de59c427"
dependencies = [
"libc",
"wasi",
@@ -4318,7 +4456,7 @@ dependencies = [
"stylist-macros",
"wasm-bindgen",
"web-sys",
"yew",
"yew 0.21.0",
]
[[package]]
@@ -4577,9 +4715,9 @@ dependencies = [
[[package]]
name = "tokio"
version = "1.50.0"
version = "1.53.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "27ad5e34374e03cfffefc301becb44e9dc3c17584f414349ebe29ed26661822d"
checksum = "202caea871b69668250d242070849eb495be178ed697a3e98aebce5bc81a0bed"
dependencies = [
"bytes",
"libc",
@@ -4594,9 +4732,9 @@ dependencies = [
[[package]]
name = "tokio-macros"
version = "2.6.1"
version = "2.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c55a2eff8b69ce66c84f85e1da1c233edc36ceb85a2058d11b0d6a3c7e7569c"
checksum = "6328af13490e73a9b4694030fafd93f8c8c6a9dede33e821c3fc63eddf8042ba"
dependencies = [
"proc-macro2",
"quote",
@@ -4661,6 +4799,23 @@ dependencies = [
"tokio",
]
[[package]]
name = "tokise"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ba44a1b36f42a95bd21b5e4acc1468547f75a73e7cf619312408d1f74c7fb687"
dependencies = [
"futures",
"gloo 0.11.0",
"num_cpus",
"once_cell",
"pin-project",
"pinned",
"tokio",
"tokio-stream",
"wasm-bindgen-futures",
]
[[package]]
name = "toml"
version = "0.8.23"
@@ -5139,6 +5294,7 @@ dependencies = [
"async-std",
"cool_asserts",
"glimmer-yew",
"glimmer-yew-deprecated",
"gloo-console 0.3.0",
"gloo-net 0.6.0",
"http 1.4.0",
@@ -5160,8 +5316,8 @@ dependencies = [
"wasm-sockets",
"web-sys",
"webauthn-rs-proto",
"yew",
"yew-router",
"yew 0.21.0",
"yew-router 0.18.0",
]
[[package]]
@@ -5846,7 +6002,7 @@ dependencies = [
"console_error_panic_hook",
"futures",
"gloo 0.10.0",
"implicit-clone",
"implicit-clone 0.4.9",
"indexmap",
"js-sys",
"prokio",
@@ -5859,7 +6015,43 @@ dependencies = [
"wasm-bindgen",
"wasm-bindgen-futures",
"web-sys",
"yew-macro",
"yew-macro 0.21.0",
]
[[package]]
name = "yew"
version = "0.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2c154fadfa97eabdd3f3b79345ceeb9c05ee8f13f76d3d881d17fba618bf558d"
dependencies = [
"console_error_panic_hook",
"futures",
"gloo 0.11.0",
"implicit-clone 0.6.0",
"indexmap",
"js-sys",
"rustversion",
"serde",
"slab",
"thiserror 2.0.18",
"tokio",
"tokise",
"tracing",
"wasm-bindgen",
"wasm-bindgen-futures",
"web-sys",
"yew-macro 0.23.0",
]
[[package]]
name = "yew-autoprops"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2c9907797523d92e6530bae73db4273c4255a0133911af8b79e6c4d6381f13bd"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.117",
]
[[package]]
@@ -5877,6 +6069,20 @@ dependencies = [
"syn 2.0.117",
]
[[package]]
name = "yew-macro"
version = "0.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c08b883d84a035f57519d057f65a2a07ae25f1884ad485e1a9a523c9d880c1ad"
dependencies = [
"prettyplease",
"proc-macro-error",
"proc-macro2",
"quote",
"rustversion",
"syn 2.0.117",
]
[[package]]
name = "yew-router"
version = "0.18.0"
@@ -5892,8 +6098,27 @@ dependencies = [
"urlencoding",
"wasm-bindgen",
"web-sys",
"yew",
"yew-router-macro",
"yew 0.21.0",
"yew-router-macro 0.18.0",
]
[[package]]
name = "yew-router"
version = "0.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "870bd2a1aa6d608c0c789c122654e25f4927bb6bfe344cc0da3b630ac3c73260"
dependencies = [
"gloo 0.11.0",
"js-sys",
"route-recognizer",
"serde",
"serde_urlencoded",
"tracing",
"urlencoding",
"wasm-bindgen",
"web-sys",
"yew 0.23.0",
"yew-router-macro 0.20.0",
]
[[package]]
@@ -5907,6 +6132,17 @@ dependencies = [
"syn 2.0.117",
]
[[package]]
name = "yew-router-macro"
version = "0.20.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8399f1d134ab8e69abc7cded19f114621d520bd9c79c5a0f34091bf664d7325b"
dependencies = [
"proc-macro2",
"quote",
"syn 2.0.117",
]
[[package]]
name = "yoke"
version = "0.8.1"

View File

@@ -51,6 +51,8 @@ cairo-rs = { version = "0.18" }
chrono = { version = "0.4" }
chrono-tz = { version = "0.8" }
dimensioned = { version = "0.8", features = [ "serde" ] }
luminescent-dreams-common = { version = "0.1" }
glimmer-yew = { version = "0.1" }
futures = { version = "0.3" }
gdk = { version = "0.7", package = "gdk4" }
gio = { version = "0.18" }

View File

@@ -1,5 +1,5 @@
[package]
name = "glimmer-yew"
name = "glimmer-yew-deprecated"
version = "0.1.0"
edition = "2024"

View File

@@ -3,7 +3,7 @@ use stylist::css;
use yew::prelude::*;
use yew_router::prelude::*;
use glimmer_yew::{clone, prelude::*};
use glimmer_yew_deprecated::{clone, prelude::*};
pub fn main() {
yew::Renderer::<Showcase>::new().render();

View File

@@ -6,7 +6,8 @@ edition = "2024"
[dependencies]
async-std.workspace = true
glimmer-yew.path = "../../glimmer/yew"
glimmer-yew-deprecated.path = "../../glimmer/yew"
glimmer-yew.workspace = true
gloo-console = { workspace = true }
gloo-net = { workspace = true }
http.workspace = true

View File

@@ -1,4 +1,4 @@
use glimmer_yew::prelude::Button;
use glimmer_yew_deprecated::prelude::Button;
/// A CardElement renders and allows editing of in-game cards. A Card can represent any number of
/// items in a game, from a note, to a graphic that one of the players wishes to share, to an item
/// or some other "prop" in the game.

View File

@@ -1,4 +1,4 @@
use glimmer_yew::prelude::Prop;
use glimmer_yew_deprecated::prelude::Prop;
use stylist::css;
use visions_types::*;
use yew::prelude::*;

View File

@@ -1,4 +1,4 @@
use glimmer_yew::prelude::*;
use glimmer_yew_deprecated::prelude::*;
use stylist::css;
use visions_types::*;
use yew::prelude::*;

View File

@@ -1,4 +1,4 @@
use glimmer_yew::prelude::*;
use glimmer_yew_deprecated::prelude::*;
use stylist::css;
use visions_types::{CharacterId, GameOverview, UserOverview};
use yew::prelude::*;
@@ -7,7 +7,7 @@ use crate::{
clone,
components::*,
design,
systems::{Character, SystemName, SYSTEMS},
systems::{Character, SYSTEMS, SystemName},
};
#[derive(Properties, PartialEq)]

View File

@@ -1,4 +1,4 @@
use glimmer_yew::{clone, prelude::*};
use glimmer_yew_deprecated::{clone, prelude::*};
use visions_types::*;
use yew::prelude::*;

View File

@@ -1,4 +1,4 @@
use glimmer_yew::prelude::*;
use glimmer_yew_deprecated::prelude::*;
use stylist::css;
use yew::prelude::*;

View File

@@ -1,4 +1,4 @@
use glimmer_yew::prelude::*;
use glimmer_yew_deprecated::prelude::*;
use stylist::css;
use visions_types::*;
use yew::prelude::*;

View File

@@ -1,4 +1,4 @@
use glimmer_yew::prelude::*;
use glimmer_yew_deprecated::prelude::*;
use stylist::css;
use yew::prelude::*;

View File

@@ -1,4 +1,4 @@
use glimmer_yew::prelude::*;
use glimmer_yew_deprecated::prelude::*;
use gloo_console::log;
use stylist::css;
use utils::clone;

View File

@@ -7,7 +7,7 @@ mod types;
mod utils;
mod views;
use glimmer_yew::{clone, prelude::*};
use glimmer_yew_deprecated::{clone, prelude::*};
use stylist::css;
use visions_types::*;
use yew::prelude::*;

View File

@@ -1,4 +1,4 @@
use glimmer_yew::prelude::*;
use glimmer_yew_deprecated::prelude::*;
use stylist::css;
use yew::prelude::*;

View File

@@ -1,4 +1,4 @@
use glimmer_yew::prelude::*;
use glimmer_yew_deprecated::prelude::*;
use stylist::css;
use yew::prelude::*;

View File

@@ -1,4 +1,4 @@
use glimmer_yew::prelude::*;
use glimmer_yew_deprecated::prelude::*;
use yew::prelude::*;
mod components;

View File

@@ -1,4 +1,4 @@
use glimmer_yew::prelude::{DiscreteRange, Panel};
use glimmer_yew_deprecated::prelude::{DiscreteRange, Panel};
use utils::clone;
use yew::prelude::*;

View File

@@ -1,4 +1,4 @@
use glimmer_yew::prelude::*;
use glimmer_yew_deprecated::prelude::*;
use serde::{Deserialize, Serialize};
use stylist::css;
use yew::prelude::*;

View File

@@ -1,6 +1,6 @@
use std::rc::Rc;
use glimmer_yew::prelude::*;
use glimmer_yew_deprecated::prelude::*;
use jiff::Timestamp;
use stylist::css;
use visions_types::*;

View File

@@ -1,4 +1,4 @@
use glimmer_yew::prelude::*;
use glimmer_yew_deprecated::prelude::*;
use gloo_console::error;
use visions_types::CharacterId;
use yew::prelude::*;

View File

@@ -1,4 +1,4 @@
use glimmer_yew::prelude::*;
use glimmer_yew_deprecated::prelude::*;
use gloo_console::log;
use stylist::css;
use visions_types::*;

View File

@@ -1,4 +1,4 @@
use glimmer_yew::prelude::*;
use glimmer_yew_deprecated::prelude::*;
use stylist::css;
use visions_types::{Image as GameImage, ImageId};
use yew::prelude::*;

View File

@@ -1,4 +1,4 @@
use glimmer_yew::prelude::*;
use glimmer_yew_deprecated::prelude::*;
use gloo_console::log;
use stylist::css;
use visions_types::{Image, ImageId, Scene, SceneId};

View File

@@ -1,4 +1,4 @@
use glimmer_yew::prelude::*;
use glimmer_yew_deprecated::prelude::*;
use gloo_console::{error, log};
use std::collections::{BTreeMap, HashSet};
use visions_types::*;

View File

@@ -1,6 +1,6 @@
use std::rc::Rc;
use glimmer_yew::prelude::*;
use glimmer_yew_deprecated::prelude::*;
use visions_types::*;
use yew::prelude::*;

View File

@@ -1,4 +1,4 @@
use glimmer_yew::prelude::*;
use glimmer_yew_deprecated::prelude::*;
use gloo_console::{error, log};
use stylist::css;
use visions_types::{
@@ -183,7 +183,6 @@ struct ViewProps {
clear_tabletop_image: Callback<()>,
}
#[measured]
#[function_component]
fn View(
ViewProps {
@@ -273,7 +272,6 @@ struct GmViewProps_ {
// GmView_ Provides all of the SocketState-aware callbacks. Callbacks declared in here need to have
// the potential to get a websocket in order to function.
#[measured]
#[function_component]
fn GmView_(
GmViewProps_ {
@@ -413,7 +411,6 @@ pub struct GmViewProps {
// GmView provides the top level of the Gm view. This sets up the overall view state, the websocket
// message handler, and then provides both to the WebsocketProvider and to the GmView_ component,
// which defines methods which need access to the websocket in order to function.
#[measured]
#[function_component]
pub fn GmView(GmViewProps { client, game }: &GmViewProps) -> Html {
let view_state: UseReducerHandle<ViewState> = use_reducer(|| ViewState {
@@ -495,7 +492,6 @@ struct MenuSidebarProps {
toggle_open_to_spectators: Callback<()>,
}
#[measured]
#[function_component]
fn MenuSidebar(
MenuSidebarProps {
@@ -620,7 +616,6 @@ struct ScenesPageProps {
on_change_tabletop: Callback<ImageId>,
}
#[measured]
#[function_component]
fn ScenesPage(
ScenesPageProps {

View File

@@ -1,4 +1,4 @@
use glimmer_yew::prelude::*;
use glimmer_yew_deprecated::prelude::*;
use gloo_console::error;
use stylist::css;
use visions_types::*;

View File

@@ -1,4 +1,4 @@
use glimmer_yew::{clone, prelude::*};
use glimmer_yew_deprecated::{clone, prelude::*};
use stylist::css;
use yew::prelude::*;

View File

@@ -1,4 +1,4 @@
use glimmer_yew::prelude::*;
use glimmer_yew_deprecated::prelude::*;
use stylist::css;
use visions_types::{InvitationId, StartRegisterPasskeyResponse};
use webauthn_rs_proto::RegisterPublicKeyCredential;

View File

@@ -1,4 +1,4 @@
use glimmer_yew::prelude::*;
use glimmer_yew_deprecated::prelude::*;
use gloo_console::{error, log};
use stylist::css;
use utils::clone;

View File

@@ -1,4 +1,4 @@
use glimmer_yew::prelude::*;
use glimmer_yew_deprecated::prelude::*;
use gloo_console::log;
use std::rc::Rc;
use visions_types::{Card, GameId, GameMessage, GameRequest, Location, Tabletop};