diff --git a/src/Components/BottomSheetHandle.js b/src/Components/BottomSheetHandle.js index 368ec5d9..6c28805d 100644 --- a/src/Components/BottomSheetHandle.js +++ b/src/Components/BottomSheetHandle.js @@ -1,23 +1,17 @@ import React from "react"; import { View } from "react-native"; -import { useSelector } from "react-redux"; -const BottomSheetHandle = () => { - const theme = useSelector((state) => state.settingsReducer.theme); - return ( - <> - - - ); -}; +const BottomSheetHandle = ({ theme }) => ( + +); export default BottomSheetHandle; diff --git a/src/Hooks/reduxHooks.js b/src/Hooks/reduxHooks.js index 3e96f622..18914ed4 100644 --- a/src/Hooks/reduxHooks.js +++ b/src/Hooks/reduxHooks.js @@ -1,4 +1,3 @@ -import { useEffect } from "react"; import { useSelector } from "react-redux"; const useTheme = () => { @@ -52,8 +51,8 @@ const usePreferences = (novelId) => { const novel = findNovel(novelId); if (novel) { - sort = novel.sort ?? ""; - filter = novel.filter ?? ""; + sort = novel.sort; + filter = novel.filter; } return { sort, filter }; diff --git a/src/Screens/Chapter/components/ReaderSheet.js b/src/Screens/Chapter/components/ReaderSheet.js index 862f581c..ca037560 100644 --- a/src/Screens/Chapter/components/ReaderSheet.js +++ b/src/Screens/Chapter/components/ReaderSheet.js @@ -24,7 +24,7 @@ const ReaderSheet = ({ theme, reader, dispatch, bottomSheetRef }) => { backdropOpacity={0} > - + { const item = route.params; - const { - sourceId, - novelUrl, - novelName, - novelCover, - followed, - novelId, - } = item; + const { sourceId, novelUrl, novelName, followed, novelId } = item; const theme = useTheme(); const dispatch = useDispatch(); @@ -40,14 +33,11 @@ const Novel = ({ route, navigation }) => { let chaptersSettingsSheetRef = useRef(null); let trackerSheetRef = useRef(null); - const { sort, filter } = usePreferences( - novelId || (!loading && novel.novelId) + const { sort = "ORDER BY chapterId ASC", filter = "" } = usePreferences( + novel.novelId ); - let lastRead = useContinueReading( - chapters, - novelId || (!loading && novel.novelId) - ); + let lastRead = useContinueReading(chapters, novel.novelId); useEffect(() => { dispatch( @@ -124,9 +114,9 @@ const Novel = ({ route, navigation }) => { dispatch={dispatch} sortAndFilterChapters={sortAndFilterChapters} novelId={novel.novelId} - savedSort={sort} + sort={sort} theme={theme} - savedFilter={filter} + filter={filter} /> { - const [sort, setSort] = useState(savedSort || "ORDER BY chapterId ASC"); - const [filter, setFilter] = useState(savedFilter || ""); - - const sortChapters = (val) => { - setSort(val); + const sortChapters = (val) => dispatch(sortAndFilterChapters(novelId, val, filter)); - }; - const filterChapters = (val) => { - setFilter(val); + const filterChapters = (val) => dispatch(sortAndFilterChapters(novelId, sort, val)); - }; const checkBoxStyle = { flexDirection: "row", alignItems: "center" }; @@ -42,12 +34,10 @@ const ChaptersSettingsSheet = ({ - + { const [downloadMenu, showDownloadMenu] = useState(false); - const tracker = useSelector((state) => state.trackerReducer.tracker); - const trackedNovels = useSelector( - (state) => state.trackerReducer.trackedNovels - ); + const { tracker, trackedNovels } = useTrackingStatus(); let isTracked = false; diff --git a/src/Screens/Updates/Updates.js b/src/Screens/Updates/Updates.js index 7dc8242b..fc69c4c9 100644 --- a/src/Screens/Updates/Updates.js +++ b/src/Screens/Updates/Updates.js @@ -16,12 +16,15 @@ import { import { Appbar } from "./components/Appbar"; import UpdatesItem from "./components/UpdatesItem"; import { useTheme } from "../../Hooks/reduxHooks"; +import { Searchbar } from "../../Components/Searchbar"; const Updates = ({ navigation }) => { const theme = useTheme(); const dispatch = useDispatch(); const { updates, loading } = useSelector((state) => state.updatesReducer); + const [searchText, setSearchText] = useState(""); + const [searchResults, setSearchResults] = useState([]); const [refreshing, setRefreshing] = useState(false); useFocusEffect( @@ -67,18 +70,41 @@ const Updates = ({ navigation }) => { /> ); + const clearSearchbar = () => { + setSearchText(""); + }; + + const onChangeText = (text) => { + setSearchText(text); + let results = updates.filter((update) => + update.novelName.toLowerCase().includes(text.toLowerCase()) + ); + setSearchResults(results); + }; + return ( <> - + {/* */} + + dispatch(updateLibraryAction())} + /> item.updateId.toString()} renderItem={renderItem} ListFooterComponent={ListFooterComponent()} diff --git a/src/Services/Source/source.js b/src/Services/Source/source.js index 44c2e672..3d17effa 100644 --- a/src/Services/Source/source.js +++ b/src/Services/Source/source.js @@ -1,3 +1,5 @@ +import { showToast } from "../../Hooks/showToast"; + export const fetchSources = async () => { const url = `https://lnreader-extensions.vercel.app/api/`;