import React from 'react'; import PropTypes from 'prop-types'; import { Alert, Modal, ModalBody, ModalFooter, Button } from 'reactstrap'; import { gettext, siteRoot, groupImportMembersExtraMsg } from '../../utils/constants'; import SeahubModalHeader from '@/components/common/seahub-modal-header'; const propTypes = { toggleDialog: PropTypes.func.isRequired, importMembersInBatch: PropTypes.func.isRequired, }; class ImportMembersDialog extends React.Component { constructor(props) { super(props); this.state = { errorMsg: '' }; this.fileInputRef = React.createRef(); } toggle = () => { this.props.toggleDialog(); }; openFileInput = () => { this.fileInputRef.current.click(); }; uploadFile = (e) => { // no file selected if (!this.fileInputRef.current.files.length) { return; } // check file extension let fileName = this.fileInputRef.current.files[0].name; if (fileName.substr(fileName.lastIndexOf('.') + 1) != 'xlsx') { this.setState({ errorMsg: gettext('Please choose a .xlsx file.') }); return; } const file = this.fileInputRef.current.files[0]; this.props.importMembersInBatch(file); this.toggle(); }; render() { let { errorMsg } = this.state; return ( {gettext('Import members from a .xlsx file')} {groupImportMembersExtraMsg &&

{groupImportMembersExtraMsg}

}

{gettext('Download an example file')}

{errorMsg && {errorMsg}}
); } } ImportMembersDialog.propTypes = propTypes; export default ImportMembersDialog;