Comments (3)
Hello @kyle-power! A download button is not supported by shiny.fluent
. See the following workaround on how you can overcome this and use any button to trigger shiny::downloadHandler
:
library(shiny)
library(shiny.fluent)
library(shinyjs)
ui <- fluentPage(
useShinyjs(),
PrimaryButton.shinyInput(
"downloadButton",
text = "Download",
iconProps = list(iconName = "Download")
),
div(
style = "visibility: hidden;",
downloadButton("download", label = "")
)
)
server <- function(input, output, session) {
observeEvent(input$downloadButton, {
click("download")
})
output$download <- downloadHandler(
filename = function() {
paste("data-", Sys.Date(), ".csv", sep="")
},
content = function(file) {
write.csv(iris, file)
}
)
}
shinyApp(ui, server)
from shiny.fluent.
Thanks @kyle-power for your question, and @jakubsob for a workaround! Starting downloads from React is a feature that we could add to shiny.react in a future release - I created issue Appsilon/shiny.react#11 to track it.
from shiny.fluent.
Hi, all.
I tried to solve my download button problem using workaround given by @jakubsob .
But in my code, download button will open new page instead of download file.
so I deleted almost every code to find what's problem, and found this.
When download button is exist in Stack
it won't work properly (instead it will open new page)
So In my case, I replaced Stack
to div
and it worked.
Below is minimal reproducible example.
I'm even not sure what's different between div
and Stack
but, you may want to note.
Thanks.
library(shiny)
library(shiny.fluent)
#>
#> Attaching package: 'shiny.fluent'
#> The following object is masked from 'package:shiny':
#>
#> runExample
library(shinyjs)
#>
#> Attaching package: 'shinyjs'
#> The following object is masked from 'package:shiny.fluent':
#>
#> runExample
#> The following object is masked from 'package:shiny':
#>
#> runExample
#> The following objects are masked from 'package:methods':
#>
#> removeClass, show
ui <- fluentPage(
useShinyjs(),
PrimaryButton.shinyInput(
"downloadButton",
text = "Download",
iconProps = list(iconName = "Download")
),
Stack(
style = "visibility: hidden;",
downloadButton("download", label = "")
)
)
server <- function(input, output, session) {
observeEvent(input$downloadButton, {
click("download")
})
output$download <- downloadHandler(
filename = function() {
paste("data-", Sys.Date(), ".csv", sep="")
},
content = function(file) {
write.csv(iris, file)
}
)
}
shinyApp(ui, server)
#>
#> Listening on http://127.0.0.1:3765
Created on 2023-09-12 with reprex v2.0.2
from shiny.fluent.
Related Issues (20)
- downloadHandler doesnโt work with shiny.fluent in R v4.2.2 HOT 4
- Sidebar collapse to menu button which does not respond HOT 1
- Stack blocks off event bubbling up HOT 2
- Relative links in R documentation does not work in RStudio Help HOT 3
- Improve documentation for unsupported features with workarounds HOT 1
- Not rendering the content in the second PivotItem HOT 4
- shiny.fluent::runExample("demo") returns Error in $: $ operator is invalid for atomic vectors
- Download links and downloadHandlers do not work from inside a PivotItem HOT 3
- Temporary alert for application users HOT 1
- [docs] add shiny.router on DESCRIPTION HOT 1
- selected item in navigation bar after clicking route_link HOT 2
- Refactor E2E tests to make them more resilient and easy to maintain
- Move CommandBar binding to JavaScript
- 'TimePicker' is not an exported object from 'namespace:shiny.fluent'
- The PivotItem resets state whenever the tab is changed HOT 2
- Enable reactableOutput to be used in shiny.fluent HOT 2
- Errors do not propagate into R console
- Add few examples for R users how to work the DetailsList
- Bugs: cannot provide/override props of SpinButton.shinyInput HOT 1
- `SpinButton.shinyInput` uses `value` improperly
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from shiny.fluent.