diff --git a/App.js b/App.js
index 93b348b0..186f2d3c 100644
--- a/App.js
+++ b/App.js
@@ -18,6 +18,7 @@ import { persistor, store } from '@redux/store';
import AppErrorBoundary from '@components/AppErrorBoundary/AppErrorBoundary';
import Main from './src/navigators/Main';
+import { BottomSheetModalProvider } from '@gorhom/bottom-sheet';
Notifications.setNotificationHandler({
handleNotification: async () => {
@@ -42,8 +43,10 @@ const App = () => {
-
-
+
+
+
+
diff --git a/src/components/BottomSheet/BottomSheet.tsx b/src/components/BottomSheet/BottomSheet.tsx
index 54d2f63b..79bbe993 100644
--- a/src/components/BottomSheet/BottomSheet.tsx
+++ b/src/components/BottomSheet/BottomSheet.tsx
@@ -1,49 +1,41 @@
-import React, { ReactElement, Ref, useCallback } from 'react';
-import { overlay } from 'react-native-paper';
-import { default as BS, BottomSheetBackdrop } from '@gorhom/bottom-sheet';
+import React, { Ref, useCallback } from 'react';
+import {
+ BottomSheetBackdrop,
+ BottomSheetBackdropProps,
+ BottomSheetModal,
+ BottomSheetModalProps,
+} from '@gorhom/bottom-sheet';
import { useSafeAreaInsets } from 'react-native-safe-area-context';
-import { ThemeColors } from '@theme/types';
-import { StyleSheet } from 'react-native';
-interface BottomSheetProps {
- bottomSheetRef: Ref;
- snapPoints: Array;
- height: number;
- theme: ThemeColors;
- children: ReactElement;
+interface BottomSheetProps extends Omit {
+ bottomSheetRef: Ref | null;
}
-const BottomSheet: React.FC = ({
- bottomSheetRef,
- snapPoints,
- height,
- theme,
- children,
-}) => {
+const BottomSheet: React.FC = props => {
const { bottom } = useSafeAreaInsets();
+
const renderBackdrop = useCallback(
- props => ,
+ (backdropProps: BottomSheetBackdropProps) => (
+
+ ),
[],
);
+
return (
-
- {children}
-
+ {props.children}
+
);
};
-const styles = StyleSheet.create({
- handle: {
- display: 'none',
- },
-});
+
export default BottomSheet;
diff --git a/src/screens/BrowseSourceScreen/BrowseSourceScreen.tsx b/src/screens/BrowseSourceScreen/BrowseSourceScreen.tsx
index 93c13d41..005c7a21 100644
--- a/src/screens/BrowseSourceScreen/BrowseSourceScreen.tsx
+++ b/src/screens/BrowseSourceScreen/BrowseSourceScreen.tsx
@@ -1,11 +1,11 @@
import React, { useCallback, useRef } from 'react';
import { useNavigation } from '@react-navigation/native';
-import { FAB, Portal } from 'react-native-paper';
+import { FAB } from 'react-native-paper';
import { Container, ErrorScreenV2, SearchbarV2 } from '@components/index';
import NovelList from '@components/NovelList';
import NovelCover from '@components/NovelCover';
-import Bottomsheet from '@gorhom/bottom-sheet';
+import { BottomSheetModal } from '@gorhom/bottom-sheet';
import FilterBottomSheet from './components/FilterBottomSheet';
import { useCategorySettings, useSearch } from '@hooks';
@@ -104,7 +104,7 @@ const BrowseSourceScreen: React.FC = ({ route }) => {
);
const { bottom } = useSafeAreaInsets();
- const filterSheetRef = useRef(null);
+ const filterSheetRef = useRef(null);
return (
= ({ route }) => {
label={'Filter'}
uppercase={false}
color={theme.onPrimary}
- onPress={() => filterSheetRef?.current?.expand()}
+ onPress={() => filterSheetRef?.current?.present()}
+ />
+
-
-
-
>
) : null}
diff --git a/src/screens/BrowseSourceScreen/components/FilterBottomSheet.tsx b/src/screens/BrowseSourceScreen/components/FilterBottomSheet.tsx
index 1bcb1b68..4d52fa8f 100644
--- a/src/screens/BrowseSourceScreen/components/FilterBottomSheet.tsx
+++ b/src/screens/BrowseSourceScreen/components/FilterBottomSheet.tsx
@@ -2,7 +2,7 @@ import React, { Ref, useState } from 'react';
import { Pressable, StyleSheet, Text, View } from 'react-native';
import BottomSheet from '../../../components/BottomSheet/BottomSheet';
-import BottomSheetType, { BottomSheetView } from '@gorhom/bottom-sheet';
+import { BottomSheetModal, BottomSheetView } from '@gorhom/bottom-sheet';
import { useTheme } from '@hooks/useTheme';
import {
@@ -113,7 +113,7 @@ const FilterItem: React.FC = ({
};
interface BottomSheetProps {
- filterSheetRef: Ref | null;
+ filterSheetRef: Ref | null;
filtersValues: SourceFilter[] | undefined;
setFilters: (filters?: SelectedFilter) => void;
clearFilters: () => void;
@@ -131,12 +131,7 @@ const FilterBottomSheet: React.FC = ({
>();
return (
-
+
{
const [index, setIndex] = useState(0);
- const bottomSheetRef = useRef(null);
+ const bottomSheetRef = useRef(null);
const renderTabBar = (
props: SceneRendererProps & { navigationState: State },
@@ -176,7 +176,7 @@ const LibraryScreen = () => {
}
: {
iconName: 'filter-variant',
- onPress: () => bottomSheetRef.current?.expand(),
+ onPress: () => bottomSheetRef.current?.present(),
},
]}
theme={theme}
@@ -275,8 +275,8 @@ const LibraryScreen = () => {
refetchLibrary();
}}
/>
+
-
0}
actions={[
diff --git a/src/screens/library/components/LibraryBottomSheet/LibraryBottomSheet.tsx b/src/screens/library/components/LibraryBottomSheet/LibraryBottomSheet.tsx
index 183a628a..317d459d 100644
--- a/src/screens/library/components/LibraryBottomSheet/LibraryBottomSheet.tsx
+++ b/src/screens/library/components/LibraryBottomSheet/LibraryBottomSheet.tsx
@@ -18,14 +18,11 @@ import {
import { FlashList } from '@shopify/flash-list';
import { RadioButton } from '@components/RadioButton/RadioButton';
import { overlay } from 'react-native-paper';
-import {
- default as BottomSheetType,
- BottomSheetView,
-} from '@gorhom/bottom-sheet';
+import { BottomSheetView, BottomSheetModal } from '@gorhom/bottom-sheet';
import BottomSheet from '@components/BottomSheet/BottomSheet';
interface LibraryBottomSheetProps {
- bottomSheetRef: Ref | null;
+ bottomSheetRef: Ref | null;
}
const FirstRoute = () => {
@@ -207,12 +204,7 @@ const LibraryBottomSheet: React.FC = ({
});
return (
-
+
{
theme={theme}
dispatch={dispatch}
/>
-
-
+
+
);
diff --git a/src/screens/novel/components/Info/NovelInfoHeader.js b/src/screens/novel/components/Info/NovelInfoHeader.js
index 3f1fe6b8..e9cfbb52 100644
--- a/src/screens/novel/components/Info/NovelInfoHeader.js
+++ b/src/screens/novel/components/Info/NovelInfoHeader.js
@@ -113,7 +113,7 @@ const NovelInfoHeader = ({
deleteDownloadsSnackbar.setTrue();
}
}}
- handleTrackerSheet={() => trackerSheetRef.current.expand()}
+ handleTrackerSheet={() => trackerSheetRef.current.present()}
theme={theme}
/>
novelBottomSheetRef.current.expand()}
+ onPress={() => novelBottomSheetRef.current.present()}
android_ripple={{
color: color(theme.primary).alpha(0.12).string(),
}}
diff --git a/src/screens/novel/components/NovelBottomSheet.js b/src/screens/novel/components/NovelBottomSheet.js
index 9375daaa..cb56247a 100644
--- a/src/screens/novel/components/NovelBottomSheet.js
+++ b/src/screens/novel/components/NovelBottomSheet.js
@@ -165,12 +165,7 @@ const ChaptersSettingsSheet = ({
);
return (
-
+
{
return (
<>
-
+
{
position?.percentage || Math.round(minScroll.current) || 0
}
/>
-
-
-
+
{!hidden && (
<>
{
);
};
interface ReaderBottomSheetV2Props {
- bottomSheetRef: Ref | null;
+ bottomSheetRef: Ref | null;
}
const ReaderBottomSheetV2: React.FC = ({
@@ -203,12 +200,7 @@ const ReaderBottomSheetV2: React.FC = ({
);
return (
-
+
diff --git a/src/screens/reader/components/ReaderFooter.js b/src/screens/reader/components/ReaderFooter.js
index e070ffb8..af5000a3 100644
--- a/src/screens/reader/components/ReaderFooter.js
+++ b/src/screens/reader/components/ReaderFooter.js
@@ -89,7 +89,7 @@ const ChapterFooter = ({
readerSheetRef.current.snapToIndex(1)}
+ onPress={() => readerSheetRef.current.present()}
>