Merge pull request #3783 from matrix-org/t3chguy/fuzzy_sort_memberlist
fuzzy-sort MemberListpull/21833/head
						commit
						eac66f020f
					
				|  | @ -32,6 +32,10 @@ const INITIAL_LOAD_NUM_MEMBERS = 30; | |||
| const INITIAL_LOAD_NUM_INVITED = 5; | ||||
| const SHOW_MORE_INCREMENT = 100; | ||||
| 
 | ||||
| // Regex applied to filter our punctuation in member names before applying sort, to fuzzy it a little
 | ||||
| // matches all ASCII punctuation: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
 | ||||
| const SORT_REGEX = /[\x21-\x2F\x3A-\x40\x5B-\x60\x7B-\x7E]+/g; | ||||
| 
 | ||||
| module.exports = createReactClass({ | ||||
|     displayName: 'MemberList', | ||||
| 
 | ||||
|  | @ -336,10 +340,13 @@ module.exports = createReactClass({ | |||
|         } | ||||
| 
 | ||||
|         // Fourth by name (alphabetical)
 | ||||
|         const nameA = memberA.name[0] === '@' ? memberA.name.substr(1) : memberA.name; | ||||
|         const nameB = memberB.name[0] === '@' ? memberB.name.substr(1) : memberB.name; | ||||
|         const nameA = (memberA.name[0] === '@' ? memberA.name.substr(1) : memberA.name).replace(SORT_REGEX, ""); | ||||
|         const nameB = (memberB.name[0] === '@' ? memberB.name.substr(1) : memberB.name).replace(SORT_REGEX, ""); | ||||
|         // console.log(`Comparing userA_name=${nameA} against userB_name=${nameB} - returning`);
 | ||||
|         return nameA.localeCompare(nameB); | ||||
|         return nameA.localeCompare(nameB, { | ||||
|             ignorePunctuation: true, | ||||
|             sensitivity: "base", | ||||
|         }); | ||||
|     }, | ||||
| 
 | ||||
|     onSearchQueryChanged: function(searchQuery) { | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Michael Telatynski
						Michael Telatynski