25 lines
444 B
JavaScript
25 lines
444 B
JavaScript
import { useEffect, useRef } from '@wordpress/element';
|
|
|
|
const { Masonry } = window;
|
|
|
|
export default function MasonryWrapper(props) {
|
|
const { options, children, ...restProps } = props;
|
|
|
|
const ref = useRef();
|
|
|
|
// Init.
|
|
useEffect(() => {
|
|
const instance = new Masonry(ref.current, options);
|
|
|
|
return () => {
|
|
instance.destroy();
|
|
};
|
|
}, [ref, options, children]);
|
|
|
|
return (
|
|
<div ref={ref} {...restProps}>
|
|
{children}
|
|
</div>
|
|
);
|
|
}
|