@@ -74,9 +74,12 @@ const emit = defineEmits<{
(ev: 'closed'): void;
}>();
-const props = defineProps<{
+const props = withDefaults(defineProps<{
includeSelf?: boolean;
-}>();
+ includeHost?: boolean;
+}>(), {
+ includeHost: true,
+});
let username = $ref('');
let host = $ref('');
@@ -100,6 +103,20 @@ const search = () => {
});
};
+const searchLocal = () => {
+ if (username === '') {
+ users = [];
+ return;
+ }
+ os.api('users/search', {
+ username: username,
+ limit: 10,
+ detail: false,
+ }).then(_users => {
+ users = _users;
+ });
+};
+
const ok = () => {
if (selected == null) return;
emit('ok', selected);
diff --git a/packages/frontend/src/os.ts b/packages/frontend/src/os.ts
index 22896f3e4c..5204ef49a6 100644
--- a/packages/frontend/src/os.ts
+++ b/packages/frontend/src/os.ts
@@ -435,10 +435,11 @@ export function form(title, form) {
});
}
-export async function selectUser(opts: { includeSelf?: boolean } = {}) {
+export async function selectUser(opts: { includeSelf?: boolean, includeHost?: boolean } = {}) {
return new Promise((resolve, reject) => {
popup(defineAsyncComponent(() => import('@/components/MkUserSelectDialog.vue')), {
includeSelf: opts.includeSelf,
+ includeHost: opts.includeHost,
}, {
ok: user => {
resolve(user);
diff --git a/packages/frontend/src/pages/my-groups/group.vue b/packages/frontend/src/pages/my-groups/group.vue
index 9c18c4414f..d25c15e05e 100644
--- a/packages/frontend/src/pages/my-groups/group.vue
+++ b/packages/frontend/src/pages/my-groups/group.vue
@@ -69,7 +69,10 @@ function fetchGroup() {
}
function invite() {
- os.selectUser().then(user => {
+ os.selectUser({
+ includeSelf: false,
+ includeHost: false,
+ }).then(user => {
os.apiWithDialog('users/groups/invite', {
groupId: group.id,
userId: user.id,
@@ -108,7 +111,10 @@ async function renameGroup() {
}
function transfer() {
- os.selectUser().then(user => {
+ os.selectUser({
+ includeSelf: false,
+ includeHost: false,
+ }).then(user => {
os.apiWithDialog('users/groups/transfer', {
groupId: group.id,
userId: user.id,
diff --git a/packages/frontend/src/scripts/get-user-menu.ts b/packages/frontend/src/scripts/get-user-menu.ts
index 8ac39dae9f..bf3b7e4765 100644
--- a/packages/frontend/src/scripts/get-user-menu.ts
+++ b/packages/frontend/src/scripts/get-user-menu.ts
@@ -206,7 +206,7 @@ export function getUserMenu(user: Misskey.entities.UserDetailed, router: Router
icon: 'ti ti-messages',
text: i18n.ts.startMessaging,
to: `/my/messaging/@${user.host === null ? user.username : user.username + '@' + user.host}`,
- } : undefined, meId !== user.id ? {
+ } : undefined, meId !== user.id && user.host === null ? {
icon: 'ti ti-users',
text: i18n.ts.inviteToGroup,
action: inviteGroup,