Commit graph

186 commits

Author SHA1 Message Date
Chris
402d5b05e1
Fix Today page task completion issues (#970)
* Fix Today page task completion issues

- Fix completed task border color staying as priority color
  - Add isInCompletedSection prop to TaskItem for explicit completed state
  - Tasks in completed section now always show green border regardless of priority
  - Fixes race condition where status wasn't updated during optimistic UI update

- Fix completed task reappearing after unmarking and page refresh
  - Add defensive check in backend to force clear completed_at when status is not DONE
  - Add development logging in tasksService for debugging completion toggle
  - Ensures database state is consistent even if handleCompletionStatus doesn't clear it

- Update TaskList and TasksToday components to pass isInCompletedSection prop
  - Explicitly marks tasks rendered in the completed section
  - Prevents border color flickering during state transitions

* Add comprehensive logging to debug completion issues

* Fix duplicate API requests causing completion state issues

- Separate state update logic from API call in handleTaskUpdate
- Create new updateTaskInState function for state-only updates
- Pass onTaskCompletionToggle to completed section to avoid duplicate calls
- This fixes the persistence issue where unmarked tasks came back after refresh
- Completion toggles now only make ONE API call instead of two

* Add debug logging to updateTaskInState
2026-03-24 16:45:31 +02:00
Chris
22349fb46f
Fix visual overlap between subtasks icon and status dropdown (#958)
* Fix visual overlap between subtasks icon and status dropdown

Increased right padding from pr-44 to pr-48 in TaskHeader desktop view
to prevent the subtasks toggle button from overlapping with the expanded
status dropdown icon.

Fixes #957

* Improve fix for subtasks icon and status dropdown overlap

- Removed flex-1 from task name container to prevent unnecessary expansion
- Wrapped SubtasksToggleButton in flex-shrink-0 div to maintain its width
- Increased right padding from pr-48 to pr-56 for better spacing
- This prevents the subtasks icon from overlapping with the status dropdown

Fixes #957

* Fix subtasks icon placement to be adjacent to task name

Moved SubtasksToggleButton to be directly after the task name within
the same flex container, instead of in a separate container. This positions
the icon immediately next to the task name on the left, rather than being
pushed to the right where it overlaps with the status dropdown.

Fixes #957
2026-03-22 12:12:28 +02:00
Chris
2444e36f47
Fix date format inconsistency in Task detail screen (#956)
* Fix date format inconsistency in Task detail screen (#938)

Replace browser-dependent toLocaleDateString() with explicit country-based
date formatting to ensure consistent date formats based on user's timezone.

Problem:
- User with English language + Greek timezone saw MM/DD/YYYY format
- Expected DD/MM/YYYY format based on timezone/country
- Browser's Intl.DateTimeFormat had incomplete locale support for
  combined locales like "en-GR"

Solution:
- Add country-to-format mapping in dateUtils.ts (60+ countries)
- New formatDateByCountry() for dates (DD/MM/YYYY, MM/DD/YYYY, YYYY/MM/DD)
- New formatDateTimeByCountry() for datetimes with 24h time
- Update TaskDueDateCard and TaskDeferUntilCard to use new functions
- Uses date-fns for consistent cross-browser formatting

Testing:
- Added 40 comprehensive test cases covering all format types
- Verified with Greece (DD/MM), US (MM/DD), Japan (YYYY/MM/DD)
- All tests passing

Fixes #938

* chore: remove unused import in dateUtils.ts
2026-03-21 18:47:33 +02:00
Chris
f1ea7843a7
Fix date format inconsistency in Defer Until field (#941)
Fixes #938

The Defer Until field was using i18n.language directly instead of
resolveUserLocale(), causing it to display dates in MM/DD/YYYY format
(US default) regardless of timezone setting.

Now uses the same locale resolution pattern as the Due Date field,
which combines language with timezone-derived country code (e.g.,
"en" + Greek timezone → "en-GR" → DD/MM/YYYY format).

Changes:
- Import useMemo and resolveUserLocale
- Add displayLocale memo to resolve timezone-aware locale
- Use displayLocale instead of i18n.language in toLocaleString()
2026-03-14 08:04:00 +02:00
Chris
1a1b70b5e7
Fix subtask completion not persisting to backend (#920) (#936)
The toggle handler required onSubtaskUpdate callback to make the API
call, but TaskSubtasksCard never provided it. Extract a shared handler
that calls toggleTaskCompletion for persisted subtasks regardless of
whether onSubtaskUpdate is provided, falling back to updating local
state via onSubtasksChange.
2026-03-10 17:30:45 +02:00
Chris
c33682bac0
Fix subtask completion not persisting when onSubtaskUpdate is not provided (#920) (#932)
When toggling subtask completion in TaskSubtasksSection, the toggle handler
required onSubtaskUpdate callback to make the API call. Components like
TaskSubtasksCard don't pass this callback, so toggling fell through to the
local-only state update path, never sending a network request.

Add an intermediate code path: when the subtask is persisted but
onSubtaskUpdate is not provided, call toggleTaskCompletion() directly
to persist the change, then update local state.

Fixes #920
2026-03-10 17:23:29 +02:00
Chris
a01dd9f41c
Fix subtask icons invisible on Today page (#839) (#935)
The SubtasksToggleButton was placed inside the same flex container as
the task name with truncate, causing it to be squeezed to zero width.
Wrap the task name in an inner flex container (matching the upcoming
view layout) so the button stays visible.
2026-03-10 17:15:06 +02:00
Chris
9f61bbbb21
Fix date format to respect timezone preference, not just language (#898) (#916)
Date fields in the task edit page used i18n.language (e.g. "en") to
determine date format, giving MM/DD for English even when the user's
timezone indicates a DD/MM region (e.g. Europe/Athens).

Enhance resolveUserLocale to derive the country from the user's
timezone and combine it with the language (e.g. "en" + "GR" = "en-GR")
so date formatting follows regional conventions.
2026-03-06 15:44:15 +02:00
Chris
aa686702e9
Fix defer date validation for recurring task instances (#910)
* Fix defer date validation for recurring task instances

* fixup! Fix defer date validation for recurring task instances
2026-03-05 08:20:30 +02:00
Chris
0bde44e460
Fix task name not being saved for new tasks (#905) 2026-03-04 18:13:37 +02:00
Chris
b81abd9bfe
Fix abandoned 'New Task' persisting when navigating away without changes (#889) 2026-03-02 18:28:54 +02:00
Chris
a80e9b5aba
Fix redirect after task deletion to return to originating view (#887) 2026-03-01 16:07:02 +02:00
Chris
0146b87a4b
Fix status dropdown z-index behind subtasks in project view (#866) 2026-02-26 19:53:59 +02:00
Chris
6e3b1b4099
Fix tag validation error messages not shown to user (#861) 2026-02-24 14:49:49 +02:00
Chris
a0cd6db1a2
Fix Sunday selection in monthly weekday recurrence (#859) 2026-02-24 13:46:48 +02:00
Chris
9c3f0fe851
Fix new task in mobile (#857) 2026-02-24 13:03:38 +02:00
Chris
d127070f76
Auto focus on new task (#856)
* Auto focus on new task

* fixup! Auto focus on new task
2026-02-24 12:28:19 +02:00
Chris
8bc93247d7
Fix timezone missed rollout (#832) 2026-02-10 22:28:14 +02:00
Chris
d5d8b8f1a7
Fix date comparison bugs causing false past due warnings and Today view miscategorization (#826) 2026-02-07 22:40:33 +02:00
Chris
f562101ca5
Fix subtasks dissapearing issue (#811) 2026-02-01 14:16:04 +02:00
Chris
2f13d0d4a7
Fix saving subtasks on edit (#806) 2026-01-31 08:29:44 +02:00
Chris
5dbf12be98
Fix task detail status change (#789) 2026-01-22 18:53:46 +02:00
Chris
1369fc4849
Fix issue with dropdown spilling over (#788) 2026-01-22 17:48:50 +02:00
Chris
b4de9c23eb
Fix recurrence occurences (#750) 2025-12-29 12:13:08 +02:00
Chris
8c839199e1
Add completed date (#747) 2025-12-28 18:40:58 +02:00
Chris
3f37113a2c
Add tooltips (#744) 2025-12-28 12:03:50 +02:00
Chris
2c68643dce
Fix Today page sorting not updating after priority change (#743) 2025-12-28 11:03:54 +02:00
Chris
628c532a07
Fix midnight UTC default date (#742) 2025-12-28 10:33:42 +02:00
Chris
21b797c1ad
Fix tags order (#741) 2025-12-28 10:13:03 +02:00
Chris
d51fb021b1
Fix style in metrics (#740) 2025-12-28 08:50:08 +02:00
Chris
eee1bbc013
Fix bug 722 (#737)
* Fix project statuses

* Refactor project states

* Add translations
2025-12-28 07:51:15 +02:00
Chris
e73c354e7e
Fix bug 733 (#735)
* Refactor today

* fixup! Refactor today

* fixup! fixup! Refactor today
2025-12-27 21:00:52 +02:00
Chris
ad8ab3ec72
Fix refactor pt2 (#734)
* Cleanup task routes

* Cleanup frontend tasks

* Clean tasks

* Cleanup project uid

* Cleanup quick capture old modal

* Cleanup taskmodal

* Move all icons to shared components

* Test inbox flow

* fixup! Test inbox flow
2025-12-27 17:46:34 +02:00
Chris
b6ecdbec90
Fix recur instance done (#727)
* Fix recur instance done

* Fix completed not showing
2025-12-19 17:37:04 +02:00
Chris
3fe694d1da
Fix task long titles (#726) 2025-12-19 14:28:48 +02:00
Chris
4d2ea4212c
Cleanup statuses (#724)
* Cleanup statuses

* Add more statuses

* Hide buttons

* fixup! Hide buttons

* Show subtasks on click

* Fix status button in taskdetails page

* fixup! Fix status button in taskdetails page

* fixup! fixup! Fix status button in taskdetails page

* Fix today planned query
2025-12-19 11:13:27 +02:00
Chris
e5b74b0760
Fix completed color (#713) 2025-12-15 13:59:46 +02:00
Chris
a8548b045b
Introduce sort utils (#709)
* Introduce sort utils

* Fix test issues
2025-12-14 01:13:57 +02:00
Chris
269197e3db
Feat: habits (#707)
* Scaffold habits

* Fix today issues

* Fix buttons in taskitem

* Fix mobile layout

* Fix creation process

* Add to sidebar

* fixup! Add to sidebar

* fixup! fixup! Add to sidebar
2025-12-13 08:47:52 +02:00
Chris
7161504533
Fix profile settings mobile layout (#694)
* Fix profile settings mobile layout

* fixup! Fix profile settings mobile layout
2025-12-10 09:10:23 +02:00
Chris
442ace69bb
Fix bug 675 (#689)
* Add group by filter and URL encode

* fixup! Add group by filter and URL encode
2025-12-09 12:11:21 +02:00
Chris
b0b613f7bd
Reorder elements (#687)
* Reorder elements

* Enhance global search
2025-12-09 10:51:51 +02:00
Chris
1f26b524c1
Fix items to tasks (#681) 2025-12-08 12:39:08 +02:00
Chris
3649e24448
Fix bug 677 (#679)
* Add lint-staged

* fixup! Add lint-staged
2025-12-08 12:06:27 +02:00
Chris Veleris
eb0f2e603e Fix attachments layout 2025-12-07 14:12:38 +02:00
Chris Veleris
61b94e1c9c Cleanup recurring tasks 2025-12-07 14:12:38 +02:00
Chris Veleris
c5851ea38b Add file attacmhments 2025-12-07 14:12:38 +02:00
Chris
9665ba1f62
Feat refactor task details (#660)
* Move elements to tabs

* Add priority

* Fix priority

* Priority mobile fix

* fixup! Priority mobile fix

* fixup! fixup! Priority mobile fix

* fixup! fixup! fixup! Priority mobile fix

* fixup! fixup! fixup! fixup! Priority mobile fix
2025-12-06 09:41:58 +02:00
Chris
faf47efaca
Fix bump issues (#651)
* Add event for defer

* Fix recurrence form

* fixup! Fix recurrence form

* Refresh projects on banner change
2025-12-04 18:19:40 +02:00
Chris
61cf6aedeb
Fix tasks not updating (#649)
* Fix id usage

* fixup! Fix id usage

* Add overdue part in overview today section
2025-12-04 15:02:06 +02:00