aboutsummaryrefslogtreecommitdiff
path: root/src/lib/Layout/TextTransition.svelte
diff options
context:
space:
mode:
authorFuwn <[email protected]>2024-10-28 15:32:46 -0700
committerFuwn <[email protected]>2024-10-28 15:32:46 -0700
commit39b677404558ae3b7eb34e818d7ca308f62f9cb0 (patch)
tree7f19fca39ecd4237e3c0d1aef2d8e9fa3cec7845 /src/lib/Layout/TextTransition.svelte
parentfeat(graphql): paged badges query (diff)
downloaddue.moe-svelte-5.tar.xz
due.moe-svelte-5.zip
feat: update to svelte 5svelte-5
Diffstat (limited to 'src/lib/Layout/TextTransition.svelte')
-rw-r--r--src/lib/Layout/TextTransition.svelte27
1 files changed, 20 insertions, 7 deletions
diff --git a/src/lib/Layout/TextTransition.svelte b/src/lib/Layout/TextTransition.svelte
index 35cfe1ea..5f5bd036 100644
--- a/src/lib/Layout/TextTransition.svelte
+++ b/src/lib/Layout/TextTransition.svelte
@@ -1,24 +1,37 @@
<script>
+ import { run } from 'svelte/legacy';
+
import { tweened } from 'svelte/motion';
import { cubicOut } from 'svelte/easing';
- export let text = '';
- export let opacityTransitionDuration = 50;
- export let blurTransitionDuration = opacityTransitionDuration;
- export let easing = cubicOut;
+ /**
+ * @typedef {Object} Props
+ * @property {string} [text]
+ * @property {number} [opacityTransitionDuration]
+ * @property {any} [blurTransitionDuration]
+ * @property {any} [easing]
+ */
+
+ /** @type {Props} */
+ let {
+ text = '',
+ opacityTransitionDuration = 50,
+ blurTransitionDuration = opacityTransitionDuration,
+ easing = cubicOut
+ } = $props();
- let previousValue = '';
+ let previousValue = $state('');
let opacity = tweened(1, { duration: opacityTransitionDuration, easing });
let blur = tweened(0, { duration: blurTransitionDuration, easing });
- $: {
+ run(() => {
if (text !== previousValue)
Promise.all([opacity.set(0), blur.set(10)]).then(() => {
previousValue = text;
Promise.all([opacity.set(1), blur.set(0)]);
});
- }
+ });
</script>
<span