44 lines
932 B
JavaScript
44 lines
932 B
JavaScript
|
// @flow
|
||
|
|
||
|
export type NOTIFICATION_LEVEL = 'danger' | 'warning' | 'success' | 'info';
|
||
|
|
||
|
export type Notification = {
|
||
|
level: NOTIFICATION_LEVEL,
|
||
|
msg: string,
|
||
|
duration?: number
|
||
|
};
|
||
|
|
||
|
export type ShowNotificationAction = {
|
||
|
type: 'SHOW_NOTIFICATION',
|
||
|
payload: Notification
|
||
|
};
|
||
|
|
||
|
type CloseNotificationAction = {
|
||
|
type: 'CLOSE_NOTIFICATION',
|
||
|
payload: Notification
|
||
|
};
|
||
|
|
||
|
export type NotificationsAction = ShowNotificationAction | CloseNotificationAction;
|
||
|
|
||
|
export function showNotification(
|
||
|
level: NOTIFICATION_LEVEL = 'info',
|
||
|
msg: string,
|
||
|
duration?: number
|
||
|
): ShowNotificationAction {
|
||
|
return {
|
||
|
type: 'SHOW_NOTIFICATION',
|
||
|
payload: {
|
||
|
level,
|
||
|
msg,
|
||
|
duration
|
||
|
}
|
||
|
};
|
||
|
}
|
||
|
|
||
|
export function closeNotification(notification: Notification): CloseNotificationAction {
|
||
|
return {
|
||
|
type: 'CLOSE_NOTIFICATION',
|
||
|
payload: notification
|
||
|
};
|
||
|
}
|