shinydashboard icon indicating copy to clipboard operation
shinydashboard copied to clipboard

Stream box values with updateBoxValue

Open colearendt opened this issue 6 years ago • 3 comments

Adds a updateBoxValue function to stream box values directly to the infoBox and valueBox values without re-rendering the rest of the HTML. Useful for values that change often.

Also adds id values for the infoBox and valueBox items (NULL by default).

colearendt avatar Dec 20 '18 03:12 colearendt

Hi @colearendt -- first thanks for opening this PR, I really like the additional functionality of being able to update the box values without re-rendering the whole box.

I made some changes to the API that you might be interested in merging (or using), which you can see in gadenbuie/shinyDashboard@stream-box.

Notably, I changed the syntax around updateBoxValue() to update a single box, identified by inputId. Currently this function takes only value in addition to session.

updateBoxValue(session, inputId = "singlebox", value = value())

The motivation for this change would be to make it easier to add functionality to update other properties of the box, such as the color or icon, e.g.

# not yet implemented
updateBoxValue(session, inputId = "singlebox", value = value(), status = "warning")

I kept the ability to update multiple boxes at once in a function called updateBoxValues() that works exactly as your updateBoxValue() did. I also used this opportunity to refactor a bit and remove the rlang dependency.

Finally, I added a small CSS animation on the box value update that adds a small flash to the value update.

Feel free to use, lose, or modify any part of the code I've written. Where I think it may contribute to this PR is:

  1. Make room for adding updating of additional properties, such as color or icon.

  2. We could possibly simplify the javascript message handler to process updates to individual boxes (not needing to loop over data) and instead handle looping in R in updateBoxValues().

  3. A more consistent API that matches the formals of other shinyDashboard functions.

gadenbuie avatar Feb 14 '19 21:02 gadenbuie

Any news on this PR? I think it would be a great feature vastly improving user experience and performance.

markusdumke avatar Aug 25 '20 15:08 markusdumke

I'd also like to follow bump this. This function shows up in one of the shiny demos (the twitter conference demo) but it's not a part of any of the code bases making it a little confusing when trying to sort out update value boxes.

exproject avatar May 04 '22 06:05 exproject