-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
33 lines (26 loc) · 811 Bytes
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
const React = require("react");
const MagicGrid = require("magic-grid");
const useMagicGrid = (props) => {
const gridRef = React.useRef(null);
const {container} = props;
React.useEffect(() => {
if (!container) {
throw new Error("Container name or element is required");
}
if (!gridRef.current) {
gridRef.current = new MagicGrid({...props, items: props.items || 1, static: false});
gridRef.current.listen();
return;
}
const grid = gridRef.current;
const currentContainer = document.querySelector(grid.containerClass);
const containerChanged = grid.container !== currentContainer;
if (currentContainer && containerChanged) {
grid.setContainer(currentContainer);
}
});
return gridRef.current;
};
module.exports = {
useMagicGrid
}