React Native Dialog Component
React Native Dialog Component for iOS & Android.
Pull request are welcomed. Please follow Airbnb JS Style Guide
Preview
Try With Exponent
Exponent
Installation
npm install --save react-native-dialog-component
# OR
yarn add react-native-dialog-component
Exposed Modules
- DialogManager
- DialogComponent
- Dialog
- DialogContent
- DialogButton
- DialogTitle
- Overlay
- Animation
- FadeAnimation
- ScaleAnimation
- SlideAnimation
Examples
Example
Usage With DialogManager
import DialogManager, { ScaleAnimation, DialogContent } from 'react-native-dialog-component';
show
DialogManager.show({
title: 'Dialog',
titleAlign: 'center',
animationDuration: 200,
ScaleAnimation: new ScaleAnimation(),
children: (
<DialogContent>
<View>
<Text>
React Native Dialog Component
</Text>
</View>
</DialogContent>
),
}, () => {
console.log('callback - show');
});
update
DialogManager.update({
title: 'Dialog Updated',
titleAlign: 'center',
animationDuration: 200,
ScaleAnimation: new ScaleAnimation(),
children: (
<DialogContent>
<View>
<Text>
New Content
</Text>
</View>
</DialogContent>
),
}, () => {
console.log('callback - update dialog');
});
dismiss
DialogManager.dismiss(() => {
console.log('callback - dismiss');
});
dismiss all
DialogManager.dismissAll(() => {
console.log('callback - dismiss all');
});
Usage with DialogComponent
import { DialogComponent }from 'react-native-dialog-component';
<View style={styles.container}>
<Button
text="Show Dialog"
onPress={() => {
this.dialogComponent.show();
}}
/>
<DialogComponent
ref={(dialogComponent) => { this.dialogComponent = dialogComponent; }}
>
<View>
<Text>Hello</Text>
</View>
</DialogComponent>
</View>
Usage - With Animation
import { DialogComponent, SlideAnimation } from 'react-native-dialog-component';
<View style={styles.container}>
<Button
text="Show Dialog"
onPress={() => {
this.dialogComponent.show();
}}
/>
<DialogComponent
ref={(dialogComponent) => { this.dialogComponent = dialogComponent; }}
dialogAnimation = { new SlideAnimation({ slideFrom: 'bottom' }) }
>
<View>
<Text>Hello</Text>
</View>
</DialogComponent>
</View>
Usage - With Dialog Dialog Title
import { DialogComponent, DialogTitle } from 'react-native-dialog-component';
<View style={styles.container}>
<Button
text="Show Dialog"
onPress={() => {
this.dialogComponent.show();
}}
/>
<DialogComponent
dialogTitle={<DialogTitle title="Dialog Title" />}
ref={(dialogComponent) => { this.dialogComponent = dialogComponent; }}
>
<View>
<Text>Hello</Text>
</View>
</DialogComponent>
</View>
Usage - Wrape the content use DialogContent
import { DialogComponent, DialogTitle } from 'react-native-dialog-component';
<View style={styles.container}>
<Button
text="Show Dialog"
onPress={() => {
this.dialogComponent.show();
}}
/>
<DialogComponent
dialogTitle={<DialogTitle title="Dialog Title" />}
ref={(dialogComponent) => { this.dialogComponent = dialogComponent; }}
>
<DialogContent>
<View>
<Text>Hello</Text>
</View>
</DialogContent>
</DialogComponent>
</View>
Props
DialogComponent
Prop | Type | Default | Note |
---|
dialogTitle | React Element | | You can pass a DialogTitle component or pass a View for customizing titlebar |
width | Number | Your device width | The Width of Dialog, you can use fixed width or use percentage |
height | Number | 300 | The Width of Dialog, you can use fixed height or use percentage |
dialogAnimation | | FadeAnimation | animation for dialog |
dialogStyle | Object or Number | | |
animationDuration | Number | 200 | |
overlayPointerEvents | String | | Available option: auto , none |
overlayBackgroundColor | String | #000 | |
overlayOpacity | Number | 0.5 | |
dismissOnTouchOutside | Bool | true | When touch overlay will close dialog, but if haveOverlay is false then the dismissOnTouchOutside won't work |
dismissOnHardwareBackPress | Bool | true | Only for Android |
haveOverlay | Bool | true | If false won't show overlay when dialog show |
show | Bool | false | |
onShown | Function | | You can pass onShown function as a aallback function, will call the function while dialog shown |
onDismissed | Function | | You can pass onDismissed function as a callback function, will call the function while dialog dismissed |
actions | Array | | Array of DialogButton component for example: [<DialogButton text="DISMISS", align="center" onPress={this.dismissDialog}/>] |
DialogContent
Prop | Type | Default | Note |
---|
contentStyle | | | Dialog's content container |
DialogTitle
Prop | Type | Default | Note |
---|
title | String | | |
titleStyle | Object or Number | | |
titleTextStyle | Object or Number | | |
titleAlign | String | center | |
haveTitleBar | Bool | true | |
DialogButton
Prop | Type | Default | Note |
---|
text | String | | |
align | String | center | The position of the button. Available option: left , center , right |
onPress | Function | | |
buttonStyle | Object or Number | | |
textStyle | Object or Number | | |
textContainerStyle | Object or Number | | |
disabled | Boolean | false | |
activeOpacity | Number | | |
Animation
Params for (*)Animation
FadeAnimation
Param | Type | Default | Note |
---|
toValue | Number | 0 | |
animationDuration | Number | 150 | |
ScaleAnimation
Param | Type | Default | Note |
---|
toValue | Number | 0 | |
SlideAnimation
Param | Type | Default | Note |
---|
toValue | Number | 0 | |
slideFrom | String | bottom | Available option: top , bottom , left , right |