From 35e4aed11034323957ed389932dde28c5edb20f0 Mon Sep 17 00:00:00 2001 From: Weiyi Feng Date: Tue, 14 Jun 2022 08:52:35 +0800 Subject: [PATCH] config_tools: filter out non-existing history path filter out non-existing history path Tracked-On: #6691 Signed-off-by: Weiyi Feng --- .../src-tauri/src/configurator.rs | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/misc/config_tools/configurator/packages/configurator/src-tauri/src/configurator.rs b/misc/config_tools/configurator/packages/configurator/src-tauri/src/configurator.rs index 8b9506b91..8d441192c 100644 --- a/misc/config_tools/configurator/packages/configurator/src-tauri/src/configurator.rs +++ b/misc/config_tools/configurator/packages/configurator/src-tauri/src/configurator.rs @@ -283,9 +283,24 @@ static mut WORKING_FOLDER: String = String::new(); #[tauri::command] pub fn get_history(history_type: HistoryType) -> Result { let configurator = Configurator::new(); - let history = serde_json::to_string(configurator.get_history(history_type)) - .unwrap_or_else(|_| String::from("[]")); - Ok(history) + let history = configurator.get_history(history_type); + // filter out empty string and not exist history path + let clean_history: Vec<&String> = match history_type { + HistoryType::WorkingFolder => history + .into_iter() + .filter(|s| !s.is_empty()) + .filter(|s| Path::new(s).is_dir()) + .collect::>(), + _ => history + .into_iter() + .filter(|s| !s.is_empty()) + .filter(|s| Path::new(s).is_file()) + .collect::>(), + }; + + let history_json_text = + serde_json::to_string(&clean_history).unwrap_or_else(|_| String::from("[]")); + Ok(history_json_text) } #[tauri::command] @@ -405,4 +420,4 @@ pub fn acrn_remove_file(path: &str) -> Result<(), String> { #[tauri::command] pub fn open_devtools(window: Window) { window.open_devtools() -} \ No newline at end of file +}