import React, { memo } from "react"; import { RendererProps } from "./Grid"; import { Group, Rect, Text } from "react-konva"; import { KonvaEventObject } from "konva/types/Node"; import { isNull } from "./helpers"; export interface CellProps extends RendererProps { value?: string; textColor?: string; padding?: number; onClick?: (e: KonvaEventObject) => void; } /** * Default cell component * @param props */ const Cell: React.FC = memo((props) => { const { x, y, width, height, value, fill = "white", strokeWidth = 0.5, stroke = "#aaa", align = "left", verticalAlign = "middle", textColor = "#333", padding = 5, fontFamily = "Arial, sans-serif", fontSize = 12, children, wrap = "none", ...rest } = props; return ( {isNull(value) ? null : ( )} {children} ); }); /** * Default CellRenderer * @param props */ const CellRenderer = (props: RendererProps) => { return ; }; export default CellRenderer; export { CellRenderer, Cell };