Mountain/IPC/WindServiceHandlers/UI/
NotificationShow.rs1#![allow(unused_variables)]
2
3use serde_json::{Value, json};
6use tauri::{AppHandle, Emitter};
7use CommonLibrary::IPC::SkyEvent::SkyEvent;
8
9fn NewId() -> String {
10 use std::sync::atomic::{AtomicU64, Ordering};
11
12 static SEQ:AtomicU64 = AtomicU64::new(1);
13
14 format!("notification-{}", SEQ.fetch_add(1, Ordering::Relaxed))
15}
16
17pub async fn Fn(ApplicationHandle:AppHandle, Arguments:Vec<Value>) -> Result<Value, String> {
18 let Message = Arguments.first().and_then(|V| V.as_str()).unwrap_or("").to_string();
19
20 let Severity = Arguments.get(1).and_then(|V| V.as_str()).unwrap_or("info").to_string();
21
22 let Actions = Arguments.get(2).cloned().unwrap_or(json!([]));
23
24 let Id = NewId();
25
26 let _ = ApplicationHandle.emit(
27 SkyEvent::NotificationShow.AsStr(),
28 json!({
29 "id": Id,
30 "message": Message,
31 "severity": Severity,
32 "actions": Actions,
33 }),
34 );
35
36 Ok(json!(Id))
37}