diff --git a/src/screens/Chapter/components/ReaderSheet.js b/src/screens/Chapter/components/ReaderSheet.js index 4f2ab481..61325f5e 100644 --- a/src/screens/Chapter/components/ReaderSheet.js +++ b/src/screens/Chapter/components/ReaderSheet.js @@ -1,4 +1,4 @@ -import React, { useState } from "react"; +import React, { useCallback, useState } from "react"; import { StyleSheet, View, @@ -68,301 +68,289 @@ const ReaderSheet = ({ { value: "right", icon: "format-align-right" }, ]; - const FirstRoute = () => ( - - - - Text size - - - dispatch(setReaderSettings("textSize", value)) - } - /> - - - - ( + + - - Color - - - - {presetThemes.map((item, index) => ( - { - dispatch( - setReaderSettings( - "theme", - item.value - ) - ); - dispatch( - setReaderSettings( - "textColor", - item.textColor - ) - ); - }} - /> - ))} - - - - - - Text align - - - {textAlignments.map((item) => ( - - dispatch( - setReaderSettings( - "textAlign", - item.value - ) - ) - } - /> - ))} - - - - - Padding - - - - dispatch( - setReaderSettings( - "padding", - reader.padding - 1 - ) - ) - } - style={{ marginVertical: 0 }} - /> - - {`${reader.padding}%`} - - = 10 ? true : false} - onPress={() => - dispatch( - setReaderSettings( - "padding", - reader.padding + 1 - ) - ) - } - style={{ marginVertical: 0 }} - /> - - - - - Line height - - - - dispatch( - setReaderSettings( - "lineHeight", - reader.lineHeight - 0.1 - ) - ) - } - style={{ marginVertical: 0 }} - /> - - {`${Math.round(reader.lineHeight * 10) / 10}%`} - - = 2 ? true : false} - onPress={() => - dispatch( - setReaderSettings( - "lineHeight", - reader.lineHeight + 0.1 - ) - ) - } - style={{ marginVertical: 0 }} - /> - - - - Font style + Text size - + dispatch(setReaderSettings("textSize", value)) + } + /> + + + + - {fonts.map((font) => ( - - + Color + + + + {presetThemes.map((item, index) => ( + { + dispatch( + setReaderSettings( + "theme", + item.value + ) + ); + dispatch( + setReaderSettings( + "textColor", + item.textColor + ) + ); + }} + /> + ))} + + + + + + Text align + + + {textAlignments.map((item) => ( + dispatch( setReaderSettings( - "fontFamily", - font.fontFamily + "textAlign", + item.value ) ) } - android_ripple={{ - color: theme.rippleColor, - }} + /> + ))} + + + + + Padding + + + + dispatch( + setReaderSettings( + "padding", + reader.padding - 1 + ) + ) + } + style={{ marginVertical: 0 }} + /> + + {`${reader.padding}%`} + + = 10 ? true : false} + onPress={() => + dispatch( + setReaderSettings( + "padding", + reader.padding + 1 + ) + ) + } + style={{ marginVertical: 0 }} + /> + + + + + Line height + + + + dispatch( + setReaderSettings( + "lineHeight", + reader.lineHeight - 0.1 + ) + ) + } + style={{ marginVertical: 0 }} + /> + + {`${Math.round(reader.lineHeight * 10) / 10}%`} + + = 2 ? true : false} + onPress={() => + dispatch( + setReaderSettings( + "lineHeight", + reader.lineHeight + 0.1 + ) + ) + } + style={{ marginVertical: 0 }} + /> + + + + + Font style + + + {fonts.map((font) => ( + - + dispatch( + setReaderSettings( + "fontFamily", + font.fontFamily + ) + ) + } + android_ripple={{ + color: theme.rippleColor, }} > - {font.name} - - - - ))} - - + + {font.name} + + + + ))} + + + - + ), + [reader] ); - const SecondRoute = () => ( - - - dispatch( - setAppSettings( - "useWebViewForChapter", - !useWebViewForChapter - ) - ) - } - > - - Use WebView - - + const SecondRoute = useCallback( + () => ( + + dispatch( setAppSettings( "useWebViewForChapter", @@ -370,31 +358,31 @@ const ReaderSheet = ({ ) ) } - color={theme.colorAccent} - /> - - - dispatch( - setAppSettings( - "showScrollPercentage", - !showScrollPercentage - ) - ) - } - > - - Show progress percentage - - + + Use WebView + + + dispatch( + setAppSettings( + "useWebViewForChapter", + !useWebViewForChapter + ) + ) + } + color={theme.colorAccent} + /> + + dispatch( setAppSettings( "showScrollPercentage", @@ -402,36 +390,61 @@ const ReaderSheet = ({ ) ) } - color={theme.colorAccent} - /> - - {!useWebViewForChapter && ( - - dispatch(setAppSettings("textSelectable", !selectText)) - } > - Select text + Show progress percentage dispatch( - setAppSettings("textSelectable", !selectText) + setAppSettings( + "showScrollPercentage", + !showScrollPercentage + ) ) } color={theme.colorAccent} /> - )} - + {!useWebViewForChapter && ( + + dispatch( + setAppSettings("textSelectable", !selectText) + ) + } + > + + Select text + + + dispatch( + setAppSettings( + "textSelectable", + !selectText + ) + ) + } + color={theme.colorAccent} + /> + + )} + + ), + [useWebViewForChapter, selectText, showScrollPercentage] ); const renderScene = SceneMap({ @@ -467,6 +480,8 @@ const ReaderSheet = ({ ref={bottomSheetRef} draggableRange={{ top: 400, bottom: 0 }} snappingPoints={[0, 400]} + showBackdrop={true} + backdropOpacity={0} > { let novelChapters = []; - let firstChapterNo, totalChapters; + let totalChapters; totalChapters = $(".header-stats > span").first().text().match(/\d+/)[0]; - firstChapterNo = $(".chapter-no").first().text().match(/\d+/)[0]; - for (let i = firstChapterNo; i <= totalChapters; i++) { + for (let i = 1; i <= totalChapters; i++) { const chapterName = "Chapter " + i; const releaseDate = null; diff --git a/src/sources/helpers/cleanHtml.js b/src/sources/helpers/cleanHtml.js index 139757f1..290261eb 100644 --- a/src/sources/helpers/cleanHtml.js +++ b/src/sources/helpers/cleanHtml.js @@ -3,7 +3,7 @@ export const cleanHtml = (html) => { text = text .replace( - /style="((?:color|font-family|line-height|font-size|text-align).*?)"/gi, + /style="((?:font-family|line-height|font-size|text-align).*?)"/gi, "" ) .replace(/class=".*?"/gi, "")