2 Commits

Author SHA1 Message Date
restitux 286fa16710 gui: stricter validation in add and edit modals
Build Mumble Web 2 / macos_build (push) Successful in 1m1s
Build Mumble Web 2 / windows_build (push) Successful in 2m52s
Build Mumble Web 2 / linux_build (push) Successful in 1m26s
Build Mumble Web 2 / android_build (push) Successful in 4m47s
2026-05-05 06:12:02 +00:00
restitux 90f6f8ef95 gui: new login screen 2026-05-05 06:11:59 +00:00
+27 -17
View File
@@ -502,25 +502,13 @@ pub fn ServerView(overrides: Resource<ProxyOverrides>) -> Element {
}
#[component]
pub fn LoginView(overrides: Resource<ProxyOverrides>) -> Element {
fn OverrideLoginView(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()
@@ -533,10 +521,9 @@ pub fn LoginView(overrides: Resource<ProxyOverrides>) -> Element {
.unwrap_or_default()
});
let status = &state.status;
let is_connecting = matches!(&*status.read(), Connecting);
let is_connecting = matches!(&*state.status.read(), Connecting);
return rsx!(
rsx!(
div {
class: "server-list-page",
h1 {
@@ -603,7 +590,30 @@ pub fn LoginView(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 ---