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.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.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.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.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'),
                            ),
                        ],
                        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,
        ],
    )