I'm trying to use the relatively new shinyAlert package to see if it offers better results than the sweetalert package but I'm unable to figure out how to get this: 
Myvar <-  shinyalert input text 
from this minimal example.
library(shiny)
library(shinyjs)
library(shinyalert)
ui <- fluidPage(
  shinyjs::useShinyjs(),
  useShinyalert(),
     actionButton("run", "Run", class = "btn-success")
)
server <- function(input, output, session) {
  shinyEnv <- environment()
  observeEvent(input$run, {
    shinyalert('hello', type='input')
  })
}
shinyApp(ui = ui, server = server)
My thanks for any help from you geniouses out there.
Here is how you do it:
library(shiny)
library(shinyalert)
ui <- fluidPage(
  useShinyalert(),
  actionButton("run", "Run", class = "btn-success")
)
server <- function(input, output, session) {
  observeEvent(input$run, {
    shinyalert('hello', type='input', callbackR = mycallback)
  })
  mycallback <- function(value) {
    cat(value)
  }
}
shinyApp(ui = ui, server = server)
It's done using callbacks. You can assign the value to a reactive variable if you'd like.
I had fully documented the package last month and was about to release it, and then my computer crashed before I had a chance to push to github, and lost all progress. I haven't had a chance to work on it again. So sorry that the documentation isn't great yet, the package is still un-released so use at your own risk for now :)
(Notice that you don't need shinyjs for this)
I have no experience with the package shinyalert, but you can achieve what you want with the widely used and well documented modal dialogs from shiny. Maybe you there is a reason for you to stick with shinyalert that I am unaware off, but if not, example code for achieving what you want with modal dialogs:
ui <- fluidPage(
  shinyjs::useShinyjs(),
  actionButton("run", "Run", class = "btn-success"),
  textOutput("output1")
)
server <- function(input, output, session) {
  dataModal <- function(failed = FALSE) {
    modalDialog(
      textInput("input1", "Enter text:",
                placeholder = 'Enter text here'
      )
    )
  }
  # Show modal when button is clicked.
  observeEvent(input$run, {
    showModal(dataModal())
  })
  output$output1 <- renderText({
    input$input1
  })
}
shinyApp(ui = ui, server = server)
Let me know if this helps!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With