diff --git a/src/plugins/user/components/settings/MainUserSettings.vue b/src/plugins/user/components/settings/MainUserSettings.vue index 2e47cd8..dd6933b 100644 --- a/src/plugins/user/components/settings/MainUserSettings.vue +++ b/src/plugins/user/components/settings/MainUserSettings.vue @@ -207,10 +207,16 @@ export default defineComponent({ emit('update:user', changed); if (avatar.value != '') - void store.dispatch('user/uploadAvatar', { - user: changed, - file: avatar.value, - }); + store + .dispatch('user/uploadAvatar', { + user: changed, + file: avatar.value, + }) + .catch((response: Response) => { + if (response && response.status == 400) { + onAvatarRejected(); + } + }); } function reset() { diff --git a/src/plugins/user/store/user.ts b/src/plugins/user/store/user.ts index d4bb791..80f252f 100644 --- a/src/plugins/user/store/user.ts +++ b/src/plugins/user/store/user.ts @@ -1,7 +1,7 @@ import { Module, MutationTree, ActionTree, GetterTree } from 'vuex'; import { StateInterface } from 'src/store'; import { axios } from 'boot/axios'; -import { AxiosResponse } from 'axios'; +import { AxiosError, AxiosResponse } from 'axios'; import { SessionStorage } from 'quasar'; import { CurrentUserResponse } from 'src/plugins/user/models'; @@ -129,6 +129,9 @@ const actions: ActionTree = { 'Content-Type': 'multipart/form-data' } }) + .catch((error: AxiosError) => { + return Promise.reject(error.response); + }) .finally(() => { commit('setLoading', false); });