fix(explorer): default sortFn implementation (#511)
* fix: use `numeric` + `base` for localeCompare * docs(explorer): update default sortFn
This commit is contained in:
		
							parent
							
								
									d22c3c107a
								
							
						
					
					
						commit
						d4c122646c
					
				
					 2 changed files with 12 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -75,7 +75,12 @@ Every function you can pass is optional. By default, only a `sort` function will
 | 
			
		|||
Component.Explorer({
 | 
			
		||||
  sortFn: (a, b) => {
 | 
			
		||||
    if ((!a.file && !b.file) || (a.file && b.file)) {
 | 
			
		||||
      return a.displayName.localeCompare(b.displayName)
 | 
			
		||||
      // sensitivity: "base": Only strings that differ in base letters compare as unequal. Examples: a ≠ b, a = á, a = A
 | 
			
		||||
      // numeric: true: Whether numeric collation should be used, such that "1" < "2" < "10"
 | 
			
		||||
      return a.displayName.localeCompare(b.displayName, undefined, {
 | 
			
		||||
        numeric: true,
 | 
			
		||||
        sensitivity: "base",
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
    if (a.file && !b.file) {
 | 
			
		||||
      return 1
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -15,7 +15,12 @@ const defaultOptions = {
 | 
			
		|||
  sortFn: (a, b) => {
 | 
			
		||||
    // Sort order: folders first, then files. Sort folders and files alphabetically
 | 
			
		||||
    if ((!a.file && !b.file) || (a.file && b.file)) {
 | 
			
		||||
      return a.displayName.localeCompare(b.displayName)
 | 
			
		||||
      // numeric: true: Whether numeric collation should be used, such that "1" < "2" < "10"
 | 
			
		||||
      // sensitivity: "base": Only strings that differ in base letters compare as unequal. Examples: a ≠ b, a = á, a = A
 | 
			
		||||
      return a.displayName.localeCompare(b.displayName, undefined, {
 | 
			
		||||
        numeric: true,
 | 
			
		||||
        sensitivity: "base",
 | 
			
		||||
      })
 | 
			
		||||
    }
 | 
			
		||||
    if (a.file && !b.file) {
 | 
			
		||||
      return 1
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue