import React from 'react'; import SyntaxHighlighter from 'react-syntax-highlighter'; import { github } from 'react-syntax-highlighter/dist/styles'; const HighlightedSql = (props) => { const sql = props.sql || ''; let lines = sql.split('\n'); if (lines.length >= props.maxLines) { lines = lines.slice(0, props.maxLines); lines.push('{...}'); } let shownSql = sql; if (props.shrink) { shownSql = lines.map((line) => { if (line.length > props.maxWidth) { return line.slice(0, props.maxWidth) + '{...}'; } return line; }) .join('\n'); } return (
{shownSql}
); }; HighlightedSql.defaultProps = { maxWidth: 60, maxLines: 6, shrink: false, }; HighlightedSql.propTypes = { sql: React.PropTypes.string, maxWidth: React.PropTypes.number, maxLines: React.PropTypes.number, shrink: React.PropTypes.bool, }; export default HighlightedSql;