mirror of
https://github.com/modrinth/code.git
synced 2026-08-31 12:05:53 +00:00
refactor: app event bus (#6985)
* refactor: app event bus * fix: use messagepack + cleanup * fix: use postcard * fix: lint * fix: import gate * fix: prettierignore + lint * fix: lint * fix: rev
This commit is contained in:
@@ -253,8 +253,8 @@ impl DirectoryInfo {
|
||||
if prev_dir != move_dir {
|
||||
let loader_bar_id = init_loading(
|
||||
LoadingBarType::DirectoryMove {
|
||||
old: prev_dir.clone(),
|
||||
new: move_dir.clone(),
|
||||
old: prev_dir.to_string_lossy().into_owned(),
|
||||
new: move_dir.to_string_lossy().into_owned(),
|
||||
},
|
||||
100.0,
|
||||
"Moving launcher directory",
|
||||
|
||||
@@ -192,11 +192,11 @@ impl FriendsSocket {
|
||||
match server_message {
|
||||
ServerToClientMessage::StatusUpdate { status } => {
|
||||
statuses.insert(status.user_id, status.clone());
|
||||
let _ = emit_friend(FriendPayload::StatusUpdate { user_status: status }).await;
|
||||
let _ = emit_friend(FriendPayload::StatusUpdate { user_status: status.into() }).await;
|
||||
},
|
||||
ServerToClientMessage::UserOffline { id } => {
|
||||
statuses.remove(&id);
|
||||
let _ = emit_friend(FriendPayload::UserOffline { id }).await;
|
||||
let _ = emit_friend(FriendPayload::UserOffline { id: id.to_string() }).await;
|
||||
}
|
||||
ServerToClientMessage::FriendStatuses { statuses: new_statuses } => {
|
||||
statuses.clear();
|
||||
@@ -206,7 +206,7 @@ impl FriendsSocket {
|
||||
let _ = emit_friend(FriendPayload::StatusSync).await;
|
||||
}
|
||||
ServerToClientMessage::FriendRequest { from } => {
|
||||
let _ = emit_friend(FriendPayload::FriendRequest { from }).await;
|
||||
let _ = emit_friend(FriendPayload::FriendRequest { from: from.to_string() }).await;
|
||||
}
|
||||
ServerToClientMessage::FriendRequestRejected { .. } => {}, // TODO
|
||||
|
||||
|
||||
@@ -73,6 +73,10 @@ impl LauncherFeatureVersion {
|
||||
}
|
||||
|
||||
#[derive(Debug, Eq, PartialEq, Clone, Copy, Deserialize, Serialize)]
|
||||
#[cfg_attr(
|
||||
feature = "export-ts",
|
||||
derive(ts_rs::TS, postcard_bindgen::PostcardBindings)
|
||||
)]
|
||||
#[serde(rename_all = "lowercase")]
|
||||
pub enum ModLoader {
|
||||
Vanilla,
|
||||
|
||||
@@ -18,8 +18,6 @@ use std::path::{Path, PathBuf};
|
||||
use std::process::ExitStatus;
|
||||
use std::sync::LazyLock;
|
||||
use std::time::Instant;
|
||||
#[cfg(feature = "tauri")]
|
||||
use tauri::Emitter;
|
||||
use tempfile::TempDir;
|
||||
use tokio::io::{AsyncBufReadExt, BufReader};
|
||||
use tokio::process::{Child, Command};
|
||||
@@ -298,7 +296,11 @@ struct Process {
|
||||
rpc_server: RpcServer,
|
||||
}
|
||||
|
||||
#[derive(Debug, Default, Serialize, Clone)]
|
||||
#[derive(Debug, Default, Serialize, Deserialize, Clone)]
|
||||
#[cfg_attr(
|
||||
feature = "export-ts",
|
||||
derive(ts_rs::TS, postcard_bindgen::PostcardBindings)
|
||||
)]
|
||||
pub struct Log4jEvent {
|
||||
pub timestamp_millis: Option<i64>,
|
||||
pub logger_name: Option<String>,
|
||||
@@ -606,15 +608,11 @@ impl Process {
|
||||
|
||||
#[cfg(feature = "tauri")]
|
||||
{
|
||||
if let Ok(event_state) = crate::EventState::get() {
|
||||
let _ = event_state.app.emit(
|
||||
"log",
|
||||
LogPayload {
|
||||
instance_id: instance_id.to_string(),
|
||||
event: LogEvent::Log4j(event.clone()),
|
||||
},
|
||||
);
|
||||
}
|
||||
let event_state = crate::EventState::get();
|
||||
let _ = event_state.send(crate::event::AppEvent::Log(LogPayload {
|
||||
instance_id: instance_id.to_string(),
|
||||
event: LogEvent::Log4j(event.clone()),
|
||||
}));
|
||||
}
|
||||
#[cfg(not(feature = "tauri"))]
|
||||
{
|
||||
@@ -627,17 +625,13 @@ impl Process {
|
||||
|
||||
#[cfg(feature = "tauri")]
|
||||
{
|
||||
if let Ok(event_state) = crate::EventState::get() {
|
||||
let _ = event_state.app.emit(
|
||||
"log",
|
||||
LogPayload {
|
||||
instance_id: instance_id.to_string(),
|
||||
event: LogEvent::Legacy {
|
||||
message: message.to_string(),
|
||||
},
|
||||
},
|
||||
);
|
||||
}
|
||||
let event_state = crate::EventState::get();
|
||||
let _ = event_state.send(crate::event::AppEvent::Log(LogPayload {
|
||||
instance_id: instance_id.to_string(),
|
||||
event: LogEvent::Legacy {
|
||||
message: message.to_string(),
|
||||
},
|
||||
}));
|
||||
}
|
||||
#[cfg(not(feature = "tauri"))]
|
||||
{
|
||||
@@ -735,7 +729,7 @@ impl Process {
|
||||
InstancePayloadType::ServerJoined {
|
||||
host,
|
||||
port,
|
||||
timestamp,
|
||||
timestamp: timestamp.to_rfc3339(),
|
||||
},
|
||||
)
|
||||
.await;
|
||||
|
||||
Reference in New Issue
Block a user