From 259f435117ec58664e5272d7e040381beafde188 Mon Sep 17 00:00:00 2001 From: cardosofede Date: Tue, 1 Aug 2023 19:55:57 +0200 Subject: [PATCH] (feat) init file explorer component --- ui_components/file_explorer.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 ui_components/file_explorer.py diff --git a/ui_components/file_explorer.py b/ui_components/file_explorer.py new file mode 100644 index 0000000..3bda2a6 --- /dev/null +++ b/ui_components/file_explorer.py @@ -0,0 +1,29 @@ +import streamlit as st +from streamlit_elements import media, mui, sync, lazy + +from utils.os_utils import get_directories_from_directory +from .dashboard import Dashboard + + +class FileExplorer(Dashboard.Item): + _directory = "hummingbot_files/bot_configs" + + @staticmethod + def set_selected_file(_, node_id): + st.session_state.selected_file = node_id + + def __call__(self): + bots = [bot.split("/")[-2] for bot in get_directories_from_directory("hummingbot_files/bot_configs") if "data_downloader" not in bot] + with mui.Paper(key=self._key, sx={"display": "flex", "flexDirection": "column", "borderRadius": 3, "overflow": "hidden"}, elevation=1): + with self.title_bar(padding="10px 15px 10px 15px", dark_switcher=False): + mui.icon.Folder() + mui.Typography("File Explorer") + + with mui.lab.TreeView(defaultExpandIcon=mui.icon.ChevronRight, defaultCollapseIcon=mui.icon.ExpandMore, + onNodeSelect=lazy(lambda event, node_id: self.set_selected_file(event, node_id))): + for bot in bots: + with mui.lab.TreeItem(nodeId=bot, label=f"🤖{bot}"): + for file in get_python_files_from_directory(f"hummingbot_files/bot_configs/{bot}/scripts"): + mui.lab.TreeItem(nodeId=file, label=f"🐍{file.split('/')[-1]}") + for file in get_yml_files_from_directory(f"hummingbot_files/bot_configs/{bot}/conf/strategies"): + mui.lab.TreeItem(nodeId=file, label=f"📄 {file.split('/')[-1]}")