From 39e961d41c125506a560d0d05c38277f6e49f4e6 Mon Sep 17 00:00:00 2001 From: Vendeville Antoine Date: Fri, 9 Feb 2024 17:48:11 +0100 Subject: [PATCH 1/3] fix(@vtmn/svelte): fix timeout on overlays components --- .../showcases/svelte/.storybook/preview.js | 3 +- .../VtmnAlert/VtmnAlert.stories.svelte | 10 +++++- .../VtmnSnackbar/VtmnSnackbar.stories.svelte | 12 ++++++- .../VtmnToast/VtmnToast.stories.svelte | 12 ++++++- .../components/overlays/alert/src/index.css | 4 +++ .../overlays/snackbar/src/index.css | 5 +++ .../components/overlays/toast/src/index.css | 5 +++ .../css/src/design-tokens/src/animations.css | 17 ++++++---- .../overlays/VtmnAlert/VtmnAlertItem.svelte | 31 ++++++++++++++++--- .../components/overlays/VtmnAlert/enums.js | 4 +++ .../VtmnAlert/test/vtmnAlertItem.spec.js | 3 +- .../overlays/VtmnSnackbar/VtmnSnackbar.svelte | 4 ++- .../VtmnSnackbar/VtmnSnackbarItem.svelte | 22 ++++++++++--- .../components/overlays/VtmnSnackbar/enum.js | 4 ++- .../VtmnSnackbar/test/VtmnSnackbar.spec.js | 3 +- .../VtmnSnackbar/vtmnSnackbarStore.js | 10 ++++-- .../overlays/VtmnToast/VtmnToastItem.svelte | 22 +++++++++++-- .../components/overlays/VtmnToast/enums.js | 4 ++- .../VtmnToast/test/vtmnToastItem.spec.js | 7 +++-- .../overlays/VtmnToast/vtmnToastStore.js | 10 ++++-- 20 files changed, 159 insertions(+), 33 deletions(-) diff --git a/packages/showcases/svelte/.storybook/preview.js b/packages/showcases/svelte/.storybook/preview.js index efac23237..e75629437 100644 --- a/packages/showcases/svelte/.storybook/preview.js +++ b/packages/showcases/svelte/.storybook/preview.js @@ -5,7 +5,8 @@ import viewports from '@vtmn/showcase-core/addons/viewports.json'; import DivDecorator from './DivDecorator.svelte'; import { addReadme } from 'storybook-readme/html'; -import "@vtmn/svelte/dist/index.css" +import "@vtmn/css-design-tokens/dist/index.css"; +import "@vtmn/svelte/dist/index-with-vars.css"; import '@vtmn/icons/dist/vitamix/font/vitamix.css'; export const decorators = [() => DivDecorator, withDesign, addReadme]; diff --git a/packages/showcases/svelte/stories/components/overlays/VtmnAlert/VtmnAlert.stories.svelte b/packages/showcases/svelte/stories/components/overlays/VtmnAlert/VtmnAlert.stories.svelte index 9c3aa7228..1797fb3d9 100644 --- a/packages/showcases/svelte/stories/components/overlays/VtmnAlert/VtmnAlert.stories.svelte +++ b/packages/showcases/svelte/stories/components/overlays/VtmnAlert/VtmnAlert.stories.svelte @@ -39,6 +39,14 @@ type: 'text', }, }, + timeout: { + type: { name: 'number', required: false }, + description: 'Duration of the animation', + defaultValue: 8000, + control: { + type: 'number', + }, + }, variant: { type: { name: 'boolean', required: false }, description: 'Variant of the alert', @@ -85,7 +93,7 @@ args={{ title: undefined, description: undefined, - timeout: 0, + timeout: null, ariaLabelCloseButton: 'Close alert', }} let:args diff --git a/packages/showcases/svelte/stories/components/overlays/VtmnSnackbar/VtmnSnackbar.stories.svelte b/packages/showcases/svelte/stories/components/overlays/VtmnSnackbar/VtmnSnackbar.stories.svelte index 1578e8802..f93c77976 100644 --- a/packages/showcases/svelte/stories/components/overlays/VtmnSnackbar/VtmnSnackbar.stories.svelte +++ b/packages/showcases/svelte/stories/components/overlays/VtmnSnackbar/VtmnSnackbar.stories.svelte @@ -11,7 +11,17 @@ dispatch('close'); const _clearTimeout = () => timeoutId && clearTimeout(timeoutId); const _setTimeout = () => - (timeoutId = timeout && setTimeout(closeHandler, timeout)); + (timeoutId = + typeof timeout === 'number' && + setTimeout( + closeHandler, + (timeout < Infinity ? timeout : INFINITE_TIMEOUT_MS) + + CSS_ANIMATION_TIME_MS, + )); onDestroy(_clearTimeout); onMount(_setTimeout); + $: componentClass = cn( 'vtmn-alert', - timeout > 0 && 'show', + typeof timeout === 'number' && 'show animate-delay', variant && `vtmn-alert_variant--${variant}`, className, ); -