- Added 'onDelete' and 'onNotes' support to TaskItem. - Implemented hover actions (Delete and Notes icons) for tasks. - Added Notes Modal for editing task markdown content. - Simplified navigation animation to remove blank flash (single-phase slide-in). - Fixed syntax error in updateTask function. - Updated styles for modal and task actions.
5.5 KiB
5.5 KiB
| phase | plan | type | wave | depends_on | files_modified | autonomous | must_haves | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 01-setup-foundation | 02 | execute | 1 |
|
true |
|
Create foundational components and data persistence
Objective
Implement core components for the weekly calendar view and establish data persistence with localStorage.
Purpose
Build the essential UI components and data layer needed for the weekly todo list application, including the calendar grid, task cards, navigation, and local storage integration.
Output
Functional core components for displaying and managing tasks in a weekly calendar view, with data persistence capability.
Context
This plan builds upon the project setup from plan 01-01, focusing on implementing the actual functionality needed to display and manage tasks in a weekly calendar view.
Tasks
Create core component structure and task type definitions src/types/task.ts, src/components/, src/hooks/ 1. Define Task type with properties: id, title, date, description, completed, category 2. Create directory structure for components, hooks, and utilities 3. Create basic component templates for CalendarGrid, TaskCard, and NavigationControls 4. Implement basic hooks for managing component state Typescript compiles without errors and Task type is properly defined Task type is defined with required properties and basic component structure exists Implement weekly calendar grid component src/components/CalendarGrid.tsx 1. Create a grid-based calendar view showing 7 days (Monday to Sunday) 2. Display tasks organized by day 3. Implement proper date handling using date-fns 4. Create a way to add new tasks to specific days 5. Make days clickable for adding new tasks CalendarGrid component renders 7 columns representing days and displays sample tasks CalendarGrid component renders properly with days of week and basic task display Implement task card component with drag-and-drop src/components/TaskCard.tsx, src/lib/taskPersistence.ts 1. Create TaskCard component with title, date, and description 2. Implement drag-and-drop functionality using react-dnd 3. Add ability to edit task details 4. Add complete/incomplete toggle 5. Implement data persistence with localStorage TaskCard component renders correctly and supports drag-and-drop interactions TaskCard component allows editing and dragging between days Implement navigation controls and data persistence src/components/NavigationControls.tsx, src/lib/taskPersistence.ts 1. Create navigation controls for previous/next week buttons 2. Implement week navigation logic 3. Create localStorage persistence functions for saving and loading tasks 4. Connect data persistence to the calendar grid component Navigation controls allow switching between weeks and tasks persist between page reloads Navigation works correctly and tasks persist in localStorage - Calendar grid displays properly with tasks organized by day - Task cards render with all required information - Drag-and-drop functionality works between days - Navigation controls allow switching weeks - Tasks persist in localStorage between browser sessions<success_criteria>
- Calendar grid component shows 7-day weekly view with tasks organized by day
- Task cards display task information and support editing
- Users can move tasks between days using drag-and-drop
- Navigation controls allow switching between weeks
- Tasks are saved to and loaded from localStorage
- All components integrate properly with each other </success_criteria>