Move setting files into new folder

This commit is contained in:
schroda
2024-10-05 22:53:22 +02:00
parent 57158d6abd
commit a16fef0aab
40 changed files with 150 additions and 130 deletions

View File

@@ -28,8 +28,8 @@ const { Library } = loadable(() => import('@/modules/library/screens/Library.tsx
const { Manga } = loadable(() => import('@/modules/manga/screens/Manga.tsx'), lazyLoadFallback); const { Manga } = loadable(() => import('@/modules/manga/screens/Manga.tsx'), lazyLoadFallback);
const { Reader } = loadable(() => import('@/modules/reader/screens/Reader.tsx'), lazyLoadFallback); const { Reader } = loadable(() => import('@/modules/reader/screens/Reader.tsx'), lazyLoadFallback);
const { SearchAll } = loadable(() => import('@/modules/global-search/screens/SearchAll.tsx'), lazyLoadFallback); const { SearchAll } = loadable(() => import('@/modules/global-search/screens/SearchAll.tsx'), lazyLoadFallback);
const { Settings } = loadable(() => import('@/screens/Settings'), lazyLoadFallback); const { Settings } = loadable(() => import('@/modules/settings/screens/Settings.tsx'), lazyLoadFallback);
const { About } = loadable(() => import('@/screens/settings/About'), lazyLoadFallback); const { About } = loadable(() => import('@/modules/settings/screens/About.tsx'), lazyLoadFallback);
const { Backup } = loadable(() => import('@/modules/backup/screens/Backup.tsx'), lazyLoadFallback); const { Backup } = loadable(() => import('@/modules/backup/screens/Backup.tsx'), lazyLoadFallback);
const { CategorySettings } = loadable( const { CategorySettings } = loadable(
() => import('@/modules/category/screens/CategorySettings.tsx'), () => import('@/modules/category/screens/CategorySettings.tsx'),
@@ -47,9 +47,9 @@ const { DownloadSettings } = loadable(
() => import('@/modules/downloads/screens/DownloadSettings.tsx'), () => import('@/modules/downloads/screens/DownloadSettings.tsx'),
lazyLoadFallback, lazyLoadFallback,
); );
const { ServerSettings } = loadable(() => import('@/screens/settings/ServerSettings.tsx'), lazyLoadFallback); const { ServerSettings } = loadable(() => import('@/modules/settings/screens/ServerSettings.tsx'), lazyLoadFallback);
const { BrowseSettings } = loadable(() => import('@/modules/browse/screens/BrowseSettings.tsx'), lazyLoadFallback); const { BrowseSettings } = loadable(() => import('@/modules/browse/screens/BrowseSettings.tsx'), lazyLoadFallback);
const { WebUISettings } = loadable(() => import('@/screens/settings/WebUISettings.tsx'), lazyLoadFallback); const { WebUISettings } = loadable(() => import('@/modules/settings/screens/WebUISettings.tsx'), lazyLoadFallback);
const { Migrate } = loadable(() => import('@/modules/migration/screens/Migrate.tsx'), lazyLoadFallback); const { Migrate } = loadable(() => import('@/modules/migration/screens/Migrate.tsx'), lazyLoadFallback);
const { DeviceSetting } = loadable(() => import('@/modules/device/screens/DeviceSetting.tsx'), lazyLoadFallback); const { DeviceSetting } = loadable(() => import('@/modules/device/screens/DeviceSetting.tsx'), lazyLoadFallback);
const { TrackingSettings } = loadable(() => import('@/modules/tracker/screens/TrackingSettings.tsx'), lazyLoadFallback); const { TrackingSettings } = loadable(() => import('@/modules/tracker/screens/TrackingSettings.tsx'), lazyLoadFallback);
@@ -61,7 +61,7 @@ const { LibraryDuplicates } = loadable(
() => import('@/modules/library/screens/LibraryDuplicates.tsx'), () => import('@/modules/library/screens/LibraryDuplicates.tsx'),
lazyLoadFallback, lazyLoadFallback,
); );
const { Appearance } = loadable(() => import('@/screens/settings/Appearance.tsx'), lazyLoadFallback); const { Appearance } = loadable(() => import('@/modules/settings/screens/Appearance.tsx'), lazyLoadFallback);
if (process.env.NODE_ENV !== 'production') { if (process.env.NODE_ENV !== 'production') {
// Adds messages only in a dev environment // Adds messages only in a dev environment

View File

@@ -17,7 +17,7 @@ import Button from '@mui/material/Button';
import { requestManager } from '@/lib/requests/requests/RequestManager.ts'; import { requestManager } from '@/lib/requests/requests/RequestManager.ts';
import { useUpdateChecker } from '@/modules/app-updates/hooks/useUpdateChecker.tsx'; import { useUpdateChecker } from '@/modules/app-updates/hooks/useUpdateChecker.tsx';
import { VersionUpdateInfoDialog } from '@/modules/app-updates/components/VersionUpdateInfoDialog.tsx'; import { VersionUpdateInfoDialog } from '@/modules/app-updates/components/VersionUpdateInfoDialog.tsx';
import { useMetadataServerSettings } from '@/lib/metadata/metadataServerSettings.ts'; import { useMetadataServerSettings } from '@/modules/settings/services/ServerSettingsMetadata.ts';
import { useLocalStorage } from '@/modules/core/hooks/useStorage.tsx'; import { useLocalStorage } from '@/modules/core/hooks/useStorage.tsx';
import { getVersion } from '@/modules/app-updates/services/AppUpdateChecker.tsx'; import { getVersion } from '@/modules/app-updates/services/AppUpdateChecker.tsx';

View File

@@ -22,7 +22,7 @@ import { makeToast } from '@/lib/ui/Toast.ts';
import { ABOUT_WEBUI, WEBUI_UPDATE_CHECK } from '@/lib/graphql/fragments/InfoFragments.ts'; import { ABOUT_WEBUI, WEBUI_UPDATE_CHECK } from '@/lib/graphql/fragments/InfoFragments.ts';
import { VersionUpdateInfoDialog } from '@/modules/app-updates/components/VersionUpdateInfoDialog.tsx'; import { VersionUpdateInfoDialog } from '@/modules/app-updates/components/VersionUpdateInfoDialog.tsx';
import { useUpdateChecker } from '@/modules/app-updates/hooks/useUpdateChecker.tsx'; import { useUpdateChecker } from '@/modules/app-updates/hooks/useUpdateChecker.tsx';
import { useMetadataServerSettings } from '@/lib/metadata/metadataServerSettings.ts'; import { useMetadataServerSettings } from '@/modules/settings/services/ServerSettingsMetadata.ts';
const disabledUpdateCheck = () => Promise.resolve(); const disabledUpdateCheck = () => Promise.resolve();

View File

@@ -31,10 +31,10 @@ import { Progress } from '@/modules/core/components/Progress.tsx';
import { TextSetting } from '@/modules/core/components/settings/text/TextSetting.tsx'; import { TextSetting } from '@/modules/core/components/settings/text/TextSetting.tsx';
import { NumberSetting } from '@/modules/core/components/settings/NumberSetting.tsx'; import { NumberSetting } from '@/modules/core/components/settings/NumberSetting.tsx';
import { TimeSetting } from '@/modules/core/components/settings/TimeSetting.tsx'; import { TimeSetting } from '@/modules/core/components/settings/TimeSetting.tsx';
import { ServerSettings } from '@/typings.ts';
import { LoadingPlaceholder } from '@/modules/core/components/placeholder/LoadingPlaceholder.tsx'; import { LoadingPlaceholder } from '@/modules/core/components/placeholder/LoadingPlaceholder.tsx';
import { EmptyViewAbsoluteCentered } from '@/modules/core/components/placeholder/EmptyViewAbsoluteCentered.tsx'; import { EmptyViewAbsoluteCentered } from '@/modules/core/components/placeholder/EmptyViewAbsoluteCentered.tsx';
import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts'; import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts';
import { ServerSettings } from '@/modules/settings/Settings.types.ts';
type BackupSettingsType = Pick<ServerSettings, 'backupPath' | 'backupTime' | 'backupInterval' | 'backupTTL'>; type BackupSettingsType = Pick<ServerSettings, 'backupPath' | 'backupTime' | 'backupInterval' | 'backupTTL'>;

View File

@@ -16,18 +16,18 @@ import { NavBarContext } from '@/modules/navigation-bar/contexts/NavbarContext.t
import { requestManager } from '@/lib/requests/requests/RequestManager.ts'; import { requestManager } from '@/lib/requests/requests/RequestManager.ts';
import { NumberSetting } from '@/modules/core/components/settings/NumberSetting.tsx'; import { NumberSetting } from '@/modules/core/components/settings/NumberSetting.tsx';
import { MutableListSetting } from '@/modules/core/components/settings/MutableListSetting.tsx'; import { MutableListSetting } from '@/modules/core/components/settings/MutableListSetting.tsx';
import { ServerSettings as GqlServerSettings } from '@/typings.ts';
import { TextSetting } from '@/modules/core/components/settings/text/TextSetting.tsx'; import { TextSetting } from '@/modules/core/components/settings/text/TextSetting.tsx';
import { useLocalStorage } from '@/modules/core/hooks/useStorage.tsx'; import { useLocalStorage } from '@/modules/core/hooks/useStorage.tsx';
import { import {
createUpdateMetadataServerSettings, createUpdateMetadataServerSettings,
useMetadataServerSettings, useMetadataServerSettings,
} from '@/lib/metadata/metadataServerSettings.ts'; } from '@/modules/settings/services/ServerSettingsMetadata.ts';
import { LoadingPlaceholder } from '@/modules/core/components/placeholder/LoadingPlaceholder.tsx'; import { LoadingPlaceholder } from '@/modules/core/components/placeholder/LoadingPlaceholder.tsx';
import { EmptyViewAbsoluteCentered } from '@/modules/core/components/placeholder/EmptyViewAbsoluteCentered.tsx'; import { EmptyViewAbsoluteCentered } from '@/modules/core/components/placeholder/EmptyViewAbsoluteCentered.tsx';
import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts'; import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts';
import { makeToast } from '@/lib/ui/Toast.ts'; import { makeToast } from '@/lib/ui/Toast.ts';
import { MetadataBrowseSettings } from '@/modules/browse/Browse.types.ts'; import { MetadataBrowseSettings } from '@/modules/browse/Browse.types.ts';
import { ServerSettings as GqlServerSettings } from '@/modules/settings/Settings.types.ts';
type ExtensionsSettings = Pick<GqlServerSettings, 'maxSourcesInParallel' | 'localSourcePath' | 'extensionRepos'>; type ExtensionsSettings = Pick<GqlServerSettings, 'maxSourcesInParallel' | 'localSourcePath' | 'extensionRepos'>;

View File

@@ -24,7 +24,7 @@ import { Categories } from '@/modules/category/services/Categories.ts';
import { CheckboxInput } from '@/modules/core/components/inputs/CheckboxInput.tsx'; import { CheckboxInput } from '@/modules/core/components/inputs/CheckboxInput.tsx';
import { makeToast } from '@/lib/ui/Toast.ts'; import { makeToast } from '@/lib/ui/Toast.ts';
import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts'; import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts';
import { updateMetadataServerSettings } from '@/lib/metadata/metadataServerSettings.ts'; import { updateMetadataServerSettings } from '@/modules/settings/services/ServerSettingsMetadata.ts';
import { import {
GetCategoriesBaseQuery, GetCategoriesBaseQuery,
GetCategoriesBaseQueryVariables, GetCategoriesBaseQueryVariables,

View File

@@ -38,7 +38,7 @@ import {
createShouldShowMenuItem, createShouldShowMenuItem,
} from '@/modules/core/components/menu/Menu.utils.ts'; } from '@/modules/core/components/menu/Menu.utils.ts';
import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts'; import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts';
import { useMetadataServerSettings } from '@/lib/metadata/metadataServerSettings.ts'; import { useMetadataServerSettings } from '@/modules/settings/services/ServerSettingsMetadata.ts';
type BaseProps = { onClose: () => void }; type BaseProps = { onClose: () => void };

View File

@@ -8,7 +8,7 @@
import MenuItem from '@mui/material/MenuItem'; import MenuItem from '@mui/material/MenuItem';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { useMetadataServerSettings } from '@/lib/metadata/metadataServerSettings.ts'; import { useMetadataServerSettings } from '@/modules/settings/services/ServerSettingsMetadata.ts';
import { Mangas } from '@/modules/manga/services/Mangas.ts'; import { Mangas } from '@/modules/manga/services/Mangas.ts';
import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts'; import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts';
import { MangaType } from '@/lib/graphql/generated/graphql.ts'; import { MangaType } from '@/lib/graphql/generated/graphql.ts';

View File

@@ -11,7 +11,7 @@ import gql from 'graphql-tag';
import { DocumentNode } from '@apollo/client'; import { DocumentNode } from '@apollo/client';
import { makeToast } from '@/lib/ui/Toast.ts'; import { makeToast } from '@/lib/ui/Toast.ts';
import { requestManager } from '@/lib/requests/requests/RequestManager.ts'; import { requestManager } from '@/lib/requests/requests/RequestManager.ts';
import { getMetadataServerSettings } from '@/lib/metadata/metadataServerSettings.ts'; import { getMetadataServerSettings } from '@/modules/settings/services/ServerSettingsMetadata.ts';
import { import {
ChapterListFieldsFragment, ChapterListFieldsFragment,
ChapterType, ChapterType,

View File

@@ -25,7 +25,7 @@ import { LibraryOptionsContextProvider } from '@/modules/library/contexts/Librar
import { ActiveDeviceContextProvider } from '@/modules/device/contexts/DeviceContext.tsx'; import { ActiveDeviceContextProvider } from '@/modules/device/contexts/DeviceContext.tsx';
import { MediaQuery } from '@/lib/ui/MediaQuery.tsx'; import { MediaQuery } from '@/lib/ui/MediaQuery.tsx';
import { AppThemes, getTheme } from '@/modules/theme/services/AppThemes.ts'; import { AppThemes, getTheme } from '@/modules/theme/services/AppThemes.ts';
import { useMetadataServerSettings } from '@/lib/metadata/metadataServerSettings.ts'; import { useMetadataServerSettings } from '@/modules/settings/services/ServerSettingsMetadata.ts';
interface Props { interface Props {
children: React.ReactNode; children: React.ReactNode;

View File

@@ -12,8 +12,10 @@ import ListItemText from '@mui/material/ListItemText';
import MenuItem from '@mui/material/MenuItem'; import MenuItem from '@mui/material/MenuItem';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { useContext, useLayoutEffect } from 'react'; import { useContext, useLayoutEffect } from 'react';
import { updateMetadataServerSettings, useMetadataServerSettings } from '@/lib/metadata/metadataServerSettings.ts'; import {
import { MetadataServerSettingKeys, MetadataServerSettings } from '@/typings.ts'; updateMetadataServerSettings,
useMetadataServerSettings,
} from '@/modules/settings/services/ServerSettingsMetadata.ts';
import { makeToast } from '@/lib/ui/Toast.ts'; import { makeToast } from '@/lib/ui/Toast.ts';
import { MutableListSetting } from '@/modules/core/components/settings/MutableListSetting.tsx'; import { MutableListSetting } from '@/modules/core/components/settings/MutableListSetting.tsx';
import { NavBarContext } from '@/modules/navigation-bar/contexts/NavbarContext.tsx'; import { NavBarContext } from '@/modules/navigation-bar/contexts/NavbarContext.tsx';
@@ -23,6 +25,7 @@ import { LoadingPlaceholder } from '@/modules/core/components/placeholder/Loadin
import { EmptyViewAbsoluteCentered } from '@/modules/core/components/placeholder/EmptyViewAbsoluteCentered.tsx'; import { EmptyViewAbsoluteCentered } from '@/modules/core/components/placeholder/EmptyViewAbsoluteCentered.tsx';
import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts'; import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts';
import { DEFAULT_DEVICE } from '@/modules/device/services/Device.ts'; import { DEFAULT_DEVICE } from '@/modules/device/services/Device.ts';
import { MetadataServerSettingKeys, MetadataServerSettings } from '@/modules/settings/Settings.types.ts';
export const DeviceSetting = () => { export const DeviceSetting = () => {
const { t } = useTranslation(); const { t } = useTranslation();

View File

@@ -13,10 +13,10 @@ import ListItemText from '@mui/material/ListItemText';
import Switch from '@mui/material/Switch'; import Switch from '@mui/material/Switch';
import { NumberSetting } from '@/modules/core/components/settings/NumberSetting.tsx'; import { NumberSetting } from '@/modules/core/components/settings/NumberSetting.tsx';
import { getPersistedServerSetting, usePersistedValue } from '@/modules/core/hooks/usePersistedValue.tsx'; import { getPersistedServerSetting, usePersistedValue } from '@/modules/core/hooks/usePersistedValue.tsx';
import { updateMetadataServerSettings } from '@/lib/metadata/metadataServerSettings.ts'; import { updateMetadataServerSettings } from '@/modules/settings/services/ServerSettingsMetadata.ts';
import { MetadataServerSettings } from '@/typings.ts';
import { makeToast } from '@/lib/ui/Toast.ts'; import { makeToast } from '@/lib/ui/Toast.ts';
import { MetadataDownloadSettings } from '@/modules/downloads/Downloads.types.ts'; import { MetadataDownloadSettings } from '@/modules/downloads/Downloads.types.ts';
import { MetadataServerSettings } from '@/modules/settings/Settings.types.ts';
const MIN_LIMIT = 2; const MIN_LIMIT = 2;
const MAX_LIMIT = 10; const MAX_LIMIT = 10;

View File

@@ -15,13 +15,12 @@ import Switch from '@mui/material/Switch';
import ListSubheader from '@mui/material/ListSubheader'; import ListSubheader from '@mui/material/ListSubheader';
import { TextSetting } from '@/modules/core/components/settings/text/TextSetting.tsx'; import { TextSetting } from '@/modules/core/components/settings/text/TextSetting.tsx';
import { NavBarContext } from '@/modules/navigation-bar/contexts/NavbarContext.tsx'; import { NavBarContext } from '@/modules/navigation-bar/contexts/NavbarContext.tsx';
import { ServerSettings } from '@/typings.ts';
import { requestManager } from '@/lib/requests/requests/RequestManager.ts'; import { requestManager } from '@/lib/requests/requests/RequestManager.ts';
import { DownloadAheadSetting } from '@/modules/downloads/components/DownloadAheadSetting.tsx'; import { DownloadAheadSetting } from '@/modules/downloads/components/DownloadAheadSetting.tsx';
import { import {
createUpdateMetadataServerSettings, createUpdateMetadataServerSettings,
useMetadataServerSettings, useMetadataServerSettings,
} from '@/lib/metadata/metadataServerSettings.ts'; } from '@/modules/settings/services/ServerSettingsMetadata.ts';
import { makeToast } from '@/lib/ui/Toast.ts'; import { makeToast } from '@/lib/ui/Toast.ts';
import { DeleteChaptersWhileReadingSetting } from '@/modules/downloads/components/DeleteChaptersWhileReadingSetting.tsx'; import { DeleteChaptersWhileReadingSetting } from '@/modules/downloads/components/DeleteChaptersWhileReadingSetting.tsx';
import { CategoriesInclusionSetting } from '@/modules/category/components/CategoriesInclusionSetting.tsx'; import { CategoriesInclusionSetting } from '@/modules/category/components/CategoriesInclusionSetting.tsx';
@@ -32,6 +31,7 @@ import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts'
import { GetCategoriesSettingsQuery, GetCategoriesSettingsQueryVariables } from '@/lib/graphql/generated/graphql.ts'; import { GetCategoriesSettingsQuery, GetCategoriesSettingsQueryVariables } from '@/lib/graphql/generated/graphql.ts';
import { GET_CATEGORIES_SETTINGS } from '@/lib/graphql/queries/CategoryQuery.ts'; import { GET_CATEGORIES_SETTINGS } from '@/lib/graphql/queries/CategoryQuery.ts';
import { MetadataDownloadSettings } from '@/modules/downloads/Downloads.types.ts'; import { MetadataDownloadSettings } from '@/modules/downloads/Downloads.types.ts';
import { ServerSettings } from '@/modules/settings/Settings.types.ts';
type DownloadSettingsType = Pick< type DownloadSettingsType = Pick<
ServerSettings, ServerSettings,

View File

@@ -26,7 +26,7 @@ import { makeToast } from '@/lib/ui/Toast.ts';
import { import {
createUpdateMetadataServerSettings, createUpdateMetadataServerSettings,
useMetadataServerSettings, useMetadataServerSettings,
} from '@/lib/metadata/metadataServerSettings.ts'; } from '@/modules/settings/services/ServerSettingsMetadata.ts';
import { TranslationKey } from '@/Base.types.ts'; import { TranslationKey } from '@/Base.types.ts';
import { LibrarySortMode } from '@/modules/library/Library.types.ts'; import { LibrarySortMode } from '@/modules/library/Library.types.ts';
import { CategoryMetadataInfo } from '@/modules/category/Category.types.ts'; import { CategoryMetadataInfo } from '@/modules/category/Category.types.ts';

View File

@@ -8,7 +8,7 @@
import { StringParam, useQueryParam } from 'use-query-params'; import { StringParam, useQueryParam } from 'use-query-params';
import { useMemo } from 'react'; import { useMemo } from 'react';
import { useMetadataServerSettings } from '@/lib/metadata/metadataServerSettings.ts'; import { useMetadataServerSettings } from '@/modules/settings/services/ServerSettingsMetadata.ts';
import { ChapterType, MangaType, SourceType, TrackRecordType } from '@/lib/graphql/generated/graphql.ts'; import { ChapterType, MangaType, SourceType, TrackRecordType } from '@/lib/graphql/generated/graphql.ts';
import { MangaChapterCountInfo, MangaIdInfo } from '@/modules/manga/services/Mangas.ts'; import { MangaChapterCountInfo, MangaIdInfo } from '@/modules/manga/services/Mangas.ts';
import { enhancedCleanup } from '@/lib/data/Strings.ts'; import { enhancedCleanup } from '@/lib/data/Strings.ts';

View File

@@ -39,7 +39,7 @@ import { GET_CATEGORIES_LIBRARY } from '@/lib/graphql/queries/CategoryQuery.ts';
import { Mangas } from '@/modules/manga/services/Mangas.ts'; import { Mangas } from '@/modules/manga/services/Mangas.ts';
import { MANGA_CHAPTER_STAT_FIELDS } from '@/lib/graphql/fragments/MangaFragments.ts'; import { MANGA_CHAPTER_STAT_FIELDS } from '@/lib/graphql/fragments/MangaFragments.ts';
import { useLibraryOptionsContext } from '@/modules/library/contexts/LibraryOptionsContext.tsx'; import { useLibraryOptionsContext } from '@/modules/library/contexts/LibraryOptionsContext.tsx';
import { useMetadataServerSettings } from '@/lib/metadata/metadataServerSettings.ts'; import { useMetadataServerSettings } from '@/modules/settings/services/ServerSettingsMetadata.ts';
import { getCategoryMetadata } from '@/modules/category/services/CategoryMetadata.ts'; import { getCategoryMetadata } from '@/modules/category/services/CategoryMetadata.ts';
const TitleWithSizeTag = styled('span')({ const TitleWithSizeTag = styled('span')({

View File

@@ -16,12 +16,12 @@ import Switch from '@mui/material/Switch';
import ListSubheader from '@mui/material/ListSubheader'; import ListSubheader from '@mui/material/ListSubheader';
import { t as translate } from 'i18next'; import { t as translate } from 'i18next';
import { NavBarContext } from '@/modules/navigation-bar/contexts/NavbarContext.tsx'; import { NavBarContext } from '@/modules/navigation-bar/contexts/NavbarContext.tsx';
import { GlobalUpdateSettings } from '@/components/settings/globalUpdate/GlobalUpdateSettings.tsx'; import { GlobalUpdateSettings } from '@/modules/settings/components/globalUpdate/GlobalUpdateSettings.tsx';
import { makeToast } from '@/lib/ui/Toast.ts'; import { makeToast } from '@/lib/ui/Toast.ts';
import { import {
createUpdateMetadataServerSettings, createUpdateMetadataServerSettings,
useMetadataServerSettings, useMetadataServerSettings,
} from '@/lib/metadata/metadataServerSettings.ts'; } from '@/modules/settings/services/ServerSettingsMetadata.ts';
import { requestManager } from '@/lib/requests/requests/RequestManager.ts'; import { requestManager } from '@/lib/requests/requests/RequestManager.ts';
import { Mangas } from '@/modules/manga/services/Mangas.ts'; import { Mangas } from '@/modules/manga/services/Mangas.ts';
import { EmptyViewAbsoluteCentered } from '@/modules/core/components/placeholder/EmptyViewAbsoluteCentered.tsx'; import { EmptyViewAbsoluteCentered } from '@/modules/core/components/placeholder/EmptyViewAbsoluteCentered.tsx';

View File

@@ -42,7 +42,7 @@ import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts'
import { MangaType, SourceType } from '@/lib/graphql/generated/graphql.ts'; import { MangaType, SourceType } from '@/lib/graphql/generated/graphql.ts';
import { useLocalStorage } from '@/modules/core/hooks/useStorage.tsx'; import { useLocalStorage } from '@/modules/core/hooks/useStorage.tsx';
import { useResizeObserver } from '@/modules/core/hooks/useResizeObserver.tsx'; import { useResizeObserver } from '@/modules/core/hooks/useResizeObserver.tsx';
import { useMetadataServerSettings } from '@/lib/metadata/metadataServerSettings.ts'; import { useMetadataServerSettings } from '@/modules/settings/services/ServerSettingsMetadata.ts';
import { shouldForwardProp } from '@/modules/core/utils/ShouldForwardProp.ts'; import { shouldForwardProp } from '@/modules/core/utils/ShouldForwardProp.ts';
const DetailsWrapper = styled('div')(({ theme }) => ({ const DetailsWrapper = styled('div')(({ theme }) => ({

View File

@@ -13,7 +13,7 @@ import gql from 'graphql-tag';
import { useCategorySelect } from '@/modules/category/hooks/useCategorySelect.tsx'; import { useCategorySelect } from '@/modules/category/hooks/useCategorySelect.tsx';
import { requestManager } from '@/lib/requests/requests/RequestManager.ts'; import { requestManager } from '@/lib/requests/requests/RequestManager.ts';
import { makeToast } from '@/lib/ui/Toast.ts'; import { makeToast } from '@/lib/ui/Toast.ts';
import { getMetadataServerSettings } from '@/lib/metadata/metadataServerSettings.ts'; import { getMetadataServerSettings } from '@/modules/settings/services/ServerSettingsMetadata.ts';
import { Categories } from '@/modules/category/services/Categories.ts'; import { Categories } from '@/modules/category/services/Categories.ts';
import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts'; import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts';
import { Mangas } from '@/modules/manga/services/Mangas.ts'; import { Mangas } from '@/modules/manga/services/Mangas.ts';

View File

@@ -25,7 +25,7 @@ import {
} from '@/lib/graphql/generated/graphql.ts'; } from '@/lib/graphql/generated/graphql.ts';
import { Chapters } from '@/modules/chapter/services/Chapters.ts'; import { Chapters } from '@/modules/chapter/services/Chapters.ts';
import { makeToast } from '@/lib/ui/Toast.ts'; import { makeToast } from '@/lib/ui/Toast.ts';
import { getMetadataServerSettings } from '@/lib/metadata/metadataServerSettings.ts'; import { getMetadataServerSettings } from '@/modules/settings/services/ServerSettingsMetadata.ts';
import { GET_MANGAS_BASE } from '@/lib/graphql/queries/MangaQuery.ts'; import { GET_MANGAS_BASE } from '@/lib/graphql/queries/MangaQuery.ts';
import { MANGA_BASE_FIELDS } from '@/lib/graphql/fragments/MangaFragments.ts'; import { MANGA_BASE_FIELDS } from '@/lib/graphql/fragments/MangaFragments.ts';
import { TranslationKey } from '@/Base.types.ts'; import { TranslationKey } from '@/Base.types.ts';

View File

@@ -22,7 +22,7 @@ import { makeToast } from '@/lib/ui/Toast.ts';
import { import {
createUpdateMetadataServerSettings, createUpdateMetadataServerSettings,
useMetadataServerSettings, useMetadataServerSettings,
} from '@/lib/metadata/metadataServerSettings.ts'; } from '@/modules/settings/services/ServerSettingsMetadata.ts';
import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts'; import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts';
import { MetadataMigrationSettings } from '@/modules/migration/Migration.types.ts'; import { MetadataMigrationSettings } from '@/modules/migration/Migration.types.ts';

View File

@@ -27,7 +27,7 @@ import { sortByToTranslationKey, sortOrderToTranslationKey } from '@/modules/mig
import { import {
createUpdateMetadataServerSettings, createUpdateMetadataServerSettings,
useMetadataServerSettings, useMetadataServerSettings,
} from '@/lib/metadata/metadataServerSettings.ts'; } from '@/modules/settings/services/ServerSettingsMetadata.ts';
import { makeToast } from '@/lib/ui/Toast.ts'; import { makeToast } from '@/lib/ui/Toast.ts';
import { useNavBarContext } from '@/modules/navigation-bar/contexts/NavbarContext.tsx'; import { useNavBarContext } from '@/modules/navigation-bar/contexts/NavbarContext.tsx';

View File

@@ -34,7 +34,7 @@ import {
GetMangaReaderQuery, GetMangaReaderQuery,
UpdateChapterPatchInput, UpdateChapterPatchInput,
} from '@/lib/graphql/generated/graphql.ts'; } from '@/lib/graphql/generated/graphql.ts';
import { useMetadataServerSettings } from '@/lib/metadata/metadataServerSettings.ts'; import { useMetadataServerSettings } from '@/modules/settings/services/ServerSettingsMetadata.ts';
import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts'; import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts';
import { ChapterIdInfo, Chapters } from '@/modules/chapter/services/Chapters.ts'; import { ChapterIdInfo, Chapters } from '@/modules/chapter/services/Chapters.ts';
import { EmptyViewAbsoluteCentered } from '@/modules/core/components/placeholder/EmptyViewAbsoluteCentered.tsx'; import { EmptyViewAbsoluteCentered } from '@/modules/core/components/placeholder/EmptyViewAbsoluteCentered.tsx';

View File

@@ -0,0 +1,50 @@
/*
* 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/.
*/
import { DEFAULT_DEVICE } from '@/modules/device/services/Device.ts';
import { DEFAULT_SORT_SETTINGS } from '@/modules/migration/Migration.constants.ts';
import { MetadataServerSettings } from '@/modules/settings/Settings.types.ts';
export const SERVER_SETTINGS_METADATA_DEFAULT: MetadataServerSettings = {
// downloads
deleteChaptersManuallyMarkedRead: false,
deleteChaptersWhileReading: 0,
deleteChaptersWithBookmark: false,
downloadAheadLimit: 0,
// library
showAddToLibraryCategorySelectDialog: true,
ignoreFilters: false,
removeMangaFromCategories: false,
showTabSize: false,
// client
devices: [DEFAULT_DEVICE],
// migration
migrateChapters: true,
migrateCategories: true,
migrateTracking: true,
deleteChapters: true,
migrateSortSettings: DEFAULT_SORT_SETTINGS,
// browse
hideLibraryEntries: false,
// tracking
updateProgressAfterReading: true,
updateProgressManualMarkRead: false,
// updates
webUIInformAvailableUpdate: true,
serverInformAvailableUpdate: true,
// themes
customThemes: {},
mangaThumbnailBackdrop: true,
};

View File

@@ -0,0 +1,36 @@
/*
* 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/.
*/
import { MetadataDownloadSettings } from '@/modules/downloads/Downloads.types.ts';
import { MetadataLibrarySettings } from '@/modules/library/Library.types.ts';
import { MetadataClientSettings } from '@/modules/device/Device.types.ts';
import { MetadataMigrationSettings } from '@/modules/migration/Migration.types.ts';
import { MetadataBrowseSettings } from '@/modules/browse/Browse.types.ts';
import { MetadataTrackingSettings } from '@/modules/tracker/Tracker.types.ts';
import { MetadataUpdateSettings } from '@/modules/app-updates/AppUpdateChecker.types.ts';
import { MetadataThemeSettings } from '@/modules/theme/AppTheme.types.ts';
import { GetServerSettingsQuery } from '@/lib/graphql/generated/graphql.ts';
export type MetadataServerSettingKeys = keyof MetadataServerSettings;
export type SearchMetadataKeys = keyof ISearchSettings;
export type MetadataServerSettings = MetadataDownloadSettings &
MetadataLibrarySettings &
MetadataClientSettings &
MetadataMigrationSettings &
MetadataBrowseSettings &
MetadataTrackingSettings &
MetadataUpdateSettings &
MetadataThemeSettings;
export interface ISearchSettings {
ignoreFilters: boolean;
}
export type ServerSettings = GetServerSettingsQuery['settings'];

View File

@@ -16,11 +16,11 @@ import {
CategoriesInclusionSetting, CategoriesInclusionSetting,
CategoriesInclusionSettingProps, CategoriesInclusionSettingProps,
} from '@/modules/category/components/CategoriesInclusionSetting.tsx'; } from '@/modules/category/components/CategoriesInclusionSetting.tsx';
import { GlobalUpdateSettingsEntries } from '@/components/settings/globalUpdate/GlobalUpdateSettingsEntries.tsx'; import { GlobalUpdateSettingsEntries } from '@/modules/settings/components/globalUpdate/GlobalUpdateSettingsEntries.tsx';
import { GlobalUpdateSettingsInterval } from '@/components/settings/globalUpdate/GlobalUpdateSettingsInterval.tsx'; import { GlobalUpdateSettingsInterval } from '@/modules/settings/components/globalUpdate/GlobalUpdateSettingsInterval.tsx';
import { requestManager } from '@/lib/requests/requests/RequestManager.ts'; import { requestManager } from '@/lib/requests/requests/RequestManager.ts';
import { makeToast } from '@/lib/ui/Toast.ts'; import { makeToast } from '@/lib/ui/Toast.ts';
import { ServerSettings } from '@/typings.ts'; import { ServerSettings } from '@/modules/settings/Settings.types.ts';
type LibrarySettingsType = Pick<ServerSettings, 'updateMangas'>; type LibrarySettingsType = Pick<ServerSettings, 'updateMangas'>;

View File

@@ -16,12 +16,12 @@ import Dialog from '@mui/material/Dialog';
import DialogActions from '@mui/material/DialogActions'; import DialogActions from '@mui/material/DialogActions';
import DialogContent from '@mui/material/DialogContent'; import DialogContent from '@mui/material/DialogContent';
import DialogTitle from '@mui/material/DialogTitle'; import DialogTitle from '@mui/material/DialogTitle';
import { ServerSettings } from '@/typings.ts';
import { requestManager } from '@/lib/requests/requests/RequestManager.ts'; import { requestManager } from '@/lib/requests/requests/RequestManager.ts';
import { makeToast } from '@/lib/ui/Toast.ts'; import { makeToast } from '@/lib/ui/Toast.ts';
import { CheckboxContainer } from '@/modules/core/components/inputs/CheckboxContainer.ts'; import { CheckboxContainer } from '@/modules/core/components/inputs/CheckboxContainer.ts';
import { CheckboxInput } from '@/modules/core/components/inputs/CheckboxInput.tsx'; import { CheckboxInput } from '@/modules/core/components/inputs/CheckboxInput.tsx';
import { TranslationKey } from '@/Base.types.ts'; import { TranslationKey } from '@/Base.types.ts';
import { ServerSettings } from '@/modules/settings/Settings.types.ts';
type GlobalUpdateSkipEntriesSettings = Pick< type GlobalUpdateSkipEntriesSettings = Pick<
ServerSettings, ServerSettings,

View File

@@ -15,7 +15,8 @@ import { useCallback } from 'react';
import { requestManager } from '@/lib/requests/requests/RequestManager.ts'; import { requestManager } from '@/lib/requests/requests/RequestManager.ts';
import { NumberSetting } from '@/modules/core/components/settings/NumberSetting.tsx'; import { NumberSetting } from '@/modules/core/components/settings/NumberSetting.tsx';
import { getPersistedServerSetting, usePersistedValue } from '@/modules/core/hooks/usePersistedValue.tsx'; import { getPersistedServerSetting, usePersistedValue } from '@/modules/core/hooks/usePersistedValue.tsx';
import { ServerSettings } from '@/typings.ts';
import { ServerSettings } from '@/modules/settings/Settings.types.ts';
const DEFAULT_INTERVAL_HOURS = 12; const DEFAULT_INTERVAL_HOURS = 12;
const MIN_INTERVAL_HOURS = 6; const MIN_INTERVAL_HOURS = 6;

View File

@@ -15,8 +15,8 @@ import { useCallback } from 'react';
import { requestManager } from '@/lib/requests/requests/RequestManager.ts'; import { requestManager } from '@/lib/requests/requests/RequestManager.ts';
import { NumberSetting } from '@/modules/core/components/settings/NumberSetting.tsx'; import { NumberSetting } from '@/modules/core/components/settings/NumberSetting.tsx';
import { getPersistedServerSetting, usePersistedValue } from '@/modules/core/hooks/usePersistedValue.tsx'; import { getPersistedServerSetting, usePersistedValue } from '@/modules/core/hooks/usePersistedValue.tsx';
import { ServerSettings } from '@/typings.ts'; import { makeToast } from '@/modules/core/utils/Toast.ts';
import { makeToast } from '@/lib/ui/Toast.ts'; import { ServerSettings } from '@/modules/settings/Settings.types.ts';
const DEFAULT_VALUE = 23; const DEFAULT_VALUE = 23;
const MIN_VALUE = 1; const MIN_VALUE = 1;

View File

@@ -28,7 +28,7 @@ import { ThemeList } from '@/modules/theme/components/ThemeList.tsx';
import { import {
createUpdateMetadataServerSettings, createUpdateMetadataServerSettings,
useMetadataServerSettings, useMetadataServerSettings,
} from '@/lib/metadata/metadataServerSettings.ts'; } from '@/modules/settings/services/ServerSettingsMetadata.ts';
import { LoadingPlaceholder } from '@/modules/core/components/placeholder/LoadingPlaceholder.tsx'; import { LoadingPlaceholder } from '@/modules/core/components/placeholder/LoadingPlaceholder.tsx';
import { EmptyViewAbsoluteCentered } from '@/modules/core/components/placeholder/EmptyViewAbsoluteCentered.tsx'; import { EmptyViewAbsoluteCentered } from '@/modules/core/components/placeholder/EmptyViewAbsoluteCentered.tsx';
import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts'; import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts';

View File

@@ -19,7 +19,6 @@ import { NavBarContext } from '@/modules/navigation-bar/contexts/NavbarContext.t
import { requestManager } from '@/lib/requests/requests/RequestManager.ts'; import { requestManager } from '@/lib/requests/requests/RequestManager.ts';
import { useLocalStorage } from '@/modules/core/hooks/useStorage.tsx'; import { useLocalStorage } from '@/modules/core/hooks/useStorage.tsx';
import { TextSetting } from '@/modules/core/components/settings/text/TextSetting.tsx'; import { TextSetting } from '@/modules/core/components/settings/text/TextSetting.tsx';
import { ServerSettings as GqlServerSettings } from '@/typings.ts';
import { NumberSetting } from '@/modules/core/components/settings/NumberSetting.tsx'; import { NumberSetting } from '@/modules/core/components/settings/NumberSetting.tsx';
import { SelectSetting } from '@/modules/core/components/settings/SelectSetting.tsx'; import { SelectSetting } from '@/modules/core/components/settings/SelectSetting.tsx';
import { LoadingPlaceholder } from '@/modules/core/components/placeholder/LoadingPlaceholder.tsx'; import { LoadingPlaceholder } from '@/modules/core/components/placeholder/LoadingPlaceholder.tsx';
@@ -28,9 +27,10 @@ import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts'
import { import {
createUpdateMetadataServerSettings, createUpdateMetadataServerSettings,
useMetadataServerSettings, useMetadataServerSettings,
} from '@/lib/metadata/metadataServerSettings.ts'; } from '@/modules/settings/services/ServerSettingsMetadata.ts';
import { makeToast } from '@/lib/ui/Toast.ts'; import { makeToast } from '@/lib/ui/Toast.ts';
import { MetadataUpdateSettings } from '@/modules/app-updates/AppUpdateChecker.types.ts'; import { MetadataUpdateSettings } from '@/modules/app-updates/AppUpdateChecker.types.ts';
import { ServerSettings as GqlServerSettings } from '@/modules/settings/Settings.types.ts';
type ServerSettingsType = Pick< type ServerSettingsType = Pick<
GqlServerSettings, GqlServerSettings,

View File

@@ -13,9 +13,8 @@ import ListItem from '@mui/material/ListItem';
import ListItemText from '@mui/material/ListItemText'; import ListItemText from '@mui/material/ListItemText';
import Switch from '@mui/material/Switch'; import Switch from '@mui/material/Switch';
import { NavBarContext } from '@/modules/navigation-bar/contexts/NavbarContext.tsx'; import { NavBarContext } from '@/modules/navigation-bar/contexts/NavbarContext.tsx';
import { ServerSettings } from '@/typings.ts';
import { requestManager } from '@/lib/requests/requests/RequestManager.ts'; import { requestManager } from '@/lib/requests/requests/RequestManager.ts';
import { WebUIUpdateIntervalSetting } from '@/components/settings/webUI/WebUIUpdateIntervalSetting.tsx'; import { WebUIUpdateIntervalSetting } from '@/modules/settings/components/webUI/WebUIUpdateIntervalSetting.tsx';
import { TextSetting } from '@/modules/core/components/settings/text/TextSetting.tsx'; import { TextSetting } from '@/modules/core/components/settings/text/TextSetting.tsx';
import { import {
SelectSetting, SelectSetting,
@@ -29,9 +28,10 @@ import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts'
import { import {
createUpdateMetadataServerSettings, createUpdateMetadataServerSettings,
useMetadataServerSettings, useMetadataServerSettings,
} from '@/lib/metadata/metadataServerSettings.ts'; } from '@/modules/settings/services/ServerSettingsMetadata.ts';
import { makeToast } from '@/lib/ui/Toast.ts'; import { makeToast } from '@/lib/ui/Toast.ts';
import { MetadataUpdateSettings } from '@/modules/app-updates/AppUpdateChecker.types.ts'; import { MetadataUpdateSettings } from '@/modules/app-updates/AppUpdateChecker.types.ts';
import { ServerSettings } from '@/modules/settings/Settings.types.ts';
type WebUISettingsType = Pick< type WebUISettingsType = Pick<
ServerSettings, ServerSettings,

View File

@@ -6,60 +6,15 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. * file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/ */
import { import { AllowedMetadataValueTypes, AppMetadataKeys, Metadata } from '@/typings.ts';
AllowedMetadataValueTypes,
AppMetadataKeys,
Metadata,
MetadataServerSettingKeys,
MetadataServerSettings,
} from '@/typings.ts';
import { requestManager } from '@/lib/requests/requests/RequestManager.ts'; import { requestManager } from '@/lib/requests/requests/RequestManager.ts';
import { convertFromGqlMeta, getMetadataFrom, requestUpdateServerMetadata } from '@/lib/metadata/metadata.ts'; import { convertFromGqlMeta, getMetadataFrom, requestUpdateServerMetadata } from '@/lib/metadata/metadata.ts';
import { jsonSaveParse } from '@/lib/HelperFunctions.ts'; import { jsonSaveParse } from '@/lib/HelperFunctions.ts';
import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts'; import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts';
import { DEFAULT_SORT_SETTINGS } from '@/modules/migration/Migration.constants.ts';
import { MetadataMigrationSettings } from '@/modules/migration/Migration.types.ts'; import { MetadataMigrationSettings } from '@/modules/migration/Migration.types.ts';
import { MetadataThemeSettings } from '@/modules/theme/AppTheme.types.ts'; import { MetadataThemeSettings } from '@/modules/theme/AppTheme.types.ts';
import { DEFAULT_DEVICE } from '@/modules/device/services/Device.ts'; import { SERVER_SETTINGS_METADATA_DEFAULT } from '@/modules/settings/Settings.constants.ts';
import { MetadataServerSettingKeys, MetadataServerSettings } from '@/modules/settings/Settings.types.ts';
export const getDefaultSettings = (): MetadataServerSettings => ({
// downloads
deleteChaptersManuallyMarkedRead: false,
deleteChaptersWhileReading: 0,
deleteChaptersWithBookmark: false,
downloadAheadLimit: 0,
// library
showAddToLibraryCategorySelectDialog: true,
ignoreFilters: false,
removeMangaFromCategories: false,
showTabSize: false,
// client
devices: [DEFAULT_DEVICE],
// migration
migrateChapters: true,
migrateCategories: true,
migrateTracking: true,
deleteChapters: true,
migrateSortSettings: DEFAULT_SORT_SETTINGS,
// browse
hideLibraryEntries: false,
// tracking
updateProgressAfterReading: true,
updateProgressManualMarkRead: false,
// updates
webUIInformAvailableUpdate: true,
serverInformAvailableUpdate: true,
// themes
customThemes: {},
mangaThumbnailBackdrop: true,
});
export const convertSettingsToMetadata = ( export const convertSettingsToMetadata = (
settings: Partial<MetadataServerSettings>, settings: Partial<MetadataServerSettings>,
@@ -74,21 +29,22 @@ export const convertMetadataToSettings = (
metadata: Partial<Metadata<AppMetadataKeys, AllowedMetadataValueTypes>>, metadata: Partial<Metadata<AppMetadataKeys, AllowedMetadataValueTypes>>,
): MetadataServerSettings => ): MetadataServerSettings =>
({ ({
...getDefaultSettings(), ...SERVER_SETTINGS_METADATA_DEFAULT,
...(metadata as unknown as MetadataServerSettings), ...(metadata as unknown as MetadataServerSettings),
devices: jsonSaveParse<string[]>((metadata.devices as string) ?? '') ?? getDefaultSettings().devices, devices:
jsonSaveParse<string[]>((metadata.devices as string) ?? '') ?? SERVER_SETTINGS_METADATA_DEFAULT.devices,
customThemes: customThemes:
jsonSaveParse<MetadataThemeSettings['customThemes']>((metadata.customThemes as string) ?? '') ?? jsonSaveParse<MetadataThemeSettings['customThemes']>((metadata.customThemes as string) ?? '') ??
getDefaultSettings().customThemes, SERVER_SETTINGS_METADATA_DEFAULT.customThemes,
migrateSortSettings: migrateSortSettings:
jsonSaveParse<MetadataMigrationSettings['migrateSortSettings']>( jsonSaveParse<MetadataMigrationSettings['migrateSortSettings']>(
(metadata.migrateSortSettings as string) ?? '', (metadata.migrateSortSettings as string) ?? '',
) ?? getDefaultSettings().migrateSortSettings, ) ?? SERVER_SETTINGS_METADATA_DEFAULT.migrateSortSettings,
}) satisfies MetadataServerSettings; }) satisfies MetadataServerSettings;
const getMetadataServerSettingsWithDefaultFallback = ( const getMetadataServerSettingsWithDefaultFallback = (
meta?: Metadata, meta?: Metadata,
defaultSettings: MetadataServerSettings = getDefaultSettings(), defaultSettings: MetadataServerSettings = SERVER_SETTINGS_METADATA_DEFAULT,
applyMetadataMigration: boolean = true, applyMetadataMigration: boolean = true,
): MetadataServerSettings => ): MetadataServerSettings =>
convertMetadataToSettings( convertMetadataToSettings(

View File

@@ -37,7 +37,7 @@ import {
GetSourceMangasFetchMutationVariables, GetSourceMangasFetchMutationVariables,
} from '@/lib/graphql/generated/graphql.ts'; } from '@/lib/graphql/generated/graphql.ts';
import { NavBarContext } from '@/modules/navigation-bar/contexts/NavbarContext.tsx'; import { NavBarContext } from '@/modules/navigation-bar/contexts/NavbarContext.tsx';
import { useMetadataServerSettings } from '@/lib/metadata/metadataServerSettings.ts'; import { useMetadataServerSettings } from '@/modules/settings/services/ServerSettingsMetadata.ts';
import { useLocalStorage, useSessionStorage } from '@/modules/core/hooks/useStorage.tsx'; import { useLocalStorage, useSessionStorage } from '@/modules/core/hooks/useStorage.tsx';
import { AppStorage } from '@/lib/AppStorage.ts'; import { AppStorage } from '@/lib/AppStorage.ts';
import { getGridSnapshotKey } from '@/modules/manga/components/MangaGrid.tsx'; import { getGridSnapshotKey } from '@/modules/manga/components/MangaGrid.tsx';

View File

@@ -24,7 +24,7 @@ import { AppTheme, isThemeNameUnique } from '@/modules/theme/services/AppThemes.
import { import {
createUpdateMetadataServerSettings, createUpdateMetadataServerSettings,
useMetadataServerSettings, useMetadataServerSettings,
} from '@/lib/metadata/metadataServerSettings.ts'; } from '@/modules/settings/services/ServerSettingsMetadata.ts';
import { makeToast } from '@/lib/ui/Toast.ts'; import { makeToast } from '@/lib/ui/Toast.ts';
import { EmptyView } from '@/modules/core/components/placeholder/EmptyView.tsx'; import { EmptyView } from '@/modules/core/components/placeholder/EmptyView.tsx';
import { LoadingPlaceholder } from '@/modules/core/components/placeholder/LoadingPlaceholder.tsx'; import { LoadingPlaceholder } from '@/modules/core/components/placeholder/LoadingPlaceholder.tsx';

View File

@@ -13,7 +13,7 @@ import { appThemes } from '@/modules/theme/services/AppThemes.ts';
import { import {
createUpdateMetadataServerSettings, createUpdateMetadataServerSettings,
useMetadataServerSettings, useMetadataServerSettings,
} from '@/lib/metadata/metadataServerSettings.ts'; } from '@/modules/settings/services/ServerSettingsMetadata.ts';
import { makeToast } from '@/lib/ui/Toast.ts'; import { makeToast } from '@/lib/ui/Toast.ts';
import { EmptyView } from '@/modules/core/components/placeholder/EmptyView.tsx'; import { EmptyView } from '@/modules/core/components/placeholder/EmptyView.tsx';
import { LoadingPlaceholder } from '@/modules/core/components/placeholder/LoadingPlaceholder.tsx'; import { LoadingPlaceholder } from '@/modules/core/components/placeholder/LoadingPlaceholder.tsx';

View File

@@ -22,7 +22,7 @@ import { SettingsTrackerCard } from '@/modules/tracker/components/cards/Settings
import { import {
createUpdateMetadataServerSettings, createUpdateMetadataServerSettings,
useMetadataServerSettings, useMetadataServerSettings,
} from '@/lib/metadata/metadataServerSettings.ts'; } from '@/modules/settings/services/ServerSettingsMetadata.ts';
import { makeToast } from '@/lib/ui/Toast.ts'; import { makeToast } from '@/lib/ui/Toast.ts';
import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts'; import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts';
import { GET_TRACKERS_SETTINGS } from '@/lib/graphql/queries/TrackerQuery.ts'; import { GET_TRACKERS_SETTINGS } from '@/lib/graphql/queries/TrackerQuery.ts';

View File

@@ -6,18 +6,11 @@
* file, You can obtain one at https://mozilla.org/MPL/2.0/. * file, You can obtain one at https://mozilla.org/MPL/2.0/.
*/ */
import { GetServerSettingsQuery, MetaType } from '@/lib/graphql/generated/graphql.ts'; import { MetaType } from '@/lib/graphql/generated/graphql.ts';
import { MetadataMigrationSettings } from '@/modules/migration/Migration.types.ts';
import { MangaMetadataKeys } from '@/modules/manga/MangaCard.types.tsx'; import { MangaMetadataKeys } from '@/modules/manga/MangaCard.types.tsx';
import { MetadataLibrarySettings } from '@/modules/library/Library.types.ts';
import { SourceMetadataKeys } from '@/modules/source/Source.types.ts'; import { SourceMetadataKeys } from '@/modules/source/Source.types.ts';
import { MetadataTrackingSettings } from '@/modules/tracker/Tracker.types.ts';
import { CategoryMetadataKeys } from '@/modules/category/Category.types.ts'; import { CategoryMetadataKeys } from '@/modules/category/Category.types.ts';
import { MetadataUpdateSettings } from '@/modules/app-updates/AppUpdateChecker.types.ts'; import { MetadataServerSettingKeys, SearchMetadataKeys } from '@/modules/settings/Settings.types.ts';
import { MetadataThemeSettings } from '@/modules/theme/AppTheme.types.ts';
import { MetadataClientSettings } from '@/modules/device/Device.types.ts';
import { MetadataBrowseSettings } from '@/modules/browse/Browse.types.ts';
import { MetadataDownloadSettings } from '@/modules/downloads/Downloads.types.ts';
export interface IMetadataMigration { export interface IMetadataMigration {
appKeyPrefix?: { oldPrefix: string; newPrefix: string }; appKeyPrefix?: { oldPrefix: string; newPrefix: string };
@@ -45,10 +38,6 @@ export type MetadataHolder<Keys extends string = string, Values = string> = {
export type AllowedMetadataValueTypes = string | boolean | number | undefined | null; export type AllowedMetadataValueTypes = string | boolean | number | undefined | null;
export type MetadataServerSettingKeys = keyof MetadataServerSettings;
export type SearchMetadataKeys = keyof ISearchSettings;
export type AppMetadataKeys = export type AppMetadataKeys =
| MetadataServerSettingKeys | MetadataServerSettingKeys
| MangaMetadataKeys | MangaMetadataKeys
@@ -57,18 +46,3 @@ export type AppMetadataKeys =
| CategoryMetadataKeys; | CategoryMetadataKeys;
export type MetadataKeyValuePair = [AppMetadataKeys, AllowedMetadataValueTypes]; export type MetadataKeyValuePair = [AppMetadataKeys, AllowedMetadataValueTypes];
export type MetadataServerSettings = MetadataDownloadSettings &
MetadataLibrarySettings &
MetadataClientSettings &
MetadataMigrationSettings &
MetadataBrowseSettings &
MetadataTrackingSettings &
MetadataUpdateSettings &
MetadataThemeSettings;
export interface ISearchSettings {
ignoreFilters: boolean;
}
export type ServerSettings = GetServerSettingsQuery['settings'];