mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-10-31 13:34:12 +00:00 
			
		
		
		
	copy MkNote* changes to SkNote*
This commit is contained in:
		
							parent
							
								
									bc531ac414
								
							
						
					
					
						commit
						aad06a0e8b
					
				
					 2 changed files with 56 additions and 4 deletions
				
			
		|  | @ -88,7 +88,9 @@ SPDX-License-Identifier: AGPL-3.0-only | ||||||
| 						<MkMediaList :mediaList="appearNote.files" @click.stop/> | 						<MkMediaList :mediaList="appearNote.files" @click.stop/> | ||||||
| 					</div> | 					</div> | ||||||
| 					<MkPoll v-if="appearNote.poll" :noteId="appearNote.id" :poll="appearNote.poll" :class="$style.poll" @click.stop/> | 					<MkPoll v-if="appearNote.poll" :noteId="appearNote.id" :poll="appearNote.poll" :class="$style.poll" @click.stop/> | ||||||
|  | 					<div v-if="isEnabledUrlPreview"> | ||||||
| 						<MkUrlPreview v-for="url in urls" :key="url" :url="url" :compact="true" :detail="false" :class="$style.urlPreview" @click.stop/> | 						<MkUrlPreview v-for="url in urls" :key="url" :url="url" :compact="true" :detail="false" :class="$style.urlPreview" @click.stop/> | ||||||
|  | 					</div> | ||||||
| 					<div v-if="appearNote.renote" :class="$style.quote"><SkNoteSimple :note="appearNote.renote" :class="$style.quoteNote"/></div> | 					<div v-if="appearNote.renote" :class="$style.quote"><SkNoteSimple :note="appearNote.renote" :class="$style.quoteNote"/></div> | ||||||
| 					<button v-if="isLong && collapsed" :class="$style.collapsed" class="_button" @click.stop @click="collapsed = false"> | 					<button v-if="isLong && collapsed" :class="$style.collapsed" class="_button" @click.stop @click="collapsed = false"> | ||||||
| 						<span :class="$style.collapsedLabel">{{ i18n.ts.showMore }}</span> | 						<span :class="$style.collapsedLabel">{{ i18n.ts.showMore }}</span> | ||||||
|  | @ -186,6 +188,7 @@ import SkNoteSub from '@/components/SkNoteSub.vue'; | ||||||
| import SkNoteHeader from '@/components/SkNoteHeader.vue'; | import SkNoteHeader from '@/components/SkNoteHeader.vue'; | ||||||
| import SkNoteSimple from '@/components/SkNoteSimple.vue'; | import SkNoteSimple from '@/components/SkNoteSimple.vue'; | ||||||
| import MkReactionsViewer from '@/components/MkReactionsViewer.vue'; | import MkReactionsViewer from '@/components/MkReactionsViewer.vue'; | ||||||
|  | import MkReactionsViewerDetails from '@/components/MkReactionsViewer.details.vue'; | ||||||
| import MkMediaList from '@/components/MkMediaList.vue'; | import MkMediaList from '@/components/MkMediaList.vue'; | ||||||
| import MkCwButton from '@/components/MkCwButton.vue'; | import MkCwButton from '@/components/MkCwButton.vue'; | ||||||
| import MkPoll from '@/components/MkPoll.vue'; | import MkPoll from '@/components/MkPoll.vue'; | ||||||
|  | @ -198,7 +201,7 @@ import { checkWordMute } from '@/scripts/check-word-mute.js'; | ||||||
| import { userPage } from '@/filters/user.js'; | import { userPage } from '@/filters/user.js'; | ||||||
| import number from '@/filters/number.js'; | import number from '@/filters/number.js'; | ||||||
| import * as os from '@/os.js'; | import * as os from '@/os.js'; | ||||||
| import { misskeyApi } from '@/scripts/misskey-api.js'; | import { misskeyApi, misskeyApiGet } from '@/scripts/misskey-api.js'; | ||||||
| import * as sound from '@/scripts/sound.js'; | import * as sound from '@/scripts/sound.js'; | ||||||
| import { defaultStore, noteViewInterruptors } from '@/store.js'; | import { defaultStore, noteViewInterruptors } from '@/store.js'; | ||||||
| import { reactionPicker } from '@/scripts/reaction-picker.js'; | import { reactionPicker } from '@/scripts/reaction-picker.js'; | ||||||
|  | @ -219,6 +222,7 @@ import { showMovedDialog } from '@/scripts/show-moved-dialog.js'; | ||||||
| import { shouldCollapsed } from '@/scripts/collapsed.js'; | import { shouldCollapsed } from '@/scripts/collapsed.js'; | ||||||
| import { useRouter } from '@/router/supplier.js'; | import { useRouter } from '@/router/supplier.js'; | ||||||
| import { boostMenuItems, type Visibility } from '@/scripts/boost-quote.js'; | import { boostMenuItems, type Visibility } from '@/scripts/boost-quote.js'; | ||||||
|  | import { isEnabledUrlPreview } from '@/instance.js'; | ||||||
| 
 | 
 | ||||||
| const props = withDefaults(defineProps<{ | const props = withDefaults(defineProps<{ | ||||||
| 	note: Misskey.entities.Note; | 	note: Misskey.entities.Note; | ||||||
|  | @ -408,6 +412,28 @@ if (!props.mock) { | ||||||
| 			renoted.value = res.length > 0; | 			renoted.value = res.length > 0; | ||||||
| 		}); | 		}); | ||||||
| 	} | 	} | ||||||
|  | 
 | ||||||
|  | 	if (appearNote.value.reactionAcceptance === 'likeOnly') { | ||||||
|  | 		useTooltip(reactButton, async (showing) => { | ||||||
|  | 			const reactions = await misskeyApiGet('notes/reactions', { | ||||||
|  | 				noteId: appearNote.value.id, | ||||||
|  | 				limit: 10, | ||||||
|  | 				_cacheKey_: appearNote.value.reactionCount, | ||||||
|  | 			}); | ||||||
|  | 
 | ||||||
|  | 			const users = reactions.map(x => x.user); | ||||||
|  | 
 | ||||||
|  | 			if (users.length < 1) return; | ||||||
|  | 
 | ||||||
|  | 			os.popup(MkReactionsViewerDetails, { | ||||||
|  | 				showing, | ||||||
|  | 				reaction: '❤️', | ||||||
|  | 				users, | ||||||
|  | 				count: appearNote.value.reactionCount, | ||||||
|  | 				targetElement: reactButton.value!, | ||||||
|  | 			}, {}, 'closed'); | ||||||
|  | 		}); | ||||||
|  | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| function boostVisibility() { | function boostVisibility() { | ||||||
|  |  | ||||||
|  | @ -107,7 +107,9 @@ SPDX-License-Identifier: AGPL-3.0-only | ||||||
| 					<MkMediaList :mediaList="appearNote.files"/> | 					<MkMediaList :mediaList="appearNote.files"/> | ||||||
| 				</div> | 				</div> | ||||||
| 				<MkPoll v-if="appearNote.poll" ref="pollViewer" :noteId="appearNote.id" :poll="appearNote.poll" :class="$style.poll"/> | 				<MkPoll v-if="appearNote.poll" ref="pollViewer" :noteId="appearNote.id" :poll="appearNote.poll" :class="$style.poll"/> | ||||||
|  | 				<div v-if="isEnabledUrlPreview"> | ||||||
| 					<MkUrlPreview v-for="url in urls" :key="url" :url="url" :compact="true" :detail="true" style="margin-top: 6px;"/> | 					<MkUrlPreview v-for="url in urls" :key="url" :url="url" :compact="true" :detail="true" style="margin-top: 6px;"/> | ||||||
|  | 				</div> | ||||||
| 				<div v-if="appearNote.renote" :class="$style.quote"><SkNoteSimple :note="appearNote.renote" :class="$style.quoteNote" :expandAllCws="props.expandAllCws"/></div> | 				<div v-if="appearNote.renote" :class="$style.quote"><SkNoteSimple :note="appearNote.renote" :class="$style.quoteNote" :expandAllCws="props.expandAllCws"/></div> | ||||||
| 			</div> | 			</div> | ||||||
| 			<MkA v-if="appearNote.channel && !inChannel" :class="$style.channel" :to="`/channels/${appearNote.channel.id}`"><i class="ph-television ph-bold ph-lg"></i> {{ appearNote.channel.name }}</MkA> | 			<MkA v-if="appearNote.channel && !inChannel" :class="$style.channel" :to="`/channels/${appearNote.channel.id}`"><i class="ph-television ph-bold ph-lg"></i> {{ appearNote.channel.name }}</MkA> | ||||||
|  | @ -234,6 +236,7 @@ import * as Misskey from 'misskey-js'; | ||||||
| import SkNoteSub from '@/components/SkNoteSub.vue'; | import SkNoteSub from '@/components/SkNoteSub.vue'; | ||||||
| import SkNoteSimple from '@/components/SkNoteSimple.vue'; | import SkNoteSimple from '@/components/SkNoteSimple.vue'; | ||||||
| import MkReactionsViewer from '@/components/MkReactionsViewer.vue'; | import MkReactionsViewer from '@/components/MkReactionsViewer.vue'; | ||||||
|  | import MkReactionsViewerDetails from '@/components/MkReactionsViewer.details.vue'; | ||||||
| import MkMediaList from '@/components/MkMediaList.vue'; | import MkMediaList from '@/components/MkMediaList.vue'; | ||||||
| import MkCwButton from '@/components/MkCwButton.vue'; | import MkCwButton from '@/components/MkCwButton.vue'; | ||||||
| import MkPoll from '@/components/MkPoll.vue'; | import MkPoll from '@/components/MkPoll.vue'; | ||||||
|  | @ -246,7 +249,7 @@ import { userPage } from '@/filters/user.js'; | ||||||
| import number from '@/filters/number.js'; | import number from '@/filters/number.js'; | ||||||
| import { notePage } from '@/filters/note.js'; | import { notePage } from '@/filters/note.js'; | ||||||
| import * as os from '@/os.js'; | import * as os from '@/os.js'; | ||||||
| import { misskeyApi } from '@/scripts/misskey-api.js'; | import { misskeyApi, misskeyApiGet } from '@/scripts/misskey-api.js'; | ||||||
| import * as sound from '@/scripts/sound.js'; | import * as sound from '@/scripts/sound.js'; | ||||||
| import { defaultStore, noteViewInterruptors } from '@/store.js'; | import { defaultStore, noteViewInterruptors } from '@/store.js'; | ||||||
| import { reactionPicker } from '@/scripts/reaction-picker.js'; | import { reactionPicker } from '@/scripts/reaction-picker.js'; | ||||||
|  | @ -267,6 +270,7 @@ import MkPagination, { type Paging } from '@/components/MkPagination.vue'; | ||||||
| import MkReactionIcon from '@/components/MkReactionIcon.vue'; | import MkReactionIcon from '@/components/MkReactionIcon.vue'; | ||||||
| import MkButton from '@/components/MkButton.vue'; | import MkButton from '@/components/MkButton.vue'; | ||||||
| import { boostMenuItems, type Visibility } from '@/scripts/boost-quote.js'; | import { boostMenuItems, type Visibility } from '@/scripts/boost-quote.js'; | ||||||
|  | import { isEnabledUrlPreview } from '@/instance.js'; | ||||||
| 
 | 
 | ||||||
| const props = defineProps<{ | const props = defineProps<{ | ||||||
| 	note: Misskey.entities.Note; | 	note: Misskey.entities.Note; | ||||||
|  | @ -448,6 +452,28 @@ function boostVisibility() { | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | if (appearNote.value.reactionAcceptance === 'likeOnly') { | ||||||
|  | 	useTooltip(reactButton, async (showing) => { | ||||||
|  | 		const reactions = await misskeyApiGet('notes/reactions', { | ||||||
|  | 			noteId: appearNote.value.id, | ||||||
|  | 			limit: 10, | ||||||
|  | 			_cacheKey_: appearNote.value.reactionCount, | ||||||
|  | 		}); | ||||||
|  | 
 | ||||||
|  | 		const users = reactions.map(x => x.user); | ||||||
|  | 
 | ||||||
|  | 		if (users.length < 1) return; | ||||||
|  | 
 | ||||||
|  | 		os.popup(MkReactionsViewerDetails, { | ||||||
|  | 			showing, | ||||||
|  | 			reaction: '❤️', | ||||||
|  | 			users, | ||||||
|  | 			count: appearNote.value.reactionCount, | ||||||
|  | 			targetElement: reactButton.value!, | ||||||
|  | 		}, {}, 'closed'); | ||||||
|  | 	}); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| function renote(visibility: Visibility, localOnly: boolean = false) { | function renote(visibility: Visibility, localOnly: boolean = false) { | ||||||
| 	pleaseLogin(); | 	pleaseLogin(); | ||||||
| 	showMovedDialog(); | 	showMovedDialog(); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue