diff --git a/desktop/src/main/handlers/queries/user-search.ts b/desktop/src/main/handlers/queries/user-search.ts index 790d0e6e..dc8d00fc 100644 --- a/desktop/src/main/handlers/queries/user-search.ts +++ b/desktop/src/main/handlers/queries/user-search.ts @@ -18,16 +18,10 @@ export class UserSearchQueryHandler public async handleQuery( input: UserSearchQueryInput, ): Promise> { - if (input.searchQuery.length === 0) { - return { - output: [], - state: { - rows: [], - }, - }; - } - - const rows = await this.fetchNodes(input); + const rows = + input.searchQuery.length > 0 + ? await this.searchUsers(input) + : await this.fetchUsers(input); return { output: this.buildUserNodes(rows), state: { @@ -54,7 +48,11 @@ export class UserSearchQueryHandler }; } - const rows = await this.fetchNodes(input); + const rows = + input.searchQuery.length > 0 + ? await this.searchUsers(input) + : await this.fetchUsers(input); + if (isEqual(rows, state.rows)) { return { hasChanges: false, @@ -72,7 +70,9 @@ export class UserSearchQueryHandler }; } - private async fetchNodes(input: UserSearchQueryInput): Promise { + private async searchUsers( + input: UserSearchQueryInput, + ): Promise { const workspaceDatabase = await databaseManager.getWorkspaceDatabase( input.userId, ); @@ -90,6 +90,19 @@ export class UserSearchQueryHandler return result.rows; } + private async fetchUsers(input: UserSearchQueryInput): Promise { + const workspaceDatabase = await databaseManager.getWorkspaceDatabase( + input.userId, + ); + + return workspaceDatabase + .selectFrom('nodes') + .where('type', '=', NodeTypes.User) + .where('id', '!=', input.userId) + .selectAll() + .execute(); + } + private buildUserNodes = (rows: SelectNode[]): UserNode[] => { return rows.map((row) => { const attributes = JSON.parse(row.attributes); diff --git a/desktop/src/renderer/components/workspaces/workspace-user-invite.tsx b/desktop/src/renderer/components/workspaces/workspace-user-invite.tsx index c8a9d863..a64ec36c 100644 --- a/desktop/src/renderer/components/workspaces/workspace-user-invite.tsx +++ b/desktop/src/renderer/components/workspaces/workspace-user-invite.tsx @@ -80,6 +80,10 @@ export const WorkspaceUserInvite = () => { emails: emails, userId: workspace.userId, }, + onSuccess() { + setEmails([]); + setInput(''); + }, onError() { toast({ title: 'Failed to invite users',