From 17fee7f49d0774c1c017764980ae59c4a0542e65 Mon Sep 17 00:00:00 2001 From: Ojima Abraham Date: Tue, 19 Dec 2023 16:07:38 -0500 Subject: [PATCH] APP-2198-FIX: Added padding and refactored function (#454) --- .../core/src/lib/toast/__tests__/toast.spec.ts | 1 - packages/core/src/lib/toast/context.ts | 13 ++++++++----- .../core/src/lib/toast/toast-banner.svelte | 2 +- .../core/src/lib/toast/toast-container.svelte | 2 +- packages/storybook/src/stories/use-toast.mdx | 18 ++++++++---------- .../src/stories/use-toast.stories.svelte | 14 ++------------ 6 files changed, 20 insertions(+), 30 deletions(-) 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');
    {#each $toasts as { id, pause, resume, ...toast } (id)} diff --git a/packages/storybook/src/stories/use-toast.mdx b/packages/storybook/src/stories/use-toast.mdx index 5f861dfa..7b22eece 100644 --- a/packages/storybook/src/stories/use-toast.mdx +++ b/packages/storybook/src/stories/use-toast.mdx @@ -16,12 +16,10 @@ The root layout component is probably the best place to set up the context. ```svelte @@ -37,10 +35,10 @@ provideToast(); To display a toast, use the `useToast` function: ```ts -import { useToast, ToastVariant } from '@viamrobotics/prime-core'; +import { provideToast } from '@viamrobotics/prime-core'; const doSomethingCrazy = () => { - const toast = useToast(); + const toast = provideToast(); toast({ message: 'Hello, Brooklyn!', variant: ToastVariant.Success }); }; @@ -49,20 +47,20 @@ const doSomethingCrazy = () => { Right now only different variants of a success toast is supported. ```ts -import { useToast } from '@viamrobotics/prime-core'; +import { provideToast } from '@viamrobotics/prime-core'; const doSomethingCrazy = () => { - const toast = useToast(); + const toast = provideToast(); const exampleHanderFunction = () => void; - toast({ message: 'Plain slice please!', variant: ToastVariant.Success }); - toast({ message: 'Plain slice please!', variant: ToastVariant.Success, action: { text: 'action', handler: exampleHandlerFunction }); + toast({ message: 'Plain slice please!' }); + toast({ message: 'Plain slice please!', action: { text: 'action', handler: exampleHandlerFunction }); }; ``` ```ts -import { toast } from '@viamrobotics/prime-core'; +import { provideToast } from '@viamrobotics/prime-core'; ``` diff --git a/packages/storybook/src/stories/use-toast.stories.svelte b/packages/storybook/src/stories/use-toast.stories.svelte index 114cc0c9..6eb04e1e 100644 --- a/packages/storybook/src/stories/use-toast.stories.svelte +++ b/packages/storybook/src/stories/use-toast.stories.svelte @@ -1,16 +1,8 @@ @@ -25,7 +17,6 @@ const toast = useToast(); on:click={() => toast({ message: 'Success message', - variant: ToastVariant.Success, })} > Success Toast without action button @@ -35,7 +26,6 @@ const toast = useToast(); on:click={() => toast({ message: 'Success message', - variant: ToastVariant.Success, action: { text: 'action', handler: () => {