Mountain/RPC/CocoonService/GenericRequest/WindowDialogs/
CreateWebviewPanel.rs1use serde_json::{Value, json};
2use tauri::Emitter;
3use tonic::Response;
4use ::Vine::Generated::GenericResponse;
5
6use crate::Environment::MountainEnvironment::MountainEnvironment;
7
8pub fn Fn(RequestId:u64, Params:Value, Env:&MountainEnvironment) -> Response<GenericResponse> {
9 let ViewType = Params.get("viewType").and_then(|V| V.as_str()).unwrap_or("").to_string();
10
11 let Title = Params.get("title").and_then(|V| V.as_str()).unwrap_or("").to_string();
12
13 let Handle = std::time::SystemTime::now()
14 .duration_since(std::time::UNIX_EPOCH)
15 .map(|D| D.as_millis() as u64)
16 .unwrap_or(0);
17
18 let _ = Env.ApplicationHandle.emit(
19 "sky://webview/create",
20 json!({
21 "handle": Handle,
22 "viewType": ViewType,
23 "title": Title,
24 "viewColumn": Params.get("viewColumn"),
25 "preserveFocus": Params.get("preserveFocus").and_then(|V| V.as_bool()).unwrap_or(false),
26 }),
27 );
28
29 super::super::FileSystem::OkResponse(RequestId, &json!({ "handle": Handle }))
30}