senke
1a10e550fc
state-ownership: list all state utility files (Action 4.6.1.1)
2026-01-11 17:58:05 +01:00
senke
675723047a
state-ownership: verify stores/auth.ts is removed (Action 4.5.1.3)
2026-01-11 17:57:19 +01:00
senke
bc8243dbaf
state-ownership: list all Zustand stores (Action 4.5.1.1)
2026-01-11 17:56:31 +01:00
senke
136a0aafcf
state-ownership: audit all mutations for optimistic updates (Action 4.4.1.4)
2026-01-11 17:55:39 +01:00
senke
d139ebdbca
state-ownership: audit custom optimistic updates (Action 4.4.1.1)
2026-01-11 17:43:51 +01:00
senke
c56ef95ac3
state-ownership: create React Query hook for user (Action 4.1.1.1)
2026-01-11 17:43:07 +01:00
senke
b1f4a4d949
error-propagation: integrate offline detection utility with error handler
2026-01-11 17:42:04 +01:00
senke
8ddada1939
error-propagation: add offline detection utility
2026-01-11 17:41:37 +01:00
senke
4f18f566ae
error-propagation: enhance network error detection to distinguish timeout, connection refused, and offline
2026-01-11 17:41:08 +01:00
senke
d2bf96d136
error-propagation: fix retry handlers and mark Action 3.4.1.3 complete
2026-01-11 17:40:21 +01:00
senke
274c3fdd99
error-propagation: implement retry for failed mutations (remaining handlers)
2026-01-11 17:39:51 +01:00
senke
bb9a0e655c
error-propagation: implement retry for failed mutations (ShareDialog, CommentSection)
2026-01-11 17:38:54 +01:00
senke
6e16fce1b9
error-propagation: implement retry for failed mutations (MarketplaceHome, RolesPage, SettingsPage)
2026-01-11 17:38:15 +01:00
senke
f929e8ebd0
error-propagation: implement retry for failed mutations (AccountSettings)
2026-01-11 17:37:04 +01:00
senke
aee6624e2e
error-propagation: implement retry for failed mutations (Cart)
2026-01-11 17:36:33 +01:00
senke
318ea5e06e
error-propagation: implement retry for failed mutations (ProfileForm, LibraryPage)
2026-01-11 17:35:38 +01:00
senke
ff00fa6ba0
error-propagation: audit all mutation error handlers
2026-01-11 17:33:30 +01:00
senke
a5fb8b6b28
error-propagation: enhance error boundary logging for monitoring
2026-01-11 17:33:03 +01:00
senke
23a9ffd25b
error-propagation: update ErrorBoundary to use ErrorDisplay component
2026-01-11 17:32:25 +01:00
senke
b6577cf969
error-propagation: audit existing ErrorBoundary usage
2026-01-11 17:31:41 +01:00
senke
fccc2db5e1
error-propagation: highlight form fields on validation errors
2026-01-11 17:31:12 +01:00
senke
27ce7a5391
error-propagation: redirect to login on auth errors
2026-01-11 17:29:55 +01:00
senke
dbd2a4ad15
error-propagation: integrate issue reporting with ErrorDisplay
2026-01-11 17:29:11 +01:00
senke
9e24dd9367
error-propagation: create support issue reporting utility
2026-01-11 17:27:45 +01:00
senke
77d1c44907
error-propagation: show offline indicator on network errors
2026-01-11 17:16:49 +01:00
senke
d0cbae13a8
error-propagation: add getErrorCategory function for error categorization
2026-01-11 17:14:49 +01:00
senke
828c396bcf
error-propagation: fix leftover toast.error in LibraryPage confirmBulkDelete
2026-01-11 17:13:00 +01:00
senke
a1e6211391
error-propagation: replace toast.error with ErrorDisplay in Cart component
2026-01-11 17:12:27 +01:00
senke
f602baf67b
error-propagation: replace toast.error with ErrorDisplay in AccountSettings
2026-01-11 17:11:51 +01:00
senke
6db443a8e7
error-propagation: replace toast.error with ErrorDisplay in ProfileForm
2026-01-11 17:11:03 +01:00
senke
28c7266115
error-propagation: replace toast.error with ErrorDisplay in ChatSidebar and CreateRoomDialog
2026-01-11 17:10:27 +01:00
senke
a0fe095a99
error-propagation: replace toast.error with ErrorDisplay in SharePlaylistModal and AddCollaboratorModal
2026-01-11 17:08:58 +01:00
senke
9b1f84a8d5
error-propagation: replace toast.error with ErrorDisplay in ShareDialog and CommentSection
2026-01-11 17:08:04 +01:00
senke
d783c69290
error-propagation: replace toast.error with ErrorDisplay in SettingsPage (query and mutation errors)
2026-01-11 17:07:02 +01:00
senke
856bb348cf
error-propagation: replace toast.error with ErrorDisplay in RolesPage (query and mutation errors)
2026-01-11 17:06:30 +01:00
senke
f2a14b2017
error-propagation: replace toast.error with ErrorDisplay in MarketplaceHome (query and mutation errors)
2026-01-11 17:05:54 +01:00
senke
bd72718e6e
error-propagation: replace toast.error and inline error with ErrorDisplay in TrackDetailPage
2026-01-11 17:05:23 +01:00
senke
c5cbdd99d0
error-propagation: update PlaylistErrorBoundary to use ErrorDisplay component
2026-01-11 17:04:42 +01:00
senke
6d265aaa3e
error-propagation: update PlayerError to use ErrorDisplay component
2026-01-11 17:03:55 +01:00
senke
2bbb04c2c7
error-propagation: fix AuthErrorMessage tests for ErrorDisplay integration
2026-01-11 17:03:00 +01:00
senke
83e7cdd901
error-propagation: update AuthErrorMessage to use ErrorDisplay component
2026-01-11 17:02:34 +01:00
senke
606aff5745
error-propagation: create error display strategy document
2026-01-11 17:01:27 +01:00
senke
0d79e3fb14
error-propagation: audit all error display patterns across codebase
2026-01-11 17:00:58 +01:00
senke
4c441740d9
error-propagation: replace toast errors with ErrorDisplay in LibraryPage
2026-01-11 17:00:25 +01:00
senke
c34205052d
error-propagation: implement ErrorDisplay component with all variants and features
2026-01-11 16:58:54 +01:00
senke
260a1348b2
error-handling: design ErrorDisplay component API
...
- Completed Action 3.1.1.1: Designed ErrorDisplay component API
- Created ERROR_DISPLAY_COMPONENT_API.md with comprehensive API specification
- Defined props: error, onRetry, onDismiss, showDetails, context, variant, severity, size, actions
- Specified error type normalization (Error, ApiError, string, Axios error)
- Documented variants: inline, banner, modal, card
- Provided usage examples and integration points
- Defined accessibility requirements (ARIA labels, keyboard navigation)
- Ready for implementation (Action 3.1.1.2)
2026-01-11 16:53:42 +01:00
senke
39d3007cbf
data-flow: remove unnecessary client-side filter pass-through
...
- Completed Action 2.2.1.1: Removed client-side filter logic from LibraryPage
- Removed unnecessary useMemo that was just passing through tracksData?.tracks
- Simplified to direct assignment: filteredTracks = tracksData?.tracks || []
- Backend handles all filtering (verified in Action 2.2.1.2)
- No actual filtering was happening - useMemo was just a pass-through
- Code simplified, behavior unchanged
2026-01-11 16:53:06 +01:00
senke
4e2b43037a
data-flow: remove duplicate LibraryPagePremium.tsx file
...
- Completed Action 2.2.1.3: Handled LibraryPage.tsx vs LibraryPagePremium.tsx duplication
- Updated LIBRARY_PAGE_AUDIT.md with file comparison
- Verified LibraryPage.tsx is active (imported via LazyLibrary in routing)
- Verified LibraryPagePremium.tsx is duplicate/unused (not imported anywhere)
- LibraryPagePremium.tsx is older version without debounce improvements
- Removed LibraryPagePremium.tsx - safe deletion, no references found
- Routing continues to use LibraryPage.tsx, no breakage
2026-01-11 16:51:47 +01:00
senke
57e3edbdc9
data-flow: standardize debounce across all search inputs
...
- Completed Action 2.4.1.3: Audited and standardized search input debouncing
- Created SEARCH_DEBOUNCE_AUDIT.md documenting all search components
- Found 7 search components: 5 using useDebounce, 1 manual setTimeout, 1 manual search
- Standardized AddTrackToPlaylistModal to use useDebounce hook instead of manual setTimeout
- All automatic search inputs now use consistent debouncing (300-500ms delays)
- MessageSearch uses manual search (intentional, no debounce needed)
2026-01-11 16:51:23 +01:00
senke
ff589b73c5
data-flow: add debounce to LibraryPage search and fix race condition
...
- Completed Actions 2.4.1.1, 2.4.1.2, and 2.4.1.4
- Action 2.4.1.1: Verified custom useDebounce hook exists (no external package needed)
- Action 2.4.1.2: Added useDebounce hook with 300ms delay to LibraryPage search
- Action 2.4.1.4: Fixed race condition by using debouncedSearchTerm for page reset
- Search now fires 300ms after typing stops, reducing API calls
- Page reset now waits for debounce to complete, preventing race conditions
2026-01-11 16:49:13 +01:00