-
Notifications
You must be signed in to change notification settings - Fork 34
Open
Description
The following code below will work perfectly in Chrome but not in Safari, where there are much stricter rules regarding javascript. The buttons render as visually expected but when going to click the input button it does not lead to a file input window. This makes it very difficult for the broader accessibility of my application. Can you please please provide alternatives and/or methods to help make the shiny app more broadly used across multiple browsers?
require(shiny)
require(shiny.fluent)
require(shinyjs)
ui <-
fluentPage(
useShinyjs(),
PivotItem(
headerText = "Import Your Data",
div(
tokens = list(childrenGap = 15),
children = list(
Label(HTML("5. Upload Files: <span style='color:#a4262c;'>*</span>")),
Text(variant = "medium", "Upload Raw Data Files (.xlsx or .csv):"),
div(
style = "margin-bottom: 10px;", # Space for the text above the button
PrimaryButton.shinyInput(
"uploadButton1",
text = "Upload",
iconProps = list(iconName = "Upload"),
style = "margin-bottom: 10px; display: block;" # Ensures the button is on a new line
)
),
div(
style = "visibility: hidden; width: 0; height: 0; overflow: hidden;",
fileInput("raw_data", label = "", multiple = TRUE, accept = c(".xlsx", ".csv"))
),
uiOutput("uploadMessage1"), # Output to display the success message
Text(variant = "medium", "Upload Plate Layout (.xlsx):"),
div(
style = "margin-bottom: 10px;", # Space for the text above the second button
PrimaryButton.shinyInput(
"uploadButton2",
text = "Upload",
iconProps = list(iconName = "Upload"),
style = "margin-bottom: 10px; display: block;" # Ensures the button is on a new line
)
),
div(
style = "visibility: hidden; width: 0; height: 0; overflow: hidden;",
fileInput("plate_layout", label = "", accept = ".xlsx")
),
uiOutput("uploadMessage2"), # Output to display the success message
Label(HTML("6. Save Inputs: <span style='color:#a4262c;'>*</span>")),
div(
style = "margin-bottom: 10px;", # Space for the text above the button
PrimaryButton.shinyInput(
"save_inputs",
text = "Save Inputs",
iconProps = list(iconName = "Save"),
style = "margin-bottom: 10px; display: block;" # Ensures the button is on a new line
)
),
uiOutput("notification")
)
)
)
)
server <- function(input, output, session){
observeEvent(input$uploadButton1, {
click("raw_data")
})
observeEvent(input$uploadButton2, {
click("plate_layout")
})
observeEvent(input$raw_data, {
if (!is.null(input$raw_data)) {
output$uploadMessage1 <- renderUI({
MessageBar(
messageBarType = 4,
"Files Imported!"
)
})
}
})
observeEvent(input$plate_layout, {
if (!is.null(input$plate_layout)) {
output$uploadMessage2 <- renderUI({
MessageBar(
messageBarType = 4,
"Files Imported!"
)
})
}
})
}
raw_data <- reactive({
req(input$raw_data)
input$raw_data
})
plate_layout <- reactive({
req(input$plate_layout)
input$plate_layout
})
}
shinyApp(ui, server)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels