---
title: "Shiny"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{Shiny}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
```
```{r setup}
library(whereami)
```
Using `whereami` with shiny is simple. Place `cat_where(whereami())` anywhere in a shiny command and every time the rendering application hits the line it will print to console indicating which line has been hit accompanied by a counter.
```r
── Running renderPlot(...) at shiny.R#15 (1) ───────────────────────────────────────────
── Running renderPlot(...) at shiny.R#15 (2) ───────────────────────────────────────────
```
Here is an example of a simple app that uses `whereami` in the `renderPlot` chunk.
```{r,eval = FALSE}
# Global variables can go here
n <- 200
# Define the UI
ui <- bootstrapPage(
numericInput('n', 'Number of obs', n),
plotOutput('plot')
)
# Define the server code
server <- function(input, output) {
output$plot <- renderPlot({
cat_where(whereami())
hist(runif(input$n))
})
}
# Return a Shiny app object
shinyApp(ui = ui, server = server)
```