'use client' import { debounce } from '@/utils/debounce' import { useEffect, useRef, useState } from 'react' export default function FancyBox() { const rContainer = useRef(null) const [items, setItems] = useState([]) useEffect(() => { const populate = debounce(() => { const elm = rContainer.current if (!elm) return const width = elm.clientWidth const height = elm.clientHeight const SIZE = 32 const cols = Math.ceil(width / SIZE) const rows = Math.ceil(height / SIZE) const items = Array.from(Array(cols * rows)).map((_, i) => i) setItems(items) }, 100) populate() window.addEventListener('resize', populate) return () => { window.removeEventListener('resize', populate) } }, []) return (
{items.map((i) => { const c = 1 + (i % 7) return
})}
) }