merge: upstream

This commit is contained in:
Marie 2023-12-23 02:09:23 +01:00
commit 5db583a3eb
701 changed files with 50809 additions and 13660 deletions

View file

@ -21,7 +21,7 @@ SPDX-License-Identifier: AGPL-3.0-only
<div :class="$style.content">
<p v-if="note.cw != null" :class="$style.cw">
<Mfm v-if="note.cw != ''" style="margin-right: 8px;" :text="note.cw" :author="note.user" :nyaize="'respect'"/>
<MkCwButton v-model="showContent" :note="note"/>
<MkCwButton v-model="showContent" :text="note.text" :files="note.files" :poll="note.poll"/>
</p>
<div v-show="note.cw == null || showContent">
<MkSubNoteContent :class="$style.text" :note="note" :translating="translating" :translation="translation"/>
@ -101,15 +101,14 @@ import { notePage } from '@/filters/note.js';
import * as os from '@/os.js';
import { i18n } from '@/i18n.js';
import { $i } from '@/account.js';
import { userPage } from "@/filters/user.js";
import { checkWordMute } from "@/scripts/check-word-mute.js";
import { defaultStore } from "@/store.js";
import { userPage } from '@/filters/user.js';
import { checkWordMute } from '@/scripts/check-word-mute.js';
import { defaultStore } from '@/store.js';
import { pleaseLogin } from '@/scripts/please-login.js';
import { showMovedDialog } from '@/scripts/show-moved-dialog.js';
import MkRippleEffect from '@/components/MkRippleEffect.vue';
import { reactionPicker } from '@/scripts/reaction-picker.js';
import { claimAchievement } from '@/scripts/achievements.js';
import type { MenuItem } from '@/types/menu.js';
import { getNoteMenu } from '@/scripts/get-note-menu.js';
import { useNoteCapture } from '@/scripts/use-note-capture.js';
@ -140,7 +139,7 @@ const quoteButton = shallowRef<HTMLElement>();
const menuButton = shallowRef<HTMLElement>();
const likeButton = shallowRef<HTMLElement>();
let appearNote = $computed(() => isRenote ? props.note.renote as Misskey.entities.Note : props.note);
let appearNote = computed(() => isRenote ? props.note.renote as Misskey.entities.Note : props.note);
const defaultLike = computed(() => defaultStore.state.like ? defaultStore.state.like : null);
const isRenote = (
@ -152,13 +151,13 @@ const isRenote = (
useNoteCapture({
rootEl: el,
note: $$(appearNote),
note: appearNote,
isDeletedRef: isDeleted,
});
if ($i) {
os.api("notes/renotes", {
noteId: appearNote.id,
os.api('notes/renotes', {
noteId: appearNote.value.id,
userId: $i.id,
limit: 1,
}).then((res) => {
@ -239,8 +238,8 @@ function undoReact(note): void {
function undoRenote() : void {
if (!renoted.value) return;
os.api("notes/unrenote", {
noteId: appearNote.id,
os.api('notes/unrenote', {
noteId: appearNote.value.id,
});
os.toast(i18n.ts.rmboost);
renoted.value = false;
@ -254,13 +253,13 @@ function undoRenote() : void {
}
}
let showContent = $ref(defaultStore.state.uncollapseCW);
let showContent = ref(defaultStore.state.uncollapseCW);
watch(() => props.expandAllCws, (expandAllCws) => {
if (expandAllCws !== showContent) showContent = expandAllCws;
if (expandAllCws !== showContent.value) showContent.value = expandAllCws;
});
let replies: Misskey.entities.Note[] = $ref([]);
let replies = ref<Misskey.entities.Note[]>([]);
function boostVisibility() {
os.popupMenu([
@ -302,7 +301,7 @@ function renote(visibility: 'public' | 'home' | 'followers' | 'specified' | 'loc
pleaseLogin();
showMovedDialog();
if (appearNote.channel) {
if (appearNote.value.channel) {
const el = renoteButton.value as HTMLElement | null | undefined;
if (el) {
const rect = el.getBoundingClientRect();
@ -342,12 +341,12 @@ function quote() {
pleaseLogin();
showMovedDialog();
if (appearNote.channel) {
if (appearNote.value.channel) {
os.post({
renote: appearNote,
channel: appearNote.channel,
renote: appearNote.value,
channel: appearNote.value.channel,
}).then(() => {
os.api("notes/renotes", {
os.api('notes/renotes', {
noteId: props.note.id,
userId: $i.id,
limit: 1,
@ -367,9 +366,9 @@ function quote() {
});
} else {
os.post({
renote: appearNote,
renote: appearNote.value,
}).then(() => {
os.api("notes/renotes", {
os.api('notes/renotes', {
noteId: props.note.id,
userId: $i.id,
limit: 1,
@ -403,7 +402,7 @@ if (props.detail) {
limit: numberOfReplies.value,
showQuotes: false,
}).then(res => {
replies = res;
replies.value = res;
});
}
</script>