useGroupMembershipRequests: use useDismissEntity hooks

This commit is contained in:
Alex Gleason 2023-03-22 16:31:49 -05:00
parent 61fb434a54
commit b47cdb368f
No known key found for this signature in database
GPG key ID: 7211D1F99744FBB7

View file

@ -1,21 +1,24 @@
import { Entities } from 'soapbox/entity-store/entities'; import { Entities } from 'soapbox/entity-store/entities';
import { useEntities } from 'soapbox/entity-store/hooks'; import { useDismissEntity, useEntities } from 'soapbox/entity-store/hooks';
import { useApi } from 'soapbox/hooks/useApi'; import { useApi } from 'soapbox/hooks/useApi';
import { accountSchema } from 'soapbox/schemas'; import { accountSchema } from 'soapbox/schemas';
import type { ExpandedEntitiesPath } from 'soapbox/entity-store/hooks/types';
function useGroupMembershipRequests(groupId: string) { function useGroupMembershipRequests(groupId: string) {
const api = useApi(); const api = useApi();
const path: ExpandedEntitiesPath = [Entities.ACCOUNTS, 'membership_requests', groupId];
function authorize(accountId: string) { const authorize = useDismissEntity(path, (accountId) => {
return api.post(`/api/v1/groups/${groupId}/membership_requests/${accountId}/authorize`); return api.post(`/api/v1/groups/${groupId}/membership_requests/${accountId}/authorize`);
} });
function reject(accountId: string) { const reject = useDismissEntity(path, (accountId) => {
return api.post(`/api/v1/groups/${groupId}/membership_requests/${accountId}/reject`); return api.post(`/api/v1/groups/${groupId}/membership_requests/${accountId}/reject`);
} });
const { entities, ...rest } = useEntities( const { entities, ...rest } = useEntities(
[Entities.ACCOUNTS, 'membership_requests', groupId], path,
`/api/v1/groups/${groupId}/membership_requests`, `/api/v1/groups/${groupId}/membership_requests`,
{ schema: accountSchema }, { schema: accountSchema },
); );