def sidenav()

in experiments/veo-app/components/side_nav.py [0:0]


def sidenav(current_page: str):
    """Render side navigation"""
    app_state = me.state(AppState)
    # print(f"received current page: {current_page}")

    with me.sidenav(
        opened=True,
        style=me.Style(
            width=SIDENAV_MAX_WIDTH if app_state.sidenav_open else SIDENAV_MIN_WIDTH,
            background=me.theme_var("secondary-container"),
        ),
    ):
        with me.box(
            style=me.Style(
                margin=me.Margin(top=16, left=16, right=16, bottom=16),
                display="flex",
                flex_direction="column",
                gap=5,
            ),
        ):
            with me.box(
                style=me.Style(
                    display="flex",
                    flex_direction="row",
                    gap=5,
                    align_items="center",
                ),
            ):
                with me.content_button(
                    type="icon",
                    on_click=on_sidenav_menu_click,
                ):
                    with me.box():
                        with me.tooltip(message="Expand menu"):
                            me.icon(icon="menu")
                if app_state.sidenav_open:
                    me.text("VEO STUDIO", style=_FANCY_TEXT_GRADIENT)
            # spacer
            me.box(style=me.Style(height=16))
            # standard pages
            for page in page_json:
                if "align" not in page:  # ignore pages with alignment, handle elsewhere
                    idx = page["id"]
                    menu_item(
                        idx, page["icon"], page["display"], not app_state.sidenav_open
                    )
            # settings & theme toggle
            with me.box(style=MENU_BOTTOM):
                theme_toggle_icon(
                    9,
                    "light_mode",
                    "Theme",
                    not app_state.sidenav_open,
                )
                menu_item(10, "settings", "Settings", not app_state.sidenav_open)