Add Setting to Jump to Last Read Chapter
This commit is contained in:
@@ -98,6 +98,7 @@ const Novel = ({ route, navigation }) => {
|
||||
useFabForContinueReading = false,
|
||||
defaultChapterSort = 'ORDER BY chapterId ASC',
|
||||
disableHapticFeedback = false,
|
||||
jumpToLastReadChapter = false,
|
||||
} = useSettings();
|
||||
|
||||
const {
|
||||
@@ -651,6 +652,18 @@ const Novel = ({ route, navigation }) => {
|
||||
</Portal>
|
||||
<View style={styles.flashlistContainer}>
|
||||
<FlashList
|
||||
onLayout={() => {
|
||||
if (jumpToLastReadChapter) {
|
||||
const lastReadChapterIdx = chapters.findIndex(
|
||||
chapter => chapter.chapterId === lastReadChapter.chapterId,
|
||||
);
|
||||
|
||||
flatlistRef.current.scrollToIndex({
|
||||
animated: true,
|
||||
index: lastReadChapterIdx,
|
||||
});
|
||||
}
|
||||
}}
|
||||
ref={flatlistRef}
|
||||
estimatedItemSize={64}
|
||||
data={chapters}
|
||||
|
||||
@@ -62,6 +62,7 @@ const GenralSettings: React.FC<GenralSettingsProps> = ({ navigation }) => {
|
||||
refreshNovelMetadata = false,
|
||||
disableHapticFeedback = false,
|
||||
useLibraryFAB = false,
|
||||
jumpToLastReadChapter = false,
|
||||
} = useSettings();
|
||||
|
||||
const { showLastUpdateTime = true } = useSelector(
|
||||
@@ -215,6 +216,18 @@ const GenralSettings: React.FC<GenralSettingsProps> = ({ navigation }) => {
|
||||
onPress={defaultChapterSortModal.setTrue}
|
||||
theme={theme}
|
||||
/>
|
||||
<SwitchSetting
|
||||
label={getString(
|
||||
'moreScreen.settingsScreen.generalSettingsScreen.jumpToLastReadChapter',
|
||||
)}
|
||||
value={jumpToLastReadChapter}
|
||||
onPress={() =>
|
||||
dispatch(
|
||||
setAppSettings('jumpToLastReadChapter', !jumpToLastReadChapter),
|
||||
)
|
||||
}
|
||||
theme={theme}
|
||||
/>
|
||||
<List.Divider theme={theme} />
|
||||
<List.SubHeader theme={theme}>
|
||||
{getString(
|
||||
|
||||
@@ -169,7 +169,8 @@
|
||||
"epubLocation": "EPUB Location",
|
||||
"epubLocationDescription": "The place where you open and export your EPUB files.",
|
||||
"downloadNewChapters": "Download new chapters",
|
||||
"disableHapticFeedback": "Disable haptic feedback"
|
||||
"disableHapticFeedback": "Disable haptic feedback",
|
||||
"jumpToLastReadChapter": "Jump to last read chapter in list"
|
||||
},
|
||||
"readerSettings": {
|
||||
"title": "Reader",
|
||||
|
||||
@@ -137,6 +137,7 @@ export interface StringMap {
|
||||
'moreScreen.settingsScreen.generalSettingsScreen.epubLocationDescription': 'string';
|
||||
'moreScreen.settingsScreen.generalSettingsScreen.downloadNewChapters': 'string';
|
||||
'moreScreen.settingsScreen.generalSettingsScreen.disableHapticFeedback': 'string';
|
||||
'moreScreen.settingsScreen.generalSettingsScreen.jumpToLastReadChapter': 'string';
|
||||
'moreScreen.settingsScreen.readerSettings.title': 'string';
|
||||
'moreScreen.settingsScreen.readerSettings.readerTheme': 'string';
|
||||
'moreScreen.settingsScreen.readerSettings.preset': 'string';
|
||||
|
||||
Reference in New Issue
Block a user