Enable the Vue 3 front-end

This commit is contained in:
Bubka
2023-12-01 15:29:26 +01:00
parent ffde1723d4
commit 9efb54adf4
146 changed files with 2000 additions and 9387 deletions

83
resources/js/stores/notify.js vendored Normal file
View File

@ -0,0 +1,83 @@
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) {
//
},
notFound(err) {
router.push({ name: '404' })
},
error(err) {
this.parseError(err)
router.push({ name: 'genericError' })
},
info(notification) {
notify({ type: 'is-info', ...notification})
},
success(notification) {
notify({ type: 'is-success', ...notification})
},
warn(notification) {
notify({ type: 'is-warning', ...notification})
},
alert(notification) {
notify({ type: 'is-danger', ...notification})
},
action(notification) {
notify({ type: 'is-dark', ...notification})
},
clear() {
notify({ clean: true })
}
},
})