Refactor code structure and remove redundant sections for improved readability and maintainability
All checks were successful
Chore App Build, Test, and Push Docker Images / build-and-push (push) Successful in 1m48s

This commit is contained in:
2026-04-10 17:44:37 -04:00
parent 8080a59de1
commit 861b3dc9d4
19 changed files with 52 additions and 2811 deletions

View File

@@ -0,0 +1,38 @@
# Bug List for 1.0.6 Set 2
## On mobile, the COMPLETED (and possible other banners) overflow it's bounding box
- [x] Fixed
![alt text](image.png)
We need the banner text to be a little smaller on mobile screens so it does not go outside the dark border box.
**Fix:** Added `@media (max-width: 480px)` CSS rule for `.chore-stamp` in both ChildView.vue and ParentView.vue. Reduces `font-size` to `0.82rem`, `letter-spacing` to `1px`, and `padding` to `0.3rem 0` on small screens.
## Extending time on a chore that is too late causes task icons to disappear.
- [x] Fixed
When the user extends time on a chore that is TOO LATE, I think 2 identical calls are being made to the api /child/[id]/list-tasks. This is causing a condition where images no longer appear until the user refreshes.
Could SSE calls be causing this? Could also be a childChoreListRef.value?.refresh() is called in the UI too many times too quickly.
**Root Cause:** Two issues combined:
1. `doExtendTime` in ParentView called `childChoreListRef.value?.refresh()` directly AND the SSE `chore_time_extended` event handler also called `refresh()`, causing two concurrent fetches.
2. `ScrollingList.fetchItems()` had no protection against concurrent calls. When two fetches raced, `items.value` was set before images were resolved, and the second call's `loading.value = false` didn't trigger a re-render (already false), leaving images from the second fetch invisible.
**Fix:**
- Removed the manual `refresh()` call from `doExtendTime` in ParentView — the SSE event handler already handles it.
- Added a fetch generation counter to `ScrollingList.fetchItems()` that discards stale results from superseded fetches.
- After image resolution, `items.value` is re-assigned (`[...itemList]`) to trigger Vue reactivity for image URLs set on raw objects.
## When adding a schedule to a task and submitting, icons dissappear.
- [x] Fixed
This is related to the previous bug. API calls to /child[id]/list-tasks are called very quickly causing a problem.
**Fix:** The `ScrollingList` generation counter fix (described above) resolves this for all callers. Any concurrent `refresh()` calls — whether from SSE events, manual triggers, or timer-based refreshes — are now safely handled.