From 61b3db195c99684d48f3f89c88be1b5cd89f99c5 Mon Sep 17 00:00:00 2001 From: Madhura68 Date: Mon, 4 May 2026 08:44:33 +0200 Subject: [PATCH] fix(solo): TaskDetailDialog body scrollt + sticky header/footer Story 6 zette entityDialogContentClasses op de buitenkant (flex flex-col p-0 gap-0 max-h-[85vh]) maar de binnenkant van TaskDetailContent gebruikte nog losse divs zonder shrink-0/flex-1 overflow-y-auto. Resultaat bij lange implementatieplannen: dialog groeide tot voorbij de viewport, header zat niet vast en footer-margin (-mx-4 -mb-4) brak omdat parent nu p-0 heeft. Fix: header in shrink-0 div met px-6 pt-5 pb-4 + border-b; body in entityDialogBodyClasses (flex-1 overflow-y-auto px-6 py-6 space-y-6); footer in entityDialogFooterClasses + flex-wrap voor de variabele job-status-knoppen. Plan-textarea krijgt max-h-[40vh] zodat een lang plan niet meteen heel het body-gebied opvult. Co-Authored-By: Claude Opus 4.7 (1M context) --- components/solo/task-detail-dialog.tsx | 144 +++++++++++++------------ 1 file changed, 75 insertions(+), 69 deletions(-) diff --git a/components/solo/task-detail-dialog.tsx b/components/solo/task-detail-dialog.tsx index 8abedc0..6037a01 100644 --- a/components/solo/task-detail-dialog.tsx +++ b/components/solo/task-detail-dialog.tsx @@ -4,8 +4,12 @@ import { useRef, useState, useTransition } from 'react' import Link from 'next/link' import { toast } from 'sonner' import { Markdown } from '@/components/markdown' -import { Dialog, DialogContent, DialogHeader, DialogTitle } from '@/components/ui/dialog' -import { entityDialogContentClasses } from '@/components/shared/entity-dialog-layout' +import { Dialog, DialogContent, DialogTitle } from '@/components/ui/dialog' +import { + entityDialogBodyClasses, + entityDialogContentClasses, + entityDialogFooterClasses, +} from '@/components/shared/entity-dialog-layout' import { Badge } from '@/components/ui/badge' import { Button } from '@/components/ui/button' import { Textarea } from '@/components/ui/textarea' @@ -182,8 +186,8 @@ function TaskDetailContent({ task, productId, isDemo, repoUrl, onClose }: TaskDe return ( <> - -
+
+
{task.title} @@ -200,78 +204,80 @@ function TaskDetailContent({ task, productId, isDemo, repoUrl, onClose }: TaskDe {task.story_code && {task.story_code}} {task.story_title}

- +
+ +
+ {task.description && ( +
+

Beschrijving

+ {task.description} +
+ )} - {task.description && (
-

Beschrijving

- {task.description} +

Implementatieplan

+ +