/** * Carousel Component - React Wrapper for Vendor JS * * @vendor-dependency @vendor-web/js/patterns/carousel.js * @cleanup-status ✅ Implemented with useEffect cleanup */ import React, { useRef, useEffect, ReactNode } from 'react'; import { carousel } from '@vendor-web/js/patterns/carousel.js'; interface CarouselProps { children: ReactNode; className?: string; } export const Carousel: React.FC = ({ children, className }) => { const carouselRef = useRef(null); useEffect(() => { if (!carouselRef.current) return; // 初始化廠商 carousel const cleanup = carousel(carouselRef.current); // Cleanup 函數:當元件卸載時清理資源 return () => { if (typeof cleanup === 'function') { cleanup(); } }; }, []); return (
{children}
); };