feat: rework loading state of stores
This commit is contained in:
@ -79,17 +79,15 @@ import {getNamespaceTitle} from '@/helpers/getNamespaceTitle'
|
||||
import {useTitle} from '@/composables/useTitle'
|
||||
import {useStorage} from '@vueuse/core'
|
||||
|
||||
import {useBaseStore} from '@/stores/base'
|
||||
import {useNamespaceStore} from '@/stores/namespaces'
|
||||
|
||||
const {t} = useI18n()
|
||||
const baseStore = useBaseStore()
|
||||
const namespaceStore = useNamespaceStore()
|
||||
|
||||
useTitle(() => t('namespace.title'))
|
||||
const showArchived = useStorage('showArchived', false)
|
||||
|
||||
const loading = computed(() => baseStore.loading) // FIXME: shouldn't this reference the namespace store?
|
||||
const loading = computed(() => namespaceStore.isLoading)
|
||||
const namespaces = computed(() => {
|
||||
return namespaceStore.namespaces.filter(n => showArchived.value ? true : !n.isArchived)
|
||||
// return namespaceStore.namespaces.filter(n => showArchived.value ? true : !n.isArchived).map(n => {
|
||||
|
@ -114,7 +114,6 @@ import {getLastVisited, clearLastVisited} from '../../helpers/saveLastVisited'
|
||||
import Password from '@/components/input/password.vue'
|
||||
import {setTitle} from '@/helpers/setTitle'
|
||||
|
||||
import {useBaseStore} from '@/stores/base'
|
||||
import {useConfigStore} from '@/stores/config'
|
||||
import {useAuthStore} from '@/stores/auth'
|
||||
|
||||
@ -172,13 +171,11 @@ export default defineComponent({
|
||||
hasOpenIdProviders() {
|
||||
return this.openidConnect.enabled && this.openidConnect.providers?.length > 0
|
||||
},
|
||||
...mapState(useBaseStore, {
|
||||
isLoading: state => state.loading,
|
||||
}),
|
||||
|
||||
...mapState(useAuthStore, {
|
||||
needsTotpPasscode: state => state.needsTotpPasscode,
|
||||
authenticated: state => state.authenticated,
|
||||
isLoading: state => state.isLoading,
|
||||
}),
|
||||
|
||||
...mapState(useConfigStore, {
|
||||
@ -195,16 +192,6 @@ export default defineComponent({
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
setLoading() {
|
||||
const timeout = setTimeout(() => {
|
||||
this.isLoading = true
|
||||
}, 100)
|
||||
return () => {
|
||||
clearTimeout(timeout)
|
||||
this.isLoading = false
|
||||
}
|
||||
},
|
||||
|
||||
async submit() {
|
||||
this.errorMessage = ''
|
||||
// Some browsers prevent Vue bindings from working with autofilled values.
|
||||
|
@ -22,7 +22,6 @@ import {getErrorText} from '@/message'
|
||||
import Message from '@/components/misc/message.vue'
|
||||
import {clearLastVisited, getLastVisited} from '@/helpers/saveLastVisited'
|
||||
|
||||
import {useBaseStore} from '@/stores/base'
|
||||
import {useAuthStore} from '@/stores/auth'
|
||||
|
||||
const {t} = useI18n({useScope: 'global'})
|
||||
@ -30,10 +29,9 @@ const {t} = useI18n({useScope: 'global'})
|
||||
const router = useRouter()
|
||||
const route = useRoute()
|
||||
|
||||
const baseStore = useBaseStore()
|
||||
const authStore = useAuthStore()
|
||||
|
||||
const loading = computed(() => baseStore.loading)
|
||||
const loading = computed(() => authStore.isLoading)
|
||||
const errorMessage = ref('')
|
||||
|
||||
async function authenticateWithCode() {
|
||||
|
@ -77,10 +77,8 @@ import Message from '@/components/misc/message.vue'
|
||||
import {isEmail} from '@/helpers/isEmail'
|
||||
import Password from '@/components/input/password.vue'
|
||||
|
||||
import {useBaseStore} from '@/stores/base'
|
||||
import {useAuthStore} from '@/stores/auth'
|
||||
|
||||
const baseStore = useBaseStore()
|
||||
const authStore = useAuthStore()
|
||||
|
||||
// FIXME: use the `beforeEnter` hook of vue-router
|
||||
@ -97,7 +95,7 @@ const credentials = reactive({
|
||||
password: '',
|
||||
})
|
||||
|
||||
const isLoading = computed(() => baseStore.loading)
|
||||
const isLoading = computed(() => authStore.isLoading)
|
||||
const errorMessage = ref('')
|
||||
const validatePasswordInitially = ref(false)
|
||||
|
||||
|
@ -147,13 +147,7 @@
|
||||
</template>
|
||||
|
||||
<script lang="ts">
|
||||
import {defineComponent} from 'vue'
|
||||
import { useListStore } from '@/stores/lists'
|
||||
import { useAuthStore } from '@/stores/auth'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'user-settings-general',
|
||||
})
|
||||
export default {name: 'user-settings-general'}
|
||||
</script>
|
||||
|
||||
<script setup lang="ts">
|
||||
@ -168,14 +162,15 @@ import {availableLanguages} from '@/i18n'
|
||||
import {playSoundWhenDoneKey, playPopSound} from '@/helpers/playPop'
|
||||
import {getQuickAddMagicMode, setQuickAddMagicMode} from '@/helpers/quickAddMagicMode'
|
||||
import {createRandomID} from '@/helpers/randomId'
|
||||
import {objectIsEmpty} from '@/helpers/objectIsEmpty'
|
||||
import {success} from '@/message'
|
||||
import {AuthenticatedHTTPFactory} from '@/http-common'
|
||||
|
||||
import {useBaseStore} from '@/stores/base'
|
||||
|
||||
import {useColorScheme} from '@/composables/useColorScheme'
|
||||
import {useTitle} from '@/composables/useTitle'
|
||||
import {objectIsEmpty} from '@/helpers/objectIsEmpty'
|
||||
|
||||
import {useListStore} from '@/stores/lists'
|
||||
import {useAuthStore} from '@/stores/auth'
|
||||
|
||||
const {t} = useI18n({useScope: 'global'})
|
||||
useTitle(() => `${t('user.settings.general.title')} - ${t('user.settings.title')}`)
|
||||
@ -228,7 +223,6 @@ function getPlaySoundWhenDoneSetting() {
|
||||
const playSoundWhenDone = ref(getPlaySoundWhenDoneSetting())
|
||||
const quickAddMagicMode = ref(getQuickAddMagicMode())
|
||||
|
||||
const baseStore = useBaseStore()
|
||||
const authStore = useAuthStore()
|
||||
const settings = ref({...authStore.settings})
|
||||
const id = ref(createRandomID())
|
||||
@ -257,7 +251,7 @@ const defaultList = computed({
|
||||
settings.value.defaultListId = l ? l.id : DEFAULT_LIST_ID
|
||||
},
|
||||
})
|
||||
const loading = computed(() => baseStore.loading && baseStore.loadingModule === 'general-settings')
|
||||
const loading = computed(() => authStore.isLoadingGeneralSettings)
|
||||
|
||||
watch(
|
||||
playSoundWhenDone,
|
||||
|
Reference in New Issue
Block a user