Toast

Display a toast component.

Usage

<script lang="ts" setup>
import { useCountdown } from '@vueuse/core'

const countdownSeconds = 5

const { addToast, updateToast } = useToast()

const open = ref(false)

const { remaining, start } = useCountdown(countdownSeconds, {
  onTick() {
    updateToast('bare-metal-create', {
      description: h('div', {
        class: ' font-bold text-white',
        innerHTML: `${remaining.value} secs`,
      }),
    })
  },
})

function handleClick() {
  open.value = false

  start()

  addToast({
    title: 'Dynamic update example',
    id: 'bare-metal-create',
    description: h('div', {
      class: ' font-bold text-white',
      innerHTML: `${remaining.value} secs`,
    }),
    duration: Infinity,
    progress: false,
    close: false,
  })
}
</script>

<template>
  <div>
    <CButton @click="handleClick">
      Add to calendar
    </CButton>
  </div>
</template>

Props

type
"foreground" | "background"
duration
number
as
any
title
string | VNode<RendererNode, RendererElement, { [key: string]: any; }> | (() => VNode<RendererNode, RendererElement, { ...; }>)
description
string | VNode<RendererNode, RendererElement, { [key: string]: any; }> | (() => VNode<RendererNode, RendererElement, { ...; }>)
icon
string
actions
ButtonProps[]
close
boolean
true
progress
boolean
true
defaultOpen
boolean
open
boolean