|
|
@ -154,11 +154,13 @@ const props = defineProps<{
|
|
|
|
|
|
|
|
|
|
|
|
const inChannel = inject('inChannel', null);
|
|
|
|
const inChannel = inject('inChannel', null);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const note = $ref(JSON.parse(JSON.stringify(props.note)));
|
|
|
|
|
|
|
|
|
|
|
|
const isRenote = (
|
|
|
|
const isRenote = (
|
|
|
|
props.note.renote != null &&
|
|
|
|
note.renote != null &&
|
|
|
|
props.note.text == null &&
|
|
|
|
note.text == null &&
|
|
|
|
props.note.fileIds.length === 0 &&
|
|
|
|
note.fileIds.length === 0 &&
|
|
|
|
props.note.poll == null
|
|
|
|
note.poll == null
|
|
|
|
);
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
const el = ref<HTMLElement>();
|
|
|
|
const el = ref<HTMLElement>();
|
|
|
@ -166,8 +168,8 @@ const menuButton = ref<HTMLElement>();
|
|
|
|
const renoteButton = ref<InstanceType<typeof XRenoteButton>>();
|
|
|
|
const renoteButton = ref<InstanceType<typeof XRenoteButton>>();
|
|
|
|
const renoteTime = ref<HTMLElement>();
|
|
|
|
const renoteTime = ref<HTMLElement>();
|
|
|
|
const reactButton = ref<HTMLElement>();
|
|
|
|
const reactButton = ref<HTMLElement>();
|
|
|
|
let appearNote = $ref(isRenote ? props.note.renote as misskey.entities.Note : props.note);
|
|
|
|
let appearNote = $ref(isRenote ? note.renote as misskey.entities.Note : note);
|
|
|
|
const isMyRenote = $i && ($i.id === props.note.userId);
|
|
|
|
const isMyRenote = $i && ($i.id === note.userId);
|
|
|
|
const showContent = ref(false);
|
|
|
|
const showContent = ref(false);
|
|
|
|
const isDeleted = ref(false);
|
|
|
|
const isDeleted = ref(false);
|
|
|
|
const muted = ref(checkWordMute(appearNote, $i, defaultStore.state.mutedWords));
|
|
|
|
const muted = ref(checkWordMute(appearNote, $i, defaultStore.state.mutedWords));
|
|
|
@ -188,8 +190,9 @@ const keymap = {
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
useNoteCapture({
|
|
|
|
useNoteCapture({
|
|
|
|
appearNote: $$(appearNote),
|
|
|
|
|
|
|
|
rootEl: el,
|
|
|
|
rootEl: el,
|
|
|
|
|
|
|
|
note: $$(appearNote),
|
|
|
|
|
|
|
|
isDeletedRef: isDeleted,
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
function reply(viaKeyboard = false): void {
|
|
|
|
function reply(viaKeyboard = false): void {
|
|
|
@ -237,12 +240,12 @@ function onContextmenu(ev: MouseEvent): void {
|
|
|
|
ev.preventDefault();
|
|
|
|
ev.preventDefault();
|
|
|
|
react();
|
|
|
|
react();
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
os.contextMenu(getNoteMenu({ note: props.note, translating, translation, menuButton }), ev).then(focus);
|
|
|
|
os.contextMenu(getNoteMenu({ note: note, translating, translation, menuButton }), ev).then(focus);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
function menu(viaKeyboard = false): void {
|
|
|
|
function menu(viaKeyboard = false): void {
|
|
|
|
os.popupMenu(getNoteMenu({ note: props.note, translating, translation, menuButton }), menuButton.value, {
|
|
|
|
os.popupMenu(getNoteMenu({ note: note, translating, translation, menuButton }), menuButton.value, {
|
|
|
|
viaKeyboard
|
|
|
|
viaKeyboard
|
|
|
|
}).then(focus);
|
|
|
|
}).then(focus);
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -255,7 +258,7 @@ function showRenoteMenu(viaKeyboard = false): void {
|
|
|
|
danger: true,
|
|
|
|
danger: true,
|
|
|
|
action: () => {
|
|
|
|
action: () => {
|
|
|
|
os.api('notes/delete', {
|
|
|
|
os.api('notes/delete', {
|
|
|
|
noteId: props.note.id
|
|
|
|
noteId: note.id
|
|
|
|
});
|
|
|
|
});
|
|
|
|
isDeleted.value = true;
|
|
|
|
isDeleted.value = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|