| @@ -2,7 +2,7 @@ | ||||
| <MkStickyContainer> | ||||
| 	<template #header><MkPageHeader :actions="headerActions" :tabs="headerTabs"/></template> | ||||
| 	<MkSpacer :contentMax="800"> | ||||
| 		<MkPagination v-slot="{items}" :pagination="pagination" class="ruryvtyk _gaps_m"> | ||||
| 		<MkPagination v-slot="{items, reload}" :pagination="pagination" class="ruryvtyk _gaps_m"> | ||||
| 			<section v-for="(announcement, i) in items" :key="announcement.id" :class="{ announcement: true, _panel: true, private: announcement.isPrivate }"> | ||||
| 				<div class="header"><span v-if="$i && !announcement.isRead"><span class="ti ti-speakerphone"></span></span><Mfm :text="announcement.title"/></div> | ||||
| 				<div class="content"> | ||||
| @@ -10,7 +10,7 @@ | ||||
| 					<img v-if="announcement.imageUrl" :src="announcement.imageUrl"/> | ||||
| 				</div> | ||||
| 				<div v-if="$i && !announcement.isRead" class="footer"> | ||||
| 					<MkButton primary @click="read(items, announcement, i)"><i class="ti ti-check"></i> {{ i18n.ts.gotIt }}</MkButton> | ||||
| 					<MkButton primary @click="read(items, reload, announcement, i)"><i class="ti ti-check"></i> {{ i18n.ts.gotIt }}</MkButton> | ||||
| 				</div> | ||||
| 			</section> | ||||
| 		</MkPagination> | ||||
| @@ -19,7 +19,6 @@ | ||||
| </template> | ||||
|  | ||||
| <script lang="ts" setup> | ||||
| import { } from 'vue'; | ||||
| import MkPagination from '@/components/MkPagination.vue'; | ||||
| import MkButton from '@/components/MkButton.vue'; | ||||
| import * as os from '@/os'; | ||||
| @@ -29,16 +28,15 @@ import { $i } from '@/account'; | ||||
|  | ||||
| const pagination = { | ||||
| 	endpoint: 'announcements' as const, | ||||
| 	offsetMode: true, | ||||
| 	limit: 10, | ||||
| }; | ||||
|  | ||||
| // TODO: これは実質的に親コンポーネントから子コンポーネントのプロパティを変更してるのでなんとかしたい | ||||
| function read(items, announcement, i) { | ||||
| 	items[i] = { | ||||
| 		...announcement, | ||||
| 		isRead: true, | ||||
| 	}; | ||||
| 	os.api('i/read-announcement', { announcementId: announcement.id }); | ||||
| function read(items, reload, announcement, i) { | ||||
| 	items[i].isRead = true; | ||||
| 	os.api('i/read-announcement', { | ||||
| 		announcementId: announcement.id, | ||||
| 	}).then(reload); | ||||
| } | ||||
|  | ||||
| const headerActions = $computed(() => []); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 まっちゃとーにゅ
					まっちゃとーにゅ