mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-02-05 09:33:07 +00:00
refactor(kanban): enhance layout and overflow handling in KanbanCard component
- Updated CardHeader to use a block layout and added conditional padding for better spacing. - Modified title and description elements to handle overflow, ensuring text remains within bounds. - Improved agent info panel layout with flex-wrap for better responsiveness. - Enhanced summary section with overflow handling and consistent spacing for a cleaner UI. These changes improve the overall presentation and usability of the KanbanCard component.
This commit is contained in:
@@ -246,7 +246,13 @@ export function KanbanCard({
|
|||||||
<span>Errored</span>
|
<span>Errored</span>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
<CardHeader className="p-3 pb-2">
|
<CardHeader
|
||||||
|
className={cn(
|
||||||
|
"p-3 pb-2 block", // Reset grid layout to block for custom kanban card layout
|
||||||
|
// Add extra top padding when badges are present to prevent text overlap
|
||||||
|
(feature.skipTests || feature.error || shortcutKey) && "pt-10"
|
||||||
|
)}
|
||||||
|
>
|
||||||
{isCurrentAutoTask && (
|
{isCurrentAutoTask && (
|
||||||
<div className="absolute top-2 right-2 flex items-center justify-center gap-2 bg-running-indicator/20 border border-running-indicator rounded px-2 py-0.5">
|
<div className="absolute top-2 right-2 flex items-center justify-center gap-2 bg-running-indicator/20 border border-running-indicator rounded px-2 py-0.5">
|
||||||
<Loader2 className="w-4 h-4 text-running-indicator animate-spin" />
|
<Loader2 className="w-4 h-4 text-running-indicator animate-spin" />
|
||||||
@@ -320,8 +326,8 @@ export function KanbanCard({
|
|||||||
<GripVertical className="w-4 h-4 text-muted-foreground" />
|
<GripVertical className="w-4 h-4 text-muted-foreground" />
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
<div className="flex-1 min-w-0">
|
<div className="flex-1 min-w-0 overflow-hidden">
|
||||||
<CardTitle className="text-sm leading-tight break-words hyphens-auto line-clamp-3">
|
<CardTitle className="text-sm leading-tight break-words hyphens-auto line-clamp-3 overflow-hidden">
|
||||||
{feature.description}
|
{feature.description}
|
||||||
</CardTitle>
|
</CardTitle>
|
||||||
<CardDescription className="text-xs mt-1 truncate">
|
<CardDescription className="text-xs mt-1 truncate">
|
||||||
@@ -358,9 +364,9 @@ export function KanbanCard({
|
|||||||
{/* Agent Info Panel - shows for in_progress, waiting_approval, verified */}
|
{/* Agent Info Panel - shows for in_progress, waiting_approval, verified */}
|
||||||
{/* Detailed mode: Show all agent info */}
|
{/* Detailed mode: Show all agent info */}
|
||||||
{showAgentInfo && feature.status !== "backlog" && agentInfo && (
|
{showAgentInfo && feature.status !== "backlog" && agentInfo && (
|
||||||
<div className="mb-3 space-y-2">
|
<div className="mb-3 space-y-2 overflow-hidden">
|
||||||
{/* Model & Phase */}
|
{/* Model & Phase */}
|
||||||
<div className="flex items-center gap-2 text-xs">
|
<div className="flex items-center gap-2 text-xs flex-wrap">
|
||||||
<div className="flex items-center gap-1 text-cyan-400">
|
<div className="flex items-center gap-1 text-cyan-400">
|
||||||
<Cpu className="w-3 h-3" />
|
<Cpu className="w-3 h-3" />
|
||||||
<span className="font-medium">
|
<span className="font-medium">
|
||||||
@@ -437,25 +443,25 @@ export function KanbanCard({
|
|||||||
feature.status === "verified") && (
|
feature.status === "verified") && (
|
||||||
<>
|
<>
|
||||||
{(feature.summary || summary || agentInfo.summary) && (
|
{(feature.summary || summary || agentInfo.summary) && (
|
||||||
<div className="space-y-1 pt-1 border-t border-border-glass">
|
<div className="space-y-1 pt-1 border-t border-border-glass overflow-hidden">
|
||||||
<div className="flex items-center justify-between">
|
<div className="flex items-center justify-between gap-2">
|
||||||
<div className="flex items-center gap-1 text-[10px] text-green-400">
|
<div className="flex items-center gap-1 text-[10px] text-green-400 min-w-0">
|
||||||
<Sparkles className="w-3 h-3" />
|
<Sparkles className="w-3 h-3 shrink-0" />
|
||||||
<span>Summary</span>
|
<span className="truncate">Summary</span>
|
||||||
</div>
|
</div>
|
||||||
<button
|
<button
|
||||||
onClick={(e) => {
|
onClick={(e) => {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
setIsSummaryDialogOpen(true);
|
setIsSummaryDialogOpen(true);
|
||||||
}}
|
}}
|
||||||
className="p-0.5 rounded hover:bg-accent transition-colors text-muted-foreground hover:text-foreground"
|
className="p-0.5 rounded hover:bg-accent transition-colors text-muted-foreground hover:text-foreground shrink-0"
|
||||||
title="View full summary"
|
title="View full summary"
|
||||||
data-testid={`expand-summary-${feature.id}`}
|
data-testid={`expand-summary-${feature.id}`}
|
||||||
>
|
>
|
||||||
<Expand className="w-3 h-3" />
|
<Expand className="w-3 h-3" />
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<p className="text-[10px] text-foreground-secondary line-clamp-3 break-words hyphens-auto leading-relaxed">
|
<p className="text-[10px] text-foreground-secondary line-clamp-3 break-words hyphens-auto leading-relaxed overflow-hidden">
|
||||||
{feature.summary || summary || agentInfo.summary}
|
{feature.summary || summary || agentInfo.summary}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user