From 32bfca8db2c823022b7e3f5d809165bf375576c1 Mon Sep 17 00:00:00 2001 From: schroda <50052685+schroda@users.noreply.github.com> Date: Sat, 16 Aug 2025 15:48:07 +0200 Subject: [PATCH] Structure "source" in sub-features --- src/App.tsx | 7 +++++-- .../{ => browse}/components/SourceOptions.tsx | 16 ++++++++-------- .../components/filters/CheckBoxFilter.tsx | 0 .../components/filters/GroupFilter.tsx | 2 +- .../components/filters/HeaderFilter.tsx | 0 .../components/filters/SelectFilter.tsx | 0 .../components/filters/SeparatorFilter.tsx | 0 .../components/filters/SortFilter.tsx | 0 .../components/filters/TextFilter.tsx | 0 .../components/filters/TriStateFilter.tsx | 0 .../source/{ => browse}/screens/SourceMangas.tsx | 2 +- src/features/source/components/SourceCard.tsx | 2 +- .../components}/EditTextPreference.tsx | 0 .../components}/ListPreference.tsx | 0 .../components}/MultiSelectListPreference.tsx | 0 .../components}/TwoStatePreference.tsx | 0 .../screens/SourceConfigure.tsx | 8 ++++---- .../components/cards/TrackerActiveCard.tsx | 2 +- 18 files changed, 21 insertions(+), 18 deletions(-) rename src/features/source/{ => browse}/components/SourceOptions.tsx (94%) rename src/features/source/{ => browse}/components/filters/CheckBoxFilter.tsx (100%) rename src/features/source/{ => browse}/components/filters/GroupFilter.tsx (95%) rename src/features/source/{ => browse}/components/filters/HeaderFilter.tsx (100%) rename src/features/source/{ => browse}/components/filters/SelectFilter.tsx (100%) rename src/features/source/{ => browse}/components/filters/SeparatorFilter.tsx (100%) rename src/features/source/{ => browse}/components/filters/SortFilter.tsx (100%) rename src/features/source/{ => browse}/components/filters/TextFilter.tsx (100%) rename src/features/source/{ => browse}/components/filters/TriStateFilter.tsx (100%) rename src/features/source/{ => browse}/screens/SourceMangas.tsx (99%) rename src/features/source/{components/sourceConfiguration => configuration/components}/EditTextPreference.tsx (100%) rename src/features/source/{components/sourceConfiguration => configuration/components}/ListPreference.tsx (100%) rename src/features/source/{components/sourceConfiguration => configuration/components}/MultiSelectListPreference.tsx (100%) rename src/features/source/{components/sourceConfiguration => configuration/components}/TwoStatePreference.tsx (100%) rename src/features/source/{ => configuration}/screens/SourceConfigure.tsx (89%) diff --git a/src/App.tsx b/src/App.tsx index 3bbeb6ad..c93ba60f 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -40,8 +40,11 @@ const { CategorySettings } = loadable( () => import('@/features/category/screens/CategorySettings.tsx'), lazyLoadFallback, ); -const { SourceConfigure } = loadable(() => import('@/features/source/screens/SourceConfigure.tsx'), lazyLoadFallback); -const { SourceMangas } = loadable(() => import('@/features/source/screens/SourceMangas.tsx'), lazyLoadFallback); +const { SourceConfigure } = loadable( + () => import('@/features/source/configuration/screens/SourceConfigure.tsx'), + lazyLoadFallback, +); +const { SourceMangas } = loadable(() => import('@/features/source/browse/screens/SourceMangas.tsx'), lazyLoadFallback); const { ExtensionInfo } = loadable(() => import('@/features/extension/screens/ExtensionInfo.tsx'), lazyLoadFallback); const { Updates } = loadable(() => import('@/features/updates/screens/Updates.tsx'), lazyLoadFallback); const { History } = loadable(() => import('@/features/history/screens/History.tsx'), lazyLoadFallback); diff --git a/src/features/source/components/SourceOptions.tsx b/src/features/source/browse/components/SourceOptions.tsx similarity index 94% rename from src/features/source/components/SourceOptions.tsx rename to src/features/source/browse/components/SourceOptions.tsx index 64a9cf7e..f70f3695 100644 --- a/src/features/source/components/SourceOptions.tsx +++ b/src/features/source/browse/components/SourceOptions.tsx @@ -25,16 +25,16 @@ import DialogContent from '@mui/material/DialogContent'; import TextField from '@mui/material/TextField'; import { CustomTooltip } from '@/base/components/CustomTooltip.tsx'; import { OptionsPanel } from '@/base/components/modals/OptionsPanel.tsx'; -import { CheckBoxFilter } from '@/features/source/components/filters/CheckBoxFilter.tsx'; -import { HeaderFilter } from '@/features/source/components/filters/HeaderFilter.tsx'; -import { SelectFilter } from '@/features/source/components/filters/SelectFilter.tsx'; -import { SortFilter } from '@/features/source/components/filters/SortFilter.tsx'; -import { TextFilter } from '@/features/source/components/filters/TextFilter.tsx'; -import { TriStateFilter } from '@/features/source/components/filters/TriStateFilter.tsx'; +import { CheckBoxFilter } from '@/features/source/browse/components/filters/CheckBoxFilter.tsx'; +import { HeaderFilter } from '@/features/source/browse/components/filters/HeaderFilter.tsx'; +import { SelectFilter } from '@/features/source/browse/components/filters/SelectFilter.tsx'; +import { SortFilter } from '@/features/source/browse/components/filters/SortFilter.tsx'; +import { TextFilter } from '@/features/source/browse/components/filters/TextFilter.tsx'; +import { TriStateFilter } from '@/features/source/browse/components/filters/TriStateFilter.tsx'; // this can only cycle once, so should be fine // eslint-disable-next-line import/no-cycle -import { GroupFilter } from '@/features/source/components/filters/GroupFilter.tsx'; -import { SeparatorFilter } from '@/features/source/components/filters/SeparatorFilter.tsx'; +import { GroupFilter } from '@/features/source/browse/components/filters/GroupFilter.tsx'; +import { SeparatorFilter } from '@/features/source/browse/components/filters/SeparatorFilter.tsx'; import { StyledFab } from '@/base/components/buttons/StyledFab.tsx'; import { awaitConfirmation } from '@/base/utils/AwaitableDialog.tsx'; import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts'; diff --git a/src/features/source/components/filters/CheckBoxFilter.tsx b/src/features/source/browse/components/filters/CheckBoxFilter.tsx similarity index 100% rename from src/features/source/components/filters/CheckBoxFilter.tsx rename to src/features/source/browse/components/filters/CheckBoxFilter.tsx diff --git a/src/features/source/components/filters/GroupFilter.tsx b/src/features/source/browse/components/filters/GroupFilter.tsx similarity index 95% rename from src/features/source/components/filters/GroupFilter.tsx rename to src/features/source/browse/components/filters/GroupFilter.tsx index f2b1aca6..65209365 100644 --- a/src/features/source/components/filters/GroupFilter.tsx +++ b/src/features/source/browse/components/filters/GroupFilter.tsx @@ -15,7 +15,7 @@ import Stack from '@mui/material/Stack'; import Box from '@mui/material/Box'; import React from 'react'; // eslint-disable-next-line import/no-cycle -import { Options } from '@/features/source/components/SourceOptions.tsx'; +import { Options } from '@/features/source/browse/components/SourceOptions.tsx'; import { SourceFilters } from '@/features/source/Source.types.ts'; interface Props { diff --git a/src/features/source/components/filters/HeaderFilter.tsx b/src/features/source/browse/components/filters/HeaderFilter.tsx similarity index 100% rename from src/features/source/components/filters/HeaderFilter.tsx rename to src/features/source/browse/components/filters/HeaderFilter.tsx diff --git a/src/features/source/components/filters/SelectFilter.tsx b/src/features/source/browse/components/filters/SelectFilter.tsx similarity index 100% rename from src/features/source/components/filters/SelectFilter.tsx rename to src/features/source/browse/components/filters/SelectFilter.tsx diff --git a/src/features/source/components/filters/SeparatorFilter.tsx b/src/features/source/browse/components/filters/SeparatorFilter.tsx similarity index 100% rename from src/features/source/components/filters/SeparatorFilter.tsx rename to src/features/source/browse/components/filters/SeparatorFilter.tsx diff --git a/src/features/source/components/filters/SortFilter.tsx b/src/features/source/browse/components/filters/SortFilter.tsx similarity index 100% rename from src/features/source/components/filters/SortFilter.tsx rename to src/features/source/browse/components/filters/SortFilter.tsx diff --git a/src/features/source/components/filters/TextFilter.tsx b/src/features/source/browse/components/filters/TextFilter.tsx similarity index 100% rename from src/features/source/components/filters/TextFilter.tsx rename to src/features/source/browse/components/filters/TextFilter.tsx diff --git a/src/features/source/components/filters/TriStateFilter.tsx b/src/features/source/browse/components/filters/TriStateFilter.tsx similarity index 100% rename from src/features/source/components/filters/TriStateFilter.tsx rename to src/features/source/browse/components/filters/TriStateFilter.tsx diff --git a/src/features/source/screens/SourceMangas.tsx b/src/features/source/browse/screens/SourceMangas.tsx similarity index 99% rename from src/features/source/screens/SourceMangas.tsx rename to src/features/source/browse/screens/SourceMangas.tsx index 923ccc4a..0d2bbcfa 100644 --- a/src/features/source/screens/SourceMangas.tsx +++ b/src/features/source/browse/screens/SourceMangas.tsx @@ -27,7 +27,7 @@ import { } from '@/lib/requests/RequestManager.ts'; import { SourceGridLayout } from '@/features/source/components/SourceGridLayout.tsx'; import { AppbarSearch } from '@/base/components/AppbarSearch.tsx'; -import { SourceOptions } from '@/features/source/components/SourceOptions.tsx'; +import { SourceOptions } from '@/features/source/browse/components/SourceOptions.tsx'; import { BaseMangaGrid } from '@/features/manga/components/BaseMangaGrid.tsx'; import { GetSourceBrowseQuery, diff --git a/src/features/source/components/SourceCard.tsx b/src/features/source/components/SourceCard.tsx index e35b9d44..b16f0986 100644 --- a/src/features/source/components/SourceCard.tsx +++ b/src/features/source/components/SourceCard.tsx @@ -18,7 +18,7 @@ import PushPinIcon from '@mui/icons-material/PushPin'; import PushPinOutlinedIcon from '@mui/icons-material/PushPinOutlined'; import IconButton from '@mui/material/IconButton'; import { requestManager } from '@/lib/requests/RequestManager.ts'; -import { SourceContentType } from '@/features/source/screens/SourceMangas.tsx'; +import { SourceContentType } from '@/features/source/browse/screens/SourceMangas.tsx'; import { GetSourcesListQuery } from '@/lib/graphql/generated/graphql.ts'; import { AppRoutes } from '@/base/AppRoute.constants.ts'; import { MUIUtil } from '@/lib/mui/MUI.util.ts'; diff --git a/src/features/source/components/sourceConfiguration/EditTextPreference.tsx b/src/features/source/configuration/components/EditTextPreference.tsx similarity index 100% rename from src/features/source/components/sourceConfiguration/EditTextPreference.tsx rename to src/features/source/configuration/components/EditTextPreference.tsx diff --git a/src/features/source/components/sourceConfiguration/ListPreference.tsx b/src/features/source/configuration/components/ListPreference.tsx similarity index 100% rename from src/features/source/components/sourceConfiguration/ListPreference.tsx rename to src/features/source/configuration/components/ListPreference.tsx diff --git a/src/features/source/components/sourceConfiguration/MultiSelectListPreference.tsx b/src/features/source/configuration/components/MultiSelectListPreference.tsx similarity index 100% rename from src/features/source/components/sourceConfiguration/MultiSelectListPreference.tsx rename to src/features/source/configuration/components/MultiSelectListPreference.tsx diff --git a/src/features/source/components/sourceConfiguration/TwoStatePreference.tsx b/src/features/source/configuration/components/TwoStatePreference.tsx similarity index 100% rename from src/features/source/components/sourceConfiguration/TwoStatePreference.tsx rename to src/features/source/configuration/components/TwoStatePreference.tsx diff --git a/src/features/source/screens/SourceConfigure.tsx b/src/features/source/configuration/screens/SourceConfigure.tsx similarity index 89% rename from src/features/source/screens/SourceConfigure.tsx rename to src/features/source/configuration/screens/SourceConfigure.tsx index 513aac90..9a8400ae 100644 --- a/src/features/source/screens/SourceConfigure.tsx +++ b/src/features/source/configuration/screens/SourceConfigure.tsx @@ -15,10 +15,10 @@ import { cloneObject } from '@/base/utils/cloneObject.tsx'; import { SwitchPreferenceCompat, CheckBoxPreference, -} from '@/features/source/components/sourceConfiguration/TwoStatePreference.tsx'; -import { ListPreference } from '@/features/source/components/sourceConfiguration/ListPreference.tsx'; -import { EditTextPreference } from '@/features/source/components/sourceConfiguration/EditTextPreference.tsx'; -import { MultiSelectListPreference } from '@/features/source/components/sourceConfiguration/MultiSelectListPreference.tsx'; +} from '@/features/source/configuration/components/TwoStatePreference.tsx'; +import { ListPreference } from '@/features/source/configuration/components/ListPreference.tsx'; +import { EditTextPreference } from '@/features/source/configuration/components/EditTextPreference.tsx'; +import { MultiSelectListPreference } from '@/features/source/configuration/components/MultiSelectListPreference.tsx'; import { LoadingPlaceholder } from '@/base/components/feedback/LoadingPlaceholder.tsx'; import { EmptyViewAbsoluteCentered } from '@/base/components/feedback/EmptyViewAbsoluteCentered.tsx'; import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts'; diff --git a/src/features/tracker/components/cards/TrackerActiveCard.tsx b/src/features/tracker/components/cards/TrackerActiveCard.tsx index 55983ca6..3f415497 100644 --- a/src/features/tracker/components/cards/TrackerActiveCard.tsx +++ b/src/features/tracker/components/cards/TrackerActiveCard.tsx @@ -32,7 +32,7 @@ import VisibilityOffIcon from '@mui/icons-material/VisibilityOff'; import { CustomTooltip } from '@/base/components/CustomTooltip.tsx'; import { requestManager } from '@/lib/requests/RequestManager.ts'; import { Trackers } from '@/features/tracker/services/Trackers.ts'; -import { ListPreference } from '@/features/source/components/sourceConfiguration/ListPreference.tsx'; +import { ListPreference } from '@/features/source/configuration/components/ListPreference.tsx'; import { NumberSetting } from '@/base/components/settings/NumberSetting.tsx'; import { DateSetting } from '@/base/components/settings/DateSetting.tsx'; import { makeToast } from '@/base/utils/Toast.ts';