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 🙏

© 2026 – Pkg Stats / Ryan Hefner

react-snackbar-queue

v1.1.8

Published

Zero-dependency, fully configurable Snackbar queue provider using React, written in Typescript.

Downloads

979

Readme

react-snackbar-queue

A zero-dependency, fully configurable Snackbar queue provider using React, written in Typescript

NPM

React Typescript

Code Sandbox Demo


Get started:

Install:

npm i react-snackbar-queue

In your app.tsx (or wherever your context providers are added)

<SnackbarProvider>{/* your app */}</SnackbarProvider>

And then within any components, you can use it like so:

export default function MyComponent() {
  const { enqueueSnackbar } = useSnackbar();

  return (
    <button
      onClick={() => enqueueSnackbar("Hello world", { variant: "success" })}
    >
      Show Snackbar
    </button>
  );
}

Configuration

There are various options that can be passed as the second parameter to the enqueueSnackbar function to affect the individual snackbar functionality. This options object is defined below:

type EnqueueSnackbarOptions = {
  severity?: SnackbarSeverity; // "default" | "success" | "error" | "info" | "warning"
  duration?: number; // How long to show the snackbar before auto-closing. Default is 5000 (5 secs)
  onClose?: () => void; // Triggered after close and exit animation
  buttons?: ReactNode[]; // Any number of elements to be included in the snackbar (ex: "Undo" button)
  noCloseButton?: boolean; // Don't allow "X" close button
};

The SnackbarProvider will also accept global settings that will affect all snackbars. The props for this component are defined below:

type SnackbarProviderProps = {
  children: ReactNode | ReactNode[];
  colors?: Partial<Record<SnackbarSeverity, string>>; // Override default colors for severities
  classes?: Partial<Record<"container" | "snackbar", string>>; // Add classes to either the container element, or each snackbar
  animationDuration?: number; // Animate in duration in milliseconds. Default is 300
  snackbarDuration?: number; // How long to show ALL snackbars before auto-closing. Default is 5000 (5 secs)
  noCloseButton?: boolean; // Don't allow "X" close button on ALL snackbars
  closeIcon?: ReactNode; // Replace the close icon
  position?: SnackbarPosition; // Placement for all snackbars
  maxSnackbars?: number; // How many to show at once in the queue. Default is 2
};

Values for Severity & Position are defined below:

type SnackbarSeverity = "default" | "success" | "error" | "info" | "warning";

type SnackbarPosition =
  | "top-left"
  | "top-right"
  | "bottom-left"
  | "bottom-right"
  | "top-center"
  | "bottom-center";

Advanced usage:

Snackbars can also be hidden programmatically. The useSnackbar hook also returns a hideSnackbar function. The enqueueSnackbar function returns the ID for the snackbar that was shown which can be passed into the hideSnackbar function to hide it programmatically.