import React from 'react'; import PropTypes from 'prop-types'; import JSONArrow from './JSONArrow'; import { CircularPropsPassedThroughItemRange } from './types'; interface Props extends CircularPropsPassedThroughItemRange { data: any; nodeType: string; from: number; to: number; renderChildNodes: (props: Props, from: number, to: number) => React.ReactNode; } interface State { expanded: boolean; } export default class ItemRange extends React.Component { static propTypes = { styling: PropTypes.func.isRequired, from: PropTypes.number.isRequired, to: PropTypes.number.isRequired, renderChildNodes: PropTypes.func.isRequired, nodeType: PropTypes.string.isRequired, }; constructor(props: Props) { super(props); this.state = { expanded: false }; } render() { const { styling, from, to, renderChildNodes, nodeType } = this.props; return this.state.expanded ? (
{renderChildNodes(this.props, from, to)}
) : (
{`${from} ... ${to}`}
); } handleClick = () => { this.setState({ expanded: !this.state.expanded }); }; }