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/`;