Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bugfix: updateSelectInput handle correctly named list as choices #464

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

DangerousWizardry
Copy link

Correct a bug where value is not correctly attributed to the data-value attribute in semantic selectInput when using named list as choices.

Have you read the Contributing Guidelines?

Description

Fix a bug when you use named list as choices list. jsonlite::toJSON badly handle the choices list when it came to R named list. Shiny expect a simple JS array. To do that we just have to unname & unlist the initial choices list to get a value vector.

Definition of Done

  • The change is thoroughly documented.
  • The CI passes (R CMD check, linter, unit tests, spelling).
  • Any generated files have been updated (e.g. .Rd files with roxygen2::roxygenise())

Correct a bug where value is not correctly attributed to the data-value attribute in semantic selectInput when using named list as choices.
@TymekDev
Copy link
Contributor

Hi, thank you for your contribution! Two questions:

  1. Do you happen to have a reproducible example to test the change?
  2. Do you know if update_dropdown_input() has some discrepancies too?

@DangerousWizardry
Copy link
Author

Here you'll find a reproducible example.
It seems to come from named list including spaces in their names.

library(shiny)
library(shiny.semantic)


ui <- semanticPage(
  title = "My page",
  shiny.semantic::selectInput(
    inputId = "item_picker",
    label = "Choose your item",
    choices =  list()
  )
    
)


server <- function(input, output, session) {
  
  
  
observe({
  item_list <- list("my first item" = 1,"my second item" = 2)
  shiny.semantic::updateSelectInput(session,
                          inputId = "item_picker",
                          label = "Choose your item",
                          choices =  item_list,
                          selected = 2)
})

}

# Run the application 
shinyApp(ui = ui, server = server)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants