Structure "reader" in sub-features
This commit is contained in:
@@ -69,7 +69,7 @@ const { LibraryDuplicates } = loadable(
|
|||||||
);
|
);
|
||||||
const { Appearance } = loadable(() => import('@/features/settings/screens/Appearance.tsx'), lazyLoadFallback);
|
const { Appearance } = loadable(() => import('@/features/settings/screens/Appearance.tsx'), lazyLoadFallback);
|
||||||
const { GlobalReaderSettings } = loadable(
|
const { GlobalReaderSettings } = loadable(
|
||||||
() => import('@/features/reader/screens/GlobalReaderSettings.tsx'),
|
() => import('@/features/reader/settings/screens/GlobalReaderSettings.tsx'),
|
||||||
lazyLoadFallback,
|
lazyLoadFallback,
|
||||||
);
|
);
|
||||||
const { More } = loadable(() => import('@/features/settings/screens/More.tsx'), lazyLoadFallback);
|
const { More } = loadable(() => import('@/features/settings/screens/More.tsx'), lazyLoadFallback);
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ import { CHAPTER_LIST_FIELDS } from '@/lib/graphql/fragments/ChapterFragments.ts
|
|||||||
|
|
||||||
import { DirectionOffset } from '@/Base.types.ts';
|
import { DirectionOffset } from '@/Base.types.ts';
|
||||||
import { MangaIdInfo } from '@/features/manga/Manga.types.ts';
|
import { MangaIdInfo } from '@/features/manga/Manga.types.ts';
|
||||||
import { ReaderOpenChapterLocationState, ReaderResumeMode } from '@/features/reader/types/Reader.types.ts';
|
import { ReaderOpenChapterLocationState, ReaderResumeMode } from '@/features/reader/Reader.types.ts';
|
||||||
import { AppRoutes } from '@/features/core/AppRoute.constants.ts';
|
import { AppRoutes } from '@/features/core/AppRoute.constants.ts';
|
||||||
import { getErrorMessage } from '@/lib/HelperFunctions.ts';
|
import { getErrorMessage } from '@/lib/HelperFunctions.ts';
|
||||||
import { DOWNLOAD_TYPE_FIELDS } from '@/lib/graphql/fragments/DownloadFragments.ts';
|
import { DOWNLOAD_TYPE_FIELDS } from '@/lib/graphql/fragments/DownloadFragments.ts';
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import {
|
|||||||
ReaderCustomFilter,
|
ReaderCustomFilter,
|
||||||
ReaderPageScaleMode,
|
ReaderPageScaleMode,
|
||||||
ReadingMode,
|
ReadingMode,
|
||||||
} from '@/features/reader/types/Reader.types.ts';
|
} from '@/features/reader/Reader.types.ts';
|
||||||
import {
|
import {
|
||||||
AUTO_SCROLL_SPEED,
|
AUTO_SCROLL_SPEED,
|
||||||
CUSTOM_FILTER,
|
CUSTOM_FILTER,
|
||||||
@@ -24,7 +24,7 @@ import {
|
|||||||
PAGE_GAP,
|
PAGE_GAP,
|
||||||
PROGRESS_BAR_SIZE,
|
PROGRESS_BAR_SIZE,
|
||||||
SCROLL_AMOUNT,
|
SCROLL_AMOUNT,
|
||||||
} from '@/features/reader/constants/ReaderSettings.constants.tsx';
|
} from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
||||||
import { coerceIn, jsonSaveParse } from '@/lib/HelperFunctions.ts';
|
import { coerceIn, jsonSaveParse } from '@/lib/HelperFunctions.ts';
|
||||||
import { DOWNLOAD_AHEAD } from '@/features/downloads/Downloads.constants.ts';
|
import { DOWNLOAD_AHEAD } from '@/features/downloads/Downloads.constants.ts';
|
||||||
import { MANGA_GRID_WIDTH } from '@/features/settings/Settings.constants.ts';
|
import { MANGA_GRID_WIDTH } from '@/features/settings/Settings.constants.ts';
|
||||||
@@ -33,7 +33,7 @@ import { SortSettings } from '@/features/migration/Migration.types.ts';
|
|||||||
import { ISourceMetadata } from '@/features/source/Source.types.ts';
|
import { ISourceMetadata } from '@/features/source/Source.types.ts';
|
||||||
import { LibraryOptions } from '@/features/library/Library.types.ts';
|
import { LibraryOptions } from '@/features/library/Library.types.ts';
|
||||||
import { MetadataThemeSettings } from '@/features/theme/AppTheme.types.ts';
|
import { MetadataThemeSettings } from '@/features/theme/AppTheme.types.ts';
|
||||||
import { TapZoneInvertMode } from '@/features/reader/types/TapZoneLayout.types.ts';
|
import { TapZoneInvertMode } from '@/features/reader/tap-zones/TapZoneLayout.types.ts';
|
||||||
|
|
||||||
export const APP_METADATA_KEY_PREFIX = 'webUI';
|
export const APP_METADATA_KEY_PREFIX = 'webUI';
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import { MangaMetadataKeys } from '@/features/manga/Manga.types.ts';
|
|||||||
import { SourceMetadataKeys } from '@/features/source/Source.types.ts';
|
import { SourceMetadataKeys } from '@/features/source/Source.types.ts';
|
||||||
import { CategoryMetadataKeys } from '@/features/category/Category.types.ts';
|
import { CategoryMetadataKeys } from '@/features/category/Category.types.ts';
|
||||||
import { MetaType } from '@/lib/graphql/generated/graphql.ts';
|
import { MetaType } from '@/lib/graphql/generated/graphql.ts';
|
||||||
import { IReaderSettings } from '@/features/reader/types/Reader.types.ts';
|
import { IReaderSettings } from '@/features/reader/Reader.types.ts';
|
||||||
|
|
||||||
export interface IMetadataMigration {
|
export interface IMetadataMigration {
|
||||||
appKeyPrefix?: { oldPrefix: string; newPrefix: string };
|
appKeyPrefix?: { oldPrefix: string; newPrefix: string };
|
||||||
|
|||||||
@@ -7,10 +7,10 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { MutableRefObject } from 'react';
|
import { MutableRefObject } from 'react';
|
||||||
import { TapZoneInvertMode, TapZoneLayouts } from '@/features/reader/types/TapZoneLayout.types.ts';
|
import { TapZoneInvertMode, TapZoneLayouts } from '@/features/reader/tap-zones/TapZoneLayout.types.ts';
|
||||||
import { TChapterReader } from '@/features/chapter/Chapter.types.ts';
|
import { TChapterReader } from '@/features/chapter/Chapter.types.ts';
|
||||||
import { ReaderService } from '@/features/reader/services/ReaderService.ts';
|
import { ReaderService } from '@/features/reader/services/ReaderService.ts';
|
||||||
import { ReaderStatePages } from '@/features/reader/types/ReaderProgressBar.types.ts';
|
import { ReaderStatePages } from '@/features/reader/overlay/progress-bar/ReaderProgressBar.types.ts';
|
||||||
import { TMangaReader } from '@/features/manga/Manga.types.ts';
|
import { TMangaReader } from '@/features/manga/Manga.types.ts';
|
||||||
import { useAutomaticScrolling } from '@/features/core/hooks/useAutomaticScrolling.ts';
|
import { useAutomaticScrolling } from '@/features/core/hooks/useAutomaticScrolling.ts';
|
||||||
import { NavbarContextType } from '@/features/navigation-bar/NavigationBar.types.ts';
|
import { NavbarContextType } from '@/features/navigation-bar/NavigationBar.types.ts';
|
||||||
@@ -11,13 +11,13 @@ import {
|
|||||||
ReaderResumeMode,
|
ReaderResumeMode,
|
||||||
ReaderStateChapters,
|
ReaderStateChapters,
|
||||||
ReadingMode,
|
ReadingMode,
|
||||||
} from '@/features/reader/types/Reader.types.ts';
|
} from '@/features/reader/Reader.types.ts';
|
||||||
import { UpdateChapterPatchInput } from '@/lib/graphql/generated/graphql.ts';
|
import { UpdateChapterPatchInput } from '@/lib/graphql/generated/graphql.ts';
|
||||||
import { ChapterIdInfo, TChapterReader } from '@/features/chapter/Chapter.types.ts';
|
import { ChapterIdInfo, TChapterReader } from '@/features/chapter/Chapter.types.ts';
|
||||||
import { Chapters } from '@/features/chapter/services/Chapters.ts';
|
import { Chapters } from '@/features/chapter/services/Chapters.ts';
|
||||||
import { CHAPTER_READER_FIELDS } from '@/lib/graphql/fragments/ChapterFragments.ts';
|
import { CHAPTER_READER_FIELDS } from '@/lib/graphql/fragments/ChapterFragments.ts';
|
||||||
import { isPageOfOutdatedPageLoadStates, isSpreadPage } from '@/features/reader/utils/ReaderPager.utils.tsx';
|
import { isPageOfOutdatedPageLoadStates, isSpreadPage } from '@/features/reader/viewer/pager/ReaderPager.utils.tsx';
|
||||||
import { ReaderStatePages } from '@/features/reader/types/ReaderProgressBar.types.ts';
|
import { ReaderStatePages } from '@/features/reader/overlay/progress-bar/ReaderProgressBar.types.ts';
|
||||||
import { coerceIn } from '@/lib/HelperFunctions.ts';
|
import { coerceIn } from '@/lib/HelperFunctions.ts';
|
||||||
import { DirectionOffset } from '@/Base.types.ts';
|
import { DirectionOffset } from '@/Base.types.ts';
|
||||||
|
|
||||||
@@ -6,9 +6,9 @@
|
|||||||
* 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 { ReaderStatePages } from '@/features/reader/types/ReaderProgressBar.types.ts';
|
import { ReaderStatePages } from '@/features/reader/overlay/progress-bar/ReaderProgressBar.types.ts';
|
||||||
import { ReaderTransitionPageMode } from '@/features/reader/types/Reader.types.ts';
|
import { ReaderTransitionPageMode } from '@/features/reader/Reader.types.ts';
|
||||||
import { createPageData } from '@/features/reader/utils/ReaderPager.utils.tsx';
|
import { createPageData } from '@/features/reader/viewer/pager/ReaderPager.utils.tsx';
|
||||||
|
|
||||||
export const READER_STATE_PAGES_DEFAULTS: ReaderStatePages = {
|
export const READER_STATE_PAGES_DEFAULTS: ReaderStatePages = {
|
||||||
totalPages: 0,
|
totalPages: 0,
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { createContext, useContext } from 'react';
|
import { createContext, useContext } from 'react';
|
||||||
import { TReaderAutoScrollContext } from '@/features/reader/types/Reader.types.ts';
|
import { TReaderAutoScrollContext } from '@/features/reader/Reader.types.ts';
|
||||||
|
|
||||||
export const ReaderAutoScrollContext = createContext<TReaderAutoScrollContext>({
|
export const ReaderAutoScrollContext = createContext<TReaderAutoScrollContext>({
|
||||||
isActive: false,
|
isActive: false,
|
||||||
@@ -14,13 +14,13 @@ import {
|
|||||||
ReaderScrollAmount,
|
ReaderScrollAmount,
|
||||||
ReadingMode,
|
ReadingMode,
|
||||||
TReaderAutoScrollContext,
|
TReaderAutoScrollContext,
|
||||||
} from '@/features/reader/types/Reader.types.ts';
|
} from '@/features/reader/Reader.types.ts';
|
||||||
import { ReaderAutoScrollContext } from '@/features/reader/contexts/ReaderAutoScrollContext.tsx';
|
import { ReaderAutoScrollContext } from '@/features/reader/auto-scroll/contexts/ReaderAutoScrollContext.tsx';
|
||||||
import { ReaderControls } from '@/features/reader/services/ReaderControls';
|
import { ReaderControls } from '@/features/reader/services/ReaderControls.ts';
|
||||||
import { isContinuousReadingMode } from '@/features/reader/utils/ReaderSettings.utils.tsx';
|
import { isContinuousReadingMode } from '@/features/reader/settings/ReaderSettings.utils.tsx';
|
||||||
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
||||||
import { ReaderService } from '@/features/reader/services/ReaderService.ts';
|
import { ReaderService } from '@/features/reader/services/ReaderService.ts';
|
||||||
import { CONTINUOUS_READING_MODE_TO_SCROLL_DIRECTION } from '@/features/reader/constants/ReaderSettings.constants.tsx';
|
import { CONTINUOUS_READING_MODE_TO_SCROLL_DIRECTION } from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
||||||
import { ScrollOffset } from '@/features/core/Core.types.ts';
|
import { ScrollOffset } from '@/features/core/Core.types.ts';
|
||||||
import { getOptionForDirection } from '@/features/theme/services/ThemeCreator.ts';
|
import { getOptionForDirection } from '@/features/theme/services/ThemeCreator.ts';
|
||||||
|
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
import { useEffect } from 'react';
|
import { useEffect } from 'react';
|
||||||
import { useAutomaticScrolling } from '@/features/core/hooks/useAutomaticScrolling.ts';
|
import { useAutomaticScrolling } from '@/features/core/hooks/useAutomaticScrolling.ts';
|
||||||
import { IReaderSettings } from '@/features/reader/types/Reader.types.ts';
|
import { IReaderSettings } from '@/features/reader/Reader.types.ts';
|
||||||
|
|
||||||
export const useReaderAutoScroll = (
|
export const useReaderAutoScroll = (
|
||||||
isOverlayVisible: boolean,
|
isOverlayVisible: boolean,
|
||||||
@@ -8,9 +8,9 @@
|
|||||||
|
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { CheckboxInput } from '@/features/core/components/inputs/CheckboxInput.tsx';
|
import { CheckboxInput } from '@/features/core/components/inputs/CheckboxInput.tsx';
|
||||||
import { IReaderSettings } from '@/features/reader/types/Reader.types.ts';
|
import { IReaderSettings } from '@/features/reader/Reader.types.ts';
|
||||||
import { SliderInput } from '@/features/core/components/inputs/SliderInput.tsx';
|
import { SliderInput } from '@/features/core/components/inputs/SliderInput.tsx';
|
||||||
import { AUTO_SCROLL_SPEED, DEFAULT_READER_SETTINGS } from '@/features/reader/constants/ReaderSettings.constants.tsx';
|
import { AUTO_SCROLL_SPEED, DEFAULT_READER_SETTINGS } from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
||||||
|
|
||||||
export const ReaderSettingAutoScroll = ({
|
export const ReaderSettingAutoScroll = ({
|
||||||
autoScroll,
|
autoScroll,
|
||||||
@@ -14,9 +14,9 @@ import Stack from '@mui/material/Stack';
|
|||||||
import TextField from '@mui/material/TextField';
|
import TextField from '@mui/material/TextField';
|
||||||
import InputAdornment from '@mui/material/InputAdornment';
|
import InputAdornment from '@mui/material/InputAdornment';
|
||||||
import { useRef } from 'react';
|
import { useRef } from 'react';
|
||||||
import { useReaderAutoScrollContext } from '@/features/reader/contexts/ReaderAutoScrollContext.tsx';
|
import { useReaderAutoScrollContext } from '@/features/reader/auto-scroll/contexts/ReaderAutoScrollContext.tsx';
|
||||||
import { IReaderSettings } from '@/features/reader/types/Reader.types.ts';
|
import { IReaderSettings } from '@/features/reader/Reader.types.ts';
|
||||||
import { AUTO_SCROLL_SPEED } from '@/features/reader/constants/ReaderSettings.constants.tsx';
|
import { AUTO_SCROLL_SPEED } from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
||||||
import { coerceIn } from '@/lib/HelperFunctions.ts';
|
import { coerceIn } from '@/lib/HelperFunctions.ts';
|
||||||
|
|
||||||
export const ReaderNavBarDesktopAutoScroll = ({
|
export const ReaderNavBarDesktopAutoScroll = ({
|
||||||
@@ -7,12 +7,12 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { ReactNode } from 'react';
|
import { ReactNode } from 'react';
|
||||||
import { ReaderTapZoneContextProvider } from '@/features/reader/contexts/ReaderTapZoneContextProvider.tsx';
|
import { ReaderTapZoneContextProvider } from '@/features/reader/tap-zones/contexts/ReaderTapZoneContextProvider.tsx';
|
||||||
import { ReaderProgressBarContextProvider } from '@/features/reader/contexts/ReaderProgressBarContextProvider.tsx';
|
import { ReaderProgressBarContextProvider } from '@/features/reader/overlay/progress-bar/contexts/ReaderProgressBarContextProvider.tsx';
|
||||||
import { ReaderOverlayContextProvider } from '@/features/reader/contexts/ReaderOverlayContextProvider.tsx';
|
import { ReaderOverlayContextProvider } from '@/features/reader/overlay/contexts/ReaderOverlayContextProvider.tsx';
|
||||||
import { ReaderStateContextProvider } from '@/features/reader/contexts/state/ReaderStateContextProvider.tsx';
|
import { ReaderStateContextProvider } from '@/features/reader/contexts/state/ReaderStateContextProvider.tsx';
|
||||||
import { ReaderScrollbarContextProvider } from '@/features/reader/contexts/ReaderScrollbarContextProvider.tsx';
|
import { ReaderScrollbarContextProvider } from '@/features/reader/contexts/ReaderScrollbarContextProvider.tsx';
|
||||||
import { ReaderAutoScrollContextProvider } from '@/features/reader/contexts/ReaderAutoScrollContextProvider.tsx';
|
import { ReaderAutoScrollContextProvider } from '@/features/reader/auto-scroll/contexts/ReaderAutoScrollContextProvider.tsx';
|
||||||
|
|
||||||
export const ReaderContextProvider = ({ children }: { children?: ReactNode }) => (
|
export const ReaderContextProvider = ({ children }: { children?: ReactNode }) => (
|
||||||
<ReaderStateContextProvider>
|
<ReaderStateContextProvider>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { createContext, useContext } from 'react';
|
import { createContext, useContext } from 'react';
|
||||||
import { TReaderScrollbarContext } from '@/features/reader/types/Reader.types.ts';
|
import { TReaderScrollbarContext } from '@/features/reader/Reader.types.ts';
|
||||||
|
|
||||||
export const ReaderScrollbarContext = createContext<TReaderScrollbarContext>({
|
export const ReaderScrollbarContext = createContext<TReaderScrollbarContext>({
|
||||||
scrollbarXSize: 0,
|
scrollbarXSize: 0,
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { createContext, useContext } from 'react';
|
import { createContext, useContext } from 'react';
|
||||||
import { ReaderStateChapters } from '@/features/reader/types/Reader.types.ts';
|
import { ReaderStateChapters } from '@/features/reader/Reader.types.ts';
|
||||||
|
|
||||||
export const READER_STATE_CHAPTERS_DEFAULTS: Omit<ReaderStateChapters, 'setReaderStateChapters'> = {
|
export const READER_STATE_CHAPTERS_DEFAULTS: Omit<ReaderStateChapters, 'setReaderStateChapters'> = {
|
||||||
chapters: [],
|
chapters: [],
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import {
|
|||||||
READER_STATE_CHAPTERS_DEFAULTS,
|
READER_STATE_CHAPTERS_DEFAULTS,
|
||||||
ReaderStateChaptersContext,
|
ReaderStateChaptersContext,
|
||||||
} from '@/features/reader/contexts/state/ReaderStateChaptersContext.tsx';
|
} from '@/features/reader/contexts/state/ReaderStateChaptersContext.tsx';
|
||||||
import { ReaderStateChapters } from '@/features/reader/types/Reader.types.ts';
|
import { ReaderStateChapters } from '@/features/reader/Reader.types.ts';
|
||||||
|
|
||||||
export const ReaderStateChaptersContextProvider = ({ children }: { children: ReactNode }) => {
|
export const ReaderStateChaptersContextProvider = ({ children }: { children: ReactNode }) => {
|
||||||
const [state, setState] =
|
const [state, setState] =
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { createContext, useContext } from 'react';
|
import { createContext, useContext } from 'react';
|
||||||
import { TReaderStateMangaContext } from '@/features/reader/types/Reader.types.ts';
|
import { TReaderStateMangaContext } from '@/features/reader/Reader.types.ts';
|
||||||
|
|
||||||
export const ReaderStateMangaContext = createContext<TReaderStateMangaContext>({
|
export const ReaderStateMangaContext = createContext<TReaderStateMangaContext>({
|
||||||
manga: undefined,
|
manga: undefined,
|
||||||
|
|||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
import { ReactNode, useMemo, useState } from 'react';
|
import { ReactNode, useMemo, useState } from 'react';
|
||||||
import { ReaderStateMangaContext } from '@/features/reader/contexts/state/ReaderStateMangaContext.tsx';
|
import { ReaderStateMangaContext } from '@/features/reader/contexts/state/ReaderStateMangaContext.tsx';
|
||||||
import { TReaderStateMangaContext } from '@/features/reader/types/Reader.types.ts';
|
import { TReaderStateMangaContext } from '@/features/reader/Reader.types.ts';
|
||||||
|
|
||||||
export const ReaderStateMangaContextProvider = ({ children }: { children: ReactNode }) => {
|
export const ReaderStateMangaContextProvider = ({ children }: { children: ReactNode }) => {
|
||||||
const [manga, setManga] = useState<TReaderStateMangaContext['manga']>();
|
const [manga, setManga] = useState<TReaderStateMangaContext['manga']>();
|
||||||
|
|||||||
@@ -7,8 +7,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { createContext, useContext } from 'react';
|
import { createContext, useContext } from 'react';
|
||||||
import { ReaderStatePages } from '@/features/reader/types/ReaderProgressBar.types.ts';
|
import { ReaderStatePages } from '@/features/reader/overlay/progress-bar/ReaderProgressBar.types.ts';
|
||||||
import { ReaderTransitionPageMode } from '@/features/reader/types/Reader.types.ts';
|
import { ReaderTransitionPageMode } from '@/features/reader/Reader.types.ts';
|
||||||
|
|
||||||
export const ReaderStatePagesContext = createContext<ReaderStatePages>({
|
export const ReaderStatePagesContext = createContext<ReaderStatePages>({
|
||||||
totalPages: 0,
|
totalPages: 0,
|
||||||
|
|||||||
@@ -8,8 +8,8 @@
|
|||||||
|
|
||||||
import { ReactNode, useMemo, useState } from 'react';
|
import { ReactNode, useMemo, useState } from 'react';
|
||||||
import { ReaderStatePagesContext } from '@/features/reader/contexts/state/ReaderStatePagesContext.tsx';
|
import { ReaderStatePagesContext } from '@/features/reader/contexts/state/ReaderStatePagesContext.tsx';
|
||||||
import { ReaderStatePages } from '@/features/reader/types/ReaderProgressBar.types.ts';
|
import { ReaderStatePages } from '@/features/reader/overlay/progress-bar/ReaderProgressBar.types.ts';
|
||||||
import { READER_STATE_PAGES_DEFAULTS } from '@/features/reader/constants/ReaderContext.constants.ts';
|
import { READER_STATE_PAGES_DEFAULTS } from '@/features/reader/ReaderContext.constants.ts';
|
||||||
|
|
||||||
export const ReaderStatePagesContextProvider = ({ children }: { children: ReactNode }) => {
|
export const ReaderStatePagesContextProvider = ({ children }: { children: ReactNode }) => {
|
||||||
const [totalPages, setTotalPages] = useState<ReaderStatePages['totalPages']>(
|
const [totalPages, setTotalPages] = useState<ReaderStatePages['totalPages']>(
|
||||||
|
|||||||
@@ -7,8 +7,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { createContext, useContext } from 'react';
|
import { createContext, useContext } from 'react';
|
||||||
import { TReaderStateSettingsContext } from '@/features/reader/types/Reader.types.ts';
|
import { TReaderStateSettingsContext } from '@/features/reader/Reader.types.ts';
|
||||||
import { DEFAULT_READER_SETTINGS_WITH_DEFAULT_FLAG } from '@/features/reader/services/ReaderSettingsMetadata.ts';
|
import { DEFAULT_READER_SETTINGS_WITH_DEFAULT_FLAG } from '@/features/reader/settings/ReaderSettingsMetadata.ts';
|
||||||
|
|
||||||
export const ReaderStateSettingsContext = createContext<TReaderStateSettingsContext>({
|
export const ReaderStateSettingsContext = createContext<TReaderStateSettingsContext>({
|
||||||
settings: DEFAULT_READER_SETTINGS_WITH_DEFAULT_FLAG,
|
settings: DEFAULT_READER_SETTINGS_WITH_DEFAULT_FLAG,
|
||||||
|
|||||||
@@ -8,8 +8,8 @@
|
|||||||
|
|
||||||
import { ReactNode, useMemo, useState } from 'react';
|
import { ReactNode, useMemo, useState } from 'react';
|
||||||
import { ReaderStateSettingsContext } from '@/features/reader/contexts/state/ReaderStateSettingsContext.tsx';
|
import { ReaderStateSettingsContext } from '@/features/reader/contexts/state/ReaderStateSettingsContext.tsx';
|
||||||
import { DEFAULT_READER_SETTINGS_WITH_DEFAULT_FLAG } from '@/features/reader/services/ReaderSettingsMetadata.ts';
|
import { DEFAULT_READER_SETTINGS_WITH_DEFAULT_FLAG } from '@/features/reader/settings/ReaderSettingsMetadata.ts';
|
||||||
import { TReaderStateSettingsContext } from '@/features/reader/types/Reader.types.ts';
|
import { TReaderStateSettingsContext } from '@/features/reader/Reader.types.ts';
|
||||||
|
|
||||||
export const ReaderStateSettingsContextProvider = ({ children }: { children: ReactNode }) => {
|
export const ReaderStateSettingsContextProvider = ({ children }: { children: ReactNode }) => {
|
||||||
const [settings, setSettings] = useState<TReaderStateSettingsContext['settings']>(
|
const [settings, setSettings] = useState<TReaderStateSettingsContext['settings']>(
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import { ReaderService } from '@/features/reader/services/ReaderService.ts';
|
|||||||
import { useNavBarContext } from '@/features/navigation-bar/contexts/NavbarContext.tsx';
|
import { useNavBarContext } from '@/features/navigation-bar/contexts/NavbarContext.tsx';
|
||||||
import { NavbarContextType } from '@/features/navigation-bar/NavigationBar.types.ts';
|
import { NavbarContextType } from '@/features/navigation-bar/NavigationBar.types.ts';
|
||||||
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
||||||
import { IReaderSettings } from '@/features/reader/types/Reader.types.ts';
|
import { IReaderSettings } from '@/features/reader/Reader.types.ts';
|
||||||
|
|
||||||
const BaseReaderRGBAFilter = ({
|
const BaseReaderRGBAFilter = ({
|
||||||
readerNavBarWidth,
|
readerNavBarWidth,
|
||||||
@@ -7,15 +7,15 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import Stack from '@mui/material/Stack';
|
import Stack from '@mui/material/Stack';
|
||||||
import { ReaderSettingBrightness } from '@/features/reader/components/settings/filters/ReaderSettingBrightness.tsx';
|
import { ReaderSettingBrightness } from '@/features/reader/filters/settings/components/ReaderSettingBrightness.tsx';
|
||||||
import { ReaderSettingContrast } from '@/features/reader/components/settings/filters/ReaderSettingContrast.tsx';
|
import { ReaderSettingContrast } from '@/features/reader/filters/settings/components/ReaderSettingContrast.tsx';
|
||||||
import { ReaderSettingSaturate } from '@/features/reader/components/settings/filters/ReaderSettingSaturate.tsx';
|
import { ReaderSettingSaturate } from '@/features/reader/filters/settings/components/ReaderSettingSaturate.tsx';
|
||||||
import { ReaderSettingHue } from '@/features/reader/components/settings/filters/ReaderSettingHue.tsx';
|
import { ReaderSettingHue } from '@/features/reader/filters/settings/components/ReaderSettingHue.tsx';
|
||||||
import { ReaderSettingRGBA } from '@/features/reader/components/settings/filters/ReaderSettingRGBA.tsx';
|
import { ReaderSettingRGBA } from '@/features/reader/filters/settings/components/ReaderSettingRGBA.tsx';
|
||||||
import { ReaderSettingSepia } from '@/features/reader/components/settings/filters/ReaderSettingSepia.tsx';
|
import { ReaderSettingSepia } from '@/features/reader/filters/settings/components/ReaderSettingSepia.tsx';
|
||||||
import { ReaderSettingGrayscale } from '@/features/reader/components/settings/filters/ReaderSettingGrayscale.tsx';
|
import { ReaderSettingGrayscale } from '@/features/reader/filters/settings/components/ReaderSettingGrayscale.tsx';
|
||||||
import { ReaderSettingInvert } from '@/features/reader/components/settings/filters/ReaderSettingInvert.tsx';
|
import { ReaderSettingInvert } from '@/features/reader/filters/settings/components/ReaderSettingInvert.tsx';
|
||||||
import { ReaderSettingsTypeProps } from '@/features/reader/types/Reader.types.ts';
|
import { ReaderSettingsTypeProps } from '@/features/reader/Reader.types.ts';
|
||||||
import { ResetButton } from '@/features/core/components/buttons/ResetButton.tsx';
|
import { ResetButton } from '@/features/core/components/buttons/ResetButton.tsx';
|
||||||
|
|
||||||
export const ReaderFilterSettings = ({
|
export const ReaderFilterSettings = ({
|
||||||
@@ -8,11 +8,11 @@
|
|||||||
|
|
||||||
import Stack from '@mui/material/Stack';
|
import Stack from '@mui/material/Stack';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { IReaderSettings } from '@/features/reader/types/Reader.types.ts';
|
import { IReaderSettings } from '@/features/reader/Reader.types.ts';
|
||||||
import { CheckboxInput } from '@/features/core/components/inputs/CheckboxInput.tsx';
|
import { CheckboxInput } from '@/features/core/components/inputs/CheckboxInput.tsx';
|
||||||
import { SliderInput } from '@/features/core/components/inputs/SliderInput.tsx';
|
import { SliderInput } from '@/features/core/components/inputs/SliderInput.tsx';
|
||||||
|
|
||||||
import { CUSTOM_FILTER, DEFAULT_READER_SETTINGS } from '@/features/reader/constants/ReaderSettings.constants.tsx';
|
import { CUSTOM_FILTER, DEFAULT_READER_SETTINGS } from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
||||||
|
|
||||||
export const ReaderSettingBrightness = ({
|
export const ReaderSettingBrightness = ({
|
||||||
brightness,
|
brightness,
|
||||||
@@ -8,10 +8,10 @@
|
|||||||
|
|
||||||
import Stack from '@mui/material/Stack';
|
import Stack from '@mui/material/Stack';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { IReaderSettings } from '@/features/reader/types/Reader.types.ts';
|
import { IReaderSettings } from '@/features/reader/Reader.types.ts';
|
||||||
import { CheckboxInput } from '@/features/core/components/inputs/CheckboxInput.tsx';
|
import { CheckboxInput } from '@/features/core/components/inputs/CheckboxInput.tsx';
|
||||||
import { SliderInput } from '@/features/core/components/inputs/SliderInput.tsx';
|
import { SliderInput } from '@/features/core/components/inputs/SliderInput.tsx';
|
||||||
import { CUSTOM_FILTER, DEFAULT_READER_SETTINGS } from '@/features/reader/constants/ReaderSettings.constants.tsx';
|
import { CUSTOM_FILTER, DEFAULT_READER_SETTINGS } from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
||||||
|
|
||||||
export const ReaderSettingContrast = ({
|
export const ReaderSettingContrast = ({
|
||||||
contrast,
|
contrast,
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
import Stack from '@mui/material/Stack';
|
import Stack from '@mui/material/Stack';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { IReaderSettings } from '@/features/reader/types/Reader.types.ts';
|
import { IReaderSettings } from '@/features/reader/Reader.types.ts';
|
||||||
import { CheckboxInput } from '@/features/core/components/inputs/CheckboxInput.tsx';
|
import { CheckboxInput } from '@/features/core/components/inputs/CheckboxInput.tsx';
|
||||||
|
|
||||||
export const ReaderSettingGrayscale = ({
|
export const ReaderSettingGrayscale = ({
|
||||||
@@ -8,10 +8,10 @@
|
|||||||
|
|
||||||
import Stack from '@mui/material/Stack';
|
import Stack from '@mui/material/Stack';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { IReaderSettings } from '@/features/reader/types/Reader.types.ts';
|
import { IReaderSettings } from '@/features/reader/Reader.types.ts';
|
||||||
import { CheckboxInput } from '@/features/core/components/inputs/CheckboxInput.tsx';
|
import { CheckboxInput } from '@/features/core/components/inputs/CheckboxInput.tsx';
|
||||||
import { SliderInput } from '@/features/core/components/inputs/SliderInput.tsx';
|
import { SliderInput } from '@/features/core/components/inputs/SliderInput.tsx';
|
||||||
import { CUSTOM_FILTER, DEFAULT_READER_SETTINGS } from '@/features/reader/constants/ReaderSettings.constants.tsx';
|
import { CUSTOM_FILTER, DEFAULT_READER_SETTINGS } from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
||||||
|
|
||||||
export const ReaderSettingHue = ({
|
export const ReaderSettingHue = ({
|
||||||
hue,
|
hue,
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
import Stack from '@mui/material/Stack';
|
import Stack from '@mui/material/Stack';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { IReaderSettings } from '@/features/reader/types/Reader.types.ts';
|
import { IReaderSettings } from '@/features/reader/Reader.types.ts';
|
||||||
import { CheckboxInput } from '@/features/core/components/inputs/CheckboxInput.tsx';
|
import { CheckboxInput } from '@/features/core/components/inputs/CheckboxInput.tsx';
|
||||||
|
|
||||||
export const ReaderSettingInvert = ({
|
export const ReaderSettingInvert = ({
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
import Stack from '@mui/material/Stack';
|
import Stack from '@mui/material/Stack';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { IReaderSettings } from '@/features/reader/types/Reader.types.ts';
|
import { IReaderSettings } from '@/features/reader/Reader.types.ts';
|
||||||
import { CheckboxInput } from '@/features/core/components/inputs/CheckboxInput.tsx';
|
import { CheckboxInput } from '@/features/core/components/inputs/CheckboxInput.tsx';
|
||||||
import { TranslationKey } from '@/Base.types.ts';
|
import { TranslationKey } from '@/Base.types.ts';
|
||||||
import { SliderInput } from '@/features/core/components/inputs/SliderInput.tsx';
|
import { SliderInput } from '@/features/core/components/inputs/SliderInput.tsx';
|
||||||
@@ -18,7 +18,7 @@ import {
|
|||||||
DEFAULT_READER_SETTINGS,
|
DEFAULT_READER_SETTINGS,
|
||||||
READER_BLEND_MODE_VALUE_TO_DISPLAY_DATA,
|
READER_BLEND_MODE_VALUE_TO_DISPLAY_DATA,
|
||||||
READER_BLEND_MODE_VALUES,
|
READER_BLEND_MODE_VALUES,
|
||||||
} from '@/features/reader/constants/ReaderSettings.constants.tsx';
|
} from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
||||||
import { ButtonSelectInput } from '@/features/core/components/inputs/ButtonSelectInput.tsx';
|
import { ButtonSelectInput } from '@/features/core/components/inputs/ButtonSelectInput.tsx';
|
||||||
|
|
||||||
type RGBAType = Exclude<keyof IReaderSettings['customFilter']['rgba']['value'], 'blendMode'>;
|
type RGBAType = Exclude<keyof IReaderSettings['customFilter']['rgba']['value'], 'blendMode'>;
|
||||||
@@ -8,10 +8,10 @@
|
|||||||
|
|
||||||
import Stack from '@mui/material/Stack';
|
import Stack from '@mui/material/Stack';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { IReaderSettings } from '@/features/reader/types/Reader.types.ts';
|
import { IReaderSettings } from '@/features/reader/Reader.types.ts';
|
||||||
import { CheckboxInput } from '@/features/core/components/inputs/CheckboxInput.tsx';
|
import { CheckboxInput } from '@/features/core/components/inputs/CheckboxInput.tsx';
|
||||||
import { SliderInput } from '@/features/core/components/inputs/SliderInput.tsx';
|
import { SliderInput } from '@/features/core/components/inputs/SliderInput.tsx';
|
||||||
import { CUSTOM_FILTER, DEFAULT_READER_SETTINGS } from '@/features/reader/constants/ReaderSettings.constants.tsx';
|
import { CUSTOM_FILTER, DEFAULT_READER_SETTINGS } from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
||||||
|
|
||||||
export const ReaderSettingSaturate = ({
|
export const ReaderSettingSaturate = ({
|
||||||
saturate,
|
saturate,
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
import Stack from '@mui/material/Stack';
|
import Stack from '@mui/material/Stack';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { IReaderSettings } from '@/features/reader/types/Reader.types.ts';
|
import { IReaderSettings } from '@/features/reader/Reader.types.ts';
|
||||||
import { CheckboxInput } from '@/features/core/components/inputs/CheckboxInput.tsx';
|
import { CheckboxInput } from '@/features/core/components/inputs/CheckboxInput.tsx';
|
||||||
|
|
||||||
export const ReaderSettingSepia = ({
|
export const ReaderSettingSepia = ({
|
||||||
@@ -7,17 +7,17 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { useEffect } from 'react';
|
import { useEffect } from 'react';
|
||||||
import { createPageData } from '@/features/reader/utils/ReaderPager.utils.tsx';
|
import { createPageData } from '@/features/reader/viewer/pager/ReaderPager.utils.tsx';
|
||||||
import {
|
import {
|
||||||
ReaderStateChapters,
|
ReaderStateChapters,
|
||||||
ReaderTransitionPageMode,
|
ReaderTransitionPageMode,
|
||||||
TReaderAutoScrollContext,
|
TReaderAutoScrollContext,
|
||||||
TReaderStateMangaContext,
|
TReaderStateMangaContext,
|
||||||
TReaderStateSettingsContext,
|
TReaderStateSettingsContext,
|
||||||
} from '@/features/reader/types/Reader.types.ts';
|
} from '@/features/reader/Reader.types.ts';
|
||||||
import { DEFAULT_READER_SETTINGS_WITH_DEFAULT_FLAG } from '@/features/reader/services/ReaderSettingsMetadata.ts';
|
import { DEFAULT_READER_SETTINGS_WITH_DEFAULT_FLAG } from '@/features/reader/settings/ReaderSettingsMetadata.ts';
|
||||||
import { ReaderStatePages } from '@/features/reader/types/ReaderProgressBar.types.ts';
|
import { ReaderStatePages } from '@/features/reader/overlay/progress-bar/ReaderProgressBar.types.ts';
|
||||||
import { TReaderOverlayContext } from '@/features/reader/types/ReaderOverlay.types.ts';
|
import { TReaderOverlayContext } from '@/features/reader/overlay/ReaderOverlay.types.ts';
|
||||||
import { READER_STATE_CHAPTERS_DEFAULTS } from '@/features/reader/contexts/state/ReaderStateChaptersContext.tsx';
|
import { READER_STATE_CHAPTERS_DEFAULTS } from '@/features/reader/contexts/state/ReaderStateChaptersContext.tsx';
|
||||||
|
|
||||||
export const useReaderResetStates = (
|
export const useReaderResetStates = (
|
||||||
|
|||||||
@@ -16,11 +16,11 @@ import {
|
|||||||
IReaderSettings,
|
IReaderSettings,
|
||||||
ReaderOpenChapterLocationState,
|
ReaderOpenChapterLocationState,
|
||||||
ReaderStateChapters,
|
ReaderStateChapters,
|
||||||
} from '@/features/reader/types/Reader.types.ts';
|
} from '@/features/reader/Reader.types.ts';
|
||||||
import { READER_STATE_CHAPTERS_DEFAULTS } from '@/features/reader/contexts/state/ReaderStateChaptersContext.tsx';
|
import { READER_STATE_CHAPTERS_DEFAULTS } from '@/features/reader/contexts/state/ReaderStateChaptersContext.tsx';
|
||||||
import { filterChapters } from '@/features/chapter/utils/ChapterList.util.tsx';
|
import { filterChapters } from '@/features/chapter/utils/ChapterList.util.tsx';
|
||||||
import { ChapterListOptions } from '@/features/chapter/Chapter.types.ts';
|
import { ChapterListOptions } from '@/features/chapter/Chapter.types.ts';
|
||||||
import { getReaderChapterFromCache } from '@/features/reader/utils/Reader.utils.ts';
|
import { getReaderChapterFromCache } from '@/features/reader/Reader.utils.ts';
|
||||||
|
|
||||||
export const useReaderSetChaptersState = (
|
export const useReaderSetChaptersState = (
|
||||||
chaptersResponse: ReturnType<typeof requestManager.useGetMangaChapters<GetChaptersReaderQuery>>,
|
chaptersResponse: ReturnType<typeof requestManager.useGetMangaChapters<GetChaptersReaderQuery>>,
|
||||||
|
|||||||
@@ -11,9 +11,9 @@ import {
|
|||||||
getReaderSettings,
|
getReaderSettings,
|
||||||
getReaderSettingsFor,
|
getReaderSettingsFor,
|
||||||
useDefaultReaderSettings,
|
useDefaultReaderSettings,
|
||||||
} from '@/features/reader/services/ReaderSettingsMetadata.ts';
|
} from '@/features/reader/settings/ReaderSettingsMetadata.ts';
|
||||||
import { isAutoWebtoonMode } from '@/features/reader/utils/ReaderSettings.utils.tsx';
|
import { isAutoWebtoonMode } from '@/features/reader/settings/ReaderSettings.utils.tsx';
|
||||||
import { ReadingMode, TReaderStateSettingsContext } from '@/features/reader/types/Reader.types.ts';
|
import { ReadingMode, TReaderStateSettingsContext } from '@/features/reader/Reader.types.ts';
|
||||||
import { GetMangaReaderQuery } from '@/lib/graphql/generated/graphql.ts';
|
import { GetMangaReaderQuery } from '@/lib/graphql/generated/graphql.ts';
|
||||||
import { requestManager } from '@/lib/requests/RequestManager.ts';
|
import { requestManager } from '@/lib/requests/RequestManager.ts';
|
||||||
|
|
||||||
|
|||||||
@@ -8,11 +8,11 @@
|
|||||||
|
|
||||||
import { useEffect, useRef } from 'react';
|
import { useEffect, useRef } from 'react';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { IReaderSettings, IReaderSettingsWithDefaultFlag } from '@/features/reader/types/Reader.types.ts';
|
import { IReaderSettings, IReaderSettingsWithDefaultFlag } from '@/features/reader/Reader.types.ts';
|
||||||
import { makeToast } from '@/features/core/utils/Toast.ts';
|
import { makeToast } from '@/features/core/utils/Toast.ts';
|
||||||
import { READING_MODE_VALUE_TO_DISPLAY_DATA } from '@/features/reader/constants/ReaderSettings.constants.tsx';
|
import { READING_MODE_VALUE_TO_DISPLAY_DATA } from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
||||||
import { TranslationKey } from '@/Base.types.ts';
|
import { TranslationKey } from '@/Base.types.ts';
|
||||||
import { TReaderTapZoneContext } from '@/features/reader/types/TapZoneLayout.types.ts';
|
import { TReaderTapZoneContext } from '@/features/reader/tap-zones/TapZoneLayout.types.ts';
|
||||||
|
|
||||||
const HIDE_PREVIEW_TIMEOUT = 5000;
|
const HIDE_PREVIEW_TIMEOUT = 5000;
|
||||||
|
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ import { useEffect } from 'react';
|
|||||||
import { useTheme } from '@mui/material/styles';
|
import { useTheme } from '@mui/material/styles';
|
||||||
import { HOTKEY_SCOPES } from '@/features/hotkeys/Hotkeys.constants.ts';
|
import { HOTKEY_SCOPES } from '@/features/hotkeys/Hotkeys.constants.ts';
|
||||||
import { ReaderService } from '@/features/reader/services/ReaderService.ts';
|
import { ReaderService } from '@/features/reader/services/ReaderService.ts';
|
||||||
import { IReaderSettings, ReaderHotkey } from '@/features/reader/types/Reader.types.ts';
|
import { IReaderSettings, ReaderHotkey } from '@/features/reader/Reader.types.ts';
|
||||||
import { useReaderOverlayContext } from '@/features/reader/contexts/ReaderOverlayContext.tsx';
|
import { useReaderOverlayContext } from '@/features/reader/overlay/contexts/ReaderOverlayContext.tsx';
|
||||||
import { getNextRotationValue } from '@/features/core/utils/ValueRotationButton.utils.ts';
|
import { getNextRotationValue } from '@/features/core/utils/ValueRotationButton.utils.ts';
|
||||||
import {
|
import {
|
||||||
AUTO_SCROLL_SPEED,
|
AUTO_SCROLL_SPEED,
|
||||||
@@ -20,15 +20,15 @@ import {
|
|||||||
READER_PAGE_SCALE_MODE_VALUES,
|
READER_PAGE_SCALE_MODE_VALUES,
|
||||||
READING_DIRECTION_VALUES,
|
READING_DIRECTION_VALUES,
|
||||||
READING_MODE_VALUES,
|
READING_MODE_VALUES,
|
||||||
} from '@/features/reader/constants/ReaderSettings.constants.tsx';
|
} from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
||||||
import { useReaderStateMangaContext } from '@/features/reader/contexts/state/ReaderStateMangaContext.tsx';
|
import { useReaderStateMangaContext } from '@/features/reader/contexts/state/ReaderStateMangaContext.tsx';
|
||||||
import { HotkeyScope } from '@/features/hotkeys/Hotkeys.types.ts';
|
import { HotkeyScope } from '@/features/hotkeys/Hotkeys.types.ts';
|
||||||
import { ReaderControls } from '@/features/reader/services/ReaderControls.ts';
|
import { ReaderControls } from '@/features/reader/services/ReaderControls.ts';
|
||||||
import { ScrollOffset } from '@/features/core/Core.types.ts';
|
import { ScrollOffset } from '@/features/core/Core.types.ts';
|
||||||
import { getOptionForDirection } from '@/features/theme/services/ThemeCreator.ts';
|
import { getOptionForDirection } from '@/features/theme/services/ThemeCreator.ts';
|
||||||
import { FALLBACK_MANGA } from '@/features/manga/Manga.constants.ts';
|
import { FALLBACK_MANGA } from '@/features/manga/Manga.constants.ts';
|
||||||
import { useReaderAutoScrollContext } from '@/features/reader/contexts/ReaderAutoScrollContext.tsx';
|
import { useReaderAutoScrollContext } from '@/features/reader/auto-scroll/contexts/ReaderAutoScrollContext.tsx';
|
||||||
import { useReaderTapZoneContext } from '@/features/reader/contexts/ReaderTapZoneContext.tsx';
|
import { useReaderTapZoneContext } from '@/features/reader/tap-zones/contexts/ReaderTapZoneContext.tsx';
|
||||||
|
|
||||||
const useHotkeys = (...args: Parameters<typeof useHotKeysHook>): ReturnType<typeof useHotKeysHook> => {
|
const useHotkeys = (...args: Parameters<typeof useHotKeysHook>): ReturnType<typeof useHotKeysHook> => {
|
||||||
const [keys, callback, options, dependencies] = args;
|
const [keys, callback, options, dependencies] = args;
|
||||||
@@ -9,9 +9,9 @@
|
|||||||
import Stack from '@mui/material/Stack';
|
import Stack from '@mui/material/Stack';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import Typography from '@mui/material/Typography';
|
import Typography from '@mui/material/Typography';
|
||||||
import { ReaderSettingsTypeProps } from '@/features/reader/types/Reader.types.ts';
|
import { ReaderSettingsTypeProps } from '@/features/reader/Reader.types.ts';
|
||||||
import { ReaderSettingHotkey } from '@/features/reader/components/settings/hotkeys/ReaderSettingHotkey.tsx';
|
import { ReaderSettingHotkey } from '@/features/reader/hotkeys/settings/components/ReaderSettingHotkey.tsx';
|
||||||
import { READER_HOTKEYS } from '@/features/reader/constants/ReaderSettings.constants.tsx';
|
import { READER_HOTKEYS } from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
||||||
import { ResetButton } from '@/features/core/components/buttons/ResetButton.tsx';
|
import { ResetButton } from '@/features/core/components/buttons/ResetButton.tsx';
|
||||||
|
|
||||||
export const ReaderHotkeysSettings = ({ settings, updateSetting, onDefault }: ReaderSettingsTypeProps) => {
|
export const ReaderHotkeysSettings = ({ settings, updateSetting, onDefault }: ReaderSettingsTypeProps) => {
|
||||||
@@ -13,11 +13,11 @@ import Typography from '@mui/material/Typography';
|
|||||||
import { bindTrigger, usePopupState } from 'material-ui-popup-state/hooks';
|
import { bindTrigger, usePopupState } from 'material-ui-popup-state/hooks';
|
||||||
import IconButton from '@mui/material/IconButton';
|
import IconButton from '@mui/material/IconButton';
|
||||||
import { CustomTooltip } from '@/features/core/components/CustomTooltip.tsx';
|
import { CustomTooltip } from '@/features/core/components/CustomTooltip.tsx';
|
||||||
import { ReaderHotkey } from '@/features/reader/types/Reader.types.ts';
|
import { ReaderHotkey } from '@/features/reader/Reader.types.ts';
|
||||||
import { DEFAULT_READER_SETTINGS } from '@/features/reader/constants/ReaderSettings.constants.tsx';
|
import { DEFAULT_READER_SETTINGS } from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
||||||
import { TranslationKey } from '@/Base.types.ts';
|
import { TranslationKey } from '@/Base.types.ts';
|
||||||
import { RecordHotkey } from '@/features/reader/components/settings/hotkeys/RecordHotkey.tsx';
|
import { RecordHotkey } from '@/features/reader/hotkeys/settings/components/RecordHotkey.tsx';
|
||||||
import { Hotkey } from '@/features/reader/components/settings/hotkeys/Hotkey.tsx';
|
import { Hotkey } from '@/features/reader/hotkeys/settings/components/Hotkey.tsx';
|
||||||
import { ResetButton } from '@/features/core/components/buttons/ResetButton.tsx';
|
import { ResetButton } from '@/features/core/components/buttons/ResetButton.tsx';
|
||||||
|
|
||||||
const READER_HOTKEY_TO_TITLE: Record<ReaderHotkey, TranslationKey> = {
|
const READER_HOTKEY_TO_TITLE: Record<ReaderHotkey, TranslationKey> = {
|
||||||
@@ -16,7 +16,7 @@ import DialogContent from '@mui/material/DialogContent';
|
|||||||
import DialogActions from '@mui/material/DialogActions';
|
import DialogActions from '@mui/material/DialogActions';
|
||||||
import Button from '@mui/material/Button';
|
import Button from '@mui/material/Button';
|
||||||
import Typography from '@mui/material/Typography';
|
import Typography from '@mui/material/Typography';
|
||||||
import { Hotkey } from '@/features/reader/components/settings/hotkeys/Hotkey.tsx';
|
import { Hotkey } from '@/features/reader/hotkeys/settings/components/Hotkey.tsx';
|
||||||
|
|
||||||
export const RecordHotkey = ({
|
export const RecordHotkey = ({
|
||||||
onClose,
|
onClose,
|
||||||
@@ -8,8 +8,8 @@
|
|||||||
|
|
||||||
import { memo } from 'react';
|
import { memo } from 'react';
|
||||||
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
||||||
import { useReaderInfiniteScrollUpdateChapter } from '@/features/reader/hooks/useReaderInfiniteScrollUpdateChapter.ts';
|
import { useReaderInfiniteScrollUpdateChapter } from '@/features/reader/infinite-scroll/useReaderInfiniteScrollUpdateChapter.ts';
|
||||||
import { IReaderSettings, TReaderScrollbarContext } from '@/features/reader/types/Reader.types.ts';
|
import { IReaderSettings, TReaderScrollbarContext } from '@/features/reader/Reader.types.ts';
|
||||||
import { ReaderControls } from '@/features/reader/services/ReaderControls.ts';
|
import { ReaderControls } from '@/features/reader/services/ReaderControls.ts';
|
||||||
import { ReaderService } from '@/features/reader/services/ReaderService.ts';
|
import { ReaderService } from '@/features/reader/services/ReaderService.ts';
|
||||||
import { ChapterIdInfo } from '@/features/chapter/Chapter.types.ts';
|
import { ChapterIdInfo } from '@/features/chapter/Chapter.types.ts';
|
||||||
@@ -8,12 +8,12 @@
|
|||||||
|
|
||||||
import { useCallback, useEffect, useMemo } from 'react';
|
import { useCallback, useEffect, useMemo } from 'react';
|
||||||
import { ReaderControls } from '@/features/reader/services/ReaderControls.ts';
|
import { ReaderControls } from '@/features/reader/services/ReaderControls.ts';
|
||||||
import { ReadingDirection, ReadingMode } from '@/features/reader/types/Reader.types.ts';
|
import { ReadingDirection, ReadingMode } from '@/features/reader/Reader.types.ts';
|
||||||
import {
|
import {
|
||||||
isContinuousReadingMode,
|
isContinuousReadingMode,
|
||||||
isContinuousVerticalReadingMode,
|
isContinuousVerticalReadingMode,
|
||||||
} from '@/features/reader/utils/ReaderSettings.utils.tsx';
|
} from '@/features/reader/settings/ReaderSettings.utils.tsx';
|
||||||
import { READING_DIRECTION_TO_THEME_DIRECTION } from '@/features/reader/constants/ReaderSettings.constants.tsx';
|
import { READING_DIRECTION_TO_THEME_DIRECTION } from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
||||||
import { getOptionForDirection } from '@/features/theme/services/ThemeCreator.ts';
|
import { getOptionForDirection } from '@/features/theme/services/ThemeCreator.ts';
|
||||||
import { useIntersectionObserver } from '@/features/core/hooks/useIntersectionObserver.tsx';
|
import { useIntersectionObserver } from '@/features/core/hooks/useIntersectionObserver.tsx';
|
||||||
|
|
||||||
@@ -8,13 +8,13 @@
|
|||||||
|
|
||||||
import Box from '@mui/material/Box';
|
import Box from '@mui/material/Box';
|
||||||
import { memo, useCallback, useRef, useState } from 'react';
|
import { memo, useCallback, useRef, useState } from 'react';
|
||||||
import { BaseReaderOverlayProps, MobileHeaderProps } from '@/features/reader/types/ReaderOverlay.types.ts';
|
import { BaseReaderOverlayProps, MobileHeaderProps } from '@/features/reader/overlay/ReaderOverlay.types.ts';
|
||||||
import { ReaderSettings } from '@/features/reader/components/settings/ReaderSettings.tsx';
|
import { ReaderSettings } from '@/features/reader/settings/screens/ReaderSettings.tsx';
|
||||||
import { ReaderPageNumber } from '@/features/reader/components/ReaderPageNumber.tsx';
|
import { ReaderPageNumber } from '@/features/reader/overlay/components/ReaderPageNumber.tsx';
|
||||||
import { StandardReaderProgressBar } from '@/features/reader/components/overlay/progress-bar/variants/StandardReaderProgressBar.tsx';
|
import { StandardReaderProgressBar } from '@/features/reader/overlay/progress-bar/desktop/StandardReaderProgressBar.tsx';
|
||||||
import { ReaderNavBarDesktop } from '@/features/reader/components/overlay/navigation/desktop/ReaderNavBarDesktop.tsx';
|
import { ReaderNavBarDesktop } from '@/features/reader/overlay/navigation/desktop/ReaderNavBarDesktop.tsx';
|
||||||
import { ReaderOverlayHeaderMobile } from '@/features/reader/components/overlay/ReaderOverlayHeaderMobile.tsx';
|
import { ReaderOverlayHeaderMobile } from '@/features/reader/overlay/mobile/ReaderOverlayHeaderMobile.tsx';
|
||||||
import { ReaderBottomBarMobile } from '@/features/reader/components/overlay/navigation/mobile/ReaderBottomBarMobile.tsx';
|
import { ReaderBottomBarMobile } from '@/features/reader/overlay/navigation/mobile/ReaderBottomBarMobile.tsx';
|
||||||
import { ReaderService } from '@/features/reader/services/ReaderService.ts';
|
import { ReaderService } from '@/features/reader/services/ReaderService.ts';
|
||||||
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
||||||
import { useResizeObserver } from '@/features/core/hooks/useResizeObserver.tsx';
|
import { useResizeObserver } from '@/features/core/hooks/useResizeObserver.tsx';
|
||||||
@@ -16,15 +16,18 @@ import {
|
|||||||
ProgressBarType,
|
ProgressBarType,
|
||||||
ReadingDirection,
|
ReadingDirection,
|
||||||
TReaderScrollbarContext,
|
TReaderScrollbarContext,
|
||||||
} from '@/features/reader/types/Reader.types.ts';
|
} from '@/features/reader/Reader.types.ts';
|
||||||
import { userReaderStatePagesContext } from '@/features/reader/contexts/state/ReaderStatePagesContext.tsx';
|
import { userReaderStatePagesContext } from '@/features/reader/contexts/state/ReaderStatePagesContext.tsx';
|
||||||
import { getPage } from '@/features/reader/utils/ReaderProgressBar.utils.tsx';
|
import { getPage } from '@/features/reader/overlay/progress-bar/ReaderProgressBar.utils.tsx';
|
||||||
import { useNavBarContext } from '@/features/navigation-bar/contexts/NavbarContext.tsx';
|
import { useNavBarContext } from '@/features/navigation-bar/contexts/NavbarContext.tsx';
|
||||||
import { useReaderProgressBarContext } from '@/features/reader/contexts/ReaderProgressBarContext.tsx';
|
import { useReaderProgressBarContext } from '@/features/reader/overlay/progress-bar/contexts/ReaderProgressBarContext.tsx';
|
||||||
import { useReaderScrollbarContext } from '@/features/reader/contexts/ReaderScrollbarContext.tsx';
|
import { useReaderScrollbarContext } from '@/features/reader/contexts/ReaderScrollbarContext.tsx';
|
||||||
import { reverseString } from '@/util/Strings.ts';
|
import { reverseString } from '@/util/Strings.ts';
|
||||||
import { NavbarContextType } from '@/features/navigation-bar/NavigationBar.types.ts';
|
import { NavbarContextType } from '@/features/navigation-bar/NavigationBar.types.ts';
|
||||||
import { ReaderStatePages, TReaderProgressBarContext } from '@/features/reader/types/ReaderProgressBar.types.ts';
|
import {
|
||||||
|
ReaderStatePages,
|
||||||
|
TReaderProgressBarContext,
|
||||||
|
} from '@/features/reader/overlay/progress-bar/ReaderProgressBar.types.ts';
|
||||||
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
||||||
|
|
||||||
const BaseReaderPageNumber = ({
|
const BaseReaderPageNumber = ({
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { createContext, useContext } from 'react';
|
import { createContext, useContext } from 'react';
|
||||||
import { TReaderOverlayContext } from '@/features/reader/types/ReaderOverlay.types.ts';
|
import { TReaderOverlayContext } from '@/features/reader/overlay/ReaderOverlay.types.ts';
|
||||||
|
|
||||||
export const ReaderOverlayContext = createContext<TReaderOverlayContext>({
|
export const ReaderOverlayContext = createContext<TReaderOverlayContext>({
|
||||||
isVisible: false,
|
isVisible: false,
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { ReactNode, useMemo, useState } from 'react';
|
import { ReactNode, useMemo, useState } from 'react';
|
||||||
import { ReaderOverlayContext } from '@/features/reader/contexts/ReaderOverlayContext.tsx';
|
import { ReaderOverlayContext } from '@/features/reader/overlay/contexts/ReaderOverlayContext.tsx';
|
||||||
|
|
||||||
export const ReaderOverlayContextProvider = ({ children }: { children: ReactNode }) => {
|
export const ReaderOverlayContextProvider = ({ children }: { children: ReactNode }) => {
|
||||||
const [isVisible, setIsVisible] = useState(false);
|
const [isVisible, setIsVisible] = useState(false);
|
||||||
@@ -7,8 +7,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { MutableRefObject, useEffect } from 'react';
|
import { MutableRefObject, useEffect } from 'react';
|
||||||
import { TReaderOverlayContext } from '@/features/reader/types/ReaderOverlay.types.ts';
|
import { TReaderOverlayContext } from '@/features/reader/overlay/ReaderOverlay.types.ts';
|
||||||
import { TReaderTapZoneContext } from '@/features/reader/types/TapZoneLayout.types.ts';
|
import { TReaderTapZoneContext } from '@/features/reader/tap-zones/TapZoneLayout.types.ts';
|
||||||
|
|
||||||
export const useReaderHideOverlayOnUserScroll = (
|
export const useReaderHideOverlayOnUserScroll = (
|
||||||
isOverlayVisible: boolean,
|
isOverlayVisible: boolean,
|
||||||
@@ -21,23 +21,23 @@ import { forwardRef, memo } from 'react';
|
|||||||
import { CustomTooltip } from '@/features/core/components/CustomTooltip.tsx';
|
import { CustomTooltip } from '@/features/core/components/CustomTooltip.tsx';
|
||||||
import { TypographyMaxLines } from '@/features/core/components/texts/TypographyMaxLines.tsx';
|
import { TypographyMaxLines } from '@/features/core/components/texts/TypographyMaxLines.tsx';
|
||||||
import { makeToast } from '@/features/core/utils/Toast.ts';
|
import { makeToast } from '@/features/core/utils/Toast.ts';
|
||||||
import { MobileHeaderProps } from '@/features/reader/types/ReaderOverlay.types.ts';
|
import { MobileHeaderProps } from '@/features/reader/overlay/ReaderOverlay.types.ts';
|
||||||
import { LoadingPlaceholder } from '@/features/core/components/feedback/LoadingPlaceholder';
|
import { LoadingPlaceholder } from '@/features/core/components/feedback/LoadingPlaceholder.tsx';
|
||||||
import { AppRoutes } from '@/features/core/AppRoute.constants.ts';
|
import { AppRoutes } from '@/features/core/AppRoute.constants.ts';
|
||||||
import {
|
import {
|
||||||
ReaderStateChapters,
|
ReaderStateChapters,
|
||||||
TReaderScrollbarContext,
|
TReaderScrollbarContext,
|
||||||
TReaderStateMangaContext,
|
TReaderStateMangaContext,
|
||||||
} from '@/features/reader/types/Reader.types.ts';
|
} from '@/features/reader/Reader.types.ts';
|
||||||
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
||||||
import { useReaderStateMangaContext } from '@/features/reader/contexts/state/ReaderStateMangaContext.tsx';
|
import { useReaderStateMangaContext } from '@/features/reader/contexts/state/ReaderStateMangaContext.tsx';
|
||||||
import { useReaderStateChaptersContext } from '@/features/reader/contexts/state/ReaderStateChaptersContext.tsx';
|
import { useReaderStateChaptersContext } from '@/features/reader/contexts/state/ReaderStateChaptersContext.tsx';
|
||||||
import { useReaderScrollbarContext } from '@/features/reader/contexts/ReaderScrollbarContext.tsx';
|
import { useReaderScrollbarContext } from '@/features/reader/contexts/ReaderScrollbarContext.tsx';
|
||||||
import { ReaderLibraryButton } from '@/features/reader/components/overlay/navigation/ReaderLibraryButton.tsx';
|
import { ReaderLibraryButton } from '@/features/reader/overlay/navigation/components/ReaderLibraryButton.tsx';
|
||||||
import { ReaderBookmarkButton } from '@/features/reader/components/overlay/navigation/ReaderBookmarkButton.tsx';
|
import { ReaderBookmarkButton } from '@/features/reader/overlay/navigation/components/ReaderBookmarkButton.tsx';
|
||||||
import { FALLBACK_CHAPTER } from '@/features/chapter/Chapter.constants.ts';
|
import { FALLBACK_CHAPTER } from '@/features/chapter/Chapter.constants.ts';
|
||||||
import { FALLBACK_MANGA } from '@/features/manga/Manga.constants.ts';
|
import { FALLBACK_MANGA } from '@/features/manga/Manga.constants.ts';
|
||||||
import { ReaderExitButton } from '@/features/reader/components/overlay/navigation/ReaderExitButton.tsx';
|
import { ReaderExitButton } from '@/features/reader/overlay/navigation/components/ReaderExitButton.tsx';
|
||||||
import { requestManager } from '@/lib/requests/RequestManager.ts';
|
import { requestManager } from '@/lib/requests/RequestManager.ts';
|
||||||
|
|
||||||
const DEFAULT_MANGA = { ...FALLBACK_MANGA, title: '' };
|
const DEFAULT_MANGA = { ...FALLBACK_MANGA, title: '' };
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
import { Virtuoso, VirtuosoProps } from 'react-virtuoso';
|
import { Virtuoso, VirtuosoProps } from 'react-virtuoso';
|
||||||
import { useMemo } from 'react';
|
import { useMemo } from 'react';
|
||||||
import { ReaderStateChapters } from '@/features/reader/types/Reader.types.ts';
|
import { ReaderStateChapters } from '@/features/reader/Reader.types.ts';
|
||||||
import { ChapterListCard } from '@/features/chapter/components/cards/ChapterListCard.tsx';
|
import { ChapterListCard } from '@/features/chapter/components/cards/ChapterListCard.tsx';
|
||||||
|
|
||||||
const onSelectNoop = () => {};
|
const onSelectNoop = () => {};
|
||||||
@@ -14,7 +14,7 @@ import { memo } from 'react';
|
|||||||
import { CustomTooltip } from '@/features/core/components/CustomTooltip.tsx';
|
import { CustomTooltip } from '@/features/core/components/CustomTooltip.tsx';
|
||||||
import { useManageMangaLibraryState } from '@/features/manga/hooks/useManageMangaLibraryState.tsx';
|
import { useManageMangaLibraryState } from '@/features/manga/hooks/useManageMangaLibraryState.tsx';
|
||||||
import { FALLBACK_MANGA } from '@/features/manga/Manga.constants.ts';
|
import { FALLBACK_MANGA } from '@/features/manga/Manga.constants.ts';
|
||||||
import { TReaderStateMangaContext } from '@/features/reader/types/Reader.types.ts';
|
import { TReaderStateMangaContext } from '@/features/reader/Reader.types.ts';
|
||||||
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
||||||
import { useReaderStateMangaContext } from '@/features/reader/contexts/state/ReaderStateMangaContext.tsx';
|
import { useReaderStateMangaContext } from '@/features/reader/contexts/state/ReaderStateMangaContext.tsx';
|
||||||
|
|
||||||
@@ -15,13 +15,13 @@ import Divider from '@mui/material/Divider';
|
|||||||
import { memo, useCallback, useLayoutEffect, useRef, useState } from 'react';
|
import { memo, useCallback, useLayoutEffect, useRef, useState } from 'react';
|
||||||
import Drawer from '@mui/material/Drawer';
|
import Drawer from '@mui/material/Drawer';
|
||||||
import { CustomTooltip } from '@/features/core/components/CustomTooltip.tsx';
|
import { CustomTooltip } from '@/features/core/components/CustomTooltip.tsx';
|
||||||
import { ReaderNavBarDesktopProps } from '@/features/reader/types/ReaderOverlay.types.ts';
|
import { ReaderNavBarDesktopProps } from '@/features/reader/overlay/ReaderOverlay.types.ts';
|
||||||
import { ReaderNavContainer } from '@/features/reader/components/overlay/navigation/desktop/ReaderNavContainer.tsx';
|
import { ReaderNavContainer } from '@/features/reader/overlay/navigation/desktop/components/ReaderNavContainer.tsx';
|
||||||
import { ReaderNavBarDesktopMetadata } from '@/features/reader/components/overlay/navigation/desktop/ReaderNavBarDesktopMetadata.tsx';
|
import { ReaderNavBarDesktopMetadata } from '@/features/reader/overlay/navigation/desktop/components/ReaderNavBarDesktopMetadata.tsx';
|
||||||
import { ReaderNavBarDesktopPageNavigation } from '@/features/reader/components/overlay/navigation/desktop/ReaderNavBarDesktopPageNavigation.tsx';
|
import { ReaderNavBarDesktopPageNavigation } from '@/features/reader/overlay/navigation/desktop/components/ReaderNavBarDesktopPageNavigation.tsx';
|
||||||
import { ReaderNavBarDesktopChapterNavigation } from '@/features/reader/components/overlay/navigation/desktop/ReaderNavBarDesktopChapterNavigation.tsx';
|
import { ReaderNavBarDesktopChapterNavigation } from '@/features/reader/overlay/navigation/desktop/components/ReaderNavBarDesktopChapterNavigation.tsx';
|
||||||
import { ReaderNavBarDesktopQuickSettings } from '@/features/reader/components/overlay/navigation/desktop/quick-settings/ReaderNavBarDesktopQuickSettings.tsx';
|
import { ReaderNavBarDesktopQuickSettings } from '@/features/reader/overlay/navigation/desktop/quick-settings/ReaderNavBarDesktopQuickSettings.tsx';
|
||||||
import { ReaderNavBarDesktopActions } from '@/features/reader/components/overlay/navigation/desktop/ReaderNavBarDesktopActions.tsx';
|
import { ReaderNavBarDesktopActions } from '@/features/reader/overlay/navigation/desktop/components/ReaderNavBarDesktopActions.tsx';
|
||||||
import { useNavBarContext } from '@/features/navigation-bar/contexts/NavbarContext.tsx';
|
import { useNavBarContext } from '@/features/navigation-bar/contexts/NavbarContext.tsx';
|
||||||
import { useResizeObserver } from '@/features/core/hooks/useResizeObserver.tsx';
|
import { useResizeObserver } from '@/features/core/hooks/useResizeObserver.tsx';
|
||||||
import { useReaderStateMangaContext } from '@/features/reader/contexts/state/ReaderStateMangaContext.tsx';
|
import { useReaderStateMangaContext } from '@/features/reader/contexts/state/ReaderStateMangaContext.tsx';
|
||||||
@@ -30,14 +30,10 @@ import { useReaderStateChaptersContext } from '@/features/reader/contexts/state/
|
|||||||
import { ReaderService } from '@/features/reader/services/ReaderService.ts';
|
import { ReaderService } from '@/features/reader/services/ReaderService.ts';
|
||||||
import { LoadingPlaceholder } from '@/features/core/components/feedback/LoadingPlaceholder.tsx';
|
import { LoadingPlaceholder } from '@/features/core/components/feedback/LoadingPlaceholder.tsx';
|
||||||
import { NavbarContextType } from '@/features/navigation-bar/NavigationBar.types.ts';
|
import { NavbarContextType } from '@/features/navigation-bar/NavigationBar.types.ts';
|
||||||
import {
|
import { IReaderSettings, ReaderStateChapters, TReaderStateMangaContext } from '@/features/reader/Reader.types.ts';
|
||||||
IReaderSettings,
|
|
||||||
ReaderStateChapters,
|
|
||||||
TReaderStateMangaContext,
|
|
||||||
} from '@/features/reader/types/Reader.types.ts';
|
|
||||||
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
||||||
import { FALLBACK_MANGA } from '@/features/manga/Manga.constants.ts';
|
import { FALLBACK_MANGA } from '@/features/manga/Manga.constants.ts';
|
||||||
import { ReaderExitButton } from '@/features/reader/components/overlay/navigation/ReaderExitButton.tsx';
|
import { ReaderExitButton } from '@/features/reader/overlay/navigation/components/ReaderExitButton.tsx';
|
||||||
|
|
||||||
const useGetPreviousNavBarStaticValue = (isVisible: boolean, isStaticNav: boolean) => {
|
const useGetPreviousNavBarStaticValue = (isVisible: boolean, isStaticNav: boolean) => {
|
||||||
const wasNavBarStaticRef = useRef(isStaticNav);
|
const wasNavBarStaticRef = useRef(isStaticNav);
|
||||||
@@ -15,14 +15,14 @@ import { memo, useMemo, useRef } from 'react';
|
|||||||
import DeleteIcon from '@mui/icons-material/Delete';
|
import DeleteIcon from '@mui/icons-material/Delete';
|
||||||
import { CustomTooltip } from '@/features/core/components/CustomTooltip.tsx';
|
import { CustomTooltip } from '@/features/core/components/CustomTooltip.tsx';
|
||||||
import { Chapters } from '@/features/chapter/services/Chapters.ts';
|
import { Chapters } from '@/features/chapter/services/Chapters.ts';
|
||||||
import { ReaderStateChapters } from '@/features/reader/types/Reader.types.ts';
|
import { ReaderStateChapters } from '@/features/reader/Reader.types.ts';
|
||||||
import { DownloadStateIndicator } from '@/features/core/components/downloads/DownloadStateIndicator.tsx';
|
import { DownloadStateIndicator } from '@/features/core/components/downloads/DownloadStateIndicator.tsx';
|
||||||
import { ReaderStatePages } from '@/features/reader/types/ReaderProgressBar.types.ts';
|
import { ReaderStatePages } from '@/features/reader/overlay/progress-bar/ReaderProgressBar.types.ts';
|
||||||
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
||||||
import { useReaderStateChaptersContext } from '@/features/reader/contexts/state/ReaderStateChaptersContext.tsx';
|
import { useReaderStateChaptersContext } from '@/features/reader/contexts/state/ReaderStateChaptersContext.tsx';
|
||||||
import { userReaderStatePagesContext } from '@/features/reader/contexts/state/ReaderStatePagesContext.tsx';
|
import { userReaderStatePagesContext } from '@/features/reader/contexts/state/ReaderStatePagesContext.tsx';
|
||||||
import { ReaderLibraryButton } from '@/features/reader/components/overlay/navigation/ReaderLibraryButton.tsx';
|
import { ReaderLibraryButton } from '@/features/reader/overlay/navigation/components/ReaderLibraryButton.tsx';
|
||||||
import { ReaderBookmarkButton } from '@/features/reader/components/overlay/navigation/ReaderBookmarkButton.tsx';
|
import { ReaderBookmarkButton } from '@/features/reader/overlay/navigation/components/ReaderBookmarkButton.tsx';
|
||||||
import { CHAPTER_ACTION_TO_TRANSLATION, FALLBACK_CHAPTER } from '@/features/chapter/Chapter.constants.ts';
|
import { CHAPTER_ACTION_TO_TRANSLATION, FALLBACK_CHAPTER } from '@/features/chapter/Chapter.constants.ts';
|
||||||
import { IconBrowser } from '@/assets/icons/IconBrowser.tsx';
|
import { IconBrowser } from '@/assets/icons/IconBrowser.tsx';
|
||||||
import { IconWebView } from '@/assets/icons/IconWebView.tsx';
|
import { IconWebView } from '@/assets/icons/IconWebView.tsx';
|
||||||
@@ -17,12 +17,12 @@ import FormControl from '@mui/material/FormControl';
|
|||||||
import InputLabel from '@mui/material/InputLabel';
|
import InputLabel from '@mui/material/InputLabel';
|
||||||
import { Link } from 'react-router-dom';
|
import { Link } from 'react-router-dom';
|
||||||
import { Select } from '@/features/core/components/inputs/Select.tsx';
|
import { Select } from '@/features/core/components/inputs/Select.tsx';
|
||||||
import { ReaderChapterList } from '@/features/reader/components/overlay/navigation/ReaderChapterList.tsx';
|
import { ReaderChapterList } from '@/features/reader/overlay/navigation/components/ReaderChapterList.tsx';
|
||||||
import { ReaderNavBarDesktopNextPreviousButton } from '@/features/reader/components/overlay/navigation/desktop/ReaderNavBarDesktopNextPreviousButton.tsx';
|
import { ReaderNavBarDesktopNextPreviousButton } from '@/features/reader/overlay/navigation/desktop/components/ReaderNavBarDesktopNextPreviousButton.tsx';
|
||||||
import { getOptionForDirection } from '@/features/theme/services/ThemeCreator.ts';
|
import { getOptionForDirection } from '@/features/theme/services/ThemeCreator.ts';
|
||||||
import { ReaderService } from '@/features/reader/services/ReaderService.ts';
|
import { ReaderService } from '@/features/reader/services/ReaderService.ts';
|
||||||
import { ReaderControls } from '@/features/reader/services/ReaderControls.ts';
|
import { ReaderControls } from '@/features/reader/services/ReaderControls.ts';
|
||||||
import { ReaderStateChapters } from '@/features/reader/types/Reader.types.ts';
|
import { ReaderStateChapters } from '@/features/reader/Reader.types.ts';
|
||||||
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
||||||
|
|
||||||
const BaseReaderNavBarDesktopChapterNavigation = ({
|
const BaseReaderNavBarDesktopChapterNavigation = ({
|
||||||
@@ -13,14 +13,14 @@ import { memo, useMemo } from 'react';
|
|||||||
import FormControl from '@mui/material/FormControl';
|
import FormControl from '@mui/material/FormControl';
|
||||||
import InputLabel from '@mui/material/InputLabel';
|
import InputLabel from '@mui/material/InputLabel';
|
||||||
import { Select } from '@/features/core/components/inputs/Select.tsx';
|
import { Select } from '@/features/core/components/inputs/Select.tsx';
|
||||||
import { getNextIndexFromPage, getPage } from '@/features/reader/utils/ReaderProgressBar.utils.tsx';
|
import { getNextIndexFromPage, getPage } from '@/features/reader/overlay/progress-bar/ReaderProgressBar.utils.tsx';
|
||||||
import { ReaderStatePages } from '@/features/reader/types/ReaderProgressBar.types.ts';
|
import { ReaderStatePages } from '@/features/reader/overlay/progress-bar/ReaderProgressBar.types.ts';
|
||||||
import { ReaderControls } from '@/features/reader/services/ReaderControls.ts';
|
import { ReaderControls } from '@/features/reader/services/ReaderControls.ts';
|
||||||
import { useGetOptionForDirection } from '@/features/theme/services/ThemeCreator.ts';
|
import { useGetOptionForDirection } from '@/features/theme/services/ThemeCreator.ts';
|
||||||
import { ReaderService } from '@/features/reader/services/ReaderService.ts';
|
import { ReaderService } from '@/features/reader/services/ReaderService.ts';
|
||||||
import { ReaderNavBarDesktopNextPreviousButton } from '@/features/reader/components/overlay/navigation/desktop/ReaderNavBarDesktopNextPreviousButton.tsx';
|
import { ReaderNavBarDesktopNextPreviousButton } from '@/features/reader/overlay/navigation/desktop/components/ReaderNavBarDesktopNextPreviousButton.tsx';
|
||||||
import { READING_DIRECTION_TO_THEME_DIRECTION } from '@/features/reader/constants/ReaderSettings.constants.tsx';
|
import { READING_DIRECTION_TO_THEME_DIRECTION } from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
||||||
import { IReaderSettings } from '@/features/reader/types/Reader.types.ts';
|
import { IReaderSettings } from '@/features/reader/Reader.types.ts';
|
||||||
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
||||||
import { userReaderStatePagesContext } from '@/features/reader/contexts/state/ReaderStatePagesContext.tsx';
|
import { userReaderStatePagesContext } from '@/features/reader/contexts/state/ReaderStatePagesContext.tsx';
|
||||||
|
|
||||||
@@ -10,17 +10,17 @@ import Stack from '@mui/material/Stack';
|
|||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import Button from '@mui/material/Button';
|
import Button from '@mui/material/Button';
|
||||||
import SettingsIcon from '@mui/icons-material/Settings';
|
import SettingsIcon from '@mui/icons-material/Settings';
|
||||||
import { ReaderNavBarDesktopPageScale } from '@/features/reader/components/overlay/navigation/desktop/quick-settings/ReaderNavBarDesktopPageScale.tsx';
|
import { ReaderNavBarDesktopPageScale } from '@/features/reader/overlay/navigation/desktop/quick-settings/components/ReaderNavBarDesktopPageScale.tsx';
|
||||||
import { ReaderNavBarDesktopReadingMode } from '@/features/reader/components/overlay/navigation/desktop/quick-settings/ReaderNavBarDesktopReadingMode.tsx';
|
import { ReaderNavBarDesktopReadingMode } from '@/features/reader/overlay/navigation/desktop/quick-settings/components/ReaderNavBarDesktopReadingMode.tsx';
|
||||||
import { ReaderNavBarDesktopOffsetDoubleSpread } from '@/features/reader/components/overlay/navigation/desktop/quick-settings/ReaderNavBarDesktopOffsetDoubleSpread.tsx';
|
import { ReaderNavBarDesktopOffsetDoubleSpread } from '@/features/reader/overlay/navigation/desktop/quick-settings/components/ReaderNavBarDesktopOffsetDoubleSpread.tsx';
|
||||||
import { ReaderNavBarDesktopReadingDirection } from '@/features/reader/components/overlay/navigation/desktop/quick-settings/ReaderNavBarDesktopReadingDirection.tsx';
|
import { ReaderNavBarDesktopReadingDirection } from '@/features/reader/overlay/navigation/desktop/quick-settings/components/ReaderNavBarDesktopReadingDirection.tsx';
|
||||||
import { IReaderSettingsWithDefaultFlag, TReaderStateMangaContext } from '@/features/reader/types/Reader.types.ts';
|
import { IReaderSettingsWithDefaultFlag, TReaderStateMangaContext } from '@/features/reader/Reader.types.ts';
|
||||||
import { ReaderNavBarDesktopProps } from '@/features/reader/types/ReaderOverlay.types.ts';
|
import { ReaderNavBarDesktopProps } from '@/features/reader/overlay/ReaderOverlay.types.ts';
|
||||||
import { ReaderService } from '@/features/reader/services/ReaderService.ts';
|
import { ReaderService } from '@/features/reader/services/ReaderService.ts';
|
||||||
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
||||||
import { useReaderStateMangaContext } from '@/features/reader/contexts/state/ReaderStateMangaContext.tsx';
|
import { useReaderStateMangaContext } from '@/features/reader/contexts/state/ReaderStateMangaContext.tsx';
|
||||||
import { FALLBACK_MANGA } from '@/features/manga/Manga.constants.ts';
|
import { FALLBACK_MANGA } from '@/features/manga/Manga.constants.ts';
|
||||||
import { ReaderNavBarDesktopAutoScroll } from '@/features/reader/components/overlay/navigation/desktop/quick-settings/ReaderNavBarDesktopAutoScroll.tsx';
|
import { ReaderNavBarDesktopAutoScroll } from '@/features/reader/auto-scroll/settings/quick-setting/ReaderNavBarDesktopAutoScroll.tsx';
|
||||||
|
|
||||||
const BaseReaderNavBarDesktopQuickSettings = ({
|
const BaseReaderNavBarDesktopQuickSettings = ({
|
||||||
manga,
|
manga,
|
||||||
@@ -9,8 +9,8 @@
|
|||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import Button from '@mui/material/Button';
|
import Button from '@mui/material/Button';
|
||||||
import { OffsetDoubleSpreadIcon } from '@/assets/icons/svg/OffsetDoubleSpreadIcon.tsx';
|
import { OffsetDoubleSpreadIcon } from '@/assets/icons/svg/OffsetDoubleSpreadIcon.tsx';
|
||||||
import { IReaderSettings } from '@/features/reader/types/Reader.types.ts';
|
import { IReaderSettings } from '@/features/reader/Reader.types.ts';
|
||||||
import { isOffsetDoubleSpreadPagesEditable } from '@/features/reader/utils/ReaderSettings.utils.tsx';
|
import { isOffsetDoubleSpreadPagesEditable } from '@/features/reader/settings/ReaderSettings.utils.tsx';
|
||||||
|
|
||||||
export const ReaderNavBarDesktopOffsetDoubleSpread = ({
|
export const ReaderNavBarDesktopOffsetDoubleSpread = ({
|
||||||
readingMode,
|
readingMode,
|
||||||
@@ -15,12 +15,12 @@ import {
|
|||||||
IReaderSettings,
|
IReaderSettings,
|
||||||
IReaderSettingsWithDefaultFlag,
|
IReaderSettingsWithDefaultFlag,
|
||||||
ReaderPageScaleMode,
|
ReaderPageScaleMode,
|
||||||
} from '@/features/reader/types/Reader.types.ts';
|
} from '@/features/reader/Reader.types.ts';
|
||||||
import {
|
import {
|
||||||
PAGE_SCALE_VALUE_TO_DISPLAY_DATA,
|
PAGE_SCALE_VALUE_TO_DISPLAY_DATA,
|
||||||
READER_PAGE_SCALE_MODE_TO_SCALING_ALLOWED,
|
READER_PAGE_SCALE_MODE_TO_SCALING_ALLOWED,
|
||||||
READER_PAGE_SCALE_MODE_VALUES,
|
READER_PAGE_SCALE_MODE_VALUES,
|
||||||
} from '@/features/reader/constants/ReaderSettings.constants.tsx';
|
} from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
||||||
import { MultiValueButtonDefaultableProps } from '@/features/core/Core.types.ts';
|
import { MultiValueButtonDefaultableProps } from '@/features/core/Core.types.ts';
|
||||||
import { CustomButtonIcon } from '@/features/core/components/buttons/CustomButtonIcon.tsx';
|
import { CustomButtonIcon } from '@/features/core/components/buttons/CustomButtonIcon.tsx';
|
||||||
|
|
||||||
@@ -8,11 +8,11 @@
|
|||||||
|
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { ValueRotationButton } from '@/features/core/components/buttons/ValueRotationButton.tsx';
|
import { ValueRotationButton } from '@/features/core/components/buttons/ValueRotationButton.tsx';
|
||||||
import { IReaderSettingsWithDefaultFlag, ReadingDirection } from '@/features/reader/types/Reader.types.ts';
|
import { IReaderSettingsWithDefaultFlag, ReadingDirection } from '@/features/reader/Reader.types.ts';
|
||||||
import {
|
import {
|
||||||
READING_DIRECTION_VALUES,
|
READING_DIRECTION_VALUES,
|
||||||
READING_DIRECTION_VALUE_TO_DISPLAY_DATA,
|
READING_DIRECTION_VALUE_TO_DISPLAY_DATA,
|
||||||
} from '@/features/reader/constants/ReaderSettings.constants.tsx';
|
} from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
||||||
import { MultiValueButtonDefaultableProps } from '@/features/core/Core.types.ts';
|
import { MultiValueButtonDefaultableProps } from '@/features/core/Core.types.ts';
|
||||||
|
|
||||||
export const ReaderNavBarDesktopReadingDirection = ({
|
export const ReaderNavBarDesktopReadingDirection = ({
|
||||||
@@ -8,11 +8,11 @@
|
|||||||
|
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { ValueRotationButton } from '@/features/core/components/buttons/ValueRotationButton.tsx';
|
import { ValueRotationButton } from '@/features/core/components/buttons/ValueRotationButton.tsx';
|
||||||
import { IReaderSettingsWithDefaultFlag, ReadingMode } from '@/features/reader/types/Reader.types.ts';
|
import { IReaderSettingsWithDefaultFlag, ReadingMode } from '@/features/reader/Reader.types.ts';
|
||||||
import {
|
import {
|
||||||
READING_MODE_VALUE_TO_DISPLAY_DATA,
|
READING_MODE_VALUE_TO_DISPLAY_DATA,
|
||||||
READING_MODE_VALUES,
|
READING_MODE_VALUES,
|
||||||
} from '@/features/reader/constants/ReaderSettings.constants.tsx';
|
} from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
||||||
import { MultiValueButtonDefaultableProps } from '@/features/core/Core.types.ts';
|
import { MultiValueButtonDefaultableProps } from '@/features/core/Core.types.ts';
|
||||||
|
|
||||||
export const ReaderNavBarDesktopReadingMode = ({
|
export const ReaderNavBarDesktopReadingMode = ({
|
||||||
@@ -19,13 +19,13 @@ import { useTranslation } from 'react-i18next';
|
|||||||
import Slide from '@mui/material/Slide';
|
import Slide from '@mui/material/Slide';
|
||||||
import { memo, useCallback, useLayoutEffect, useRef, useState } from 'react';
|
import { memo, useCallback, useLayoutEffect, useRef, useState } from 'react';
|
||||||
import { CustomTooltip } from '@/features/core/components/CustomTooltip.tsx';
|
import { CustomTooltip } from '@/features/core/components/CustomTooltip.tsx';
|
||||||
import { ReaderBottomBarMobileProps } from '@/features/reader/types/ReaderOverlay.types.ts';
|
import { ReaderBottomBarMobileProps } from '@/features/reader/overlay/ReaderOverlay.types.ts';
|
||||||
import { MobileReaderProgressBar } from '@/features/reader/components/overlay/progress-bar/variants/MobileReaderProgressBar.tsx';
|
import { MobileReaderProgressBar } from '@/features/reader/overlay/progress-bar/mobile/MobileReaderProgressBar.tsx';
|
||||||
import { ReaderChapterList } from '@/features/reader/components/overlay/navigation/ReaderChapterList.tsx';
|
import { ReaderChapterList } from '@/features/reader/overlay/navigation/components/ReaderChapterList.tsx';
|
||||||
import { ReaderBottomBarMobileQuickSettings } from '@/features/reader/components/overlay/navigation/mobile/ReaderBottomBarMobileQuickSettings.tsx';
|
import { ReaderBottomBarMobileQuickSettings } from '@/features/reader/overlay/navigation/mobile/quick-settings/ReaderBottomBarMobileQuickSettings.tsx';
|
||||||
import { useReaderStateChaptersContext } from '@/features/reader/contexts/state/ReaderStateChaptersContext.tsx';
|
import { useReaderStateChaptersContext } from '@/features/reader/contexts/state/ReaderStateChaptersContext.tsx';
|
||||||
import { useReaderScrollbarContext } from '@/features/reader/contexts/ReaderScrollbarContext.tsx';
|
import { useReaderScrollbarContext } from '@/features/reader/contexts/ReaderScrollbarContext.tsx';
|
||||||
import { ReaderStateChapters, TReaderScrollbarContext } from '@/features/reader/types/Reader.types.ts';
|
import { ReaderStateChapters, TReaderScrollbarContext } from '@/features/reader/Reader.types.ts';
|
||||||
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
||||||
import { useResizeObserver } from '@/features/core/hooks/useResizeObserver.tsx';
|
import { useResizeObserver } from '@/features/core/hooks/useResizeObserver.tsx';
|
||||||
|
|
||||||
@@ -9,21 +9,21 @@
|
|||||||
import Stack from '@mui/material/Stack';
|
import Stack from '@mui/material/Stack';
|
||||||
import { memo } from 'react';
|
import { memo } from 'react';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { ReaderSettingReadingMode } from '@/features/reader/components/settings/layout/ReaderSettingReadingMode.tsx';
|
import { ReaderSettingReadingMode } from '@/features/reader/settings/layout/components/ReaderSettingReadingMode.tsx';
|
||||||
import { ReaderSettingReadingDirection } from '@/features/reader/components/settings/layout/ReaderSettingReadingDirection.tsx';
|
import { ReaderSettingReadingDirection } from '@/features/reader/settings/layout/components/ReaderSettingReadingDirection.tsx';
|
||||||
import { ReaderService } from '@/features/reader/services/ReaderService.ts';
|
import { ReaderService } from '@/features/reader/services/ReaderService.ts';
|
||||||
import { useReaderStateMangaContext } from '@/features/reader/contexts/state/ReaderStateMangaContext.tsx';
|
import { useReaderStateMangaContext } from '@/features/reader/contexts/state/ReaderStateMangaContext.tsx';
|
||||||
import { DefaultSettingFootnote } from '@/features/reader/components/settings/DefaultSettingFootnote.tsx';
|
import { DefaultSettingFootnote } from '@/features/reader/settings/components/DefaultSettingFootnote.tsx';
|
||||||
import {
|
import {
|
||||||
IReaderSettingsWithDefaultFlag,
|
IReaderSettingsWithDefaultFlag,
|
||||||
TReaderAutoScrollContext,
|
TReaderAutoScrollContext,
|
||||||
TReaderStateMangaContext,
|
TReaderStateMangaContext,
|
||||||
} from '@/features/reader/types/Reader.types.ts';
|
} from '@/features/reader/Reader.types.ts';
|
||||||
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
||||||
import { FALLBACK_MANGA } from '@/features/manga/Manga.constants.ts';
|
import { FALLBACK_MANGA } from '@/features/manga/Manga.constants.ts';
|
||||||
import { ReaderSettingAutoScroll } from '@/features/reader/components/settings/behaviour/ReaderSettingAutoScroll.tsx';
|
import { ReaderSettingAutoScroll } from '@/features/reader/auto-scroll/settings/ReaderSettingAutoScroll.tsx';
|
||||||
import { CheckboxInput } from '@/features/core/components/inputs/CheckboxInput.tsx';
|
import { CheckboxInput } from '@/features/core/components/inputs/CheckboxInput.tsx';
|
||||||
import { useReaderAutoScrollContext } from '@/features/reader/contexts/ReaderAutoScrollContext.tsx';
|
import { useReaderAutoScrollContext } from '@/features/reader/auto-scroll/contexts/ReaderAutoScrollContext.tsx';
|
||||||
|
|
||||||
const BaseReaderBottomBarMobileQuickSettings = ({
|
const BaseReaderBottomBarMobileQuickSettings = ({
|
||||||
manga,
|
manga,
|
||||||
@@ -11,29 +11,32 @@ import { ComponentProps, memo, ReactNode, useCallback, useMemo, useRef, useState
|
|||||||
import ClickAwayListener from '@mui/material/ClickAwayListener';
|
import ClickAwayListener from '@mui/material/ClickAwayListener';
|
||||||
import { TypographyProps } from '@mui/material/Typography';
|
import { TypographyProps } from '@mui/material/Typography';
|
||||||
import { StackProps } from '@mui/material/Stack';
|
import { StackProps } from '@mui/material/Stack';
|
||||||
import { ReaderProgressBarProps, TReaderProgressBarContext } from '@/features/reader/types/ReaderProgressBar.types.ts';
|
import {
|
||||||
import { ReaderProgressBarPageNumber } from '@/features/reader/components/overlay/progress-bar/ReaderProgressBarPageNumber.tsx';
|
ReaderProgressBarProps,
|
||||||
import { ReaderProgressBarContainer } from '@/features/reader/components/overlay/progress-bar/ReaderProgressBarContainer.tsx';
|
TReaderProgressBarContext,
|
||||||
import { ReaderProgressBarRoot } from '@/features/reader/components/overlay/progress-bar/ReaderProgressBarRoot.tsx';
|
} from '@/features/reader/overlay/progress-bar/ReaderProgressBar.types.ts';
|
||||||
import { ReaderProgressBarSlotsContainer } from '@/features/reader/components/overlay/progress-bar/ReaderProgressBarSlotsContainer.tsx';
|
import { ReaderProgressBarPageNumber } from '@/features/reader/overlay/progress-bar/components/ReaderProgressBarPageNumber.tsx';
|
||||||
import { ProgressBarHighlightReadPages } from '@/features/reader/components/overlay/progress-bar/ProgressBarHighlightReadPages.tsx';
|
import { ReaderProgressBarContainer } from '@/features/reader/overlay/progress-bar/components/ReaderProgressBarContainer.tsx';
|
||||||
import { ReaderProgressBarCurrentPageSlot } from '@/features/reader/components/overlay/progress-bar/ReaderProgressBarCurrentPageSlot.tsx';
|
import { ReaderProgressBarRoot } from '@/features/reader/overlay/progress-bar/components/ReaderProgressBarRoot.tsx';
|
||||||
|
import { ReaderProgressBarSlotsContainer } from '@/features/reader/overlay/progress-bar/components/ReaderProgressBarSlotsContainer.tsx';
|
||||||
|
import { ProgressBarHighlightReadPages } from '@/features/reader/overlay/progress-bar/components/ProgressBarHighlightReadPages.tsx';
|
||||||
|
import { ReaderProgressBarCurrentPageSlot } from '@/features/reader/overlay/progress-bar/components/ReaderProgressBarCurrentPageSlot.tsx';
|
||||||
import {
|
import {
|
||||||
getNextIndexFromPage,
|
getNextIndexFromPage,
|
||||||
getPage,
|
getPage,
|
||||||
getPageForMousePos,
|
getPageForMousePos,
|
||||||
getProgressBarPositionInfo,
|
getProgressBarPositionInfo,
|
||||||
} from '@/features/reader/utils/ReaderProgressBar.utils.tsx';
|
} from '@/features/reader/overlay/progress-bar/ReaderProgressBar.utils.tsx';
|
||||||
import { getOptionForDirection as getOptionForDirectionImpl } from '@/features/theme/services/ThemeCreator.ts';
|
import { getOptionForDirection as getOptionForDirectionImpl } from '@/features/theme/services/ThemeCreator.ts';
|
||||||
import { ReaderProgressBarSlotsActionArea } from '@/features/reader/components/overlay/progress-bar/ReaderProgressBarSlotsActionArea.tsx';
|
import { ReaderProgressBarSlotsActionArea } from '@/features/reader/overlay/progress-bar/components/ReaderProgressBarSlotsActionArea.tsx';
|
||||||
import { ReaderService } from '@/features/reader/services/ReaderService.ts';
|
import { ReaderService } from '@/features/reader/services/ReaderService.ts';
|
||||||
import { ReaderControls } from '@/features/reader/services/ReaderControls.ts';
|
import { ReaderControls } from '@/features/reader/services/ReaderControls.ts';
|
||||||
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
||||||
import { useReaderProgressBarContext } from '@/features/reader/contexts/ReaderProgressBarContext.tsx';
|
import { useReaderProgressBarContext } from '@/features/reader/overlay/progress-bar/contexts/ReaderProgressBarContext.tsx';
|
||||||
import { ReaderProgressBarSlotWrapper } from '@/features/reader/components/overlay/progress-bar/ReaderProgressBarSlotWrapper.tsx';
|
import { ReaderProgressBarSlotWrapper } from '@/features/reader/overlay/progress-bar/components/ReaderProgressBarSlotWrapper.tsx';
|
||||||
import { userReaderStatePagesContext } from '@/features/reader/contexts/state/ReaderStatePagesContext.tsx';
|
import { userReaderStatePagesContext } from '@/features/reader/contexts/state/ReaderStatePagesContext.tsx';
|
||||||
import { useResizeObserver } from '@/features/core/hooks/useResizeObserver.tsx';
|
import { useResizeObserver } from '@/features/core/hooks/useResizeObserver.tsx';
|
||||||
import { IReaderSettings, ReadingMode } from '@/features/reader/types/Reader.types.ts';
|
import { IReaderSettings, ReadingMode } from '@/features/reader/Reader.types.ts';
|
||||||
|
|
||||||
const BaseReaderProgressBar = ({
|
const BaseReaderProgressBar = ({
|
||||||
totalPages,
|
totalPages,
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
|
|
||||||
import { BoxProps } from '@mui/material/Box';
|
import { BoxProps } from '@mui/material/Box';
|
||||||
import { TooltipProps } from '@mui/material/Tooltip';
|
import { TooltipProps } from '@mui/material/Tooltip';
|
||||||
import { IReaderSettings, ReaderTransitionPageMode } from '@/features/reader/types/Reader.types.ts';
|
import { IReaderSettings, ReaderTransitionPageMode } from '@/features/reader/Reader.types.ts';
|
||||||
|
|
||||||
interface SinglePageData {
|
interface SinglePageData {
|
||||||
index: number;
|
index: number;
|
||||||
@@ -6,9 +6,12 @@
|
|||||||
* 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 { ReaderProgressBarProps, TReaderProgressCurrentPage } from '@/features/reader/types/ReaderProgressBar.types.ts';
|
import {
|
||||||
|
ReaderProgressBarProps,
|
||||||
|
TReaderProgressCurrentPage,
|
||||||
|
} from '@/features/reader/overlay/progress-bar/ReaderProgressBar.types.ts';
|
||||||
import { getOptionForDirection as getOptionForDirectionImpl } from '@/features/theme/services/ThemeCreator.ts';
|
import { getOptionForDirection as getOptionForDirectionImpl } from '@/features/theme/services/ThemeCreator.ts';
|
||||||
import { ProgressBarPosition } from '@/features/reader/types/Reader.types.ts';
|
import { ProgressBarPosition } from '@/features/reader/Reader.types.ts';
|
||||||
import { coerceIn } from '@/lib/HelperFunctions.ts';
|
import { coerceIn } from '@/lib/HelperFunctions.ts';
|
||||||
|
|
||||||
export const getPage = (pageIndex: number, pages: ReaderProgressBarProps['pages']): TReaderProgressCurrentPage => {
|
export const getPage = (pageIndex: number, pages: ReaderProgressBarProps['pages']): TReaderProgressCurrentPage => {
|
||||||
@@ -9,9 +9,9 @@
|
|||||||
import Box from '@mui/material/Box';
|
import Box from '@mui/material/Box';
|
||||||
import { styled } from '@mui/material/styles';
|
import { styled } from '@mui/material/styles';
|
||||||
import { shouldForwardProp } from '@/features/core/utils/ShouldForwardProp.ts';
|
import { shouldForwardProp } from '@/features/core/utils/ShouldForwardProp.ts';
|
||||||
import { IReaderSettings } from '@/features/reader/types/Reader.types.ts';
|
import { IReaderSettings } from '@/features/reader/Reader.types.ts';
|
||||||
import { applyStyles } from '@/features/core/utils/ApplyStyles.ts';
|
import { applyStyles } from '@/features/core/utils/ApplyStyles.ts';
|
||||||
import { getProgressBarPositionInfo } from '@/features/reader/utils/ReaderProgressBar.utils.tsx';
|
import { getProgressBarPositionInfo } from '@/features/reader/overlay/progress-bar/ReaderProgressBar.utils.tsx';
|
||||||
|
|
||||||
type ProgressBarHighlightReadPagesProps = Pick<IReaderSettings, 'progressBarPosition'> & {
|
type ProgressBarHighlightReadPagesProps = Pick<IReaderSettings, 'progressBarPosition'> & {
|
||||||
currentPagesIndex: number;
|
currentPagesIndex: number;
|
||||||
@@ -8,10 +8,10 @@
|
|||||||
|
|
||||||
import Stack from '@mui/material/Stack';
|
import Stack from '@mui/material/Stack';
|
||||||
import { styled } from '@mui/material/styles';
|
import { styled } from '@mui/material/styles';
|
||||||
import { IReaderSettings } from '@/features/reader/types/Reader.types.ts';
|
import { IReaderSettings } from '@/features/reader/Reader.types.ts';
|
||||||
import { shouldForwardProp } from '@/features/core/utils/ShouldForwardProp.ts';
|
import { shouldForwardProp } from '@/features/core/utils/ShouldForwardProp.ts';
|
||||||
import { applyStyles } from '@/features/core/utils/ApplyStyles.ts';
|
import { applyStyles } from '@/features/core/utils/ApplyStyles.ts';
|
||||||
import { getProgressBarPositionInfo } from '@/features/reader/utils/ReaderProgressBar.utils.tsx';
|
import { getProgressBarPositionInfo } from '@/features/reader/overlay/progress-bar/ReaderProgressBar.utils.tsx';
|
||||||
|
|
||||||
type ReaderProgressBarContainerProps = Pick<IReaderSettings, 'progressBarPosition'>;
|
type ReaderProgressBarContainerProps = Pick<IReaderSettings, 'progressBarPosition'>;
|
||||||
export const ReaderProgressBarContainer = styled(Stack, {
|
export const ReaderProgressBarContainer = styled(Stack, {
|
||||||
@@ -9,10 +9,10 @@
|
|||||||
import Box from '@mui/material/Box';
|
import Box from '@mui/material/Box';
|
||||||
import { ReactNode } from 'react';
|
import { ReactNode } from 'react';
|
||||||
import { CustomTooltip } from '@/features/core/components/CustomTooltip.tsx';
|
import { CustomTooltip } from '@/features/core/components/CustomTooltip.tsx';
|
||||||
import { CurrentPageSlotProps } from '@/features/reader/types/ReaderProgressBar.types.ts';
|
import { CurrentPageSlotProps } from '@/features/reader/overlay/progress-bar/ReaderProgressBar.types.ts';
|
||||||
import { applyStyles } from '@/features/core/utils/ApplyStyles.ts';
|
import { applyStyles } from '@/features/core/utils/ApplyStyles.ts';
|
||||||
import { getProgressBarPositionInfo } from '@/features/reader/utils/ReaderProgressBar.utils.tsx';
|
import { getProgressBarPositionInfo } from '@/features/reader/overlay/progress-bar/ReaderProgressBar.utils.tsx';
|
||||||
import { READER_PROGRESS_BAR_POSITION_TO_PLACEMENT } from '@/features/reader/constants/ReaderSettings.constants.tsx';
|
import { READER_PROGRESS_BAR_POSITION_TO_PLACEMENT } from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
||||||
|
|
||||||
export const ReaderProgressBarCurrentPageSlot = ({
|
export const ReaderProgressBarCurrentPageSlot = ({
|
||||||
pageName,
|
pageName,
|
||||||
@@ -9,9 +9,9 @@
|
|||||||
import Box from '@mui/material/Box';
|
import Box from '@mui/material/Box';
|
||||||
import { memo, ReactNode } from 'react';
|
import { memo, ReactNode } from 'react';
|
||||||
import { CustomTooltip } from '@/features/core/components/CustomTooltip.tsx';
|
import { CustomTooltip } from '@/features/core/components/CustomTooltip.tsx';
|
||||||
import { ReaderProgressBarSlotProps } from '@/features/reader/types/ReaderProgressBar.types.ts';
|
import { ReaderProgressBarSlotProps } from '@/features/reader/overlay/progress-bar/ReaderProgressBar.types.ts';
|
||||||
|
|
||||||
import { READER_PROGRESS_BAR_POSITION_TO_PLACEMENT } from '@/features/reader/constants/ReaderSettings.constants.tsx';
|
import { READER_PROGRESS_BAR_POSITION_TO_PLACEMENT } from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
||||||
|
|
||||||
export const ReaderProgressBarSlot = memo(
|
export const ReaderProgressBarSlot = memo(
|
||||||
({ pageName, progressBarPosition, slotProps, children }: ReaderProgressBarSlotProps & { children?: ReactNode }) => (
|
({ pageName, progressBarPosition, slotProps, children }: ReaderProgressBarSlotProps & { children?: ReactNode }) => (
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
import Box, { BoxProps } from '@mui/material/Box';
|
import Box, { BoxProps } from '@mui/material/Box';
|
||||||
import { memo, ReactNode, useMemo } from 'react';
|
import { memo, ReactNode, useMemo } from 'react';
|
||||||
import { styled } from '@mui/material/styles';
|
import { styled } from '@mui/material/styles';
|
||||||
import { ReaderProgressBarProps } from '@/features/reader/types/ReaderProgressBar.types.ts';
|
import { ReaderProgressBarProps } from '@/features/reader/overlay/progress-bar/ReaderProgressBar.types.ts';
|
||||||
import { shouldForwardProp } from '@/features/core/utils/ShouldForwardProp.ts';
|
import { shouldForwardProp } from '@/features/core/utils/ShouldForwardProp.ts';
|
||||||
|
|
||||||
type StyledWrapperProps = {
|
type StyledWrapperProps = {
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { createContext, useContext } from 'react';
|
import { createContext, useContext } from 'react';
|
||||||
import { TReaderProgressBarContext } from '@/features/reader/types/ReaderProgressBar.types.ts';
|
import { TReaderProgressBarContext } from '@/features/reader/overlay/progress-bar/ReaderProgressBar.types.ts';
|
||||||
|
|
||||||
export const ReaderProgressBarContext = createContext<TReaderProgressBarContext>({
|
export const ReaderProgressBarContext = createContext<TReaderProgressBarContext>({
|
||||||
isMaximized: false,
|
isMaximized: false,
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { ReactNode, useMemo, useState } from 'react';
|
import { ReactNode, useMemo, useState } from 'react';
|
||||||
import { ReaderProgressBarContext } from '@/features/reader/contexts/ReaderProgressBarContext.tsx';
|
import { ReaderProgressBarContext } from '@/features/reader/overlay/progress-bar/contexts/ReaderProgressBarContext.tsx';
|
||||||
|
|
||||||
export const ReaderProgressBarContextProvider = ({ children }: { children: ReactNode }) => {
|
export const ReaderProgressBarContextProvider = ({ children }: { children: ReactNode }) => {
|
||||||
const [isMaximized, setIsMaximized] = useState(false);
|
const [isMaximized, setIsMaximized] = useState(false);
|
||||||
@@ -8,22 +8,25 @@
|
|||||||
|
|
||||||
import { useTheme } from '@mui/material/styles';
|
import { useTheme } from '@mui/material/styles';
|
||||||
import { memo, useCallback, useState } from 'react';
|
import { memo, useCallback, useState } from 'react';
|
||||||
import { ReaderProgressBar } from '@/features/reader/components/overlay/progress-bar/ReaderProgressBar.tsx';
|
import { ReaderProgressBar } from '@/features/reader/overlay/progress-bar/ReaderProgressBar.tsx';
|
||||||
import { userReaderStatePagesContext } from '@/features/reader/contexts/state/ReaderStatePagesContext.tsx';
|
import { userReaderStatePagesContext } from '@/features/reader/contexts/state/ReaderStatePagesContext.tsx';
|
||||||
import { ReaderService } from '@/features/reader/services/ReaderService.ts';
|
import { ReaderService } from '@/features/reader/services/ReaderService.ts';
|
||||||
import { IReaderSettings, ProgressBarType, TReaderScrollbarContext } from '@/features/reader/types/Reader.types.ts';
|
import { IReaderSettings, ProgressBarType, TReaderScrollbarContext } from '@/features/reader/Reader.types.ts';
|
||||||
import { applyStyles } from '@/features/core/utils/ApplyStyles.ts';
|
import { applyStyles } from '@/features/core/utils/ApplyStyles.ts';
|
||||||
import { getProgressBarPositionInfo } from '@/features/reader/utils/ReaderProgressBar.utils.tsx';
|
import { getProgressBarPositionInfo } from '@/features/reader/overlay/progress-bar/ReaderProgressBar.utils.tsx';
|
||||||
import { ReaderProgressBarDirectionWrapper } from '@/features/reader/components/overlay/progress-bar/ReaderProgressBarDirectionWrapper.tsx';
|
import { ReaderProgressBarDirectionWrapper } from '@/features/reader/overlay/progress-bar/components/ReaderProgressBarDirectionWrapper.tsx';
|
||||||
import { ReaderProgressBarProps, TReaderProgressBarContext } from '@/features/reader/types/ReaderProgressBar.types.ts';
|
import {
|
||||||
|
ReaderProgressBarProps,
|
||||||
|
TReaderProgressBarContext,
|
||||||
|
} from '@/features/reader/overlay/progress-bar/ReaderProgressBar.types.ts';
|
||||||
import { NavbarContextType } from '@/features/navigation-bar/NavigationBar.types.ts';
|
import { NavbarContextType } from '@/features/navigation-bar/NavigationBar.types.ts';
|
||||||
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
||||||
import { useNavBarContext } from '@/features/navigation-bar/contexts/NavbarContext.tsx';
|
import { useNavBarContext } from '@/features/navigation-bar/contexts/NavbarContext.tsx';
|
||||||
import { useReaderProgressBarContext } from '@/features/reader/contexts/ReaderProgressBarContext.tsx';
|
import { useReaderProgressBarContext } from '@/features/reader/overlay/progress-bar/contexts/ReaderProgressBarContext.tsx';
|
||||||
import { useReaderScrollbarContext } from '@/features/reader/contexts/ReaderScrollbarContext.tsx';
|
import { useReaderScrollbarContext } from '@/features/reader/contexts/ReaderScrollbarContext.tsx';
|
||||||
import { ReaderProgressBarSlotDesktop } from '@/features/reader/components/overlay/progress-bar/desktop/ReaderProgressBarSlotDesktop.tsx';
|
import { ReaderProgressBarSlotDesktop } from '@/features/reader/overlay/progress-bar/desktop/components/ReaderProgressBarSlotDesktop.tsx';
|
||||||
import { useResizeObserver } from '@/features/core/hooks/useResizeObserver.tsx';
|
import { useResizeObserver } from '@/features/core/hooks/useResizeObserver.tsx';
|
||||||
import { getProgressBarPosition } from '@/features/reader/utils/ReaderSettings.utils.tsx';
|
import { getProgressBarPosition } from '@/features/reader/settings/ReaderSettings.utils.tsx';
|
||||||
|
|
||||||
const BaseStandardReaderProgressBar = ({
|
const BaseStandardReaderProgressBar = ({
|
||||||
readerNavBarWidth,
|
readerNavBarWidth,
|
||||||
@@ -10,8 +10,8 @@ import { alpha, darken, lighten, useTheme } from '@mui/material/styles';
|
|||||||
import Box from '@mui/material/Box';
|
import Box from '@mui/material/Box';
|
||||||
import { memo } from 'react';
|
import { memo } from 'react';
|
||||||
import { applyStyles } from '@/features/core/utils/ApplyStyles.ts';
|
import { applyStyles } from '@/features/core/utils/ApplyStyles.ts';
|
||||||
import { ReaderProgressBarSlot } from '@/features/reader/components/overlay/progress-bar/ReaderProgressBarSlot.tsx';
|
import { ReaderProgressBarSlot } from '@/features/reader/overlay/progress-bar/components/ReaderProgressBarSlot.tsx';
|
||||||
import { IReaderSettings } from '@/features/reader/types/Reader.types.ts';
|
import { IReaderSettings } from '@/features/reader/Reader.types.ts';
|
||||||
|
|
||||||
export const ReaderProgressBarSlotDesktop = memo(
|
export const ReaderProgressBarSlotDesktop = memo(
|
||||||
({
|
({
|
||||||
@@ -14,28 +14,34 @@ import { alpha } from '@mui/material/styles';
|
|||||||
import Box from '@mui/material/Box';
|
import Box from '@mui/material/Box';
|
||||||
import { ComponentProps, memo, useCallback, useLayoutEffect, useMemo, useState } from 'react';
|
import { ComponentProps, memo, useCallback, useLayoutEffect, useMemo, useState } from 'react';
|
||||||
import Slide, { SlideProps } from '@mui/material/Slide';
|
import Slide, { SlideProps } from '@mui/material/Slide';
|
||||||
import { ReaderProgressBar } from '@/features/reader/components/overlay/progress-bar/ReaderProgressBar.tsx';
|
import { ReaderProgressBar } from '@/features/reader/overlay/progress-bar/ReaderProgressBar.tsx';
|
||||||
import { useReaderStateChaptersContext } from '@/features/reader/contexts/state/ReaderStateChaptersContext.tsx';
|
import { useReaderStateChaptersContext } from '@/features/reader/contexts/state/ReaderStateChaptersContext.tsx';
|
||||||
import { ReaderService } from '@/features/reader/services/ReaderService.ts';
|
import { ReaderService } from '@/features/reader/services/ReaderService.ts';
|
||||||
import { getPage, getProgressBarPositionInfo } from '@/features/reader/utils/ReaderProgressBar.utils.tsx';
|
import {
|
||||||
|
getPage,
|
||||||
|
getProgressBarPositionInfo,
|
||||||
|
} from '@/features/reader/overlay/progress-bar/ReaderProgressBar.utils.tsx';
|
||||||
import { getOptionForDirection } from '@/features/theme/services/ThemeCreator.ts';
|
import { getOptionForDirection } from '@/features/theme/services/ThemeCreator.ts';
|
||||||
import {
|
import {
|
||||||
IReaderSettings,
|
IReaderSettings,
|
||||||
ProgressBarPosition,
|
ProgressBarPosition,
|
||||||
ReaderStateChapters,
|
ReaderStateChapters,
|
||||||
TReaderScrollbarContext,
|
TReaderScrollbarContext,
|
||||||
} from '@/features/reader/types/Reader.types.ts';
|
} from '@/features/reader/Reader.types.ts';
|
||||||
import { ReaderProgressBarDirectionWrapper } from '@/features/reader/components/overlay/progress-bar/ReaderProgressBarDirectionWrapper.tsx';
|
import { ReaderProgressBarDirectionWrapper } from '@/features/reader/overlay/progress-bar/components/ReaderProgressBarDirectionWrapper.tsx';
|
||||||
import { useReaderProgressBarContext } from '@/features/reader/contexts/ReaderProgressBarContext.tsx';
|
import { useReaderProgressBarContext } from '@/features/reader/overlay/progress-bar/contexts/ReaderProgressBarContext.tsx';
|
||||||
import { useReaderOverlayContext } from '@/features/reader/contexts/ReaderOverlayContext.tsx';
|
import { useReaderOverlayContext } from '@/features/reader/overlay/contexts/ReaderOverlayContext.tsx';
|
||||||
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
||||||
import { TReaderOverlayContext } from '@/features/reader/types/ReaderOverlay.types.ts';
|
import { TReaderOverlayContext } from '@/features/reader/overlay/ReaderOverlay.types.ts';
|
||||||
import { ReaderProgressBarProps, TReaderProgressBarContext } from '@/features/reader/types/ReaderProgressBar.types.ts';
|
import {
|
||||||
import { ReaderProgressBarSlotMobile } from '@/features/reader/components/overlay/progress-bar/mobile/ReaderProgressBarSlotMobile.tsx';
|
ReaderProgressBarProps,
|
||||||
|
TReaderProgressBarContext,
|
||||||
|
} from '@/features/reader/overlay/progress-bar/ReaderProgressBar.types.ts';
|
||||||
|
import { ReaderProgressBarSlotMobile } from '@/features/reader/overlay/progress-bar/mobile/components/ReaderProgressBarSlotMobile.tsx';
|
||||||
import { userReaderStatePagesContext } from '@/features/reader/contexts/state/ReaderStatePagesContext.tsx';
|
import { userReaderStatePagesContext } from '@/features/reader/contexts/state/ReaderStatePagesContext.tsx';
|
||||||
import { applyStyles } from '@/features/core/utils/ApplyStyles.ts';
|
import { applyStyles } from '@/features/core/utils/ApplyStyles.ts';
|
||||||
import { useResizeObserver } from '@/features/core/hooks/useResizeObserver.tsx';
|
import { useResizeObserver } from '@/features/core/hooks/useResizeObserver.tsx';
|
||||||
import { getProgressBarPosition } from '@/features/reader/utils/ReaderSettings.utils.tsx';
|
import { getProgressBarPosition } from '@/features/reader/settings/ReaderSettings.utils.tsx';
|
||||||
import { useReaderScrollbarContext } from '@/features/reader/contexts/ReaderScrollbarContext.tsx';
|
import { useReaderScrollbarContext } from '@/features/reader/contexts/ReaderScrollbarContext.tsx';
|
||||||
import { ReaderControls } from '@/features/reader/services/ReaderControls.ts';
|
import { ReaderControls } from '@/features/reader/services/ReaderControls.ts';
|
||||||
|
|
||||||
@@ -8,9 +8,9 @@
|
|||||||
|
|
||||||
import Box from '@mui/material/Box';
|
import Box from '@mui/material/Box';
|
||||||
import { ComponentProps, memo } from 'react';
|
import { ComponentProps, memo } from 'react';
|
||||||
import { ProgressBarPosition } from '@/features/reader/types/Reader.types.ts';
|
import { ProgressBarPosition } from '@/features/reader/Reader.types.ts';
|
||||||
import { applyStyles } from '@/features/core/utils/ApplyStyles.ts';
|
import { applyStyles } from '@/features/core/utils/ApplyStyles.ts';
|
||||||
import { ReaderProgressBarSlot } from '@/features/reader/components/overlay/progress-bar/ReaderProgressBarSlot';
|
import { ReaderProgressBarSlot } from '@/features/reader/overlay/progress-bar/components/ReaderProgressBarSlot.tsx';
|
||||||
|
|
||||||
const SLOT_SX_PROP: NonNullable<NonNullable<ComponentProps<typeof ReaderProgressBarSlot>['slotProps']>['box']>['sx'] = {
|
const SLOT_SX_PROP: NonNullable<NonNullable<ComponentProps<typeof ReaderProgressBarSlot>['slotProps']>['box']>['sx'] = {
|
||||||
display: 'flex',
|
display: 'flex',
|
||||||
@@ -14,7 +14,7 @@ import {
|
|||||||
IReaderSettings,
|
IReaderSettings,
|
||||||
ProgressBarPosition,
|
ProgressBarPosition,
|
||||||
ProgressBarPositionAutoVertical,
|
ProgressBarPositionAutoVertical,
|
||||||
} from '@/features/reader/types/Reader.types.ts';
|
} from '@/features/reader/Reader.types.ts';
|
||||||
import { ValueToDisplayData } from '@/features/core/Core.types.ts';
|
import { ValueToDisplayData } from '@/features/core/Core.types.ts';
|
||||||
import { ButtonSelectInput } from '@/features/core/components/inputs/ButtonSelectInput.tsx';
|
import { ButtonSelectInput } from '@/features/core/components/inputs/ButtonSelectInput.tsx';
|
||||||
|
|
||||||
@@ -7,9 +7,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { IReaderSettings, ProgressBarType, ReaderOverlayMode } from '@/features/reader/types/Reader.types.ts';
|
import { IReaderSettings, ProgressBarType, ReaderOverlayMode } from '@/features/reader/Reader.types.ts';
|
||||||
import { SliderInput } from '@/features/core/components/inputs/SliderInput.tsx';
|
import { SliderInput } from '@/features/core/components/inputs/SliderInput.tsx';
|
||||||
import { AUTO_SCROLL_SPEED, DEFAULT_READER_SETTINGS } from '@/features/reader/constants/ReaderSettings.constants.tsx';
|
import { AUTO_SCROLL_SPEED, DEFAULT_READER_SETTINGS } from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
||||||
|
|
||||||
export const ReaderSettingProgressBarSize = ({
|
export const ReaderSettingProgressBarSize = ({
|
||||||
overlayMode,
|
overlayMode,
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { IReaderSettings, ProgressBarType, ReaderOverlayMode } from '@/features/reader/types/Reader.types.ts';
|
import { IReaderSettings, ProgressBarType, ReaderOverlayMode } from '@/features/reader/Reader.types.ts';
|
||||||
import { ValueToDisplayData } from '@/features/core/Core.types.ts';
|
import { ValueToDisplayData } from '@/features/core/Core.types.ts';
|
||||||
import { HiddenProgressBarIcon } from '@/assets/icons/svg/HiddenProgressBarIcon.tsx';
|
import { HiddenProgressBarIcon } from '@/assets/icons/svg/HiddenProgressBarIcon.tsx';
|
||||||
import { StandardProgressBarIcon } from '@/assets/icons/svg/StandardProgressBarIcon.tsx';
|
import { StandardProgressBarIcon } from '@/assets/icons/svg/StandardProgressBarIcon.tsx';
|
||||||
@@ -10,7 +10,7 @@ import { useTranslation } from 'react-i18next';
|
|||||||
import PhoneIphoneIcon from '@mui/icons-material/PhoneIphone';
|
import PhoneIphoneIcon from '@mui/icons-material/PhoneIphone';
|
||||||
import ComputerIcon from '@mui/icons-material/Computer';
|
import ComputerIcon from '@mui/icons-material/Computer';
|
||||||
import AutoModeIcon from '@mui/icons-material/AutoMode';
|
import AutoModeIcon from '@mui/icons-material/AutoMode';
|
||||||
import { IReaderSettings, ReaderOverlayMode } from '@/features/reader/types/Reader.types.ts';
|
import { IReaderSettings, ReaderOverlayMode } from '@/features/reader/Reader.types.ts';
|
||||||
import { ValueToDisplayData } from '@/features/core/Core.types.ts';
|
import { ValueToDisplayData } from '@/features/core/Core.types.ts';
|
||||||
import { ButtonSelectInput } from '@/features/core/components/inputs/ButtonSelectInput.tsx';
|
import { ButtonSelectInput } from '@/features/core/components/inputs/ButtonSelectInput.tsx';
|
||||||
|
|
||||||
@@ -10,9 +10,9 @@ import Box from '@mui/material/Box';
|
|||||||
import { memo, useEffect, useLayoutEffect, useRef, useState } from 'react';
|
import { memo, useEffect, useLayoutEffect, useRef, useState } from 'react';
|
||||||
import { useParams } from 'react-router-dom';
|
import { useParams } from 'react-router-dom';
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { useDefaultReaderSettings } from '@/features/reader/services/ReaderSettingsMetadata.ts';
|
import { useDefaultReaderSettings } from '@/features/reader/settings/ReaderSettingsMetadata.ts';
|
||||||
import { useNavBarContext } from '@/features/navigation-bar/contexts/NavbarContext.tsx';
|
import { useNavBarContext } from '@/features/navigation-bar/contexts/NavbarContext.tsx';
|
||||||
import { ReaderOverlay } from '@/features/reader/components/overlay/ReaderOverlay.tsx';
|
import { ReaderOverlay } from '@/features/reader/overlay/ReaderOverlay.tsx';
|
||||||
import { requestManager } from '@/lib/requests/RequestManager.ts';
|
import { requestManager } from '@/lib/requests/RequestManager.ts';
|
||||||
import { GetChaptersReaderQuery, GetMangaReaderQuery } from '@/lib/graphql/generated/graphql.ts';
|
import { GetChaptersReaderQuery, GetMangaReaderQuery } from '@/lib/graphql/generated/graphql.ts';
|
||||||
import { GET_MANGA_READER } from '@/lib/graphql/queries/MangaQuery.ts';
|
import { GET_MANGA_READER } from '@/lib/graphql/queries/MangaQuery.ts';
|
||||||
@@ -21,15 +21,15 @@ import { EmptyViewAbsoluteCentered } from '@/features/core/components/feedback/E
|
|||||||
import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts';
|
import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts';
|
||||||
import { userReaderStatePagesContext } from '@/features/reader/contexts/state/ReaderStatePagesContext.tsx';
|
import { userReaderStatePagesContext } from '@/features/reader/contexts/state/ReaderStatePagesContext.tsx';
|
||||||
import { GET_CHAPTERS_READER } from '@/lib/graphql/queries/ChapterQuery.ts';
|
import { GET_CHAPTERS_READER } from '@/lib/graphql/queries/ChapterQuery.ts';
|
||||||
import { TapZoneLayout } from '@/features/reader/components/TapZoneLayout.tsx';
|
import { TapZoneLayout } from '@/features/reader/tap-zones/TapZoneLayout.tsx';
|
||||||
import { useReaderOverlayContext } from '@/features/reader/contexts/ReaderOverlayContext.tsx';
|
import { useReaderOverlayContext } from '@/features/reader/overlay/contexts/ReaderOverlayContext.tsx';
|
||||||
import { ReaderRGBAFilter } from '@/features/reader/components/ReaderRGBAFilter.tsx';
|
import { ReaderRGBAFilter } from '@/features/reader/filters/ReaderRGBAFilter.tsx';
|
||||||
import { useReaderStateSettingsContext } from '@/features/reader/contexts/state/ReaderStateSettingsContext.tsx';
|
import { useReaderStateSettingsContext } from '@/features/reader/contexts/state/ReaderStateSettingsContext.tsx';
|
||||||
import { useReaderStateMangaContext } from '@/features/reader/contexts/state/ReaderStateMangaContext.tsx';
|
import { useReaderStateMangaContext } from '@/features/reader/contexts/state/ReaderStateMangaContext.tsx';
|
||||||
import { ReaderViewer } from '@/features/reader/components/viewer/ReaderViewer.tsx';
|
import { ReaderViewer } from '@/features/reader/viewer/ReaderViewer.tsx';
|
||||||
import { ReaderService } from '@/features/reader/services/ReaderService.ts';
|
import { ReaderService } from '@/features/reader/services/ReaderService.ts';
|
||||||
import { READER_BACKGROUND_TO_COLOR } from '@/features/reader/constants/ReaderSettings.constants.tsx';
|
import { READER_BACKGROUND_TO_COLOR } from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
||||||
import { ReaderHotkeys } from '@/features/reader/components/ReaderHotkeys.tsx';
|
import { ReaderHotkeys } from '@/features/reader/hotkeys/ReaderHotkeys.tsx';
|
||||||
import {
|
import {
|
||||||
IReaderSettings,
|
IReaderSettings,
|
||||||
IReaderSettingsWithDefaultFlag,
|
IReaderSettingsWithDefaultFlag,
|
||||||
@@ -37,16 +37,16 @@ import {
|
|||||||
TReaderAutoScrollContext,
|
TReaderAutoScrollContext,
|
||||||
TReaderStateMangaContext,
|
TReaderStateMangaContext,
|
||||||
TReaderStateSettingsContext,
|
TReaderStateSettingsContext,
|
||||||
} from '@/features/reader/types/Reader.types.ts';
|
} from '@/features/reader/Reader.types.ts';
|
||||||
import { getErrorMessage } from '@/lib/HelperFunctions.ts';
|
import { getErrorMessage } from '@/lib/HelperFunctions.ts';
|
||||||
import { NavbarContextType } from '@/features/navigation-bar/NavigationBar.types.ts';
|
import { NavbarContextType } from '@/features/navigation-bar/NavigationBar.types.ts';
|
||||||
import { TReaderOverlayContext } from '@/features/reader/types/ReaderOverlay.types.ts';
|
import { TReaderOverlayContext } from '@/features/reader/overlay/ReaderOverlay.types.ts';
|
||||||
import { ReaderStatePages } from '@/features/reader/types/ReaderProgressBar.types.ts';
|
import { ReaderStatePages } from '@/features/reader/overlay/progress-bar/ReaderProgressBar.types.ts';
|
||||||
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
import { withPropsFrom } from '@/features/core/hoc/withPropsFrom.tsx';
|
||||||
import { useReaderStateChaptersContext } from '@/features/reader/contexts/state/ReaderStateChaptersContext.tsx';
|
import { useReaderStateChaptersContext } from '@/features/reader/contexts/state/ReaderStateChaptersContext.tsx';
|
||||||
import { useReaderAutoScrollContext } from '@/features/reader/contexts/ReaderAutoScrollContext.tsx';
|
import { useReaderAutoScrollContext } from '@/features/reader/auto-scroll/contexts/ReaderAutoScrollContext.tsx';
|
||||||
import { TReaderTapZoneContext } from '@/features/reader/types/TapZoneLayout.types.ts';
|
import { TReaderTapZoneContext } from '@/features/reader/tap-zones/TapZoneLayout.types.ts';
|
||||||
import { useReaderTapZoneContext } from '@/features/reader/contexts/ReaderTapZoneContext.tsx';
|
import { useReaderTapZoneContext } from '@/features/reader/tap-zones/contexts/ReaderTapZoneContext.tsx';
|
||||||
import { useReaderResetStates } from '@/features/reader/hooks/useReaderResetStates.ts';
|
import { useReaderResetStates } from '@/features/reader/hooks/useReaderResetStates.ts';
|
||||||
import { useReaderSetSettingsState } from '@/features/reader/hooks/useReaderSetSettingsState.ts';
|
import { useReaderSetSettingsState } from '@/features/reader/hooks/useReaderSetSettingsState.ts';
|
||||||
import { useReaderShowSettingPreviewOnChange } from '@/features/reader/hooks/useReaderShowSettingPreviewOnChange.ts';
|
import { useReaderShowSettingPreviewOnChange } from '@/features/reader/hooks/useReaderShowSettingPreviewOnChange.ts';
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ import {
|
|||||||
getPage,
|
getPage,
|
||||||
getPageForMousePos,
|
getPageForMousePos,
|
||||||
getProgressBarPositionInfo,
|
getProgressBarPositionInfo,
|
||||||
} from '@/features/reader/utils/ReaderProgressBar.utils.tsx';
|
} from '@/features/reader/overlay/progress-bar/ReaderProgressBar.utils.tsx';
|
||||||
import { getOptionForDirection } from '@/features/theme/services/ThemeCreator.ts';
|
import { getOptionForDirection } from '@/features/theme/services/ThemeCreator.ts';
|
||||||
import { ReaderService } from '@/features/reader/services/ReaderService.ts';
|
import { ReaderService } from '@/features/reader/services/ReaderService.ts';
|
||||||
import { useReaderStateChaptersContext } from '@/features/reader/contexts/state/ReaderStateChaptersContext.tsx';
|
import { useReaderStateChaptersContext } from '@/features/reader/contexts/state/ReaderStateChaptersContext.tsx';
|
||||||
@@ -28,32 +28,35 @@ import {
|
|||||||
ReaderTransitionPageMode,
|
ReaderTransitionPageMode,
|
||||||
ReadingDirection,
|
ReadingDirection,
|
||||||
ReadingMode,
|
ReadingMode,
|
||||||
} from '@/features/reader/types/Reader.types.ts';
|
} from '@/features/reader/Reader.types.ts';
|
||||||
import { ScrollDirection, ScrollOffset } from '@/features/core/Core.types.ts';
|
import { ScrollDirection, ScrollOffset } from '@/features/core/Core.types.ts';
|
||||||
import { READING_DIRECTION_TO_THEME_DIRECTION } from '@/features/reader/constants/ReaderSettings.constants.tsx';
|
import { READING_DIRECTION_TO_THEME_DIRECTION } from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
||||||
import {
|
import {
|
||||||
isATransitionPageVisible,
|
isATransitionPageVisible,
|
||||||
isEndOfPageInViewport,
|
isEndOfPageInViewport,
|
||||||
isPageInViewport,
|
isPageInViewport,
|
||||||
} from '@/features/reader/utils/ReaderPager.utils.tsx';
|
} from '@/features/reader/viewer/pager/ReaderPager.utils.tsx';
|
||||||
import { useReaderOverlayContext } from '@/features/reader/contexts/ReaderOverlayContext.tsx';
|
import { useReaderOverlayContext } from '@/features/reader/overlay/contexts/ReaderOverlayContext.tsx';
|
||||||
import { useReaderTapZoneContext } from '@/features/reader/contexts/ReaderTapZoneContext.tsx';
|
import { useReaderTapZoneContext } from '@/features/reader/tap-zones/contexts/ReaderTapZoneContext.tsx';
|
||||||
import { TapZoneRegionType, TReaderTapZoneContext } from '@/features/reader/types/TapZoneLayout.types.ts';
|
import { TapZoneRegionType, TReaderTapZoneContext } from '@/features/reader/tap-zones/TapZoneLayout.types.ts';
|
||||||
import { ReaderTapZoneService } from '@/features/reader/services/ReaderTapZoneService.ts';
|
import { ReaderTapZoneService } from '@/features/reader/tap-zones/ReaderTapZoneService.ts';
|
||||||
import { isContinuousReadingMode } from '@/features/reader/utils/ReaderSettings.utils.tsx';
|
import { isContinuousReadingMode } from '@/features/reader/settings/ReaderSettings.utils.tsx';
|
||||||
import {
|
import {
|
||||||
getReaderChapterFromCache,
|
getReaderChapterFromCache,
|
||||||
getReaderOpenChapterResumeMode,
|
getReaderOpenChapterResumeMode,
|
||||||
updateReaderStateVisibleChapters,
|
updateReaderStateVisibleChapters,
|
||||||
} from '@/features/reader/utils/Reader.utils.ts';
|
} from '@/features/reader/Reader.utils.ts';
|
||||||
import { Chapters } from '@/features/chapter/services/Chapters.ts';
|
import { Chapters } from '@/features/chapter/services/Chapters.ts';
|
||||||
import { DirectionOffset, TranslationKey } from '@/Base.types.ts';
|
import { DirectionOffset, TranslationKey } from '@/Base.types.ts';
|
||||||
import { useMetadataServerSettings } from '@/features/settings/services/ServerSettingsMetadata.ts';
|
import { useMetadataServerSettings } from '@/features/settings/services/ServerSettingsMetadata.ts';
|
||||||
import { ChapterIdInfo, TChapterReader } from '@/features/chapter/Chapter.types.ts';
|
import { ChapterIdInfo, TChapterReader } from '@/features/chapter/Chapter.types.ts';
|
||||||
import { awaitConfirmation } from '@/features/core/utils/AwaitableDialog.tsx';
|
import { awaitConfirmation } from '@/features/core/utils/AwaitableDialog.tsx';
|
||||||
import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts';
|
import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts';
|
||||||
import { TReaderOverlayContext } from '@/features/reader/types/ReaderOverlay.types.ts';
|
import { TReaderOverlayContext } from '@/features/reader/overlay/ReaderOverlay.types.ts';
|
||||||
import { ReaderProgressBarProps, TReaderProgressCurrentPage } from '@/features/reader/types/ReaderProgressBar.types.ts';
|
import {
|
||||||
|
ReaderProgressBarProps,
|
||||||
|
TReaderProgressCurrentPage,
|
||||||
|
} from '@/features/reader/overlay/progress-bar/ReaderProgressBar.types.ts';
|
||||||
|
|
||||||
const getScrollDirectionInvert = (
|
const getScrollDirectionInvert = (
|
||||||
scrollDirection: ScrollDirection,
|
scrollDirection: ScrollDirection,
|
||||||
|
|||||||
@@ -21,12 +21,12 @@ import {
|
|||||||
ReaderStateChapters,
|
ReaderStateChapters,
|
||||||
ReadingDirection,
|
ReadingDirection,
|
||||||
ReadingMode,
|
ReadingMode,
|
||||||
} from '@/features/reader/types/Reader.types.ts';
|
} from '@/features/reader/Reader.types.ts';
|
||||||
import { useReaderStateMangaContext } from '@/features/reader/contexts/state/ReaderStateMangaContext.tsx';
|
import { useReaderStateMangaContext } from '@/features/reader/contexts/state/ReaderStateMangaContext.tsx';
|
||||||
import {
|
import {
|
||||||
convertFromReaderSettingsWithDefaultFlag,
|
convertFromReaderSettingsWithDefaultFlag,
|
||||||
updateReaderSettings,
|
updateReaderSettings,
|
||||||
} from '@/features/reader/services/ReaderSettingsMetadata.ts';
|
} from '@/features/reader/settings/ReaderSettingsMetadata.ts';
|
||||||
import { MangaIdInfo } from '@/features/manga/Manga.types.ts';
|
import { MangaIdInfo } from '@/features/manga/Manga.types.ts';
|
||||||
import { requestManager } from '@/lib/requests/RequestManager.ts';
|
import { requestManager } from '@/lib/requests/RequestManager.ts';
|
||||||
import { MANGA_META_FIELDS } from '@/lib/graphql/fragments/MangaFragments.ts';
|
import { MANGA_META_FIELDS } from '@/lib/graphql/fragments/MangaFragments.ts';
|
||||||
@@ -35,7 +35,7 @@ import { MediaQuery } from '@/features/core/utils/MediaQuery.tsx';
|
|||||||
import { GLOBAL_METADATA } from '@/lib/graphql/fragments/Fragments.ts';
|
import { GLOBAL_METADATA } from '@/lib/graphql/fragments/Fragments.ts';
|
||||||
import { updateMetadataList } from '@/features/metadata/services/MetadataApolloCacheHandler.ts';
|
import { updateMetadataList } from '@/features/metadata/services/MetadataApolloCacheHandler.ts';
|
||||||
import { useBackButton } from '@/features/core/hooks/useBackButton.ts';
|
import { useBackButton } from '@/features/core/hooks/useBackButton.ts';
|
||||||
import { GLOBAL_READER_SETTING_KEYS } from '@/features/reader/constants/ReaderSettings.constants.tsx';
|
import { GLOBAL_READER_SETTING_KEYS } from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
||||||
import { useReaderStateSettingsContext } from '@/features/reader/contexts/state/ReaderStateSettingsContext.tsx';
|
import { useReaderStateSettingsContext } from '@/features/reader/contexts/state/ReaderStateSettingsContext.tsx';
|
||||||
import { UpdateChapterPatchInput } from '@/lib/graphql/generated/graphql.ts';
|
import { UpdateChapterPatchInput } from '@/lib/graphql/generated/graphql.ts';
|
||||||
import { useReaderStateChaptersContext } from '@/features/reader/contexts/state/ReaderStateChaptersContext.tsx';
|
import { useReaderStateChaptersContext } from '@/features/reader/contexts/state/ReaderStateChaptersContext.tsx';
|
||||||
@@ -47,7 +47,7 @@ import {
|
|||||||
getReaderChapterFromCache,
|
getReaderChapterFromCache,
|
||||||
isInDownloadAheadRange,
|
isInDownloadAheadRange,
|
||||||
updateReaderStateVisibleChapters,
|
updateReaderStateVisibleChapters,
|
||||||
} from '@/features/reader/utils/Reader.utils.ts';
|
} from '@/features/reader/Reader.utils.ts';
|
||||||
import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts';
|
import { defaultPromiseErrorHandler } from '@/lib/DefaultPromiseErrorHandler.ts';
|
||||||
import { Queue } from '@/lib/Queue.ts';
|
import { Queue } from '@/lib/Queue.ts';
|
||||||
import { AppRoutes } from '@/features/core/AppRoute.constants.ts';
|
import { AppRoutes } from '@/features/core/AppRoute.constants.ts';
|
||||||
|
|||||||
@@ -28,13 +28,13 @@ import {
|
|||||||
ReaderScrollAmount,
|
ReaderScrollAmount,
|
||||||
ReadingDirection,
|
ReadingDirection,
|
||||||
ReadingMode,
|
ReadingMode,
|
||||||
} from '@/features/reader/types/Reader.types.ts';
|
} from '@/features/reader/Reader.types.ts';
|
||||||
import { SinglePageIcon } from '@/assets/icons/svg/SinglePageIcon.tsx';
|
import { SinglePageIcon } from '@/assets/icons/svg/SinglePageIcon.tsx';
|
||||||
import { DoublePageIcon } from '@/assets/icons/svg/DoublePageIcon.tsx';
|
import { DoublePageIcon } from '@/assets/icons/svg/DoublePageIcon.tsx';
|
||||||
import { ContinuousVerticalPageIcon } from '@/assets/icons/svg/ContinuousVerticalPageIcon.tsx';
|
import { ContinuousVerticalPageIcon } from '@/assets/icons/svg/ContinuousVerticalPageIcon.tsx';
|
||||||
import { ContinuousHorizontalPageIcon } from '@/assets/icons/svg/ContinuousHorizontalPageIcon.tsx';
|
import { ContinuousHorizontalPageIcon } from '@/assets/icons/svg/ContinuousHorizontalPageIcon.tsx';
|
||||||
import { TranslationKey } from '@/Base.types.ts';
|
import { TranslationKey } from '@/Base.types.ts';
|
||||||
import { TapZoneLayouts } from '@/features/reader/types/TapZoneLayout.types.ts';
|
import { TapZoneLayouts } from '@/features/reader/tap-zones/TapZoneLayout.types.ts';
|
||||||
import { WebtoonPageIcon } from '@/assets/icons/svg/WebtoonPageIcon.tsx';
|
import { WebtoonPageIcon } from '@/assets/icons/svg/WebtoonPageIcon.tsx';
|
||||||
|
|
||||||
export const AUTO_SCROLL_SPEED = {
|
export const AUTO_SCROLL_SPEED = {
|
||||||
@@ -15,13 +15,13 @@ import {
|
|||||||
ReaderPagerProps,
|
ReaderPagerProps,
|
||||||
ReaderPageScaleMode,
|
ReaderPageScaleMode,
|
||||||
ReadingMode,
|
ReadingMode,
|
||||||
} from '@/features/reader/types/Reader.types.ts';
|
} from '@/features/reader/Reader.types.ts';
|
||||||
import { MangaGenreInfo, MangaSourceLngInfo, MangaSourceNameInfo } from '@/features/manga/Manga.types.ts';
|
import { MangaGenreInfo, MangaSourceLngInfo, MangaSourceNameInfo } from '@/features/manga/Manga.types.ts';
|
||||||
import { Mangas } from '@/features/manga/services/Mangas.ts';
|
import { Mangas } from '@/features/manga/services/Mangas.ts';
|
||||||
import { ReaderPagedPager } from '@/features/reader/components/viewer/pager/ReaderPagedPager.tsx';
|
import { ReaderPagedPager } from '@/features/reader/viewer/pager/components/ReaderPagedPager.tsx';
|
||||||
import { ReaderDoublePagedPager } from '@/features/reader/components/viewer/pager/ReaderDoublePagedPager.tsx';
|
import { ReaderDoublePagedPager } from '@/features/reader/viewer/pager/components/ReaderDoublePagedPager.tsx';
|
||||||
import { ReaderVerticalPager } from '@/features/reader/components/viewer/pager/ReaderVerticalPager.tsx';
|
import { ReaderVerticalPager } from '@/features/reader/viewer/pager/components/ReaderVerticalPager.tsx';
|
||||||
import { ReaderHorizontalPager } from '@/features/reader/components/viewer/pager/ReaderHorizontalPager.tsx';
|
import { ReaderHorizontalPager } from '@/features/reader/viewer/pager/components/ReaderHorizontalPager.tsx';
|
||||||
|
|
||||||
export const isOffsetDoubleSpreadPagesEditable = (readingMode: IReaderSettings['readingMode']): boolean =>
|
export const isOffsetDoubleSpreadPagesEditable = (readingMode: IReaderSettings['readingMode']): boolean =>
|
||||||
readingMode === ReadingMode.DOUBLE_PAGE;
|
readingMode === ReadingMode.DOUBLE_PAGE;
|
||||||
@@ -14,7 +14,7 @@ import {
|
|||||||
requestUpdateServerMetadata,
|
requestUpdateServerMetadata,
|
||||||
} from '@/features/metadata/services/MetadataUpdater.ts';
|
} from '@/features/metadata/services/MetadataUpdater.ts';
|
||||||
import { MangaType } from '@/lib/graphql/generated/graphql.ts';
|
import { MangaType } from '@/lib/graphql/generated/graphql.ts';
|
||||||
import { IReaderSettings, IReaderSettingsWithDefaultFlag, ReadingMode } from '@/features/reader/types/Reader.types.ts';
|
import { IReaderSettings, IReaderSettingsWithDefaultFlag, ReadingMode } from '@/features/reader/Reader.types.ts';
|
||||||
import { convertFromGqlMeta } from '@/features/metadata/services/MetadataConverter.ts';
|
import { convertFromGqlMeta } from '@/features/metadata/services/MetadataConverter.ts';
|
||||||
import { getMetadataFrom } from '@/features/metadata/services/MetadataReader.ts';
|
import { getMetadataFrom } from '@/features/metadata/services/MetadataReader.ts';
|
||||||
import {
|
import {
|
||||||
@@ -29,7 +29,7 @@ import { MangaIdInfo } from '@/features/manga/Manga.types.ts';
|
|||||||
import {
|
import {
|
||||||
DEFAULT_READER_SETTINGS,
|
DEFAULT_READER_SETTINGS,
|
||||||
GLOBAL_READER_SETTING_KEYS,
|
GLOBAL_READER_SETTING_KEYS,
|
||||||
} from '@/features/reader/constants/ReaderSettings.constants.tsx';
|
} from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
||||||
import { DEFAULT_DEVICE, getActiveDevice } from '@/features/device/services/Device.ts';
|
import { DEFAULT_DEVICE, getActiveDevice } from '@/features/device/services/Device.ts';
|
||||||
import { APP_METADATA_KEY_PREFIX } from '@/features/metadata/Metadata.constants.ts';
|
import { APP_METADATA_KEY_PREFIX } from '@/features/metadata/Metadata.constants.ts';
|
||||||
import { extractOriginalKey } from '@/features/metadata/Metadata.utils.ts';
|
import { extractOriginalKey } from '@/features/metadata/Metadata.utils.ts';
|
||||||
@@ -11,17 +11,17 @@ import { useTranslation } from 'react-i18next';
|
|||||||
import Box from '@mui/material/Box';
|
import Box from '@mui/material/Box';
|
||||||
import Typography from '@mui/material/Typography';
|
import Typography from '@mui/material/Typography';
|
||||||
import { ReaderService } from '@/features/reader/services/ReaderService.ts';
|
import { ReaderService } from '@/features/reader/services/ReaderService.ts';
|
||||||
import { IReaderSettingsWithDefaultFlag, ReaderSettingsTypeProps } from '@/features/reader/types/Reader.types.ts';
|
import { IReaderSettingsWithDefaultFlag, ReaderSettingsTypeProps } from '@/features/reader/Reader.types.ts';
|
||||||
import { CheckboxInput } from '@/features/core/components/inputs/CheckboxInput.tsx';
|
import { CheckboxInput } from '@/features/core/components/inputs/CheckboxInput.tsx';
|
||||||
import { ReaderSettingExitMode } from '@/features/reader/components/settings/behaviour/ReaderSettingExitMode.tsx';
|
import { ReaderSettingExitMode } from '@/features/reader/settings/behaviour/components/ReaderSettingExitMode.tsx';
|
||||||
import { isOffsetDoubleSpreadPagesEditable } from '@/features/reader/utils/ReaderSettings.utils.tsx';
|
import { isOffsetDoubleSpreadPagesEditable } from '@/features/reader/settings/ReaderSettings.utils.tsx';
|
||||||
import { SliderInput } from '@/features/core/components/inputs/SliderInput.tsx';
|
import { SliderInput } from '@/features/core/components/inputs/SliderInput.tsx';
|
||||||
import {
|
import {
|
||||||
DEFAULT_READER_SETTINGS,
|
DEFAULT_READER_SETTINGS,
|
||||||
IMAGE_PRE_LOAD_AMOUNT,
|
IMAGE_PRE_LOAD_AMOUNT,
|
||||||
} from '@/features/reader/constants/ReaderSettings.constants.tsx';
|
} from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
||||||
import { ReaderSettingAutoScroll } from '@/features/reader/components/settings/behaviour/ReaderSettingAutoScroll.tsx';
|
import { ReaderSettingAutoScroll } from '@/features/reader/auto-scroll/settings/ReaderSettingAutoScroll.tsx';
|
||||||
import { ReaderSettingScrollAmount } from '@/features/reader/components/settings/behaviour/ReaderSettingScrollAmount.tsx';
|
import { ReaderSettingScrollAmount } from '@/features/reader/settings/behaviour/components/ReaderSettingScrollAmount.tsx';
|
||||||
|
|
||||||
export const ReaderBehaviourSettings = ({
|
export const ReaderBehaviourSettings = ({
|
||||||
settings,
|
settings,
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { IReaderSettings, ReaderExitMode } from '@/features/reader/types/Reader.types.ts';
|
import { IReaderSettings, ReaderExitMode } from '@/features/reader/Reader.types.ts';
|
||||||
import { ValueToDisplayData } from '@/features/core/Core.types.ts';
|
import { ValueToDisplayData } from '@/features/core/Core.types.ts';
|
||||||
import { ButtonSelectInput } from '@/features/core/components/inputs/ButtonSelectInput.tsx';
|
import { ButtonSelectInput } from '@/features/core/components/inputs/ButtonSelectInput.tsx';
|
||||||
|
|
||||||
@@ -7,11 +7,11 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import { useTranslation } from 'react-i18next';
|
import { useTranslation } from 'react-i18next';
|
||||||
import { IReaderSettings, ReaderScrollAmount } from '@/features/reader/types/Reader.types.ts';
|
import { IReaderSettings, ReaderScrollAmount } from '@/features/reader/Reader.types.ts';
|
||||||
import { ValueToDisplayData } from '@/features/core/Core.types.ts';
|
import { ValueToDisplayData } from '@/features/core/Core.types.ts';
|
||||||
import { ButtonSelectInput } from '@/features/core/components/inputs/ButtonSelectInput.tsx';
|
import { ButtonSelectInput } from '@/features/core/components/inputs/ButtonSelectInput.tsx';
|
||||||
import { SliderInput } from '@/features/core/components/inputs/SliderInput.tsx';
|
import { SliderInput } from '@/features/core/components/inputs/SliderInput.tsx';
|
||||||
import { DEFAULT_READER_SETTINGS, SCROLL_AMOUNT } from '@/features/reader/constants/ReaderSettings.constants.tsx';
|
import { DEFAULT_READER_SETTINGS, SCROLL_AMOUNT } from '@/features/reader/settings/ReaderSettings.constants.tsx';
|
||||||
|
|
||||||
const VALUE_TO_DISPLAY_DATA: ValueToDisplayData<ReaderScrollAmount> = {
|
const VALUE_TO_DISPLAY_DATA: ValueToDisplayData<ReaderScrollAmount> = {
|
||||||
[ReaderScrollAmount.TINY]: {
|
[ReaderScrollAmount.TINY]: {
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user