mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-11-04 07:24:13 +00:00 
			
		
		
		
	copy changes to SkNote*
This commit is contained in:
		
							parent
							
								
									dfff4d2073
								
							
						
					
					
						commit
						8ab3f3aad6
					
				
					 2 changed files with 37 additions and 19 deletions
				
			
		| 
						 | 
					@ -99,7 +99,7 @@ SPDX-License-Identifier: AGPL-3.0-only
 | 
				
			||||||
				</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>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
			<MkReactionsViewer :note="appearNote" :maxNumber="16" @click.stop @mockUpdateMyReaction="emitUpdReaction">
 | 
								<MkReactionsViewer v-if="appearNote.reactionAcceptance !== 'likeOnly'" :note="appearNote" :maxNumber="16" @click.stop @mockUpdateMyReaction="emitUpdReaction">
 | 
				
			||||||
				<template #more>
 | 
									<template #more>
 | 
				
			||||||
					<div :class="$style.reactionOmitted">{{ i18n.ts.more }}</div>
 | 
										<div :class="$style.reactionOmitted">{{ i18n.ts.more }}</div>
 | 
				
			||||||
				</template>
 | 
									</template>
 | 
				
			||||||
| 
						 | 
					@ -107,7 +107,7 @@ SPDX-License-Identifier: AGPL-3.0-only
 | 
				
			||||||
			<footer :class="$style.footer">
 | 
								<footer :class="$style.footer">
 | 
				
			||||||
				<button :class="$style.footerButton" class="_button" @click.stop @click="reply()">
 | 
									<button :class="$style.footerButton" class="_button" @click.stop @click="reply()">
 | 
				
			||||||
					<i class="ph-arrow-u-up-left ph-bold ph-lg"></i>
 | 
										<i class="ph-arrow-u-up-left ph-bold ph-lg"></i>
 | 
				
			||||||
					<p v-if="appearNote.repliesCount > 0" :class="$style.footerButtonCount">{{ appearNote.repliesCount }}</p>
 | 
										<p v-if="appearNote.repliesCount > 0" :class="$style.footerButtonCount">{{ number(appearNote.repliesCount) }}</p>
 | 
				
			||||||
				</button>
 | 
									</button>
 | 
				
			||||||
				<button
 | 
									<button
 | 
				
			||||||
					v-if="canRenote"
 | 
										v-if="canRenote"
 | 
				
			||||||
| 
						 | 
					@ -119,7 +119,7 @@ SPDX-License-Identifier: AGPL-3.0-only
 | 
				
			||||||
					@mousedown="renoted ? undoRenote(appearNote) : boostVisibility()"
 | 
										@mousedown="renoted ? undoRenote(appearNote) : boostVisibility()"
 | 
				
			||||||
				>
 | 
									>
 | 
				
			||||||
					<i class="ph-rocket-launch ph-bold ph-lg"></i>
 | 
										<i class="ph-rocket-launch ph-bold ph-lg"></i>
 | 
				
			||||||
					<p v-if="appearNote.renoteCount > 0" :class="$style.footerButtonCount">{{ appearNote.renoteCount }}</p>
 | 
										<p v-if="appearNote.renoteCount > 0" :class="$style.footerButtonCount">{{ number(appearNote.renoteCount) }}</p>
 | 
				
			||||||
				</button>
 | 
									</button>
 | 
				
			||||||
				<button v-else :class="$style.footerButton" class="_button" disabled>
 | 
									<button v-else :class="$style.footerButton" class="_button" disabled>
 | 
				
			||||||
					<i class="ph-prohibit ph-bold ph-lg"></i>
 | 
										<i class="ph-prohibit ph-bold ph-lg"></i>
 | 
				
			||||||
| 
						 | 
					@ -137,12 +137,12 @@ SPDX-License-Identifier: AGPL-3.0-only
 | 
				
			||||||
				<button v-if="appearNote.myReaction == null && appearNote.reactionAcceptance !== 'likeOnly'" ref="likeButton" :class="$style.footerButton" class="_button" @click.stop @click="like()">
 | 
									<button v-if="appearNote.myReaction == null && appearNote.reactionAcceptance !== 'likeOnly'" ref="likeButton" :class="$style.footerButton" class="_button" @click.stop @click="like()">
 | 
				
			||||||
					<i class="ph-heart ph-bold ph-lg"></i>
 | 
										<i class="ph-heart ph-bold ph-lg"></i>
 | 
				
			||||||
				</button>
 | 
									</button>
 | 
				
			||||||
				<button v-if="appearNote.myReaction == null" ref="reactButton" :class="$style.footerButton" class="_button" @mousedown="react()">
 | 
									<button ref="reactButton" :class="$style.footerButton" class="_button" @click="toggleReact()">
 | 
				
			||||||
					<i v-if="appearNote.reactionAcceptance === 'likeOnly'" class="ph-heart ph-bold ph-lg"></i>
 | 
										<i v-if="appearNote.reactionAcceptance === 'likeOnly' && appearNote.myReaction != null" class="ph-heart ph-bold ph-lg" style="color: var(--eventReactionHeart);"></i>
 | 
				
			||||||
 | 
										<i v-else-if="appearNote.myReaction != null" class="ph-minus ph-bold ph-lg" style="color: var(--accent);"></i>
 | 
				
			||||||
 | 
										<i v-else-if="appearNote.reactionAcceptance === 'likeOnly'" class="ph-heart ph-bold ph-lg"></i>
 | 
				
			||||||
					<i v-else class="ph-smiley ph-bold ph-lg"></i>
 | 
										<i v-else class="ph-smiley ph-bold ph-lg"></i>
 | 
				
			||||||
				</button>
 | 
										<p v-if="appearNote.reactionCount > 0" :class="$style.footerButtonCount">{{ number(appearNote.reactionCount) }}</p>
 | 
				
			||||||
				<button v-if="appearNote.myReaction != null" ref="reactButton" :class="$style.footerButton" class="_button" @click.stop @click="undoReact(appearNote)">
 | 
					 | 
				
			||||||
					<i class="ph-minus ph-bold ph-lg"></i>
 | 
					 | 
				
			||||||
				</button>
 | 
									</button>
 | 
				
			||||||
				<button v-if="defaultStore.state.showClipButtonInNoteFooter" ref="clipButton" :class="$style.footerButton" class="_button" @mousedown="clip()">
 | 
									<button v-if="defaultStore.state.showClipButtonInNoteFooter" ref="clipButton" :class="$style.footerButton" class="_button" @mousedown="clip()">
 | 
				
			||||||
					<i class="ph-paperclip ph-bold ph-lg"></i>
 | 
										<i class="ph-paperclip ph-bold ph-lg"></i>
 | 
				
			||||||
| 
						 | 
					@ -196,6 +196,7 @@ import { pleaseLogin } from '@/scripts/please-login.js';
 | 
				
			||||||
import { focusPrev, focusNext } from '@/scripts/focus.js';
 | 
					import { focusPrev, focusNext } from '@/scripts/focus.js';
 | 
				
			||||||
import { checkWordMute } from '@/scripts/check-word-mute.js';
 | 
					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 * as os from '@/os.js';
 | 
					import * as os from '@/os.js';
 | 
				
			||||||
import { misskeyApi } from '@/scripts/misskey-api.js';
 | 
					import { misskeyApi } from '@/scripts/misskey-api.js';
 | 
				
			||||||
import * as sound from '@/scripts/sound.js';
 | 
					import * as sound from '@/scripts/sound.js';
 | 
				
			||||||
| 
						 | 
					@ -627,6 +628,14 @@ function undoRenote(note) : void {
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function toggleReact() {
 | 
				
			||||||
 | 
						if (appearNote.value.myReaction == null) {
 | 
				
			||||||
 | 
							react();
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							undoReact(appearNote.value);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function onContextmenu(ev: MouseEvent): void {
 | 
					function onContextmenu(ev: MouseEvent): void {
 | 
				
			||||||
	if (props.mock) {
 | 
						if (props.mock) {
 | 
				
			||||||
		return;
 | 
							return;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -120,11 +120,11 @@ SPDX-License-Identifier: AGPL-3.0-only
 | 
				
			||||||
				<MkTime :time="appearNote.createdAt" mode="detail" colored/>
 | 
									<MkTime :time="appearNote.createdAt" mode="detail" colored/>
 | 
				
			||||||
			</MkA>
 | 
								</MkA>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
		<MkReactionsViewer ref="reactionsViewer" :note="appearNote"/>
 | 
							<MkReactionsViewer v-if="appearNote.reactionAcceptance !== 'likeOnly'" ref="reactionsViewer" :note="appearNote"/>
 | 
				
			||||||
		<footer :class="$style.footer">
 | 
							<footer :class="$style.footer">
 | 
				
			||||||
			<button class="_button" :class="$style.noteFooterButton" @click="reply()">
 | 
								<button class="_button" :class="$style.noteFooterButton" @click="reply()">
 | 
				
			||||||
				<i class="ph-arrow-u-up-left ph-bold ph-lg"></i>
 | 
									<i class="ph-arrow-u-up-left ph-bold ph-lg"></i>
 | 
				
			||||||
				<p v-if="appearNote.repliesCount > 0" :class="$style.noteFooterButtonCount">{{ appearNote.repliesCount }}</p>
 | 
									<p v-if="appearNote.repliesCount > 0" :class="$style.noteFooterButtonCount">{{ number(appearNote.repliesCount) }}</p>
 | 
				
			||||||
			</button>
 | 
								</button>
 | 
				
			||||||
			<button
 | 
								<button
 | 
				
			||||||
				v-if="canRenote"
 | 
									v-if="canRenote"
 | 
				
			||||||
| 
						 | 
					@ -135,7 +135,7 @@ SPDX-License-Identifier: AGPL-3.0-only
 | 
				
			||||||
				@mousedown="renoted ? undoRenote() : boostVisibility()"
 | 
									@mousedown="renoted ? undoRenote() : boostVisibility()"
 | 
				
			||||||
			>
 | 
								>
 | 
				
			||||||
				<i class="ph-rocket-launch ph-bold ph-lg"></i>
 | 
									<i class="ph-rocket-launch ph-bold ph-lg"></i>
 | 
				
			||||||
				<p v-if="appearNote.renoteCount > 0" :class="$style.noteFooterButtonCount">{{ appearNote.renoteCount }}</p>
 | 
									<p v-if="appearNote.renoteCount > 0" :class="$style.noteFooterButtonCount">{{ number(appearNote.renoteCount) }}</p>
 | 
				
			||||||
			</button>
 | 
								</button>
 | 
				
			||||||
			<button v-else class="_button" :class="$style.noteFooterButton" disabled>
 | 
								<button v-else class="_button" :class="$style.noteFooterButton" disabled>
 | 
				
			||||||
				<i class="ph-prohibit ph-bold ph-lg"></i>
 | 
									<i class="ph-prohibit ph-bold ph-lg"></i>
 | 
				
			||||||
| 
						 | 
					@ -152,12 +152,12 @@ SPDX-License-Identifier: AGPL-3.0-only
 | 
				
			||||||
			<button v-if="appearNote.myReaction == null && appearNote.reactionAcceptance !== 'likeOnly'" ref="likeButton" :class="$style.noteFooterButton" class="_button" @mousedown="like()">
 | 
								<button v-if="appearNote.myReaction == null && appearNote.reactionAcceptance !== 'likeOnly'" ref="likeButton" :class="$style.noteFooterButton" class="_button" @mousedown="like()">
 | 
				
			||||||
				<i class="ph-heart ph-bold ph-lg"></i>
 | 
									<i class="ph-heart ph-bold ph-lg"></i>
 | 
				
			||||||
			</button>
 | 
								</button>
 | 
				
			||||||
			<button v-if="appearNote.myReaction == null" ref="reactButton" :class="$style.noteFooterButton" class="_button" @mousedown="react()">
 | 
								<button ref="reactButton" :class="$style.footerButton" class="_button" @click="toggleReact()">
 | 
				
			||||||
				<i v-if="appearNote.reactionAcceptance === 'likeOnly'" class="ph-heart ph-bold ph-lg"></i>
 | 
									<i v-if="appearNote.reactionAcceptance === 'likeOnly' && appearNote.myReaction != null" class="ph-heart ph-bold ph-lg" style="color: var(--eventReactionHeart);"></i>
 | 
				
			||||||
 | 
									<i v-else-if="appearNote.myReaction != null" class="ph-minus ph-bold ph-lg" style="color: var(--accent);"></i>
 | 
				
			||||||
 | 
									<i v-else-if="appearNote.reactionAcceptance === 'likeOnly'" class="ph-heart ph-bold ph-lg"></i>
 | 
				
			||||||
				<i v-else class="ph-smiley ph-bold ph-lg"></i>
 | 
									<i v-else class="ph-smiley ph-bold ph-lg"></i>
 | 
				
			||||||
			</button>
 | 
									<p v-if="appearNote.reactionCount > 0" :class="$style.footerButtonCount">{{ number(appearNote.reactionCount) }}</p>
 | 
				
			||||||
			<button v-if="appearNote.myReaction != null" ref="reactButton" class="_button" :class="[$style.noteFooterButton, $style.reacted]" @click="undoReact(appearNote)">
 | 
					 | 
				
			||||||
				<i class="ph-minus ph-bold ph-lg"></i>
 | 
					 | 
				
			||||||
			</button>
 | 
								</button>
 | 
				
			||||||
			<button v-if="defaultStore.state.showClipButtonInNoteFooter" ref="clipButton" class="_button" :class="$style.noteFooterButton" @mousedown="clip()">
 | 
								<button v-if="defaultStore.state.showClipButtonInNoteFooter" ref="clipButton" class="_button" :class="$style.noteFooterButton" @mousedown="clip()">
 | 
				
			||||||
				<i class="ph-paperclip ph-bold ph-lg"></i>
 | 
									<i class="ph-paperclip ph-bold ph-lg"></i>
 | 
				
			||||||
| 
						 | 
					@ -243,6 +243,7 @@ import SkInstanceTicker from '@/components/SkInstanceTicker.vue';
 | 
				
			||||||
import { pleaseLogin } from '@/scripts/please-login.js';
 | 
					import { pleaseLogin } from '@/scripts/please-login.js';
 | 
				
			||||||
import { checkWordMute } from '@/scripts/check-word-mute.js';
 | 
					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 { 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 } from '@/scripts/misskey-api.js';
 | 
				
			||||||
| 
						 | 
					@ -603,11 +604,11 @@ function like(): void {
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function undoReact(note): void {
 | 
					function undoReact(targetNote: Misskey.entities.Note): void {
 | 
				
			||||||
	const oldReaction = note.myReaction;
 | 
						const oldReaction = targetNote.myReaction;
 | 
				
			||||||
	if (!oldReaction) return;
 | 
						if (!oldReaction) return;
 | 
				
			||||||
	misskeyApi('notes/reactions/delete', {
 | 
						misskeyApi('notes/reactions/delete', {
 | 
				
			||||||
		noteId: note.id,
 | 
							noteId: targetNote.id,
 | 
				
			||||||
	});
 | 
						});
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -628,6 +629,14 @@ function undoRenote() : void {
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function toggleReact() {
 | 
				
			||||||
 | 
						if (appearNote.value.myReaction == null) {
 | 
				
			||||||
 | 
							react();
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							undoReact(appearNote.value);
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function onContextmenu(ev: MouseEvent): void {
 | 
					function onContextmenu(ev: MouseEvent): void {
 | 
				
			||||||
	const isLink = (el: HTMLElement): boolean => {
 | 
						const isLink = (el: HTMLElement): boolean => {
 | 
				
			||||||
		if (el.tagName === 'A') return true;
 | 
							if (el.tagName === 'A') return true;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue