azure-devops-ui
Version:
React components for building web UI in Azure DevOps
1 lines • 1.67 kB
JavaScript
import"../../CommonImports";import"../../Core/core.css";import*as React from"react";import{TimerManagement}from"../../Core/TimerManagement";import{FILTER_CHANGE_EVENT}from"../../Utilities/Filter";class FilterBarItem extends React.Component{constructor(t){super(t),this._onFilterChanged=t=>{t.hasOwnProperty(this.props.filterItemKey)&&this.onFilterChanged(t[this.props.filterItemKey])},this._setFilterValue=t=>{this.props.filter&&this.props.filter.setFilterItemState(this.props.filterItemKey,t)},this.timerManagement=new TimerManagement}UNSAFE_componentWillMount(){var t;this.props.filter&&(t=this.props.filter.getFilterItemState(this.props.filterItemKey),this.setState({value:t&&t.value,operator:t&&t.operator}),t=this.getThrottleWait(),this.throttledSetFilterValue=t?this.timerManagement.debounce(this._setFilterValue,t,{leading:!1,trailing:!0}):this._setFilterValue)}UNSAFE_componentWillReceiveProps(t){var e;t.filter&&(e=t.filter.getFilterItemState(t.filterItemKey),this.props.setKey===t.setKey&&(0!==this.getThrottleWait()||t.filter.filterItemStatesAreEqual(t.filterItemKey,e,this.state))||this.setState({value:e&&e.value,operator:e&&e.operator}))}componentDidMount(){this.props.filter&&this.props.filter.subscribe(this._onFilterChanged,FILTER_CHANGE_EVENT)}componentWillUnmount(){this.props.filter&&this.props.filter.unsubscribe(this._onFilterChanged,FILTER_CHANGE_EVENT),this.timerManagement.dispose()}onFilterChanged(t){this.setState({value:t&&t.value,operator:t&&t.operator})}getThrottleWait(){return 0}setFilterValue(t){this.getThrottleWait()&&this.setState({value:t&&t.value,operator:t&&t.operator}),this.throttledSetFilterValue(t)}}export{FilterBarItem};