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

@nature-ui/toast

v2.2.13

Published

A React component and hooks wrapper for popper.js

Downloads

9

Readme

Toast

The toast is used to show alerts on top of an overlay.

The toast will close itself when the close button is clicked, or after a timeout — the default is 5 seconds.

Toasts can be configured to appear at either the top or the bottom of an application window, and it is possible to have more than one toast onscreen at a time.

Import component

import useToast from '@nature-ui/toast';

Usage

function ToastExample() {
  const toast = useToast();

  return (
    <Button
      onClick={() =>
        toast({
          title: 'Account created.',
          description: "We've created your account for you.",
          status: 'success',
          duration: 9000,
          isClosable: true,
        })
      }
    >
      Show Toast
    </Button>
  );
}

Positioning toast

By default, all the toasts will be positioned on the top-right of your browser.

The following values are allowed: top-right, top, top-left, bottom-right, bottom, bottom-left

import React from 'react';
import useToast from '@nature-ui/toast';

const Position = () => {
  const toast = useToast();

  const notify = () => {
    toast({ title: 'Success Notification !', status: 'success' });
  };

  return <button onClick={notify}>Notify</button>;
};

Set autoClose delay or disable it

To change the show delay for any toast, simply pass the duration prop when invoking the toast function.

Note 🚨: If you pass null as the duration, the toast will always remain on screen.

import React from 'react';
import useToast from '@nature-ui/toast';

const Duration = () => {
  const toast = useToast();

  const notify = () => {
    toast({
      duration: 5000,
      title: 'I will close after 5 secs',
    });
  };

  return <button onClick={notify}>Notify</button>;
};

Render a custom toast component

Display a custom component instead of the default Toast UI.

We provide 2 key props to your component, id, and onClose to close the toast (to build your custom close button).

function Example() {
  const toast = useToast();

  return (
    <Button
      onClick={() => {
        toast({
          position: 'bottom-left',
          render: (props) => (
            <Box className='m-3 text-white bg-blue-500'>Hello World</Box>
          ),
        });
      }}
    >
      Show Toast
    </Button>
  );
}

Use a custom id

A custom id can be used to replace the one internal auto-generated toast id. You can use a number or a string.

This is mostly useful when you need to prevent duplication of a specific toast.

Prevent duplicate

To prevent duplicates, you can check if a given toast is active by calling toast.isActive(id) like the snippet below. Or, you can use a custom toastId:

import React from 'react';
import useToast from '@nature-ui/toast';

const Example = () => {
  const toast = useToast();

  const id = 'login-toast';

  const notify = () => {
    if (!toast.isActive(id)) {
      toast({ title: 'Dude! I cannot be duplicated' });
    }
  };

  return (
    <div>
      <button onClick={notify}>Notify</button>
    </div>
  );
};

Update a toast

When you update a toast, the toast options and the content are inherited but don't worry you can update them.

import React from 'react';
import useToast from '@nature-ui/toast';

const Update = () => {
  const toast = useToast();

  const id = React.useRef(null);

  const notify = () => {
    id.current = toast({
      title: 'Chidori is not available!',
      duration: null,
    });
  };

  const update = () => {
    toast.update(id.current, {
      title: 'Sharingan is all you have!',
      status: 'success',
      duration: 5000,
    });
  };

  return (
    <div>
      <button onClick={notify}>Notify</button>
      <button onClick={update}>Update</button>
    </div>
  );
};