import React, { useState } from 'react'; import { useTranslation } from 'next-i18next'; import { Button, Collapse, } from 'reactstrap'; import MarkdownTable from '~/client/models/MarkdownTable'; type MarkdownTableDataImportFormProps = { onCancel: () => void, onImport: (table: MarkdownTable) => void, } export const MarkdownTableDataImportForm = (props: MarkdownTableDataImportFormProps): JSX.Element => { const { onCancel, onImport } = props; const { t } = useTranslation('commons', { keyPrefix: 'handsontable_modal.data_import_form' }); const [dataFormat, setDataFormat] = useState('csv'); const [data, setData] = useState(''); const [parserErrorMessage, setParserErrorMessage] = useState(null); const convertFormDataToMarkdownTable = () => { let result; switch (dataFormat) { case 'csv': result = MarkdownTable.fromDSV(data, ','); break; case 'tsv': result = MarkdownTable.fromDSV(data, '\t'); break; case 'html': result = MarkdownTable.fromHTMLTableTag(data); break; } return result.normalizeCells(); }; const importButtonHandler = () => { try { const markdownTable = convertFormDataToMarkdownTable(); onImport(markdownTable); setParserErrorMessage(null); } catch (e) { setParserErrorMessage(e.message); } }; return (