UNPKG

react-native-toast-with-button

Version:

A react native module to show custom toast with button, it works on iOS and Android.

146 lines (113 loc) 4.45 kB
# react-native-toast-with-button A react native module to show toast with button (with onPress), it works on iOS and Android. ## Content - [Installation](#installation) - [Getting started](#getting-started) - [API](#api) <img src="https://raw.githubusercontent.com/Byvan/sources/master/Toast.gif" width="300"> ## Installation * 1.Run `npm i react-native-toast-with-button --save` * 2.`import {Toast} from 'react-native-toast-with-button'` ## Getting started Add `react-native-toast-with-button` to your js file. `import {Toast} from 'react-native-toast-with-button'` Inside your component's render method, use Toast: ```javascript render() { return ( <View style={styles.container}> ... <Toast ref="toast" opacity={1} /> </View> ); } ``` >Note: Add it in the bottom of the root view. Then you can use it like this: ```javascript this.refs.toast.show( 'Example', //text in Toast 2500, //duration "alert", //textButton () => alert(''), //onPress null //callback ); ``` That's it, you're ready to go! Or pass an element: ```javascript this.refs.toast.show(<View><Text>hello world!</Text></View>); ``` ### Basic usage ```javascript show = () => { this.refs.toast.show( "Example", 2500, "close", () => this.refs.toast.close(), null ); }; render() { return ( <View style={styles.container}> <TouchableHighlight style={{padding: 10}} onPress={()=>{ this.show() }}> <Text>Press me</Text> </TouchableHighlight> <Toast ref="toast"/> </View> ); } ``` ### Custom Toast ```javascript render() { return ( <View style={styles.container}> <TouchableHighlight style={{padding: 10}} onPress={()=>{ this.refs.toast.show('hello world!',1000); }}> <Text>Press me</Text> </TouchableHighlight> <Toast ref="toast" style={{backgroundColor:'white'}} position='custom' positionValue={{top: 200}} fadeInDuration={750} fadeOutDuration={1000} opacity={0.8} textStyle={{color:'red'}} /> </View> ); } ``` ## API Props | Type | Optional | Default | Description ----------------- | -------- | -------- | ----------- | ----------- style | View.propTypes.style | true | {backgroundColor: 'black',flex: 1,flexDirection:"row",justifyContent: "space-between",padding: 20,width: "100%"} | Custom style toast position | PropTypes.oneOf(['top','custom','bottom']) |true | 'bottom' | Custom toast position positionValue | React.PropTypes.number | true | {bottom: 0} | Custom toast position value fadeInDuration | React.PropTypes.number | true | 500 | Custom toast show duration fadeOutDuration | React.PropTypes.number | true | 500 | Custom toast close duration opacity | React.PropTypes.number | true | 1 | Custom toast opacity textStyle | View.propTypes.style | true | {color:'white'} | Custom style text textButtonStyle | View.propTypes.style | true | {color: 'white', width: "auto"} | Custom style text in Button buttonStyle | View.propTypes.style | true | {} | Custom style text in Button Method | Type | Optional | Description ----------------- | -------- | -------- | ----------- show(text,duration, textButton,onPress, callback) | function | false | show a toast,text in Button, onPress, unit is millisecond,and do callback close() | function | - | closing toast --- **MIT Licensed**