summaryrefslogtreecommitdiffhomepage
path: root/gui/src/shared/notifications/notification.ts
diff options
context:
space:
mode:
authorOskar Nyberg <oskar@mullvad.net>2020-06-04 13:45:06 +0200
committerOskar Nyberg <oskar@mullvad.net>2020-06-10 13:46:17 +0200
commitbfd3b02a3936451ae43867f8f3e2f986a2a2f9bc (patch)
tree3ab241e849f8f22f5bc0a8e5af226c8b30e4552e /gui/src/shared/notifications/notification.ts
parentd7fdccb58e8205ae26023629873922979644bfdd (diff)
downloadmullvadvpn-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.ts41
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';