# check out https://shiny.posit.co/py/ for documentation
# And check out https://py.cafe/shiny-unofficial for more examples
from shiny import App, render, ui, reactive
app_ui = ui.page_fluid(
ui.h2("Hello Shiny!"),
ui.input_slider("n", "N", 0, 100, 20),
ui.output_text_verbatim("txt"),
ui.input_action_button("set", "Set slider to 42"),
ui.input_action_button("reset", "Reset slider"),
)
def server(input, output, session):
@output
@render.text
def txt():
return f"n*2 is {input.n() * 2}"
@reactive.Effect
@reactive.event(input.set)
def _():
ui.update_slider(id="n", value=42)
@reactive.Effect
@reactive.event(input.reset)
def _():
ui.update_slider(id="n", value=20)
app = App(app_ui, server)