Files
upstream-mirror 1416db152c
All checks were successful
Release / Create Version PR or Publish Stable Release (push) Has been skipped
Release / Publish Prerelease to NPM (push) Has been skipped
Monitor Registries / Monitor registry health (push) Has been skipped
snapshot of https://github.com/shadcn-ui/ui.git (main, 2026-09-15; blobs > 131072B omitted)
2026-09-15 22:44:43 +05:00

87 lines
1.9 KiB
TypeScript

"use client"
import {
Example,
ExampleWrapper,
} from "@/registry/bases/base/components/example"
import { Button } from "@/registry/bases/base/ui/button"
import { toast } from "@/registry/bases/base/ui/toast"
export default function ToastExample() {
return (
<ExampleWrapper>
<ToastBasic />
<ToastWithAction />
<ToastPromise />
</ExampleWrapper>
)
}
function ToastBasic() {
return (
<Example title="Basic" className="items-center justify-center">
<Button
variant="outline"
className="w-fit"
onClick={() =>
toast.add({
title: "Event created",
description: "Sunday, December 3 at 9:00 AM",
})
}
>
Show Toast
</Button>
</Example>
)
}
function ToastWithAction() {
function showToast() {
const id = toast.add({
title: "Event created",
description: "You can undo this action.",
actionProps: {
children: "Undo",
onClick() {
toast.close(id)
toast.add({
description: "Event creation undone.",
})
},
},
})
}
return (
<Example title="With Action" className="items-center justify-center">
<Button variant="outline" className="w-fit" onClick={showToast}>
Show Toast
</Button>
</Example>
)
}
function ToastPromise() {
function showToast() {
toast.promise(
new Promise<{ name: string }>((resolve) => {
window.setTimeout(() => resolve({ name: "Event" }), 2000)
}),
{
loading: "Creating event…",
success: (data) => `${data.name} created.`,
error: "Could not create event.",
}
)
}
return (
<Example title="Promise" className="items-center justify-center">
<Button variant="outline" className="w-fit" onClick={showToast}>
Create Event
</Button>
</Example>
)
}