senke
5514134925
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
24a5e0df5a
ui: add loading state to delete comment button (Action 8.3.1.3 partial)
...
- Added isLoading prop to ConfirmationDialog for delete comment
- Uses deleteCommentMutation.isPending to show loading state
- Follows existing pattern for confirmation dialogs
- Part of Action 8.3.1.3: Add loading states to all mutation buttons
- Many buttons already have loading states (verified during implementation)
2026-01-16 00:44:08 +01:00
senke
84582507e9
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
ea6d5202e2
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
32d89d80eb
incus deployement fully implemented, Makefile updated and make fmt ran
2026-01-13 19:47:57 +01:00
senke
38e83296b3
stabilisation commit A
2026-01-07 19:39:21 +01:00
senke
f035cad46e
chore: resolve property mismatches and type conflicts for snake_case alignment
2026-01-07 11:15:48 +01:00
senke
c85d7ffaa3
[INT-AUTH-002] Remove duplicate auth store - migrate to features/auth/store/authStore.ts
2025-12-26 09:11:46 +01:00
senke
9a229f1d81
[FE-COMP-012] fix: Remove unused refetchReplies variable
2025-12-25 11:52:13 +01:00
senke
f39c7f1aa7
[FE-COMP-012] fe-comp: Add comment system UI
2025-12-25 11:51:52 +01:00