 fd744f44c1
			
		
	
	fd744f44c1
	
	
	
		
			
			* enhance(backend): Page、ギャラリー、Playのモデレーション強化 * Update CHANGELOG.md * fix: update misskey-js * refactor(frontend): use `MkA` * Update CHANGELOG.md * fix(i18n): Page -> ページ
		
			
				
	
	
		
			73 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
| <!--
 | |
| SPDX-FileCopyrightText: syuilo and misskey-project
 | |
| SPDX-License-Identifier: AGPL-3.0-only
 | |
| -->
 | |
| 
 | |
| <template>
 | |
| <MkWindow ref="uiWindow" :initialWidth="400" :initialHeight="500" :canResize="true" @closed="emit('closed')">
 | |
| 	<template #header>
 | |
| 		<i class="ti ti-exclamation-circle" style="margin-right: 0.5em;"></i>
 | |
| 		<I18n :src="i18n.ts.reportAbuseOf" tag="span">
 | |
| 			<template #name>
 | |
| 				<b><MkAcct :user="user"/></b>
 | |
| 			</template>
 | |
| 		</I18n>
 | |
| 	</template>
 | |
| 	<MkSpacer :marginMin="20" :marginMax="28">
 | |
| 		<div class="_gaps_m" :class="$style.root">
 | |
| 			<div class="">
 | |
| 				<MkTextarea v-model="comment">
 | |
| 					<template #label>{{ i18n.ts.details }}</template>
 | |
| 					<template #caption>{{ i18n.ts.fillAbuseReportDescription }}</template>
 | |
| 				</MkTextarea>
 | |
| 			</div>
 | |
| 			<div class="">
 | |
| 				<MkButton primary full :disabled="comment.length === 0" @click="send">{{ i18n.ts.send }}</MkButton>
 | |
| 			</div>
 | |
| 		</div>
 | |
| 	</MkSpacer>
 | |
| </MkWindow>
 | |
| </template>
 | |
| 
 | |
| <script setup lang="ts">
 | |
| import { ref, shallowRef } from 'vue';
 | |
| import * as Misskey from 'misskey-js';
 | |
| import MkWindow from '@/components/MkWindow.vue';
 | |
| import MkTextarea from '@/components/MkTextarea.vue';
 | |
| import MkButton from '@/components/MkButton.vue';
 | |
| import * as os from '@/os.js';
 | |
| import { i18n } from '@/i18n.js';
 | |
| 
 | |
| const props = defineProps<{
 | |
| 	user: Misskey.entities.UserLite;
 | |
| 	initialComment?: string;
 | |
| }>();
 | |
| 
 | |
| const emit = defineEmits<{
 | |
| 	(ev: 'closed'): void;
 | |
| }>();
 | |
| 
 | |
| const uiWindow = shallowRef<InstanceType<typeof MkWindow>>();
 | |
| const comment = ref(props.initialComment ?? '');
 | |
| 
 | |
| function send() {
 | |
| 	os.apiWithDialog('users/report-abuse', {
 | |
| 		userId: props.user.id,
 | |
| 		comment: comment.value,
 | |
| 	}, undefined).then(res => {
 | |
| 		os.alert({
 | |
| 			type: 'success',
 | |
| 			text: i18n.ts.abuseReported,
 | |
| 		});
 | |
| 		uiWindow.value?.close();
 | |
| 		emit('closed');
 | |
| 	});
 | |
| }
 | |
| </script>
 | |
| 
 | |
| <style lang="scss" module>
 | |
| .root {
 | |
| 	--root-margin: 16px;
 | |
| }
 | |
| </style>
 |