summaryrefslogtreecommitdiff
path: root/packages/frontend/src/scripts/get-user-menu.ts
diff options
context:
space:
mode:
authoryupix <yupi0982@outlook.jp>2023-07-10 15:55:10 +0900
committerGitHub <noreply@github.com>2023-07-10 15:55:10 +0900
commitf4d1fcaf67716aa710d271e7f56c4f78cd202f29 (patch)
tree872bfd98d522283e48828a2a2a6892656ecce098 /packages/frontend/src/scripts/get-user-menu.ts
parentfeat: フォローやお気に入り登録をしていないチャンネル... (diff)
downloadsharkey-f4d1fcaf67716aa710d271e7f56c4f78cd202f29.tar.gz
sharkey-f4d1fcaf67716aa710d271e7f56c4f78cd202f29.tar.bz2
sharkey-f4d1fcaf67716aa710d271e7f56c4f78cd202f29.zip
feat: ユーザーをcontextmenuからアンテナに追加できるようになど (#11206)
* feat: ユーザーをcontextmenuからアンテナに追加できるように close #11115 * MkAvatars.vue変更 * nanka iroiro * fix MkAvatars * ix * fix --------- Co-authored-by: tamaina <tamaina@hotmail.co.jp>
Diffstat (limited to 'packages/frontend/src/scripts/get-user-menu.ts')
-rw-r--r--packages/frontend/src/scripts/get-user-menu.ts36
1 files changed, 32 insertions, 4 deletions
diff --git a/packages/frontend/src/scripts/get-user-menu.ts b/packages/frontend/src/scripts/get-user-menu.ts
index bdcd1aabdc..1c93d58b44 100644
--- a/packages/frontend/src/scripts/get-user-menu.ts
+++ b/packages/frontend/src/scripts/get-user-menu.ts
@@ -1,3 +1,4 @@
+import { toUnicode } from 'punycode';
import { defineAsyncComponent } from 'vue';
import * as misskey from 'misskey-js';
import { i18n } from '@/i18n';
@@ -8,8 +9,7 @@ import { defaultStore, userActions } from '@/store';
import { $i, iAmModerator } from '@/account';
import { mainRouter } from '@/router';
import { Router } from '@/nirax';
-import { rolesCache, userListsCache } from '@/cache';
-import { toUnicode } from 'punycode';
+import { antennasCache, rolesCache, userListsCache } from '@/cache';
export function getUserMenu(user: misskey.entities.UserDetailed, router: Router = mainRouter) {
const meId = $i ? $i.id : null;
@@ -166,11 +166,39 @@ export function getUserMenu(user: misskey.entities.UserDetailed, router: Router
return lists.map(list => ({
text: list.name,
- action: () => {
- os.apiWithDialog('users/lists/push', {
+ action: async () => {
+ await os.apiWithDialog('users/lists/push', {
listId: list.id,
userId: user.id,
});
+ userListsCache.delete();
+ },
+ }));
+ },
+ }, {
+ type: 'parent',
+ icon: 'ti ti-antenna',
+ text: i18n.ts.addToAntenna,
+ children: async () => {
+ const antennas = await antennasCache.fetch(() => os.api('antennas/list'));
+ const canonical = user.host === null ? `@${user.username}` : `@${user.username}@${toUnicode(user.host)}`;
+ return antennas.filter((a) => a.src === 'users').map(antenna => ({
+ text: antenna.name,
+ action: async () => {
+ await os.apiWithDialog('antennas/update', {
+ antennaId: antenna.id,
+ name: antenna.name,
+ keywords: antenna.keywords,
+ excludeKeywords: antenna.excludeKeywords,
+ src: antenna.src,
+ userListId: antenna.userListId,
+ users: [...antenna.users, canonical],
+ caseSensitive: antenna.caseSensitive,
+ withReplies: antenna.withReplies,
+ withFile: antenna.withFile,
+ notify: antenna.notify,
+ });
+ antennasCache.delete();
},
}));
},