mirror of
https://github.com/Bubka/2FAuth.git
synced 2025-08-10 22:23:53 +02:00
Set up a global notification handler & Error view & Modal component
This commit is contained in:
67
resources/js_vue3/stores/notify.js
vendored
Normal file
67
resources/js_vue3/stores/notify.js
vendored
Normal file
@ -0,0 +1,67 @@
|
||||
import { defineStore } from 'pinia'
|
||||
import router from '@/router'
|
||||
const { notify } = useNotification()
|
||||
|
||||
export const useNotifyStore = defineStore({
|
||||
id: 'notify',
|
||||
|
||||
state: () => {
|
||||
return {
|
||||
err: null,
|
||||
message: null,
|
||||
originalMessage: null,
|
||||
debug: null,
|
||||
}
|
||||
},
|
||||
|
||||
getters: {
|
||||
},
|
||||
|
||||
actions: {
|
||||
parseError(err) {
|
||||
this.$reset
|
||||
this.err = err
|
||||
|
||||
// Hnalde axios response error
|
||||
if (err.response) {
|
||||
if (err.response.status === 407) {
|
||||
this.message = trans('errors.auth_proxy_failed'),
|
||||
this.originalMessage = trans('errors.auth_proxy_failed_legend')
|
||||
}
|
||||
else if (err.response.status === 403) {
|
||||
this.message = trans('errors.unauthorized'),
|
||||
this.originalMessage = trans('errors.unauthorized_legend')
|
||||
}
|
||||
else if(err.response.data) {
|
||||
this.message = err.response.data.message,
|
||||
this.originalMessage = err.response.data.originalMessage ?? null
|
||||
this.debug = err.response.data.debug ?? null
|
||||
}
|
||||
} else {
|
||||
this.message = err.message
|
||||
this.debug = err.stack ?? null
|
||||
}
|
||||
// else if (err.request) {
|
||||
|
||||
//
|
||||
},
|
||||
|
||||
error(err) {
|
||||
this.parseError(err)
|
||||
router.push({ name: 'genericError' })
|
||||
},
|
||||
|
||||
info(notification) {
|
||||
notify({ type: 'is-success', ...notification})
|
||||
},
|
||||
|
||||
warn(notification) {
|
||||
notify({ type: 'is-warning', ...notification})
|
||||
},
|
||||
|
||||
alert(notification) {
|
||||
notify({ type: 'is-danger', ...notification})
|
||||
},
|
||||
|
||||
},
|
||||
})
|
Reference in New Issue
Block a user