bump dioxus version & icons in desktop & logging
This commit is contained in:
+27
-18
@@ -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"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user