import React from 'react'; import PropTypes from 'prop-types'; // TODO: GW-333 // import FormGroup from 'react-bootstrap/es/FormGroup'; // import ControlLabel from 'react-bootstrap/es/ControlLabel'; // import FormControl from 'react-bootstrap/es/FormControl'; // import Collapse from 'react-bootstrap/es/Collapse'; import { Button, } from 'reactstrap'; import MarkdownTable from '../../models/MarkdownTable'; export default class MarkdownTableDataImportForm extends React.Component { constructor(props) { super(props); this.state = { dataFormat: 'csv', data: '', parserErrorMessage: null, }; this.importButtonHandler = this.importButtonHandler.bind(this); } importButtonHandler() { try { const markdownTable = this.convertFormDataToMarkdownTable(); this.props.onImport(markdownTable); this.setState({ parserErrorMessage: null }); } catch (e) { this.setState({ parserErrorMessage: e.message }); } } convertFormDataToMarkdownTable() { let result; switch (this.state.dataFormat) { case 'csv': result = MarkdownTable.fromDSV(this.state.data, ','); break; case 'tsv': result = MarkdownTable.fromDSV(this.state.data, '\t'); break; case 'html': result = MarkdownTable.fromHTMLTableTag(this.state.data); break; } return result.normalizeCells(); } render() { return (
); } } MarkdownTableDataImportForm.propTypes = { onCancel: PropTypes.func, onImport: PropTypes.func, };