44 lines
1.1 KiB
Python
44 lines
1.1 KiB
Python
import flet as ft
|
|
|
|
from app.widgets.adaptive_menu import adaptive_menu, get_selected_index_from_route
|
|
|
|
MOBILE_BREAKPOINT = 600
|
|
|
|
def get_layout_mode(page: ft.Page):
|
|
width = page.width if page.width and page.width > 0 else 1024
|
|
return "mobile" if width < MOBILE_BREAKPOINT else "desktop"
|
|
|
|
def main_layout(page: ft.Page, content_container: ft.Container):
|
|
print(">>> ENTER main_layout")
|
|
|
|
mode = get_layout_mode(page)
|
|
|
|
# เก็บ mode instance ไว้ที่ page
|
|
page._layout_mode = mode
|
|
|
|
selected_index = get_selected_index_from_route(page.route)
|
|
|
|
menu = adaptive_menu(page, selected_index)
|
|
|
|
# เก็บ menu instance ไว้ที่ page
|
|
page._menu_control = menu
|
|
|
|
print(f">>> Device mode: {mode}")
|
|
|
|
if mode == "mobile":
|
|
return ft.Column(
|
|
controls=[
|
|
content_container,
|
|
menu
|
|
],
|
|
expand=True
|
|
)
|
|
else:
|
|
return ft.Row(
|
|
controls=[
|
|
menu,
|
|
ft.VerticalDivider(width=1),
|
|
content_container
|
|
],
|
|
expand=True
|
|
) |