import React, { HTMLAttributes, memo } from 'react' export type ComponentProps = HTMLAttributes export type GridItemProps = ComponentProps & { row: number col: number rowSpan?: number colSpan?: number } export const gridDefaultStyle = { display: 'grid', margin: '8px', justifyItems: 'stretch', alignItems: 'stretch', } export const Grid = memo(({ children, style, ...other }) => (
{children}
)) export const GridItem = memo(({ children, row, col, rowSpan, colSpan, style, ...other }) => { const localRow = +row const localCol = +col const localColSpan = colSpan ? colSpan - 1 : 0 const localRowSpan = rowSpan ? rowSpan - 1 : 0 const gridItemStyle = { gridColumnStart: localCol, gridColumnEnd: localCol + localColSpan, gridRowStart: localRow, gridRowEnd: localRow + localRowSpan, padding: '4px', ...style, } return (
{children}
) }) export const Flex = memo(({ children, style, ...other }) => (
{children}
))