<template> <q-card style="text-align: center"> <q-card-section> <div class="text-h6">Gerücht: {{ balance.toFixed(2) }} €</div> </q-card-section> </q-card> </template> <script lang="ts"> import { computed, defineComponent, onBeforeMount } from 'vue'; import { UserBalance } from 'src/plugins/balance/store/balance'; import { mapGetters, useStore } from 'vuex'; import { StateInterface } from 'src/store'; export default defineComponent({ name: 'BalanceWidget', setup() { const store = useStore<StateInterface>(); const balanceGetters = mapGetters('balance', ['balances']); const userGetters = mapGetters('users', ['currentUser']); onBeforeMount(() => { store.dispatch('balance/getBalance').catch((err) => { console.warn(err); }); }); const balance = computed( () => (<Map<string, UserBalance>>balanceGetters.balances()).get( (<FG.User>userGetters.currentUser()).userid )?.balance || NaN ); return { balance }; }, }); </script>