Files
korean-frontend/src/lib/actions/swiper.svelte.ts
Chief-spartan-117 de81c42742 Init
2025-09-25 22:38:59 +05:45

28 lines
641 B
TypeScript

import Swiper from 'swiper';
import { Autoplay, Thumbs } from 'swiper/modules';
import 'swiper/swiper-bundle.css';
import type { CSSSelector, SwiperOptions } from 'swiper/types';
export function swiper(node: CSSSelector | HTMLElement, options = {}) {
let swiperInstance: Swiper;
$effect(() => {
swiperInstance = new Swiper(node, {
modules: [Autoplay, Thumbs],
...options
});
return () => {
swiperInstance.destroy();
};
});
return {
update(newOptions: SwiperOptions | undefined) {
swiperInstance.destroy();
swiperInstance = new Swiper(node, {
modules: [Autoplay, Thumbs],
...newOptions
});
}
};
}