Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | 1x 19x 19x 15x 4x 2x 2x 5x 5x 2x 2x 2x 2x 2x 2x 1x 2x 2x 2x | import { AUTH_ERROR_TYPES } from '../../utils/errorUtils';
import { NOTIF_ACT, NOTIF_GET, NOTIF_MUT } from '../types';
export default {
namespaced: true,
state() {
return {
notification: null, // { severity: 'error', message: '...', closable: true }
isAuthError: false, // Flag to track if current error is auth-related
};
},
mutations: {
[NOTIF_MUT.setNotification](state, payload) {
state.notification = payload;
if (payload && payload.severity === 'error') {
state.isAuthError = AUTH_ERROR_TYPES.includes(payload.type);
} else {
state.isAuthError = false;
}
},
[NOTIF_MUT.clearNotification](state) {
state.notification = null;
state.isAuthError = false;
},
},
actions: {
[NOTIF_ACT.showError]({ commit }, payload) {
const notification = {
severity: 'error',
message: typeof payload === 'string' ? payload : payload.message,
closable: payload.closable !== false, // Default true
type: payload.type || 'error', // Add error type
...payload,
};
commit(NOTIF_MUT.setNotification, notification);
},
[NOTIF_ACT.showSuccess]({ commit }, payload) {
const notification = {
severity: 'success',
message: typeof payload === 'string' ? payload : payload.message,
closable: payload.closable !== false,
...payload,
};
commit(NOTIF_MUT.setNotification, notification);
},
[NOTIF_ACT.showWarning]({ commit }, payload) {
const notification = {
severity: 'warning',
message: typeof payload === 'string' ? payload : payload.message,
closable: payload.closable !== false,
...payload,
};
commit(NOTIF_MUT.setNotification, notification);
},
[NOTIF_ACT.showInfo]({ commit }, payload) {
const notification = {
severity: 'info',
message: typeof payload === 'string' ? payload : payload.message,
closable: payload.closable !== false,
...payload,
};
commit(NOTIF_MUT.setNotification, notification);
},
[NOTIF_ACT.clear]({ commit }) {
commit(NOTIF_MUT.clearNotification);
},
},
getters: {
[NOTIF_GET.notification]: (state) => state.notification,
[NOTIF_GET.hasNotification]: (state) => !!state.notification,
[NOTIF_GET.isAuthError]: (state) => state.isAuthError,
},
};
|