From 32f87e1a9286881c8b8676a58aa9440b88ca7554 Mon Sep 17 00:00:00 2001 From: yiekheng Date: Sun, 10 May 2026 21:12:02 +0800 Subject: [PATCH] fix(web): truncate long recurrence description with ellipsis on detail card Switched the reminder detail recurrence line from wrap-on-overflow to single-line truncate (...) so card height stays consistent. The full text is exposed via the native title tooltip, and editing the schedule shows the canonical full description in the wizard. Co-Authored-By: Claude Opus 4.7 (1M context) --- apps/web/src/app/reminders/[id]/page.tsx | 27 +++++++++++++++--------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/apps/web/src/app/reminders/[id]/page.tsx b/apps/web/src/app/reminders/[id]/page.tsx index f16a16e..474c15b 100644 --- a/apps/web/src/app/reminders/[id]/page.tsx +++ b/apps/web/src/app/reminders/[id]/page.tsx @@ -230,16 +230,23 @@ export default async function ReminderDetailPage({ params }: Props) {

{formatWhen(reminder.scheduledAt, tz)}

{reminder.rrule && reminder.scheduledAt ? ( - // items-start (not items-center) + wrapping the text in - // a so a long recurrence description - // ("Every month on days 4, 6, 11, 13, 18, 20 +2 more - // at 11:32") wraps onto a second line instead of - // overflowing the card horizontally. mt-0.5 nudges the - // icon to baseline with the first line of text since - // items-start no longer vertically centers it. -

- - + // Single-line summary with mid-string ellipsis. Long + // descriptions ("Every month on days 4, 6, 11, 13, 18, + // 20 +2 more at 11:32") truncate cleanly via `truncate` + // (overflow-hidden + text-ellipsis + whitespace-nowrap) + // so the card height stays predictable. The native + // browser tooltip on `title` lets the operator read + // the full string without leaving the page; the edit + // form is the canonical full view. +

+ + {describeRecurrence( specFromRrule(reminder.rrule), DateTime.fromJSDate(reminder.scheduledAt).setZone(reminder.timezone),