fix(explorer): default sortFn implementation (#511)
* fix: use `numeric` + `base` for localeCompare * docs(explorer): update default sortFn
This commit is contained in:
		@@ -75,7 +75,12 @@ Every function you can pass is optional. By default, only a `sort` function will
 | 
				
			|||||||
Component.Explorer({
 | 
					Component.Explorer({
 | 
				
			||||||
  sortFn: (a, b) => {
 | 
					  sortFn: (a, b) => {
 | 
				
			||||||
    if ((!a.file && !b.file) || (a.file && b.file)) {
 | 
					    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) {
 | 
					    if (a.file && !b.file) {
 | 
				
			||||||
      return 1
 | 
					      return 1
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,7 +15,12 @@ const defaultOptions = {
 | 
				
			|||||||
  sortFn: (a, b) => {
 | 
					  sortFn: (a, b) => {
 | 
				
			||||||
    // Sort order: folders first, then files. Sort folders and files alphabetically
 | 
					    // Sort order: folders first, then files. Sort folders and files alphabetically
 | 
				
			||||||
    if ((!a.file && !b.file) || (a.file && b.file)) {
 | 
					    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) {
 | 
					    if (a.file && !b.file) {
 | 
				
			||||||
      return 1
 | 
					      return 1
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user