bump dioxus version & icons in desktop & logging

This commit is contained in:
2024-11-11 13:43:58 -07:00
parent 30a94323b3
commit 2211be5324
17 changed files with 1073 additions and 1242 deletions
+27 -18
View File
@@ -1,7 +1,6 @@
#![allow(non_snake_case)]
use dioxus::prelude::*;
use manganis::mg;
use ordermap::OrderSet;
use sir::{css, global_css};
use std::collections::HashMap;
@@ -111,15 +110,15 @@ pub enum UserIcon {
}
impl UserIcon {
pub fn url(self) -> Option<&'static str> {
pub fn url(self) -> Option<Asset> {
// speaker from https://www.svgrepo.com/collection/ikono-bold-line-icons/
// mic from https://www.svgrepo.com/collection/hashicorp-line-interface-icons/
use UserIcon::*;
Some(match self {
Normal => "/mic-svgrepo-com.svg",
Muted => "/mic-off-svgrepo-com.svg",
Deafened => "/speaker-muted-svgrepo-com.svg",
Normal => asset!("assets/mic-svgrepo-com.svg"),
Muted => asset!("assets/mic-off-svgrepo-com.svg"),
Deafened => asset!("assets/speaker-muted-svgrepo-com.svg"),
None => return Option::None,
})
}
@@ -160,19 +159,26 @@ pub fn UserPill(name: String, icon: UserIcon) -> Element {
#[component]
pub fn User(id: UserId) -> Element {
let server = STATE.server.read();
let state = server.users.get(&id)?;
rsx!(UserPill {
name: state.name.clone(),
icon: state.icon(),
})
match server.users.get(&id) {
Some(state) => rsx!(UserPill {
name: state.name.clone(),
icon: state.icon(),
}),
None => rsx!(UserPill {
name: format!("unknown user ({id})"),
icon: UserIcon::None,
}),
}
}
#[component]
pub fn Channel(id: ChannelId) -> Element {
let net: Coroutine<Command> = use_coroutine_handle();
let server = STATE.server.read();
let user = server.session?;
let state = server.channels.get(&id)?;
let user = server.session.unwrap();
let Some(state) = server.channels.get(&id) else {
return rsx!("missing channel {id}");
};
let channel_details = css!(
"
@@ -318,13 +324,16 @@ pub fn ChatView() -> Element {
pub fn ServerView() -> Element {
let net: Coroutine<Command> = use_coroutine_handle();
let server = STATE.server.read();
let &UserState {
let Some(&UserState {
deaf,
self_deaf,
mute,
self_mute,
..
} = server.this_user()?;
}) = server.this_user()
else {
return rsx!();
};
let grid = css!(
r#"
@@ -408,8 +417,8 @@ pub fn ServerView() -> Element {
disabled: mute,
onclick: move |_| net.send(SetMute { mute: !self_mute }),
match mute || self_mute {
true => rsx!(img { src: "/mic-off-svgrepo-com.svg" }),
false => rsx!(img { src: "/mic-svgrepo-com.svg" }),
true => rsx!(img { src: asset!("assets/mic-off-svgrepo-com.svg") }),
false => rsx!(img { src: asset!("assets/mic-svgrepo-com.svg") }),
}
"\u{00A0}Mute"
}
@@ -419,8 +428,8 @@ pub fn ServerView() -> Element {
disabled: deaf,
onclick: move |_| net.send(SetDeaf { deaf: !self_deaf }),
match deaf || self_deaf {
true => rsx!(img { src: "/speaker-muted-svgrepo-com.svg" }),
false => rsx!(img { src: "/speaker-medium-svgrepo-com.svg" }),
true => rsx!(img { src: asset!("assets/speaker-muted-svgrepo-com.svg") }),
false => rsx!(img { src: asset!("assets/speaker-medium-svgrepo-com.svg") }),
}
"\u{00A0}Deafen"
}