import solara
@solara.component
def EditableTitle(initial: str):
title = solara.use_reactive(initial)
edit_mode = solara.use_reactive(False)
def on_edit(value: str):
edit_mode.set(False)
title.set(value)
def handle(*args):
if edit_mode.value:
return
edit_mode.set(True)
if edit_mode.value:
children = [solara.InputText(label="", value=title.value, on_value=on_edit)]
else:
children = [solara.Text(title.value)]
div = solara.Div(children=children)
solara.v.use_event(div, "dblclick", handle)
@solara.component
def Page():
with solara.Card(EditableTitle("Double click to edit")):
solara.Text("This is just text")