Py.Cafe

jhsmit/

solara-interactive-title

Solara Interactive Title Edit

DocsPricing
  • app.py
  • requirements.txt
app.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import solara

@solara.component
def DoubleClick(children, on_click):
    def handle(*args):
        on_click()
    div = solara.Div(children=children)
    solara.v.use_event(div, "dblclick", handle)

@solara.component
def Page():
    edit_mode = solara.use_reactive(False)
    title = solara.use_reactive('Double click to edit this title')

    def on_edit(value: str):
        edit_mode.set(False)
        title.set(value)

    def on_click():
        edit_mode.set(True)

    if edit_mode.value:
        card_title = solara.InputText(label='', value=title.value, on_value=on_edit)
    else:
        card_title = DoubleClick(children=[title.value], on_click=on_click)
    with solara.Card(card_title):
        solara.Text("This is just text")