shinyFeedback 0.2.0 CRAN Release

Andy Merlino

2020/04/29

I am excited to announce that shinyFeedback 0.2.0 is on its way to CRAN (it may take a day or 2 for it to be available on your CRAN mirror). shinyFeedback
is an R package that allows you to easily display user feedback in Shiny apps. shinyFeedback’s
primary user feedbacks are displayed alongside Shiny inputs like this:

shinyFeedback 0.2.0 underwent a significant rewrite of the JavaScript that controls when the feedback
messages are displayed. I had been meaning to clean up this JavaScript for a while, but,
as is often the case, I had not been able to find the time.

I was reinvigorated to work on shinyFeedback when, late last year, Hadley Wickham mentioned shinyFeedback and added a shinyFeedback example to the “User Feedback” chapter of his upcoming Mastering Shiny book. I am thrilled shinyFeedback is getting a mention in Hadley’s upcoming book, but I also knew shinyFeedback needed improvements before appearing in a book for Shiny masters! I feel that shinyFeedback got (at least the most pressing) of these needed improvements with this 0.2.0 release. Please let me know if you have recommendations for further enhancements!

In addition to the underlying JavaScript refactor, there are significant new features in shinyFeedback 0.2.0:

new input feedback for shinyWidgets::pickerInput()

new input feedback for shinyWidgets::airDatPickerInput() and shiny::dateRangeInput(). @pcogis submitted a flawless PR to add support for these 2 inputs. Thanks @pcogis!

a new loadingButton() input.
When a button click triggers a long running process and no feedback is given after the button click, the user will understandably think nothing happened and click the button again. Double clicking an action button can cause a bunch of issues
if not guarded againts (e.g. long running calculations can run multiple times or, worse, duplicate writes can be made to the database). Of course, it is fairly simple to add custom styles and logic to implement the loading button from scratch, but it is nice to
have an out of the box solution as well.

a toast notification
The toast notifications will not seem new to many Shiny developers as there is already an R package (shinytoastr) that wraps the same JavaScript library (toastr). We just wrapped the library slightly
differently. Please see the loadingButton and showToast vignette for additional detail.

there are now new functions showFeedback() and hideFeedback() which can be used as an alternative to feedback(). See the intro vignette for additional detail.