diff --git a/components/moleculs/BottomSheetModal.tsx b/components/moleculs/BottomSheetModal.tsx index 34ac4871..2a6322a2 100644 --- a/components/moleculs/BottomSheetModal.tsx +++ b/components/moleculs/BottomSheetModal.tsx @@ -1,5 +1,5 @@ -import React, { forwardRef, useCallback, useState } from "react"; -import { StyleSheet, View } from "react-native"; +import React, { forwardRef, useCallback, useEffect, useState } from "react"; +import { BackHandler, StyleSheet, View } from "react-native"; import { observer } from "mobx-react-lite"; import { BottomSheetModalMethods, @@ -23,6 +23,8 @@ export const BottomSheetModal = observer( const theme = useTheme(); const [isOpen, handleAnimate] = useBackdrop(props.onAnimate); + useBottomSheetBackButton(isOpen); + return ( <> {isOpen && } @@ -59,6 +61,8 @@ export const BottomSheet = observer( const [isOpen, handleAnimate] = useBackdrop(props.onAnimate); + useBottomSheetBackButton(isOpen); + return ( <> {isOpen && } @@ -103,6 +107,18 @@ function useBackdrop(onAnimate: BottomSheetProps["onAnimate"]) { return [isOpen, handleAnimate] as const; } +function useBottomSheetBackButton(isOpen: boolean | undefined) { + useEffect(() => { + if (isOpen) { + const handler = BackHandler.addEventListener( + "hardwareBackPress", + () => true + ); + return () => handler.remove(); + } + }, [isOpen]); +} + const styles = StyleSheet.create({ background: { borderTopRightRadius: 30, diff --git a/screens/Profile/hooks/useBottomSheetBackButton.ts b/screens/Profile/hooks/useBottomSheetBackButton.ts deleted file mode 100644 index d42f3c82..00000000 --- a/screens/Profile/hooks/useBottomSheetBackButton.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { useEffect } from "react"; -import { BackHandler } from "react-native"; - -export default function useBottomSheetBackButton( - isOpen: boolean | undefined, - handleClose: () => void -) { - useEffect(() => { - if (isOpen) { - const handler = BackHandler.addEventListener("hardwareBackPress", () => { - handleClose(); - return true; - }); - return () => handler.remove(); - } - }, [handleClose, isOpen]); -}