/* * 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 { ComponentProps, memo } from 'react'; 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'; const SLOT_SX_PROP: NonNullable['slotProps']>['box']>['sx'] = { display: 'flex', alignItems: 'center', justifyContent: 'end', position: 'relative', backgroundColor: 'background.default', }; const POINT_SIZE = '3px'; const ProgressBarPagePoint = memo( ({ isTrailingPage, pagesIndex, totalPages, isVertical, isHorizontal, }: { isTrailingPage: boolean; pagesIndex: number; totalPages: number; isVertical: boolean; isHorizontal: boolean; }) => { const position = `${(pagesIndex / (totalPages - 1)) * 100}%`; return ( ); }, ); export const ReaderProgressBarSlotMobile = memo( ({ pageName, isTrailingPage, isCurrentPage, pagesIndex, totalPages, isVertical, isHorizontal, }: { pageName: string; isTrailingPage: boolean; isCurrentPage: boolean; pagesIndex: number; totalPages: number; isVertical: boolean; isHorizontal: boolean; }) => ( {!isCurrentPage && ( )} ), );