From 447641c222347f3bffc6736ada2c8ecc187d0113 Mon Sep 17 00:00:00 2001
From: kolaente
Date: Wed, 7 Feb 2024 12:18:19 +0100
Subject: [PATCH] chore: apply lint fixes
---
.eslintrc.cjs | 3 +-
cypress.config.ts => cypress.config.js | 0
eslint.config_bac.js | 122 -----
package.json | 2 +-
src/App.vue | 26 +-
src/components/base/BaseButton.story.vue | 10 +-
src/components/base/BaseButton.vue | 19 +-
src/components/base/BaseCheckbox.vue | 23 +-
src/components/base/Expandable.vue | 49 +-
src/components/date/datemathHelp.story.vue | 10 +-
src/components/date/datemathHelp.vue | 147 +++---
src/components/date/datepickerWithRange.vue | 65 ++-
src/components/home/AddToHomeScreen.vue | 12 +-
src/components/home/DemoMode.vue | 7 +-
src/components/home/Logo.vue | 13 +-
src/components/home/MenuButton.vue | 6 +-
src/components/home/PoweredByLink.vue | 10 +-
src/components/home/ProjectsNavigation.vue | 6 +-
.../home/ProjectsNavigationItem.vue | 35 +-
src/components/home/TheNavigation.vue | 106 ++--
src/components/home/UpdateNotification.vue | 13 +-
src/components/home/contentAuth.vue | 28 +-
src/components/home/contentLinkShare.vue | 12 +-
src/components/home/navigation.vue | 62 ++-
src/components/input/Button.story.vue | 15 +-
src/components/input/ColorPicker.vue | 69 ++-
src/components/input/SelectProject.vue | 2 +-
src/components/input/SelectUser.vue | 2 +-
src/components/input/SimpleButton.vue | 2 +-
src/components/input/button.vue | 7 +-
src/components/input/datepicker.vue | 21 +-
src/components/input/datepickerInline.vue | 14 +-
src/components/input/editor/CommandsList.vue | 14 +-
src/components/input/editor/EditorToolbar.vue | 201 ++++----
src/components/input/editor/TipTap.vue | 138 ++---
src/components/input/fancycheckbox.story.vue | 28 +-
src/components/input/fancycheckbox.vue | 9 +-
src/components/input/multiselect.vue | 78 +--
src/components/input/password.vue | 18 +-
src/components/misc/ButtonLink.vue | 4 +-
src/components/misc/Done.vue | 2 +-
src/components/misc/OpenQuickActions.vue | 4 +-
src/components/misc/ProgressBar.story.vue | 10 +-
src/components/misc/api-config.vue | 52 +-
src/components/misc/card.vue | 23 +-
src/components/misc/colorBubble.vue | 2 +-
src/components/misc/create-edit.vue | 12 +-
src/components/misc/dropdown-item.vue | 4 +-
src/components/misc/dropdown.vue | 29 +-
src/components/misc/error.vue | 17 +-
src/components/misc/flatpickr/Flatpickr.vue | 6 +-
.../misc/keyboard-shortcuts/index.vue | 31 +-
src/components/misc/legal.vue | 14 +-
src/components/misc/loading.vue | 5 +-
src/components/misc/message.vue | 23 +-
src/components/misc/modal.vue | 29 +-
src/components/misc/no-auth-wrapper.vue | 39 +-
src/components/misc/nothing.vue | 2 +-
src/components/misc/notification.vue | 29 +-
src/components/misc/pagination.vue | 40 +-
src/components/misc/popup.vue | 16 +-
src/components/misc/ready.vue | 44 +-
src/components/misc/shortcut.vue | 10 +-
src/components/misc/subscription.vue | 14 +-
src/components/misc/user.vue | 9 +-
.../notifications/notifications.vue | 63 ++-
src/components/project/ProjectWrapper.vue | 14 +-
.../project/partials/ProjectCard.vue | 17 +-
.../project/partials/ProjectCardGrid.vue | 18 +-
.../project/partials/filter-popup.vue | 8 +-
src/components/project/partials/filters.vue | 137 ++---
.../project/project-settings-dropdown.vue | 65 +--
.../quick-actions/quick-actions.vue | 46 +-
src/components/sharing/linkSharing.vue | 206 ++++----
src/components/sharing/userTeam.vue | 169 ++++---
src/components/tasks/GanttChart.vue | 14 +-
src/components/tasks/TaskForm.vue | 20 +-
src/components/tasks/add-task.vue | 22 +-
.../tasks/partials/assigneeList.vue | 13 +-
src/components/tasks/partials/attachments.vue | 55 +-
.../tasks/partials/checklist-summary.vue | 30 +-
src/components/tasks/partials/comments.vue | 74 +--
.../tasks/partials/createdUpdated.vue | 34 +-
src/components/tasks/partials/defer-task.vue | 8 +-
src/components/tasks/partials/description.vue | 22 +-
.../tasks/partials/editAssignees.vue | 18 +-
src/components/tasks/partials/editLabels.vue | 23 +-
src/components/tasks/partials/heading.vue | 22 +-
src/components/tasks/partials/kanban-card.vue | 61 ++-
src/components/tasks/partials/labels.vue | 2 +-
.../tasks/partials/percentDoneSelect.vue | 44 +-
.../tasks/partials/priorityLabel.vue | 17 +-
.../tasks/partials/prioritySelect.vue | 26 +-
.../tasks/partials/projectSearch.vue | 7 +-
.../tasks/partials/quick-add-magic.vue | 21 +-
.../tasks/partials/relatedTasks.vue | 99 ++--
.../tasks/partials/reminder-detail.vue | 19 +-
.../tasks/partials/reminder-period.vue | 35 +-
.../tasks/partials/reminders.story.vue | 8 +-
src/components/tasks/partials/reminders.vue | 10 +-
src/components/tasks/partials/repeatAfter.vue | 72 ++-
.../tasks/partials/singleTaskInProject.vue | 127 +++--
.../partials/singleTaskInlineReadonly.vue | 46 +-
src/components/tasks/partials/sort.vue | 16 +-
src/composables/useRouteWithModal.ts | 3 +-
src/histoire.setup.ts | 6 +-
src/main.ts | 8 +-
src/views/About.vue | 4 +-
src/views/Home.vue | 31 +-
src/views/filters/FilterEdit.vue | 44 +-
src/views/filters/FilterNew.vue | 131 ++---
src/views/labels/ListLabels.vue | 63 ++-
src/views/labels/NewLabel.vue | 26 +-
src/views/migrate/Migration.vue | 2 +-
src/views/migrate/MigrationHandler.vue | 55 +-
src/views/project/ListProjects.vue | 24 +-
src/views/project/NewProject.vue | 43 +-
src/views/project/ProjectGantt.vue | 55 +-
src/views/project/ProjectInfo.vue | 11 +-
src/views/project/ProjectKanban.vue | 472 ++++++++++--------
src/views/project/ProjectList.vue | 218 ++++----
src/views/project/ProjectTable.vue | 343 ++++++++-----
src/views/project/settings/archive.vue | 6 +-
src/views/project/settings/background.vue | 42 +-
src/views/project/settings/delete.vue | 15 +-
src/views/project/settings/duplicate.vue | 8 +-
src/views/project/settings/edit.vue | 48 +-
src/views/project/settings/share.vue | 20 +-
src/views/project/settings/webhooks.vue | 119 +++--
src/views/sharing/LinkSharingAuth.vue | 26 +-
src/views/tasks/ShowTasks.vue | 78 ++-
src/views/tasks/TaskDetailView.vue | 366 +++++++++-----
src/views/teams/EditTeam.vue | 188 ++++---
src/views/teams/ListTeams.vue | 24 +-
src/views/teams/NewTeam.vue | 24 +-
src/views/user/DataExportDownload.vue | 21 +-
src/views/user/Login.vue | 94 +++-
src/views/user/OpenIdAuth.vue | 19 +-
src/views/user/PasswordReset.vue | 37 +-
src/views/user/Register.vue | 68 ++-
src/views/user/RequestPasswordReset.vue | 44 +-
src/views/user/Settings.vue | 12 +-
src/views/user/settings/ApiTokens.vue | 139 ++++--
src/views/user/settings/Avatar.vue | 28 +-
src/views/user/settings/Caldav.vue | 61 ++-
src/views/user/settings/DataExport.vue | 23 +-
src/views/user/settings/Deletion.vue | 54 +-
src/views/user/settings/EmailUpdate.vue | 34 +-
src/views/user/settings/General.vue | 115 +++--
src/views/user/settings/PasswordUpdate.vue | 63 ++-
src/views/user/settings/TOTP.vue | 69 ++-
151 files changed, 4336 insertions(+), 2630 deletions(-)
rename cypress.config.ts => cypress.config.js (100%)
delete mode 100644 eslint.config_bac.js
diff --git a/.eslintrc.cjs b/.eslintrc.cjs
index 4b4d703ea..f8c9d46f6 100644
--- a/.eslintrc.cjs
+++ b/.eslintrc.cjs
@@ -19,7 +19,7 @@ module.exports = {
'semi': ['error', 'never'],
'vue/v-on-event-hyphenation': ['warn', 'never', { 'autofix': true }],
- 'vue/multi-word-component-names': 'warn',
+ 'vue/multi-word-component-names': 'off',
// uncategorized rules:
'vue/component-api-style': ['error', ['script-setup']],
@@ -43,6 +43,7 @@ module.exports = {
'vue/no-required-prop-with-default': ['error', { 'autofix': true }],
'vue/no-duplicate-attr-inheritance': 'error',
'vue/no-empty-component-block': 'error',
+ 'vue/html-indent': ['error', 'tab'],
// vue3
'vue/no-ref-object-destructure': 'error',
diff --git a/cypress.config.ts b/cypress.config.js
similarity index 100%
rename from cypress.config.ts
rename to cypress.config.js
diff --git a/eslint.config_bac.js b/eslint.config_bac.js
deleted file mode 100644
index 2dc445c5a..000000000
--- a/eslint.config_bac.js
+++ /dev/null
@@ -1,122 +0,0 @@
-// import originalEslintPluginVue from 'eslint-plugin-vue'
-import vueTsRecommended from '@vue/eslint-config-typescript/recommended.js'
-// import vueParser from 'vue-eslint-parser'
-import tsParser from "@typescript-eslint/parser"
-
-const vue3Recommended = vue.configs['vue3-recommended']
-
-import {default as originalVuePlugin} from "eslint-plugin-vue";
-
-// see https://github.com/eslint/eslint/issues/16875#issuecomment-1426594123
-const eslintPluginVue = {
- ...originalVuePlugin,
- parsers: {
- 'parser': {
- parseForESLint: originalVuePlugin.parseForESLint
- }
- }
-}
-
-// export default [{
-// files: ["**/*.json", "**/*.jsonc", "**/*.json5"],
-// plugins: {
-// vue: { ...vue, parsers}
-// /* same as
-// jsonc: {
-// parsers: {
-// 'jsonc-eslint-parser': {
-// parseForESLint
-// }
-// }
-// } */
-// },
-// languageOptions: {
-// parser: 'vue/vue-eslint-parser'
-// },
-// rules: {...}
-// }];
-
-export default [
- // 'eslint:recommended',
- {
- files: ["**/*.vue"],
- plugins: {
- vue: eslintPluginVue,
- },
- languageOptions: {
- parser: 'vue/parser'
- },
- },
- // {
- // plugins: {
- // // vue: vue3Recommended,
- // // '@typescript-eslint': vueTsRecommended,
- // },
- // languageOptions: {
- // // parser: eslintPluginVue,
- // // parser: 'vue/vue-eslint-parser',
- // parserOptions: {
- // parser: '@typescript-eslint/parser',
- // // 'ecmaVersion': 2022,
- // // 'sourceType': 'module',
- // },
- // }
- // }
- // {
- // files: ["./src/**/*.vue"],
- // // files: ["./src/**/*.js"],
- // // ignores: ["**/*.config.js"],
- // rules: {
- // semi: "error"
- // },
- // plugins: {
- // vue: vue3Recommended,
- // // '@typescript-eslint': vueTsRecommended,
- // },
- // },
- // {
- // files: ["src/**/*.vue"],
- // // files: [
- // // 'src/**/*.vue',
- // // 'src/**/*.js',
- // // 'src/**/*.ts',
- // // // 'src/**/*.+(vue|js|ts)',
- // // ],
- // ignores: [
- // '*.test.*',
- // 'cypress/*',
- // ],
- // plugins: {
- // vue: vue3Recommended,
- // '@typescript-eslint': vueTsRecommended,
- // },
- // rules: {
- // 'vue/html-quotes': ['error', 'double'],
- // 'quotes': ['error', 'single'],
- // 'comma-dangle': ['error', 'always-multiline'],
- // 'semi': ['error', 'never'],
- // 'vue/multi-word-component-names': 0,
- // // disabled until we have support for reactivityTransform
- // // See https://github.com/vuejs/eslint-plugin-vue/issues/1948
- // // see also setting in `vite.config`
- // 'vue/no-setup-props-destructure': 0,
- // },
- // // overwrite the following with correct values
- // // eslint-plugin-vue/lib/configs/base.js
-
- // // parser:
- // parserOptions: {
- // ecmaVersion: 2022,
-
-
- // 'parser': '@typescript-eslint/parser',
- // 'sourceType': 'module',
- // },
- // globals: {
- // 'browser': true,
- // 'es2022': true,
- // 'node': true,
- // 'vue/setup-compiler-macros': true,
- // }
- // },
-]
\ No newline at end of file
diff --git a/package.json b/package.json
index 5c743af7b..21cb98b6a 100644
--- a/package.json
+++ b/package.json
@@ -31,7 +31,7 @@
"build:modern-only": "BUILD_MODERN_ONLY=true vite build && workbox copyLibraries dist/",
"build:dev": "vite build --mode development --outDir dist-dev/",
"lint": "eslint 'src/**/*.{js,ts,vue}'",
- "lint:fix": "eslint --fix 'src/**/*.{js,ts,vue}' ",
+ "lint:fix": "pnpm run lint --fix",
"test:e2e": "start-server-and-test preview http://127.0.0.1:4173 'cypress run --e2e --browser chrome'",
"test:e2e-record": "start-server-and-test preview http://127.0.0.1:4173 'cypress run --e2e --browser chrome --record'",
"test:e2e-dev-dev": "start-server-and-test preview:dev http://127.0.0.1:4173 'cypress open --e2e'",
diff --git a/src/App.vue b/src/App.vue
index 77d3dacf4..0c0c4093c 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -1,23 +1,23 @@
-
+
-
-
+
+
-
-
-
-
+
+
+
+
-
+
-
-
-
-
+
+
+
+
-
+
-
+
-
+
Hello!
diff --git a/src/components/base/BaseButton.vue b/src/components/base/BaseButton.vue
index 140573c0d..4a742153f 100644
--- a/src/components/base/BaseButton.vue
+++ b/src/components/base/BaseButton.vue
@@ -6,38 +6,39 @@
-
+
-
+
-
-
+
emit('click', event)"
>
-
+
diff --git a/src/components/base/BaseCheckbox.vue b/src/components/base/BaseCheckbox.vue
index af1064347..aa7778a11 100644
--- a/src/components/base/BaseCheckbox.vue
+++ b/src/components/base/BaseCheckbox.vue
@@ -1,17 +1,26 @@
-
+
emit('update:modelValue', (event.target as HTMLInputElement).checked)"
:disabled="disabled || undefined"
- />
+ @change="(event) => emit('update:modelValue', (event.target as HTMLInputElement).checked)"
+ >
-
-
-
+
+
+
diff --git a/src/components/base/Expandable.vue b/src/components/base/Expandable.vue
index 8ac7b4d39..c1a1a84c7 100644
--- a/src/components/base/Expandable.vue
+++ b/src/components/base/Expandable.vue
@@ -1,27 +1,30 @@
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
diff --git a/src/components/date/datemathHelp.vue b/src/components/date/datemathHelp.vue
index 2feaa3acd..5d5077bd0 100644
--- a/src/components/date/datemathHelp.vue
+++ b/src/components/date/datemathHelp.vue
@@ -7,21 +7,29 @@
{{ $t('input.datemathHelp.intro') }}
-
+
now
||
-
+
+ target="_blank"
+ >
Grafana
+ target="_blank"
+ >
Elasticsearch
@@ -35,76 +43,79 @@
{{ $t('input.datemathHelp.supportedUnits') }}
-
- s
- {{ $t('input.datemathHelp.units.seconds') }}
-
-
- m
- {{ $t('input.datemathHelp.units.minutes') }}
-
-
- h
- {{ $t('input.datemathHelp.units.hours') }}
-
-
- H
- {{ $t('input.datemathHelp.units.hours') }}
-
-
- d
- {{ $t('input.datemathHelp.units.days') }}
-
-
- w
- {{ $t('input.datemathHelp.units.weeks') }}
-
-
- M
- {{ $t('input.datemathHelp.units.months') }}
-
-
- y
- {{ $t('input.datemathHelp.units.years') }}
-
+
+ s
+ {{ $t('input.datemathHelp.units.seconds') }}
+
+
+ m
+ {{ $t('input.datemathHelp.units.minutes') }}
+
+
+ h
+ {{ $t('input.datemathHelp.units.hours') }}
+
+
+ H
+ {{ $t('input.datemathHelp.units.hours') }}
+
+
+ d
+ {{ $t('input.datemathHelp.units.days') }}
+
+
+ w
+ {{ $t('input.datemathHelp.units.weeks') }}
+
+
+ M
+ {{ $t('input.datemathHelp.units.months') }}
+
+
+ y
+ {{ $t('input.datemathHelp.units.years') }}
+
{{ $t('input.datemathHelp.someExamples') }}
-
- now
- {{ $t('input.datemathHelp.examples.now') }}
-
-
- now+24h
- {{ $t('input.datemathHelp.examples.in24h') }}
-
-
- now/d
- {{ $t('input.datemathHelp.examples.today') }}
-
-
- now/w
- {{ $t('input.datemathHelp.examples.beginningOfThisWeek') }}
-
-
- now/w+1w
- {{ $t('input.datemathHelp.examples.endOfThisWeek') }}
-
-
- now+30d
- {{ $t('input.datemathHelp.examples.in30Days') }}
-
-
- {{ exampleDate }}||+1M/d
-
-
- {{ exampleDate }}
-
-
-
+
+ now
+ {{ $t('input.datemathHelp.examples.now') }}
+
+
+ now+24h
+ {{ $t('input.datemathHelp.examples.in24h') }}
+
+
+ now/d
+ {{ $t('input.datemathHelp.examples.today') }}
+
+
+ now/w
+ {{ $t('input.datemathHelp.examples.beginningOfThisWeek') }}
+
+
+ now/w+1w
+ {{ $t('input.datemathHelp.examples.endOfThisWeek') }}
+
+
+ now+30d
+ {{ $t('input.datemathHelp.examples.in30Days') }}
+
+
+ {{ exampleDate }}||+1M/d
+
+
+ {{ exampleDate }}
+
+
+
diff --git a/src/components/date/datepickerWithRange.vue b/src/components/date/datepickerWithRange.vue
index 919de8811..be9e70683 100644
--- a/src/components/date/datepickerWithRange.vue
+++ b/src/components/date/datepickerWithRange.vue
@@ -1,20 +1,31 @@
-
+
-
+
-
+
-
+
{{ $t('misc.custom') }}
+ >
{{ $t(`input.datepickerRange.ranges.${text}`) }}
@@ -23,10 +34,18 @@
{{ $t('input.datepickerRange.from') }}
@@ -34,38 +53,49 @@
{{ $t('input.datepickerRange.to') }}
{{ $t('input.datemathHelp.canuse') }}
-
+
{{ $t('input.datemathHelp.learnhow') }}
showHowItWorks = false"
transition-name="fade"
:overflow="true"
variant="hint-modal"
+ @close="() => showHowItWorks = false"
>
-
+
-
+
@@ -83,15 +113,16 @@ import BaseButton from '@/components/base/BaseButton.vue'
import DatemathHelp from '@/components/date/datemathHelp.vue'
import { getFlatpickrLanguage } from '@/helpers/flatpickrLanguage'
-const {t} = useI18n({useScope: 'global'})
-
-const emit = defineEmits(['update:modelValue'])
const props = defineProps({
modelValue: {
required: false,
},
})
+const emit = defineEmits(['update:modelValue'])
+
+const {t} = useI18n({useScope: 'global'})
+
const flatPickerConfig = computed(() => ({
altFormat: t('date.altFormatLong'),
altInput: true,
diff --git a/src/components/home/AddToHomeScreen.vue b/src/components/home/AddToHomeScreen.vue
index b8b2db630..a09587729 100644
--- a/src/components/home/AddToHomeScreen.vue
+++ b/src/components/home/AddToHomeScreen.vue
@@ -4,12 +4,18 @@
class="add-to-home-screen"
:class="{'has-update-available': hasUpdateAvailable}"
>
-
+
{{ $t('home.addToHomeScreen') }}
- hideMessage = true" class="hide-button">
-
+ hideMessage = true"
+ >
+
diff --git a/src/components/home/DemoMode.vue b/src/components/home/DemoMode.vue
index bd993525d..0e7090863 100644
--- a/src/components/home/DemoMode.vue
+++ b/src/components/home/DemoMode.vue
@@ -17,8 +17,11 @@ const enabled = computed(() => configStore.demoModeEnabled && !hide.value)
{{ $t('demo.title') }}
{{ $t('demo.everythingWillBeDeleted') }}
- hide = true" class="hide-button">
-
+ hide = true"
+ >
+
diff --git a/src/components/home/Logo.vue b/src/components/home/Logo.vue
index 10a1753a2..9e383b846 100644
--- a/src/components/home/Logo.vue
+++ b/src/components/home/Logo.vue
@@ -15,8 +15,17 @@ const CustomLogo = computed(() => window.CUSTOM_LOGO_URL)
-
-
+
+
diff --git a/src/components/home/MenuButton.vue b/src/components/home/MenuButton.vue
index b221ec5b8..23019cfdf 100644
--- a/src/components/home/MenuButton.vue
+++ b/src/components/home/MenuButton.vue
@@ -1,11 +1,11 @@
diff --git a/src/components/home/PoweredByLink.vue b/src/components/home/PoweredByLink.vue
index d8793f40b..3376c2f04 100644
--- a/src/components/home/PoweredByLink.vue
+++ b/src/components/home/PoweredByLink.vue
@@ -1,7 +1,11 @@
-
+
-
-
-
-
-
+
+
+
+
+
diff --git a/src/components/misc/api-config.vue b/src/components/misc/api-config.vue
index cf3ad9383..b8fea5539 100644
--- a/src/components/misc/api-config.vue
+++ b/src/components/misc/api-config.vue
@@ -1,38 +1,62 @@
-
{{ $t('apiConfig.url') }}
+
{{ $t('apiConfig.url') }}
-
-
- {{ apiDomain }}
+
+
+ {{ apiDomain }}
-
- (configureApi = true)">{{ $t('apiConfig.change') }}
+
+ (configureApi = true)"
+ >
+ {{ $t('apiConfig.change') }}
+
-
+
{{ errorMsg }}
-
+
@@ -57,7 +81,7 @@ const props = defineProps({
const emit = defineEmits(['foundApi'])
const apiUrl = ref(window.API_URL)
-const configureApi = ref(apiUrl.value === '')
+const configureApi = ref(window.API_URL === '')
// Because we're only using this to parse the hostname, it should be fine to just prefix with http://
// regardless of whether the url is actually reachable under http.
diff --git a/src/components/misc/card.vue b/src/components/misc/card.vue
index 49a6a6c63..2d0edbae1 100644
--- a/src/components/misc/card.vue
+++ b/src/components/misc/card.vue
@@ -1,18 +1,24 @@
-
-
diff --git a/src/components/misc/colorBubble.vue b/src/components/misc/colorBubble.vue
index 3b7a8ba31..a6c563796 100644
--- a/src/components/misc/colorBubble.vue
+++ b/src/components/misc/colorBubble.vue
@@ -2,7 +2,7 @@
+ />
diff --git a/src/components/misc/modal.vue b/src/components/misc/modal.vue
index 2bbd063b6..c5ddc1e05 100644
--- a/src/components/misc/modal.vue
+++ b/src/components/misc/modal.vue
@@ -1,56 +1,59 @@
-
+
-
+
-
+
{{ $t('misc.cancel') }}
{{ $t('misc.doit') }}
diff --git a/src/components/misc/no-auth-wrapper.vue b/src/components/misc/no-auth-wrapper.vue
index b9a0ea042..b4f0a5166 100644
--- a/src/components/misc/no-auth-wrapper.vue
+++ b/src/components/misc/no-auth-wrapper.vue
@@ -1,8 +1,15 @@
-
+
-
+
{{ motd }}
@@ -12,14 +19,22 @@
-
{{ title }}
-
-
+
+ {{ title }}
+
+
+
{{ motd }}
-
+
-
+
@@ -38,6 +53,11 @@ import ApiConfig from '@/components/misc/api-config.vue'
import {useTitle} from '@/composables/useTitle'
import {useConfigStore} from '@/stores/config'
+const {
+ showApiConfig = true,
+} = defineProps<{
+ showApiConfig?: boolean
+}>()
const configStore = useConfigStore()
const motd = computed(() => configStore.motd)
@@ -46,11 +66,6 @@ const {t} = useI18n({useScope: 'global'})
const title = computed(() => t(route.meta?.title as string || ''))
useTitle(() => title.value)
-const {
- showApiConfig = true,
-} = defineProps<{
- showApiConfig?: boolean
-}>()