I'm just getting started with the rintrojs package and I would like to mix it up with the shinydashboard
package. Especially I would like to have a step for:
- the sidebar,
- the header (which is in blue in the image)
- the button that allows to close and open the sidebar (that I surrounded in red in the image)
I tried to start from the example on their github page and to add a sixth step on the sidebar but it returns me an error
library(rintrojs)
library(shiny)
library(shinydashboard)
# Define UI for application that draws a histogram
ui <- shinyUI(
dashboardPage(
dashboardHeader(title = "Basic dashboard"),
introBox(dashboardSidebar(
),data.step = 6,
data.intro = 'This is the sidebar'),
dashboardBody(
fluidPage(
introjsUI(),
# Application title
introBox(
titlePanel("Old Faithful Geyser Data"),
data.step = 1,
data.intro = "This is the title panel"
),
# Sidebar with a slider input for number of bins
sidebarLayout(sidebarPanel(
introBox(
introBox(
sliderInput(
"bins",
"Number of bins:",
min = 1,
max = 50,
value = 30
),
data.step = 3,
data.intro = "This is a slider",
data.hint = "You can slide me"
),
introBox(
actionButton("help", "Press for instructions"),
data.step = 4,
data.intro = "This is a button",
data.hint = "You can press me"
),
data.step = 2,
data.intro = "This is the sidebar. Look how intro elements can nest"
)
),
# Show a plot of the generated distribution
mainPanel(
introBox(
plotOutput("distPlot"),
data.step = 5,
data.intro = "This is the main plot"
)
))
)
)
)
)
# Define server logic required to draw a histogram
server <- shinyServer(function(input, output, session) {
# initiate hints on startup with custom button and event
hintjs(session, options = list("hintButtonLabel"="Hope this hint was helpful"),
events = list("onhintclose"=I('alert("Wasn\'t that hint helpful")')))
output$distPlot <- renderPlot({
# generate bins based on input$bins from ui.R
x <- faithful[, 2]
bins <- seq(min(x), max(x), length.out = input$bins + 1)
# draw the histogram with the specified number of bins
hist(x,
breaks = bins,
col = 'darkgray',
border = 'white')
})
# start introjs when button is pressed with custom options and events
observeEvent(input$help,
introjs(session, options = list("nextLabel"="Onwards and Upwards",
"prevLabel"="Did you forget something?",
"skipLabel"="Don't be a quitter"),
events = list("oncomplete"=I('alert("Glad that is over")')))
)
})
# Run the application
shinyApp(ui = ui, server = server)
Error in tagAssert(sidebar, type = "aside", class = "main-sidebar") : Expected tag to be of type aside
Second question : Is it possible to navigate between the different menu items of the sidebar within one unique rintrojs presentation?