The document explains how to use downloadableReactTable shiny module in periscope2 applications.
downloadableReactTable
parameter download_data_fxns
or
downloadableReactTableUI
parameter downloadtypes
is emptyShiny modules consist of a pair of functions that modularize, or package, a small piece of reusable functionality. The UI function is called directly by the user to place the UI in the correct location (as with other shiny UI objects). The module server function that is called only once to set it up using the module name as a function inside the server function (i.e. user-local session scope. The first function argument is a string that represents the module id (the same id used in module UI function). Additional arguments can be supplied by the user based on the specific shiny module that is called. There can be additional helper functions that are a part of a shiny module.
The downloadableReactTable Shiny Module is a part of the periscope2 package and consists of the following functions:
The downloadableReactTableUI function is called from the ui.R (or equivalent) file in the location where the table should be placed. This is similar to other UI element placement in shiny.
The downloadableReactTableUI looks like:
The downloadableReactTableUI function takes the unique object ID for the UI object.
The next two arguments (downloadtypes and hovertext) are passed to the downloadFileButton and set the file types the button will allow the user to request and the downloadFileButton's tooltip text.
# Inside ui_body.R or ui_sidebar.R downloadableReactTableUI( id = "object_id1", downloadtypes = c("csv", "tsv"), hovertext = "Download the data here!")
The downloadableReactTable function is called directly. The call consists of the following:
Data Function or Reactive Expression Requirements
Reactive Return Value
table_state: a list of the current table state. The list keys are ("page", "pageSize", "pages", "sorted" and "selected")
It is acceptable to ignore the return value as well if this functionality is not needed. Simply do not assign the result to a variable.
Customization Options
downloadableReactTable module can be customized using reactable function arguments(see ?reactable::reactable
). These options can be sent as a named options via the server function, see example below.
# Inside server_local.R library(shiny) library(periscope2) library(reactable) table_state <- downloadableReactTable( id = "object_id1", table_data = reactiveVal(iris), download_data_fxns = list(csv = reactiveVal(iris), tsv = reactiveVal(iris)), selection_mode = "multiple", pre_selected_rows = function() {c(1, 3, 5)}, table_options = list(columns = list( Sepal.Length = colDef(name = "Sepal Length"), Sepal.Width = colDef(filterable = TRUE), Petal.Length = colDef(show = FALSE), Petal.Width = colDef(defaultSortOrder = "desc")), showSortable = TRUE, theme = reactableTheme( borderColor = "#dfe2e5", stripedColor = "#f6f8fa", highlightColor = "#f0f5f9", cellPadding = "8px 12px"))) observeEvent(table_state(), { print(table_state()) }) # NOTE: table_state is the reactive return value, captured for later use
For a complete running shiny example application using the downloadableReactTable module you can create and run a periscope2 sample application using:
library(periscope2) app_dir = tempdir() create_new_application(name = 'mysampleapp', location = app_dir, sample_app = TRUE) runApp(paste(app_dir, 'mysampleapp', sep = .Platform$file.sep))
Vignettes
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.