Fix task modal: key above title, parent/child key on kanban

1. Task key + parent breadcrumb moved ABOVE title in modal header
2. Kanban cards show 'TE-1 / TE-3' for subtasks
3. Close button aligned with key row
This commit is contained in:
Markov 2026-02-28 00:24:07 +01:00
parent f28909524c
commit 3df1060970
2 changed files with 26 additions and 21 deletions

View File

@ -105,7 +105,10 @@ export default function KanbanBoard({ projectId, projectSlug }: Props) {
<div className="w-2 h-2 rounded-full shrink-0"
style={{ background: PRIORITY_COLORS[task.priority] || "#737373" }}
title={task.priority} />
<span className="text-xs text-[var(--muted)]">{prefix}-{task.number}</span>
<span className="text-xs text-[var(--muted)]">
{task.parent_key && <span>{task.parent_key} / </span>}
{prefix}-{task.number}
</span>
{task.assignee && (
<span className="text-xs text-[var(--muted)] ml-auto"> {task.assignee.slug}</span>
)}

View File

@ -132,7 +132,28 @@ export default function TaskModal({ task, projectId: _projectId, projectSlug: _p
>
{/* Header */}
<div className="p-4 md:p-6 border-b border-[var(--border)]">
<div className="flex items-start justify-between gap-2 mb-1">
<div className="flex items-center justify-between mb-1">
<div className="text-xs text-[var(--muted)]">
{task.parent_key && task.parent_id ? (
<span>
<button
onClick={() => { onClose(); setTimeout(() => onOpenTask?.(task.parent_id!), 100); }}
className="text-[var(--accent)] hover:underline"
>{task.parent_key}</button>
<span className="mx-1">/</span>
</span>
) : null}
{task.key}
</div>
<button
onClick={onClose}
className="text-[var(--muted)] hover:text-[var(--fg)] transition-colors text-xl leading-none cursor-pointer shrink-0"
title="Закрыть"
>
</button>
</div>
<div className="flex items-start gap-2">
{editingTitle ? (
<input
autoFocus
@ -156,25 +177,6 @@ export default function TaskModal({ task, projectId: _projectId, projectSlug: _p
{title}
</h2>
)}
<button
onClick={onClose}
className="text-[var(--muted)] hover:text-[var(--fg)] transition-colors text-xl leading-none cursor-pointer shrink-0 mt-1"
title="Закрыть"
>
</button>
</div>
<div className="text-xs text-[var(--muted)]">
{task.parent_key && task.parent_id ? (
<span>
<button
onClick={() => { onClose(); setTimeout(() => onOpenTask?.(task.parent_id!), 100); }}
className="text-[var(--accent)] hover:underline"
>{task.parent_key}</button>
<span className="mx-1">/</span>
</span>
) : null}
{task.key}
</div>
</div>