From f016ac1e6d1e0efc0491822d62e55c63f7afb3b4 Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Wed, 22 Mar 2023 18:48:24 -0500 Subject: [PATCH] GroupMembershipRequests: invalidate query upon authorize/reject --- .../group/group-membership-requests.tsx | 14 +++-------- .../api/groups/useGroupMembershipRequests.ts | 24 +++++++++++-------- 2 files changed, 17 insertions(+), 21 deletions(-) diff --git a/app/soapbox/features/group/group-membership-requests.tsx b/app/soapbox/features/group/group-membership-requests.tsx index 3dc52e154..d98517af8 100644 --- a/app/soapbox/features/group/group-membership-requests.tsx +++ b/app/soapbox/features/group/group-membership-requests.tsx @@ -1,4 +1,4 @@ -import React, { useMemo } from 'react'; +import React from 'react'; import { FormattedMessage, defineMessages, useIntl } from 'react-intl'; import Account from 'soapbox/components/account'; @@ -57,15 +57,7 @@ const GroupMembershipRequests: React.FC = ({ params }) const { group } = useGroup(id); - const { - accounts: entities, - isLoading, - authorize, - reject, - isFetching, - } = useGroupMembershipRequests(id); - - const accounts = useMemo(() => entities, [isFetching]); + const { accounts, authorize, reject, isLoading } = useGroupMembershipRequests(id); if (!group || !group.relationship || isLoading) { return ( @@ -96,7 +88,7 @@ const GroupMembershipRequests: React.FC = ({ params }) } return ( - + } diff --git a/app/soapbox/hooks/api/groups/useGroupMembershipRequests.ts b/app/soapbox/hooks/api/groups/useGroupMembershipRequests.ts index 0f6b3818b..cafea3601 100644 --- a/app/soapbox/hooks/api/groups/useGroupMembershipRequests.ts +++ b/app/soapbox/hooks/api/groups/useGroupMembershipRequests.ts @@ -1,5 +1,5 @@ import { Entities } from 'soapbox/entity-store/entities'; -import { useDismissEntity, useEntities } from 'soapbox/entity-store/hooks'; +import { useEntities } from 'soapbox/entity-store/hooks'; import { useApi } from 'soapbox/hooks/useApi'; import { accountSchema } from 'soapbox/schemas'; @@ -9,20 +9,24 @@ function useGroupMembershipRequests(groupId: string) { const api = useApi(); const path: ExpandedEntitiesPath = [Entities.ACCOUNTS, 'membership_requests', groupId]; - const authorize = useDismissEntity(path, (accountId) => { - return api.post(`/api/v1/groups/${groupId}/membership_requests/${accountId}/authorize`); - }); - - const reject = useDismissEntity(path, (accountId) => { - return api.post(`/api/v1/groups/${groupId}/membership_requests/${accountId}/reject`); - }); - - const { entities, ...rest } = useEntities( + const { entities, invalidate, ...rest } = useEntities( path, `/api/v1/groups/${groupId}/membership_requests`, { schema: accountSchema }, ); + function authorize(accountId: string) { + return api + .post(`/api/v1/groups/${groupId}/membership_requests/${accountId}/authorize`) + .then(invalidate); + } + + function reject(accountId: string) { + return api + .post(`/api/v1/groups/${groupId}/membership_requests/${accountId}/reject`) + .then(invalidate); + } + return { accounts: entities, authorize,