Files
solardb/client/main.py
2025-09-17 08:36:17 +03:00

50 lines
1.4 KiB
Python

import flet as ft
from pages.auth.auth import Auth
from pages.home.dashboard import Dashboard
import os
os.environ["FLET_SECRET_KEY"] = os.urandom(12).hex()
def main(page: ft.Page):
page.title = "Solar DB"
page.theme_mode = ft.ThemeMode.LIGHT
page.theme = ft.Theme(color_scheme=ft.ColorScheme(primary=ft.Colors.BLUE))
page.vertical_alignment = ft.MainAxisAlignment.CENTER
page.horizontal_alignment = ft.CrossAxisAlignment.CENTER
page.padding = 0
def route_change(route):
page.controls.clear()
if route == "/auth":
if page.client_storage.get("is_authenticated"):
page.go("/dashboard")
return
login = Auth(page)
page.add(login.build())
page.update()
return
if route in ("/dashboard", "/", None):
if not page.client_storage.get("is_authenticated"):
page.go("/auth")
return
dashboard = Dashboard(page)
page.add(dashboard.build())
page.update()
return
# 5) Fallback 404
page.add(ft.Text("404: Page not found"))
page.update()
page.on_route_change = lambda _: route_change(page.route)
page.go("/auth")
ft.app(
target=main,
assets_dir="assets",
upload_dir="uploads",
view=ft.WEB_BROWSER,
port=5000
)