diff --git a/client/src/components/forms/LoginForm.vue b/client/src/components/forms/LoginForm.vue index d0b0af75ca002c4bdbdfa84dd8b16cba28a7695d..3a9f8f8f3829bfb3bd3b2e578b4346db04eb497e 100644 --- a/client/src/components/forms/LoginForm.vue +++ b/client/src/components/forms/LoginForm.vue @@ -46,8 +46,6 @@ async function onSubmit() { return } - waiting.value = true - const response = await api.login(state) if (response?.status === ResponseStatus.Success) { @@ -56,13 +54,13 @@ async function onSubmit() { session.setUser({ role: payload.role, userId: payload.userId }, true) - waiting.value = false - if (payload.role === 'administrator') { + waiting.value = true router.push({ name: 'buildings' }) } else if (payload.role === 'user') { + waiting.value = true router.push({ name: 'apartments' }) @@ -95,7 +93,10 @@ async function onSubmit() { </div> <div class="form-section"> <MessageBox v-if="message || props.msg" :msg="message || props.msg" :type="props.msg ? 'warning' : 'danger'" /> - <button class="button primary" type="submit" :disabled="waiting">Anmelden</button> + <button class="button primary" type="submit" :disabled="waiting"> + <span v-if="!waiting">Anmelden</span> + <font-awesome-icon v-else icon="fa-solid fa-spinner" /> + </button> </div> </form> <div class="section center"> diff --git a/client/src/main.js b/client/src/main.js index 450d8916b14624268a96b75ff4c1421e2cffdaff..0592689c7f3d11335399efd3f1e25374a834a9bc 100644 --- a/client/src/main.js +++ b/client/src/main.js @@ -2,7 +2,7 @@ import { createApp } from 'vue' import { createPinia } from 'pinia' import { library } from '@fortawesome/fontawesome-svg-core' import { faBell } from '@fortawesome/free-regular-svg-icons' -import { faArrowRightFromBracket, faBars, faChevronDown, faChevronUp, faPen, faPlus, faXmark } from '@fortawesome/free-solid-svg-icons' +import { faArrowRightFromBracket, faBars, faChevronDown, faChevronUp, faPen, faPlus, faSpinner, faXmark } from '@fortawesome/free-solid-svg-icons' import { FontAwesomeIcon } from '@fortawesome/vue-fontawesome' import App from './App.vue' @@ -10,7 +10,7 @@ import router from './router' import './assets/main.css' -library.add(faArrowRightFromBracket, faBars, faBell, faChevronDown, faChevronUp, faPen, faPlus, faXmark) +library.add(faArrowRightFromBracket, faBars, faBell, faChevronDown, faChevronUp, faPen, faPlus, faSpinner, faXmark) const app = createApp(App)