bokeh / jupyter_bokeh

An extension for rendering Bokeh content in JupyterLab notebooks
BSD 3-Clause "New" or "Revised" License
249 stars 48 forks source link

RadioButton fires duplicate events on click #159

Open axil opened 2 years ago

axil commented 2 years ago
from jupyter_bokeh import BokehModel
from bokeh.models import RadioGroup

def update(event):
    print(event)

LABELS = ["Option 1", "Option 2", "Option 3"]

radio_group = RadioGroup(labels=LABELS, active=1)
radio_group.on_click(update)

BokehModel(radio_group)

After a click on "Option 3" it displays:

image

I would expect the event to be fired only once (in javascript it fires once).

bryevdv commented 2 years ago

Does this happen only with BokehModel? If it happens in general, then this issue belongs in the main bokeh/bokeh repo.

axil commented 2 years ago
from bokeh.plotting import figure, show, curdoc
from bokeh.models import RadioGroup

def my_radio_handler(new):
    print('Radio button option ' + str(new) + ' selected.')

radio_group = RadioGroup(labels=["Option 1", "Option 2", "Option 3"], active=0)
radio_group.on_click(my_radio_handler)

curdoc().add_root(radio_group)
bokeh serve --show myapp.py

Single call.

axil commented 2 years ago

It turned out that all widgets are affected by this. I've made a quickfix. Plz have a look, @mattpap, maybe you'll find a better solution.