Skip to content

Commit

Permalink
Filter available VirtualContributors by already members (#6296)
Browse files Browse the repository at this point in the history
  • Loading branch information
ccanos committed Jun 3, 2024
1 parent 8d27c6b commit aeeb90d
Show file tree
Hide file tree
Showing 4 changed files with 90 additions and 16 deletions.
34 changes: 28 additions & 6 deletions src/core/apollo/generated/apollo-hooks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1369,6 +1369,16 @@ export const CommunityAvailableMemberUsersFragmentDoc = gql`
${AvailableUserFragmentDoc}
${PageInfoFragmentDoc}
`;
export const VirtualContributorNameFragmentDoc = gql`
fragment VirtualContributorName on VirtualContributor {
id
nameID
profile {
id
displayName
}
}
`;
export const OrganizationContributorFragmentDoc = gql`
fragment OrganizationContributor on Organization {
id
Expand Down Expand Up @@ -10537,16 +10547,26 @@ export function refetchCommunityAvailableMembersQuery(variables: SchemaTypes.Com
}

export const AvailableVirtualContributorsDocument = gql`
query AvailableVirtualContributors {
virtualContributors {
id
nameID
profile {
query AvailableVirtualContributors(
$filterSpace: Boolean = false
$filterSpaceId: UUID = "00000000-0000-0000-0000-000000000000"
) {
lookup @include(if: $filterSpace) {
space(ID: $filterSpaceId) {
id
displayName
community {
id
virtualContributorsInRole(role: MEMBER) {
...VirtualContributorName
}
}
}
}
virtualContributors @skip(if: $filterSpace) {
...VirtualContributorName
}
}
${VirtualContributorNameFragmentDoc}
`;

/**
Expand All @@ -10561,6 +10581,8 @@ export const AvailableVirtualContributorsDocument = gql`
* @example
* const { data, loading, error } = useAvailableVirtualContributorsQuery({
* variables: {
* filterSpace: // value for 'filterSpace'
* filterSpaceId: // value for 'filterSpaceId'
* },
* });
*/
Expand Down
33 changes: 31 additions & 2 deletions src/core/apollo/generated/graphql-schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14925,18 +14925,47 @@ export type AvailableUserFragment = {
profile: { __typename?: 'Profile'; id: string; displayName: string };
};

export type AvailableVirtualContributorsQueryVariables = Exact<{ [key: string]: never }>;
export type AvailableVirtualContributorsQueryVariables = Exact<{
filterSpace?: InputMaybe<Scalars['Boolean']>;
filterSpaceId?: InputMaybe<Scalars['UUID']>;
}>;

export type AvailableVirtualContributorsQuery = {
__typename?: 'Query';
virtualContributors: Array<{
lookup?: {
__typename?: 'LookupQueryResults';
space?:
| {
__typename?: 'Space';
id: string;
community: {
__typename?: 'Community';
id: string;
virtualContributorsInRole: Array<{
__typename?: 'VirtualContributor';
id: string;
nameID: string;
profile: { __typename?: 'Profile'; id: string; displayName: string };
}>;
};
}
| undefined;
};
virtualContributors?: Array<{
__typename?: 'VirtualContributor';
id: string;
nameID: string;
profile: { __typename?: 'Profile'; id: string; displayName: string };
}>;
};

export type VirtualContributorNameFragment = {
__typename?: 'VirtualContributor';
id: string;
nameID: string;
profile: { __typename?: 'Profile'; id: string; displayName: string };
};

export type AddVirtualContributorToCommunityMutationVariables = Exact<{
communityId: Scalars['UUID'];
virtualContributorId: Scalars['UUID_NAMEID'];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -231,9 +231,14 @@ const useCommunityAdmin = ({

const [fetchAllVirtualContributors] = useAvailableVirtualContributorsLazyQuery();
const getAvailableVirtualContributors = async (filter: string | undefined) => {
const { data } = await fetchAllVirtualContributors();
const { data } = await fetchAllVirtualContributors({
variables: {
filterSpace: journeyLevel > 0,
filterSpaceId: spaceId,
},
});
// Filter out already member organizations
return data?.virtualContributors.filter(
return (data?.lookup?.space?.community.virtualContributorsInRole ?? data?.virtualContributors ?? [])?.filter(
vc =>
!virtualContributors.some(member => member.id === vc.id) &&
vc.profile.displayName.toLowerCase().includes(filter?.toLowerCase() ?? '')
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,30 @@
query AvailableVirtualContributors {
virtualContributors {
id
nameID
profile {
query AvailableVirtualContributors(
$filterSpace: Boolean = false
$filterSpaceId: UUID = "00000000-0000-0000-0000-000000000000"
) {
lookup @include(if: $filterSpace) {
space(ID: $filterSpaceId) {
id
displayName
community {
id
virtualContributorsInRole(role: MEMBER) {
...VirtualContributorName
}
}
}
}
virtualContributors @skip(if: $filterSpace) {
...VirtualContributorName
}
}

fragment VirtualContributorName on VirtualContributor {
id
nameID
profile {
id
displayName
}
}

mutation AddVirtualContributorToCommunity($communityId: UUID!, $virtualContributorId: UUID_NAMEID!) {
Expand Down

0 comments on commit aeeb90d

Please sign in to comment.