from nicegui import app, ui from services.auth.oidc import oidc_config from fastapi import Request from services.log import access_logger as logger @ui.page('/') def main_page(request: Request = None) -> None: async def logout() -> None: user_id = app.storage.user.get('user_id') logger.info(f"User logout initiated") if oidc_config.logout_user(): ui.navigate.to('/login') else: ui.notify('Logout failed', color='negative') logger.error("Logout failed") with ui.column().classes('absolute-center items-center'): username = app.storage.user.get('username', 'Unknown') email = app.storage.user.get('email', '') ui.timer(10, oidc_config.refresh_access_token, immediate=False) ui.label(f'Hello {username}!').classes('text-2xl') if email: ui.label(f'Email: {email}').classes('text-sm text-gray-600') ui.button(on_click=logout, icon='logout').props('outline round')