From 00510820a2794efcadbc83f7f8b54318fe198ecb Mon Sep 17 00:00:00 2001
From: Zéro~Informatique
Date: Tue, 26 Jul 2022 08:44:34 +0200
Subject: viewer: migrate to vue 3, general refactoring and cleanup
Non-exhaustive list of fixes and improvements done at the same time:
- html default background to grey (avoids white flash during init)
- unified links behavior
- added more theme variables
- removed the flex-expand transition (it wasn't working) and replaced it
with a slide
- fixed LdLoading not centered on the content
- title on removable tags
- fixed an issue with encoded URI from vue-router
- unified Item resource URLs
- removed the iframe for PlainTextViewer (it wasn't working properly)
and replaced it with a pre
- fixed clear and search buttons tabindex
- fixed the information panel bumping up during the fade animation of
tag's dropdown
- fixed some focus outlines not appearing correctly
- moved CSS variables to the :root context
- Code cleaning
GitHub: closes #217
GitHub: closes #300
GitHub: closes #297
GitHub: closes #105
GitHub: closes #267
GitHub: closes #275
GitHub: closes #228
GitHub: closes #215
GitHub: closes #112
---
viewer/src/services/itemComparators.ts | 74 ----------------------------------
1 file changed, 74 deletions(-)
delete mode 100644 viewer/src/services/itemComparators.ts
(limited to 'viewer/src/services/itemComparators.ts')
diff --git a/viewer/src/services/itemComparators.ts b/viewer/src/services/itemComparators.ts
deleted file mode 100644
index aceff79..0000000
--- a/viewer/src/services/itemComparators.ts
+++ /dev/null
@@ -1,74 +0,0 @@
-/* ldgallery - A static generator which turns a collection of tagged
--- pictures into a searchable web gallery.
---
--- Copyright (C) 2019-2020 Guillaume FOUET
---
--- This program is free software: you can redistribute it and/or modify
--- it under the terms of the GNU Affero General Public License as
--- published by the Free Software Foundation, either version 3 of the
--- License, or (at your option) any later version.
---
--- This program is distributed in the hope that it will be useful,
--- but WITHOUT ANY WARRANTY; without even the implied warranty of
--- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
--- GNU Affero General Public License for more details.
---
--- You should have received a copy of the GNU Affero General Public License
--- along with this program. If not, see .
-*/
-import { Item, ItemSortStr } from "@/@types/gallery";
-import i18n from "@/plugins/i18n";
-import { TranslateResult } from "vue-i18n";
-
-export type ItemComparator = (left: Item, right: Item) => number;
-export type ItemSort = { text: TranslateResult; fn: ItemComparator };
-
-export default class ItemComparators {
- static readonly ITEM_SORTS: Record = {
- title_asc: {
- text: i18n.t("command.sort.byTitleAsc"),
- fn: ItemComparators.chain(ItemComparators.sortByTitleAsc, ItemComparators.sortByPathAsc),
- },
- date_asc: {
- text: i18n.t("command.sort.byDateAsc"),
- fn: ItemComparators.chain(ItemComparators.sortByDateAsc, ItemComparators.sortByPathAsc),
- },
- date_desc: {
- text: i18n.t("command.sort.byDateDesc"),
- fn: ItemComparators.reverse(ItemComparators.chain(ItemComparators.sortByDateAsc, ItemComparators.sortByPathAsc)),
- },
- };
-
- static readonly DEFAULT = ItemComparators.ITEM_SORTS.date_asc;
-
- static sortByPathAsc(left: Item, right: Item): number {
- return left.path.localeCompare(right.path, undefined, {
- sensitivity: "base",
- ignorePunctuation: true,
- numeric: true,
- });
- }
-
- static sortByTitleAsc(left: Item, right: Item): number {
- return left.title.localeCompare(right.title, undefined, {
- sensitivity: "base",
- ignorePunctuation: true,
- numeric: true,
- });
- }
-
- static sortByDateAsc(left: Item, right: Item): number {
- return left.datetime.localeCompare(right.datetime); // TODO: handle timezones
- }
-
- static reverse(fn: ItemComparator): ItemComparator {
- return (l, r) => -fn(l, r);
- }
-
- static chain(primary: ItemComparator, tieBreaker: ItemComparator): ItemComparator {
- return (l, r) => {
- const primaryComparison = primary(l, r);
- return primaryComparison !== 0 ? primaryComparison : tieBreaker(l, r);
- };
- }
-}
--
cgit v1.2.3