From 8ce8d445ba5f06f99fb3d6a97abad0a701a232e2 Mon Sep 17 00:00:00 2001 From: kolaente Date: Thu, 11 Sep 2025 17:15:57 +0200 Subject: [PATCH] fix(kanban): guard task modal race conditions (#1472) --- frontend/src/composables/useRouteWithModal.ts | 8 +++-- frontend/src/views/tasks/TaskDetailView.vue | 31 ++++++++++++++++++- 2 files changed, 36 insertions(+), 3 deletions(-) diff --git a/frontend/src/composables/useRouteWithModal.ts b/frontend/src/composables/useRouteWithModal.ts index 9fc4605ff..594568924 100644 --- a/frontend/src/composables/useRouteWithModal.ts +++ b/frontend/src/composables/useRouteWithModal.ts @@ -1,4 +1,4 @@ -import {computed, h, shallowRef, type VNode, watchEffect} from 'vue' +import {computed, defineAsyncComponent, h, shallowRef, type VNode, watchEffect} from 'vue' import {useRoute, useRouter} from 'vue-router' import {useBaseStore} from '@/stores/base' import {useProjectStore} from '@/stores/projects' @@ -46,7 +46,11 @@ export function useRouteWithModal() { routeProps.backdropView = backdropView.value - const component = route.matched[0]?.components?.default + let component = route.matched[0]?.components?.default + + if (typeof component === 'function') { + component = defineAsyncComponent(component) + } if (!component) { currentModal.value = undefined diff --git a/frontend/src/views/tasks/TaskDetailView.vue b/frontend/src/views/tasks/TaskDetailView.vue index 04ae0d3fe..42373c4e0 100644 --- a/frontend/src/views/tasks/TaskDetailView.vue +++ b/frontend/src/views/tasks/TaskDetailView.vue @@ -589,7 +589,7 @@