Skip to content

Commit a1cdb42

Browse files
committed
improve: getInviteSuggestionsConfig return
1 parent 989700a commit a1cdb42

File tree

4 files changed

+16
-11
lines changed

4 files changed

+16
-11
lines changed

backend/src/modules/general/index.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,7 @@ const generalRoutes = app
232232
const memberships = getMemberships();
233233
// Retrieve organizationIds
234234
const organizationIds = memberships.filter((el) => el.type === 'organization').map((el) => String(el.organizationId));
235-
if (!organizationIds.length) return ctx.json({ success: true, data: { items: [], total: 0 } }, 200);
235+
if (!organizationIds.length) return ctx.json({ success: true, data: [] }, 200);
236236

237237
// Build search filters
238238
const $or = [];
@@ -244,20 +244,20 @@ const generalRoutes = app
244244

245245
const entityIdField = entityIdFields[entityType];
246246

247+
// Retrieve current entity members
247248
const currentEntityMembers = await db
248249
.select({ userId: membershipsTable.userId })
249250
.from(membershipsTable)
250251
.where(eq(membershipsTable[entityIdField], entityId));
251252

252-
const items = await db
253+
const data = await db
253254
.selectDistinctOn([usersTable.id], {
254255
id: usersTable.id,
255256
slug: usersTable.slug,
256257
name: usersTable.name,
257258
entity: usersTable.entity,
258259
email: usersTable.email,
259260
thumbnailUrl: usersTable.thumbnailUrl,
260-
membership: membershipSelect,
261261
})
262262
.from(usersTable)
263263
.innerJoin(
@@ -275,7 +275,7 @@ const generalRoutes = app
275275
.where(and(or(...$or), ne(usersTable.id, user.id)))
276276
.limit(10);
277277

278-
return ctx.json({ success: true, data: { items, total: items.length } }, 200);
278+
return ctx.json({ success: true, data }, 200);
279279
})
280280
/*
281281
* Unsubscribe a user by token

backend/src/modules/general/routes.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { tokenLimiter } from '#/middlewares/rate-limiter';
55
import { errorResponses, successWithDataSchema, successWithoutDataSchema } from '#/utils/schema/common-responses';
66
import { contextEntityTypeSchema, idSchema, pageEntityTypeSchema, slugSchema } from '#/utils/schema/common-schemas';
77
import { userUnsubscribeQuerySchema } from '../users/schema';
8-
import { inviteBodySchema, suggestionsSchema } from './schema';
8+
import { entitySuggestionSchema, inviteBodySchema, suggestionsSchema } from './schema';
99

1010
class GeneralRoutesConfig {
1111
public unsubscribeUser = createRouteConfig({
@@ -183,10 +183,15 @@ class GeneralRoutesConfig {
183183
},
184184
responses: {
185185
200: {
186-
description: 'Suggestions',
186+
description: 'Invite Suggestions',
187187
content: {
188188
'application/json': {
189-
schema: successWithDataSchema(suggestionsSchema),
189+
schema: successWithDataSchema(
190+
entitySuggestionSchema
191+
.omit({ membership: true, email: true, thumbnailUrl: true })
192+
.extend({ email: z.string(), thumbnailUrl: z.string().nullable() })
193+
.array(),
194+
),
190195
},
191196
},
192197
},

frontend/src/modules/common/query-combobox.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ export function UserSearchCombobox({ value, onChange, entityId, entityType }: Us
114114
)}
115115
<CommandList className="px-1 h-full">
116116
{!isLoading &&
117-
!data?.items.length &&
117+
!data.length &&
118118
(debouncedSearchQuery.length ? (
119119
<CommandEmpty className="h-full">
120120
<ContentPlaceholder Icon={Search} title={t('common:no_resource_found', { resource: t('common:users').toLowerCase() })} />
@@ -125,10 +125,10 @@ export function UserSearchCombobox({ value, onChange, entityId, entityType }: Us
125125
</CommandEmpty>
126126
))}
127127

128-
{data && data.items?.length > 0 && (
128+
{data && data.length > 0 && (
129129
<ScrollArea className="max-h-[30vh] overflow-y-auto">
130130
<CommandGroup>
131-
{data.items.map((user) => (
131+
{data.map((user) => (
132132
<CommandItem
133133
data-was-selected={selected.some((u) => u === user.email)}
134134
key={user.id}

frontend/src/modules/general/query.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,6 @@ export const inviteSuggestionsQueryOptions = (queryInfo: InviteSuggestionsProps)
3030
queryFn: () => getInviteSuggestions(queryInfo),
3131
staleTime: 0,
3232
enabled: searchQuery.trim().length > 0, // to avoid issues with spaces
33-
initialData: { items: [], total: 0 },
33+
initialData: [],
3434
});
3535
};

0 commit comments

Comments
 (0)