From d72ee98e8963134be8351bf54cf3f13055548e45 Mon Sep 17 00:00:00 2001 From: atamrakar Date: Thu, 1 Jan 2026 15:02:59 +0545 Subject: [PATCH 1/2] fix footer and removed one component --- src/layouts/components/Footer.vue | 6 ++++-- src/router/auth.router.ts | 5 ----- src/views/Components/ImageCropper.vue | 19 ------------------- 3 files changed, 4 insertions(+), 26 deletions(-) delete mode 100644 src/views/Components/ImageCropper.vue diff --git a/src/layouts/components/Footer.vue b/src/layouts/components/Footer.vue index d28e794..e2296ae 100644 --- a/src/layouts/components/Footer.vue +++ b/src/layouts/components/Footer.vue @@ -3,10 +3,12 @@
© - 2025, Mavorion Systems. All rights reserved. + {{ dateYear }}, Mavorion Systems. All rights reserved.
- + diff --git a/src/router/auth.router.ts b/src/router/auth.router.ts index 15b072d..7e14956 100644 --- a/src/router/auth.router.ts +++ b/src/router/auth.router.ts @@ -60,11 +60,6 @@ const authChildren: Array = [ name: "loader", component: () => import("@/views/Components/Loader.vue"), }, - { - path: "image-cropper", - name: "image-cropper", - component: () => import("@/views/Components/ImageCropper.vue"), - }, ], }, { diff --git a/src/views/Components/ImageCropper.vue b/src/views/Components/ImageCropper.vue deleted file mode 100644 index 86a4e80..0000000 --- a/src/views/Components/ImageCropper.vue +++ /dev/null @@ -1,19 +0,0 @@ - - - From 706e430d7b0cf27d10984e369c7fae92675f6124 Mon Sep 17 00:00:00 2001 From: atamrakar Date: Tue, 6 Jan 2026 15:50:54 +0545 Subject: [PATCH 2/2] fix for loader --- src/router/auth.router.ts | 5 ----- src/stores/App/loader.store.ts | 18 +++++++++++++---- src/stores/Auth/auth.store.ts | 28 ++++++++++++++++++++------- src/views/Auth/Login.vue | 18 +++++++++-------- src/views/Components/ImageCropper.vue | 19 ------------------ 5 files changed, 45 insertions(+), 43 deletions(-) delete mode 100644 src/views/Components/ImageCropper.vue diff --git a/src/router/auth.router.ts b/src/router/auth.router.ts index 15b072d..7e14956 100644 --- a/src/router/auth.router.ts +++ b/src/router/auth.router.ts @@ -60,11 +60,6 @@ const authChildren: Array = [ name: "loader", component: () => import("@/views/Components/Loader.vue"), }, - { - path: "image-cropper", - name: "image-cropper", - component: () => import("@/views/Components/ImageCropper.vue"), - }, ], }, { diff --git a/src/stores/App/loader.store.ts b/src/stores/App/loader.store.ts index e796612..6c83f87 100644 --- a/src/stores/App/loader.store.ts +++ b/src/stores/App/loader.store.ts @@ -2,18 +2,28 @@ import { defineStore } from "pinia"; export const useLoader = defineStore("loader", { state: () => ({ - loader: false, + loader: {} as Record, }), getters: { isLoading(state) { - return state.loader; + return (key: string): boolean => { + return state.loader[key] === true; + }; }, }, actions: { - setLoaderStatus(value: boolean) { - this.loader = value; + start(key: string) { + if (!key) return; + this.loader[key] = true; + }, + + stop(key: string) { + if (!key) return; + if (!(key in this.loader)) return; + + this.loader[key] = false; }, }, }); diff --git a/src/stores/Auth/auth.store.ts b/src/stores/Auth/auth.store.ts index 1b54994..8ba1807 100644 --- a/src/stores/Auth/auth.store.ts +++ b/src/stores/Auth/auth.store.ts @@ -10,59 +10,73 @@ export const useAuth = defineStore("auth", { loginDetails: {} as LoginDetails, isAuthenticated: false, user: {} as UserDetails, + loginError: false, }), getters: { getLoginDetails(state) { return state.loginDetails; }, + getLoginError(state) { + return state.loginError; + }, }, actions: { async login() { const loaderStore = useLoader(); - loaderStore.setLoaderStatus(true); + loaderStore.start("login"); await api .post(auth.login, this.loginDetails) .then(() => { - loaderStore.setLoaderStatus(false); + loaderStore.stop("login"); this.isAuthenticated = true; router.push({ name: "dashboard" }); }) .catch(() => { - loaderStore.setLoaderStatus(false); + loaderStore.stop("login"); this.isAuthenticated = false; + this.hasLoginError(); }); }, async getUser() { const loaderStore = useLoader(); - loaderStore.setLoaderStatus(true); + loaderStore.start("getUser"); await api .get(user.self) .then((e) => { this.user = e.data.data; - loaderStore.setLoaderStatus(false); + loaderStore.stop("getUser"); this.isAuthenticated = true; }) .catch(() => { this.user = {} as UserDetails; - loaderStore.setLoaderStatus(false); + loaderStore.stop("getUser"); this.isAuthenticated = false; }); }, async logout() { const loaderStore = useLoader(); - loaderStore.setLoaderStatus(true); + loaderStore.start("logout"); await api .post(auth.logout) .then(() => { this.isAuthenticated = false; router.push({ name: "login" }); + loaderStore.stop("logout"); }) .catch((e) => { console.log(e); }); }, + hasLoginError(status: boolean = true) { + if (status) { + this.loginError = true; + setTimeout(() => { + this.loginError = false; + }, 5000); + } + }, }, }); diff --git a/src/views/Auth/Login.vue b/src/views/Auth/Login.vue index 7cf776a..ccdb9ad 100644 --- a/src/views/Auth/Login.vue +++ b/src/views/Auth/Login.vue @@ -5,13 +5,16 @@
-
+

Sign In

Fill your detail to sign in to Dolphin PIS.
-
-
+
+
Sign In @@ -85,7 +88,7 @@
- © 2024 + © {{ dateYear }} Mavorion Systems . All rights reserved.
@@ -101,10 +104,9 @@ import { ref } from "vue"; const authStore = useAuth(); const loaderStore = useLoader(); -const { loginDetails } = storeToRefs(authStore); -const { isLoading } = storeToRefs(loaderStore); +const { loginDetails, getLoginError } = storeToRefs(authStore); const showPassword = ref(false); -const getLoginError = ""; +const dateYear = new Date().getFullYear(); diff --git a/src/views/Components/ImageCropper.vue b/src/views/Components/ImageCropper.vue deleted file mode 100644 index 86a4e80..0000000 --- a/src/views/Components/ImageCropper.vue +++ /dev/null @@ -1,19 +0,0 @@ - - -