Skip to content

Commit

Permalink
docs(toast-notification): add "Autoclose" example
Browse files Browse the repository at this point in the history
  • Loading branch information
metonym committed Feb 24, 2024
1 parent c6af8bd commit 0c99e05
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 0 deletions.
8 changes: 8 additions & 0 deletions docs/src/pages/components/ToastNotification.svx
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,14 @@ See also: [InlineNotification](InlineNotification)

<ToastNotification title="Error" subtitle="An internal server error occurred." caption="{new Date().toLocaleString()}" />

## Autoclose

By default, `ToastNotification` does not automatically close.

Specify the `timeout` prop to automatically close the notification after a specified duration (in milliseconds).

<FileSource src="/framed/ToastNotification/ToastNotificationTimeout" />

## Prevent default close behavior

`ToastNotification` is a controlled component. Prevent the default close behavior using the `e.preventDefault()` method in the dispatched `on:close` event.
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<script>
import { Button, ToastNotification } from "carbon-components-svelte";
import { fade } from "svelte/transition";
let timeout = undefined;
$: showNotification = timeout !== undefined;
</script>

<Button
disabled="{showNotification}"
on:click="{() => {
timeout = 3_000; // 3 seconds
}}"
>
Show notification
</Button>

{#if showNotification}
<div transition:fade>
<ToastNotification
timeout="{timeout}"
kind="success"
title="Success"
subtitle="This notification will autoclose in {timeout.toLocaleString()} ms."
caption="{new Date().toLocaleString()}"
on:close="{(e) => {
timeout = undefined;
console.log(e.detail.timeout); // true if closed via timeout
}}"
/>
</div>
{/if}

0 comments on commit 0c99e05

Please sign in to comment.