import { Notification } from '../models/notification.types'; import { ErrorAction } from './action.types'; //tslint:disable:no-reserved-keywords export enum ActionNames { list = 'notification.list', listResult = 'notification.listResult', dismiss = 'notification.dismiss' } export interface ListNotifications { type: ActionNames.list; } export interface ListNotificationResult extends ErrorAction { type: ActionNames.listResult; items: Notification[]; } export interface DismissNotification { type: ActionNames.dismiss; notification: Notification; } export function listNotification(): ListNotifications { return { type: ActionNames.list }; } export function listNotificaitonResult(items: Notification[]): ListNotificationResult { return { type: ActionNames.listResult, items }; } export function dismissNotification(notification: Notification): DismissNotification { return { type: ActionNames.dismiss, notification }; } export type Actions = ListNotifications | ListNotificationResult | DismissNotification;