From 9fe0da58dbb56cbd3ee94cfefb680f0705f05762 Mon Sep 17 00:00:00 2001 From: Robbie Antenesse Date: Thu, 6 Jun 2019 11:47:21 -0600 Subject: [PATCH] Sort words in public view correctly --- src/js/view/render.js | 2 ++ src/js/view/wordManagement.js | 11 +++++++++++ 2 files changed, 13 insertions(+) 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);