JSPM

@chakra-ui/toast

0.0.0-dev-20220826112743
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 394786
  • Score
    100M100P100Q185223F
  • License MIT

description

Package Exports

  • @chakra-ui/toast
  • @chakra-ui/toast/dist/index.cjs.js
  • @chakra-ui/toast/dist/index.esm.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@chakra-ui/toast) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

@chakra-ui/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 "@chakra-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 * as React from "react"
import useToast from "@chakra-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 * as React from "react"
import useToast from "@chakra-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 m={3} color="white" p={3} 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 * as React from "react"
import useToast from "@chakra-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 * as React from "react"
import useToast from "@chakra-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>
  )
}