mesop / sidenav.py
wwwillchen's picture
Commit
8e04495
raw
history blame
798 Bytes
import mesop as me
@me.stateclass
class State:
sidenav_open: bool
def on_click(e: me.ClickEvent):
s = me.state(State)
s.sidenav_open = not s.sidenav_open
SIDENAV_WIDTH = 200
def load(e: me.LoadEvent):
me.set_theme_mode("system")
@me.page(
on_load=load,
security_policy=me.SecurityPolicy(
allowed_iframe_parents=["https://google.github.io", "https://huggingface.co"]
),
path="/sidenav",
)
def app():
state = me.state(State)
with me.sidenav(
opened=state.sidenav_open, style=me.Style(width=SIDENAV_WIDTH)
):
me.text("Inside sidenav")
with me.box(
style=me.Style(
margin=me.Margin(left=SIDENAV_WIDTH if state.sidenav_open else 0),
),
):
with me.content_button(on_click=on_click):
me.icon("menu")
me.markdown("Main content")