diff --git a/src/app.rs b/src/app.rs index f70846e..070fabd 100644 --- a/src/app.rs +++ b/src/app.rs @@ -472,45 +472,70 @@ fn CallPanel(room: Memo, me: String) -> impl IntoView { view! {
- + } + .into_any() + } else { view! { } + .into_any() } - > -
-
- - } - } - /> -
- -
-
+ }}
} + .into_any() } #[cfg(not(feature = "hydrate"))] { let _ = (room, me); - view! {
} + view! {
}.into_any() + } +} + +/// The in-call subtree (video grid + leave button), split out of +/// `CallPanel` so its ``-over-peers view doesn't get inlined as a type +/// parameter of `CallPanel`'s own `if`/`else` branch - that inlining is what +/// was blowing the compiler's query recursion limit once mesh calling's +/// nested `Show`/`For` landed inside `ChatShell`'s own `Show`. +#[cfg(feature = "hydrate")] +#[component] +fn CallActive( + local_video_ref: NodeRef, + call_state: crate::webrtc::CallState, + on_leave: impl Fn(leptos::ev::MouseEvent) + 'static, +) -> impl IntoView { + view! { +
+
+ + } + } + /> +
+ +
} }