MyCrypto/common/actions/notifications.js

52 lines
984 B
JavaScript
Raw Normal View History

2017-06-21 23:31:59 +00:00
// @flow
/*** Shared types ***/
2017-06-21 23:31:59 +00:00
export type NOTIFICATION_LEVEL = 'danger' | 'warning' | 'success' | 'info';
export type Notification = {
2017-07-04 03:28:56 +00:00
level: NOTIFICATION_LEVEL,
msg: string,
duration?: number
2017-06-21 23:31:59 +00:00
};
/*** Show Notification ***/
2017-06-21 23:31:59 +00:00
export type ShowNotificationAction = {
2017-07-04 03:28:56 +00:00
type: 'SHOW_NOTIFICATION',
payload: Notification
2017-06-21 23:31:59 +00:00
};
export function showNotification(
2017-07-04 03:28:56 +00:00
level: NOTIFICATION_LEVEL = 'info',
msg: string,
duration?: number
2017-06-21 23:31:59 +00:00
): ShowNotificationAction {
2017-07-04 03:28:56 +00:00
return {
type: 'SHOW_NOTIFICATION',
payload: {
level,
msg,
duration
}
};
2017-06-21 23:31:59 +00:00
}
/*** Close notification ***/
export type CloseNotificationAction = {
type: 'CLOSE_NOTIFICATION',
payload: Notification
};
2017-07-04 03:28:56 +00:00
export function closeNotification(
notification: Notification
): CloseNotificationAction {
return {
type: 'CLOSE_NOTIFICATION',
payload: notification
};
2017-06-21 23:31:59 +00:00
}
/*** Union Type ***/
export type NotificationsAction =
| ShowNotificationAction
| CloseNotificationAction;