// @flow import React, {Component} from 'react'; import {Button, Icon, Dropdown, Menu} from 'antd'; import {FormattedMessage} from 'react-intl'; import ExportModal from './exportModal'; import ImportModal from './importModal'; type Props = { async: boolean, filters: Array, addFilter: Function, displayedFilters: Array, export?: { title: string, filename: string, fields: Array }, import?: Object, filter?: Object, value: Array, selectedValue: Array, query: Object, keyName: string, items: Object, request: Function, deploy: Function } type State = { exportModalVisible: boolean, importModalVisible: boolean } export default class Actions extends Component { state = { exportModalVisible: false, importModalVisible: false } triggerExportModal = () => { this.setState({ exportModalVisible: !this.state.exportModalVisible }); } triggerImportModal = () => { this.setState({ importModalVisible: !this.state.importModalVisible }); } addFilter = (e: Object) => { const {displayedFilters, addFilter} = this.props; const index = Number(e.key); if (displayedFilters.indexOf(index) === -1) { addFilter(index); } } render() { const { filters, value, selectedValue, query, keyName, items, filter, request, deploy } = this.props; const exp = this.props.export || {}; const imp = this.props.import || {}; const exportFields = exp.fields || Object.keys(items).map(keyName => items[keyName]); let importFields = exp.fields || Object.keys(items).map(keyName => items[keyName]); // in csv format, it's difficult to write array or object type importFields = importFields.filter(item => ['string', 'number', 'boolean'].indexOf(item.type) >= 0) const {exportModalVisible, importModalVisible} = this.state; const menu = ( { filters.map((filter, index) => ( {filter.label} )) } ); return ( { this.props.export && ( ) } { this.props.import && ( ) } { filter && ( ) } {/* $FlowFixMe */} {/* $FlowFixMe */} ) } }