real-time updates on note detail view
`useNoteCapture` already subscribes to all updates for a note, so we can tell it when a note gets replied to, too Since I'm not actually adding any extra subscription in the client, just an extra callback, there should be no overhead when replies are not coming in. Also, all the timelines already call `useNoteCapture` for each note displayed, so we know the whole `GlobalEventService` thing works fine. Many thanks to VueJS for taking care of all the DOM complications
This commit is contained in:
@@ -14,6 +14,7 @@ export function useNoteCapture(props: {
|
||||
note: Ref<Misskey.entities.Note>;
|
||||
pureNote: Ref<Misskey.entities.Note>;
|
||||
isDeletedRef: Ref<boolean>;
|
||||
onReplyCallback: (note, replyNote: Misskey.entities.Note) => void | undefined;
|
||||
}) {
|
||||
const note = props.note;
|
||||
const pureNote = props.pureNote !== undefined ? props.pureNote : props.note;
|
||||
@@ -25,6 +26,17 @@ export function useNoteCapture(props: {
|
||||
if ((id !== note.value.id) && (id !== pureNote.value.id)) return;
|
||||
|
||||
switch (type) {
|
||||
case 'replied': {
|
||||
if (!props.onReplyCallback) break;
|
||||
|
||||
const replyNote = await os.api("notes/show", {
|
||||
noteId: body.id,
|
||||
});
|
||||
|
||||
await props.onReplyCallback(pureNote, replyNote);
|
||||
break;
|
||||
}
|
||||
|
||||
case 'reacted': {
|
||||
const reaction = body.reaction;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user