Skip to content

Commit e0a8aa0

Browse files
committed
fix: maximum update depth exceeded
1 parent 94d1c67 commit e0a8aa0

File tree

2 files changed

+8
-10
lines changed

2 files changed

+8
-10
lines changed

libs/react-plock/src/index.tsx

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
1-
import React, { useState } from 'react';
2-
import { createSafeArray } from './utils/createSafeArray';
1+
import React, { useState, useMemo } from 'react';
32
import { useGridStyles } from './utils/useGridStyles';
43
import { useMediaValues } from './utils/useMediaValues';
54

5+
export function asList(data: number | number[]) {
6+
return Array.isArray(data) ? data : [data];
7+
}
8+
69
export type MasonryProps<T> = React.ComponentPropsWithoutRef<'div'> & {
710
items: T[];
811
render: (item: T, idx: number) => React.ReactNode;
@@ -23,11 +26,9 @@ export function Masonry<T>({
2326
...rest
2427
}: MasonryProps<T>) {
2528
const [heights, setHeights] = useState<Map<T, number>>(new Map());
26-
const { columns, gap } = useMediaValues(
27-
config.media,
28-
createSafeArray(config.columns),
29-
createSafeArray(config.gap)
30-
);
29+
const _columns = useMemo(() => asList(config.columns), [config.columns]);
30+
const _gaps = useMemo(() => asList(config.gap), [config.gap]);
31+
const { columns, gap } = useMediaValues(config.media, _columns, _gaps);
3132

3233
const styles = useGridStyles(columns, gap);
3334

libs/react-plock/src/utils/createSafeArray.ts

Lines changed: 0 additions & 3 deletions
This file was deleted.

0 commit comments

Comments
 (0)