ratatui_toolkit/widgets/file_system_tree/methods/
toggle_selected.rs

1use anyhow::Result;
2
3use crate::primitives::tree_view::TreeViewState;
4use crate::widgets::file_system_tree::FileSystemTree;
5
6impl<'a> FileSystemTree<'a> {
7    pub fn toggle_selected(&mut self, state: &mut TreeViewState) -> Result<()> {
8        if let Some(path) = state.selected_path.clone() {
9            if let Some(entry) = self.get_entry_at_path(&path) {
10                if entry.is_dir {
11                    if !state.is_expanded(&path) {
12                        self.expand_directory(&path)?;
13                    }
14                    state.toggle_expansion(path);
15                }
16            }
17        }
18        Ok(())
19    }
20}