diff --git a/ui/src/components/Snackbar/SnackbarNew.vue b/ui/src/components/Snackbar/SnackbarNew.vue
index add6914e8e0..6d9f7e64c6c 100644
--- a/ui/src/components/Snackbar/SnackbarNew.vue
+++ b/ui/src/components/Snackbar/SnackbarNew.vue
@@ -3,27 +3,20 @@
v-model="show"
location="top"
:timeout="4000"
- :color="type"
- ransition="slide-x-transition"
+ :color="color"
+ transition="slide-x-transition"
>
- {{ message }}
+
{{ message }}
diff --git a/ui/src/helpers/snackbar.ts b/ui/src/helpers/snackbar.ts
index 8426669e557..4d594e53762 100644
--- a/ui/src/helpers/snackbar.ts
+++ b/ui/src/helpers/snackbar.ts
@@ -1,8 +1,6 @@
import { inject } from "vue";
-import { PluginInterface, InjectionKey } from "@/plugins/snackbar";
+import { InjectionKey, type ISnackbarPlugin } from "@/plugins/snackbar";
-function useSnackbar(): PluginInterface {
- return inject(InjectionKey) as PluginInterface;
-}
+const useSnackbar = (): ISnackbarPlugin => inject(InjectionKey) as ISnackbarPlugin;
export default useSnackbar;
diff --git a/ui/src/layouts/AppLayout.vue b/ui/src/layouts/AppLayout.vue
index 56ad74d04c9..7b04a336047 100644
--- a/ui/src/layouts/AppLayout.vue
+++ b/ui/src/layouts/AppLayout.vue
@@ -118,6 +118,7 @@
+
@@ -164,6 +165,7 @@ import Namespace from "@/components/Namespace/Namespace.vue";
import AppBar from "../components/AppBar/AppBar.vue";
import QuickConnection from "../components/QuickConnection/QuickConnection.vue";
import NamespaceAdd from "@/components/Namespace/NamespaceAdd.vue";
+import SnackbarNew from "@/components/Snackbar/SnackbarNew.vue";
import Snackbar from "@/components/Snackbar/Snackbar.vue";
const router = useRouter();
diff --git a/ui/src/plugins/snackbar.ts b/ui/src/plugins/snackbar.ts
index fa5fadf4725..b2c9c372ab0 100644
--- a/ui/src/plugins/snackbar.ts
+++ b/ui/src/plugins/snackbar.ts
@@ -1,35 +1,56 @@
-import { App, Plugin } from "vue";
+import { App, Plugin, reactive } from "vue";
-const InjectionKey = "snackbar";
+const InjectionKey = Symbol("snackbar");
-interface PluginInterface {
- showInfo(message: string);
- showSuccess(message: string);
- showWarning(message: string);
- showError(message: string);
+type SnackbarType = "success" | "error" | "info" | "warning";
+
+interface SnackbarState {
+ message: string;
+ type: SnackbarType;
+ show: boolean;
+}
+
+interface ISnackbarPlugin {
+ showSuccess: (msg: string) => void;
+ showError: (msg: string) => void;
+ showInfo: (msg: string) => void;
+ showWarning: (msg: string) => void;
+ getMessage: () => string;
+ getType: () => SnackbarType;
+ getShow: () => boolean;
}
+const state = reactive({
+ message: "",
+ type: "info",
+ show: false,
+});
+
+const showSnackbar = (type: SnackbarType, message: string) => {
+ state.message = message;
+ state.type = type;
+ state.show = true;
+
+ setTimeout(() => {
+ state.show = false;
+ }, 4000);
+};
+
+const plugin: ISnackbarPlugin = {
+ showSuccess: (msg: string) => showSnackbar("success", msg),
+ showError: (msg: string) => showSnackbar("error", msg),
+ showInfo: (msg: string) => showSnackbar("info", msg),
+ showWarning: (msg: string) => showSnackbar("warning", msg),
+ getMessage: () => state.message,
+ getType: () => state.type,
+ getShow: () => state.show,
+};
+
const SnackbarPlugin: Plugin = {
install(app: App) {
- const store = app.config.globalProperties.$store;
-
- const plugin = {
- showInfo(message: string) {
- store.commit("snackbar/showMessage", { type: "info", message });
- },
- showSuccess(message: string) {
- store.commit("snackbar/showMessage", { type: "success", message });
- },
- showWarning(message: string) {
- store.commit("snackbar/showMessage", { type: "warning", message });
- },
- showError(message: string) {
- store.commit("snackbar/showMessage", { type: "error", message });
- },
- } as PluginInterface;
-
app.provide(InjectionKey, plugin);
},
};
-export { InjectionKey, type PluginInterface, SnackbarPlugin };
+export { SnackbarPlugin, InjectionKey, plugin };
+export type { SnackbarState, ISnackbarPlugin };
diff --git a/ui/src/store/modules/snackbar.ts b/ui/src/store/modules/snackbar.ts
index c9d688e86a0..6d1112ac3fd 100755
--- a/ui/src/store/modules/snackbar.ts
+++ b/ui/src/store/modules/snackbar.ts
@@ -47,19 +47,6 @@ export const snackbar: Module = {
state.snackbarSuccess = true;
},
- setSnackbarNoContent: (state, data) => {
- state.snackbarMessageAndContentType = data;
- state.snackbarSuccess = true;
- },
-
- setSnackbarSuccessDefault: (state) => {
- state.snackbarMessageAndContentType = {
- typeMessage: "default",
- typeContent: "",
- };
- state.snackbarSuccess = true;
- },
-
unsetSnackbarSuccess: (state) => {
state.snackbarSuccess = false;
},
@@ -82,11 +69,6 @@ export const snackbar: Module = {
state.snackbarError = true;
},
- setSnackbarErrorLicense: (state, data) => {
- state.snackbarMessageAndContentType = data;
- state.snackbarError = true;
- },
-
unsetSnackbarError: (state) => {
state.snackbarError = false;
},
@@ -99,11 +81,6 @@ export const snackbar: Module = {
state.snackbarCopy = true;
},
- setSnackbarErrorIncorrect: (state, data) => {
- state.snackbarMessageAndContentType = data;
- state.snackbarError = true;
- },
-
unsetSnackbarCopy: (state) => {
state.snackbarCopy = false;
},
@@ -118,10 +95,6 @@ export const snackbar: Module = {
commit("setSnackbarSuccessAction", data);
},
- showSnackbarSuccessDefault: ({ commit }) => {
- commit("setSnackbarSuccessDefault");
- },
-
unsetShowStatusSnackbarSuccess: ({ commit }) => {
commit("unsetSnackbarSuccess");
},
@@ -142,14 +115,6 @@ export const snackbar: Module = {
commit("setSnackbarErrorLoadingOrAction", data);
},
- showSnackbarNoContent: ({ commit }) => {
- const data = {
- typeMessage: "no-content",
- typeContent: "",
- };
- commit("setSnackbarNoContent", data);
- },
-
showSnackbarErrorAction: ({ commit }, value) => {
const data = {
typeMessage: "action",
@@ -158,14 +123,6 @@ export const snackbar: Module = {
commit("setSnackbarErrorLoadingOrAction", data);
},
- showSnackbarErrorLicense: ({ commit }, value) => {
- const data = {
- typeMessage: "licenseRequired",
- typeContent: value,
- };
- commit("setSnackbarErrorLicense", data);
- },
-
showSnackbarErrorDefault: ({ commit }) => {
commit("setSnackbarErrorDefault");
},
@@ -181,13 +138,5 @@ export const snackbar: Module = {
unsetShowStatusSnackbarCopy: ({ commit }) => {
commit("unsetSnackbarCopy");
},
-
- showSnackbarErrorIncorrect: (context, value) => {
- const data = {
- typeMessage: "incorrect",
- typeContent: value,
- };
- context.commit("setSnackbarErrorIncorrect", data);
- },
},
};
diff --git a/ui/tests/layouts/__snapshots__/AppLayout.spec.ts.snap b/ui/tests/layouts/__snapshots__/AppLayout.spec.ts.snap
index d9ba85eca06..697cb4ee0c0 100644
--- a/ui/tests/layouts/__snapshots__/AppLayout.spec.ts.snap
+++ b/ui/tests/layouts/__snapshots__/AppLayout.spec.ts.snap
@@ -246,6 +246,8 @@ exports[`App Layout Component > Renders the component 1`] = `
+
+