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" <div className="w-2 h-2 rounded-full shrink-0"
style={{ background: PRIORITY_COLORS[task.priority] || "#737373" }} style={{ background: PRIORITY_COLORS[task.priority] || "#737373" }}
title={task.priority} /> 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 && ( {task.assignee && (
<span className="text-xs text-[var(--muted)] ml-auto"> {task.assignee.slug}</span> <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 */} {/* Header */}
<div className="p-4 md:p-6 border-b border-[var(--border)]"> <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 ? ( {editingTitle ? (
<input <input
autoFocus autoFocus
@ -156,25 +177,6 @@ export default function TaskModal({ task, projectId: _projectId, projectSlug: _p
{title} {title}
</h2> </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>
</div> </div>