@@ -36,26 +36,26 @@ import { coerceIn } from '@/lib/HelperFunctions.ts';
|
|||||||
|
|
||||||
type CSSObject = ReturnType<Theme['applyStyles']>;
|
type CSSObject = ReturnType<Theme['applyStyles']>;
|
||||||
|
|
||||||
const getPageWidth = (
|
const getPageWidthPercentage = (
|
||||||
pageScaleMode: IReaderSettings['pageScaleMode'],
|
pageScaleMode: IReaderSettings['pageScaleMode'],
|
||||||
isDoublePage: boolean,
|
isDoublePage: boolean,
|
||||||
readerWidth: IReaderSettings['readerWidth'],
|
readerWidth: IReaderSettings['readerWidth'],
|
||||||
isImage: boolean,
|
isImage: boolean,
|
||||||
): string => {
|
): number => {
|
||||||
if (shouldApplyReaderWidth(readerWidth, pageScaleMode)) {
|
if (shouldApplyReaderWidth(readerWidth, pageScaleMode)) {
|
||||||
const width = readerWidth.value;
|
const width = readerWidth.value;
|
||||||
if (isImage && isDoublePage) {
|
if (isImage && isDoublePage) {
|
||||||
return `${width / 2}vw`;
|
return width / 100 / 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
return `${width}vw`;
|
return width / 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isImage && isDoublePage) {
|
if (isImage && isDoublePage) {
|
||||||
return `50vw`;
|
return 0.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
return `100vw`;
|
return 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const getImagePlaceholderStyling = (
|
export const getImagePlaceholderStyling = (
|
||||||
@@ -155,15 +155,14 @@ export const getImagePlaceholderStyling = (
|
|||||||
};
|
};
|
||||||
|
|
||||||
const getReaderDimensionStyling = (
|
const getReaderDimensionStyling = (
|
||||||
width: string,
|
widthPercentage: number,
|
||||||
readingMode: IReaderSettings['readingMode'],
|
readingMode: IReaderSettings['readingMode'],
|
||||||
shouldStretchPage: IReaderSettings['shouldStretchPage'],
|
shouldStretchPage: IReaderSettings['shouldStretchPage'],
|
||||||
pageScaleMode: IReaderSettings['pageScaleMode'],
|
pageScaleMode: IReaderSettings['pageScaleMode'],
|
||||||
widthOffset: number,
|
widthOffset: number,
|
||||||
heightOffset: number,
|
heightOffset: number,
|
||||||
): CSSObject => {
|
): CSSObject => {
|
||||||
const finalWidthOffset = readingMode === ReadingMode.DOUBLE_PAGE ? widthOffset / 2 : widthOffset;
|
const fullWidth = `calc((100vw - ${widthOffset}px) * ${widthPercentage})`;
|
||||||
const fullWidth = `calc(${width} - ${finalWidthOffset}px)`;
|
|
||||||
const fullHeight = `calc(100vh - ${heightOffset}px)`;
|
const fullHeight = `calc(100vh - ${heightOffset}px)`;
|
||||||
|
|
||||||
switch (pageScaleMode) {
|
switch (pageScaleMode) {
|
||||||
@@ -228,8 +227,15 @@ export const getReaderImageStyling = (
|
|||||||
widthOffset: number,
|
widthOffset: number,
|
||||||
heightOffset: number,
|
heightOffset: number,
|
||||||
): CSSObject => {
|
): CSSObject => {
|
||||||
const width = getPageWidth(pageScaleMode, isDoublePage, readerWidth, true);
|
const widthPercentage = getPageWidthPercentage(pageScaleMode, isDoublePage, readerWidth, true);
|
||||||
return getReaderDimensionStyling(width, readingMode, shouldStretchPage, pageScaleMode, widthOffset, heightOffset);
|
return getReaderDimensionStyling(
|
||||||
|
widthPercentage,
|
||||||
|
readingMode,
|
||||||
|
shouldStretchPage,
|
||||||
|
pageScaleMode,
|
||||||
|
widthOffset,
|
||||||
|
heightOffset,
|
||||||
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
export const getImageMarginStyling = (doublePage: boolean, objectFitPosition?: 'left' | 'right'): CSSObject => ({
|
export const getImageMarginStyling = (doublePage: boolean, objectFitPosition?: 'left' | 'right'): CSSObject => ({
|
||||||
|
|||||||
Reference in New Issue
Block a user