Skip to content

Commit

Permalink
Use usersICanSee query in typeahead
Browse files Browse the repository at this point in the history
  • Loading branch information
rmunn committed Nov 14, 2024
1 parent 1bb9efa commit 09a6bcf
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 12 deletions.
10 changes: 5 additions & 5 deletions frontend/src/lib/forms/UserTypeahead.svelte
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<script lang="ts">
import { FormField, PlainInput, randomFormId } from '$lib/forms';
import { _userTypeaheadSearch, _orgMemberTypeaheadSearch, type SingleUserTypeaheadResult, type SingleUserInMyOrgTypeaheadResult } from '$lib/gql/typeahead-queries';
import { _userTypeaheadSearch, _orgMemberTypeaheadSearch, type SingleUserTypeaheadResult, type SingleUserICanSeeTypeaheadResult } from '$lib/gql/typeahead-queries';
import { overlay } from '$lib/overlay';
import { deriveAsync } from '$lib/util/time';
import { derived, writable } from 'svelte/store';
Expand All @@ -25,23 +25,23 @@
const dispatch = createEventDispatcher<{
selectedUserId: string | null;
selectedUser: SingleUserTypeaheadResult | SingleUserInMyOrgTypeaheadResult | null;
selectedUser: SingleUserTypeaheadResult | SingleUserICanSeeTypeaheadResult | null;
}>();
let selectedUser = writable<SingleUserTypeaheadResult | SingleUserInMyOrgTypeaheadResult | null>(null);
let selectedUser = writable<SingleUserTypeaheadResult | SingleUserICanSeeTypeaheadResult | null>(null);
let selectedUserId = derived(selectedUser, user => user?.id ?? null);
$: dispatch('selectedUserId', $selectedUserId);
$: dispatch('selectedUser', $selectedUser);
function formatResult(user: SingleUserTypeaheadResult | SingleUserInMyOrgTypeaheadResult): string {
function formatResult(user: SingleUserTypeaheadResult | SingleUserICanSeeTypeaheadResult): string {
const extra = 'username' in user && user.username && 'email' in user && user.email ? ` (${user.username}, ${user.email})`
: 'username' in user && user.username ? ` (${user.username})`
: 'email' in user && user.email ? ` (${user.email})`
: '';
return `${user.name}${extra}`;
}
function getInputValue(user: SingleUserTypeaheadResult | SingleUserInMyOrgTypeaheadResult): string {
function getInputValue(user: SingleUserTypeaheadResult | SingleUserICanSeeTypeaheadResult): string {
if ('email' in user && user.email) return user.email;
if ('username' in user && user.username) return user.username;
if ('name' in user && user.name) return user.name;
Expand Down
10 changes: 5 additions & 5 deletions frontend/src/lib/gql/typeahead-queries.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,15 +58,15 @@ export async function _userTypeaheadSearch(userSearch: string, limit = 10): Prom
return users;
}

export type UsersInMyOrgTypeaheadResult = NonNullable<NonNullable<LoadOrgMembersTypeaheadQuery['usersInMyOrg']>['items']>;
export type SingleUserInMyOrgTypeaheadResult = UsersInMyOrgTypeaheadResult[number];
export type UsersICanSeeTypeaheadResult = NonNullable<NonNullable<LoadOrgMembersTypeaheadQuery['usersICanSee']>['items']>;
export type SingleUserICanSeeTypeaheadResult = UsersICanSeeTypeaheadResult[number];

export async function _orgMemberTypeaheadSearch(orgMemberSearch: string, limit = 10): Promise<UsersInMyOrgTypeaheadResult> {
export async function _orgMemberTypeaheadSearch(orgMemberSearch: string, limit = 10): Promise<UsersICanSeeTypeaheadResult> {
if (!orgMemberSearch) return [];
const client = getClient();
const users = await client.query(graphql(`
query loadOrgMembersTypeahead($filter: UserFilterInput, $take: Int!) {
usersInMyOrg(where: $filter, orderBy: {name: ASC}, take: $take) {
usersICanSee(where: $filter, orderBy: {name: ASC}, take: $take) {
totalCount
items {
id
Expand All @@ -76,5 +76,5 @@ export async function _orgMemberTypeaheadSearch(orgMemberSearch: string, limit =
}
`), { filter: userFilter(orgMemberSearch), take: limit });

return users.data?.usersInMyOrg?.items ?? [];
return users.data?.usersICanSee?.items ?? [];
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import { SupHelp, helpLinks } from '$lib/components/help';
import type { UUID } from 'crypto';
import { _addOrgMember, type Org } from './+page';
import type { SingleUserInMyOrgTypeaheadResult, SingleUserTypeaheadResult } from '$lib/gql/typeahead-queries';
import type { SingleUserICanSeeTypeaheadResult, SingleUserTypeaheadResult } from '$lib/gql/typeahead-queries';
import UserProjects, { type Project } from '$lib/components/Users/UserProjects.svelte';
export let org: Org;
Expand All @@ -37,7 +37,7 @@
selectedProjects = [];
}
function populateUserProjects(user: SingleUserTypeaheadResult | SingleUserInMyOrgTypeaheadResult | null): void {
function populateUserProjects(user: SingleUserTypeaheadResult | SingleUserICanSeeTypeaheadResult | null): void {
resetProjects();
if (user && 'projects' in user) {
const userProjects = [...user.projects.map(p => ({memberRole: p.role, id: p.project.id, code: p.project.code, name: p.project.name}))];
Expand Down

0 comments on commit 09a6bcf

Please sign in to comment.