UNPKG

alpinejs-masonry

Version:

Create masonry layouts based on your CSS grid values 🎉

24 lines (18 loc) • 726 B
import { useMasonry } from './useMasonry' export default function (Alpine) { Alpine.directive('masonry', (el, { modifiers }, { cleanup }) => { const waitPollModifier = modifiers[0] const waitPollDuration = modifiers[1] || 2500 waitPollModifier === 'wait' ? setTimeout(() => useMasonry(el), waitPollDuration) : useMasonry(el) waitPollModifier === 'poll' && setInterval(() => useMasonry(el), waitPollDuration) window.addEventListener('resize', () => useMasonry(el)) window.addEventListener('reload:masonry', () => useMasonry(el)) cleanup(() => { window.removeEventListener('resize', useMasonry) window.addEventListener('reload:masonry', useMasonry) }) }) }