summaryrefslogtreecommitdiffhomepage
path: root/packages/ui/src/components
diff options
context:
space:
mode:
Diffstat (limited to 'packages/ui/src/components')
-rw-r--r--packages/ui/src/components/scroll-view.tsx17
-rw-r--r--packages/ui/src/components/text-strikethrough.stories.tsx11
-rw-r--r--packages/ui/src/components/text-strikethrough.tsx12
3 files changed, 9 insertions, 31 deletions
diff --git a/packages/ui/src/components/scroll-view.tsx b/packages/ui/src/components/scroll-view.tsx
index 2b58300b9..3ff00f117 100644
--- a/packages/ui/src/components/scroll-view.tsx
+++ b/packages/ui/src/components/scroll-view.tsx
@@ -1,4 +1,5 @@
-import { onCleanup, onMount, splitProps, type ComponentProps, Show, mergeProps } from "solid-js"
+import { onMount, splitProps, type ComponentProps, Show, mergeProps } from "solid-js"
+import { createResizeObserver } from "@solid-primitives/resize-observer"
import { createStore } from "solid-js/store"
import { useI18n } from "../context/i18n"
@@ -97,19 +98,7 @@ export function ScrollView(props: ScrollViewProps) {
local.viewportRef(viewportRef)
}
- const observer = new ResizeObserver(() => {
- updateThumb()
- })
-
- observer.observe(viewportRef)
- // Also observe the first child if possible to catch content changes
- if (viewportRef.firstElementChild) {
- observer.observe(viewportRef.firstElementChild)
- }
-
- onCleanup(() => {
- observer.disconnect()
- })
+ createResizeObserver([viewportRef, viewportRef.firstElementChild], updateThumb)
updateThumb()
})
diff --git a/packages/ui/src/components/text-strikethrough.stories.tsx b/packages/ui/src/components/text-strikethrough.stories.tsx
index 5e86413f9..5ef06dbcf 100644
--- a/packages/ui/src/components/text-strikethrough.stories.tsx
+++ b/packages/ui/src/components/text-strikethrough.stories.tsx
@@ -1,5 +1,6 @@
// @ts-nocheck
-import { createEffect, createSignal, onCleanup, onMount } from "solid-js"
+import { createSignal, onMount } from "solid-js"
+import { createResizeObserver } from "@solid-primitives/resize-observer"
import { createStore } from "solid-js/store"
import { useSpring } from "./motion-spring"
import { TextStrikethrough } from "./text-strikethrough"
@@ -144,13 +145,7 @@ function VariantF(props: { active: boolean; text: string }) {
}
onMount(measure)
- createEffect(() => {
- const el = containerRef
- if (!el) return
- const observer = new ResizeObserver(measure)
- observer.observe(el)
- onCleanup(() => observer.disconnect())
- })
+ createResizeObserver(() => containerRef, measure)
const clipRight = () => {
const cw = containerWidth()
diff --git a/packages/ui/src/components/text-strikethrough.tsx b/packages/ui/src/components/text-strikethrough.tsx
index aee5e0cbd..958befff6 100644
--- a/packages/ui/src/components/text-strikethrough.tsx
+++ b/packages/ui/src/components/text-strikethrough.tsx
@@ -1,5 +1,6 @@
import type { JSX } from "solid-js"
-import { createEffect, onCleanup, onMount } from "solid-js"
+import { onMount } from "solid-js"
+import { createResizeObserver } from "@solid-primitives/resize-observer"
import { createStore } from "solid-js/store"
import { useSpring } from "./motion-spring"
@@ -33,14 +34,7 @@ export function TextStrikethrough(props: {
}
onMount(measure)
-
- createEffect(() => {
- const el = containerRef
- if (!el) return
- const observer = new ResizeObserver(measure)
- observer.observe(el)
- onCleanup(() => observer.disconnect())
- })
+ createResizeObserver(() => containerRef, measure)
// Revealed pixels from left = progress * textWidth
const revealedPx = () => {