mirror of
https://git.joinsharkey.org/Sharkey/Sharkey.git
synced 2024-11-26 17:33:09 +02:00
Compare commits
4 commits
8197148209
...
c2e02a4c61
Author | SHA1 | Date | |
---|---|---|---|
|
c2e02a4c61 | ||
|
b0bc69aac8 | ||
|
f26eb25a78 | ||
|
4afbf3b91e |
4 changed files with 18 additions and 6 deletions
|
@ -241,6 +241,14 @@ export class NoteEditService implements OnApplicationShutdown {
|
||||||
throw new Error('not the author');
|
throw new Error('not the author');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// we never want to change the replyId, so fetch the original "parent"
|
||||||
|
if (oldnote.replyId) {
|
||||||
|
data.reply = await this.notesRepository.findOneBy({ id: oldnote.replyId });
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
data.reply = undefined;
|
||||||
|
}
|
||||||
|
|
||||||
// チャンネル外にリプライしたら対象のスコープに合わせる
|
// チャンネル外にリプライしたら対象のスコープに合わせる
|
||||||
// (クライアントサイドでやっても良い処理だと思うけどとりあえずサーバーサイドで)
|
// (クライアントサイドでやっても良い処理だと思うけどとりあえずサーバーサイドで)
|
||||||
if (data.reply && data.channel && data.reply.channelId !== data.channel.id) {
|
if (data.reply && data.channel && data.reply.channelId !== data.channel.id) {
|
||||||
|
@ -435,7 +443,7 @@ export class NoteEditService implements OnApplicationShutdown {
|
||||||
id: oldnote.id,
|
id: oldnote.id,
|
||||||
updatedAt: data.updatedAt ? data.updatedAt : new Date(),
|
updatedAt: data.updatedAt ? data.updatedAt : new Date(),
|
||||||
fileIds: data.files ? data.files.map(file => file.id) : [],
|
fileIds: data.files ? data.files.map(file => file.id) : [],
|
||||||
replyId: data.reply ? data.reply.id : null,
|
replyId: oldnote.replyId,
|
||||||
renoteId: data.renote ? data.renote.id : null,
|
renoteId: data.renote ? data.renote.id : null,
|
||||||
channelId: data.channel ? data.channel.id : null,
|
channelId: data.channel ? data.channel.id : null,
|
||||||
threadId: data.reply
|
threadId: data.reply
|
||||||
|
|
|
@ -66,7 +66,11 @@ export class NoteReadService implements OnApplicationShutdown {
|
||||||
noteUserId: note.userId,
|
noteUserId: note.userId,
|
||||||
};
|
};
|
||||||
|
|
||||||
await this.noteUnreadsRepository.insert(unread);
|
/* we may be called from NoteEditService, for a note that's
|
||||||
|
already present in the `note_unread` table: `upsert` makes sure
|
||||||
|
we don't throw a "duplicate key" error, while still updating
|
||||||
|
the other columns if they've changed */
|
||||||
|
await this.noteUnreadsRepository.upsert(unread,['userId', 'noteId']);
|
||||||
|
|
||||||
// 2秒経っても既読にならなかったら「未読の投稿がありますよ」イベントを発行する
|
// 2秒経っても既読にならなかったら「未読の投稿がありますよ」イベントを発行する
|
||||||
setTimeout(2000, 'unread note', { signal: this.#shutdownController.signal }).then(async () => {
|
setTimeout(2000, 'unread note', { signal: this.#shutdownController.signal }).then(async () => {
|
||||||
|
|
|
@ -141,7 +141,7 @@ const replies = ref<Misskey.entities.Note[]>([]);
|
||||||
const isRenote = (
|
const isRenote = (
|
||||||
props.note.renote != null &&
|
props.note.renote != null &&
|
||||||
props.note.text == null &&
|
props.note.text == null &&
|
||||||
props.note.fileIds.length === 0 &&
|
props.note.fileIds && props.note.fileIds.length === 0 &&
|
||||||
props.note.poll == null
|
props.note.poll == null
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -211,7 +211,7 @@ function react(viaKeyboard = false): void {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
blur();
|
blur();
|
||||||
reactionPicker.show(reactButton.value, reaction => {
|
reactionPicker.show(reactButton.value ?? null, props.note, reaction => {
|
||||||
misskeyApi('notes/reactions/create', {
|
misskeyApi('notes/reactions/create', {
|
||||||
noteId: props.note.id,
|
noteId: props.note.id,
|
||||||
reaction: reaction,
|
reaction: reaction,
|
||||||
|
|
|
@ -155,7 +155,7 @@ const replies = ref<Misskey.entities.Note[]>([]);
|
||||||
const isRenote = (
|
const isRenote = (
|
||||||
props.note.renote != null &&
|
props.note.renote != null &&
|
||||||
props.note.text == null &&
|
props.note.text == null &&
|
||||||
props.note.fileIds.length === 0 &&
|
props.note.fileIds && props.note.fileIds.length === 0 &&
|
||||||
props.note.poll == null
|
props.note.poll == null
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -225,7 +225,7 @@ function react(viaKeyboard = false): void {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
blur();
|
blur();
|
||||||
reactionPicker.show(reactButton.value, reaction => {
|
reactionPicker.show(reactButton.value ?? null, props.note, reaction => {
|
||||||
misskeyApi('notes/reactions/create', {
|
misskeyApi('notes/reactions/create', {
|
||||||
noteId: props.note.id,
|
noteId: props.note.id,
|
||||||
reaction: reaction,
|
reaction: reaction,
|
||||||
|
|
Loading…
Reference in a new issue