npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

react-browser-notification

v1.1.0

Published

React component for the Javascript Notification API

Downloads

10

Readme

react-browser-notification

React component for the Javascript Notifications API. The Notifications API allows web pages to control the display of system notifications to the end user. These are outside the top-level browsing context viewport, so therefore can be displayed even when the user has switched tabs or moved to a different app. This component is supported in modern web browsers such as Chrome, Safari, Firefox, Opera, and Edge.

Demo

Live Demo

Installation

Using npm:

npm install --save react-browser-notification

Usage

import React from 'react';
import ReactNotifications from 'react-browser-notification';

class Example extends React.Component {
  constructor() {
    super();
    this.showNotifications = this.showNotifications.bind(this);
    this.handleClick = this.handleClick.bind(this);
  }

  showNotifications() {
    // If the Notifications API is supported by the browser
    // then show the notification
    if(this.n.supported()) this.n.show();
  }

  handleClick(event) {
    // Do something here such as
    // console.log("Notification Clicked") OR
    // window.focus() OR
    // window.open("http://www.google.com")

    // Lastly, Close the notification
    this.n.close(event.target.tag);
  }

  render() {
    return (
      <div>

        <ReactNotifications
          onRef={ref => (this.n = ref)} // Required
          title="Hey There!" // Required
          body="This is the body"
          icon="icon.png"
          tag="abcdef"
          timeout="2000"
          onClick={event => this.handleClick(event)}
        />

        <button onClick={this.showNotifications}>
          Notify Me!
        </button>

      </div>
    )
  }
}

Methods

Once you have the reference of ReactNotifications by including the onRef={ref => (this.n = ref)} prop, you can call the below methods

// Returns true if the Notifications API is supported by the browser
this.n.supported()

// Triggers the browser notification
this.n.show()

// Close the notification, which is ID'ed by the tag prop
this.n.close(tag)

Properties

The ReactNotifications component accepts the following props

Name | Type | Req/Opt | Description --- | --- | --- | --- onRef | function | Required | This is required to reference the ReactNotifications component. Recommended: onRef={ref => (this.n = ref)}, where n is any variable name title | string | Required | Title of the notification body | string | Optional | Text to display in the body of the notification icon | string | Optional | Link to image to be displayed as the icon tag | string | Optional | Unique identifier for the notification. If this is not provided as a prop, an unique shortid is automatically generated for the notification timeout | string | Optional | Indicates, in milliseconds, the duration for which the notification will remain displayed, if less than the default timeout. Default timeout is dependent on the browser (typically 4s or 5s). Maximum duration is the default timeout interaction | boolean | Optional | Only available in Chrome. Setting this to true makes the notification remain displayed until the user interacts with the notification (clicks the Close button). timeout overrides interaction if both props are provided onClick | function | Optional | Fired when the notification is clicked

Browser Support

For up-to-date details on browser compatibility, please visit caniuse

License

MIT

Credits

Dependency: Push.js by Nickersoft