import React from 'react'; import {autobind} from '../utils/helper'; import Tabs, {Tab} from './Tabs'; import SearchBox from './SearchBox'; import TableCheckboxes from './TableCheckboxes'; import TreeCheckboxes from './TreeCheckboxes'; import ChainedCheckboxes from './ChainedCheckboxes'; import ListCheckboxes from './ListCheckboxes'; import {Options, Option} from './Select'; import Transfer, {TransferProps} from './Transfer'; import {themeable} from '../theme'; import AssociatedCheckboxes from './AssociatedCheckboxes'; import {localeable} from '../locale'; export interface TabsTransferProps extends Omit< TransferProps, 'selectMode' | 'columns' | 'selectRender' | 'statistics' > { cellRender?: ( column: { name: string; label: string; [propName: string]: any; }, option: Option, colIndex: number, rowIndex: number ) => JSX.Element; } export class TabsTransfer extends React.Component { static defaultProps = { itemRender: (option: Option) => {option.label} }; renderSearchResult(searchResult: Options | null) { const { searchResultMode, noResultsText, searchResultColumns, classnames: cx, value, disabled, onChange, option2value, cellRender } = this.props; const options = searchResult || []; const mode = searchResultMode; return mode === 'table' ? ( ) : mode === 'tree' ? ( ) : mode === 'chained' ? ( ) : ( ); } @autobind renderSelect({onSearch, onSearchCancel, searchResult}: any) { const { options, placeholder, classnames: cx, value, disabled, onChange, onSearch: searchable, option2value, onDeferLoad, cellRender, translate: __ } = this.props; if (!Array.isArray(options) || !options.length) { return (
{__(placeholder || 'placeholder.noOption')}
); } return ( ) : null } > {searchResult !== null ? [ {this.renderSearchResult(searchResult)} ] : options.map((option, index) => ( {option.selectMode === 'table' ? ( ) : option.selectMode === 'tree' ? ( ) : option.selectMode === 'chained' ? ( ) : option.selectMode === 'associated' ? ( ) : ( )} ))} ); } render() { const {className, classnames: cx} = this.props; return ( ); } } export default themeable(localeable(TabsTransfer));