diff --git a/src/components/views/dialogs/InviteDialog.tsx b/src/components/views/dialogs/InviteDialog.tsx index 62536acfd6..81a403bacf 100644 --- a/src/components/views/dialogs/InviteDialog.tsx +++ b/src/components/views/dialogs/InviteDialog.tsx @@ -358,20 +358,22 @@ export default class InviteDialog extends React.PureComponent excludedIds.add(m.userId)); room.getMembersWithMembership(KnownMembership.Join).forEach((m) => excludedIds.add(m.userId)); // add banned users, so we don't try to invite them room.getMembersWithMembership(KnownMembership.Ban).forEach((m) => excludedIds.add(m.userId)); - if (isFederated === false) { + const ourHomeserver = cli.getDomain(); + if (isFederated === false && ourHomeserver) { + // If this room isn't federated, we must be on the same server. // exclude users from external servers - const homeserver = props.roomId.split(":")[1]; - this.excludeExternals(homeserver, excludedIds); + this.excludeExternals(ourHomeserver, excludedIds); } } @@ -385,7 +387,7 @@ export default class InviteDialog extends React.PureComponent { expect(getSearchField()).toHaveValue(value); }; +const serverDomain = "example.org"; const roomId = "!111111111111111111:example.org"; const aliceId = "@alice:example.org"; const aliceEmail = "foobar@email.com"; @@ -103,6 +104,7 @@ describe("InviteDialog", () => { beforeEach(() => { mockClient = getMockClientWithEventEmitter({ + getDomain: jest.fn().mockReturnValue(serverDomain), getUserId: jest.fn().mockReturnValue(bobId), getSafeUserId: jest.fn().mockReturnValue(bobId), isGuest: jest.fn().mockReturnValue(false),