Web: Common: fixed filter

This commit is contained in:
Nikita Gopienko 2020-08-25 14:03:49 +03:00
parent 1975943d9b
commit 366821d868
3 changed files with 30 additions and 37 deletions

View File

@ -389,7 +389,7 @@ class FilterInput extends React.Component {
if (fullWidth <= this.minWidth || filterWidth > fullWidth / 2) this.updateFilter();
}
}
onClickFilterItem(event, filterItem, openItem) {
onClickFilterItem(event, filterItem) {
const currentFilterItems = cloneObjectsArray(this.state.filterValues);
@ -415,7 +415,6 @@ class FilterInput extends React.Component {
defaultOptionLabel: filterItem.defaultOptionLabel,
defaultSelectLabel: filterItem.defaultSelectLabel,
selectedItem,
openItem
};
currentFilterItems.push(selectFilterItem);
this.setState({

View File

@ -309,11 +309,9 @@ class FilterBlock extends React.Component {
}
if (hideFilterItems.length > 0) {
let open = false;
let showItem = false;
let hideFilterItemsList = hideFilterItems.map(function (item) {
const { key, group, groupLabel, label, typeSelector, groupsCaption, defaultOptionLabel, defaultOption, defaultSelectLabel, selectedItem, openItem } = item;
const { key, group, groupLabel, label, typeSelector, groupsCaption, defaultOptionLabel, defaultOption, defaultSelectLabel, selectedItem } = item;
open = key.indexOf('_-1') == -1 ? false : true
showItem = openItem || !!(item.selectedItem ? item.selectedItem.key : item.key);
return <FilterItem
block={true}
isDisabled={_this.props.isDisabled}
@ -337,7 +335,7 @@ class FilterBlock extends React.Component {
</FilterItem>
})
hideItems.push(
<HideFilter key="hide-filter" count={hideFilterItems.length} isDisabled={this.props.isDisabled} openItem={showItem} open={open}>
<HideFilter key="hide-filter" count={hideFilterItems.length} isDisabled={this.props.isDisabled} open={open}>
{
hideFilterItemsList
}
@ -353,7 +351,7 @@ class FilterBlock extends React.Component {
let result = [];
d.forEach(element => {
if (!element.inSubgroup) {
element.onClick = !element.isSeparator && !element.isHeader && !element.disabled ? ((e, open) => _this.props.onClickFilterItem(e, element, open)) : undefined;
element.onClick = !element.isSeparator && !element.isHeader && !element.disabled ? ((e) => _this.props.onClickFilterItem(e, element)) : undefined;
element.key = element.group != element.key ? element.group + "_" + element.key : element.key;
if (element.subgroup != undefined) {
if (d.findIndex(x => x.group === element.subgroup) == -1) element.disabled = true;

View File

@ -32,39 +32,36 @@ class HideFilter extends React.Component {
render() {
//console.log("HideFilter render");
const { isDisabled, count, children, openItem } = this.props;
const { isDisabled, count, children } = this.props;
const { popoverOpen } = this.state;
return (
<>
<div
className="styled-hide-filter"
onClick={this.onClick.bind(this, !popoverOpen)}
ref={this.ref}
>
<StyledHideFilterButton id="PopoverLegacy" isDisabled={isDisabled}>
{count}
<Caret isOpen={popoverOpen && openItem}>
<Icons.ExpanderDownIcon
color="#A3A9AE"
isfill={true}
size="scale"
/>
</Caret>
</StyledHideFilterButton>
<div
className="styled-hide-filter"
onClick={this.onClick.bind(this, !popoverOpen)}
ref={this.ref}
>
<StyledHideFilterButton id="PopoverLegacy" isDisabled={isDisabled}>
{count}
<Caret isOpen={popoverOpen}>
<Icons.ExpanderDownIcon
color="#A3A9AE"
isfill={true}
size="scale"
/>
</Caret>
</StyledHideFilterButton>
<div className="dropdown-style" ref={this.dropDownRef}>
<DropDown
className="drop-down"
clickOutsideAction={this.handleClickOutside}
manualY="8px"
open={popoverOpen && openItem}
>
{children}
</DropDown>
</div>
<div className="dropdown-style" ref={this.dropDownRef}>
<DropDown
className="drop-down"
clickOutsideAction={this.handleClickOutside}
manualY="8px"
open={popoverOpen}
>
{children}
</DropDown>
</div>
{popoverOpen && !openItem && children}
</>
</div>
);
}
}
@ -73,6 +70,5 @@ HideFilter.propTypes = {
count: PropTypes.number,
isDisabled: PropTypes.bool,
open: PropTypes.bool,
openItem: PropTypes.bool
}
export default HideFilter;