if (FALSE) { # rlang::is_interactive()
# Minimal toolbar example
toolbar(
toolbar_input_button(id = "view", icon = icon("eye"), label = "View"),
toolbar_input_button(id = "save", icon = icon("save"), label = "Save"),
toolbar_divider(),
toolbar_input_select(
id = "filter",
label = "Filter",
choices = c("All", "Active", "Inactive")
)
)
# Toolbar with text input
library(shiny)
library(bslib)
ui <- page_fluid(
numericInput(
"quantity",
label = toolbar(
"Quantity",
toolbar_spacer(),
toolbar_input_button("decrement", "Less", icon("minus")),
toolbar_input_button("increment", "More", icon("plus"))
),
value = 5,
min = 0,
max = 100
),
verbatimTextOutput("value")
)
server <- function(input, output, session) {
output$value <- renderText({
paste("Current value:", input$quantity)
})
observeEvent(input$increment, {
updateNumericInput(session, "quantity", value = input$quantity + 1)
})
observeEvent(input$decrement, {
updateNumericInput(session, "quantity", value = input$quantity - 1)
})
}
shinyApp(ui, server)
# Toolbar with input_submit_textarea()
library(shiny)
library(bslib)
ui <- page_fluid(
input_submit_textarea(
"message",
placeholder = "Type a message...",
toolbar = toolbar(
toolbar_input_button("attach", icon = icon("paperclip"), label = "Attach"),
toolbar_input_button("emoji", icon = icon("face-smile"), label = "Emoji"),
toolbar_divider(),
toolbar_input_select(
"format",
label = "Format",
choices = c("Plain", "Markdown", "HTML"),
icon = icon("code")
)
)
),
verbatimTextOutput("output")
)
server <- function(input, output, session) {
output$output <- renderText({
req(input$message)
paste("You said:", input$message)
})
observeEvent(input$attach, {
showNotification("Attach clicked!", duration = 2)
})
observeEvent(input$emoji, {
showNotification("Emoji clicked!", duration = 2)
})
}
shinyApp(ui, server)
}
Run the code above in your browser using DataLab