import React from "react"; import { CustomNodeProps } from "src/containers/Views/GraphView/CustomNode"; import { TextRenderer } from "./TextRenderer"; import * as Styled from "./styles"; type Value = [string, string]; type RowProps = { val: Value; x: number; y: number; index: number; }; const Row = ({ val, x, y, index }: RowProps) => { const key = JSON.stringify(val); const rowKey = JSON.stringify(val[0]).replaceAll('"', ""); const rowValue = JSON.stringify(val[1]); return ( {rowKey}: {rowValue} ); }; const Node: React.FC = ({ node, x, y }) => ( {(node.text as Value[]).map((val, idx) => ( ))} ); function propsAreEqual(prev: CustomNodeProps, next: CustomNodeProps) { return String(prev.node.text) === String(next.node.text) && prev.node.width === next.node.width; } export const ObjectNode = React.memo(Node, propsAreEqual);