From 39fb437ff9852c22b4577534e1e9ef4a4ec3340a Mon Sep 17 00:00:00 2001 From: Brandon Brown Date: Sat, 2 May 2026 01:02:48 -0700 Subject: [PATCH] fix: domain picker overflow, triage skip-for-today, important/urgent at creation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Domain picker: anchor dropdown to left-0 instead of centered translate - Triage banner: add "Skip for today" button using existing markTriageDone() - TaskInput: add !/⚡ priority toggle pills; pass important/urgent on create Co-Authored-By: Claude Opus 4.7 (1M context) --- frontend/src/app/(app)/layout.tsx | 5 ++ frontend/src/components/domain-picker.tsx | 2 +- frontend/src/components/task-input.tsx | 52 ++++++++++++++++++- .../src/components/triage-reminder-banner.tsx | 32 ++++++++---- frontend/src/lib/api.ts | 2 + 5 files changed, 81 insertions(+), 12 deletions(-) diff --git a/frontend/src/app/(app)/layout.tsx b/frontend/src/app/(app)/layout.tsx index ade95d3..e132ae3 100644 --- a/frontend/src/app/(app)/layout.tsx +++ b/frontend/src/app/(app)/layout.tsx @@ -381,6 +381,11 @@ export default function AppLayout({ children }: { children: React.ReactNode }) { { setShowTriageBanner(false); router.push("/triage"); }} onDismiss={() => setShowTriageBanner(false)} + onSkipForToday={() => { + markTriageDone(); + setTriagePending(false); + setShowTriageBanner(false); + }} isFirstTime={user ? !user.has_triaged_before : false} /> )} diff --git a/frontend/src/components/domain-picker.tsx b/frontend/src/components/domain-picker.tsx index da943aa..9113568 100644 --- a/frontend/src/components/domain-picker.tsx +++ b/frontend/src/components/domain-picker.tsx @@ -99,7 +99,7 @@ export function DomainPicker({ taskId, currentDomain, domains, onMutate }: Domai )} {isOpen && ( -
+
{domains.map((d) => ( + {phase === "typing" && text.length > 0 && ( {text.length}/500 )} diff --git a/frontend/src/components/triage-reminder-banner.tsx b/frontend/src/components/triage-reminder-banner.tsx index 2fdc9a1..7246b0d 100644 --- a/frontend/src/components/triage-reminder-banner.tsx +++ b/frontend/src/components/triage-reminder-banner.tsx @@ -3,10 +3,16 @@ interface TriageReminderBannerProps { onStart: () => void; onDismiss: () => void; + onSkipForToday: () => void; isFirstTime?: boolean; } -export function TriageReminderBanner({ onStart, onDismiss, isFirstTime }: TriageReminderBannerProps) { +export function TriageReminderBanner({ + onStart, + onDismiss, + onSkipForToday, + isFirstTime, +}: TriageReminderBannerProps) { const message = isFirstTime ? "Ready for your first triage? It only takes a few minutes." : "Time to triage — you haven't sorted today's tasks yet."; @@ -23,19 +29,27 @@ export function TriageReminderBanner({ onStart, onDismiss, isFirstTime }: Triage

Triage reminder

{message}

-
+
- +
+ + +
diff --git a/frontend/src/lib/api.ts b/frontend/src/lib/api.ts index daa9d2f..47d82dc 100644 --- a/frontend/src/lib/api.ts +++ b/frontend/src/lib/api.ts @@ -67,6 +67,8 @@ export async function createTask(body: { domain_id?: string; parent_id?: string; skip_triage_stamp?: boolean; + important?: boolean; + urgent?: boolean; }): Promise { return request("tasks", { method: "POST", body: JSON.stringify(body) }); }