filter column by new onFilter

This commit is contained in:
Chun-MingChen 2018-03-27 00:16:33 +08:00
parent f34cb4bf63
commit a1477e2ad3
3 changed files with 20 additions and 15 deletions

View File

@ -34,7 +34,7 @@ class NumberFilter extends Component {
const comparator = this.numberFilterComparator.value;
const number = this.numberFilter.value;
if (comparator && number) {
onFilter(column, { number, comparator }, FILTER_TYPE.NUMBER);
onFilter(column, FILTER_TYPE.NUMBER)({ number, comparator });
}
}
@ -53,7 +53,7 @@ class NumberFilter extends Component {
}
const filterValue = e.target.value;
this.timeout = setTimeout(() => {
onFilter(column, { number: filterValue, comparator }, FILTER_TYPE.NUMBER);
onFilter(column, FILTER_TYPE.NUMBER)({ number: filterValue, comparator });
}, delay);
}
@ -65,7 +65,7 @@ class NumberFilter extends Component {
// if (comparator === '') {
// return;
// }
onFilter(column, { number: value, comparator }, FILTER_TYPE.NUMBER);
onFilter(column, FILTER_TYPE.NUMBER)({ number: value, comparator });
}
onChangeComparator(e) {
@ -75,7 +75,7 @@ class NumberFilter extends Component {
// if (value === '') {
// return;
// }
onFilter(column, { number: value, comparator }, FILTER_TYPE.NUMBER);
onFilter(column, FILTER_TYPE.NUMBER)({ number: value, comparator });
}
getComparatorOptions() {
@ -116,7 +116,7 @@ class NumberFilter extends Component {
this.setState(() => ({ isSelected: (number !== '') }));
this.numberFilterComparator.value = comparator;
this.numberFilter.value = number;
onFilter(column, { number, comparator }, FILTER_TYPE.NUMBER);
onFilter(column, FILTER_TYPE.NUMBER)({ number, comparator });
}
cleanFiltered() {
@ -126,7 +126,7 @@ class NumberFilter extends Component {
this.setState(() => ({ isSelected: (value !== '') }));
this.numberFilterComparator.value = comparator;
this.numberFilter.value = value;
onFilter(column, { number: value, comparator }, FILTER_TYPE.NUMBER);
onFilter(column, FILTER_TYPE.NUMBER)({ number: value, comparator });
}
render() {

View File

@ -27,7 +27,7 @@ class SelectFilter extends Component {
componentDidMount() {
const value = this.selectInput.value;
if (value && value !== '') {
this.props.onFilter(this.props.column, value, FILTER_TYPE.SELECT);
this.props.onFilter(this.props.column, FILTER_TYPE.SELECT)(value);
}
}
@ -41,7 +41,7 @@ class SelectFilter extends Component {
if (needFilter) {
const value = this.selectInput.value;
if (value) {
this.props.onFilter(this.props.column, value, FILTER_TYPE.SELECT);
this.props.onFilter(this.props.column, FILTER_TYPE.SELECT)(value);
}
}
}
@ -64,19 +64,19 @@ class SelectFilter extends Component {
const value = (this.props.defaultValue !== undefined) ? this.props.defaultValue : '';
this.setState(() => ({ isSelected: value !== '' }));
this.selectInput.value = value;
this.props.onFilter(this.props.column, value, FILTER_TYPE.SELECT);
this.props.onFilter(this.props.column, FILTER_TYPE.SELECT)(value);
}
applyFilter(value) {
this.selectInput.value = value;
this.setState(() => ({ isSelected: value !== '' }));
this.props.onFilter(this.props.column, value, FILTER_TYPE.SELECT);
this.props.onFilter(this.props.column, FILTER_TYPE.SELECT)(value);
}
filter(e) {
const { value } = e.target;
this.setState(() => ({ isSelected: value !== '' }));
this.props.onFilter(this.props.column, value, FILTER_TYPE.SELECT);
this.props.onFilter(this.props.column, FILTER_TYPE.SELECT)(value);
}
render() {

View File

@ -17,10 +17,14 @@ class TextFilter extends Component {
value: props.defaultValue
};
}
componentDidMount() {
const { onFilter } = this.props;
const defaultValue = this.input.value;
if (defaultValue) {
this.props.onFilter(this.props.column, defaultValue, FILTER_TYPE.TEXT);
onFilter(this.props.column, FILTER_TYPE.TEXT)(defaultValue);
}
}
@ -40,7 +44,7 @@ class TextFilter extends Component {
const filterValue = e.target.value;
this.setState(() => ({ value: filterValue }));
this.timeout = setTimeout(() => {
this.props.onFilter(this.props.column, filterValue, FILTER_TYPE.TEXT);
this.props.onFilter(this.props.column, FILTER_TYPE.TEXT)(filterValue);
}, this.props.delay);
}
@ -53,12 +57,12 @@ class TextFilter extends Component {
cleanFiltered() {
const value = this.props.defaultValue;
this.setState(() => ({ value }));
this.props.onFilter(this.props.column, value, FILTER_TYPE.TEXT);
this.props.onFilter(this.props.column, value, FILTER_TYPE.TEXT)();
}
applyFilter(filterText) {
this.setState(() => ({ value: filterText }));
this.props.onFilter(this.props.column, filterText, FILTER_TYPE.TEXT);
this.props.onFilter(this.props.column, FILTER_TYPE.TEXT)(filterText);
}
handleClick(e) {
@ -79,6 +83,7 @@ class TextFilter extends Component {
defaultValue,
...rest
} = this.props;
// stopPropagation for onClick event is try to prevent sort was triggered.
return (
<input