Skip to content

add assignee and shared project support#4

Open
tyleisher wants to merge 3 commits intorendyhd:mainfrom
tyleisher:main
Open

add assignee and shared project support#4
tyleisher wants to merge 3 commits intorendyhd:mainfrom
tyleisher:main

Conversation

@tyleisher
Copy link

feat: add assignee support with assign/remove picker and assigned-to-me filter

  • Add VikunjaUser type and assignees field to Task in vikunja-types
  • Show assignee avatars (initials) to the left of the task title in collapsed rows
  • Add UserPlus button in expanded task row that opens AssigneePickerPopover
  • AssigneePickerPopover: debounced user search, toggle assign/unassign per user
  • Add searchUsers, addAssigneeToTask, removeAssigneeFromTask through the full IPC stack (api-client → ipc-handlers → preload → api.ts)
  • Add useAddAssignee and useRemoveAssignee mutations with query invalidation
  • Add fetchUser() in api-client using requestWithRetry (replaces net.fetch-based fetchCurrentUser for reliability)
  • Add useCurrentUser hook (TanStack Query, 5min stale, throws on null for clean undefined data)
  • Add UserCheck filter button in TaskList header (always visible when authenticated)
  • Filter visibleTasks to only tasks assigned to the current user when active
  • Show "No tasks assigned to you" empty state when filter is on and list is empty

Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com

tyleisher and others added 3 commits March 3, 2026 09:25
…me filter

- Add VikunjaUser type and assignees field to Task in vikunja-types
- Show assignee avatars (initials) to the left of the task title in collapsed rows
- Add UserPlus button in expanded task row that opens AssigneePickerPopover
- AssigneePickerPopover: debounced user search, toggle assign/unassign per user
- Add searchUsers, addAssigneeToTask, removeAssigneeFromTask through the full IPC stack (api-client → ipc-handlers → preload → api.ts)
- Add useAddAssignee and useRemoveAssignee mutations with query invalidation
- Add fetchUser() in api-client using requestWithRetry (replaces net.fetch-based fetchCurrentUser for reliability)
- Add useCurrentUser hook (TanStack Query, 5min stale, throws on null for clean undefined data)
- Add UserCheck filter button in TaskList header (always visible when authenticated)
- Filter visibleTasks to only tasks assigned to the current user when active
- Show "No tasks assigned to you" empty state when filter is on and list is empty

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The filter previously only applied to top-level tasks in TaskList's tasks
prop. Section tasks rendered via SectionGroup (passed as children) were
invisible to the filter and always shown unfiltered.

Add TaskFilterContext (filterMyTasks + currentUserId) provided by TaskList
and consumed by SectionGroup, so all sections respect the active filter.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
feat: assignee support — show, assign/remove, and filter by assigned user
@rendyhd
Copy link
Owner

rendyhd commented Mar 4, 2026

Thanks for the PR! Could you elaborate on your ideas and needs for collaborative features? I've been considering to add them, but haven't landed on how to nicely integrate it in the UI (e.g. adding a third pane to show engagement). As I've only been using Vicu as a personal task manager and miss the feedback on how others would like to use it and what the needs are.

Since I aim to maintain feature parity on the android app I'd really like to understand the bigger picture

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