shinyFeedback icon indicating copy to clipboard operation
shinyFeedback copied to clipboard

Value of loadingButton is not reset immediately on initialisation

Open bartekch opened this issue 1 year ago • 0 comments

When loadingButton is recreated with the same ID, corresponding input value is not reset until the button is clicked for the first time. This behaviour differs from the built-in actionButton, where value is immediately set to 0. Simple demonstration, using the latest dev version, below.

I believe that loadingButton should behave the same as actionButton in this matter. loadingButton initial value is null, not 0, but this is not important - what is important is that value should be reset to default immediately. Actually the fix should be as simple as calling Shiny.setInputValue somewhere during the initialisation. I've already created PR with suggested change: https://github.com/merlinoa/shinyFeedback/pull/68, but I'm not sure whether it is the best place to do it.

library("shiny")

shinyApp(
  ui = basicPage(
    shinyFeedback::useShinyFeedback(),
    actionButton("rerender", "Rerender buttons"),
    uiOutput("buttons"),

    wellPanel(
      "actionButton",
      verbatimTextOutput("b1_val"),
      verbatimTextOutput("val1")
    ),

    wellPanel(
      "loadingButton",
      verbatimTextOutput("b2_val"),
      verbatimTextOutput("val2")
    )

  ),
  server = function(input, output, session) {
    output$buttons <- renderUI({
      input$rerender
      tagList(
        actionButton("b1", "actionButton"),
        shinyFeedback::loadingButton("b2", "loadingbutton")
      )
    })

    output$b1_val <- renderPrint(input$b1)
    val1 <- eventReactive(input$b1, rnorm(1))
    output$val1 <- renderPrint(val1())

    output$b2_val <- renderPrint(input$b2)
    val2 <- eventReactive(input$b2, {
      shinyFeedback::resetLoadingButton("b2")
      rnorm(1)
    })
    output$val2 <- renderPrint(val2())
  }
)
- Session info ------------------------------------------------------------------------------
 setting  value
 version  R version 4.1.0 (2021-05-18)
 os       Windows 10 x64 (build 22621)
 system   x86_64, mingw32
 ui       RStudio
 language (EN)
 collate  Polish_Poland.1250
 ctype    Polish_Poland.1250
 tz       Europe/Warsaw
 date     2023-01-31
 rstudio  2022.12.0+353 Elsbeth Geranium (desktop)
 pandoc   NA

- Packages ----------------------------------------------------------------------------------
 package       * version    date (UTC) lib source
 bslib           0.3.1      2021-10-06 [1] CRAN (R 4.1.2)
 cachem          1.0.6      2021-08-19 [1] CRAN (R 4.1.2)
 cli             3.1.0      2021-10-27 [1] CRAN (R 4.1.2)
 digest          0.6.31     2022-12-11 [1] CRAN (R 4.1.3)
 ellipsis        0.3.2      2021-04-29 [1] CRAN (R 4.1.2)
 fastmap         1.1.0      2021-01-25 [1] CRAN (R 4.1.2)
 fontawesome     0.2.2      2021-07-02 [1] CRAN (R 4.1.2)
 htmltools       0.5.4      2022-12-07 [1] CRAN (R 4.1.3)
 httpuv          1.6.5      2022-01-05 [1] CRAN (R 4.1.2)
 jquerylib       0.1.4      2021-04-26 [1] CRAN (R 4.1.2)
 jsonlite        1.7.3      2022-01-17 [1] CRAN (R 4.1.2)
 later           1.3.0      2021-08-18 [1] CRAN (R 4.1.2)
 lifecycle       1.0.1      2021-09-24 [1] CRAN (R 4.1.2)
 magrittr        2.0.1      2020-11-17 [1] CRAN (R 4.1.2)
 mime            0.12       2021-09-28 [1] CRAN (R 4.1.1)
 promises        1.2.0.1    2021-02-11 [1] CRAN (R 4.1.2)
 R6              2.5.1      2021-08-19 [1] CRAN (R 4.1.2)
 Rcpp            1.0.8      2022-01-13 [1] CRAN (R 4.1.2)
 rlang           1.0.6      2022-09-24 [1] CRAN (R 4.1.3)
 rstudioapi      0.13       2020-11-12 [1] CRAN (R 4.1.2)
 sass            0.4.0      2021-05-12 [1] CRAN (R 4.1.2)
 sessioninfo     1.2.2      2021-12-06 [1] CRAN (R 4.1.2)
 shiny         * 1.7.1      2021-10-02 [1] CRAN (R 4.1.2)
 shinyFeedback   0.4.0.9001 2023-01-31 [1] Github (merlinoa/shinyFeedback@b741fed)
 xtable          1.8-4      2019-04-21 [1] CRAN (R 4.1.2)

bartekch avatar Jan 31 '23 10:01 bartekch