ui.update_sidebar
ui.update_sidebar(id, *, show=None, session=None)
Update a sidebar's visibility.
Set a sidebar state during an active Shiny user session.
Parameters
id: str
-
The
id
of the sidebar to toggle. show: Optional[bool] = None
-
The desired visible state of the sidebar, where
True
opens the sidebar andFalse
closes the sidebar (if not already in that state). session: Optional[
Session
] = None-
A Shiny session object (the default should almost always be used).
See Also
Examples
#| standalone: true
#| components: [editor, viewer]
#| layout: vertical
#| viewerHeight: 400
## file: app.py
from shiny import App, Inputs, Outputs, Session, reactive, render, ui
app_ui = ui.page_sidebar(
ui.sidebar("Sidebar content", id="sidebar"),
ui.input_action_button("open_sidebar", label="Open sidebar", class_="me-3"),
ui.input_action_button("close_sidebar", label="Close sidebar", class_="me-3"),
ui.br(),
ui.br(),
ui.output_text_verbatim("state"),
fillable=False,
)
def server(input: Inputs, output: Outputs, session: Session):
@reactive.effect
@reactive.event(input.open_sidebar)
def _():
ui.update_sidebar("sidebar", show=True)
@reactive.effect
@reactive.event(input.close_sidebar)
def _():
ui.update_sidebar("sidebar", show=False)
@render.text
def state():
return f"input.sidebar(): {input.sidebar()}"
app = App(app_ui, server=server)