A more ergonomic interface for opening and managing modals in your react native
app.
const MyModal = (props: ModalComponentProps<any>) => (
<View style={{height: 300, width: 300, backgroundColor: 'white'}}>
{}
<TouchableOpacity onPress={() => props.onShowModal({name: 'myModal'})}>
<Text>Open another</Text>
</TouchableOpacity>
</View>
);
const MyScreen = () => {
const modal = useModalController();
return (
<View style={{flex: 1}}>
<TouchableOpacity
onPress={() =>
modal.onShowModal({
name: 'myModal',
priority: Priority.Override,
})
}>
<Text>Show Modal</Text>
</TouchableOpacity>
</View>
);
};
const App = () => {
return (
<ModalControllerProvider
modals={[
{
name: 'myModal',
priority: Priority.Override,
animation: {
inDuration: 500,
outDuration: 500,
in: 'fadeInDown' as Animation,
out: 'fadeOutUp' as Animation,
},
Component: MyModal,
},
]}
backdrop={{
activeOpacity: 0.5,
transitionInTiming: 500,
transitionOutTiming: 500,
}}>
<MyScreen />
</ModalControllerProvider>
);
};