# NOT RUN {
if (interactive()) {
library(shiny)
library(shinyMobile)
shiny::shinyApp(
ui = f7Page(
title = "Action sheet",
f7SingleLayout(
navbar = f7Navbar("Action sheet"),
br(),
f7Button(inputId = "go", "Show action sheet", color = "red")
)
),
server = function(input, output, session) {
observe({
print(list(
sheetOpen = input$action1,
button = input$action1_button
))
})
observeEvent(input$action1_button, {
if (input$action1_button == 1) {
f7Notif(
text = "You clicked on the first button",
icon = f7Icon("bolt_fill"),
title = "Notification",
titleRightText = "now",
session = session
)
} else if (input$action1_button == 2) {
f7Dialog(
inputId = "test",
title = "Click me to launch a Toast!",
type = "confirm",
text = "You clicked on the second button",
session = session
)
}
})
observeEvent(input$test, {
f7Toast(session, text = paste("Alert input is:", input$test))
})
observeEvent(input$go, {
f7ActionSheet(
grid = TRUE,
id = "action1",
buttons = list(
list(
text = "Notification",
icon = f7Icon("info"),
color = NULL
),
list(
text = "Dialog",
icon = f7Icon("lightbulb_fill"),
color = NULL
)
)
)
})
}
)
### in shiny module
library(shiny)
library(shinyMobile)
sheetModuleUI <- function(id) {
ns <- shiny::NS(id)
f7Button(inputId = ns("go"), "Show action sheet", color = "red")
}
sheetModule <- function(input, output, session) {
ns <- session$ns
observe({
print(list(
sheetOpen = input$action1,
button = input$action1_button
))
})
observeEvent(input$action1_button, {
if (input$action1_button == 1) {
f7Notif(
text = "You clicked on the first button",
icon = f7Icon("bolt_fill"),
title = "Notification",
titleRightText = "now",
session = session
)
} else if (input$action1_button == 2) {
f7Dialog(
inputId = ns("test"),
title = "Click me to launch a Toast!",
type = "confirm",
text = "You clicked on the second button",
)
}
})
observeEvent(input$test, {
f7Toast(session, text = paste("Alert input is:", input$test))
})
observeEvent(input$go, {
f7ActionSheet(
grid = TRUE,
id = ns("action1"),
buttons = list(
list(
text = "Notification",
icon = f7Icon("info"),
color = NULL
),
list(
text = "Dialog",
icon = f7Icon("lightbulb_fill"),
color = NULL
)
)
)
})
}
shiny::shinyApp(
ui = f7Page(
title = "Action sheet",
f7SingleLayout(
navbar = f7Navbar("Action sheet"),
br(),
sheetModuleUI(id = "sheet1")
)
),
server = function(input, output, session) {
callModule(sheetModule, "sheet1")
}
)
}
# }
Run the code above in your browser using DataLab