My-Weekly-ToDo-List/Version 01/.planning/phases/01-setup-foundation/01-02-PLAN.md
mARTin d92a8c7210 feat: add task actions (notes/delete) and refine animation logic
- 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.
2026-02-01 12:25:53 +01:00

5.5 KiB

phase plan type wave depends_on files_modified autonomous must_haves
01-setup-foundation 02 execute 1
src/components/
src/lib/
src/types/
src/hooks/
src/utils/
true
truths artifacts key_links
Core components are created for weekly calendar view
Task card component is implemented with proper styling
Navigation controls allow week switching
Drag-and-drop functionality is functional
Data persistence works using localStorage
path provides exports
src/components/CalendarGrid.tsx Weekly calendar grid component CalendarGrid component
path provides exports
src/components/TaskCard.tsx Task display and editing component TaskCard component
path provides exports
src/components/NavigationControls.tsx Previous/Next week navigation NavigationControls component
path provides exports
src/lib/taskPersistence.ts Local storage data management
saveTasks
loadTasks
path provides contains
src/types/task.ts Task data structure definition interface Task
from to via pattern
src/components/CalendarGrid.tsx src/components/TaskCard.tsx component composition TaskCard.*props
from to via pattern
src/components/CalendarGrid.tsx src/lib/taskPersistence.ts data persistence taskPersistence.*save
from to via pattern
src/components/CalendarGrid.tsx src/components/NavigationControls.tsx navigation NavigationControls.*props

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>
After completion, create `.planning/phases/01-setup-foundation/01-02-SUMMARY.md`