refactored unwrap calls to make it more stable

This commit is contained in:
euzu
2025-07-22 11:32:46 +02:00
parent 7ef30e1aae
commit 6c238c607f
44 changed files with 560 additions and 479 deletions
@@ -19,7 +19,7 @@ pub fn StatsView() -> Html {
match &status_ctx.status {
Some(stats) => {
if let Some(map) = &stats.active_provider_connections {
if map.len() > 0 {
if !map.is_empty() {
let cards = map.iter().map(|(provider, connections)| {
html! {
<Card>
+4 -6
View File
@@ -93,12 +93,10 @@ pub fn Home() -> Html {
} else {
treemap.insert(provider, connections);
}
} else {
if connections > 0 {
let mut treemap = BTreeMap::new();
treemap.insert(provider, connections);
server_status.active_provider_connections = Some(treemap);
}
} else if connections > 0 {
let mut treemap = BTreeMap::new();
treemap.insert(provider, connections);
server_status.active_provider_connections = Some(treemap);
}
let new_status = Rc::new(server_status);
*status_holder_signal.borrow_mut() = Some(Rc::clone(&new_status));
+2 -1
View File
@@ -48,7 +48,8 @@ where
match response.status() {
200 => {
if std::any::TypeId::of::<T>() == std::any::TypeId::of::<()>() {
Ok(serde_json::from_str("null").unwrap()) // `T = ()` valid
// `T = ()` valid
serde_json::from_str("null").map_err(|_| Error::DeserializeError)
} else {
let data: Result<T, _> = response.json::<T>().await;
if let Ok(data) = data {
+4 -2
View File
@@ -19,12 +19,14 @@ pub enum WsMessage {
const WS_PATH: &str = "/ws";
type Subscriber = RefCell<HashMap<usize, Box<dyn Fn(WsMessage)>>>;
pub struct WebSocketService {
connected: Rc<AtomicBool>,
ws: Rc<RefCell<Option<WebSocket>>>,
status_service: Rc<StatusService>,
subscriber_id: Rc<AtomicUsize>,
subscribers: Rc<RefCell<HashMap<usize, Box<dyn Fn(WsMessage)>>>>,
subscribers: Rc<Subscriber>,
}
impl WebSocketService {
@@ -73,7 +75,7 @@ impl WebSocketService {
// onmessage
let onmessage_callback = Closure::<dyn FnMut(_)>::wrap(Box::new(move |event: MessageEvent| {
trace!("WebSocket received message: {:?}", event);
trace!("WebSocket received message: {event:?}");
if let Ok(buf) = event.data().dyn_into::<ArrayBuffer>() {
let array = Uint8Array::new(&buf);
let bytes = bytes::Bytes::from(array.to_vec());