diff --git a/src/js/view/render.js b/src/js/view/render.js index 8e5cb46..4e8da83 100644 --- a/src/js/view/render.js +++ b/src/js/view/render.js @@ -6,11 +6,13 @@ import { showSection } from './displayToggles'; import { setupSearchFilters, setupInfoModal } from './setupListeners'; import { parseReferences } from './wordManagement'; import { renderAd } from '../ads'; +import { sortWords } from './wordManagement'; export function renderAll() { renderTheme(); renderDictionaryDetails(); renderPartsOfSpeech(); + sortWords(); renderWords(); } diff --git a/src/js/view/wordManagement.js b/src/js/view/wordManagement.js index ff1fe64..8dfb04f 100644 --- a/src/js/view/wordManagement.js +++ b/src/js/view/wordManagement.js @@ -1,4 +1,15 @@ import { wordExists, getHomonymnIndexes } from "./utilities"; +import removeDiacritics from "../StackOverflow/removeDiacritics"; + +export function sortWords() { + const { sortByDefinition } = window.currentDictionary.settings; + const sortBy = sortByDefinition ? 'definition' : 'name'; + + window.currentDictionary.words.sort((wordA, wordB) => { + if (removeDiacritics(wordA[sortBy]).toLowerCase() === removeDiacritics(wordB[sortBy]).toLowerCase()) return 0; + return removeDiacritics(wordA[sortBy]).toLowerCase() > removeDiacritics(wordB[sortBy]).toLowerCase() ? 1 : -1; + }); +} export function parseReferences(detailsMarkdown) { const references = detailsMarkdown.match(/\{\{.+?\}\}/g);