From dad870a72b0f1b49b82a33449827e46f14f38550 Mon Sep 17 00:00:00 2001 From: William Doane Date: Wed, 11 Sep 2024 17:04:00 -0400 Subject: [PATCH 1/2] Defer creation of fileGetter and dirCreator to allow reactive inputs --- R/filesave.R | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/R/filesave.R b/R/filesave.R index 08bc4c1..52f7f07 100644 --- a/R/filesave.R +++ b/R/filesave.R @@ -28,8 +28,6 @@ NULL #' shinyFileSave <- function(input, id, updateFreq = 0, session = getSession(), defaultPath = "", defaultRoot = NULL, allowDirCreate = TRUE, ...) { - fileGet <- do.call(fileGetter, list(...)) - dirCreate <- do.call(dirCreator, list(...)) currentDir <- list() lastDirCreate <- NULL clientId <- session$ns(id) @@ -39,6 +37,9 @@ shinyFileSave <- function(input, id, updateFreq = 0, session = getSession(), dir <- input[[paste0(id, "-modal")]] createDir <- input[[paste0(id, "-newDir")]] + fileGet <- do.call(fileGetter, list(...)) + dirCreate <- do.call(dirCreator, list(...)) + # Show a notification if a user is trying to create a # new directory when that option has been disabled if (!identical(createDir, lastDirCreate)) { From d3e7470f45c93b4ad20ab5a72110db0905e4b670 Mon Sep 17 00:00:00 2001 From: William Doane Date: Wed, 11 Sep 2024 17:17:12 -0400 Subject: [PATCH 2/2] Defer creation of fileGetter and dirCreator to allow reactive inputs --- NEWS.md | 2 ++ R/filesave.R | 1 + 2 files changed, 3 insertions(+) diff --git a/NEWS.md b/NEWS.md index 62b89a2..7a85b3d 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,5 +1,7 @@ # shinyFiles (development version) +* Accepted pull request from @WilDoane to address #195 + # shinyFiles 0.9.4 * Fixed #185 (@pietrodita) diff --git a/R/filesave.R b/R/filesave.R index 52f7f07..f257dd0 100644 --- a/R/filesave.R +++ b/R/filesave.R @@ -37,6 +37,7 @@ shinyFileSave <- function(input, id, updateFreq = 0, session = getSession(), dir <- input[[paste0(id, "-modal")]] createDir <- input[[paste0(id, "-newDir")]] + ## allows reactive links (e.g., for filetypes) fileGet <- do.call(fileGetter, list(...)) dirCreate <- do.call(dirCreator, list(...))