Gathering detailed insights and metrics for react-notifications-component
Gathering detailed insights and metrics for react-notifications-component
Gathering detailed insights and metrics for react-notifications-component
Gathering detailed insights and metrics for react-notifications-component
@types/react-notifications-component
Stub TypeScript definitions entry for react-notifications-component, which provides its own types definitions
react-notifications
Notification component for ReactJS
sonner
An opinionated toast component for React.
react-native-notifications
Advanced Push Notifications (Silent, interactive notifications) for iOS & Android
npm install react-notifications-component
Typescript
Module System
Node Version
NPM Version
94
Supply Chain
98.6
Quality
76.1
Maintenance
100
Vulnerability
100
License
TypeScript (69.9%)
JavaScript (17.62%)
SCSS (12.49%)
Total Downloads
6,762,692
Last Day
2,578
Last Week
16,738
Last Month
114,656
Last Year
1,418,826
1,274 Stars
349 Commits
74 Forks
11 Watching
9 Branches
11 Contributors
Minified
Minified + Gzipped
Latest Version
4.0.1
Package Id
react-notifications-component@4.0.1
Unpacked Size
125.91 kB
Size
32.54 kB
File Count
37
NPM Version
8.1.0
Node Version
16.12.0
Cumulative downloads
Total Downloads
Last day
-49.5%
2,578
Compared to previous day
Last week
-40.3%
16,738
Compared to previous week
Last month
-14.7%
114,656
Compared to previous month
Last year
-7.9%
1,418,826
Compared to previous year
1
63
A delightful, easy to use and highly configurable component to help you notify your users out of the box. No messy setup, just beautiful notifications!
:exclamation: :exclamation: :exclamation: As of version 3.3.0
react-notifications-component
no longer uses default export. Rely on this import instead1import { ReactNotifications, Store } from 'react-notifications-component'
https://teodosii.github.io/react-notifications-component/
npm install react-notifications-component
First build the library
npm run build:library:dev
then run the webpack server to see the app running
npm run start
Import react-notifications-component
1import { ReactNotifications } from 'react-notifications-component'
Import the CSS
theme
1import 'react-notifications-component/dist/theme.css'
SASS
files are located in react-notifications-component/dist/scss
Render react-notifications-component
at the top of your application so that it does not conflict with other absolutely positioned DOM elements.
1const App = () => { 2 return ( 3 <div className="app-container"> 4 <ReactNotifications /> 5 <Application /> 6 </div> 7 ) 8};
Import Store
where needed - will be used to access addNotification
and removeNotification
API methods
1import { Store } from 'react-notifications-component';
Then call addNotification
and watch the magic happens
1Store.addNotification({ 2 title: "Wonderful!", 3 message: "teodosii@react-notifications-component", 4 type: "success", 5 insert: "top", 6 container: "top-right", 7 animationIn: ["animate__animated", "animate__fadeIn"], 8 animationOut: ["animate__animated", "animate__fadeOut"], 9 dismiss: { 10 duration: 5000, 11 onScreen: true 12 } 13});
Voila!
Note: We rely on animate.css
in this example as animate__fadeIn
and animate__fadeOut
are part of animate.css
. We recommend using it as it's an excellent animation library, but you're not forced to. If you prefer you may also use your custom animations as long as they're valid CSS animations.
Note: animate.css
latest version (v4
) has breaking changes. It introduces animate__
prefix so that existing classes don't clash. If you still would like to use classes without prefix you can import animate.css/animate.compat.css
1// preferred way to import (from `v4`). Uses `animate__` prefix. 2import 'animate.css/animate.min.css'; 3 4// Alternate way to use classes without prefix like `animated fadeIn` 5import 'animate.css/animate.compat.css'
In the examples, we will be using classes with animate__
prefix, which is the default behaviour of latest v4
version of animate.css
.
For more info on how to use animate.css
, please refer to animate.css docs
Store.addNotification(options)
Render a new notification. Method returns a unique id for the rendered notification. Supplied options are internally validated and an exception will be thrown if validation fails.
Store.removeNotification(id)
Manually remove a notification by id.
In the following examples for brevity some options will not be mentioned. Strictly focusing on the needed options to present each example. For reference, we will be using Object spread operator on a notification
object to have non relevant fields included as well.
1notification = { 2 title: "Wonderful!", 3 message: "Configurable", 4 type: "success", 5 insert: "top", 6 container: "top-right", 7 animationIn: ["animate__animated animate__fadeIn"], // `animate.css v4` classes 8 animationOut: ["animate__animated animate__fadeOut"] // `animate.css v4` classes 9};
You have in total 6 containers for desktop and 2 for mobile, if component is set to be responsive. List of containers:
top-left
top-right
top-center
center
bottom-left
bottom-right
bottom-center
1Store.addNotification({
2 ...notification,
3 container: 'top-right'
4})
Will position the notification in top right of the screen.
List of types:
success
danger
info
default
warning
1Store.addNotification({
2 ...notification,
3 type: 'danger'
4})
Will trigger a danger
notification.
1Store.addNotification({
2 ...notification,
3 animationIn: ['animate__animated animate__fadeIn'], // `animate.css v4` classes
4 animationOut: ['animate__animated animate__fadeOut'] // `animate.css v4` classes
5})
animationIn
and animationOut
rely on CSS classes that toggle animations. On github pages we rely on animate.css
, we suggest you to import that package and use their animations as they have plenty.
Note: Failing to have animations set properly will lead to bugs in some causes, as react-notifications-component
relies on onAnimationEnd
event to know when an animation has finished.
1Store.addNotification({
2 ...notification,
3 dismiss: {
4 duration: 2000
5 }
6})
1Store.addNotification({
2 ...notification,
3 dismiss: {
4 duration: 2000,
5 onScreen: true
6 }
7})
Easily subscribe to onRemoval
by supplying callback as option to the notification object. Callback will get called after the removal animation finishes.
1Store.addNotification({ 2 ...notification, 3 onRemoval: (id, removedBy) => { 4 ... 5 } 6})
1Store.addNotification({
2 ...notification,
3 dismiss: {
4 duration: 2000,
5 pauseOnHover: true
6 }
7})
1Store.addNotification({
2 ...notification,
3 slidingExit: {
4 duration: 800,
5 timingFunction: 'ease-out',
6 delay: 0
7 }
8})
slidingEnter
, touchRevert
and touchSlidingExit
can all be configured in the same way, with the mention that touchSlidingExit
has 2 transitions nested.
1Store.addNotification({
2 ...notification,
3 touchSlidingExit: {
4 swipe: {
5 duration: 400,
6 timingFunction: 'ease-out',
7 delay: 0,
8 },
9 fade: {
10 duration: 400,
11 timingFunction: 'ease-out',
12 delay: 0
13 }
14 }
15})
Name | Type | Description |
---|---|---|
isMobile | Boolean | Set whether you want component to be responsive or not. To be used together with breakpoint |
breakpoint | Number | Breakpoint for responsiveness - defaults to 768 px |
types | Array | Custom types |
className | string | Classes assigned to the container |
id | string | Id of the container |
Name | Type | Description |
---|---|---|
id | String | Id of the notification. Supply option only if you prefer to have custom id, otherwise you should let the component handle generation for you. |
onRemoval | Function | Gets called on notification removal with id and removedBy arguments |
title | String , React Node or Functional Component | Title of the notification. Option is ignored if content is set, otherwise it is required. |
message | String , React Node or Functional Component | Message of the notification. Option is ignored if content is set, otherwise it is required. |
content | Object | Custom notification content, must be either Class Component, Functional Component or React element. If being supplied as functional or class component, id and notificationConfig will be supplied as prop. notificationConfig will return the parsed notification object as defined in the library. |
type | String | Type of the notification. Option is ignored if content is set, otherwise it is required. |
container | String | Container in which the notification will be displayed. Option is required. |
insert | String | Specify where to append notification into the container - top or bottom. Option defaults to top . |
dismiss | Dismiss | Specify how a notification should be dismissed. |
animationIn | Array | Array of CSS classes for animating the notification's entrance. |
animationOut | Array | Array of CSS classes for animating the notification's exit. |
slidingEnter | Transition | Transition to be used when sliding to show a notification. |
slidingExit | Transition | Transition to be used when sliding to remove a notification. |
touchRevert | Transition | Transition to be used when sliding back after an incomplete swipe. |
touchSlidingExit | Transition | Transition to be used when sliding on swipe. |
width | Number | Overwrite notification's width defined by CSS |
Transition
is used each time you define a transition.
Name | Type | Description |
---|---|---|
duration | Number | Transition duration in ms. Its default value ranges from 300 to 600, depending on transition |
timingFunction | String | CSS timing function for the transition, defaults to linear |
delay | Number | Delay of the transition in ms, defaults to 0 |
Dismiss
is used to describe how a notification should be dismissed.
Name | Type | Description |
---|---|---|
duration | Number | Time in milliseconds after notification gets dismissed. 0 will act as infinite duration. Defaults to 0 |
onScreen | Boolean | Show time left directly on the notification. Defaults to false |
pauseOnHover | Boolean | Hovering over notification will pause the dismiss timer. Defaults to false |
waitForAnimation | Boolean | When removing a notification by default we trigger the exit animation and the transition to height 0 at the same time. Setting this to true will wait for the exit animation to finish and then start the transition to height 0. Defaults to false |
click | Boolean | Enable dismissal by click, defaults to true |
touch | Boolean | Enable dismiss by touch move, defaults to true |
showIcon | Boolean | Show or hide the close icon, defaults to false . If set to true , it will respond to click interaction and will remove notification |
Store
from library and use it for adding and removing notificationstouchSlidingBack
has been renamed to touchRevert
dismissIcon
has been removed. Use showIcon
instead. If you relly on customized close icon, then stick to custom content.dismiss
supports now more optionscubicBezier
has been renamed to timingFunction
dev
and prod
- and relies on ENV variable when importing.MIT
No vulnerabilities found.
Reason
no binaries found in the repo
Reason
license file detected
Details
Reason
0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Reason
Found 2/26 approved changesets -- score normalized to 0
Reason
no effort to earn an OpenSSF best practices badge detected
Reason
security policy file not detected
Details
Reason
project is not fuzzed
Details
Reason
SAST tool is not run on all commits -- score normalized to 0
Details
Reason
42 existing vulnerabilities detected
Details
Score
Last Scanned on 2024-12-16
The Open Source Security Foundation is a cross-industry collaboration to improve the security of open source software (OSS). The Scorecard provides security health metrics for open source projects.
Learn More