Commit graph

1274 commits

Author SHA1 Message Date
senke
df17fae256 docs(audit): add UserProfilePage refactor entry to FRONTEND_DEEP_DIVE_AUDIT
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 13:11:09 +01:00
senke
8e05e15d19 refactor(profile): decompose UserProfilePage into user-profile-page module
- Add user-profile-page/ with useUserProfilePage, Hero, Header, Tabs, Skeleton, Error
- Re-export UserProfilePage from UserProfilePage.tsx
- Stories: Default (/u/demo), Loading (Skeleton), NotFound (/u/notfound)
- MSW: GET /api/v1/users/by-username/:username (404 for notfound)
- Tests: mock useUserProfilePage, ToastProvider; 7 tests pass

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 13:10:33 +01:00
senke
4019305a1a docs(audit): GroupDetailView refactor entry
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 12:35:28 +01:00
senke
a8db2eec5d refactor(social): GroupDetailView module, useGroupDetailView, Header, Members, Events, Sidebar, Skeleton, stories
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 12:34:57 +01:00
senke
bff0688cdd docs(audit): EditProfile refactor entry
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 11:45:29 +01:00
senke
19033b1e68 refactor(settings): EditProfile module, useEditProfile, ImagesCard, IdentityCard, Sidebar, Skeleton, cropUtils, stories
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 11:45:16 +01:00
senke
a243adf0a1 docs(audit): FormBuilder refactor entry
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 11:36:31 +01:00
senke
6a68d4dc21 refactor(forms): FormBuilder module, useFormBuilder, FormBuilderFieldWidget, re-export, stories, a11y id
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 11:36:20 +01:00
senke
2f3a6f4ff9 docs(audit): MonitoringDashboardContent subcomponents entry
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 11:28:03 +01:00
senke
7dfd2e2592 refactor(monitoring): MonitoringDashboardContent split into Header, Stats, ValidationCard, ErrorsCard, PerformanceCard
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 11:27:54 +01:00
senke
76a480f5fb docs(audit): Table (data) refactor entry
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 11:23:10 +01:00
senke
6616256226 refactor(data): Table module, useTable, TableHeadRow, TableBodyRows, re-export, stories, tests
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 11:22:47 +01:00
senke
8d7506bde0 docs(audit): tooltip refactor entry
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 10:32:46 +01:00
senke
27fd12fe6c refactor(ui): tooltip module, useTooltip, re-export, tests
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 10:32:14 +01:00
senke
dfd9ba6220 docs(audit): tabs refactor entry
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 10:12:56 +01:00
senke
65545df49b refactor(ui): tabs module, re-export
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 10:12:33 +01:00
senke
3a27c35b48 docs(audit): accordion refactor entry
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 02:33:34 +01:00
senke
61e2021968 refactor(ui): accordion module, re-export
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-06 02:33:10 +01:00
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