fix get resources after login
This commit is contained in:
1 parent
327f59104d
commit
9303a66aa8
9 files changed
+69
-12
No files matched your search
+26
-6
@@ -1,7 +1,7 @@
|
||||
<script setup lang="ts">
|
||||
import { useEventSource } from '@vueuse/core'
|
||||
import { storeToRefs } from 'pinia'
|
||||
import { computed, onMounted, watch } from 'vue'
|
||||
import { computed, watch } from 'vue'
|
||||
import { useRoute } from 'vue-router'
|
||||
import { useStatusStore } from '@/stores/status.ts'
|
||||
import { useIssueTypeStore } from '@/stores/issue-type.ts'
|
||||
@@ -25,7 +25,7 @@ interface IssueSseEvent {
|
||||
type: string
|
||||
}
|
||||
|
||||
const { data, event } = useEventSource<string[], IssueSseEvent>(
|
||||
const { event, open, close } = useEventSource<string[], IssueSseEvent>(
|
||||
`${window.location.origin}/api/issues/events`,
|
||||
['issue.created', 'issue.updated', 'issue.deleted'],
|
||||
{
|
||||
@@ -61,10 +61,30 @@ const layout = computed(() => {
|
||||
return layout ? `${layout}Layout` : 'DefaultLayout'
|
||||
})
|
||||
|
||||
onMounted(async () => {
|
||||
await Promise.all([statusStore.list(), issueTypeStore.list()])
|
||||
await issueStore.getStat(currentProjectId.value)
|
||||
})
|
||||
// Все эти ресурсы требуют авторизации: грузим при появлении сессии и чистим при выходе,
|
||||
// иначе запросы, ушедшие до логина, падают с 401 и больше не повторяются
|
||||
watch(
|
||||
() => session.value.data?.user.id,
|
||||
async (userId) => {
|
||||
if (!userId) {
|
||||
close()
|
||||
statusStore.reset()
|
||||
issueTypeStore.reset()
|
||||
issueStore.reset()
|
||||
projectStore.reset()
|
||||
return
|
||||
}
|
||||
|
||||
open()
|
||||
try {
|
||||
await Promise.all([statusStore.list(), issueTypeStore.list()])
|
||||
await issueStore.getStat(currentProjectId.value)
|
||||
} catch (e) {
|
||||
console.error('Failed to load dictionaries', e)
|
||||
}
|
||||
},
|
||||
{ immediate: true },
|
||||
)
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
||||
Reference in new issue
Block a user