Renote confirmation (closes #9051 & #9166)

This commit is contained in:
thatonecalculator 2022-12-01 23:11:11 -08:00
parent 4f625ccaa7
commit 01c19e4f55
2 changed files with 38 additions and 22 deletions

View File

@ -89,6 +89,7 @@
- Patron list - Patron list
- Animations respect reduced motion - Animations respect reduced motion
- Obliteration of Ai-chan - Obliteration of Ai-chan
- Undo renote button inside original note
- MissV: [fix Misskey Forkbomb](https://code.vtopia.live/Vtopia/MissV/commit/40b23c070bd4adbb3188c73546c6c625138fb3c1) - MissV: [fix Misskey Forkbomb](https://code.vtopia.live/Vtopia/MissV/commit/40b23c070bd4adbb3188c73546c6c625138fb3c1)
- [Make showing ads optional](https://github.com/misskey-dev/misskey/pull/8996) - [Make showing ads optional](https://github.com/misskey-dev/misskey/pull/8996)
- [Tapping avatar in mobile opens account modal](https://github.com/misskey-dev/misskey/pull/9056) - [Tapping avatar in mobile opens account modal](https://github.com/misskey-dev/misskey/pull/9056)

View File

@ -55,29 +55,45 @@ useTooltip(buttonRef, async (showing) => {
const renote = (viaKeyboard = false, ev?: MouseEvent) => { const renote = (viaKeyboard = false, ev?: MouseEvent) => {
pleaseLogin(); pleaseLogin();
if (defaultStore.state.seperateRenoteQuote) { let buttonActions = [{
os.api('notes/create', { text: i18n.ts.renote,
renoteId: props.note.id, icon: 'ph-repeat-bold ph-lg',
visibility: props.note.visibility, action: () => {
}); os.api('notes/create', {
const el = ev && (ev.currentTarget ?? ev.target) as HTMLElement | null | undefined; renoteId: props.note.id,
if (el) { visibility: props.note.visibility,
const rect = el.getBoundingClientRect(); });
const x = rect.left + (el.offsetWidth / 2); const el = ev && (ev.currentTarget ?? ev.target) as HTMLElement | null | undefined;
const y = rect.top + (el.offsetHeight / 2); if (el) {
os.popup(Ripple, { x, y }, {}, 'end'); const rect = el.getBoundingClientRect();
} const x = rect.left + (el.offsetWidth / 2);
} else { const y = rect.top + (el.offsetHeight / 2);
os.popupMenu([{ os.popup(Ripple, { x, y }, {}, 'end');
text: i18n.ts.renote, }
icon: 'ph-repeat-bold ph-lg', },
}];
let users;
os.api('notes/renotes', {
noteId: props.note.id,
limit: 11,
}).then((renotes) => {
users = renotes.map(x => x.user);
});
const hasRenotedBefore = users.includes($i);
if (hasRenotedBefore) {
buttonActions.push({
text: i18n.ts.unrenote,
icon: 'ph-eraser-bold ph-lg',
action: () => { action: () => {
os.api('notes/create', { os.api('notes/unrenote', {
renoteId: props.note.id, noteId: props.note.id,
visibility: props.note.visibility,
}); });
}, },
}, { });
}
if (!defaultStore.state.seperateRenoteQuote) {
buttonActions.push({
text: i18n.ts.quote, text: i18n.ts.quote,
icon: 'ph-quotes-bold ph-lg', icon: 'ph-quotes-bold ph-lg',
action: () => { action: () => {
@ -85,10 +101,9 @@ const renote = (viaKeyboard = false, ev?: MouseEvent) => {
renote: props.note, renote: props.note,
}); });
}, },
}], buttonRef.value, {
viaKeyboard,
}); });
} }
os.popupMenu(buttonActions, buttonRef.value, { viaKeyboard });
}; };
</script> </script>