diff options
| author | Oskar Nyberg <oskar@mullvad.net> | 2020-06-04 13:45:06 +0200 |
|---|---|---|
| committer | Oskar Nyberg <oskar@mullvad.net> | 2020-06-10 13:46:17 +0200 |
| commit | bfd3b02a3936451ae43867f8f3e2f986a2a2f9bc (patch) | |
| tree | 3ab241e849f8f22f5bc0a8e5af226c8b30e4552e /gui/src/shared/notifications/notification.ts | |
| parent | d7fdccb58e8205ae26023629873922979644bfdd (diff) | |
| download | mullvadvpn-bfd3b02a3936451ae43867f8f3e2f986a2a2f9bc.tar.xz mullvadvpn-bfd3b02a3936451ae43867f8f3e2f986a2a2f9bc.zip | |
Categorize notifications and their logic into notification definition
Diffstat (limited to 'gui/src/shared/notifications/notification.ts')
| -rw-r--r-- | gui/src/shared/notifications/notification.ts | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/gui/src/shared/notifications/notification.ts b/gui/src/shared/notifications/notification.ts new file mode 100644 index 0000000000..e7d89e65bb --- /dev/null +++ b/gui/src/shared/notifications/notification.ts @@ -0,0 +1,41 @@ +export type NotificationAction = { type: 'open-url'; url: string; withAuth?: boolean }; + +export type InAppNotificationIndicatorType = 'success' | 'warning' | 'error'; + +interface NotificationProvider { + mayDisplay(): boolean; +} + +export interface SystemNotification { + message: string; + critical: boolean; + presentOnce?: { value: boolean; name: string }; + suppressInDevelopment?: boolean; + action?: NotificationAction; +} + +export interface InAppNotification { + indicator: InAppNotificationIndicatorType; + title: string; + subtitle?: string; + action?: NotificationAction; +} + +export interface SystemNotificationProvider extends NotificationProvider { + getSystemNotification(): SystemNotification | undefined; +} + +export interface InAppNotificationProvider extends NotificationProvider { + getInAppNotification(): InAppNotification | undefined; +} + +export * from './accountExpiry'; +export * from './blockWhenDisconnected'; +export * from './connected'; +export * from './connecting'; +export * from './disconnected'; +export * from './error'; +export * from './inconsistentVersion'; +export * from './reconnecting'; +export * from './unsupportedVersion'; +export * from './updateAvailable'; |
