|
|
@@ -17,10 +17,11 @@ export interface HeaderSearchProps {
|
|
|
dataSource: DataSourceItemType[];
|
|
|
defaultOpen: boolean;
|
|
|
open?: boolean;
|
|
|
+ defaultValue?: string;
|
|
|
}
|
|
|
|
|
|
interface HeaderSearchState {
|
|
|
- value: string;
|
|
|
+ value?: string;
|
|
|
searchMode: boolean;
|
|
|
}
|
|
|
|
|
|
@@ -52,7 +53,7 @@ export default class HeaderSearch extends Component<HeaderSearchProps, HeaderSea
|
|
|
super(props);
|
|
|
this.state = {
|
|
|
searchMode: props.defaultOpen,
|
|
|
- value: '',
|
|
|
+ value: props.defaultValue,
|
|
|
};
|
|
|
this.debouncePressEnter = debounce(this.debouncePressEnter, 500, {
|
|
|
leading: true,
|
|
|
@@ -93,18 +94,17 @@ export default class HeaderSearch extends Component<HeaderSearchProps, HeaderSea
|
|
|
leaveSearchMode = () => {
|
|
|
this.setState({
|
|
|
searchMode: false,
|
|
|
- value: '',
|
|
|
});
|
|
|
};
|
|
|
|
|
|
debouncePressEnter = () => {
|
|
|
const { onPressEnter } = this.props;
|
|
|
const { value } = this.state;
|
|
|
- onPressEnter(value);
|
|
|
+ onPressEnter(value || '');
|
|
|
};
|
|
|
|
|
|
render() {
|
|
|
- const { className, placeholder, open, ...restProps } = this.props;
|
|
|
+ const { className, defaultValue, placeholder, open, ...restProps } = this.props;
|
|
|
const { searchMode, value } = this.state;
|
|
|
delete restProps.defaultOpen; // for rc-select not affected
|
|
|
const inputClass = classNames(styles.input, {
|
|
|
@@ -134,6 +134,7 @@ export default class HeaderSearch extends Component<HeaderSearchProps, HeaderSea
|
|
|
ref={node => {
|
|
|
this.inputRef = node;
|
|
|
}}
|
|
|
+ defaultValue={defaultValue}
|
|
|
aria-label={placeholder}
|
|
|
placeholder={placeholder}
|
|
|
onKeyDown={this.onKeyDown}
|