Skip to content

Commit

Permalink
refactor!: streamline and improve applayout api
Browse files Browse the repository at this point in the history
  • Loading branch information
iisakkirotko committed May 21, 2024
1 parent 1f72013 commit bd314ec
Showing 1 changed file with 11 additions and 5 deletions.
16 changes: 11 additions & 5 deletions solara/components/applayout.py
Original file line number Diff line number Diff line change
Expand Up @@ -196,9 +196,10 @@ def AppLayout(
children=[],
sidebar_open=True,
title=None,
show_app_bar: Optional[bool] = None,
navigation=True,
toolbar_dark=True,
color: Optional[str] = "primary",
toolbar_dark: Optional[bool] = None,
color: Optional[str] = None,
classes: List[str] = [],
style: Optional[Union[str, Dict[str, str]]] = None,
):
Expand All @@ -225,6 +226,10 @@ def AppLayout(
* `children`: The children of the AppLayout. The first child is used as the sidebar content, the rest as the main content.
* `sidebar_open`: Whether the sidebar is open or not.
* `title`: The title of the app shown in the app bar, can also be set using the [Title](/documentation/components/page/title) component.
* `show_app_bar`: Whether the app bar should be shown. If `None` (the default), `AppBar` is shown if:
* There are one or more sibling routes to the current page.
* **OR**: There are one or more children of the `AppBar` component.
* **OR**: There are one or more children of the `AppBarTitle` component.
* `toolbar_dark`: Whether the toolbar should be dark or not.
* `navigation`: Whether the navigation tabs based on routing should be shown.
* `color`: The color of the toolbar.
Expand Down Expand Up @@ -273,7 +278,8 @@ def set_path(index):
tabs = child_appbar
children_appbar.remove(tabs)

show_app_bar = (title and (len(routes) > 1 and navigation)) or bool(children_appbar) or bool(use_drawer) or bool(children_appbartitle) or bool(tabs)
if show_app_bar is None:
show_app_bar = (len(routes) > 1) or bool(children_appbar) or bool(use_drawer) or bool(children_appbartitle) or bool(tabs)

if style is None:
style = {"height": "100%", "max-height": "100%", "overflow": "auto"}
Expand All @@ -284,12 +290,12 @@ def set_path(index):
if (tabs is None) and routes and navigation and (len(routes) > 1):
with solara.lab.Tabs(value=index, on_value=set_path, align="center") as tabs_to_render:
for route in routes:
name = route.path if route.path != "/" else "Home"
name = route.label if route.label is not None else (route.path if route.path != "/" else "Home")
solara.lab.Tab(name)

if tabs is not None:
tabs_to_render = tabs
if tabs_to_render is not None:
if tabs_to_render is not None and navigation:
v_slots = [{"name": "extension", "children": tabs_to_render}]
if embedded_mode and not fullscreen:
# this version doesn't need to run fullscreen
Expand Down

0 comments on commit bd314ec

Please sign in to comment.