Now in R as an htmlwidget

Looking at the Github stats below, I clearly am not the only one who loves sweetalert by Tristan Edwards.

Since it is so useful and so beautiful, of course we need it in R as an htmlwidget. Below are all the demo examples from sweetalert recreated in R using the new sweetalertR htmlwidget.

Please note almost all of the HTML/JS/CSS should be directly attributed to the sweetalert author Tristan Edwards.

Sweet Alert

A beautiful replacement for JavaScript’s “Alert”

So… What does it do?

Here’s a comparison of a standard error message. The first one uses the built-in alert-function, while the second is using sweetAlert.

Normal alert

Code:
alert("Oops... Something went wrong!");

Sweet Alert

Code:
# instead of copying the code from sweetalert examples
#  let's use R sweetalertR htmlwidgets
library(sweetalertR)

sweetalert(
  selector = '.showcase.sweet button',
    title = "Oops...",
  text = "Something went wrong!",
  type = "error"
)

Pretty cool huh? SweetAlert automatically centers itself on the page and looks great no matter if you’re using a desktop computer, mobile or tablet. It’s even highly customizeable, as you can see below!

More examples

In these examples, we will use the sweetalert() function from the R htmlwidget sweetalertR instead of swal or sweetAlert in JavaScript.

Download & install

Install with devtools::install_github:

devtools::install_github("timelyportfolio/sweetalertR")

Configuration

Here are the keys that you can use if you pass an object into sweetAlert:

Argument
Default value
Description
title null (required) The title of the modal. It can either be added to the object under the key “title” or passed as the first parameter of the function.
text null A description for the modal. It can either be added to the object under the key “text” or passed as the second parameter of the function.
type null The type of the modal. SweetAlert comes with 4 built-in types which will show a corresponding icon animation: “warning”, “error”, “success” and “info”. You can also set it as “input” to get a prompt modal. It can either be put in the object under the key “type” or passed as the third parameter of the function.
allowEscapeKey true If set to true, the user can dismiss the modal by pressing the Escape key.
customClass null A custom CSS class for the modal. It can be added to the object under the key “customClass”.
allowOutsideClick false If set to true, the user can dismiss the modal by clicking outside it.
showCancelButton false If set to true, a “Cancel”-button will be shown, which the user can click on to dismiss the modal.
showConfirmButton true If set to false, the “OK/Confirm”-button will be hidden. Make sure you set a timer or set allowOutsideClick to true when using this, in order not to annoy the user.
confirmButtonText “OK” Use this to change the text on the “Confirm”-button. If showCancelButton is set as true, the confirm button will automatically show “Confirm” instead of “OK”.
confirmButtonColor “#AEDEF4” Use this to change the background color of the “Confirm”-button (must be a HEX value).
cancelButtonText “Cancel” Use this to change the text on the “Cancel”-button.
closeOnConfirm true Set to false if you want the modal to stay open even if the user presses the “Confirm”-button. This is especially useful if the function attached to the “Confirm”-button is another SweetAlert.
closeOnCancel true Same as closeOnConfirm, but for the cancel button.
imageUrl null Add a customized icon for the modal. Should contain a string with the path to the image.
imageSize “80x80” If imageUrl is set, you can specify imageSize to describes how big you want the icon to be in px. Pass in a string with two values separated by an “x”. The first value is the width, the second is the height.
timer null Auto close timer of the modal. Set in ms (milliseconds).
html false If set to true, will not escape title and text parameters. (Set to false if you’re worried about XSS attacks.)
animation true If set to false, the modal’s animation will be disabled.
inputType “text” Change the type of the input field when using type: “input” (this can be useful if you want users to type in their password for example).
inputPlaceholder null When using the input-type, you can specify a placeholder to help the user.
inputValue null Specify a default text value that you want your input to show when using type: “input”

Contribute

SweetAlert was created by Tristan Edwards, you can follow him on Twitter or Dribbble for updates and other cool projects!

Feel free to fork SweetAlert on GitHub if you have any features that you want to add!

sweetalertR was created by Kenton Russell to wrap SweetAlert and make it available in R as an htmlwidget.