import React from 'react'; import PropTypes from 'prop-types'; import FormGroup from 'react-bootstrap/es/FormGroup'; import ControlLabel from 'react-bootstrap/es/ControlLabel'; import FormControl from 'react-bootstrap/es/FormControl'; import Button from 'react-bootstrap/es/Button'; import MarkdownTable from '../../models/MarkdownTable'; import Collapse from 'react-bootstrap/es/Collapse'; 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; } render() { return (
Select Data Format this.setState({dataFormat: e.target.value})}> Import Data this.setState({data: e.target.value})}/> Parse Error
); } } MarkdownTableDataImportForm.propTypes = { onCancel: PropTypes.func, onImport: PropTypes.func };