merge: fix "click to open", "number of replies", "oneko" (!1000)

View MR for information: https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/1000

Approved-by: Marie <github@yuugi.dev>
Approved-by: Hazelnoot <acomputerdog@gmail.com>
This commit is contained in:
Hazelnoot 2025-05-09 12:37:37 +00:00
commit 2acf7fa46d
5 changed files with 11 additions and 16 deletions

View file

@ -52,7 +52,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<article v-else :class="$style.article" @contextmenu.stop="onContextmenu"> <article v-else :class="$style.article" @contextmenu.stop="onContextmenu">
<div v-if="appearNote.channel" :class="$style.colorBar" :style="{ background: appearNote.channel.color }"></div> <div v-if="appearNote.channel" :class="$style.colorBar" :style="{ background: appearNote.channel.color }"></div>
<MkAvatar :class="[$style.avatar, prefer.s.useStickyIcons ? $style.useSticky : null]" :user="appearNote.user" :link="!mock" :preview="!mock"/> <MkAvatar :class="[$style.avatar, prefer.s.useStickyIcons ? $style.useSticky : null]" :user="appearNote.user" :link="!mock" :preview="!mock"/>
<div :class="[$style.main, { [$style.clickToOpen]: store.s.clickToOpen }]" @click.stop="store.s.clickToOpen ? noteclick(appearNote.id) : undefined"> <div :class="[$style.main, { [$style.clickToOpen]: prefer.s.clickToOpen }]" @click.stop="prefer.s.clickToOpen ? noteclick(appearNote.id) : undefined">
<MkNoteHeader :note="appearNote" :mini="true" @click.stop/> <MkNoteHeader :note="appearNote" :mini="true" @click.stop/>
<MkInstanceTicker v-if="showTicker" :host="appearNote.user.host" :instance="appearNote.user.instance"/> <MkInstanceTicker v-if="showTicker" :host="appearNote.user.host" :instance="appearNote.user.instance"/>
<div style="container-type: inline-size;"> <div style="container-type: inline-size;">
@ -259,7 +259,6 @@ import { prefer } from '@/preferences.js';
import { getPluginHandlers } from '@/plugin.js'; import { getPluginHandlers } from '@/plugin.js';
import { DI } from '@/di.js'; import { DI } from '@/di.js';
import { useRouter } from '@/router.js'; import { useRouter } from '@/router.js';
import { store } from '@/store';
const props = withDefaults(defineProps<{ const props = withDefaults(defineProps<{
note: Misskey.entities.Note; note: Misskey.entities.Note;

View file

@ -65,7 +65,7 @@ SPDX-License-Identifier: AGPL-3.0-only
</footer> </footer>
</div> </div>
</div> </div>
<template v-if="depth < store.s.numberOfReplies"> <template v-if="depth < prefer.s.numberOfReplies">
<MkNoteSub v-for="reply in replies" :key="reply.id" :note="reply" :class="$style.reply" :detail="true" :depth="depth + 1" :expandAllCws="props.expandAllCws" :onDeleteCallback="removeReply"/> <MkNoteSub v-for="reply in replies" :key="reply.id" :note="reply" :class="$style.reply" :detail="true" :depth="depth + 1" :expandAllCws="props.expandAllCws" :onDeleteCallback="removeReply"/>
</template> </template>
<div v-else :class="$style.more"> <div v-else :class="$style.more">
@ -111,7 +111,6 @@ import { getNoteMenu } from '@/utility/get-note-menu.js';
import { boostMenuItems, computeRenoteTooltip } from '@/utility/boost-quote.js'; import { boostMenuItems, computeRenoteTooltip } from '@/utility/boost-quote.js';
import { prefer } from '@/preferences.js'; import { prefer } from '@/preferences.js';
import { useNoteCapture } from '@/use/use-note-capture.js'; import { useNoteCapture } from '@/use/use-note-capture.js';
import { store } from '@/store.js';
const props = withDefaults(defineProps<{ const props = withDefaults(defineProps<{
note: Misskey.entities.Note; note: Misskey.entities.Note;
@ -178,8 +177,8 @@ useNoteCapture({
note: appearNote, note: appearNote,
isDeletedRef: isDeleted, isDeletedRef: isDeleted,
// only update replies if we are, in fact, showing replies // only update replies if we are, in fact, showing replies
onReplyCallback: props.detail && props.depth < store.s.numberOfReplies ? addReplyTo : undefined, onReplyCallback: props.detail && props.depth < prefer.s.numberOfReplies ? addReplyTo : undefined,
onDeleteCallback: props.detail && props.depth < store.s.numberOfReplies ? props.onDeleteCallback : undefined, onDeleteCallback: props.detail && props.depth < prefer.s.numberOfReplies ? props.onDeleteCallback : undefined,
}); });
if ($i) { if ($i) {
@ -384,7 +383,7 @@ function menu(): void {
if (props.detail) { if (props.detail) {
misskeyApi('notes/children', { misskeyApi('notes/children', {
noteId: props.note.id, noteId: props.note.id,
limit: store.s.numberOfReplies, limit: prefer.s.numberOfReplies,
showQuotes: false, showQuotes: false,
}).then(res => { }).then(res => {
replies.value = res; replies.value = res;

View file

@ -58,7 +58,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<SkNoteHeader :note="appearNote" :mini="true"/> <SkNoteHeader :note="appearNote" :mini="true"/>
</div> </div>
</div> </div>
<div :class="[{ [$style.clickToOpen]: store.s.clickToOpen }]" @click.stop="store.s.clickToOpen ? noteclick(appearNote.id) : undefined"> <div :class="[{ [$style.clickToOpen]: prefer.s.clickToOpen }]" @click.stop="prefer.s.clickToOpen ? noteclick(appearNote.id) : undefined">
<div style="container-type: inline-size;"> <div style="container-type: inline-size;">
<p v-if="mergedCW != null" :class="$style.cw"> <p v-if="mergedCW != null" :class="$style.cw">
<Mfm <Mfm
@ -259,7 +259,6 @@ import { prefer } from '@/preferences.js';
import { getPluginHandlers } from '@/plugin.js'; import { getPluginHandlers } from '@/plugin.js';
import { DI } from '@/di.js'; import { DI } from '@/di.js';
import { useRouter } from '@/router.js'; import { useRouter } from '@/router.js';
import { store } from '@/store';
const props = withDefaults(defineProps<{ const props = withDefaults(defineProps<{
note: Misskey.entities.Note; note: Misskey.entities.Note;

View file

@ -73,7 +73,7 @@ SPDX-License-Identifier: AGPL-3.0-only
</footer> </footer>
</div> </div>
</div> </div>
<template v-if="depth < store.s.numberOfReplies"> <template v-if="depth < prefer.s.numberOfReplies">
<SkNoteSub v-for="reply in replies" :key="reply.id" :note="reply" :class="[$style.reply, { [$style.single]: replies.length === 1 }]" :detail="true" :depth="depth + 1" :expandAllCws="props.expandAllCws" :onDeleteCallback="removeReply" :isReply="props.isReply"/> <SkNoteSub v-for="reply in replies" :key="reply.id" :note="reply" :class="[$style.reply, { [$style.single]: replies.length === 1 }]" :detail="true" :depth="depth + 1" :expandAllCws="props.expandAllCws" :onDeleteCallback="removeReply" :isReply="props.isReply"/>
</template> </template>
<div v-else :class="$style.more"> <div v-else :class="$style.more">
@ -119,7 +119,6 @@ import { getNoteMenu } from '@/utility/get-note-menu.js';
import { boostMenuItems, computeRenoteTooltip } from '@/utility/boost-quote.js'; import { boostMenuItems, computeRenoteTooltip } from '@/utility/boost-quote.js';
import { prefer } from '@/preferences.js'; import { prefer } from '@/preferences.js';
import { useNoteCapture } from '@/use/use-note-capture.js'; import { useNoteCapture } from '@/use/use-note-capture.js';
import { store } from '@/store.js';
const props = withDefaults(defineProps<{ const props = withDefaults(defineProps<{
note: Misskey.entities.Note; note: Misskey.entities.Note;
@ -192,8 +191,8 @@ useNoteCapture({
note: appearNote, note: appearNote,
isDeletedRef: isDeleted, isDeletedRef: isDeleted,
// only update replies if we are, in fact, showing replies // only update replies if we are, in fact, showing replies
onReplyCallback: props.detail && props.depth < store.s.numberOfReplies ? addReplyTo : undefined, onReplyCallback: props.detail && props.depth < prefer.s.numberOfReplies ? addReplyTo : undefined,
onDeleteCallback: props.detail && props.depth < store.s.numberOfReplies ? props.onDeleteCallback : undefined, onDeleteCallback: props.detail && props.depth < prefer.s.numberOfReplies ? props.onDeleteCallback : undefined,
}); });
if ($i) { if ($i) {
@ -398,7 +397,7 @@ function menu(): void {
if (props.detail) { if (props.detail) {
misskeyApi('notes/children', { misskeyApi('notes/children', {
noteId: props.note.id, noteId: props.note.id,
limit: store.s.numberOfReplies, limit: prefer.s.numberOfReplies,
showQuotes: false, showQuotes: false,
}).then(res => { }).then(res => {
replies.value = res; replies.value = res;

View file

@ -97,7 +97,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<div v-if="$i && $i.isBot" id="botWarn"><span>{{ i18n.ts.loggedInAsBot }}</span></div> <div v-if="$i && $i.isBot" id="botWarn"><span>{{ i18n.ts.loggedInAsBot }}</span></div>
<SkOneko v-if="store.r.oneko.value"/> <SkOneko v-if="prefer.r.oneko.value"/>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
@ -115,7 +115,6 @@ import { i18n } from '@/i18n.js';
import { prefer } from '@/preferences.js'; import { prefer } from '@/preferences.js';
import { globalEvents } from '@/events.js'; import { globalEvents } from '@/events.js';
import XDrawerMenu from '@/ui/_common_/navbar-for-mobile.vue'; import XDrawerMenu from '@/ui/_common_/navbar-for-mobile.vue';
import { store } from '@/store.js';
const XStreamIndicator = defineAsyncComponent(() => import('./stream-indicator.vue')); const XStreamIndicator = defineAsyncComponent(() => import('./stream-indicator.vue'));
const XUpload = defineAsyncComponent(() => import('./upload.vue')); const XUpload = defineAsyncComponent(() => import('./upload.vue'));