Skip to content

Add someday task support and improve task creation UX#6

Open
jski21 wants to merge 1 commit into
mainfrom
claude/someday-via-taskform
Open

Add someday task support and improve task creation UX#6
jski21 wants to merge 1 commit into
mainfrom
claude/someday-via-taskform

Conversation

@jski21

@jski21 jski21 commented Jun 5, 2026

Copy link
Copy Markdown
Owner

Summary

This PR adds support for "someday" tasks (tasks without dates) and improves the task creation experience by allowing users to create tasks directly from the Lists page with pre-selected list context.

Key Changes

  • Someday task support: Tasks can now be created without a date by clearing the date field. These tasks appear in a "Someday" section within their list and don't appear on Today or Calendar views.

    • Added is_someday field to task creation payload
    • Date field is now optional (no longer required)
    • Added visual indicator explaining someday tasks
  • Enhanced TaskForm component:

    • Added initialListId prop to pre-select a list when opening from the Lists page
    • Added "clear" button next to date field for easy someday task creation
    • Time field is now disabled when no date is set
    • Recurring checkbox is disabled when no date is set (recurring tasks require an anchor date)
    • Added useEffect hook to auto-disable recurring when date is cleared
    • Submit button now disabled when title is empty
    • Improved documentation with JSDoc comments on props
  • Lists page improvements:

    • Added "+ Add task" button in the header to create tasks with the current list pre-selected
    • Task creation modal uses initialDate="" to create someday tasks by default
    • Modal styling matches existing dialogs (fixed overlay with responsive positioning)
  • Removed quick-add from SomedaySection:

    • Removed the inline form for adding someday tasks from the SomedaySection component
    • Task creation is now centralized through the main "+ Add task" button

Implementation Details

  • The date field now distinguishes between three states:
    • undefined → defaults to today
    • Empty string "" → intentionally blank (someday task)
    • ISO date string → specific date
  • Recurring tasks are prevented from being created without a date via both UI disabling and validation in the submit handler
  • The modal for task creation on the Lists page uses a fixed overlay with mobile-optimized styling (bottom sheet on mobile, centered on desktop)

https://claude.ai/code/session_01K9mt37i3VVxitgUjEpqSts

Replaces the inline 'Add a task (no date)' quick-add on the Lists page
with the same TaskForm modal Dashboard/Calendar use. The form now
supports an empty date — if you leave it blank the task is created as
'someday' (lives in the list only, never on Today/Calendar).

TaskForm:
- date is no longer required; a 'clear' affordance on the Date label
  empties the field
- when the date is empty: time + recurring are disabled, recurrence
  builder is hidden, and a hint explains it'll land under Someday
- initialDate='' (empty string) means 'intentionally blank' so the
  Lists page can open the form pre-cleared; undefined still defaults
  to today for Dashboard/Calendar
- initialListId pre-selects the active list

SomedaySection loses its inline quick-add input — the modal handles
all creation now. The list-of-someday-tasks display + rename/schedule/
delete actions stay.
@vercel

vercel Bot commented Jun 5, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
todo Ready Ready Preview, Comment Jun 5, 2026 10:13pm

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.

2 participants