Add fit page to window reader setting (#323)

* Add fit page to window reader setting

* Renamed option and conditional rendering

* Rename translation key
This commit is contained in:
Alexandre
2023-06-03 20:53:52 +02:00
committed by GitHub
parent 46a7ff6e3b
commit d60ed0c055
8 changed files with 30 additions and 3 deletions

View File

@@ -261,6 +261,7 @@ export default function ReaderNavBar(props: IProps) {
showPageNumber={settings.showPageNumber}
loadNextOnEnding={settings.loadNextOnEnding}
skipDupChapters={settings.skipDupChapters}
fitPageToWindow={settings.fitPageToWindow}
readerType={settings.readerType}
/>
</Collapse>

View File

@@ -30,6 +30,7 @@ function imageStyle(settings: IReaderSettings): any {
};
}, []);
if (
settings.fitPageToWindow ||
settings.readerType === 'DoubleLTR' ||
settings.readerType === 'DoubleRTL' ||
settings.readerType === 'ContinuesHorizontalLTR' ||

View File

@@ -25,9 +25,16 @@ export default function ReaderSettingsOptions({
showPageNumber,
skipDupChapters,
setSettingValue,
fitPageToWindow,
}: IProps) {
const { t } = useTranslation();
const fitPageToWindowEligible = [
'ContinuesVertical',
'Webtoon',
'SingleVertical',
'SingleRTL',
'SingleLTR',
].includes(readerType);
return (
<List>
<ListItem>
@@ -70,6 +77,18 @@ export default function ReaderSettingsOptions({
/>
</ListItemSecondaryAction>
</ListItem>
{fitPageToWindowEligible ? (
<ListItem>
<ListItemText primary={t('reader.settings.label.fit_page_to_window')} />
<ListItemSecondaryAction>
<Switch
edge="end"
checked={fitPageToWindow}
onChange={(e) => setSettingValue('fitPageToWindow', e.target.checked)}
/>
</ListItemSecondaryAction>
</ListItem>
) : null}
<ListItem>
<ListItemText primary={t('reader.settings.label.reader_type')} />
<Select

View File

@@ -361,7 +361,8 @@
"reader_type": "Reader type",
"show_page_number": "Show page number",
"skip_dup_chapters": "Skip duplicate chapters",
"static_navigation": "Static navigation"
"static_navigation": "Static navigation",
"fit_page_to_window": "Fit page to window"
},
"reader_type": {
"label": {

View File

@@ -299,7 +299,8 @@
"static_navigation": "Navigación Estática",
"show_page_number": "Mostrar numero de pagina",
"reader_type": "Tipo de Lector",
"skip_dup_chapters": "Omitir capítulos duplicados"
"skip_dup_chapters": "Omitir capítulos duplicados",
"fit_page_to_window": "Ajustar página a la ventana"
},
"title": {
"default_reader_settings": "Ajustes Defecto del Lector",

View File

@@ -61,6 +61,7 @@ export default function DefaultReaderSettings() {
showPageNumber={settings.showPageNumber}
loadNextOnEnding={settings.loadNextOnEnding}
skipDupChapters={settings.skipDupChapters}
fitPageToWindow={settings.fitPageToWindow}
readerType={settings.readerType}
/>
);

View File

@@ -212,6 +212,7 @@ export interface IReaderSettings {
showPageNumber: boolean;
loadNextOnEnding: boolean;
skipDupChapters: boolean;
fitPageToWindow: boolean;
readerType: ReaderType;
}

View File

@@ -19,6 +19,7 @@ export const getDefaultSettings = (): IReaderSettings => ({
showPageNumber: true,
loadNextOnEnding: false,
skipDupChapters: true,
fitPageToWindow: false,
readerType: 'ContinuesVertical',
});
@@ -71,6 +72,7 @@ export const checkAndHandleMissingStoredReaderSettings = async (
showPageNumber: undefined,
loadNextOnEnding: undefined,
skipDupChapters: undefined,
fitPageToWindow: undefined,
readerType: undefined,
},
false,