From 248152263c0588ac1c01caa799457ef6b5a2c5e4 Mon Sep 17 00:00:00 2001 From: dev Date: Fri, 15 May 2026 13:17:10 +0200 Subject: [PATCH] Route Soma carousel autoplay through timers --- .../components/carousel/carousel-provider.svelte.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/uix/soma/components/carousel/carousel-provider.svelte.ts b/src/uix/soma/components/carousel/carousel-provider.svelte.ts index ae897d5f6..0929ceb8f 100644 --- a/src/uix/soma/components/carousel/carousel-provider.svelte.ts +++ b/src/uix/soma/components/carousel/carousel-provider.svelte.ts @@ -86,11 +86,20 @@ export class CarouselProvider { if (!opts.autoplay.current) return; if (this.isDisabled) return; if (this.paused) return; - const id = setInterval(() => this.next(), opts.autoplayDelay.current); - return () => clearInterval(id); + const handle = this.soma.uix.timers.interval( + this.autoplayTimerKey, + opts.autoplayDelay.current, + () => this.next(), + { replace: true, meta: { component: 'carousel', action: 'autoplay' } } + ); + return () => handle.cancel(); }); } + private get autoplayTimerKey() { + return `soma:carousel:${this.opts.id.current}:autoplay`; + } + // ── Slide detection (live DOM query) ──────────────────────────────────── getItems(): HTMLElement[] {