from __future__ import annotations import sys from pathlib import Path import streamlit as st # Streamlit executes this file as a script, so ensure absolute dashboard imports # resolve identically to package imports used by tests. if __package__ in (None, ""): sys.path.insert(0, str(Path(__file__).resolve().parent.parent)) st.set_page_config(page_title="Jarca Ledger", page_icon="๐ฐ", layout="wide") from dashboard.common import clear_cache, get_db_path, get_transfer_review_items, inject_app_css, render_sidebar_nav # noqa: F401 from dashboard.page_views.accounts import page_accounts from dashboard.page_views.assets import page_assets from dashboard.page_views.categories import page_categories from dashboard.page_views.cross_transfer_review import page_cross_transfer_review from dashboard.page_views.imports import page_imports from dashboard.page_views.monthly_settlement import page_monthly_settlement from dashboard.page_views.overview import page_overview from dashboard.page_views.rules import page_rules from dashboard.page_views.transactions import page_transactions from dashboard.page_views.uncategorized import page_uncategorized def main() -> None: db_path = get_db_path() inject_app_css() pages = ["์์ ์ฐ", "์์ฝ", "์์ฐ/๋ง๊ฐ", "๊ฑฐ๋๋ด์ญ", "ํ์ธํ์ ํ", "๋ฏธ๋ถ๋ฅ", "๋ถ๋ฅ ๊ท์น", "์นดํ ๊ณ ๋ฆฌ", "๊ณ์ข", "Import"] query_page = st.query_params.get("page", "์์ฝ") page = query_page if query_page in pages else "์์ฝ" st.session_state["page"] = page with st.sidebar: st.markdown("## ๐ฐ Jarca Ledger") st.caption("๊ฐ๊ณ๋ถ ยท ๋ถ๋ฅ ยท Import ์ด์ ์ฝ์") st.markdown('