diff --git a/__tests__/newFileMenu.spec.ts b/__tests__/newFileMenu.spec.ts index f463b6ea..8c903f18 100644 --- a/__tests__/newFileMenu.spec.ts +++ b/__tests__/newFileMenu.spec.ts @@ -409,7 +409,7 @@ describe('NewFileMenu sort test', () => { const entry2 = { id: 'image', - displayName: 'Create new image', + displayName: 'Create new image 2', templateName: 'New drawing.png', iconClass: 'icon-filetype-image', order: 1, @@ -425,14 +425,25 @@ describe('NewFileMenu sort test', () => { handler: () => {}, } + const entry4 = { + id: 'image2', + displayName: 'Create new image 1', + templateName: 'New drawing 2.png', + iconClass: 'icon-filetype-image', + order: 1, + handler: () => {}, + } + addNewFileMenuEntry(entry1) addNewFileMenuEntry(entry2) addNewFileMenuEntry(entry3) + addNewFileMenuEntry(entry4) const entries = getNewFileMenuEntries() - expect(entries).toHaveLength(3) + expect(entries).toHaveLength(4) expect(entries[0]).toBe(entry1) expect(entries[1]).toBe(entry3) - expect(entries[2]).toBe(entry2) + expect(entries[2]).toBe(entry4) + expect(entries[3]).toBe(entry2) }) }) diff --git a/lib/index.ts b/lib/index.ts index 2c280c0d..4ae7324c 100644 --- a/lib/index.ts +++ b/lib/index.ts @@ -71,9 +71,13 @@ export const removeNewFileMenuEntry = function(entry: Entry | string) { export const getNewFileMenuEntries = function(context?: Folder) { const newFileMenu = getNewFileMenu() return newFileMenu.getEntries(context).sort((a: Entry, b: Entry) => { - if (a.order !== undefined && b.order !== undefined) { + // If defined and different, sort by order + if (a.order !== undefined + && b.order !== undefined + && a.order !== b.order) { return a.order - b.order } - return a.displayName.localeCompare(b.displayName) + // else sort by display name + return a.displayName.localeCompare(b.displayName, undefined, { numeric: true, sensitivity: 'base' }) }) }