@bigfishtv/cockpit
Version:
74 lines (67 loc) • 1.82 kB
JavaScript
/**
* @module Actions/notifications
*/
import { NOTIFICATION_ADDED, NOTIFICATION_DISMISSED } from '../constants/ActionTypes'
import newId from '../utils/newId'
/**
* Action for displaying a success styled notification
* @param {String} message
* @param {Number} autoDismiss - time in MS to auto dismiss
* @return {Object} returns action
*/
export function notifySuccess(message, autoDismiss = null) {
return addNotification({
id: newId(),
status: 'success',
message,
autoDismiss,
})
}
/**
* Action for displaying a fail styled notification
* @param {String} message
* @param {Number} autoDismiss - time in MS to auto dismiss
* @return {Object} returns action
*/
export function notifyFailure(message, autoDismiss = null) {
return addNotification({
id: newId(),
status: 'error',
message,
autoDismiss,
})
}
/**
* Action for displaying a warning styled notification
* @param {String} message
* @param {Number} autoDismiss - time in MS to auto dismiss
* @return {Object} returns action
*/
export function notifyWarning(message, autoDismiss = null) {
return addNotification({
id: newId(),
status: 'warning',
message,
autoDismiss,
})
}
/**
* Action for adding a notification
* @param {Object} notification
* @param {String} notification.id
* @param {String} notification.status - e.g. 'warning'
* @param {String} notification.message
* @param {Number} notification.autoDismiss - time in MS to auto dismiss
* @return {Object} returns action
*/
export function addNotification(notification) {
return { type: NOTIFICATION_ADDED, notification }
}
/**
* Action for dismissing a notification
* @param {Object} id - notification id
* @return {Object} returns action
*/
export function dismissNotification(id) {
return { type: NOTIFICATION_DISMISSED, id }
}