diff --git a/packages/backend/src/server/api/endpoints/messaging/messages.ts b/packages/backend/src/server/api/endpoints/messaging/messages.ts index c16a34d004..68f914b93a 100644 --- a/packages/backend/src/server/api/endpoints/messaging/messages.ts +++ b/packages/backend/src/server/api/endpoints/messaging/messages.ts @@ -51,24 +51,16 @@ export const meta = { export const paramDef = { type: 'object', properties: { + userId: { type: 'string', format: 'misskey:id' }, + groupId: { type: 'string', format: 'misskey:id' }, limit: { type: 'integer', minimum: 1, maximum: 100, default: 10 }, sinceId: { type: 'string', format: 'misskey:id' }, untilId: { type: 'string', format: 'misskey:id' }, markAsRead: { type: 'boolean', default: true }, }, anyOf: [ - { - properties: { - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['userId'], - }, - { - properties: { - groupId: { type: 'string', format: 'misskey:id' }, - }, - required: ['groupId'], - }, + { required: ['userId'] }, + { required: ['groupId'] }, ], } as const; diff --git a/packages/backend/src/server/api/endpoints/messaging/messages/create.ts b/packages/backend/src/server/api/endpoints/messaging/messages/create.ts index ad35bd2903..d8da5c202e 100644 --- a/packages/backend/src/server/api/endpoints/messaging/messages/create.ts +++ b/packages/backend/src/server/api/endpoints/messaging/messages/create.ts @@ -75,22 +75,14 @@ export const meta = { export const paramDef = { type: 'object', properties: { + userId: { type: 'string', format: 'misskey:id' }, + groupId: { type: 'string', format: 'misskey:id' }, text: { type: 'string', nullable: true, maxLength: 3000 }, fileId: { type: 'string', format: 'misskey:id' }, }, anyOf: [ - { - properties: { - userId: { type: 'string', format: 'misskey:id' }, - }, - required: ['userId'], - }, - { - properties: { - groupId: { type: 'string', format: 'misskey:id' }, - }, - required: ['groupId'], - }, + { required: ['userId'] }, + { required: ['groupId'] }, ], } as const; diff --git a/packages/backend/src/server/api/stream/channels/media-timeline.ts b/packages/backend/src/server/api/stream/channels/media-timeline.ts index 0855f169c6..0762506962 100644 --- a/packages/backend/src/server/api/stream/channels/media-timeline.ts +++ b/packages/backend/src/server/api/stream/channels/media-timeline.ts @@ -12,6 +12,7 @@ class MediaTimelineChannel extends Channel { public readonly chName = 'mediaTimeline'; public static shouldShare = true; public static requireCredential = false; + private withReplies: boolean; constructor( private metaService: MetaService, @@ -30,6 +31,8 @@ class MediaTimelineChannel extends Channel { const policies = await this.roleService.getUserPolicies(this.user ? this.user.id : null); if (!policies.ltlAvailable) return; + this.withReplies = params.withReplies as boolean; + // Subscribe events this.subscriber.on('notesStream', this.onNote); } @@ -54,7 +57,7 @@ class MediaTimelineChannel extends Channel { } // 関係ない返信は除外 - if (note.reply && this.user && !this.user.showTimelineReplies) { + if (note.reply && this.user && !this.withReplies) { const reply = note.reply; // 「チャンネル接続主への返信」でもなければ、「チャンネル接続主が行った返信」でもなければ、「投稿者の投稿者自身への返信」でもない場合 if (reply.userId !== this.user.id && note.userId !== this.user.id && reply.userId !== note.userId) return; diff --git a/packages/frontend/src/components/MkNotifications-Pages.vue b/packages/frontend/src/components/MkNotifications-Pages.vue deleted file mode 100644 index e4c0b750a0..0000000000 --- a/packages/frontend/src/components/MkNotifications-Pages.vue +++ /dev/null @@ -1,104 +0,0 @@ - - - - - diff --git a/packages/frontend/src/components/global/MkMisskeyFlavoredMarkdown.ts b/packages/frontend/src/components/global/MkMisskeyFlavoredMarkdown.ts index 5d11b96630..4b81f2a5d9 100644 --- a/packages/frontend/src/components/global/MkMisskeyFlavoredMarkdown.ts +++ b/packages/frontend/src/components/global/MkMisskeyFlavoredMarkdown.ts @@ -218,9 +218,9 @@ export default function(props: { } case 'ruby': { let rb, rt, tokens; - token.children.forEach((t) => { if (t.type == 'text') { t.props.text = t.props.text.trim(); } }); - const children = token.children.filter((t) => t.type != 'text' || t.props.text != ''); - if (children.length == 1 && children[0].type == 'text') { + token.children.forEach((t) => { if (t.type === 'text') { t.props.text = t.props.text.trim(); } }); + const children = token.children.filter((t) => t.type !== 'text' || t.props.text !== ''); + if (children.length === 1 && children[0].type === 'text') { tokens = children[0].props.text.split(' '); rb = [tokens[0]]; rt = [tokens.slice(1).join(' ')]; diff --git a/packages/frontend/src/pages/about-misskey.vue b/packages/frontend/src/pages/about-misskey.vue index 58747bd2bd..7d62846610 100644 --- a/packages/frontend/src/pages/about-misskey.vue +++ b/packages/frontend/src/pages/about-misskey.vue @@ -206,6 +206,7 @@ import * as os from '@/os'; import { definePageMetadata } from '@/scripts/page-metadata'; import { claimAchievement, claimedAchievements } from '@/scripts/achievements'; import { $i } from '@/account'; +import { instance } from '@/instance'; const patronsWithIconWithCherryPick = [{ name: 'Inger 잉어', @@ -353,6 +354,12 @@ const patronsWithMisskey = [ ]; let isKokonect = false; +const instanceList = [ + 'http://localhost:3000', + 'https://kokonect.link', + 'https://beta.kokonect.link', + 'https://universe.noridev.moe', +]; let thereIsTreasure = $ref($i && !claimedAchievements.includes('foundTreasure')); @@ -361,8 +368,7 @@ let easterEggEmojis = $ref([]); let easterEggEngine = $ref(null); const containerEl = $shallowRef(); -const meta = await os.api('meta', { detail: true }); -if (meta.uri == 'https://kokonect.link' || 'http://localhost:3000') isKokonect = true; +if (instanceList.includes(instance.uri)) isKokonect = true; function iconLoaded() { const emojis = defaultStore.state.reactions; diff --git a/packages/frontend/src/pages/messaging/messaging-room.form.vue b/packages/frontend/src/pages/messaging/messaging-room.form.vue index 287738145c..cf034d85a5 100644 --- a/packages/frontend/src/pages/messaging/messaging-room.form.vue +++ b/packages/frontend/src/pages/messaging/messaging-room.form.vue @@ -198,7 +198,7 @@ function clear() { } function saveDraft() { - const drafts = JSON.parse(miLocalStorage.getItem('message_drafts') || '{}'); + const drafts = JSON.parse(miLocalStorage.getItem('message_drafts') ?? '{}'); drafts[draftKey] = { updatedAt: new Date(), @@ -213,7 +213,7 @@ function saveDraft() { } function deleteDraft() { - const drafts = JSON.parse(miLocalStorage.getItem('message_drafts') || '{}'); + const drafts = JSON.parse(miLocalStorage.getItem('message_drafts') ?? '{}'); delete drafts[draftKey]; @@ -221,7 +221,7 @@ function deleteDraft() { } async function insertEmoji(ev: MouseEvent) { - os.openEmojiPicker(ev.currentTarget ?? ev.target, {}, textEl); + await os.openEmojiPicker(ev.currentTarget ?? ev.target, {}, textEl); } onMounted(() => { @@ -232,7 +232,7 @@ onMounted(() => { //new Autocomplete(textEl, this, { model: 'text' }); // 書きかけの投稿を復元 - const draft = JSON.parse(miLocalStorage.getItem('message_drafts') || '{}')[draftKey]; + const draft = JSON.parse(miLocalStorage.getItem('message_drafts') ?? '{}')[draftKey]; if (draft) { text = draft.data.text; file = draft.data.file; diff --git a/packages/frontend/src/pages/settings/navbar.vue b/packages/frontend/src/pages/settings/navbar.vue index 724d462921..e8a79bf3cd 100644 --- a/packages/frontend/src/pages/settings/navbar.vue +++ b/packages/frontend/src/pages/settings/navbar.vue @@ -112,7 +112,7 @@ async function addItem(ev: MouseEvent) { }]; }, }, - ], ev.target || ev.currentTarget); + ], ev.currentTarget ?? ev.target ); } function removeItem(index: number) { diff --git a/packages/frontend/src/scripts/edit-nickname.ts b/packages/frontend/src/scripts/edit-nickname.ts index 1b8dcd9591..b458c797bc 100644 --- a/packages/frontend/src/scripts/edit-nickname.ts +++ b/packages/frontend/src/scripts/edit-nickname.ts @@ -10,8 +10,8 @@ export async function editNickname(user: User) { placeholder: user.name || user.username, default: defaultStore.state.nicknameMap[user.id] ?? null, }); - if (canceled) return - const newMap = {...defaultStore.state.nicknameMap}; + if (canceled) return; + const newMap = { ...defaultStore.state.nicknameMap }; if (result) { newMap[user.id] = result; } else {