flaschengeist-frontend/src/plugins/user/pages/Settings.vue

69 lines
1.9 KiB
Vue
Raw Normal View History

2020-10-16 06:45:40 +00:00
<template>
<div>
<q-page
padding
class="fit row justify-center content-center items-center q-gutter-sm"
>
<circular-progress v-if="sessionsLoading" />
<q-card class="col-12">
<q-card-section
class="fit row justify-start content-center items-center"
>
<div class="col-12 text-center text-h6">Benutzereinstellungen</div>
</q-card-section>
<MainUserSettings :user="currentUser" @update:user="updateUser" />
</q-card>
<div class="col-12 text-left text-h6">Aktive Sessions:</div>
<sessions
v-for="(session, index) in sessions"
:key="'session' + index"
:session="session"
/>
2020-10-16 06:45:40 +00:00
</q-page>
</div>
</template>
<script lang="ts">
import {
computed,
defineComponent,
onBeforeMount,
ref
} from '@vue/composition-api';
import CircularProgress from 'components/loading/CircularProgress.vue';
import Sessions from '../components/settings/Sessions.vue';
import MainUserSettings from '../components/settings/MainUserSettings.vue';
import { Store } from 'vuex';
import { StateInterface } from 'src/store';
2020-10-16 06:45:40 +00:00
export default defineComponent({
// name: 'PageName'
components: { CircularProgress, Sessions, MainUserSettings },
2020-10-16 11:07:31 +00:00
setup(_, { root }) {
const store = <Store<StateInterface>>root.$store;
2020-10-16 11:07:31 +00:00
onBeforeMount(() => {
store.dispatch('session/getSessions').catch(error => {
2020-10-28 23:12:46 +00:00
console.warn(error);
});
2020-10-16 11:07:31 +00:00
});
const currentUser = ref(<FG.User>store.state.user.currentUser);
const sessions = computed(() => store.state.session.sessions);
const sessionsLoading = computed(() => store.state.session.loading);
function updateUser(value: FG.User) {
store.dispatch('user/updateUser', value).catch(error => {
console.warn(error);
});
}
2020-10-16 11:07:31 +00:00
return {
currentUser,
sessionsLoading,
sessions,
updateUser
2020-10-16 11:07:31 +00:00
};
2020-10-16 06:45:40 +00:00
}
});
</script>