61 lines
2.3 KiB
Python
61 lines
2.3 KiB
Python
import streamlit as st
|
||
from config import setup_page_config, API_PUBLIC_URL
|
||
from api_client import check_api_health
|
||
from sidebar import render_sidebar, render_footer
|
||
from sync_parsers_page import render_sync_parsers_page
|
||
from async_upload_page import render_async_upload_page
|
||
from tasks_page import render_tasks_page
|
||
|
||
# Конфигурация страницы
|
||
setup_page_config()
|
||
|
||
def main():
|
||
# Определяем активную страницу для заголовка
|
||
active_page = st.session_state.get("active_page", 0)
|
||
page_titles = {
|
||
0: "Синхронные парсеры",
|
||
1: "Асинхронная загрузка",
|
||
2: "Управление задачами"
|
||
}
|
||
|
||
st.title(f"🚀 NIN Excel Parsers API - {page_titles.get(active_page, 'Демонстрация')}")
|
||
st.markdown("---")
|
||
|
||
# Проверка доступности API
|
||
if not check_api_health():
|
||
st.error(f"❌ API недоступен по адресу {API_PUBLIC_URL}")
|
||
st.info("Убедитесь, что FastAPI сервер запущен")
|
||
return
|
||
|
||
st.success(f"✅ API доступен по адресу {API_PUBLIC_URL}")
|
||
|
||
# Боковая панель с информацией и навигацией
|
||
render_sidebar()
|
||
|
||
# Обрабатываем клики по кнопкам в сайдбаре
|
||
if st.session_state.get("sidebar_sync_clicked", False):
|
||
st.session_state.sidebar_sync_clicked = False
|
||
st.session_state.active_page = 0
|
||
elif st.session_state.get("sidebar_async_clicked", False):
|
||
st.session_state.sidebar_async_clicked = False
|
||
st.session_state.active_page = 1
|
||
elif st.session_state.get("sidebar_tasks_clicked", False):
|
||
st.session_state.sidebar_tasks_clicked = False
|
||
st.session_state.active_page = 2
|
||
|
||
# Определяем активную страницу
|
||
active_page = st.session_state.get("active_page", 0)
|
||
|
||
# Рендерим соответствующую страницу
|
||
if active_page == 0:
|
||
render_sync_parsers_page()
|
||
elif active_page == 1:
|
||
render_async_upload_page()
|
||
else:
|
||
render_tasks_page()
|
||
|
||
# Футер
|
||
render_footer()
|
||
|
||
if __name__ == "__main__":
|
||
main() |