2 Commits

Author SHA1 Message Date
restitux 3e77b943db gui: stricter validation in add and edit modals
Build Mumble Web 2 / macos_build (push) Successful in 1m12s
Build Mumble Web 2 / linux_build (push) Successful in 1m27s
Build Mumble Web 2 / windows_build (push) Successful in 3m6s
Build Mumble Web 2 / android_build (push) Successful in 4m40s
2026-05-05 00:06:21 -06:00
restitux 9d6c590315 gui: new login screen
Build Mumble Web 2 / macos_build (push) Successful in 1m0s
Build Mumble Web 2 / windows_build (push) Successful in 2m56s
Build Mumble Web 2 / linux_build (push) Successful in 1m19s
Build Mumble Web 2 / android_build (push) Successful in 4m36s
2026-05-05 05:40:55 +00:00
+17 -27
View File
@@ -502,13 +502,25 @@ pub fn ServerView(overrides: Resource<ProxyOverrides>) -> Element {
}
#[component]
fn OverrideLoginView(overrides: Resource<ProxyOverrides>) -> Element {
pub fn LoginView(overrides: Resource<ProxyOverrides>) -> Element {
let user_config = use_context::<ConfigSystem>();
let net: Coroutine<Command> = use_coroutine_handle();
let state = use_context::<SharedState>();
let mut servers = use_signal(|| {
user_config
.config_get::<Vec<ServerEntry>>("servers")
.unwrap_or_default()
});
let mut show_add_modal = use_signal(|| false);
let mut editing_index = use_signal(|| None::<usize>);
let version = option_env!("MUMBLE_WEB2_VERSION");
let is_override_mode = overrides.read().as_ref().is_some_and(|c| !c.any_server);
// --- Overrides mode: single preset server, username-only input ---
if is_override_mode {
let proxy_url = overrides
.read()
.as_ref()
@@ -521,9 +533,10 @@ fn OverrideLoginView(overrides: Resource<ProxyOverrides>) -> Element {
.unwrap_or_default()
});
let is_connecting = matches!(&*state.status.read(), Connecting);
let status = &state.status;
let is_connecting = matches!(&*status.read(), Connecting);
rsx!(
return rsx!(
div {
class: "server-list-page",
h1 {
@@ -590,30 +603,7 @@ fn OverrideLoginView(overrides: Resource<ProxyOverrides>) -> Element {
}
}
}
)
}
#[component]
pub fn LoginView(overrides: Resource<ProxyOverrides>) -> Element {
let user_config = use_context::<ConfigSystem>();
let net: Coroutine<Command> = use_coroutine_handle();
let state = use_context::<SharedState>();
let mut servers = use_signal(|| {
user_config
.config_get::<Vec<ServerEntry>>("servers")
.unwrap_or_default()
});
let mut show_add_modal = use_signal(|| false);
let mut editing_index = use_signal(|| None::<usize>);
let version = option_env!("MUMBLE_WEB2_VERSION");
let is_override_mode = overrides.read().as_ref().is_some_and(|c| !c.any_server);
// --- Overrides mode: single preset server, username-only input ---
if is_override_mode {
return rsx!(OverrideLoginView { overrides });
);
}
// --- Normal mode: editable server list ---