DevelopmentNodeEnvironment_MicrosoftVSCodeDependency_22NodeVersion_Bundle_Clean_Debug_ElectronProfile_EsbuildCompiler_Mountain/IPC/WindServiceHandlers/TreeView/
GetChildren.rs1#![allow(non_snake_case, unused_variables, dead_code, unused_imports)]
2
3use std::sync::Arc;
15
16use serde_json::{Value, json};
17use tauri::AppHandle;
18
19use crate::RunTime::ApplicationRunTime::ApplicationRunTime;
20
21pub async fn TreeGetChildren(
22 ApplicationHandle:AppHandle,
23 RunTime:Arc<ApplicationRunTime>,
24 Arguments:Vec<Value>,
25) -> Result<Value, String> {
26 let ViewId = Arguments
27 .first()
28 .and_then(|V| V.get("viewId").or_else(|| V.get(0)))
29 .and_then(Value::as_str)
30 .unwrap_or("")
31 .to_string();
32 let ItemHandle = Arguments
33 .first()
34 .and_then(|V| V.get("treeItemHandle").or_else(|| V.get(1)))
35 .and_then(Value::as_str)
36 .unwrap_or("")
37 .to_string();
38 crate::dev_log!(
39 "tree-view",
40 "[TreeView] invoke:getChildren view={} parent={}",
41 ViewId,
42 ItemHandle
43 );
44 if ViewId.is_empty() {
45 return Err("tree:getChildren requires viewId".to_string());
46 }
47 let Parameters = json!({
48 "viewId": ViewId,
49 "treeItemHandle": ItemHandle,
50 });
51 let _ = crate::Vine::Client::WaitForClientConnection::Fn("cocoon-main", 5000).await;
57 match crate::Vine::Client::SendRequest::Fn(
58 "cocoon-main",
59 "$provideTreeChildren".to_string(),
60 Parameters,
61 5000,
64 )
65 .await
66 {
67 Ok(Value_) => {
68 match &Value_ {
69 Value::Object(_) | Value::Array(_) => Ok(Value_),
70 _ => Ok(json!({ "items": [] })),
73 }
74 },
75 Err(Error) => {
76 crate::IPC::DevLog::DebugOnce::Fn(
80 "tree-view",
81 &format!("get-children-error:{}", ViewId),
82 &format!(
83 "[TreeView] invoke:getChildren error view={} err={:?} (further occurrences silenced)",
84 ViewId, Error
85 ),
86 );
87 Ok(json!({ "items": [] }))
88 },
89 }
90}