Security News
The Unpaid Backbone of Open Source: Solo Maintainers Face Increasing Security Demands
Solo open source maintainers face burnout and security challenges, with 60% unpaid and 60% considering quitting.
snapsheet-react-redux-notifications
Advanced tools
[![npm version](https://badge.fury.io/js/snapsheet-react-redux-notifications.svg)](https://badge.fury.io/js/snapsheet-react-redux-notifications)
Notifications with react and redux
npm install snapsheet-react-redux-notifications --save
Note you can call your reducer anything, but if you want to set an initial state than you must use a notifications
array.
import { createNotificationReducer } from 'snapsheet-react-redux-notifications';
const rootReducer = {
notifications: createNotificationReducer(),
applicationReducer,
// ...etc
};
With initial state:
import { createNotificationReducer, createNotification } from 'snapsheet-react-redux-notifications';
const rootReducer = {
notifications: createNotificationReducer({
notifications: [
createNotification("WARNING", "You have a warning from the backend on page load!"),
createNotification("ERROR", "You have an error from the backend on page load!", 5000) // 5 second delay
]
}),
applicationReducer,
// ...etc
};
Your component will be passed the following props so that you can display the flash messages however you choose.
This design enables the notification to temporarily stay in the store for a short time so that you can animate the disappearance of the message. It also makes it simple to use with existing components such as bootstrap's alert. You can use the type
to alter the styles, and actions can trigger onDismiss
to hide the notification.
Example:
function NotificationMessage(props) {
return (
<div>
<div>
<h3>{props.message}</h3>
<span>id: {props.id}</span> <span>type: {props.type}</span>
</div>
<button onClick={props.onDismiss} type="button">x</button>
</div>
);
}
NotificationMessage.propTypes = {
active: PropTypes.bool,
message: PropTypes.string,
onDismiss: PropTypes.func,
id: PropTypes.string,
type: PropTypes.string
};
import { Notification } from 'snapsheet-react-redux-notifications';
@connect((state, props) => {
return {
notifications: state.notifications.notifications
};
})
class App extends Component {
static propTypes = {
notifications: PropTypes.array,
dispatch: PropTypes.func
};
render() {
return (
<div>
{
this.props.notifications.map(notification => {
return (<Notification dispatch={this.props.dispatch} key={notification.id} notification={notification} MessageComponent={NotificationMessage}/>);
})
}
</div>
);
}
}
this.props.dispatch(displayNotification("ERROR", "An unexpected error occurred!"));
this.props.dispatch(displayNotification("INFO", "An unexpected error occurred!", 10000));
FAQs
[![npm version](https://badge.fury.io/js/snapsheet-react-redux-notifications.svg)](https://badge.fury.io/js/snapsheet-react-redux-notifications)
We found that snapsheet-react-redux-notifications demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 67 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Solo open source maintainers face burnout and security challenges, with 60% unpaid and 60% considering quitting.
Security News
License exceptions modify the terms of open source licenses, impacting how software can be used, modified, and distributed. Developers should be aware of the legal implications of these exceptions.
Security News
A developer is accusing Tencent of violating the GPL by modifying a Python utility and changing its license to BSD, highlighting the importance of copyleft compliance.