summaryrefslogtreecommitdiff
path: root/packages/frontend/src
diff options
context:
space:
mode:
authorsyuilo <4439005+syuilo@users.noreply.github.com>2024-05-01 14:12:36 +0900
committersyuilo <4439005+syuilo@users.noreply.github.com>2024-05-01 14:12:36 +0900
commitef630df443bdd24cfe0b086b0e2f94d87c4f53b7 (patch)
tree939a91bfb489b8dea969160b5c6366753ea3248e /packages/frontend/src
parentfix type error (diff)
downloadmisskey-ef630df443bdd24cfe0b086b0e2f94d87c4f53b7.tar.gz
misskey-ef630df443bdd24cfe0b086b0e2f94d87c4f53b7.tar.bz2
misskey-ef630df443bdd24cfe0b086b0e2f94d87c4f53b7.zip
enhance(frontend): add contact page
Diffstat (limited to 'packages/frontend/src')
-rw-r--r--packages/frontend/src/components/MkVisitorDashboard.vue39
-rw-r--r--packages/frontend/src/pages/contact.vue24
-rw-r--r--packages/frontend/src/router/definition.ts3
-rw-r--r--packages/frontend/src/ui/_common_/common.ts11
4 files changed, 37 insertions, 40 deletions
diff --git a/packages/frontend/src/components/MkVisitorDashboard.vue b/packages/frontend/src/components/MkVisitorDashboard.vue
index 611c7be216..f7963f9938 100644
--- a/packages/frontend/src/components/MkVisitorDashboard.vue
+++ b/packages/frontend/src/components/MkVisitorDashboard.vue
@@ -65,6 +65,7 @@ import { i18n } from '@/i18n.js';
import { instance } from '@/instance.js';
import MkNumber from '@/components/MkNumber.vue';
import XActiveUsersChart from '@/components/MkVisitorDashboard.ActiveUsersChart.vue';
+import { openInstanceMenu } from '@/ui/_common_/common';
const stats = ref<Misskey.entities.StatsResponse | null>(null);
@@ -85,43 +86,7 @@ function signup() {
}
function showMenu(ev) {
- os.popupMenu([{
- text: i18n.ts.instanceInfo,
- icon: 'ti ti-info-circle',
- action: () => {
- os.pageWindow('/about');
- },
- }, {
- text: i18n.ts.aboutMisskey,
- icon: 'ti ti-info-circle',
- action: () => {
- os.pageWindow('/about-misskey');
- },
- }, { type: 'divider' }, (instance.impressumUrl) ? {
- text: i18n.ts.impressum,
- icon: 'ti ti-file-invoice',
- action: () => {
- window.open(instance.impressumUrl!, '_blank', 'noopener');
- },
- } : undefined, (instance.tosUrl) ? {
- text: i18n.ts.termsOfService,
- icon: 'ti ti-notebook',
- action: () => {
- window.open(instance.tosUrl!, '_blank', 'noopener');
- },
- } : undefined, (instance.privacyPolicyUrl) ? {
- text: i18n.ts.privacyPolicy,
- icon: 'ti ti-shield-lock',
- action: () => {
- window.open(instance.privacyPolicyUrl!, '_blank', 'noopener');
- },
- } : undefined, (!instance.impressumUrl && !instance.tosUrl && !instance.privacyPolicyUrl) ? undefined : { type: 'divider' }, {
- text: i18n.ts.help,
- icon: 'ti ti-help-circle',
- action: () => {
- window.open('https://misskey-hub.net/docs/for-users/', '_blank', 'noopener');
- },
- }], ev.currentTarget ?? ev.target);
+ openInstanceMenu(ev);
}
function exploreOtherServers() {
diff --git a/packages/frontend/src/pages/contact.vue b/packages/frontend/src/pages/contact.vue
new file mode 100644
index 0000000000..3a694a7132
--- /dev/null
+++ b/packages/frontend/src/pages/contact.vue
@@ -0,0 +1,24 @@
+<!--
+SPDX-FileCopyrightText: syuilo and misskey-project
+SPDX-License-Identifier: AGPL-3.0-only
+-->
+
+<template>
+<MkStickyContainer>
+ <template #header><MkPageHeader/></template>
+ <MkSpacer :contentMax="600" :marginMin="20">
+ <div>{{ instance.maintainerEmail }}</div>
+ </MkSpacer>
+</MkStickyContainer>
+</template>
+
+<script lang="ts" setup>
+import { i18n } from '@/i18n.js';
+import { definePageMetadata } from '@/scripts/page-metadata.js';
+import { instance } from '@/instance.js';
+
+definePageMetadata(() => ({
+ title: i18n.ts.inquiry,
+ icon: 'ti ti-help-circle',
+}));
+</script>
diff --git a/packages/frontend/src/router/definition.ts b/packages/frontend/src/router/definition.ts
index c9f03b738f..c5b576f505 100644
--- a/packages/frontend/src/router/definition.ts
+++ b/packages/frontend/src/router/definition.ts
@@ -198,6 +198,9 @@ const routes: RouteDef[] = [{
component: page(() => import('@/pages/about.vue')),
hash: 'initialTab',
}, {
+ path: '/contact',
+ component: page(() => import('@/pages/contact.vue')),
+}, {
path: '/about-misskey',
component: page(() => import('@/pages/about-misskey.vue')),
}, {
diff --git a/packages/frontend/src/ui/_common_/common.ts b/packages/frontend/src/ui/_common_/common.ts
index 9b510a6292..839fa5faf8 100644
--- a/packages/frontend/src/ui/_common_/common.ts
+++ b/packages/frontend/src/ui/_common_/common.ts
@@ -79,7 +79,12 @@ export function openInstanceMenu(ev: MouseEvent) {
text: i18n.ts.tools,
icon: 'ti ti-tool',
children: toolsMenuItems(),
- }, { type: 'divider' }, (instance.impressumUrl) ? {
+ }, { type: 'divider' }, {
+ type: 'link',
+ text: i18n.ts.inquiry,
+ icon: 'ti ti-help-circle',
+ to: '/contact',
+ }, (instance.impressumUrl) ? {
text: i18n.ts.impressum,
icon: 'ti ti-file-invoice',
action: () => {
@@ -98,8 +103,8 @@ export function openInstanceMenu(ev: MouseEvent) {
window.open(instance.privacyPolicyUrl, '_blank', 'noopener');
},
} : undefined, (!instance.impressumUrl && !instance.tosUrl && !instance.privacyPolicyUrl) ? undefined : { type: 'divider' }, {
- text: i18n.ts.help,
- icon: 'ti ti-help-circle',
+ text: i18n.ts.document,
+ icon: 'ti ti-bulb',
action: () => {
window.open('https://misskey-hub.net/docs/for-users/', '_blank', 'noopener');
},