lobe-chat
36 строк · 741.0 Байт
1import { CSSProperties, ReactNode, memo } from 'react';
2import { Flexbox } from 'react-layout-kit';
3
4import { MAX_SIZE_DESKTOP, MIN_IMAGE_SIZE, useStyles } from './style';
5
6interface GridProps {
7children: ReactNode;
8className?: string;
9col?: number;
10gap?: number;
11max?: number;
12min?: number;
13style?: CSSProperties;
14}
15
16const Grid = memo<GridProps>(
17({
18gap = 4,
19col = 3,
20max = MAX_SIZE_DESKTOP,
21min = MIN_IMAGE_SIZE,
22children,
23className,
24style,
25}) => {
26const { styles, cx } = useStyles({ col, gap, max, min });
27
28return (
29<Flexbox className={cx(styles.container, className)} gap={gap} horizontal style={style}>
30{children}
31</Flexbox>
32);
33},
34);
35
36export default Grid;
37