Improve progress bar rendering while dragging
This commit is contained in:
@@ -190,6 +190,7 @@ const BaseReaderProgressBar = ({
|
|||||||
page.secondary ? pageLoadStates[page.secondary.index].loaded : undefined
|
page.secondary ? pageLoadStates[page.secondary.index].loaded : undefined
|
||||||
}
|
}
|
||||||
createProgressBarSlot={createProgressBarSlot}
|
createProgressBarSlot={createProgressBarSlot}
|
||||||
|
showDraggingStyle={pagesIndex === currentPagesIndex && isDragging}
|
||||||
/>
|
/>
|
||||||
))}
|
))}
|
||||||
<ProgressBarHighlightReadPages
|
<ProgressBarHighlightReadPages
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ export const ReaderProgressBarSlotWrapper = memo(
|
|||||||
isLeadingPage,
|
isLeadingPage,
|
||||||
isTrailingPage,
|
isTrailingPage,
|
||||||
totalPages,
|
totalPages,
|
||||||
|
showDraggingStyle,
|
||||||
primaryPageLoadState,
|
primaryPageLoadState,
|
||||||
secondaryPageLoadState,
|
secondaryPageLoadState,
|
||||||
createProgressBarSlot,
|
createProgressBarSlot,
|
||||||
@@ -47,6 +48,7 @@ export const ReaderProgressBarSlotWrapper = memo(
|
|||||||
isLeadingPage: boolean;
|
isLeadingPage: boolean;
|
||||||
isTrailingPage: boolean;
|
isTrailingPage: boolean;
|
||||||
totalPages: number;
|
totalPages: number;
|
||||||
|
showDraggingStyle: boolean;
|
||||||
primaryPageLoadState: ReaderProgressBarProps['pageLoadStates'][number]['loaded'];
|
primaryPageLoadState: ReaderProgressBarProps['pageLoadStates'][number]['loaded'];
|
||||||
secondaryPageLoadState: ReaderProgressBarProps['pageLoadStates'][number]['loaded'] | undefined;
|
secondaryPageLoadState: ReaderProgressBarProps['pageLoadStates'][number]['loaded'] | undefined;
|
||||||
createProgressBarSlot: (
|
createProgressBarSlot: (
|
||||||
@@ -58,6 +60,7 @@ export const ReaderProgressBarSlotWrapper = memo(
|
|||||||
isLeadingPage: boolean,
|
isLeadingPage: boolean,
|
||||||
isTrailingPage: boolean,
|
isTrailingPage: boolean,
|
||||||
totalPages: number,
|
totalPages: number,
|
||||||
|
handleDragging: boolean,
|
||||||
) => ReactNode;
|
) => ReactNode;
|
||||||
} & BoxProps) => {
|
} & BoxProps) => {
|
||||||
const slot = useMemo(
|
const slot = useMemo(
|
||||||
@@ -71,6 +74,7 @@ export const ReaderProgressBarSlotWrapper = memo(
|
|||||||
isLeadingPage,
|
isLeadingPage,
|
||||||
isTrailingPage,
|
isTrailingPage,
|
||||||
totalPages,
|
totalPages,
|
||||||
|
showDraggingStyle,
|
||||||
),
|
),
|
||||||
[
|
[
|
||||||
createProgressBarSlot,
|
createProgressBarSlot,
|
||||||
@@ -82,6 +86,7 @@ export const ReaderProgressBarSlotWrapper = memo(
|
|||||||
isLeadingPage,
|
isLeadingPage,
|
||||||
isTrailingPage,
|
isTrailingPage,
|
||||||
totalPages,
|
totalPages,
|
||||||
|
showDraggingStyle,
|
||||||
],
|
],
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ export const ReaderProgressBarSlotDesktop = memo(
|
|||||||
isFirstPage,
|
isFirstPage,
|
||||||
isLastPage,
|
isLastPage,
|
||||||
isLeadingPage,
|
isLeadingPage,
|
||||||
isDragging,
|
showDraggingStyle,
|
||||||
}: Pick<IReaderSettings, 'progressBarPosition'> & {
|
}: Pick<IReaderSettings, 'progressBarPosition'> & {
|
||||||
pageName: string;
|
pageName: string;
|
||||||
pageUrl: string;
|
pageUrl: string;
|
||||||
@@ -35,7 +35,7 @@ export const ReaderProgressBarSlotDesktop = memo(
|
|||||||
isFirstPage: boolean;
|
isFirstPage: boolean;
|
||||||
isLastPage: boolean;
|
isLastPage: boolean;
|
||||||
isLeadingPage: boolean;
|
isLeadingPage: boolean;
|
||||||
isDragging: boolean;
|
showDraggingStyle: boolean;
|
||||||
}) => {
|
}) => {
|
||||||
const theme = useTheme();
|
const theme = useTheme();
|
||||||
|
|
||||||
@@ -99,7 +99,7 @@ export const ReaderProgressBarSlotDesktop = memo(
|
|||||||
backgroundColor: alpha(theme.palette.primary.main, 0.5),
|
backgroundColor: alpha(theme.palette.primary.main, 0.5),
|
||||||
}),
|
}),
|
||||||
...applyStyles(isCurrentPage, {
|
...applyStyles(isCurrentPage, {
|
||||||
cursor: isDragging ? 'grabbing' : 'grab',
|
cursor: showDraggingStyle ? 'grabbing' : 'grab',
|
||||||
pointer: 'grabbing',
|
pointer: 'grabbing',
|
||||||
borderRadius: 2,
|
borderRadius: 2,
|
||||||
backgroundColor: 'primary.dark',
|
backgroundColor: 'primary.dark',
|
||||||
|
|||||||
@@ -65,6 +65,7 @@ const BaseStandardReaderProgressBar = ({
|
|||||||
isLeadingPage,
|
isLeadingPage,
|
||||||
_,
|
_,
|
||||||
totalPages_,
|
totalPages_,
|
||||||
|
showDraggingStyle,
|
||||||
) => (
|
) => (
|
||||||
<ReaderProgressBarSlotDesktop
|
<ReaderProgressBarSlotDesktop
|
||||||
pageName={page.name}
|
pageName={page.name}
|
||||||
@@ -76,10 +77,10 @@ const BaseStandardReaderProgressBar = ({
|
|||||||
isFirstPage={pagesIndex === 0}
|
isFirstPage={pagesIndex === 0}
|
||||||
isLastPage={pagesIndex === totalPages_ - 1}
|
isLastPage={pagesIndex === totalPages_ - 1}
|
||||||
isLeadingPage={isLeadingPage}
|
isLeadingPage={isLeadingPage}
|
||||||
isDragging={isDragging}
|
showDraggingStyle={showDraggingStyle}
|
||||||
/>
|
/>
|
||||||
),
|
),
|
||||||
[progressBarPosition, isDragging],
|
[progressBarPosition],
|
||||||
)}
|
)}
|
||||||
slotProps={{
|
slotProps={{
|
||||||
container: {
|
container: {
|
||||||
|
|||||||
Reference in New Issue
Block a user