Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/rsquaredacademy/standby

Loading screens, alerts and notifications for Shiny
https://github.com/rsquaredacademy/standby

alerts loaders modals notifications r-package rstats shiny spinners tooltips

Last synced: 16 days ago
JSON representation

Loading screens, alerts and notifications for Shiny

Awesome Lists containing this project

README

        

---
output: github_document
---

```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "100%"
)
```

# standby

[![CRAN_Status_Badge](https://www.r-pkg.org/badges/version/standby)](https://cran.r-project.org/package=standby)
[![cran checks](https://badges.cranchecks.info/summary/standby.svg)](https://cran.r-project.org/web/checks/check_results_standby.html)
[![R-CMD-check](https://github.com/rsquaredacademy/standby/actions/workflows/R-CMD-check.yaml/badge.svg)](https://github.com/rsquaredacademy/standby/actions/workflows/R-CMD-check.yaml)
[![Codecov test coverage](https://codecov.io/gh/rsquaredacademy/standby/branch/master/graph/badge.svg)](https://app.codecov.io/gh/rsquaredacademy/standby?branch=master)
[![status](https://tinyverse.netlify.com/badge/standby)](https://CRAN.R-project.org/package=standby)
[![Lifecycle: stable](https://img.shields.io/badge/lifecycle-stable-brightgreen.svg)](https://lifecycle.r-lib.org/articles/stages.html)

Easily create alerts, notifications, tooltips and loading screens in Shiny

## Installation

```{r cran-installation, eval = FALSE}
# Install release version from CRAN
install.packages("standby")

# Install development version from GitHub
# install.packages("devtools")
devtools::install_github("rsquaredacademy/standby")
```

## Usage

### Loading Screens

To use spinners/loaders from **standby** in your Shiny application, include the
following in the **UI** part of the app:

- Include the dependencies using the appropriate `use*` functions
(`useSpinkit()` in the below example).
- Wrap the target output using corresponding rendering function
(`spinkit()` in the below example).

##### Example

```{r standby, eval=FALSE}
library(shiny)
library(standby)

ui <- fluidPage(

standby::useSpinkit(), # include dependencies
fluidRow(
standby::spinkit(plotOutput("plot1")), # wrap output inside loader
actionButton("render", "Render")
)

)

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

output$plot1 <- renderPlot({
input$render
Sys.sleep(3)
hist(mtcars$mpg)
})

}

shinyApp(ui, server)
```

#### Details

The below table displays the dependency and rendering functions along with references:

| Index | Dependency | Render | Reference |
| ------| ------------- | ------------- | ------------- |
| 1 | `useThreeDots()` | `threeDots()` | [Three Dots](https://github.com/nzbin/three-dots) |
| 2 | `useSpinkit()` | `spinkit()` | [SpinKit](https://github.com/tobiasahlin/SpinKit) |
| 3 | `useVizLoad()` | `vizLoad()` | [Loading Visualization](https://github.com/RIDICS/Loading-Visualization) |
| 4 | `useSpinners()` | `spinners()` | [Spinners](https://github.com/lukehaas/css-loaders) |
| 5 | `useLoaders()` | `loaders()` | [Loaders](https://github.com/raphaelfabeni/css-loader) |

### Alerts and Notifications

To use alerts or notifications from **buzz** in your Shiny application, follow the below steps:

- Include the dependencies in the **UI** part of the app using the appropriate
`use*` functions (`useToast()` in the below example).
- Include the corresponding rendering function in the **Server** part of the
app (`toast()` in the below example).

##### Example

```{r buzz, eval=FALSE}
library(shiny)
library(standby)
ui <- fluidPage(
useBootBox(), # include dependencies
actionButton(inputId = "notify",
label = "Show Notification")
)
server <- function(input, output, session) {
observeEvent(input$pnotify, {
bootBox(class = "rubberBand") # display the alert
})
}
shinyApp(ui, server)
```

#### Details

The below table displays the dependency and rendering functions along with references:

| Index | Dependency | Render | Reference |
| ------| ------------- | ------------- | ------------- |
| 1 | `useAlertify()` | `alertify_alert()` | [Alertify](https://github.com/MohammadYounes/AlertifyJS) |
| 2 | `useAlertify()` | `alertify_notify()` | [Alertify](https://github.com/MohammadYounes/AlertifyJS) |
| 3 | `useBootBox()` | `bootBox()` | [BootBox](https://github.com/bootboxjs/bootbox) |
| 4 | `useMicroTip()` | `microTip()` | [MicroTip](https://github.com/ghosh/microtip) |
| 5 | `useNS()` | `notice()` | [Notification Styles](https://tympanus.net/Development/NotificationStyles/) |
| 6 | `useNotify()` | `notify()` | [PNotify](https://github.com/sciactive/pnotify) |
| 7 | `useTingle()` | `tingle()` | [Tingle](https://github.com/robinparisi/tingle) |
| 8 | `useToast()` | `toast()` | [iziToast](https://github.com/marcelodolza/iziToast) |

## Getting Help

If you encounter a bug, please file a minimal reproducible example using
[reprex](https://reprex.tidyverse.org/index.html) on github. For questions and clarifications,
use [StackOverflow](https://stackoverflow.com/).

## Code of Conduct

Please note that the standby project is released with a [Contributor Code of Conduct](https://contributor-covenant.org/version/2/1/CODE_OF_CONDUCT.html). By contributing to this project, you agree to abide by its terms.