0.3.0 • Published 6 years ago

react-native-messages v0.3.0

Weekly downloads
407
License
MIT
Repository
github
Last release
6 years ago

react-native-messages

React Native notification-like messages

Default messages

Features

  • Customizable message component
  • Fast native driver animations
  • Auto-hide current message to display a next one
  • Robust implementation, used in production code

Installation

$ npm install react-native-messages

Usage

  1. Add <MessageBar/> to the top of your view hierarchy, as a last component. If you are using react-navigation, root navigator should be in place of <App/>. Root view should have flex: 1:
import { MessageBar } from 'react-native-messages';

<View style={{ flex: 1 }}>
  <App/>
  <MessageBar/>
<View>
  1. Call showMessage in any other component:
import { showMessage } from 'react-native-messages';

<Button onPress={() => showMessage('You are awesome!')}/>

Config

PropTypeDefault
messageComponentComponentDefault message component
durationNumber1000
slideAnimationOffsetNumber40
showAnimationDurationNumber255
hideAnimationDurationNumber255
closeOnSwipeBooleantrue

You can add custom config as a second argument to showMessage call to configure individual messages. E.g. showMessage('You are awesome!', { duration: 3000 }).

Custom message component

Default message will receive only string, but you can implement your own message component to work with any other objects e.g Error instances. Your message component will also be passed a hideMessage prop. Simply call hideMessage() to hide the notification.

function Message({ message, hideMessage }) {
  if (message instanceof Error) {
    // return error-styled message
  } else {
    // return normal message
  }
}

<MessageBar messageComponent={Message}/>

<Button onPress={() => showMessage(new Error('Boom!'))}/>

Custom messages

Demo

$ git clone git@github.com:Qlean/react-native-messages.git
$ cd react-native-messages/demo
$ npm install
$ npm start
$ react-native run-android # assuming Android emulator is running: https://facebook.github.io/react-native/docs/getting-started.html#installing-dependencies

Contributing

Same as demo. Run npm install in root directory to install ESLint.

0.3.0

6 years ago

0.2.4

7 years ago

0.2.3

7 years ago

0.2.2

7 years ago

0.2.1

7 years ago

0.2.0

7 years ago

0.1.1

8 years ago

0.1.0

8 years ago

0.0.6

8 years ago

0.0.5

8 years ago

0.0.4

8 years ago

0.0.2

8 years ago

0.0.1

8 years ago