diff --git a/src/App.tsx b/src/App.tsx index ea34bbc2..feee803b 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -46,8 +46,11 @@ const { BrowseSettings } = loadable(() => import('@/screens/settings/BrowseSetti const { WebUISettings } = loadable(() => import('@/screens/settings/WebUISettings.tsx'), lazyLoadFallback); const { Migrate } = loadable(() => import('@/screens/Migrate.tsx'), lazyLoadFallback); const { DeviceSetting } = loadable(() => import('@/components/settings/DeviceSetting.tsx'), lazyLoadFallback); -const { TrackingSettings } = loadable(() => import('@/screens/settings/TrackingSettings.tsx'), lazyLoadFallback); -const { TrackerOAuthLogin } = loadable(() => import('@/screens/TrackerOAuthLogin.tsx'), lazyLoadFallback); +const { TrackingSettings } = loadable(() => import('@/modules/tracker/screens/TrackingSettings.tsx'), lazyLoadFallback); +const { TrackerOAuthLogin } = loadable( + () => import('@/modules/tracker/screens/TrackerOAuthLogin.tsx'), + lazyLoadFallback, +); const { LibraryDuplicates } = loadable( () => import('@/modules/library/screens/LibraryDuplicates.tsx'), lazyLoadFallback, diff --git a/src/modules/library/components/LibraryOptionsPanel.tsx b/src/modules/library/components/LibraryOptionsPanel.tsx index b432677a..434bf814 100644 --- a/src/modules/library/components/LibraryOptionsPanel.tsx +++ b/src/modules/library/components/LibraryOptionsPanel.tsx @@ -17,7 +17,7 @@ import { ThreeStateCheckboxInput } from '@/modules/core/components/inputs/ThreeS import { GridLayout } from '@/modules/library/contexts/LibraryOptionsContext.tsx'; import { OptionsTabs } from '@/modules/core/components/OptionsTabs.tsx'; import { requestManager } from '@/lib/requests/requests/RequestManager.ts'; -import { Trackers } from '@/lib/data/Trackers.ts'; +import { Trackers } from '@/modules/tracker/services/Trackers.ts'; import { GetTrackersSettingsQuery, MangaStatus } from '@/lib/graphql/generated/graphql.ts'; import { GET_TRACKERS_SETTINGS } from '@/lib/graphql/queries/TrackerQuery.ts'; import { statusToTranslationKey } from '@/modules/manga/services/Mangas.ts'; diff --git a/src/modules/manga/components/MangaActionMenuItems.tsx b/src/modules/manga/components/MangaActionMenuItems.tsx index a4d8fb21..6f1e421b 100644 --- a/src/modules/manga/components/MangaActionMenuItems.tsx +++ b/src/modules/manga/components/MangaActionMenuItems.tsx @@ -35,7 +35,7 @@ import { createShouldShowMenuItem, } from '@/modules/core/components/menu/Menu.utils.ts'; import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts'; -import { TrackManga } from '@/components/tracker/TrackManga.tsx'; +import { TrackManga } from '@/modules/tracker/components/TrackManga.tsx'; import { useCategorySelect } from '@/components/navbar/action/useCategorySelect.tsx'; import { ChaptersDownloadActionMenuItems } from '@/modules/chapter/components/actions/ChaptersDownloadActionMenuItems.tsx'; import { NestedMenuItem } from '@/modules/core/components/menu/NestedMenuItem.tsx'; diff --git a/src/modules/manga/components/TrackMangaButton.tsx b/src/modules/manga/components/TrackMangaButton.tsx index fd0155c5..cb5dd97e 100644 --- a/src/modules/manga/components/TrackMangaButton.tsx +++ b/src/modules/manga/components/TrackMangaButton.tsx @@ -14,8 +14,8 @@ import Dialog from '@mui/material/Dialog'; import CheckIcon from '@mui/icons-material/Check'; import { requestManager } from '@/lib/requests/requests/RequestManager.ts'; import { makeToast } from '@/lib/ui/Toast.ts'; -import { TrackManga } from '@/components/tracker/TrackManga.tsx'; -import { Trackers } from '@/lib/data/Trackers.ts'; +import { TrackManga } from '@/modules/tracker/components/TrackManga.tsx'; +import { Trackers } from '@/modules/tracker/services/Trackers.ts'; import { CustomIconButton } from '@/modules/core/components/buttons/CustomIconButton.tsx'; import { GetTrackersSettingsQuery, MangaType } from '@/lib/graphql/generated/graphql.ts'; import { GET_TRACKERS_SETTINGS } from '@/lib/graphql/queries/TrackerQuery.ts'; diff --git a/src/components/tracker/constants.ts b/src/modules/tracker/Tracker.constants.ts similarity index 100% rename from src/components/tracker/constants.ts rename to src/modules/tracker/Tracker.constants.ts diff --git a/src/modules/tracker/Tracker.types.ts b/src/modules/tracker/Tracker.types.ts new file mode 100644 index 00000000..eb2df7c4 --- /dev/null +++ b/src/modules/tracker/Tracker.types.ts @@ -0,0 +1,12 @@ +/* + * Copyright (C) Contributors to the Suwayomi project + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ + +export type MetadataTrackingSettings = { + updateProgressAfterReading: boolean; + updateProgressManualMarkRead: boolean; +}; diff --git a/src/components/tracker/TrackManga.tsx b/src/modules/tracker/components/TrackManga.tsx similarity index 97% rename from src/components/tracker/TrackManga.tsx rename to src/modules/tracker/components/TrackManga.tsx index 6cbc1e79..5c85735d 100644 --- a/src/components/tracker/TrackManga.tsx +++ b/src/modules/tracker/components/TrackManga.tsx @@ -14,8 +14,8 @@ import { useTranslation } from 'react-i18next'; import { requestManager } from '@/lib/requests/requests/RequestManager.ts'; import { EmptyViewAbsoluteCentered } from '@/modules/core/components/placeholder/EmptyViewAbsoluteCentered.tsx'; import { LoadingPlaceholder } from '@/modules/core/components/placeholder/LoadingPlaceholder.tsx'; -import { Trackers } from '@/lib/data/Trackers.ts'; -import { TrackerCard, TrackerMode } from '@/components/tracker/TrackerCard.tsx'; +import { Trackers } from '@/modules/tracker/services/Trackers.ts'; +import { TrackerCard, TrackerMode } from '@/modules/tracker/components/cards/TrackerCard.tsx'; import { makeToast } from '@/lib/ui/Toast.ts'; import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts'; import { GetMangaTrackRecordsQuery, GetTrackersBindQuery, MangaType } from '@/lib/graphql/generated/graphql.ts'; diff --git a/src/components/tracker/TrackerSearch.tsx b/src/modules/tracker/components/TrackerSearch.tsx similarity index 97% rename from src/components/tracker/TrackerSearch.tsx rename to src/modules/tracker/components/TrackerSearch.tsx index f20a1b2e..9a4ac555 100644 --- a/src/components/tracker/TrackerSearch.tsx +++ b/src/modules/tracker/components/TrackerSearch.tsx @@ -24,11 +24,11 @@ import Typography from '@mui/material/Typography'; import { requestManager } from '@/lib/requests/requests/RequestManager.ts'; import { EmptyViewAbsoluteCentered } from '@/modules/core/components/placeholder/EmptyViewAbsoluteCentered.tsx'; import { LoadingPlaceholder } from '@/modules/core/components/placeholder/LoadingPlaceholder.tsx'; -import { Tracker, TTrackerBase } from '@/lib/data/Trackers.ts'; +import { Tracker, TTrackerBase } from '@/modules/tracker/services/Trackers.ts'; import { SearchTextField } from '@/modules/core/components/inputs/SearchTextField.tsx'; import { makeToast } from '@/lib/ui/Toast.ts'; -import { TrackerMangaCard } from '@/components/tracker/TrackerMangaCard.tsx'; -import { DIALOG_PADDING } from '@/components/tracker/constants.ts'; +import { TrackerMangaCard } from '@/modules/tracker/components/cards/TrackerMangaCard.tsx'; +import { DIALOG_PADDING } from '@/modules/tracker/Tracker.constants.ts'; import { useGetOptionForDirection } from '@/theme.tsx'; import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts'; import { MangaType } from '@/lib/graphql/generated/graphql.ts'; diff --git a/src/components/tracker/SettingsTrackerCard.tsx b/src/modules/tracker/components/cards/SettingsTrackerCard.tsx similarity index 98% rename from src/components/tracker/SettingsTrackerCard.tsx rename to src/modules/tracker/components/cards/SettingsTrackerCard.tsx index 0fa7c33b..ac29b3c6 100644 --- a/src/components/tracker/SettingsTrackerCard.tsx +++ b/src/modules/tracker/components/cards/SettingsTrackerCard.tsx @@ -24,7 +24,7 @@ import Button from '@mui/material/Button'; import { PasswordTextField } from '@/modules/core/components/inputs/PasswordTextField.tsx'; import { makeToast } from '@/lib/ui/Toast.ts'; import { requestManager } from '@/lib/requests/requests/RequestManager.ts'; -import { Trackers, TTrackerSearch } from '@/lib/data/Trackers.ts'; +import { Trackers, TTrackerSearch } from '@/modules/tracker/services/Trackers.ts'; export const SettingsTrackerCard = ({ tracker }: { tracker: TTrackerSearch }) => { const { t } = useTranslation(); diff --git a/src/components/tracker/TrackerActiveCard.tsx b/src/modules/tracker/components/cards/TrackerActiveCard.tsx similarity index 98% rename from src/components/tracker/TrackerActiveCard.tsx rename to src/modules/tracker/components/cards/TrackerActiveCard.tsx index 7a602b73..742887ca 100644 --- a/src/components/tracker/TrackerActiveCard.tsx +++ b/src/modules/tracker/components/cards/TrackerActiveCard.tsx @@ -29,13 +29,13 @@ import MoreVertIcon from '@mui/icons-material/MoreVert'; import PopupState, { bindDialog, bindMenu, bindTrigger } from 'material-ui-popup-state'; import { useMemo, useState } from 'react'; import { requestManager } from '@/lib/requests/requests/RequestManager.ts'; -import { Trackers, TTrackerBind, TTrackRecordBind, UNSET_DATE } from '@/lib/data/Trackers.ts'; +import { Trackers, TTrackerBind, TTrackRecordBind, UNSET_DATE } from '@/modules/tracker/services/Trackers.ts'; import { ListPreference } from '@/modules/source/components/sourceConfiguration/ListPreference.tsx'; import { NumberSetting } from '@/modules/core/components/settings/NumberSetting.tsx'; import { DateSetting } from '@/modules/core/components/settings/DateSetting.tsx'; import { makeToast } from '@/lib/ui/Toast.ts'; -import { Menu } from '@/modules/core/components/menu/Menu'; -import { CARD_STYLING } from '@/components/tracker/constants.ts'; +import { Menu } from '@/modules/core/components/menu/Menu.tsx'; +import { CARD_STYLING } from '@/modules/tracker/Tracker.constants.ts'; import { TypographyMaxLines } from '@/modules/core/components/TypographyMaxLines.tsx'; import { SelectSetting, SelectSettingValue } from '@/modules/core/components/settings/SelectSetting.tsx'; import { CheckboxInput } from '@/modules/core/components/inputs/CheckboxInput.tsx'; diff --git a/src/components/tracker/TrackerCard.tsx b/src/modules/tracker/components/cards/TrackerCard.tsx similarity index 81% rename from src/components/tracker/TrackerCard.tsx rename to src/modules/tracker/components/cards/TrackerCard.tsx index f9be8648..6ae7fddb 100644 --- a/src/components/tracker/TrackerCard.tsx +++ b/src/modules/tracker/components/cards/TrackerCard.tsx @@ -6,10 +6,10 @@ * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ -import { TrackerUntrackedCard } from '@/components/tracker/TrackerUntrackedCard.tsx'; -import { TrackerSearch } from '@/components/tracker/TrackerSearch.tsx'; -import { TrackerActiveCard } from '@/components/tracker/TrackerActiveCard.tsx'; -import { TTrackerBind, TTrackRecordBind } from '@/lib/data/Trackers.ts'; +import { TrackerUntrackedCard } from '@/modules/tracker/components/cards/TrackerUntrackedCard.tsx'; +import { TrackerSearch } from '@/modules/tracker/components/TrackerSearch.tsx'; +import { TrackerActiveCard } from '@/modules/tracker/components/cards/TrackerActiveCard.tsx'; +import { TTrackerBind, TTrackRecordBind } from '@/modules/tracker/services/Trackers.ts'; import { MangaType } from '@/lib/graphql/generated/graphql.ts'; import { MangaIdInfo } from '@/modules/manga/services/Mangas.ts'; diff --git a/src/components/tracker/TrackerMangaCard.tsx b/src/modules/tracker/components/cards/TrackerMangaCard.tsx similarity index 99% rename from src/components/tracker/TrackerMangaCard.tsx rename to src/modules/tracker/components/cards/TrackerMangaCard.tsx index c40b58b4..4cc03656 100644 --- a/src/components/tracker/TrackerMangaCard.tsx +++ b/src/modules/tracker/components/cards/TrackerMangaCard.tsx @@ -26,7 +26,7 @@ import { SpinnerImage } from '@/modules/core/components/SpinnerImage.tsx'; import { TypographyMaxLines } from '@/modules/core/components/TypographyMaxLines.tsx'; import { Metadata } from '@/modules/core/components/Metadata.tsx'; import { MediaQuery } from '@/lib/ui/MediaQuery.tsx'; -import { TTrackerManga } from '@/lib/data/Trackers.ts'; +import { TTrackerManga } from '@/modules/tracker/services/Trackers.ts'; const TrackerMangaCardTitle = ({ title, selected }: { title: string; selected: boolean }) => ( { const { t } = useTranslation(); diff --git a/src/lib/data/Trackers.ts b/src/modules/tracker/services/Trackers.ts similarity index 100% rename from src/lib/data/Trackers.ts rename to src/modules/tracker/services/Trackers.ts diff --git a/src/typings.ts b/src/typings.ts index 5ed12a83..bd8bc604 100644 --- a/src/typings.ts +++ b/src/typings.ts @@ -15,6 +15,7 @@ import { TranslationKey } from '@/Base.types.ts'; import { MangaMetadataKeys } from '@/modules/manga/MangaCard.types.tsx'; import { LibraryOptions, MetadataLibrarySettings } from '@/modules/library/Library.types.ts'; import { SourceMetadataKeys } from '@/modules/source/Source.types.ts'; +import { MetadataTrackingSettings } from '@/modules/tracker/Tracker.types.ts'; export interface ICategoryMetadata extends LibraryOptions {} @@ -87,11 +88,6 @@ export type MetadataBrowseSettings = { hideLibraryEntries: boolean; }; -export type MetadataTrackingSettings = { - updateProgressAfterReading: boolean; - updateProgressManualMarkRead: boolean; -}; - export type MetadataUpdateSettings = { webUIInformAvailableUpdate: boolean; serverInformAvailableUpdate: boolean;