React hook for showing modals on react-native. Uses react-native-modal under the hood. Show any component as modal with showModal
- Following recent trends
useModalfits right in - There are some libraries already, but few of them allows dynamic content for modals.
import { useModal } from '@oolio-group/rn-use-modal';
function ScreenWithModal() {
const { showModal, closeModal } = useModal();
const onConfirm = useCallback(() => {
closeModal();
}, [closeModal]);
const showConfirmation = useCallback(() => {
showModal(<ConfirmationModal onConfirm={onConfirm} />);
}, [showModal]);
return <Pressable onPress={showConfirmation}>Confirm Me</Pressable>;
}You need to wrap your screen with ModalProvider first for useModal to work.
function App() {
return (
<ModalProvider modalProps={options}>
<ScreenWithModal />
</ModalProvider>
);
}For a list of options see this page
This module currently uses react-native-modal under the hood. Considering life cycle of open source libraries it would be bettor to implement Modal from react-native directly.
react-native-modal was chosen as of now to support web platforms also. This can be done by aliasing react-native-modal with modal-enhanced-react-native-web
Build all projects yarn build
Clean build output yarn clean