From e958b0fa09d95f31879e965ce018c8d5cd3bd8d8 Mon Sep 17 00:00:00 2001 From: Rajarshee Chatterjee Date: Sat, 1 May 2021 07:57:16 +0530 Subject: [PATCH] Refactor --- App.js | 54 +++--- src/Hooks/setStatusBarStyle.js | 7 + src/Navigators/BottomNavigator.js | 92 ++++++++++ src/Navigators/Main.js | 64 +++++++ src/Navigators/More.js | 28 +++ src/database/queries/NovelQueries.js | 2 +- src/navigation/Router.js | 172 ------------------ src/redux/chapter/chapter.actions.js | 2 +- src/redux/novel/novel.actions.js | 4 +- src/redux/source/source.actions.js | 2 +- src/redux/theme/theme.reducer.js | 2 +- src/redux/tracker/tracker.actions.js | 4 +- src/screens/Browse/Browse.js | 2 +- src/screens/Chapter/Chapter.js | 6 +- src/screens/Chapter/components/BottomSheet.js | 4 +- src/screens/Extension/Extension.js | 8 +- src/screens/History/History.js | 4 +- src/screens/History/components/HistoryCard.js | 4 +- src/screens/Library/Library.js | 10 +- src/screens/More/About.js | 8 +- src/screens/More/More.js | 10 +- src/screens/More/Settings.js | 4 +- src/screens/More/Trackers.js | 6 +- src/screens/More/components/GridSizeModal.js | 2 +- src/screens/Novel/components/ChapterCard.js | 2 +- .../Novel/components/Info/ReadButton.js | 2 +- .../Tracker/SetTrackChaptersDialog.js | 2 +- .../components/Tracker/SetTrackScoreDialog.js | 2 +- .../Tracker/SetTrackStatusDialog.js | 2 +- .../components/Tracker/TrackSearchDialog.js | 2 +- src/screens/Updates/Updates.js | 2 +- src/screens/Updates/components/Appbar.js | 2 +- src/screens/Updates/components/UpdateCard.js | 2 +- .../Source.js => services/Source/source.js} | 0 .../Trackers/myAnimeList.js} | 0 src/services/updates.js | 4 +- src/{ => services}/utils/constants.js | 0 src/theme/hooks/useTheme.js | 7 + 38 files changed, 271 insertions(+), 259 deletions(-) create mode 100644 src/Hooks/setStatusBarStyle.js create mode 100644 src/Navigators/BottomNavigator.js create mode 100644 src/Navigators/Main.js create mode 100644 src/Navigators/More.js delete mode 100644 src/navigation/Router.js rename src/{source/Source.js => services/Source/source.js} (100%) rename src/{trackers/MyAnimeList.js => services/Trackers/myAnimeList.js} (100%) rename src/{ => services}/utils/constants.js (100%) create mode 100644 src/theme/hooks/useTheme.js diff --git a/App.js b/App.js index c1f6c40e..88be7239 100644 --- a/App.js +++ b/App.js @@ -1,21 +1,17 @@ -import React, { useState, useEffect } from "react"; -import { StatusBar } from "expo-status-bar"; +import React, { useEffect } from "react"; import { NavigationContainer } from "@react-navigation/native"; -import * as Font from "expo-font"; -import AppLoading from "expo-app-loading"; - -import Router from "./src/navigation/Router"; +import { useFonts } from "expo-font"; +import { Provider as PaperProvider } from "react-native-paper"; +import Main from "./src/Navigators/Main"; // Redux -import { Provider, useSelector } from "react-redux"; +import { Provider } from "react-redux"; import { persistor, store } from "./src/redux/store"; import { PersistGate } from "redux-persist/lib/integration/react"; import { createDB, deleteDb } from "./src/database/DBHelper"; -import { checkGithubRelease } from "./src/services/updates"; -import NewUpdateDialog from "./src/components/NewUpdateDialog"; -const getFonts = () => - Font.loadAsync({ +const App = () => { + const [loaded] = useFonts({ "pt-sans-bold": require("./assets/fonts/PTSansNarrow-Bold.ttf"), "arbutus-slab": require("./assets/fonts/ArbutusSlab-Regular.ttf"), domine: require("./assets/fonts/Domine-VariableFont_wght.ttf"), @@ -25,31 +21,23 @@ const getFonts = () => "pt-serif": require("./assets/fonts/PTSerif-Regular.ttf"), }); -const App = () => { - const [fontsLoaded, setFontsLoaded] = useState(false); - useEffect(() => createDB(), []); - if (fontsLoaded) { - return ( - - - - - - - - - ); - } else { - return ( - warn(error)} - onFinish={() => setFontsLoaded(true)} - /> - ); + if (!loaded) { + return null; } + + return ( + + + + +
+ + + + + ); }; export default App; diff --git a/src/Hooks/setStatusBarStyle.js b/src/Hooks/setStatusBarStyle.js new file mode 100644 index 00000000..e0b23880 --- /dev/null +++ b/src/Hooks/setStatusBarStyle.js @@ -0,0 +1,7 @@ +import { setStatusBarStyle as setExpoStatusBarStyle } from "expo-status-bar"; +import { useTheme } from "../Theme/hooks/useTheme"; + +export const setStatusBarStyle = () => { + const theme = useTheme(); + setExpoStatusBarStyle(theme.id === 1 ? "dark" : "light"); +}; diff --git a/src/Navigators/BottomNavigator.js b/src/Navigators/BottomNavigator.js new file mode 100644 index 00000000..4b679fae --- /dev/null +++ b/src/Navigators/BottomNavigator.js @@ -0,0 +1,92 @@ +import React from "react"; +import { createMaterialBottomTabNavigator } from "@react-navigation/material-bottom-tabs"; +import MaterialCommunityIcons from "react-native-vector-icons/MaterialCommunityIcons"; +import { useTheme } from "../Theme/hooks/useTheme"; + +import Library from "../screens/Library/Library"; +import Updates from "../screens/Updates/Updates"; +import History from "../screens/History/History"; +import Browse from "../screens/Browse/Browse"; +import More from "../screens/More/More"; + +const Tab = createMaterialBottomTabNavigator(); + +const BottomNavigator = () => { + const theme = useTheme(); + + return ( + + ( + + ), + }} + /> + ( + + ), + }} + /> + ( + + ), + }} + /> + ( + + ), + }} + /> + ( + + ), + }} + /> + + ); +}; + +export default BottomNavigator; diff --git a/src/Navigators/Main.js b/src/Navigators/Main.js new file mode 100644 index 00000000..eccb3eb9 --- /dev/null +++ b/src/Navigators/Main.js @@ -0,0 +1,64 @@ +import React, { useEffect, useState } from "react"; +import { + createStackNavigator, + TransitionPresets, +} from "@react-navigation/stack"; + +import BottomNavigator from "./BottomNavigator"; +import Novel from "../screens/Novel/Novel"; +import Chapter from "../screens/Chapter/Chapter"; +import Extension from "../screens/Extension/Extension"; +import MoreStack from "./More"; + +import { setStatusBarStyle } from "../Hooks/setStatusBarStyle"; +import { checkGithubRelease } from "../Services/updates"; + +const Stack = createStackNavigator(); + +const stackNavigatorConfig = { + headerShown: false, + ...TransitionPresets.RevealFromBottomAndroid, +}; + +const MainNavigator = () => { + const [newUpdate, setNewUpdate] = useState(); + setStatusBarStyle(); + + useEffect(() => { + checkGithubRelease().then((res) => setNewUpdate(res)); + }, []); + + return ( + <> + {newUpdate && newUpdate.tag_name === "v1.0.17" && ( + + )} + + + + + + + + + + ); +}; + +export default MainNavigator; diff --git a/src/Navigators/More.js b/src/Navigators/More.js new file mode 100644 index 00000000..b99662d5 --- /dev/null +++ b/src/Navigators/More.js @@ -0,0 +1,28 @@ +import React from "react"; +import { + createStackNavigator, + TransitionPresets, +} from "@react-navigation/stack"; + +import About from "../screens/More/About"; +import Settings from "../screens/More/Settings"; +import Trackers from "../screens/More/Trackers"; + +const Stack = createStackNavigator(); + +const stackNavigatorConfig = { + headerShown: false, + ...TransitionPresets.RevealFromBottomAndroid, +}; + +const MoreStack = () => { + return ( + + + + + + ); +}; + +export default MoreStack; diff --git a/src/database/queries/NovelQueries.js b/src/database/queries/NovelQueries.js index b9c01803..bb902d5c 100644 --- a/src/database/queries/NovelQueries.js +++ b/src/database/queries/NovelQueries.js @@ -2,7 +2,7 @@ import * as FileSystem from "expo-file-system"; import * as SQLite from "expo-sqlite"; import { getLibrary } from "./LibraryQueries"; -import { fetchChapters } from "../../source/Source"; +import { fetchChapters } from "../../Services/Source/source"; import { insertChapters } from "./ChapterQueries"; const db = SQLite.openDatabase("lnreader.db"); diff --git a/src/navigation/Router.js b/src/navigation/Router.js deleted file mode 100644 index a971f698..00000000 --- a/src/navigation/Router.js +++ /dev/null @@ -1,172 +0,0 @@ -import React, { useEffect, useState } from "react"; -import { - createStackNavigator, - TransitionPresets, -} from "@react-navigation/stack"; -import { createMaterialBottomTabNavigator } from "@react-navigation/material-bottom-tabs"; -import { Provider } from "react-native-paper"; -import { setStatusBarStyle } from "expo-status-bar"; - -import MaterialCommunityIcons from "react-native-vector-icons/MaterialCommunityIcons"; - -import Library from "../screens/Library/Library"; -import Updates from "../screens/Updates/Updates"; -import History from "../screens/History/History"; -import Browse from "../screens/Browse/Browse"; - -import More from "../screens/More/More"; -import About from "../screens/More/About"; -import Settings from "../screens/More/Settings"; -import Trackers from "../screens/More/Trackers"; - -import NovelItem from "../screens/Novel/Novel"; -import ChapterItem from "../screens/Chapter/Chapter"; - -import Extension from "../screens/Extension/Extension"; - -const Stack = createStackNavigator(); - -const Tab = createMaterialBottomTabNavigator(); - -const stackNavigatorConfig = { - headerShown: false, - ...TransitionPresets.RevealFromBottomAndroid, -}; - -const SettingsStack = () => { - return ( - - - - - - ); -}; - -import { useSelector } from "react-redux"; -import { checkGithubRelease } from "../services/updates"; -import NewUpdateDialog from "../components/NewUpdateDialog"; - -const BottomNavigator = () => { - const theme = useSelector((state) => state.themeReducer.theme); - - return ( - - ( - - ), - }} - /> - - ( - - ), - }} - /> - ( - - ), - }} - /> - ( - - ), - }} - /> - ( - - ), - }} - /> - - ); -}; - -const Router = () => { - const theme = useSelector((state) => state.themeReducer.theme); - - const [newUpdate, setNewUpdate] = useState(); - - useEffect(() => { - setStatusBarStyle(theme.id === 1 ? "dark" : "light"); - checkGithubRelease().then((res) => setNewUpdate(res)); - }, []); - - return ( - - {newUpdate && newUpdate.tag_name !== "v1.0.15" && ( - - )} - - - - - - - {/* */} - - - ); -}; - -export default Router; diff --git a/src/redux/chapter/chapter.actions.js b/src/redux/chapter/chapter.actions.js index 13dac596..cd91985d 100644 --- a/src/redux/chapter/chapter.actions.js +++ b/src/redux/chapter/chapter.actions.js @@ -9,7 +9,7 @@ import { CHAPTER_DELETED, } from "./chapter.types"; -import { fetchChapter } from "../../source/Source"; +import { fetchChapter } from "../../Services/Source/source"; import { markChapterRead, diff --git a/src/redux/novel/novel.actions.js b/src/redux/novel/novel.actions.js index dcb38dbb..a9d8c209 100644 --- a/src/redux/novel/novel.actions.js +++ b/src/redux/novel/novel.actions.js @@ -16,8 +16,8 @@ import { UPDATE_NOVEL, } from "./novel.types"; -import { updateNovel } from "../../services/updates"; -import { fetchChapter, fetchNovel } from "../../source/Source"; +import { updateNovel } from "../../Services/updates"; +import { fetchChapter, fetchNovel } from "../../Services/Source/source"; import { followNovel, insertNovel, diff --git a/src/redux/source/source.actions.js b/src/redux/source/source.actions.js index ed8649f9..6631af13 100644 --- a/src/redux/source/source.actions.js +++ b/src/redux/source/source.actions.js @@ -1,5 +1,5 @@ import { GET_SOURCES } from "./source.types"; -import { fetchSources } from "../../source/Source"; +import { fetchSources } from "../../Services/Source/source"; export const getSourcesAction = () => async (dispatch) => { const res = await fetchSources(); diff --git a/src/redux/theme/theme.reducer.js b/src/redux/theme/theme.reducer.js index cf05053e..40a26eb1 100644 --- a/src/redux/theme/theme.reducer.js +++ b/src/redux/theme/theme.reducer.js @@ -3,7 +3,7 @@ import { lightTheme, darkTheme, midnightDuskTheme, -} from "../../theme/theme"; +} from "../../Theme/theme"; const themes = { 0: amoledDarkTheme, diff --git a/src/redux/tracker/tracker.actions.js b/src/redux/tracker/tracker.actions.js index 476085a0..7decdf72 100644 --- a/src/redux/tracker/tracker.actions.js +++ b/src/redux/tracker/tracker.actions.js @@ -1,4 +1,4 @@ -import { findListItem, updateItem } from "../../trackers/MyAnimeList"; +import { findListItem, updateItem } from "../../Services/Trackers/myAnimeList"; import { REMOVE_TRACKER, SET_TRACKER, @@ -8,7 +8,7 @@ import { UPDATE_CHAPTERS_READ, } from "./tracker.types"; -import { updateMalChaptersRead } from "../../trackers/MyAnimeList"; +import { updateMalChaptersRead } from "../../Services/Trackers/myAnimeList"; export const setTracker = (res) => async (dispatch) => { dispatch({ diff --git a/src/screens/Browse/Browse.js b/src/screens/Browse/Browse.js index d700dc27..833ede7d 100644 --- a/src/screens/Browse/Browse.js +++ b/src/screens/Browse/Browse.js @@ -1,6 +1,6 @@ import React, { useEffect } from "react"; import { StyleSheet, View, FlatList, ActivityIndicator } from "react-native"; -import { Appbar } from "../../components/Appbar"; +import { Appbar } from "../../Components/Appbar"; import { connect } from "react-redux"; import { getSourcesAction } from "../../redux/source/source.actions"; diff --git a/src/screens/Chapter/Chapter.js b/src/screens/Chapter/Chapter.js index 8e6279f9..1e5297ad 100644 --- a/src/screens/Chapter/Chapter.js +++ b/src/screens/Chapter/Chapter.js @@ -13,7 +13,7 @@ import { } from "../../redux/novel/novel.actions"; import { connect, useSelector, useDispatch } from "react-redux"; -import { parseChapterNumber } from "../../services/updates"; +import { parseChapterNumber } from "../../Services/updates"; import { updateChaptersRead } from "../../redux/tracker/tracker.actions"; const ChapterItem = ({ @@ -126,7 +126,7 @@ const ChapterItem = ({ size={26} disabled={!chapter.prevChapter} onPress={() => { - navigation.replace("ChapterItem", { + navigation.replace("Chapter", { chapterUrl: chapter.prevChapter, chapterId: chapterId - 1, extensionId, @@ -142,7 +142,7 @@ const ChapterItem = ({ size={26} disabled={!chapter.nextChapter} onPress={() => { - navigation.replace("ChapterItem", { + navigation.replace("Chapter", { chapterUrl: chapter.nextChapter, extensionId, novelUrl, diff --git a/src/screens/Chapter/components/BottomSheet.js b/src/screens/Chapter/components/BottomSheet.js index c220973d..dbcfb54a 100644 --- a/src/screens/Chapter/components/BottomSheet.js +++ b/src/screens/Chapter/components/BottomSheet.js @@ -3,7 +3,7 @@ import { Animated, StyleSheet, View, Text, Dimensions } from "react-native"; import { ToggleButton, IconButton, Chip } from "react-native-paper"; import Slider from "@react-native-community/slider"; import Bottomsheet from "rn-sliding-up-panel"; -import { fonts } from "../../../utils/constants"; +import { fonts } from "../../../Services/utils/constants"; import { connect } from "react-redux"; @@ -14,7 +14,7 @@ import { updateReaderTextSize, updateReaderTheme, } from "../../../redux/settings/settings.actions"; -import BottomSheetHandle from "../../../components/BottomSheetHandle"; +import BottomSheetHandle from "../../../Components/BottomSheetHandle"; const ChapterBottomSheet = ({ bottomSheetRef, diff --git a/src/screens/Extension/Extension.js b/src/screens/Extension/Extension.js index a7e1b5cc..1e7cd50f 100644 --- a/src/screens/Extension/Extension.js +++ b/src/screens/Extension/Extension.js @@ -3,9 +3,9 @@ import { StyleSheet, View, FlatList, ActivityIndicator } from "react-native"; import { Provider } from "react-native-paper"; import * as WebBrowser from "expo-web-browser"; -import NovelCover from "../../components/NovelCover"; -import EmptyView from "../../components/EmptyView"; -import { SearchAppbar } from "../../components/Appbar"; +import NovelCover from "../../Components/NovelCover"; +import EmptyView from "../../Components/EmptyView"; +import { SearchAppbar } from "../../Components/Appbar"; import { useSelector } from "react-redux"; @@ -104,7 +104,7 @@ const Extension = ({ navigation, route }) => { - navigation.navigate("NovelItem", { + navigation.navigate("Novel", { novelName: item.novelName, novelCover: item.novelCover, novelUrl: item.novelUrl, diff --git a/src/screens/History/History.js b/src/screens/History/History.js index 2d671113..c36d7a08 100644 --- a/src/screens/History/History.js +++ b/src/screens/History/History.js @@ -3,11 +3,11 @@ import { useFocusEffect } from "@react-navigation/native"; import { StyleSheet, View, FlatList, ActivityIndicator } from "react-native"; -import { Appbar } from "../../components/Appbar"; +import { Appbar } from "../../Components/Appbar"; import HistoryCard from "./components/HistoryCard"; import { connect } from "react-redux"; -import EmptyView from "../../components/EmptyView"; +import EmptyView from "../../Components/EmptyView"; import { getHistoryAction, diff --git a/src/screens/History/components/HistoryCard.js b/src/screens/History/components/HistoryCard.js index 93833356..8bcd3e8c 100644 --- a/src/screens/History/components/HistoryCard.js +++ b/src/screens/History/components/HistoryCard.js @@ -16,7 +16,7 @@ const HistoryCard = ({ item, deleteHistoryAction, navigation }) => { rippleColor={theme.rippleColor} borderless onPress={() => - navigation.navigate("NovelItem", { + navigation.navigate("Novel", { novelName: item.novelName, novelCover: item.novelCover, extensionId: item.extensionId, @@ -75,7 +75,7 @@ const HistoryCard = ({ item, deleteHistoryAction, navigation }) => { color={theme.textColorPrimary} style={{ marginRight: 10 }} onPress={() => - navigation.navigate("ChapterItem", { + navigation.navigate("Chapter", { chapterId: item.historyChapterId, chapterUrl: item.chapterUrl, extensionId: item.sourceId, diff --git a/src/screens/Library/Library.js b/src/screens/Library/Library.js index f046e61b..edf82759 100644 --- a/src/screens/Library/Library.js +++ b/src/screens/Library/Library.js @@ -11,16 +11,16 @@ import { FlatList } from "react-native-gesture-handler"; import { useFocusEffect } from "@react-navigation/native"; import { connect } from "react-redux"; -import NovelCover from "../../components/NovelCover"; -import EmptyView from "../../components/EmptyView"; +import NovelCover from "../../Components/NovelCover"; +import EmptyView from "../../Components/EmptyView"; import { getLibraryAction, searchLibraryAction, } from "../../redux/library/library.actions"; -import { SearchAppbar } from "../../components/Appbar"; +import { SearchAppbar } from "../../Components/Appbar"; import { setNovel } from "../../redux/novel/novel.actions"; -import { updateAllNovels } from "../../services/updates"; +import { updateAllNovels } from "../../Services/updates"; const LibraryScreen = ({ navigation, @@ -54,7 +54,7 @@ const LibraryScreen = ({ }; const redirectToNovel = (item) => { - navigation.navigate("NovelItem", item); + navigation.navigate("Novel", item); setNovel(item); }; diff --git a/src/screens/More/About.js b/src/screens/More/About.js index 651869ad..1bbdadd7 100644 --- a/src/screens/More/About.js +++ b/src/screens/More/About.js @@ -2,10 +2,10 @@ import React from "react"; import { View } from "react-native"; import * as Linking from "expo-linking"; -import { Appbar } from "../../components/Appbar"; +import { Appbar } from "../../Components/Appbar"; import { useSelector } from "react-redux"; -import { Divider, ListItem, ListSection } from "../../components/List"; +import { Divider, ListItem, ListSection } from "../../Components/List"; const AboutScreen = ({ navigation }) => { const theme = useSelector((state) => state.themeReducer.theme); @@ -17,12 +17,12 @@ const AboutScreen = ({ navigation }) => { { const theme = useSelector((state) => state.themeReducer.theme); @@ -37,7 +37,7 @@ const MoreScreen = ({ navigation }) => { title="Settings" icon="cog-outline" onPress={() => - navigation.navigate("SettingsStack", { + navigation.navigate("MoreStack", { screen: "Settings", }) } @@ -47,7 +47,7 @@ const MoreScreen = ({ navigation }) => { title="Tracking" icon="sync" onPress={() => - navigation.navigate("SettingsStack", { + navigation.navigate("MoreStack", { screen: "Trackers", }) } @@ -57,7 +57,7 @@ const MoreScreen = ({ navigation }) => { title="About" icon="information-outline" onPress={() => - navigation.navigate("SettingsStack", { + navigation.navigate("MoreStack", { screen: "About", }) } diff --git a/src/screens/More/Settings.js b/src/screens/More/Settings.js index 34b04d01..e4519244 100644 --- a/src/screens/More/Settings.js +++ b/src/screens/More/Settings.js @@ -14,13 +14,13 @@ import { restoreFromBackup, } from "../../database/queries/NovelQueries"; -import { Appbar } from "../../components/Appbar"; +import { Appbar } from "../../Components/Appbar"; import { Divider, ListItem, ListSection, ListSubHeader, -} from "../../components/List"; +} from "../../Components/List"; import DisplayModeModal from "./components/DisplayModeModal"; import GridSizeModal from "./components/GridSizeModal"; import ThemeModal from "./components/ThemeModal"; diff --git a/src/screens/More/Trackers.js b/src/screens/More/Trackers.js index cfe166ec..898d133b 100644 --- a/src/screens/More/Trackers.js +++ b/src/screens/More/Trackers.js @@ -7,8 +7,8 @@ import { myAnimeListConfig, getAccessToken, malTokenWatcher, -} from "../../trackers/MyAnimeList"; -import { Appbar } from "../../components/Appbar"; +} from "../../Services/Trackers/myAnimeList"; +import { Appbar } from "../../Components/Appbar"; import { useSelector, useDispatch } from "react-redux"; import { @@ -16,7 +16,7 @@ import { ListItem, ListSection, ListSubHeader, -} from "../../components/List"; +} from "../../Components/List"; import { removeTracker, setTracker } from "../../redux/tracker/tracker.actions"; const TrackerScreen = ({ navigation }) => { diff --git a/src/screens/More/components/GridSizeModal.js b/src/screens/More/components/GridSizeModal.js index c08df030..92427107 100644 --- a/src/screens/More/components/GridSizeModal.js +++ b/src/screens/More/components/GridSizeModal.js @@ -2,7 +2,7 @@ import React from "react"; import { Text, StyleSheet } from "react-native"; import { Portal, Modal } from "react-native-paper"; import Slider from "@react-native-community/slider"; -import { RadioButton, RadioButtonGroup } from "../../../components/RadioButton"; +import { RadioButton, RadioButtonGroup } from "../../../Components/RadioButton"; const GridSizeModal = ({ itemsPerRow, diff --git a/src/screens/Novel/components/ChapterCard.js b/src/screens/Novel/components/ChapterCard.js index e88c8c4e..25116920 100644 --- a/src/screens/Novel/components/ChapterCard.js +++ b/src/screens/Novel/components/ChapterCard.js @@ -89,7 +89,7 @@ const ChapterCard = ({ - navigation.navigate("ChapterItem", { + navigation.navigate("Chapter", { chapterId: chapter.chapterId, chapterUrl: chapter.chapterUrl, extensionId, diff --git a/src/screens/Novel/components/Info/ReadButton.js b/src/screens/Novel/components/Info/ReadButton.js index 38cccc93..d99e3093 100644 --- a/src/screens/Novel/components/Info/ReadButton.js +++ b/src/screens/Novel/components/Info/ReadButton.js @@ -17,7 +17,7 @@ const ReadButton = ({ navigation, novel, chapters, theme }) => { uppercase={false} labelStyle={{ letterSpacing: 0 }} onPress={() => { - navigation.navigate("ChapterItem", { + navigation.navigate("Chapter", { chapterId: lastRead.chapterId, chapterUrl: lastRead.chapterUrl, novelUrl: novel.novelUrl, diff --git a/src/screens/Novel/components/Tracker/SetTrackChaptersDialog.js b/src/screens/Novel/components/Tracker/SetTrackChaptersDialog.js index 33412f2a..6dd040fe 100644 --- a/src/screens/Novel/components/Tracker/SetTrackChaptersDialog.js +++ b/src/screens/Novel/components/Tracker/SetTrackChaptersDialog.js @@ -4,7 +4,7 @@ import { Modal, TextInput } from "react-native-paper"; import { RadioButton, RadioButtonGroup, -} from "../../../../components/RadioButton"; +} from "../../../../Components/RadioButton"; const SetTrackChaptersDialog = ({ trackItem, diff --git a/src/screens/Novel/components/Tracker/SetTrackScoreDialog.js b/src/screens/Novel/components/Tracker/SetTrackScoreDialog.js index 4ae5d456..efe43f1f 100644 --- a/src/screens/Novel/components/Tracker/SetTrackScoreDialog.js +++ b/src/screens/Novel/components/Tracker/SetTrackScoreDialog.js @@ -4,7 +4,7 @@ import { Modal } from "react-native-paper"; import { RadioButton, RadioButtonGroup, -} from "../../../../components/RadioButton"; +} from "../../../../Components/RadioButton"; const SetTrackScoreDialog = ({ trackItem, diff --git a/src/screens/Novel/components/Tracker/SetTrackStatusDialog.js b/src/screens/Novel/components/Tracker/SetTrackStatusDialog.js index 5439e000..853e8062 100644 --- a/src/screens/Novel/components/Tracker/SetTrackStatusDialog.js +++ b/src/screens/Novel/components/Tracker/SetTrackStatusDialog.js @@ -4,7 +4,7 @@ import { Modal } from "react-native-paper"; import { RadioButton, RadioButtonGroup, -} from "../../../../components/RadioButton"; +} from "../../../../Components/RadioButton"; const SetTrackStatusDialog = ({ trackItem, diff --git a/src/screens/Novel/components/Tracker/TrackSearchDialog.js b/src/screens/Novel/components/Tracker/TrackSearchDialog.js index af6a2ec0..ce0cff09 100644 --- a/src/screens/Novel/components/Tracker/TrackSearchDialog.js +++ b/src/screens/Novel/components/Tracker/TrackSearchDialog.js @@ -1,7 +1,7 @@ import React, { useEffect, useState } from "react"; import { StyleSheet, Text, View, Image, ActivityIndicator } from "react-native"; import { Button, Modal, TextInput, TouchableRipple } from "react-native-paper"; -import { searchNovels } from "../../../../trackers/MyAnimeList"; +import { searchNovels } from "../../../../Services/Trackers/myAnimeList"; import { useSelector, useDispatch } from "react-redux"; import { ScrollView } from "react-native-gesture-handler"; import { trackNovel } from "../../../../redux/tracker/tracker.actions"; diff --git a/src/screens/Updates/Updates.js b/src/screens/Updates/Updates.js index 59c3846f..fcebb14f 100644 --- a/src/screens/Updates/Updates.js +++ b/src/screens/Updates/Updates.js @@ -3,7 +3,7 @@ import { useFocusEffect } from "@react-navigation/native"; import { StyleSheet, View, FlatList, ActivityIndicator } from "react-native"; import { connect } from "react-redux"; -import EmptyView from "../../components/EmptyView"; +import EmptyView from "../../Components/EmptyView"; import { getUpdatesAction } from "../../redux/updates/updates.actions"; import { Appbar } from "./components/Appbar"; import UpdateCard from "./components/UpdateCard"; diff --git a/src/screens/Updates/components/Appbar.js b/src/screens/Updates/components/Appbar.js index 5cfae472..c47f7600 100644 --- a/src/screens/Updates/components/Appbar.js +++ b/src/screens/Updates/components/Appbar.js @@ -2,7 +2,7 @@ import React from "react"; import { Appbar as MaterialAppbar } from "react-native-paper"; import { useSelector } from "react-redux"; -import { updateAllNovels } from "../../../services/updates"; +import { updateAllNovels } from "../../../Services/updates"; export const Appbar = () => { const theme = useSelector((state) => state.themeReducer.theme); diff --git a/src/screens/Updates/components/UpdateCard.js b/src/screens/Updates/components/UpdateCard.js index 237f5ed6..b944f794 100644 --- a/src/screens/Updates/components/UpdateCard.js +++ b/src/screens/Updates/components/UpdateCard.js @@ -16,7 +16,7 @@ const UpdateCard = ({ item }) => { style={styles.updateCard} onPress={() => // console.log(item); - navigation.navigate("ChapterItem", { + navigation.navigate("Chapter", { chapterId: item.chapterId, chapterUrl: item.chapterUrl, extensionId: item.sourceId, diff --git a/src/source/Source.js b/src/services/Source/source.js similarity index 100% rename from src/source/Source.js rename to src/services/Source/source.js diff --git a/src/trackers/MyAnimeList.js b/src/services/Trackers/myAnimeList.js similarity index 100% rename from src/trackers/MyAnimeList.js rename to src/services/Trackers/myAnimeList.js diff --git a/src/services/updates.js b/src/services/updates.js index e7f26738..de49ab45 100644 --- a/src/services/updates.js +++ b/src/services/updates.js @@ -1,10 +1,8 @@ -import React from "react"; import * as SQLite from "expo-sqlite"; import { getLibrary } from "../database/queries/LibraryQueries"; -import { fetchChapters, fetchNovel } from "../source/Source"; +import { fetchChapters, fetchNovel } from "../Services/Source/source"; const db = SQLite.openDatabase("lnreader.db"); import { ToastAndroid } from "react-native"; -import NewUpdateDialog from "../components/NewUpdateDialog"; export const checkGithubRelease = async () => { const res = await fetch( diff --git a/src/utils/constants.js b/src/services/utils/constants.js similarity index 100% rename from src/utils/constants.js rename to src/services/utils/constants.js diff --git a/src/theme/hooks/useTheme.js b/src/theme/hooks/useTheme.js new file mode 100644 index 00000000..6c988502 --- /dev/null +++ b/src/theme/hooks/useTheme.js @@ -0,0 +1,7 @@ +import { useSelector } from "react-redux"; + +export const useTheme = () => { + const currentTheme = useSelector((state) => state.themeReducer.theme); + + return currentTheme; +};