Skip to content

Conversation

@Rustix69
Copy link
Contributor

@Rustix69 Rustix69 commented Jan 8, 2026

Description

Implements a pin/unpin task feature that allows users to keep important tasks at the top of their list. Pinned tasks remain at the top within all filtered views.

Changes Made

Frontend

  • Added pin utility functions in tasks-utils.ts for localStorage management
  • Extended EditTaskDialogProps interface with pin-related props
  • Implemented pin state management and sorting logic in Tasks.tsx
  • Added clickable pin icon in task row for one-click pin/unpin
  • Added Pin/Unpin button in task dialog footer as secondary option
  • Implemented responsive mobile layout with 2-row design for better touch interaction

Features

  • Pinned tasks displayed with amber-colored pin icon
  • Sorting hierarchy: Pinned tasks, Overdue tasks, Regular tasks
  • Works within all filtered views (projects, tags, status, search)
  • Pinned state persisted in localStorage per user
  • Mobile-optimized 2-row layout: Row 1 (ID, Description, Project), Row 2 (Tags, Status, Pin)
  • No backend changes required (frontend-only feature)

Testing Video Snapshot

Screencast.from.2026-01-09.04-08-00.webm

Type of Change

  • New feature (non-breaking change which adds functionality)

Checklist

  • Code follows project style guidelines
  • Self-review completed
  • No linter errors
  • Frontend pre-commit hooks passed

- Add clickable pin icon directly in task row for one-click pin/unpin
- Pinned tasks displayed with amber-colored filled pin icon
- Unpinned tasks show subtle pin icon on hover
- Add Pin/Unpin toggle button in task dialog footer as secondary option
- Implement sorting to show pinned tasks at top of list (above overdue tasks)
- Pinned tasks work within all filtered views (projects, tags, status, search)
- Store pinned task UUIDs in localStorage per user (using hashed keys)
- Add responsive mobile layout with 2-row design:
  * Row 1: ID, Description, Project
  * Row 2: Tags, Status, Pin button
- Increase task row height on mobile for better touch interaction
- No backend changes required (frontend-only feature)

Addresses PR feedback:
- Quick pin/unpin access without opening dialog
- Mobile-optimized layout prevents horizontal scrolling
- Pin icon clickable with stopPropagation to avoid opening dialog
@github-actions
Copy link

github-actions bot commented Jan 8, 2026

Thank you for opening this PR!

Before a maintainer takes a look, it would be really helpful if you could walk through your changes using GitHub's review tools.

Please take a moment to:

  • Check the "Files changed" tab
  • Leave comments on any lines for functions, comments, etc. that are important, non-obvious, or may need attention
  • Clarify decisions you made or areas you might be unsure about and/or any future updates being considered.
  • Finally, submit all the comments!

More information on how to conduct a self review:
https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-proposed-changes-in-a-pull-request

This helps make the review process smoother and gives us a clearer understanding of your thought process.

Once you've added your self-review, we'll continue from our side. Thank you!

Rustix69 and others added 2 commits January 9, 2026 17:21
- One-click pin/unpin toggle in task rows
- Pinned tasks stay at top of list across filters
- Comprehensive test coverage (39 new tests)
- Privacy-preserving storage with hashed keys
@Rustix69
Copy link
Contributor Author

Rustix69 commented Jan 9, 2026

@its-me-abhishek I had added the comprehensive TCs for the task pinning feature

@Rustix69
Copy link
Contributor Author

Rustix69 commented Jan 9, 2026

@its-me-abhishek I had raised 2-3 Prs adn all have teh tests in the TaskDialog.test.tsx so may be any one of the PRs can get merge conflict so let merge teh PR one by one so that i can review the Merge conflicts

@its-me-abhishek its-me-abhishek merged commit 2cbb3a7 into CCExtractor:main Jan 10, 2026
5 checks passed
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.

Add “Pin task” to keep it at the top.

2 participants