diff --git a/src/common/utils.ts b/src/common/utils.ts index cf06da9b3b..15d872c761 100644 --- a/src/common/utils.ts +++ b/src/common/utils.ts @@ -100,7 +100,7 @@ export const uniqueifyArray = (array: T[]): T[] => { return [...new Set(array)]; }; -export /** +/** * Remove duplicate values from an array of objects per unique key * * @template T @@ -110,7 +110,7 @@ export /** * @param {(item: T, index: number, uniqueKey: string) => R} [processItem] Optional function to process the item before adding it to the result array * @return {*} {R[]} */ -const uniqueifyObjectArray = ( +export const uniqueifyObjectArray = ( array: T[], uniqueKey: (item: T) => string, processItem?: (item: T, index: number, uniqueKey: string) => R, diff --git a/src/schema/opportunity.ts b/src/schema/opportunity.ts index 864b25c064..3813c7ffc6 100644 --- a/src/schema/opportunity.ts +++ b/src/schema/opportunity.ts @@ -17,6 +17,7 @@ import { getBufferFromStream, toGQLEnum, uniqueifyArray, + uniqueifyObjectArray, updateFlagsStatement, } from '../common'; import { @@ -166,7 +167,7 @@ export interface GQLOpportunityPreviewResult { totalCount: number; tags: string[] | null; companies: Array<{ name: string; favicon?: string }> | null; - squads: string[] | null; + squads: GQLSource[] | null; } export interface GQLOpportunityPreviewConnection { @@ -463,7 +464,7 @@ export const typeDefs = /* GraphQL */ ` type OpportunityPreviewResult { tags: [String!]! companies: [OpportunityPreviewCompany!]! - squads: [String!]! + squads: [Source!]! totalCount: Int } @@ -1282,10 +1283,11 @@ export const resolvers: IResolvers = traceResolvers< const companies = getShowcaseCompanies(); - const squads = uniqueifyArray( + const squads = uniqueifyObjectArray( connection.edges.flatMap(({ node }) => - (node.activeSquads || []).map((squad) => squad.id), + (node.activeSquads || []).map((squad) => squad), ), + (squad) => squad.handle, ); return {