senke
|
91bb04b956
|
style(track-list-pagination): elevate visual fidelity to premium standards
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 08:56:06 +01:00 |
|
senke
|
c70046a7f8
|
style(track-filters): elevate visual fidelity to premium standards
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 08:54:49 +01:00 |
|
senke
|
6d982d1ba0
|
style(comment-thread): elevate visual fidelity to premium standards
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 08:52:35 +01:00 |
|
senke
|
94487a9b4f
|
style(track-history): elevate visual fidelity to premium standards
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 08:49:21 +01:00 |
|
senke
|
02f5d18879
|
style(tracks): elevate visual fidelity to premium standards
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 08:35:52 +01:00 |
|
senke
|
a41e7ce521
|
style(comments): elevate visual fidelity to premium standards
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 08:13:59 +01:00 |
|
senke
|
a5889cb0ac
|
style(ui): elevate visual fidelity to premium standards
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 08:03:28 +01:00 |
|
senke
|
b10821717d
|
feat(tracks): use TrackListSkeleton for loading state and add Error story
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 07:40:16 +01:00 |
|
senke
|
3c5fb9cc0e
|
test(comments): add comprehensive stories and MSW mocks
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 07:33:05 +01:00 |
|
senke
|
a65e4b7ab2
|
feat(comments): add high-fidelity skeletons and Framer Motion transitions
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 07:32:49 +01:00 |
|
senke
|
1006cc7e3a
|
refactor(comments): modularize CommentSection with atomic sub-components
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 07:32:37 +01:00 |
|
senke
|
3298295d75
|
docs(audit): TrackDetailPage refactorised 2026-02-05
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 06:57:46 +01:00 |
|
senke
|
06c963be46
|
refactor(tracks): split TrackDetailPage into module with Hero, CoverAndActions, Info, Tabs, Skeleton, NotFound
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 06:57:32 +01:00 |
|
senke
|
793ad47e27
|
docs(audit): PlaylistDetailPage refactorised 2026-02-05
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 06:47:07 +01:00 |
|
senke
|
11ec40b692
|
refactor(playlists): split PlaylistDetailPage into module with Hero, CoverAndInfo, ActionsBar, Tabs, Skeleton, NotFound
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 06:46:30 +01:00 |
|
senke
|
75c9472b36
|
docs(audit): PlaylistActions refactorised 2026-02-05
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 06:10:30 +01:00 |
|
senke
|
1ebfacd12c
|
refactor(playlists): split PlaylistActions into module (buttons, edit dialog, skeleton)
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 06:09:51 +01:00 |
|
senke
|
ce166e320f
|
docs(audit): EquipmentDetailView refactorised 2026-02-05
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 05:46:19 +01:00 |
|
senke
|
efbf54c526
|
refactor(web): split EquipmentDetailView into module (nav, gallery, specs, header, warranty, docs, service, skeleton)
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 05:46:16 +01:00 |
|
senke
|
b54f6cf00a
|
docs(audit): TrackListPagination refactorised 2026-02-05
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 05:04:24 +01:00 |
|
senke
|
fa2563558c
|
refactor(web): split TrackListPagination into module (info, nav, utils, skeleton)
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 05:03:53 +01:00 |
|
senke
|
7edd6267fc
|
docs(audit): PlaylistAnalytics refactorised 2026-02-05
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 04:54:00 +01:00 |
|
senke
|
6dd7a312aa
|
refactor(web): split PlaylistAnalytics into module (stat cards, main/advanced, error, skeleton)
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 04:53:54 +01:00 |
|
senke
|
e6adea58d3
|
docs(audit): VirtualizedChatMessages refactorised 2026-02-05
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 04:44:30 +01:00 |
|
senke
|
089677321b
|
refactor(web): split VirtualizedChatMessages into module (item, empty, loading, scroll btn, skeleton)
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 04:44:26 +01:00 |
|
senke
|
41050fce5d
|
docs(audit): LibraryPage refactorised 2026-02-05
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 04:31:15 +01:00 |
|
senke
|
3834583492
|
refactor(web): split LibraryPage into module (toolbar, empty, grid, list, skeleton)
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 04:31:06 +01:00 |
|
senke
|
f9eda10044
|
docs(audit): router refactorised 2026-02-05
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 04:16:43 +01:00 |
|
senke
|
e243e2c41e
|
refactor(web): split router into module (PublicRoute, ProtectedLayoutRoute, routeConfig)
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 04:16:37 +01:00 |
|
senke
|
70614a86af
|
docs(audit): ChatView refactorised 2026-02-05
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 04:01:30 +01:00 |
|
senke
|
43d0d7e129
|
refactor(web): split ChatView into chat-view module
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 03:59:32 +01:00 |
|
senke
|
d56cf96900
|
docs(audit): AuthView refactorised 2026-02-05
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 03:54:38 +01:00 |
|
senke
|
bdda26ad08
|
refactor(web): split AuthView into auth-view module
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-07 03:53:59 +01:00 |
|
senke
|
1dd0896d0b
|
docs(audit): AdminView refactorised 2026-02-05
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 22:32:04 +01:00 |
|
senke
|
c92c8d02a4
|
refactor(web): split AdminView into admin-view module
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 22:31:24 +01:00 |
|
senke
|
14d81649ad
|
docs(audit): NotificationsView refactorised 2026-02-05
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 22:23:19 +01:00 |
|
senke
|
bb370397d2
|
refactor(web): split NotificationsView into notifications-view module
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 22:22:47 +01:00 |
|
senke
|
cb72f73f52
|
docs(audit): EducationView refactorised 2026-02-05
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 22:11:45 +01:00 |
|
senke
|
6833df9dc5
|
refactor(web): split EducationView into education-view module
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 22:11:13 +01:00 |
|
senke
|
c6c254bb05
|
docs(audit): SettingsView refactorised 2026-02-05
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 22:00:12 +01:00 |
|
senke
|
b736de5dc7
|
refactor(web): split SettingsView into settings-view module
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 21:59:42 +01:00 |
|
senke
|
837269e361
|
docs(audit): CartView refactorised 2026-02-05
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 21:51:30 +01:00 |
|
senke
|
753191d88b
|
refactor(web): split CartView into cart-view module
- types: CartViewProps, CartDiscount
- useCartView: useCartStore, showPromo, discount, tax/finalTotal, handleApplyPromo
- CartViewEmpty, CartViewHeader, CartViewSummary, CartViewSecure, CartViewSkeleton
- PromoCodeModal in orchestrator; min-h-[60vh] -> min-h-layout-page-sm
- Stories: Default, Empty, Loading (Skeleton); decorator min-h-layout-page
- Re-export from CartView.tsx
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 21:49:55 +01:00 |
|
senke
|
8d1ac73507
|
docs(audit): PurchasesView refactorised 2026-02-05
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 21:43:08 +01:00 |
|
senke
|
d7c462c8cc
|
refactor(web): split PurchasesView into purchases-view module
- types: PurchasesViewProps, Purchase
- usePurchasesView: commerceService.getPurchases, search, refund, download
- PurchasesViewHeader, PurchasesViewItem, PurchasesViewList, PurchasesViewSkeleton
- RefundRequestModal in orchestrator; Loading renders Skeleton
- Stories: Default, Empty (initialPurchases []), Loading (Skeleton)
- Re-export from PurchasesView.tsx
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 21:42:35 +01:00 |
|
senke
|
3e5f8e49d2
|
docs(audit): SocialView refactorised 2026-02-05
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 21:35:06 +01:00 |
|
senke
|
0504810f29
|
refactor(web): split SocialView into social-view module
- types: SocialViewProps, SocialTabKey
- useSocialView: feedTracks (trackService.list), activeTab, playTrack
- SocialViewSidebar, SocialViewFeed, SocialViewFeedItem, SocialViewTrending, SocialViewSkeleton
- Loading renders Skeleton; decorator min-h-layout-page
- Re-export from SocialView.tsx
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 21:34:18 +01:00 |
|
senke
|
6b7ac3582f
|
docs(audit): MarketplaceView refactorised 2026-02-05
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 21:26:33 +01:00 |
|
senke
|
c2c98ff535
|
refactor(web): split MarketplaceView into marketplace-view module
- types: MarketplaceViewProps, MarketplaceCategory; useMarketplaceView with marketplaceService/fallback
- MarketplaceViewHeader, MarketplaceViewCategories, MarketplaceViewSidebar, MarketplaceViewGrid, MarketplaceViewSkeleton
- allProducts for ProductDetailView similarProducts; min-h-screen -> min-h-layout-page
- Stories: Default, Loading (Skeleton); decorator min-h-layout-page
- Re-export from MarketplaceView.tsx
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 18:42:16 +01:00 |
|
senke
|
833b66e0b6
|
docs(audit): AnalyticsView refactorised 2026-02-05
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 18:34:24 +01:00 |
|