From e686ca9a750bb8ccf152a3edbf6e95fc976dffff Mon Sep 17 00:00:00 2001 From: Alexis <35.alexis.pele@gmail.com> Date: Sun, 21 Mar 2021 11:21:32 +0100 Subject: [PATCH] Toast disappear functionnalities --- package-lock.json | 37 ++++++++++++++++++--- package.json | 2 ++ src/assets/scss/_animations.scss | 18 ++++++++++ src/components/celestials/CelestialCard.vue | 5 +-- src/components/toast/ToastCard.vue | 22 ++++++++++-- src/components/toast/ToastsList.vue | 5 --- src/shims-vue.d.ts | 2 ++ src/store/toasts/index.ts | 8 ++++- 8 files changed, 85 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index d8410b7..9a5e866 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1377,6 +1377,12 @@ } } }, + "@types/uuid": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.0.tgz", + "integrity": "sha512-eQ9qFW/fhfGJF8WKHGEHZEyVWfZxrT+6CLIJGBcZPfxUh/+BnEj+UCGYMlr9qZuX/2AltsvwrGqp0LhEW8D0zQ==", + "dev": true + }, "@types/webpack": { "version": "4.41.26", "resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.26.tgz", @@ -9959,6 +9965,14 @@ "tough-cookie": "~2.5.0", "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" + }, + "dependencies": { + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + } } }, "require-directory": { @@ -10604,6 +10618,14 @@ "faye-websocket": "^0.11.3", "uuid": "^3.4.0", "websocket-driver": "^0.7.4" + }, + "dependencies": { + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + } } }, "sockjs-client": { @@ -11838,10 +11860,9 @@ "dev": true }, "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" }, "v8-compile-cache": { "version": "2.2.0", @@ -12666,6 +12687,14 @@ "requires": { "ansi-colors": "^3.0.0", "uuid": "^3.3.2" + }, + "dependencies": { + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + } } }, "webpack-merge": { diff --git a/package.json b/package.json index 279f571..055df93 100644 --- a/package.json +++ b/package.json @@ -10,11 +10,13 @@ "dependencies": { "axios": "^0.21.1", "core-js": "^3.6.5", + "uuid": "^8.3.2", "vue": "^3.0.0", "vue-router": "^4.0.0-0", "vuex": "^4.0.0-0" }, "devDependencies": { + "@types/uuid": "^8.3.0", "@typescript-eslint/eslint-plugin": "^2.33.0", "@typescript-eslint/parser": "^2.33.0", "@vue/cli-plugin-babel": "~4.5.0", diff --git a/src/assets/scss/_animations.scss b/src/assets/scss/_animations.scss index 164ec77..26372b3 100644 --- a/src/assets/scss/_animations.scss +++ b/src/assets/scss/_animations.scss @@ -27,6 +27,15 @@ } } +@keyframes fadeOut { + from { + opacity: 100%; + } + to { + opacity: 0; + } +} + @keyframes fromBottom { from { transform: translateY(20px); @@ -45,6 +54,15 @@ } } +@keyframes slideFromLeft { + from { + transform: translateX(0); + } + to { + transform: translateX(100%); + } +} + @keyframes paneBgAround { 0% { background-position: -10vw 0%; diff --git a/src/components/celestials/CelestialCard.vue b/src/components/celestials/CelestialCard.vue index 9297a2a..4a950a5 100644 --- a/src/components/celestials/CelestialCard.vue +++ b/src/components/celestials/CelestialCard.vue @@ -98,6 +98,7 @@ diff --git a/src/shims-vue.d.ts b/src/shims-vue.d.ts index 3804a43..f001839 100644 --- a/src/shims-vue.d.ts +++ b/src/shims-vue.d.ts @@ -4,3 +4,5 @@ declare module '*.vue' { const component: DefineComponent<{}, {}, any> export default component } + +declare module 'uuid'; \ No newline at end of file diff --git a/src/store/toasts/index.ts b/src/store/toasts/index.ts index 65eddf4..e3e229b 100644 --- a/src/store/toasts/index.ts +++ b/src/store/toasts/index.ts @@ -1,7 +1,7 @@ export default { state: { queue: Array<{ - id: number; + id: string; title: string; message: string; category: string; @@ -11,11 +11,17 @@ export default { mutations: { pushToast: (state: any, toast: any) => { state.queue.push(toast); + }, + purgeToast: (state: any, toastId: string) => { + state.queue = state.queue.filter((toast: any) => toast.id != toastId); } }, actions: { pushToast: ({ commit }: any, toast: any) => { commit("pushToast", toast); + }, + purgeToast: ({ commit }: any, toastId: string) => { + commit("purgeToast", toastId); } } };