Is it possible to change the default value of an py-shiny ui.input element based on another input? In the example if I tick "Use uppercase letters" the value should switch from "example text" to "EXAMPLE TEXT".
from shiny import App, Inputs, Outputs, Session, render, ui
app_ui = ui.page_fluid(
ui.input_checkbox("Uppercase", "Use uppercase letters", False),
ui.input_text("caption", "Caption:", value="example text"),
ui.output_text_verbatim("value"),
)
def server(input: Inputs, output: Outputs, session: Session):
@render.text
def value():
return input.caption()
app = App(app_ui, server)
You can define an reactive.effect containing an ui.update_text which updates the value depending on input.Uppercase():
from shiny import App, Inputs, Outputs, Session, render, ui, reactive
app_ui = ui.page_fluid(
ui.input_checkbox("Uppercase", "Use uppercase letters", False),
ui.input_text("caption", "Caption:"),
ui.output_text_verbatim("value"),
)
def server(input: Inputs, output: Outputs, session: Session):
@render.text
def value():
return input.caption()
@reactive.effect
def _():
ui.update_text(
"caption",
value="EXAMPLE TEXT" if input.Uppercase() else "example text"
)
app = App(app_ui, server)