Skip to content

Conversation

@ShivaGupta-14
Copy link
Contributor

@ShivaGupta-14 ShivaGupta-14 commented Nov 18, 2025

Description

This PR implements visual indicators for unsynced task modifications. When a task is edited, completed, or deleted, the UI immediately marks it as "Unsynced" until the backend successfully synchronizes all pending changes.

Key Changes

  • State Management: Implements a local state unsyncedTaskUuids to track tasks modified on the frontend but not yet synced to the backend.

  • Visual Indicators:

    • Adds a red "Unsynced" badge to task rows for immediate feedback when a task is edited, completed, or deleted.
    • Displays the count of pending unsynced items on the Sync button via a notification-style badge.
  • Optimistic UI Updates: Immediately updates UI for task status changes (completed/deleted) to enhance perceived performance.

  • Sync Logic: Automatically clears all unsynced indicators once backend synchronization succeeds.

  • Testing

    • Includes unit tests verifying:
      • Unsynced badge visibility
      • Sync button counter accuracy
      • Clearing state on successful sync
      • Used test.each for repetitive date editing tests, reducing code duplication.

Checklist

  • Ran npx prettier --write . (for formatting)
  • Ran gofmt -w . (for Go backend)
  • Ran npm test (for JS/TS testing)
  • Added unit tests, if applicable
  • Verified all tests pass
  • Updated documentation, if needed

Additional Notes

Video: Link to see changes

its-me-abhishek and others added 30 commits June 21, 2024 17:01
test: add tests for: BottomBar, Navbar, SetupGuide and Tasks
refactor: add reusable components, and fix imports
test: add tests for tasks, landingpage and homepage
fix: dependency fixes on backend and add healthcheck
Hell1213 and others added 4 commits December 19, 2025 11:56
- Add annotations field to AddTaskRequestBody and frontend forms
- Implement annotation processing using task export for reliable task ID
- Fix stale state bug in handleAddTask function
…CExtractor#280)

- Removed modal={true} from Popover component in date-picker.tsx.
- Prevents nested focus trap conflict.
- Fixes page becoming unresponsive after clicking outside date picker.

Fixes: CCExtractor#279
@its-me-abhishek
Copy link
Collaborator

Are there any updates on this PR @ShivaGupta-14 ?

Hell1213 and others added 2 commits December 22, 2025 18:53
Implemented recur dropdown in AddTaskDialog with daily, weekly, monthly, yearly options. Backend now handles recur field with proper validation requiring due date before setting recurrence. Updated all related types, handlers and tests to support task recurrence functionality.
@ShivaGupta-14
Copy link
Contributor Author

Hi @its-me-abhishek!

Yes, on it! I was travelling for a few days, so there was a slight delay. I’ll finish all the remaining work (review and updates) by tomorrow EOD

Neeraj-gagat and others added 3 commits December 23, 2025 21:43
* added enddate in addtask

* fixed layout
Skip WebSocket refresh for Edit Task operations
Prevents dialog from disappearing when editing fields
- Add wait date field to backend request body and Taskwarrior CLI
- Implement wait date picker in AddTaskDialog frontend component
- Update type definitions and hooks to support wait field
- Add comprehensive frontend and backend tests for the new field

Issue: CCExtractor#188
@ShivaGupta-14 ShivaGupta-14 force-pushed the feat/143-unsync-ui branch 2 times, most recently from e66304e to 291cf21 Compare December 23, 2025 22:25
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

shows animated unsynced badge when task has local changes pending sync. Added aria-labels for accessibility

Copy link
Contributor Author

@ShivaGupta-14 ShivaGupta-14 Dec 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added unsyncedTaskUuids state using sets, adds task UUID to set whenever any field is modified locally, clears all unsynced indicators after successful sync, passes isUnsynced prop to TaskDialog to display visual indicator and total count of unsync tasks on sync button

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added tests for unsynced badge visibility based on isUnsynced prop

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

new test cases for unsync tasks

Copy link
Contributor Author

@ShivaGupta-14 ShivaGupta-14 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

self review completed! open to any suggestions

…verflow (CCExtractor#257)

Changed responsive breakpoints from sm: to lg: for filter buttons, Add Task, and Sync buttons. BottomBar now shows on tablets (640px-1024px) like mobile devices.

Fixes CCExtractor#221
Added full annotations editing functionality following the same pattern as tags editing. Users can now add, edit, and remove task annotations through the task details dialog.

Backend handles proper annotation replacement using TaskWarrior's denotate/annotate commands.
@ShivaGupta-14
Copy link
Contributor Author

Hi @its-me-abhishek! this is ready for review. please review whenever you get time.

ShivaGupta-14 and others added 3 commits December 24, 2025 23:02
- Add entry date field to backend request body and Taskwarrior CLI
- Implement entry date picker in AddTaskDialog frontend component
- Update type definitions and hooks to support entry field
- Add comprehensive frontend and backend tests for the new field

Issue: CCExtractor#188
* feat: add task dependency support

* fix:add search support and tests for depends on

* fix: resolve conflicts

* "fix: correct AddTaskDialog tests after merge"
…#303)

Co-authored-by: Vaibhav <vaibhavkumarsingh499@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Visual Indicator for Modified / Unsynced Tasks on Frontend