fix: teleport should never show reconnect dialog

This commit is contained in:
Evan Carroll 2026-01-20 11:29:22 -06:00
parent 32e5e42462
commit bf3bd3dff5
5 changed files with 153 additions and 20 deletions

View file

@ -121,7 +121,7 @@ pub fn RealmPage() -> impl IntoView {
let (error_message, set_error_message) = signal(Option::<String>::None);
// Reconnection trigger - increment to force WebSocket reconnection
let (reconnect_trigger, set_reconnect_trigger) = signal(0u32);
let reconnect_trigger = RwSignal::new(0u32);
// Current scene (changes when teleporting)
let (current_scene, set_current_scene) = signal(Option::<Scene>::None);
@ -383,7 +383,7 @@ pub fn RealmPage() -> impl IntoView {
set_members.set(Vec::new());
// Trigger a reconnect to ensure fresh connection
set_reconnect_trigger.update(|t| *t += 1);
reconnect_trigger.update(|t| *t += 1);
});
});
@ -391,7 +391,7 @@ pub fn RealmPage() -> impl IntoView {
let (ws_state, ws_sender) = use_channel_websocket(
slug,
Signal::derive(move || channel_id.get()),
Signal::derive(move || reconnect_trigger.get()),
reconnect_trigger,
on_members_update,
on_chat_message,
on_loose_props_sync,
@ -1087,7 +1087,7 @@ pub fn RealmPage() -> impl IntoView {
<ReconnectionOverlay
ws_state=ws_state_for_overlay
on_reconnect=Callback::new(move |_: ()| {
set_reconnect_trigger.update(|t| *t += 1);
reconnect_trigger.update(|t| *t += 1);
})
/>
}