Files
tainagustului/UI_V2/main.py

100 lines
2.7 KiB
Python

import flet as ft
from pages.auth.auth import Auth
from pages.home.home import Home
from admin.dashboard import Dashboard
from pages.categories.category import Category
from pages.products.product import ProductPage
from pages.profile.profilepage import ProfilePage
from pages.shopping_cart.cart import Cart
from pages.shopping_cart.peload_card import PreloadCard
from pages.shopping_cart.payment_redirect import PaymentRedirect
import os
os.environ["FLET_SECRET_KEY"] = os.urandom(12).hex()
from dotenv import load_dotenv
load_dotenv()
def main(page: ft.Page):
page.title = "Taina Gustului"
page.theme_mode = ft.ThemeMode.LIGHT
page.theme = ft.Theme(color_scheme=ft.ColorScheme(primary=ft.Colors.BROWN))
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":
login = Auth(page)
page.add(login.build())
page.update()
return
if route in ("/home", "/", None):
home = Home(page)
page.add(home.build())
page.update()
return
if route == "/admin":
if not page.client_storage.get("is_authenticated"):
page.go("/auth")
return
dashbaord = Dashboard(page)
page.add(dashbaord.build())
page.update()
return
if 'categorie' in route:
category = Category(page)
page.add(category.build())
page.update()
return
if 'produs' in route:
produs = ProductPage(page)
page.add(produs.build())
page.update()
return
if route == "/profil":
profile = ProfilePage(page)
page.add(profile.build())
page.update()
return
if route == "/cos":
cart = Cart(page)
page.add(cart.build())
page.update()
return
if route == "/pre_load_cos":
preload = PreloadCard(page)
page.add(preload.build())
page.update()
return
if route == '/payment/redirect':
redirect = PaymentRedirect(page)
page.add(redirect.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("/")
ft.app(
target=main,
assets_dir="assets",
upload_dir="uploads",
view=ft.WEB_BROWSER,
port=8080,
host="0.0.0.0"
)