From 26210d495aed813baac1095b5c7a7c7879d2d206 Mon Sep 17 00:00:00 2001 From: Zero~Informatique Date: Fri, 25 Sep 2020 10:42:33 +0200 Subject: viewer: refactor how the available sorts are stored github: resolves #259 --- viewer/src/services/itemComparators.ts | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) (limited to 'viewer/src/services') diff --git a/viewer/src/services/itemComparators.ts b/viewer/src/services/itemComparators.ts index 82757ca..bd9accb 100644 --- a/viewer/src/services/itemComparators.ts +++ b/viewer/src/services/itemComparators.ts @@ -20,28 +20,25 @@ import { TranslateResult } from "vue-i18n"; import i18n from "@/plugins/i18n"; export type ItemComparator = (left: Gallery.Item, right: Gallery.Item) => number; -export type ItemSort = { name: Gallery.ItemSortStr; text: TranslateResult; fn: ItemComparator }; +export type ItemSort = { text: TranslateResult; fn: ItemComparator }; export default class ItemComparators { - static readonly ITEM_SORTS: ItemSort[] = [ - { - name: "title_asc", + static readonly ITEM_SORTS: Record = { + title_asc: { text: i18n.t("command.sort.byTitleAsc"), fn: ItemComparators.chain(ItemComparators.sortByTitleAsc, ItemComparators.sortByPathAsc), }, - { - name: "date_asc", + date_asc: { text: i18n.t("command.sort.byDateAsc"), fn: ItemComparators.chain(ItemComparators.sortByDateAsc, ItemComparators.sortByPathAsc), }, - { - name: "date_desc", + date_desc: { text: i18n.t("command.sort.byDateDesc"), fn: ItemComparators.reverse(ItemComparators.chain(ItemComparators.sortByDateAsc, ItemComparators.sortByPathAsc)), }, - ]; + }; - static readonly DEFAULT = ItemComparators.ITEM_SORTS[1].fn; + static readonly DEFAULT = ItemComparators.ITEM_SORTS.date_asc; static sortByPathAsc(left: Gallery.Item, right: Gallery.Item): number { return left.path.localeCompare(right.path, undefined, { -- cgit v1.2.3