feat(detail): drop "ACTIVE LIST" / "TASK MANAGER" eyebrow; show status via pill + strikethrough
Detail views (/lists/[id], /tasks/[id]) no longer show the editorial
uppercase label above the editable title. The title moves up into that
space for a cleaner top.
Status signaling on /lists/[id] (replaces the hardcoded "ACTIVE LIST"):
- list.status === 'completed' → title renders text-text-secondary + line-through
- list.status === 'archived' → muted pill next to the title
(data-testid="list-status-pill", slate-200 bg)
- list.status === 'active' → no extra chrome, just the title
/tasks/[id] has no status on task_lists — just the label drop.
Verified: just test-all → exit 0, 233 green, 2 skipped.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -672,19 +672,25 @@
|
|||||||
<!-- Items -->
|
<!-- Items -->
|
||||||
<div class="flex-1 overflow-y-auto pb-16 md:pb-6">
|
<div class="flex-1 overflow-y-auto pb-16 md:pb-6">
|
||||||
<!-- Inline rename title — matches /notes editor pattern. Autosaves after
|
<!-- Inline rename title — matches /notes editor pattern. Autosaves after
|
||||||
NAME_SAVE_DEBOUNCE_MS of inactivity. -->
|
NAME_SAVE_DEBOUNCE_MS of inactivity. Status signals: strikethrough
|
||||||
<div class="px-4 pt-4 pb-2 md:px-8 md:pt-6 md:pb-4">
|
on completed lists, muted pill next to the title for archived. -->
|
||||||
<p class="mb-1 text-[13px] font-semibold uppercase tracking-[0.05em] text-text-secondary">
|
<div class="flex items-center gap-2 px-4 pt-2 pb-2 md:px-8 md:pt-3 md:pb-4">
|
||||||
{m.list_status_active()}
|
|
||||||
</p>
|
|
||||||
<input
|
<input
|
||||||
bind:value={listName}
|
bind:value={listName}
|
||||||
oninput={scheduleNameSave}
|
oninput={scheduleNameSave}
|
||||||
onblur={flushNameSave}
|
onblur={flushNameSave}
|
||||||
placeholder={m.list_name_placeholder()}
|
placeholder={m.list_name_placeholder()}
|
||||||
class="w-full bg-transparent text-[26px] md:text-[32px] font-semibold tracking-[-0.02em] text-text-primary placeholder:text-text-secondary focus:outline-none"
|
class="min-w-0 flex-1 bg-transparent text-[26px] md:text-[32px] font-semibold tracking-[-0.02em] placeholder:text-text-secondary focus:outline-none {list?.status === 'completed' ? 'text-text-secondary line-through' : 'text-text-primary'}"
|
||||||
aria-label={m.list_name_placeholder()}
|
aria-label={m.list_name_placeholder()}
|
||||||
/>
|
/>
|
||||||
|
{#if list?.status === 'archived'}
|
||||||
|
<span
|
||||||
|
data-testid="list-status-pill"
|
||||||
|
class="shrink-0 rounded-full bg-slate-200 px-2.5 py-0.5 text-[11px] font-semibold uppercase tracking-wide text-text-secondary dark:bg-slate-800"
|
||||||
|
>
|
||||||
|
{m.list_status_archived()}
|
||||||
|
</span>
|
||||||
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{#if uncheckedItems.length === 0 && checkedItems.length === 0}
|
{#if uncheckedItems.length === 0 && checkedItems.length === 0}
|
||||||
|
|||||||
@@ -233,10 +233,7 @@
|
|||||||
|
|
||||||
<div class="flex-1 overflow-y-auto px-4 py-4 md:px-6">
|
<div class="flex-1 overflow-y-auto px-4 py-4 md:px-6">
|
||||||
<!-- Inline rename title input (autosave on idle) -->
|
<!-- Inline rename title input (autosave on idle) -->
|
||||||
<div class="pt-2 pb-4 md:pt-4 md:pb-6">
|
<div class="pt-1 pb-4 md:pt-2 md:pb-6">
|
||||||
<p class="mb-1 text-[13px] font-semibold uppercase tracking-[0.05em] text-text-secondary">
|
|
||||||
{m.masthead_tasks_label()}
|
|
||||||
</p>
|
|
||||||
<input
|
<input
|
||||||
bind:value={listName}
|
bind:value={listName}
|
||||||
oninput={scheduleNameSave}
|
oninput={scheduleNameSave}
|
||||||
|
|||||||
Reference in New Issue
Block a user