Enable loading=True on callback (Stuck loading)

import panel as pn
pn.extension()

def callback(event):
    select.loading = True
    button.loading = True
    time.sleep(2)
    select.loading = False
    button.loading = False

select = pn.widgets.Select(options=['Just Testing'])
button = pn.widgets.Button(name='Process!')
button.param.watch(callback, "clicks")

pn.Column(select, button)

Doesn’t seem to work; permanently disabled.

Hi @ahuang11,

Can confirm it works in my setup, just copied what you put, added import time and seems good

1 Like
import time
import panel as pn
pn.extension()

def callback(event):
    with param.batch_watch(select):
        select.loading = True
        button.loading = True
    time.sleep(2)
    with param.batch_watch(select):
        select.loading = False
        button.loading = False

select = pn.widgets.Select(options=['Just Testing'])
button = pn.widgets.Button(name='Process!')
button.param.watch(callback, "clicks")

pn.Column(select, button)

This works

1 Like