From 3ab77ade1c2473387af52fb25d5393fc40662aa0 Mon Sep 17 00:00:00 2001 From: danielterletzkiy Date: Thu, 7 Jul 2022 15:25:23 +0200 Subject: [PATCH] VEZ-7 fixed notification disappearance --- src/VuelizePlugin.js | 9 +-- src/VuelizePlugin.js.map | 2 +- src/VuelizePlugin.ts | 16 ++--- src/components/notification/DNotification.vue | 59 ++++++++----------- .../notification/DNotificationWrapper.vue | 32 +++++----- src/components/notification/Notification.js | 34 +++++++++++ .../notification/Notification.js.map | 1 + src/components/notification/Notification.ts | 38 ++++++++++++ src/components/notification/Notifications.js | 5 ++ .../notification/Notifications.js.map | 1 + src/store/NotificationStore.d.ts | 2 - src/store/NotificationStore.js | 7 --- src/store/NotificationStore.js.map | 1 - src/store/NotificationStore.ts | 8 --- src/types/Vuelize.js.map | 2 +- src/types/Vuelize.ts | 19 ++---- 16 files changed, 139 insertions(+), 97 deletions(-) create mode 100644 src/components/notification/Notification.js create mode 100644 src/components/notification/Notification.js.map create mode 100644 src/components/notification/Notification.ts create mode 100644 src/components/notification/Notifications.js create mode 100644 src/components/notification/Notifications.js.map delete mode 100644 src/store/NotificationStore.d.ts delete mode 100644 src/store/NotificationStore.js delete mode 100644 src/store/NotificationStore.js.map delete mode 100644 src/store/NotificationStore.ts diff --git a/src/VuelizePlugin.js b/src/VuelizePlugin.js index 22f40ab..941e4a9 100644 --- a/src/VuelizePlugin.js +++ b/src/VuelizePlugin.js @@ -1,7 +1,8 @@ +import { ref } from 'vue'; import { createPinia } from "pinia"; import { ThemeStore } from './store/ThemeStore'; -import { NotificationStore } from './store/NotificationStore'; import importAll from "./ComponentImport"; +import Notification from "./components/notification/Notification"; // @ts-ignore no ripple types available import VWave from "v-wave"; import Unicon from 'vue3-unicons'; @@ -9,14 +10,14 @@ import 'v3-transitions/dist/style.css'; class VuelizePlugin { app; theme; - notification; + notifications = ref([]); constructor(app) { this.app = app; this.theme = ThemeStore(); - this.notification = NotificationStore(); + this.notifications.value; } notify(title, content, type, options) { - this.notification.notifications.push({ title, content, type, options, active: true }); + this.notifications.value.push(ref(new Notification(title, content, type, options))); } getColor(color, tint) { let colorOut; diff --git a/src/VuelizePlugin.js.map b/src/VuelizePlugin.js.map index e499134..d660d86 100644 --- a/src/VuelizePlugin.js.map +++ b/src/VuelizePlugin.js.map @@ -1 +1 @@ -{"version":3,"file":"VuelizePlugin.js","sourceRoot":"","sources":["VuelizePlugin.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"VuelizePlugin.js","sourceRoot":"","sources":["VuelizePlugin.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/VuelizePlugin.ts b/src/VuelizePlugin.ts index 2da6c09..7d998c2 100644 --- a/src/VuelizePlugin.ts +++ b/src/VuelizePlugin.ts @@ -1,29 +1,29 @@ -import {App, Plugin} from 'vue'; +import {App, Plugin, Ref, ref} from 'vue'; import {createPinia} from "pinia"; import {ThemeStore} from './store/ThemeStore' -import {NotificationStore} from './store/NotificationStore' import importAll from "./ComponentImport"; +import {State} from "./types/Vuelize"; +import Notification from "./components/notification/Notification"; // @ts-ignore no ripple types available import VWave from "v-wave"; import Unicon from 'vue3-unicons' import 'v3-transitions/dist/style.css' -import {State} from "./types/Vuelize"; class VuelizePlugin implements Vuelize { app; theme; - notification; + notifications = ref>>([]); constructor(app: App) { this.app = app; this.theme = ThemeStore(); - this.notification = NotificationStore(); + this.notifications.value; } - notify(title: string, content: string, type: State, options?: object | undefined) { - this.notification.notifications.push({title, content, type, options, active: true}) + notify(title: string, content: string, type: State, options: Notifications.Options) { + this.notifications.value.push(ref(new Notification(title, content, type, options))) } getColor(color: string, tint?: number | string | undefined): string { @@ -65,7 +65,7 @@ class VuelizePlugin implements Vuelize { const g = parseInt(hexColor.substr(2, 2), 16); const b = parseInt(hexColor.substr(4, 2), 16); // Get YIQ ratio - let yiq = (r*0.299) + (g*0.587) + (b*0.114); + let yiq = (r * 0.299) + (g * 0.587) + (b * 0.114); // Check contrast return (yiq > 160) ? 'rgba(0,0,0,0.75)' : 'rgba(255,255,255,0.85)'; } diff --git a/src/components/notification/DNotification.vue b/src/components/notification/DNotification.vue index 498582f..e353f3c 100644 --- a/src/components/notification/DNotification.vue +++ b/src/components/notification/DNotification.vue @@ -1,22 +1,22 @@