From 3cd08d7daff83cb73e8d5c67f0705ab58cbecf69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20P=C4=99dzich?= Date: Fri, 26 May 2023 12:25:02 +0200 Subject: [PATCH] Create snackbar component and composable --- src/components/ui/Snackbar.vue | 12 ++++++++++++ src/composables/useSnackbar.ts | 22 ++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 src/components/ui/Snackbar.vue create mode 100644 src/composables/useSnackbar.ts diff --git a/src/components/ui/Snackbar.vue b/src/components/ui/Snackbar.vue new file mode 100644 index 0000000..9eb3fad --- /dev/null +++ b/src/components/ui/Snackbar.vue @@ -0,0 +1,12 @@ + + + diff --git a/src/composables/useSnackbar.ts b/src/composables/useSnackbar.ts new file mode 100644 index 0000000..3019189 --- /dev/null +++ b/src/composables/useSnackbar.ts @@ -0,0 +1,22 @@ +import { reactive, toRefs } from 'vue'; + +interface Snackbar { + visible: boolean; + color: '' | 'error' | 'success'; + title: string; + message: string; +} + +const snackbar = reactive({ + color: '', + title: '', + message: '', + visible: false +}); + +export function useSnackbar() { + const showSnackbar = (options: Omit) => + Object.assign(snackbar, { ...options, visible: true }); + + return { ...toRefs(snackbar), showSnackbar }; +}