From 635f294184f459a619b681bc4fb064c18555303a Mon Sep 17 00:00:00 2001 From: schroda <50052685+schroda@users.noreply.github.com> Date: Thu, 26 Dec 2024 01:09:33 +0100 Subject: [PATCH] Extract "ReaderProgressBarSlot" from "MobileReaderProgressBar" --- .../mobile/ReaderProgressBarSlotMobile.tsx | 53 +++++++++++++++++++ .../variants/MobileReaderProgressBar.tsx | 50 ++++------------- 2 files changed, 63 insertions(+), 40 deletions(-) create mode 100644 src/modules/reader/components/overlay/progress-bar/mobile/ReaderProgressBarSlotMobile.tsx diff --git a/src/modules/reader/components/overlay/progress-bar/mobile/ReaderProgressBarSlotMobile.tsx b/src/modules/reader/components/overlay/progress-bar/mobile/ReaderProgressBarSlotMobile.tsx new file mode 100644 index 00000000..14df79ea --- /dev/null +++ b/src/modules/reader/components/overlay/progress-bar/mobile/ReaderProgressBarSlotMobile.tsx @@ -0,0 +1,53 @@ +/* + * Copyright (C) Contributors to the Suwayomi project + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at https://mozilla.org/MPL/2.0/. + */ + +import Box from '@mui/material/Box'; +import { ProgressBarPosition } from '@/modules/reader/types/Reader.types.ts'; +import { applyStyles } from '@/modules/core/utils/ApplyStyles.ts'; +import { ReaderProgressBarSlot } from '@/modules/reader/components/overlay/progress-bar/ReaderProgressBarSlot'; + +export const ReaderProgressBarSlotMobile = ({ + pageName, + isTrailingPage, +}: { + pageName: string; + isTrailingPage: boolean; +}) => ( + + + +); diff --git a/src/modules/reader/components/overlay/progress-bar/variants/MobileReaderProgressBar.tsx b/src/modules/reader/components/overlay/progress-bar/variants/MobileReaderProgressBar.tsx index 7996b2a8..b566dd56 100644 --- a/src/modules/reader/components/overlay/progress-bar/variants/MobileReaderProgressBar.tsx +++ b/src/modules/reader/components/overlay/progress-bar/variants/MobileReaderProgressBar.tsx @@ -12,9 +12,8 @@ import SkipNextIcon from '@mui/icons-material/SkipNext'; import Stack from '@mui/material/Stack'; import { alpha } from '@mui/material/styles'; import Box from '@mui/material/Box'; -import { memo, useCallback, useLayoutEffect } from 'react'; +import { ComponentProps, memo, useCallback, useLayoutEffect } from 'react'; import { ReaderProgressBar } from '@/modules/reader/components/overlay/progress-bar/ReaderProgressBar.tsx'; -import { ReaderProgressBarSlot } from '@/modules/reader/components/overlay/progress-bar/ReaderProgressBarSlot.tsx'; import { userReaderStatePagesContext } from '@/modules/reader/contexts/state/ReaderStatePagesContext.tsx'; import { useReaderStateChaptersContext } from '@/modules/reader/contexts/state/ReaderStateChaptersContext.tsx'; import { ReaderService } from '@/modules/reader/services/ReaderService.ts'; @@ -27,7 +26,7 @@ import { useReaderOverlayContext } from '@/modules/reader/contexts/ReaderOverlay import { withPropsFrom } from '@/modules/core/hoc/withPropsFrom.tsx'; import { TReaderOverlayContext } from '@/modules/reader/types/ReaderOverlay.types.ts'; import { TReaderProgressBarContext } from '@/modules/reader/types/ReaderProgressBar.types.ts'; -import { applyStyles } from '@/modules/core/utils/ApplyStyles.ts'; +import { ReaderProgressBarSlotMobile } from '@/modules/reader/components/overlay/progress-bar/mobile/ReaderProgressBarSlotMobile.tsx'; const BaseMobileReaderProgressBar = ({ previousChapter, @@ -45,6 +44,13 @@ const BaseMobileReaderProgressBar = ({ const openNextChapter = ReaderService.useNavigateToChapter(nextChapter, ReaderResumeMode.START); const openPreviousChapter = ReaderService.useNavigateToChapter(previousChapter, ReaderResumeMode.END); + const createProgressBarSlot: ComponentProps['createProgressBarSlot'] = useCallback( + (page, _1, _2, _3, _4, _5, isTrailingPage) => ( + + ), + [], + ); + useLayoutEffect(() => { setIsMaximized(isVisible); @@ -75,43 +81,7 @@ const BaseMobileReaderProgressBar = ({ ( - - - - ), - [], - )} + createProgressBarSlot={createProgressBarSlot} slotProps={{ container: { sx: {