mirror of
				https://github.com/Unleash/unleash.git
				synced 2025-10-27 11:02:16 +01:00 
			
		
		
		
	fix: Add debounce for toggle-filter to avoid lag
This commit is contained in:
		
							parent
							
								
									20a7323916
								
							
						
					
					
						commit
						73f2cebc7a
					
				| @ -53,6 +53,7 @@ | ||||
|     "babel-loader": "^8.0.6", | ||||
|     "clean-webpack-plugin": "^3.0.0", | ||||
|     "css-loader": "^2.1.1", | ||||
|     "debounce": "^1.2.0", | ||||
|     "debug": "^4.1.1", | ||||
|     "enzyme": "^3.9.0", | ||||
|     "enzyme-adapter-react-16": "^1.11.0", | ||||
|  | ||||
| @ -1,8 +1,9 @@ | ||||
| import React from 'react'; | ||||
| import PropTypes from 'prop-types'; | ||||
| import Feature from './feature-list-item-component'; | ||||
| import { debounce } from "debounce"; | ||||
| import { Link } from 'react-router-dom'; | ||||
| import { Icon, FABButton, Textfield, Menu, MenuItem, Card, CardActions, List } from 'react-mdl'; | ||||
| import Feature from './feature-list-item-component'; | ||||
| import { MenuItemWithIcon, DropdownButton, styles as commonStyles } from '../common'; | ||||
| import styles from './feature.scss'; | ||||
| import { CREATE_FEATURE } from '../../permissions'; | ||||
| @ -21,6 +22,14 @@ export default class FeatureListComponent extends React.Component { | ||||
|         hasPermission: PropTypes.func.isRequired, | ||||
|     }; | ||||
| 
 | ||||
|     constructor(props) { | ||||
|         super(); | ||||
|         this.state = { | ||||
|             filter: props.settings.filter, | ||||
|             updateFilter: debounce(props.updateSetting.bind(this, 'filter'), 200) | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     componentDidMount() { | ||||
|         if (this.props.fetchFeatureToggles) { | ||||
|             this.props.fetchFeatureToggles(); | ||||
| @ -34,7 +43,9 @@ export default class FeatureListComponent extends React.Component { | ||||
|     } | ||||
| 
 | ||||
|     setFilter(v) { | ||||
|         this.props.updateSetting('filter', typeof v === 'string' ? v : ''); | ||||
|         const value = typeof v === 'string' ? v : ''; | ||||
|         this.setState({filter: value}); | ||||
|         this.state.updateFilter(value) | ||||
|     } | ||||
| 
 | ||||
|     setSort(v) { | ||||
| @ -51,7 +62,7 @@ export default class FeatureListComponent extends React.Component { | ||||
|                 <div className={styles.toolbar}> | ||||
|                     <Textfield | ||||
|                         floatingLabel | ||||
|                         value={settings.filter} | ||||
|                         value={this.state.filter} | ||||
|                         onChange={e => { | ||||
|                             this.setFilter(e.target.value); | ||||
|                         }} | ||||
|  | ||||
| @ -2683,6 +2683,11 @@ date-now@^0.1.4: | ||||
|   resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" | ||||
|   integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= | ||||
| 
 | ||||
| debounce@^1.2.0: | ||||
|   version "1.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/debounce/-/debounce-1.2.0.tgz#44a540abc0ea9943018dc0eaa95cce87f65cd131" | ||||
|   integrity sha512-mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg== | ||||
| 
 | ||||
| debug@2.6.9, debug@^2.2.0, debug@^2.3.3: | ||||
|   version "2.6.9" | ||||
|   resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user