summaryrefslogtreecommitdiff
path: root/packages/frontend/src/scripts
diff options
context:
space:
mode:
authoranatawa12 <anatawa12@icloud.com>2023-09-05 17:25:08 +0900
committerGitHub <noreply@github.com>2023-09-05 17:25:08 +0900
commit46b0eb46b375d2aef9404a4ab75a917f56696768 (patch)
treef4ec631c32c87c1ae280156563b653d1488353c2 /packages/frontend/src/scripts
parentbuild(deps): bump actions/checkout from 3.6.0 to 4.0.0 (#11786) (diff)
downloadsharkey-46b0eb46b375d2aef9404a4ab75a917f56696768.tar.gz
sharkey-46b0eb46b375d2aef9404a4ab75a917f56696768.tar.bz2
sharkey-46b0eb46b375d2aef9404a4ab75a917f56696768.zip
feat(frontend): Report renote abuse (#11466)
* chore: add way to show renote in window / tab * feat: report abuse for renote * docs: Renote自体を通報できるように * revert: make renote time link * chore: add copy renote menu * chore: remove copy/report renote from note menu * fix: abuse menu without actual selection shown --------- Co-authored-by: syuilo <Syuilotan@yahoo.co.jp>
Diffstat (limited to 'packages/frontend/src/scripts')
-rw-r--r--packages/frontend/src/scripts/get-note-menu.ts52
1 files changed, 31 insertions, 21 deletions
diff --git a/packages/frontend/src/scripts/get-note-menu.ts b/packages/frontend/src/scripts/get-note-menu.ts
index 1783abc51a..c8b1cb8dfc 100644
--- a/packages/frontend/src/scripts/get-note-menu.ts
+++ b/packages/frontend/src/scripts/get-note-menu.ts
@@ -92,6 +92,31 @@ export async function getNoteClipMenu(props: {
}];
}
+export function getAbuseNoteMenu(note: misskey.entities.Note, text: string): MenuItem {
+ return {
+ icon: 'ti ti-exclamation-circle',
+ text,
+ action: (): void => {
+ const u = note.url ?? note.uri ?? `${url}/notes/${note.id}`;
+ os.popup(defineAsyncComponent(() => import('@/components/MkAbuseReportWindow.vue')), {
+ user: note.user,
+ initialComment: `Note: ${u}\n-----\n`,
+ }, {}, 'closed');
+ },
+ };
+}
+
+export function getCopyNoteLinkMenu(note: misskey.entities.Note, text: string): MenuItem {
+ return {
+ icon: 'ti ti-link',
+ text,
+ action: (): void => {
+ copyToClipboard(`${url}/notes/${note.id}`);
+ os.success();
+ },
+ };
+}
+
export function getNoteMenu(props: {
note: Misskey.entities.Note;
menuButton: Ref<HTMLElement>;
@@ -266,11 +291,8 @@ export function getNoteMenu(props: {
icon: 'ti ti-copy',
text: i18n.ts.copyContent,
action: copyContent,
- }, {
- icon: 'ti ti-link',
- text: i18n.ts.copyLink,
- action: copyLink,
- }, (appearNote.url || appearNote.uri) ? {
+ }, getCopyNoteLinkMenu(appearNote, i18n.ts.copyLink)
+ , (appearNote.url || appearNote.uri) ? {
icon: 'ti ti-external-link',
text: i18n.ts.showOnRemote,
action: () => {
@@ -344,17 +366,8 @@ export function getNoteMenu(props: {
),*/
...(appearNote.userId !== $i.id ? [
null,
- {
- icon: 'ti ti-exclamation-circle',
- text: i18n.ts.reportAbuse,
- action: () => {
- const u = appearNote.url ?? appearNote.uri ?? `${url}/notes/${appearNote.id}`;
- os.popup(defineAsyncComponent(() => import('@/components/MkAbuseReportWindow.vue')), {
- user: appearNote.user,
- initialComment: `Note: ${u}\n-----\n`,
- }, {}, 'closed');
- },
- }]
+ appearNote.userId !== $i.id ? getAbuseNoteMenu(appearNote, i18n.ts.reportAbuse) : undefined,
+ ]
: []
),
...(appearNote.userId === $i.id || $i.isModerator || $i.isAdmin ? [
@@ -382,11 +395,8 @@ export function getNoteMenu(props: {
icon: 'ti ti-copy',
text: i18n.ts.copyContent,
action: copyContent,
- }, {
- icon: 'ti ti-link',
- text: i18n.ts.copyLink,
- action: copyLink,
- }, (appearNote.url || appearNote.uri) ? {
+ }, getCopyNoteLinkMenu(appearNote, i18n.ts.copyLink)
+ , (appearNote.url || appearNote.uri) ? {
icon: 'ti ti-external-link',
text: i18n.ts.showOnRemote,
action: () => {