refactor(folderBrowser): co-locate folder-browser feature into features/folderBrowser

This commit is contained in:
Psychotoxical
2026-06-30 17:57:17 +02:00
parent ac6974d4f1
commit 5808ef0839
8 changed files with 19 additions and 10 deletions
+1 -1
View File
@@ -35,7 +35,7 @@ const DeviceSync = lazy(() => import('@/features/deviceSync/pages/DeviceSync'));
const OfflineLibrary = lazy(() => import('@/features/offline/pages/OfflineLibrary'));
const LabelAlbums = lazy(() => import('@/features/album/pages/LabelAlbums'));
const SearchBrowsePage = lazy(() => import('@/features/search/pages/SearchBrowsePage'));
const FolderBrowser = lazy(() => import('../pages/FolderBrowser'));
const FolderBrowser = lazy(() => import('@/features/folderBrowser/pages/FolderBrowser'));
const InternetRadio = lazy(() => import('@/features/radio/pages/InternetRadio'));
const Genres = lazy(() => import('../pages/Genres'));
const GenreDetail = lazy(() => import('../pages/GenreDetail'));
@@ -6,7 +6,7 @@ import type { Track } from '@/lib/media/trackTypes';
import {
folderBrowserHasKeyModifiers, isFolderBrowserArrowKey,
type Column,
} from '../../utils/componentHelpers/folderBrowserHelpers';
} from '@/features/folderBrowser/utils/folderBrowserHelpers';
interface Props {
col: Column;
@@ -4,7 +4,7 @@ import { usePlayerStore } from '@/features/playback/store/playerStore';
import {
entryToTrack, folderBrowserHasKeyModifiers, isFolderBrowserArrowKey,
type Column, type NavPos,
} from '../utils/componentHelpers/folderBrowserHelpers';
} from '@/features/folderBrowser/utils/folderBrowserHelpers';
interface Args {
columns: Column[];
@@ -3,7 +3,7 @@ import { useLocation } from 'react-router-dom';
import { getMusicDirectory, getMusicIndexes } from '@/lib/api/subsonicLibrary';
import type { SubsonicDirectoryEntry } from '@/lib/api/subsonicTypes';
import type { Track } from '@/lib/media/trackTypes';
import type { Column, NavPos } from '../utils/componentHelpers/folderBrowserHelpers';
import type { Column, NavPos } from '@/features/folderBrowser/utils/folderBrowserHelpers';
let persistedPlayingPathIds: string[] = [];
@@ -1,5 +1,5 @@
import { useEffect, useRef, useState } from 'react';
import type { Column, NavPos } from '../utils/componentHelpers/folderBrowserHelpers';
import type { Column, NavPos } from '@/features/folderBrowser/utils/folderBrowserHelpers';
interface Args {
columns: Column[];
+9
View File
@@ -0,0 +1,9 @@
/**
* Folder Browser feature — the Miller-column directory browser over the
* server's raw music folders (`getMusicFolders`/`getMusicDirectory`/
* `getMusicIndexes`): the FolderBrowser page, its column component, the
* now-playing-path / scrolling / keyboard-nav hooks, and the pure path/entry
* helpers. The page is lazy-loaded by the router via its deep path, so it is
* not re-exported here; nothing else outside the feature consumes its modules.
*/
export {};
@@ -6,11 +6,11 @@ import { useTranslation } from 'react-i18next';
import {
entryToAlbumIfPresent, entryToTrack,
type Column, type ColumnKind, type NavPos,
} from '../utils/componentHelpers/folderBrowserHelpers';
import FolderBrowserColumn from '../components/folderBrowser/FolderBrowserColumn';
import { useFolderBrowserNowPlayingPath } from '../hooks/useFolderBrowserNowPlayingPath';
import { useFolderBrowserScrolling } from '../hooks/useFolderBrowserScrolling';
import { useFolderBrowserKeyboardNav } from '../hooks/useFolderBrowserKeyboardNav';
} from '@/features/folderBrowser/utils/folderBrowserHelpers';
import FolderBrowserColumn from '@/features/folderBrowser/components/FolderBrowserColumn';
import { useFolderBrowserNowPlayingPath } from '@/features/folderBrowser/hooks/useFolderBrowserNowPlayingPath';
import { useFolderBrowserScrolling } from '@/features/folderBrowser/hooks/useFolderBrowserScrolling';
import { useFolderBrowserKeyboardNav } from '@/features/folderBrowser/hooks/useFolderBrowserKeyboardNav';
export default function FolderBrowser() {
const { t } = useTranslation();