Skip to main content

Mountain/Vine/Server/Notification/
DisposeStatusBarItem.rs

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