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/main.ts | 65 +++++++++++++++++++++--------------------------------- 1 file changed, 25 insertions(+), 40 deletions(-) (limited to 'viewer/src/main.ts') diff --git a/viewer/src/main.ts b/viewer/src/main.ts index d0ee3af..8fa2f8f 100644 --- a/viewer/src/main.ts +++ b/viewer/src/main.ts @@ -1,42 +1,27 @@ -/* 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 . -*/ +/* eslint-disable import/extensions */ +import '@/assets/scss/global.scss'; +import '@/assets/scss/scrollbar.scss'; +import '@/assets/scss/transition.scss'; +import 'mosha-vue-toastify/dist/style.css'; +import { createPinia } from 'pinia'; +import { createApp, defineAsyncComponent } from 'vue'; +import VueDragscroll from 'vue-dragscroll'; +import { importFaIcon } from './plugins/asyncLib'; +import i18n from './plugins/i18n'; +import router from './plugins/router'; +import { useLdFullscreen } from './services/ui/ldFullscreen'; +import { useLdKeyboard } from './services/ui/ldKeyboard'; +import { useLdTitle } from './services/ui/ldTitle'; +import App from './views/MainLayout.vue'; -import "@/assets/scss/global.scss"; -import "@/assets/scss/scrollbar.scss"; -import "@/assets/scss/transition.scss"; -import { MainLayout } from "@/plugins"; -import i18n from "@/plugins/i18n"; -import router from "@/plugins/router"; -import store from "@/store"; -import Vue from "vue"; +createApp(App) + .use(createPinia()) + .use(i18n) + .use(router) + .use(VueDragscroll) + .component('fa-icon', defineAsyncComponent(importFaIcon)) + .mount('#app'); -Vue.config.productionTip = false; - -declare module "vue/types/vue" { - interface Vue { - $style: any; // SCSS modules - } -} - -new Vue({ - router, - i18n, - store, - render: h => h(MainLayout), -}).$mount("#ldgallery"); +useLdTitle(); +useLdKeyboard(); +useLdFullscreen(); -- cgit v1.2.3