senke
332b685f68
ui: use Spinner component in loading states (Action 8.3.1.5 partial)
...
- Replaced Loader2 with Spinner in high-leverage locations:
- LibraryPage (addToPlaylist)
- CommentSection (create comment)
- CommentThread (reply, edit)
- PlaylistForm (submit)
- AddCollaboratorModal
- CollaboratorList (remove)
- PlaylistFollowButton
- PlaylistActions (edit, delete)
- PlaylistBatchActions (share, delete)
- SharePlaylistModal
- AddTrackToPlaylistModal
- ShareLinkManager (create)
- Spinner provides consistent Kodo design system styling
- Remaining Loader2 usages can be migrated incrementally
- Part of Action 8.3.1.5: Use Spinner in loading states
2026-01-16 00:48:39 +01:00
senke
c23bad2099
security: disable mutation buttons when rate limited
...
- Created useIsRateLimited() hook to check rate limit state
- Updated CommentSection submit button to disable when rate limited
- Updated LikeButton to disable when rate limited
- Updated PlaylistForm submit button to disable when rate limited
- Updated ChatInput send button to disable when rate limited
- Updated UploadModal upload button to disable when rate limited
- All buttons check isLimited from rate limit store
- Hook uses Zustand selector for efficient re-renders
- Pattern established for future mutation buttons
- Action 5.4.1.4 complete
2026-01-15 20:01:47 +01:00
senke
8fd1071e2c
state-ownership: add optimistic updates to comment and collaborator mutations
...
- Added optimistic updates to comment mutations:
- createCommentMutation: Optimistically adds comment to list
- createReplyMutation: Optimistically adds reply to replies list
- updateCommentMutation: Optimistically updates comment content
- deleteCommentMutation: Optimistically removes comment from list
- Added optimistic updates to collaborator mutations:
- useAddCollaborator: Optimistically adds collaborator to list
- useRemoveCollaborator: Optimistically removes collaborator from list
- useUpdateCollaboratorPermission: Optimistically updates permission
- All mutations include:
- onMutate: Cancel queries, snapshot previous state, apply optimistic update
- onError: Rollback to previous state
- onSuccess: Invalidate queries for consistency
- Action 4.4.1.5 in progress (11/14+ mutations complete: playlists, comments, collaborators)
2026-01-15 19:46:20 +01:00
senke
daada38da8
state-ownership: replace all useAuthStore().user with useUser() hook
...
- Migrated all hooks: useAuth, useChat, useLogin
- Migrated all components: Header, ProfileForm, FollowButton, LikeButton, PlaylistFollowButton, ChatMessage, ChatMessages, CommentThread, CommentSection, PlaylistList, ChatSidebar, SettingsPage, DashboardPage
- Updated storeSelectors.ts useAuthUser() to use React Query
- All production code now uses useUser() hook instead of Zustand store
- Action 4.1.1.3 and 4.1.1.4 complete
2026-01-14 01:45:42 +01:00
senke
76d95ecfb4
incus deployement fully implemented, Makefile updated and make fmt ran
2026-01-13 19:47:57 +01:00
senke
3625618584
error-propagation: implement retry for failed mutations (ShareDialog, CommentSection)
2026-01-11 17:38:54 +01:00
senke
a5a6e4a142
error-propagation: replace toast.error with ErrorDisplay in ShareDialog and CommentSection
2026-01-11 17:08:04 +01:00
senke
c70dc23e70
[INT-AUTH-002] Remove duplicate auth store - migrate to features/auth/store/authStore.ts
2025-12-26 09:11:46 +01:00
senke
b105f61865
[FE-COMP-012] fe-comp: Add comment system UI
2025-12-25 11:51:52 +01:00
senke
bad778ee5a
[FE-PAGE-007] fe-page: Complete Track Detail page implementation
...
- Added comments section with CommentSection component
- Added sharing functionality with ShareDialog component
- Added version history display using TrackHistory component
- Added analytics display using TrackStatsDisplay component
- Organized content in tabs (Comments, History)
- Enhanced share button to open share dialog with token generation
- Integrated comment creation, deletion, and pagination
- Added track statistics display (views, likes, comments, downloads, play time)
2025-12-24 12:57:49 +01:00
senke
2dfde29f7d
refonte: backend-api go first; phase 1
2025-12-12 21:34:34 -05:00
okinrev
327ac36a30
BASE: completing the initial repo state
2025-12-03 22:56:50 +01:00