Fix release build: box the call tiles, icons and in-call subtree

`cargo leptos build --release` died with "queries overflow the depth
limit": every tile's Show/icon views inlined into one enormous
hydrate_async type for the whole call subtree. VideoTile, CallIcon and
CallActive now return AnyView, the same cut CallPanel got in 0.2.1. The
dev profile never tripped it, which is why 0.3.0 shipped broken.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L3sD29ozDvqA7jozeZXZoB
This commit is contained in:
Bendik Aagaard Lynghaug
2026-10-02 18:33:23 +02:00
co-authored by Claude Fable 5.1
parent 0ad4b732e5
commit e4c0094f34
+8 -1
View File
@@ -660,6 +660,7 @@ fn CallActive(call_state: crate::webrtc::CallState) -> impl IntoView {
</div> </div>
</div> </div>
} }
.into_any()
} }
#[cfg(feature = "hydrate")] #[cfg(feature = "hydrate")]
@@ -729,10 +730,15 @@ fn CallIcon(kind: CallIconKind, off: Signal<bool>) -> impl IntoView {
</Show> </Show>
</svg> </svg>
} }
.into_any()
} }
/// One participant's tile: the `<video>` plus a name label and mic/cam/ /// One participant's tile: the `<video>` plus a name label and mic/cam/
/// screen badges. Click pins it as the stage; double-click goes /// screen badges. Returns `AnyView` (as do `CallIcon` and `CallActive`):
/// left generic, every tile's `Show`s and icons inline into one enormous
/// `hydrate_async` type for the whole call subtree, and the release build
/// dies with "queries overflow the depth limit" - the same wall
/// `CallPanel` hit in 0.2.1. Click pins it as the stage; double-click goes
/// fullscreen (handy for reading a shared screen). A child component so /// fullscreen (handy for reading a shared screen). A child component so
/// each tile owns its `NodeRef`/effect pair instead of the parent juggling /// each tile owns its `NodeRef`/effect pair instead of the parent juggling
/// a `Vec` of node refs by hand. /// a `Vec` of node refs by hand.
@@ -825,6 +831,7 @@ fn VideoTile(
</span> </span>
</div> </div>
} }
.into_any()
} }
/// Bridges `/call-sse/{room}` into `CallState::handle_signal`. A separate /// Bridges `/call-sse/{room}` into `CallState::handle_signal`. A separate