Skip to main content

Mountain/Vine/Server/Notification/
DisposeStatusBarItem.rs

1//! Cocoon → Mountain `disposeStatusBarItem` notification.
2//! Emitted once by `Cocoon/.../Services/Window/StatusBar.ts:139` when an
3//! extension calls `StatusBarItem.dispose()` (or the whole subscription
4//! set tears down). Forwards onto the canonical
5//! `sky://statusbar/dispose-entry` channel so the Sky shim's
6//! fan-out listener removes the DOM node.
7
8use serde_json::{Value, json};
9use tauri::Emitter;
10
11use crate::{Vine::Server::MountainVinegRPCService::MountainVinegRPCService, dev_log};
12
13pub async fn DisposeStatusBarItem(Service:&MountainVinegRPCService, Parameter:&Value) {
14	let Id = Parameter.get("id").and_then(Value::as_str).unwrap_or("");
15
16	if Id.is_empty() {
17		dev_log!("grpc", "[StatusBar] dispose skip: missing id");
18
19		return;
20	}
21
22	let _ = Service
23		.ApplicationHandle()
24		.emit("sky://statusbar/dispose-entry", json!({ "id": Id }));
25
26	dev_log!("grpc", "[StatusBar] dispose id={}", Id);
27}