diff --git a/packages/core/src/lib/toast/__tests__/toast.spec.ts b/packages/core/src/lib/toast/__tests__/toast.spec.ts index 490464da..1a257851 100644 --- a/packages/core/src/lib/toast/__tests__/toast.spec.ts +++ b/packages/core/src/lib/toast/__tests__/toast.spec.ts @@ -23,7 +23,6 @@ describe('toast', () => { await act(() => { context.toast({ message: 'This is a success toast message', - variant: ToastVariant.Success, }); }); diff --git a/packages/core/src/lib/toast/context.ts b/packages/core/src/lib/toast/context.ts index 8a645ba0..a7a828a9 100644 --- a/packages/core/src/lib/toast/context.ts +++ b/packages/core/src/lib/toast/context.ts @@ -12,15 +12,17 @@ import { uniqueId } from '$lib/unique-id'; import { pausableProgress } from '$lib/notification'; import type { ToastVariantType } from '.'; +export type Toast = (params: ToastParams) => void; + /** Internal toast context. */ export interface ToastContext { state: ToastState; - toast: (params: ToastParams) => void; + toast: Toast; } export interface ToastParams { message: string; action?: { text: string; handler: () => unknown } | undefined; - variant: ToastVariantType; + variant?: ToastVariantType; } /** Internal toast state. */ @@ -34,7 +36,7 @@ export interface ToastElement { id: string; message: string; action?: { text: string; handler: () => unknown } | undefined; - variant: ToastVariantType; + variant?: ToastVariantType; pause: () => void; resume: () => void; dismiss: () => void; @@ -102,8 +104,9 @@ export const createToastContext = (): ToastContext => { }; /** Provide toast state to a component tree. */ -export const provideToast = (context = createToastContext()): void => { +export const provideToast = (context = createToastContext()): Toast => { setContext(ToastContextKey, context); + return context.toast; }; const useToastContext = (): ToastContext => { @@ -117,7 +120,7 @@ const useToastContext = (): ToastContext => { }; /** Get access to the toast notifier in a component. */ -export const useToast = (): ((params: ToastParams) => void) => { +export const useToast = (): Toast => { return useToastContext().toast; }; diff --git a/packages/core/src/lib/toast/toast-banner.svelte b/packages/core/src/lib/toast/toast-banner.svelte index 8eb616ce..5cd18cc7 100644 --- a/packages/core/src/lib/toast/toast-banner.svelte +++ b/packages/core/src/lib/toast/toast-banner.svelte @@ -20,7 +20,7 @@ export { extraClasses as cx };
diff --git a/packages/core/src/lib/toast/toast-container.svelte b/packages/core/src/lib/toast/toast-container.svelte index c46c56a4..9bca0b43 100644 --- a/packages/core/src/lib/toast/toast-container.svelte +++ b/packages/core/src/lib/toast/toast-container.svelte @@ -28,7 +28,7 @@ $: pageIsVisible.set(visibilityState === 'visible');