diff --git a/src/Screens/History/HistoryItem.js b/src/Screens/History/HistoryItem.js index 09c1adbb..28099b46 100644 --- a/src/Screens/History/HistoryItem.js +++ b/src/Screens/History/HistoryItem.js @@ -19,6 +19,7 @@ const HistoryItem = ({ history, theme, dispatch, navigation }) => { novelCover, chapterName, chapterUrl, + bookmark, } = history; const getChapterNumber = () => @@ -37,6 +38,7 @@ const HistoryItem = ({ history, theme, dispatch, navigation }) => { novelId, chapterName, novelName, + bookmark, }); return ( diff --git a/src/Screens/Novel/Novel.js b/src/Screens/Novel/Novel.js index 0f3922ba..84cce2e6 100644 --- a/src/Screens/Novel/Novel.js +++ b/src/Screens/Novel/Novel.js @@ -125,6 +125,7 @@ const Novel = ({ route, navigation }) => { alignItems: "center", paddingTop: StatusBar.currentHeight, paddingBottom: 8, + elevation: 2, }} > { title={selected.length} titleStyle={{ color: theme.textColorPrimary }} /> - { - dispatch(bookmarkChapterAction(selected)); - setSelected([]); - }} - /> - {selected.some((obj) => obj.read === 0) && ( - { - dispatch( - markChaptersRead( - selected, - novel.novelId, - sort, - filter - ) - ); - setSelected([]); - }} - /> - )} - {selected.some((obj) => obj.read === 1) && ( - { - dispatch( - markChapterUnreadAction( - selected, - novel.novelId - ) - ); - setSelected([]); - }} - /> - )} - {selected.length === 1 && ( - { - dispatch( - markPreviousChaptersReadAction( - selected[0].chapterId, - selected[0].novelId - ) - ); - setSelected([]); - }} - /> - )} - {selected.some((obj) => obj.downloaded === 1) && ( - { - dispatch(deleteAllChaptersAction(selected)); - setSelected([]); - }} - /> - )} - - {selected.some((obj) => obj.downloaded === 0) && ( - { - dispatch( - downloadAllChaptersAction( - novel.sourceId, - novel.novelUrl, - selected - ) - ); - setSelected([]); - }} - /> - )} { } refreshControl={refreshControl()} /> + {selected.length > 0 && ( + + {selected.some((obj) => obj.downloaded === 0) && ( + { + dispatch( + downloadAllChaptersAction( + novel.sourceId, + novel.novelUrl, + selected + ) + ); + setSelected([]); + }} + /> + )} + {selected.some((obj) => obj.downloaded === 1) && ( + { + dispatch(deleteAllChaptersAction(selected)); + setSelected([]); + }} + /> + )} + { + dispatch(bookmarkChapterAction(selected)); + setSelected([]); + }} + /> + + {selected.some((obj) => obj.read === 0) && ( + { + dispatch( + markChaptersRead( + selected, + novel.novelId, + sort, + filter + ) + ); + setSelected([]); + }} + /> + )} + + {selected.some((obj) => obj.read === 1) && ( + { + dispatch( + markChapterUnreadAction( + selected, + novel.novelId + ) + ); + setSelected([]); + }} + /> + )} + {selected.length === 1 && ( + { + dispatch( + markPreviousChaptersReadAction( + selected[0].chapterId, + selected[0].novelId + ) + ); + setSelected([]); + }} + /> + )} + + )} {!loading && ( { diff --git a/src/Screens/Novel/components/Info/NovelDetailsComponents.js b/src/Screens/Novel/components/Info/NovelDetailsComponents.js index 5bb32a6a..6a09f0b1 100644 --- a/src/Screens/Novel/components/Info/NovelDetailsComponents.js +++ b/src/Screens/Novel/components/Info/NovelDetailsComponents.js @@ -6,6 +6,7 @@ import { StyleSheet, Text, View, + Pressable, } from "react-native"; import { Chip, IconButton } from "react-native-paper"; @@ -73,42 +74,71 @@ const NovelInfo = ({ theme, children }) => ( ); const FollowButton = ({ theme, onPress, followed }) => ( - - + - - {followed ? "In Library" : "Add to library"} - + + + {followed ? "In Library" : "Add to library"} + + ); const TrackerButton = ({ theme, isTracked, onPress }) => ( - - + - - {isTracked ? "Tracked" : "Tracking"} - + + + {isTracked ? "Tracked" : "Tracking"} + + ); diff --git a/src/Screens/Novel/components/Info/ReadButton.js b/src/Screens/Novel/components/Info/ReadButton.js index 92be8dcf..13288566 100644 --- a/src/Screens/Novel/components/Info/ReadButton.js +++ b/src/Screens/Novel/components/Info/ReadButton.js @@ -24,6 +24,7 @@ const ReadButton = ({ navigation, novel, chapters, theme, lastRead }) => { sourceId: novel.sourceId, chapterName: lastRead.chapterName, novelName: novel.novelName, + novelName: lastRead.bookmark, }); }} > diff --git a/src/Screens/Novel/components/NovelHeader.js b/src/Screens/Novel/components/NovelHeader.js index d18786a1..da2f6251 100644 --- a/src/Screens/Novel/components/NovelHeader.js +++ b/src/Screens/Novel/components/NovelHeader.js @@ -1,5 +1,5 @@ import React from "react"; -import { View, Text, StyleSheet, Clipboard } from "react-native"; +import { View, Text, StyleSheet, Clipboard, Pressable } from "react-native"; import * as WebBrowser from "expo-web-browser"; import { TouchableRipple, IconButton } from "react-native-paper"; @@ -103,46 +103,82 @@ const NovelInfoHeader = ({ onPress={() => trackerSheetRef.current.show()} /> )} - - + navigation.navigate("MigrateNovel", { sourceId: novel.sourceId, novelName: novel.novelName, }) } - /> - - Migrate - + + + Migrate + + - - + WebBrowser.openBrowserAsync(novel.sourceUrl) } - /> - - WebView - + + + WebView + + { chapterName: item.chapterName, novelId: item.novelId, novelName: item.novelName, + bookmark: item.bookmark, }); const renderItem = ({ item }) => (