Skip to content

Instantly share code, notes, and snippets.

@justin-lyon
Last active July 1, 2020 21:19
Show Gist options
  • Save justin-lyon/b908002cae044622ac4e54913cf0ba42 to your computer and use it in GitHub Desktop.
Save justin-lyon/b908002cae044622ac4e54913cf0ba42 to your computer and use it in GitHub Desktop.
I had an idea for a fluent toaster api.
(function Toaster() {
let mode = 'dismissible'
const setMode = newMode => {
mode = newMode
}
const fireToast = (title, message, iconName, styleType) => {
console.log('begin fire mode', mode)
const toast = $A.get("e.force:showToast")
toast.setParams({
title: title,
message: message,
key: iconName,
type: styleType,
mode
})
toast.fire()
mode = 'dismissible'
console.log('after fire mode', mode)
}
const error = (title, message) => {
fireToast(title, message, "error", "error")
}
const info = (title, message) => {
fireToast(title, message, "info_alt", "info")
}
const success = (title, message) => {
fireToast(title, message, "success", "success")
}
const warning = (title, message) => {
fireToast(title, message, "warning", "warning")
}
const sticky = () => {
setMode('sticky')
return toaster
}
const pester = () => {
setMode('pester')
return toaster
}
const toaster = {
sticky,
pester,
error,
info,
success,
warning,
}
return toaster
})()
toaster.success('title', 'message') // => default success toast
toaster.info('title', 'message') // => default info toast
toaster.sticky().error('title', 'message') // => sticky error toast
toaster.pester().warning('title', 'message') // => pester warning toast
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment