diff --git a/app/(app)/products/[id]/sprint/page.tsx b/app/(app)/products/[id]/sprint/page.tsx index d58603c..3b16d5f 100644 --- a/app/(app)/products/[id]/sprint/page.tsx +++ b/app/(app)/products/[id]/sprint/page.tsx @@ -1,14 +1,15 @@ +import { Suspense } from 'react' import { notFound, redirect } from 'next/navigation' import { getSession } from '@/lib/auth' import { getAccessibleProduct } from '@/lib/product-access' -import { productAccessFilter } from '@/lib/product-access' import { prisma } from '@/lib/prisma' import { SprintBoardClient } from '@/components/sprint/sprint-board-client' import { SprintHeader } from '@/components/sprint/sprint-header' import type { SprintStory, PbiWithStories, ProductMember } from '@/components/sprint/sprint-backlog' import type { Task } from '@/components/sprint/task-list' import { TaskDialog } from '@/app/_components/tasks/task-dialog' -import type { TaskDialogTask } from '@/app/_components/tasks/task-dialog' +import { EditTaskLoader } from '@/app/_components/tasks/edit-task-loader' +import { TaskDialogSkeleton } from '@/app/_components/tasks/task-dialog-skeleton' import Link from 'next/link' interface Props { @@ -116,30 +117,6 @@ export default async function SprintBoardPage({ params, searchParams }: Props) { const isDemo = session.isDemo ?? false const closePath = `/products/${id}/sprint` - // Fetch task for edit mode (auth-scoped) - let editTaskData: TaskDialogTask | null = null - if (editTask) { - const t = await prisma.task.findFirst({ - where: { - id: editTask, - story: { product: productAccessFilter(session.userId) }, - }, - select: { - id: true, - title: true, - description: true, - implementation_plan: true, - priority: true, - status: true, - created_at: true, - }, - }) - if (!t) redirect(closePath) - editTaskData = t - } - - const showDialog = !!newTask || !!editTaskData - return (