DillonHammill / DataEditR

An Interactive R Package for Viewing, Entering Filtering and Editing Data
https://dillonhammill.github.io/DataEditR/
381 stars 40 forks source link

Cannot hide upload fields in shiny #28

Closed FilipeamTeixeira closed 2 years ago

FilipeamTeixeira commented 3 years ago

Unfortunately I have exactly the same problem as someone described before. The input menus cannot be hidden.

library(DataEditR)
library(shiny)

ui <- fluidPage(
  splitLayout(
    dataInputUI("input1"),
    dataOutputUI("output1"),
    actionButton("done", "Done!"),
    cellWidths = c("60%", "20%", "20%")
  ),
  dataEditUI("edit1")
)

server <- function(input, output, session) {

  # DATA INPUT
  data_input <- dataInputServer("input1", hide = TRUE)

  # DATA EDIT
  data_update <- dataEditServer("edit1",
                                data = data_input)

  # DATA OUTPUT
  dataOutputServer("output1",
                   data = data_update,
                   write_fun = "write.csv",
                   write_args = list(row.names = FALSE))

  # DATA RETURN
  observeEvent(input$done, {
    stopApp(data_update())
  })

}

shinyApp(ui, server)
DillonHammill commented 2 years ago

@FilipeamTeixeira, all you need to do is make you load shinyjs and add useSinyjs() to the ui of your shiny application.

library(DataEditR)
library(shiny)
library(shinyjs)

ui <- fluidPage(
  useShinyjs(),
  splitLayout(
    dataInputUI("input1"),
    dataOutputUI("output1"),
    actionButton("done", "Done!"),
    cellWidths = c("60%", "20%", "20%")
  ),
  dataEditUI("edit1")
)

server <- function(input, output, session) {

  # DATA INPUT
  data_input <- dataInputServer(
    "input1", 
    hide = TRUE
  )

  # DATA EDIT
  data_update <- dataEditServer(
    "edit1",
    data = data_input
  )

  # DATA OUTPUT
  dataOutputServer("output1",
                   data = data_update,
                   write_fun = "write.csv",
                   write_args = list(row.names = FALSE))

  # DATA RETURN
  observeEvent(input$done, {
    stopApp(data_update())
  })

}

shinyApp(ui, server)