Skip to contents

Add a button in a draggable panel in an application to take several screenshots at different states of the application. Then you can easily combine PDF generated to share the look of your application with someone who hasn't access yet.

Usage

lookbook(filename)

Arguments

filename

Filename to use for generated PDF (without extension).

Value

an HTML tag that can be included in UI.

Examples


library(shiny)
library(capture)

ui <- fluidPage(
  tags$h2("Lookbook example"),
  lookbook("my-app"),
  tags$br(),
  fluidRow(
    column(
      width = 4,
      wellPanel(
        tags$b("Parameters :"),

        selectInput(
          inputId = "loi",
          label = "Law:",
          choices = c("normal", "uniform", "exponential")
        )
      )
    ),
    column(
      width = 8,
      tags$div(
        id = "result-block",
        tags$b("Results :"),
        plotOutput(outputId = "plot"),
        uiOutput(outputId = "mean"),
        verbatimTextOutput(outputId = "raw")
      )
    )
  )
)

server <- function(input, output, session) {
  distrib_r <- reactive({
    switch(
      input$loi,
      "normal" = rnorm(1000),
      "uniform" = runif(1000),
      "exponential" = rexp(1000)
    )
  })

  output$plot <- renderPlot({
    hist(distrib_r())
  })

  output$mean <- renderUI({
    tags$p(tags$b("The mean is :"), round(mean(distrib_r()), 2))
  })

  output$raw <- renderPrint({
    summary(distrib_r())
  })
}

if (interactive())
  shinyApp(ui, server)