182 lines
7.6 KiB
Python
182 lines
7.6 KiB
Python
import flet as ft
|
|
from utils import AppView, Title
|
|
from modules.settings import config
|
|
from datetime import datetime
|
|
|
|
|
|
def greet(time: datetime):
|
|
if 5 <= time.hour < 12:
|
|
return 'Goodmorning,'
|
|
elif 12 <= time.hour < 18:
|
|
return 'Goodafternoon,'
|
|
else:
|
|
return 'Goodevening,'
|
|
|
|
|
|
AppRow = ft.ResponsiveRow(
|
|
alignment=ft.MainAxisAlignment.CENTER,
|
|
)
|
|
|
|
|
|
def Home(page: ft.Page):
|
|
contentColumn = ft.Container(
|
|
padding=10,
|
|
content=ft.Column(
|
|
controls=[
|
|
ft.Text(
|
|
greet(datetime.now()),
|
|
size=50,
|
|
weight=ft.FontWeight.W_500,
|
|
),
|
|
ft.Text(
|
|
config.get('general', 'name').split(' ')[0],
|
|
size=40,
|
|
weight=ft.FontWeight.W_300,
|
|
),
|
|
ft.Divider(),
|
|
AppRow,
|
|
ft.Divider(),
|
|
ft.Container(
|
|
margin=10,
|
|
padding=10,
|
|
bgcolor=ft.colors.with_opacity(0.1, '#000000'),
|
|
border_radius=10,
|
|
content=ft.Row(
|
|
[
|
|
ft.Column(
|
|
controls=[
|
|
ft.Container(
|
|
content=ft.Icon(
|
|
ft.icons.APPS,
|
|
color=ft.colors.WHITE,
|
|
),
|
|
margin=10,
|
|
padding=10,
|
|
alignment=ft.alignment.center,
|
|
bgcolor=ft.colors.GREY_700,
|
|
width=60,
|
|
height=60,
|
|
border_radius=10,
|
|
ink=True,
|
|
on_click=lambda _: page.go('/apps'),
|
|
),
|
|
ft.Container(
|
|
content=ft.Text(
|
|
'Apps',
|
|
text_align=ft.TextAlign.CENTER,
|
|
),
|
|
alignment=ft.alignment.center,
|
|
width=80,
|
|
),
|
|
],
|
|
),
|
|
ft.Column(
|
|
controls=[
|
|
ft.Container(
|
|
content=ft.Icon(
|
|
ft.icons.HISTORY,
|
|
color=ft.colors.WHITE,
|
|
),
|
|
margin=10,
|
|
padding=10,
|
|
alignment=ft.alignment.center,
|
|
bgcolor=ft.colors.GREY_700,
|
|
width=60,
|
|
height=60,
|
|
border_radius=10,
|
|
ink=True,
|
|
on_click=lambda e: print(
|
|
'Clickable with Ink clicked!',
|
|
),
|
|
),
|
|
ft.Container(
|
|
content=ft.Text(
|
|
'History',
|
|
text_align=ft.TextAlign.CENTER,
|
|
),
|
|
alignment=ft.alignment.center,
|
|
width=80,
|
|
),
|
|
],
|
|
),
|
|
ft.Column(
|
|
controls=[
|
|
ft.Container(
|
|
content=ft.Icon(
|
|
ft.icons.LIST,
|
|
color=ft.colors.WHITE,
|
|
),
|
|
margin=10,
|
|
padding=10,
|
|
alignment=ft.alignment.center,
|
|
bgcolor=ft.colors.GREY_700,
|
|
width=60,
|
|
height=60,
|
|
border_radius=10,
|
|
ink=True,
|
|
on_click=lambda e: print(
|
|
'Clickable with Ink clicked!',
|
|
),
|
|
),
|
|
ft.Container(
|
|
content=ft.Text(
|
|
'Misc.',
|
|
text_align=ft.TextAlign.CENTER,
|
|
),
|
|
alignment=ft.alignment.center,
|
|
width=80,
|
|
),
|
|
],
|
|
),
|
|
ft.Column(
|
|
controls=[
|
|
ft.Container(
|
|
content=ft.Icon(
|
|
ft.icons.SETTINGS,
|
|
color=ft.colors.WHITE,
|
|
),
|
|
margin=10,
|
|
padding=10,
|
|
alignment=ft.alignment.center,
|
|
bgcolor=ft.colors.GREY_700,
|
|
width=60,
|
|
height=60,
|
|
border_radius=10,
|
|
ink=True,
|
|
on_click=lambda _: page.go(
|
|
'/settings',
|
|
),
|
|
),
|
|
ft.Container(
|
|
content=ft.Text(
|
|
'Settings',
|
|
text_align=ft.TextAlign.CENTER,
|
|
),
|
|
alignment=ft.alignment.center,
|
|
width=80,
|
|
),
|
|
],
|
|
),
|
|
],
|
|
alignment=ft.MainAxisAlignment.CENTER,
|
|
),
|
|
),
|
|
],
|
|
),
|
|
)
|
|
return AppView(
|
|
'/',
|
|
[
|
|
ft.AppBar(
|
|
title=ft.Text(Title(__file__)),
|
|
# actions=[
|
|
# ft.IconButton(
|
|
# icon=ft.icons.SETTINGS,
|
|
# on_click=lambda _: page.go('/settings'),
|
|
# ),
|
|
# ],
|
|
),
|
|
contentColumn,
|
|
],
|
|
)
|