feat: add iOS modal presentation style

This commit is contained in:
satyajit.happy
2019-06-07 15:05:52 +02:00
parent 2da09926d5
commit c6ba6e8c1c
9 changed files with 169 additions and 23 deletions

View File

@@ -0,0 +1,74 @@
import * as React from 'react';
import { Button, View, Text } from 'react-native';
import {
createStackNavigator,
TransitionPresets,
} from 'react-navigation-stack';
class ListScreen extends React.Component {
static navigationOptions = {
title: 'My Modal',
};
render() {
return (
<View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
<Text>List Screen</Text>
<Text>A list may go here</Text>
<Button
title="Go to Details"
onPress={() => this.props.navigation.navigate('Details')}
/>
<Button
title="Go back to all examples"
onPress={() => this.props.navigation.navigate('Home')}
/>
</View>
);
}
}
class DetailsScreen extends React.Component {
static navigationOptions = {
header: null,
};
render() {
return (
<View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
<Text>Details Screen</Text>
<Button
title="Go to Details... again"
onPress={() => this.props.navigation.push('Details')}
/>
<Button
title="Go to List"
onPress={() => this.props.navigation.navigate('List')}
/>
<Button
title="Go back"
onPress={() => this.props.navigation.goBack()}
/>
<Button
title="Go back to all examples"
onPress={() => this.props.navigation.navigate('Home')}
/>
</View>
);
}
}
export default createStackNavigator(
{
List: ListScreen,
Details: DetailsScreen,
},
{
...TransitionPresets.ModalPresentationIOS,
mode: 'modal',
defaultNavigationOptions: {
cardOverlayEnabled: true,
gesturesEnabled: true,
},
}
);