import clsx from "clsx"; import { useEffect, useRef, useState } from "react"; import { Input } from "./components/ui/input"; import { data } from "./data"; import { Masonry } from "./masonry/Masonry"; const gridTemplateColumns = [ "repeat(auto-fit, minmax(150px, auto))", "1fr 1fr 200px 1fr auto", "auto 1fr minmax(150px, 200px) 1fr auto", ]; export const App = () => { const gridRef = useRef(null); const [columns, setColumns] = useState(gridTemplateColumns[0]); useEffect(() => { const masonry = gridRef.current !== null ? new Masonry(gridRef.current) : undefined; return () => { masonry?.destroy(); }; }, []); return ( <>
Masonry
GitHub

Try it

{gridTemplateColumns.map((item, index) => ( ))}
setColumns(event.target.value)} />
{data.map((item, index) => (

{item.title}

{item.text}

))}
); };