From 8e76a18590d572447d309e259bfa443682358a43 Mon Sep 17 00:00:00 2001 From: James Collins Date: Fri, 7 Jul 2023 11:14:17 +1000 Subject: [PATCH] add loader option --- resources/js/components/SMToast.vue | 97 ++++++++++++++++--------- resources/js/components/SMToastList.vue | 3 +- resources/js/store/ToastStore.ts | 22 ++++++ 3 files changed, 85 insertions(+), 37 deletions(-) diff --git a/resources/js/components/SMToast.vue b/resources/js/components/SMToast.vue index f5c7299..135c70c 100644 --- a/resources/js/components/SMToast.vue +++ b/resources/js/components/SMToast.vue @@ -5,6 +5,7 @@ :style="styles">
-
+
{{ title }}
@@ -21,8 +22,10 @@ v-if="props.loader" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" - class="spin"> - + class="spin h-4 color-gray mr-2 flex-align-middle"> +

{{ content }} @@ -33,8 +36,9 @@ diff --git a/resources/js/components/SMToastList.vue b/resources/js/components/SMToastList.vue index a6a98bc..6ba4bc9 100644 --- a/resources/js/components/SMToastList.vue +++ b/resources/js/components/SMToastList.vue @@ -8,7 +8,8 @@ :key="toast.id" :type="toast.type" :title="toast.title" - :content="toast.content" /> + :content="toast.content" + :loader="toast.loader" />

diff --git a/resources/js/store/ToastStore.ts b/resources/js/store/ToastStore.ts index 622f78c..27008a8 100644 --- a/resources/js/store/ToastStore.ts +++ b/resources/js/store/ToastStore.ts @@ -57,5 +57,27 @@ export const useToastStore = defineStore({ (item: ToastItem) => item.id !== id ); }, + + updateToast(id: number, updatedFields: Partial): void { + const toastToUpdate = this.toasts.find( + (item: ToastItem) => item.id === id + ); + + if (toastToUpdate) { + toastToUpdate.title = + updatedFields.title || toastToUpdate.title; + toastToUpdate.content = + updatedFields.content || toastToUpdate.content; + toastToUpdate.type = updatedFields.type || toastToUpdate.type; + if ( + Object.prototype.hasOwnProperty.call( + updatedFields, + "loader" + ) + ) { + toastToUpdate.loader = updatedFields.loader; + } + } + }, }, });