Я пытаюсь выяснить, как закрыть пользовательский sweetalert
с кодом после всех вычислений.
Я показываю пользовательский shinyjs::js$swalgif
в моем приложении с вращающимся GIF, помещенным в начале длинного вычисления.После того, как вычисление выполнено (и результаты теперь отображаются в моем блестящем приложении, я хотел бы удалить / закрыть сообщение без необходимости нажимать на пользователя все, что я пробовал;
swal.close(), closeSweetAlert(session), removeModal(session)
но безрезультатно, см. также github issue ps не уверен, почему GIF такой маленький и почему текстовое html-текст отсутствует в фиктивном приложении (хотя здесь это не важно)
jscodeswal <- c(
'shinyjs.swalGIF= function(params) {
var defaultParams = {title: null, html : null, imageUrl: null };
params = shinyjs.getParams(params, defaultParams);
swal({title : params.title, html : params.html, imageUrl : params.imageUrl,
animation : false,
showConfirmButton : false,
showCancelButton : false,
allowOutsideClick: false,
allowEscapeKey: false
});
};'
)
if (interactive()) {
require(shiny)
require(shinyalert)
require(shinyjs)
shinyApp(
ui = fluidPage(
shinyjs::useShinyjs(),
shinyjs::extendShinyjs(text = jscodeswal),
tags$head(
includeScript("https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.0.1/sweetalert.min.js"),
includeCSS("https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.0.1/sweetalert.min.css")
),
actionButton("btn", "Click me")
),
server = function(input, output, session) {
observeEvent(input$btn, {
# Show a simple modal
shinyjs::js$swalGIF(title = '<span style="color:#339FFF; font-size: 30px">Test message<span>',
html = '<br><span style = "font-weight: normal; color:#797979">Please close me when done!<br><br>',
imageUrl = 'https://media.giphy.com/media/4HgDESJLG1JSmqTOnH/giphy.gif')
})
}
)
}