senke
|
8a4a6cd9cd
|
docs(audit): dropdown-menu refactor entry
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 02:27:58 +01:00 |
|
senke
|
dc54cbc80a
|
refactor(ui): dropdown-menu module, dropdown controlled open, re-export
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 02:27:29 +01:00 |
|
senke
|
9c18968b16
|
docs(audit): StudioView refactor entry
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 02:18:00 +01:00 |
|
senke
|
8f3faff363
|
refactor(views): StudioView module, re-export, stories
- Module studio-view: types, useStudioView, Header, Sidebar, NavButton,
Content, ProjectsSwitch, Skeleton, orchestrator StudioView
- Re-export from StudioView.tsx
- Stories: Default, Projects, Loading (Skeleton); decorator min-h-layout-main
- Fix: h-[calc(100vh-140px)] -> min-h-layout-main, w-[65%] -> w-2/3
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 02:17:36 +01:00 |
|
senke
|
6ce1b2a355
|
docs(audit): CloudSettingsView refactor entry
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 02:11:58 +01:00 |
|
senke
|
b7d5137d63
|
refactor(studio): CloudSettingsView module, re-export, stories
- Module cloud-settings-view: types, useCloudSettingsView, Quota,
Preferences, Skeleton, orchestrator CloudSettingsView
- Re-export from CloudSettingsView.tsx
- Stories: Default, Loading (Skeleton); decorator min-h-layout-page
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 02:11:33 +01:00 |
|
senke
|
d3d203645b
|
docs(audit): AIToolsView refactor entry
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 02:07:27 +01:00 |
|
senke
|
9a0deb8428
|
refactor(studio): AIToolsView module, re-export, stories
- Module ai-tools-view: types, constants (AI_TOOLS), useAIToolsView,
ToolGrid, Workspace, Skeleton, orchestrator AIToolsView
- Re-export from AIToolsView.tsx
- Stories: Default, Loading (Skeleton); decorator min-h-layout-page,
no local ToastProvider (use StorybookDecorator)
- Fix: text-[10px] -> text-xs, min-h-[400px] -> min-h-layout-page-sm
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 02:07:05 +01:00 |
|
senke
|
caf05e6ee5
|
docs(audit): ConnectivityView refactor entry
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 02:02:23 +01:00 |
|
senke
|
1b59c2b423
|
refactor(studio): ConnectivityView module, re-export, stories
- Module connectivity-view: types, useConnectivityView, WebDAV, Webhooks,
Skeleton, orchestrator ConnectivityView
- Re-export from ConnectivityView.tsx
- Stories: Default, Loading (Skeleton); decorator min-h-layout-page
- Fix: text-[10px] -> text-xs (Mount Password hint)
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 02:02:00 +01:00 |
|
senke
|
95afa6a5e4
|
docs(audit): GoLiveView refactor entry
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 01:57:44 +01:00 |
|
senke
|
fc5e298780
|
refactor(studio): GoLiveView module, re-export, stories
- Module go-live-view: types, useGoLiveView, Header, Preview, StreamInfo,
EncoderSetup, QuickInstructions, MicLevel, Skeleton, orchestrator
- Re-export from GoLiveView.tsx
- Stories: Default, Loading (Skeleton); decorator min-h-layout-main
- Fix: text-[10px] -> text-xs, w-[60%] -> w-3/5
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 01:57:22 +01:00 |
|
senke
|
ef09c171cf
|
docs(audit): CreateProjectModal refactor entry
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 01:51:46 +01:00 |
|
senke
|
5c991ca1b1
|
refactor(studio): CreateProjectModal module, re-export, stories
- Module create-project-modal: types, useCreateProjectModal, Header,
Form, Footer, Skeleton, orchestrator CreateProjectModal
- Re-export from projects/CreateProjectModal.tsx
- Stories: Default, Loading (Skeleton); decorator min-h-layout-story
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 01:51:25 +01:00 |
|
senke
|
314511ce96
|
docs(audit): ProjectsManager refactor entry
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 01:45:05 +01:00 |
|
senke
|
2fb6add60c
|
refactor(studio): ProjectsManager module, re-export, stories
- Module projects-manager: types, useProjectsManager, Header, FilterBar,
Card, AddCard, Empty, Skeleton, orchestrator ProjectsManager
- Re-export from studio/ProjectsManager.tsx
- Stories: Default, Loading (Skeleton), Empty; decorator min-h-layout-main
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 01:44:40 +01:00 |
|
senke
|
b0edc847dc
|
docs(audit): TrackHistory refactor entry in FRONTEND_DEEP_DIVE_AUDIT
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 01:35:21 +01:00 |
|
senke
|
03acef75bd
|
refactor(tracks): TrackHistory module, re-export, stories, tests
- Module track-history: types, useTrackHistory, Header, Empty, ItemRow, Pagination, Skeleton, trackHistoryUtils
- Re-export from TrackHistory.tsx
- Stories: Default, Loading, Empty, Error (MSW)
- Tests: mock @/features/tracks/services/trackHistoryService, formatHistoryDate defensive, pagination/error tests fixed
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 01:34:58 +01:00 |
|
senke
|
bbc6af20d9
|
docs(audit): TwoFactorSetup refactor entry in FRONTEND_DEEP_DIVE_AUDIT
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 01:26:01 +01:00 |
|
senke
|
dea7c56007
|
refactor(settings): TwoFactorSetup module, re-export, stories
- Module two-factor-setup: types, useTwoFactorSetup, Header, Step1/2/3, Skeleton
- Re-export from TwoFactorSetup.tsx
- Stories: Default, Step1, Step2, Loading (Skeleton), Error (MSW)
- Decorator: min-h-layout-page-sm
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 01:25:43 +01:00 |
|
senke
|
87968b4f0c
|
docs(audit): UploadView refactor entry in FRONTEND_DEEP_DIVE_AUDIT
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 01:12:44 +01:00 |
|
senke
|
1fa5f19ed8
|
refactor(views): UploadView module, re-export, stories
- Module upload-view: types, useUploadView, Stepper, Step1/2/3, Skeleton
- Layout: min-h-layout-page, max-h-96 (no arbitrary values)
- Re-export from UploadView.tsx
- Stories: Default, Loading (Skeleton), Empty, Error
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 01:12:24 +01:00 |
|
senke
|
92a0d2c79f
|
docs(audit): AddCollaboratorModal refactor entry in FRONTEND_DEEP_DIVE_AUDIT
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 01:04:43 +01:00 |
|
senke
|
48073f181a
|
refactor(playlists): AddCollaboratorModal module, re-export, stories, tests
- Module add-collaborator-modal: types, useAddCollaboratorModal, Form, Skeleton
- Re-export from AddCollaboratorModal.tsx
- Stories: Default, Loading (Skeleton), Error (MSW)
- Tests: validation/mutation via ErrorDisplay, retry, no toast assertions
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 01:04:24 +01:00 |
|
senke
|
a788028e1a
|
docs(audit): ajouter SharePlaylistModal au tableau des refactorisations
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 00:58:07 +01:00 |
|
senke
|
e57eb9efc8
|
refactor(playlists): découper SharePlaylistModal en module
- Module share-playlist-modal/ : useSharePlaylistModal, Content, Skeleton
- ErrorDisplay + retry (max 3), Spinner pour chargement
- Stories : Default, Loading, Error (MSW 500)
- Tests : useCreateShareLink mock, playlistId string
- Re-export depuis SharePlaylistModal.tsx
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 00:57:48 +01:00 |
|
senke
|
b620383825
|
docs(audit): ajouter CreatePlaylistDialog au tableau des refactorisations
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 00:53:10 +01:00 |
|
senke
|
4cd5beb91c
|
refactor(playlists): découper CreatePlaylistDialog en module
- Module create-playlist-dialog/ : schema zod, useCreatePlaylistDialog,
CreatePlaylistDialogForm, CreatePlaylistDialogSkeleton
- Bouton Créer avec Spinner (remplace Loader2)
- Stories : Default, Loading
- Tests : assertion createPlaylist(object), erreur avec Error
- Re-export depuis CreatePlaylistDialog.tsx
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 00:52:51 +01:00 |
|
senke
|
cfe37b498e
|
docs(audit): ajouter PlaylistSearch au tableau des refactorisations
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 00:47:47 +01:00 |
|
senke
|
ec36d20ca3
|
refactor(playlists): découper PlaylistSearch en module
- Module playlist-search/ : usePlaylistSearch, Bar, Filters, Results, Skeleton
- Chargement avec Spinner (remplace Loader2)
- PLAYLIST_SEARCH activé en Storybook (VITE_STORYBOOK)
- MSW : GET /api/v1/playlists/search
- Stories : Default, Loading, Empty, Error
- Tests : Vitest + mock playlistsApi, useToast stable
- Re-export depuis PlaylistSearch.tsx
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 00:47:28 +01:00 |
|
senke
|
f8a6f9feef
|
docs(audit): ajouter PlaylistBatchActions au tableau des refactorisations
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 00:37:26 +01:00 |
|
senke
|
0dcef5fe9e
|
refactor(playlists): découper PlaylistBatchActions en module
- Module playlist-batch-actions/ : usePlaylistBatchActions, exportUtils,
Bar, Buttons, DeleteDialog, Skeleton
- Boutons min-h-11 (remplace min-h-[44px])
- Stories : Default, SingleSelection, Loading
- Tests : mocks URL + Playlist id/user_id en string
- Re-export depuis PlaylistBatchActions.tsx
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 00:37:06 +01:00 |
|
senke
|
f364e08cbb
|
docs(audit): ajouter AddTrackToPlaylistModal au tableau des refactorisations
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 00:22:33 +01:00 |
|
senke
|
0d19a1ef01
|
refactor(playlists): découper AddTrackToPlaylistModal en module
- Module add-track-to-playlist-modal/ : useAddTrackToPlaylistModal, Search,
List, TrackRow, Footer, Skeleton
- Liste max-h-96 (layout), Spinner pour chargement
- Stories : Default (useArgs), Loading (Skeleton)
- Re-export depuis AddTrackToPlaylistModal.tsx
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 00:22:09 +01:00 |
|
senke
|
58a8f290db
|
docs(audit): add PlaylistTrackList to refactored components table
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 00:14:41 +01:00 |
|
senke
|
7705244e74
|
refactor(playlists): PlaylistTrackList module with hook, subcomponents, skeleton
- Add playlist-track-list/ with usePlaylistTrackList, Empty, SortableItem, Skeleton, utils
- Prop isLoading for skeleton state
- Re-export from PlaylistTrackList.tsx and PlaylistTrackListSkeleton.tsx
- Stories: Default, Loading (Skeleton), Empty, Reordering (with mock data)
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 00:14:19 +01:00 |
|
senke
|
2cb39b9961
|
docs(audit): add NotificationMenu to refactored components table
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 00:07:42 +01:00 |
|
senke
|
69e5c30689
|
refactor(notifications): NotificationMenu module with hook, subcomponents, skeleton
- Add notification-menu/ with useNotificationMenu, Trigger, Dropdown, List, Item, Skeleton
- Dropdown max-h-96 (no arbitrary max-h-[500px])
- Props notificationsOverride, isLoadingOverride, errorOverride for Storybook
- Re-export from NotificationMenu.tsx
- Stories: Default, Loading, Empty, Error, Skeleton
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 00:07:19 +01:00 |
|
senke
|
622aedfb3f
|
docs(audit): add LibraryManager to refactored components table
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 00:00:58 +01:00 |
|
senke
|
1cf955bd38
|
refactor(library): LibraryManager module with hook, subcomponents, skeleton
- Add library-manager/ with useLibraryManager, Header, Toolbar, Error, Empty, Content, Stats, Skeleton
- Layout min-h-layout-page (no arbitrary h-[600px])
- Props tracksOverride, errorOverride, isLoadingOverride for Storybook
- Re-export from LibraryManager.tsx
- Stories: Default, Loading (Skeleton), Empty, Error
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-06 00:00:35 +01:00 |
|
senke
|
398a54daea
|
docs(audit): add CourseDetailView to refactored components table
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 23:52:47 +01:00 |
|
senke
|
fbfb56021a
|
refactor(education): CourseDetailView module with hook, subcomponents, skeleton
- Add course-detail-view/ with useCourseDetailView, Header, Tabs, Sidebar, Skeleton
- Stories: Default, Loading (Skeleton), Empty, Enrolled
- Re-export from CourseDetailView.tsx
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 23:52:24 +01:00 |
|
senke
|
19bd49ced0
|
docs(audit): add CourseLearningView to refactored components table
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 23:46:20 +01:00 |
|
senke
|
094a0ee4c8
|
refactor(education): CourseLearningView module with hook, subcomponents, skeleton
- Add course-learning-view/ with useCourseLearningView, Header, Player, Tabs, Sidebar, Skeleton
- Layout min-h-layout-main, no arbitrary values
- Re-export from CourseLearningView.tsx
- Stories: Default, Loading (Skeleton), Empty, Complete
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 23:45:58 +01:00 |
|
senke
|
c3bb896eac
|
docs(audit): mark ProductDetailView (marketplace) as refactored in frontend audit
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 23:38:28 +01:00 |
|
senke
|
527fe21f4a
|
refactor(marketplace): split ProductDetailView into module (Header, Gallery, Info, Licenses, Description, Reviews, Similar, Skeleton)
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 23:38:09 +01:00 |
|
senke
|
4436d9c45a
|
docs(audit): mark PlaybackHeatmap as refactored in frontend audit
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 23:31:25 +01:00 |
|
senke
|
7a532023aa
|
refactor(streaming): split PlaybackHeatmap into module (Header, Stats, Grid, Skeleton, Error, Empty)
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 23:31:06 +01:00 |
|
senke
|
2f7edfdf16
|
docs(audit): mark ProjectDetailView as refactored in frontend audit
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 23:24:57 +01:00 |
|
senke
|
64cc0ba505
|
refactor(studio): split ProjectDetailView into module (Header, Tabs, Overview, Files, Settings, Sidebar, Skeleton)
Co-authored-by: Cursor <cursoragent@cursor.com>
|
2026-02-05 23:24:39 +01:00 |
|