Skip to content

fix(web): render date-only due dates without a time component#248

Merged
felixevers merged 1 commit into
mainfrom
claude/gracious-wright-wJFud
Jun 4, 2026
Merged

fix(web): render date-only due dates without a time component#248
felixevers merged 1 commit into
mainfrom
claude/gracious-wright-wJFud

Conversation

@felixevers
Copy link
Copy Markdown
Member

@felixevers felixevers commented Jun 4, 2026

Summary

Fixes #215.

When a task is given a due date without a time, the date input stores the value at the end of the day (23:59:59.999) — a "date-only" sentinel. However, the task views always rendered that due date with the time, and the inline table editor forced a date+time mode. The result was a meaningless time appearing whenever only a date was selected.

Originally this surfaced as the time of creation leaking in (the pre-FlexibleDateTimeInput behavior). The storage path is now correct, but the time was still being shown/forced — this PR addresses that residual issue.

Changes

  • web/utils/dueDate.ts — add DueDateUtils.isDateOnly(...) which detects the end-of-day sentinel (23:59:59.999) used by hightide's FlexibleDateTimeInput.
  • web/components/tables/TaskList.tsx — hide the time in the due-date cell for date-only due dates, and let the inline editor open in the matching granularity.
  • web/components/tasks/TaskCardView.tsx — hide the time on the task card for date-only due dates.
  • web/components/tables/in-table-edit/InTableDateTimeEditPopUp.tsx — add a flexible prop that renders FlexibleDateTimeInput, so the inline due-date editor can toggle between date-only and date+time instead of always requiring a time.
  • web/utils/dueDate.test.ts — unit tests for isDateOnly.

Verification

  • npx vitest run utils/dueDate.test.ts — 4 passing
  • npx tsc --noEmit — clean
  • npx eslint on changed files — clean

https://claude.ai/code/session_018XwCELPc4u4QsnxXqAhNa4


Generated by Claude Code

When a task is given a due date without a time, the value is stored at the
end of the day (23:59:59.999) as a date-only sentinel. The task views,
however, always rendered the due date with that time and the inline table
editor forced a date+time mode, so a meaningless time appeared whenever only
a date was selected (issue #215).

Add `DueDateUtils.isDateOnly` to detect the sentinel and:
- hide the time in the task list and task card due-date displays for
  date-only due dates
- let the inline due-date editor toggle between date-only and date+time via
  FlexibleDateTimeInput, defaulting to the current value's granularity

https://claude.ai/code/session_018XwCELPc4u4QsnxXqAhNa4
@felixevers felixevers merged commit af86874 into main Jun 4, 2026
15 checks passed
@felixevers felixevers deleted the claude/gracious-wright-wJFud branch June 4, 2026 20:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Task is assigned the date of creation as due date (including time (!) of creation) when only date is selected

2 participants