diff --git a/src/CodeSnippet/CodeSnippet.svelte b/src/CodeSnippet/CodeSnippet.svelte index 64add0c3..1ab20730 100644 --- a/src/CodeSnippet/CodeSnippet.svelte +++ b/src/CodeSnippet/CodeSnippet.svelte @@ -88,15 +88,18 @@ /** Obtain a reference to the pre HTML element */ export let ref = null; - import { createEventDispatcher, tick } from "svelte"; + import { createEventDispatcher, tick, onMount } from "svelte"; import ChevronDown16 from "../icons/ChevronDown16.svelte"; import Button from "../Button/Button.svelte"; - import Copy from "../Copy/Copy.svelte"; import CopyButton from "../CopyButton/CopyButton.svelte"; import CodeSnippetSkeleton from "./CodeSnippetSkeleton.svelte"; const dispatch = createEventDispatcher(); + /** @type {"fade-in" | "fade-out"} */ + let animation = undefined; + let timeout = undefined; + function setShowMoreLess() { const { height } = ref.getBoundingClientRect(); if (height > 0) showMoreLess = ref.getBoundingClientRect().height > 255; @@ -114,6 +117,10 @@ if (code === undefined) setShowMoreLess(); if (code) tick().then(setShowMoreLess); } + + onMount(() => { + return () => clearTimeout(timeout); + }); @@ -144,20 +151,35 @@ {:else} - {code} - + + {/if} {:else}