Refactor pagination with cursor-based support and standardized response format
- Implement cursor-based pagination in pagination.py - Update response models to standardize pagination structure - Add cursor pagination utilities for repositories - Update HistoryArchiveRepository and ImportLogRepository with new pagination - Add comprehensive tests for cursor pagination - Update documentation for backend development and task tracking Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
@@ -1,39 +1,3 @@
|
||||
## [IMPORTANT] Promise cancellation not checked in .then()/.catch() chains
|
||||
|
||||
**Where found**
|
||||
|
||||
- `frontend/src/components/blocklist/BlocklistSourcesSection.tsx:84-88`
|
||||
- `frontend/src/components/blocklist/BlocklistScheduleSection.tsx:49-58`
|
||||
- Multiple components use this pattern
|
||||
|
||||
**Why this is needed**
|
||||
|
||||
When user navigates away, `.then()` chains don't check if cancelled. State updated on unmounted component → React warnings, memory leak, notification shows wrong context.
|
||||
|
||||
**Goal**
|
||||
|
||||
Check for cancellation in all `.then()/.catch()` chains.
|
||||
|
||||
**What to do**
|
||||
|
||||
1. Replace `.then()/.catch()` with `async/await` and cancellation check
|
||||
2. Or use wrapper hook to hide logic
|
||||
|
||||
**Possible traps and issues**
|
||||
|
||||
- Checking `signal.aborted` after `await` introduces race conditions
|
||||
- Better: let AbortError propagate, catch it in catch block
|
||||
|
||||
**Docs changes needed**
|
||||
|
||||
- Update `Docs/Web-Development.md` § Async Patterns
|
||||
|
||||
**Doc references**
|
||||
|
||||
- `Docs/Web-Development.md` (async patterns)
|
||||
|
||||
---
|
||||
|
||||
## [MEDIUM] Inefficient database pagination uses OFFSET
|
||||
|
||||
**Where found**
|
||||
|
||||
Reference in New Issue
Block a user