1.1.0 • Published 5 years ago

@nerd-coder/react-notifications v1.1.0

Weekly downloads
1
License
MIT
Repository
-
Last release
5 years ago

React Notifications

Just another notification system for React.

The style is stolen heavily inspired by react-toast-notifications by Joss Mackison

Install

npm i @nerd-coder/react-notifications

Use

Wrap your app in the NotificationProvider, which provides context for the useNotification descendants.

import React, { useCallback } from 'react'
import { render } from 'react-dom'
import { useNotification, NotificationProvider } from '@nerd-coder/react-notifications'

const HelloComponent = ({ name }) => {
  const { notify } = useNotification()

  return <button onClick={() => notify(`Hello ${name}!`)}>Click me</button>
}

const App = () => (
  <NotificationProvider>
    <HelloComponent name='World' />
  </NotificationProvider>
)

render(<App />, document.getElementById('root'))

NotificationProvider Props

PropertyTypeDescription
placement'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right'Notification placement, default is bottom-right
autoDismissboolean?Auto dismiss the notification after timeout. Default is true
autoDismissTimeoutnumber?Work conjunction with autoDissmiss. Default is 5000ms (5 seconds)
animationTimeOutnumber?Timing for enter & exit animation. Default is 300ms
TagReact.ComponentType?Notification Component to render
onAdd(id: string) => voidEvent handler, will be passed notification's id as first parameter
onAdded(id: string) => voidEvent handler, will be passed notification's id as first parameter
onRemove(id: string) => voidEvent handler, will be passed notification's id as first parameter
onRemoved(id: string) => voidEvent handler, will be passed notification's id as first parameter

Notify & Dismiss

The notify and dimiss methods on useNotification have two arguments.

  1. The first is the content of the notification, which can be any renderable Node.
  2. The second is the Options object, which accept the same props as NotificationProvider, and an additional prop appearance having value being one of 'info' | 'warning' | 'success' | 'error'