import _ from 'lodash'; import { observer } from 'mobx-react'; import * as React from 'react'; import { ColumnSelector, ColumnSelectorProps, ColumnVisibilityDef, } from './ColumnSelector'; import { SearchBox } from './SearchBox'; type DataTableToolbarProps = { showColumnVisibility?: boolean; visibilityToggle?: (selectedColumnIds: string[]) => void; columnVisibility?: ColumnVisibilityDef[]; columnSelectorProps?: ColumnSelectorProps; showSearchBox?: boolean; onSearch?: (searchText: string) => void; filterInputRef?: (input: HTMLInputElement) => void; searchDelay?: number; searchPlaceHolder?: string; info?: JSX.Element; }; @observer export class DataTableToolbar extends React.Component< DataTableToolbarProps, {} > { public static defaultProps: Partial = { showColumnVisibility: true, showSearchBox: true, searchDelay: 400, }; protected get searchBoxMargin() { return this.props.showColumnVisibility ? 5 : 'auto'; } public render() { return (
{this.props.info} {this.props.showColumnVisibility && (
)} {this.props.showSearchBox && (
)}
); } } export default DataTableToolbar;