enhance(frontend): add contact page
This commit is contained in:
		
							parent
							
								
									8c5e564066
								
							
						
					
					
						commit
						ef630df443
					
				
					 6 changed files with 42 additions and 40 deletions
				
			
		
							
								
								
									
										4
									
								
								locales/index.d.ts
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								locales/index.d.ts
									
										
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -4952,6 +4952,10 @@ export interface Locale extends ILocale {
 | 
			
		|||
     * フォローの際常に確認する
 | 
			
		||||
     */
 | 
			
		||||
    "alwaysConfirmFollow": string;
 | 
			
		||||
    /**
 | 
			
		||||
     * お問い合わせ
 | 
			
		||||
     */
 | 
			
		||||
    "inquiry": string;
 | 
			
		||||
    "_bubbleGame": {
 | 
			
		||||
        /**
 | 
			
		||||
         * 遊び方
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1234,6 +1234,7 @@ keepOriginalFilename: "オリジナルのファイル名を保持"
 | 
			
		|||
keepOriginalFilenameDescription: "この設定をオフにすると、アップロード時にファイル名が自動でランダム文字列に置き換えられます。"
 | 
			
		||||
noDescription: "説明文はありません"
 | 
			
		||||
alwaysConfirmFollow: "フォローの際常に確認する"
 | 
			
		||||
inquiry: "お問い合わせ"
 | 
			
		||||
 | 
			
		||||
_bubbleGame:
 | 
			
		||||
  howToPlay: "遊び方"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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() {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										24
									
								
								packages/frontend/src/pages/contact.vue
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								packages/frontend/src/pages/contact.vue
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -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>
 | 
			
		||||
| 
						 | 
				
			
			@ -197,6 +197,9 @@ const routes: RouteDef[] = [{
 | 
			
		|||
	path: '/about',
 | 
			
		||||
	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')),
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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');
 | 
			
		||||
		},
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue