R/csvDownload_module.R

Defines functions csvDownloadUI csvDownload

Documented in csvDownload csvDownloadUI

#' @title csvDownloadUI
#' @description Shiny module to download dataframe as CSV file.
#'
#' @param id Namespace of module.
#' @param label Button label. Defaults to Download
#'
#' @return Returns a tagList.
#' @export
csvDownloadUI <- function(id, label = 'Download csv') {
  ns <- shiny::NS(id)
  ui_input <- shiny::tagList()

  ui_input$download <- shiny::downloadButton(outputId = ns('download'),
                                             label = label)
  ui_input
}

#' @title csvDownload
#' @description Module server function to download dataframe as CSV file.
#'
#' @param input Input
#' @param output Output
#' @param session Session
#' @param df Dataframe to download.
#' @param filename Name of downloaded file
#'
#' @return Does not return a value.
#' @export
csvDownload <- function(input, output, session, df,
                        filename = paste0('data_', Sys.Date(), '.csv')) {
  output$download <- shiny::downloadHandler(
    filename = function() {filename},
    content = function(file) {
      write.csv(df, file, row.names = FALSE)
    })
}
kimjam/qrcutils documentation built on May 20, 2019, 10:21 p.m.