Skip to content

Commit

Permalink
fix: show AppBar when Tabs are the only children
Browse files Browse the repository at this point in the history
  • Loading branch information
iisakkirotko committed May 22, 2024
1 parent f35c9bb commit 51b28c5
Showing 1 changed file with 16 additions and 16 deletions.
32 changes: 16 additions & 16 deletions solara/components/applayout.py
Original file line number Diff line number Diff line change
Expand Up @@ -257,39 +257,39 @@ def AppLayout(
use_drawer = True
title = t.use_title_get() or title
children_appbartitle = apptitle_portal.use_portal()
show_app_bar = (title and (len(routes) > 1 and navigation)) or children_appbar or use_drawer or children_appbartitle

if style is None:
style = {"height": "100%", "max-height": "100%", "overflow": "auto"}
# if style is None, we choose a default style based on whether we are seeing the appbar, etc
if show_app_bar or children_sidebar or len(children) != 1:
style["padding"] = "12px"

def set_path(index):
path = paths[index]
location.pathname = path

v_slots = []

# Separate tabs from the other children. We want to keep a reference to any tabs that were added through children
# so we can make sure AppBar is rendered even when tabs are the only children
tabs = None
for child_appbar in children_appbar.copy():
if child_appbar.component == solara.lab.Tabs:
if tabs is not None:
raise ValueError("Only one Tabs component is allowed in the AppBar")
tabs = child_appbar
children_appbar.remove(tabs)
tabs_to_render = 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 (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:
if style is None:
style = {"height": "100%", "max-height": "100%", "overflow": "auto"}
# if style is None, we choose a default style based on whether we are seeing the appbar, etc
if show_app_bar or children_sidebar or len(children) != 1:
style["padding"] = "12px"

if (tabs_to_render 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"
solara.lab.Tab(name)
# with v.Tabs(v_model=index, on_v_model=set_path, centered=True) as tabs:
# for route in routes:
# name = route.path if route.path != "/" else "Home"
# v.Tab(children=[name])
if tabs is not None:
v_slots = [{"name": "extension", "children": tabs}]

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
# also ideal in jupyter notebooks
Expand Down

0 comments on commit 51b28c5

Please sign in to comment.