Groups: use entity store for pending requests
This commit is contained in:
parent
28a69ad88b
commit
d08178f5fc
|
@ -1,4 +1,5 @@
|
||||||
export enum Entities {
|
export enum Entities {
|
||||||
|
ACCOUNTS = 'Accounts',
|
||||||
GROUPS = 'Groups',
|
GROUPS = 'Groups',
|
||||||
GROUP_RELATIONSHIPS = 'GroupRelationships',
|
GROUP_RELATIONSHIPS = 'GroupRelationships',
|
||||||
GROUP_MEMBERSHIPS = 'GroupMemberships',
|
GROUP_MEMBERSHIPS = 'GroupMemberships',
|
||||||
|
|
|
@ -6,6 +6,7 @@ import Account from 'soapbox/components/account';
|
||||||
import ScrollableList from 'soapbox/components/scrollable-list';
|
import ScrollableList from 'soapbox/components/scrollable-list';
|
||||||
import { Button, Column, HStack, Spinner } from 'soapbox/components/ui';
|
import { Button, Column, HStack, Spinner } from 'soapbox/components/ui';
|
||||||
import { useAppDispatch, useAppSelector, useGroup } from 'soapbox/hooks';
|
import { useAppDispatch, useAppSelector, useGroup } from 'soapbox/hooks';
|
||||||
|
import { useGroupMembershipRequests } from 'soapbox/hooks/api/groups/useGroupMembershipRequests';
|
||||||
import { makeGetAccount } from 'soapbox/selectors';
|
import { makeGetAccount } from 'soapbox/selectors';
|
||||||
import toast from 'soapbox/toast';
|
import toast from 'soapbox/toast';
|
||||||
|
|
||||||
|
@ -80,7 +81,8 @@ const GroupMembershipRequests: React.FC<IGroupMembershipRequests> = ({ params })
|
||||||
const id = params?.id;
|
const id = params?.id;
|
||||||
|
|
||||||
const { group } = useGroup(id);
|
const { group } = useGroup(id);
|
||||||
const accountIds = useAppSelector((state) => state.user_lists.membership_requests.get(id)?.items);
|
const { entities } = useGroupMembershipRequests(id);
|
||||||
|
const accountIds = entities.map(e => e.id);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
dispatch(fetchGroupMembershipRequests(id));
|
dispatch(fetchGroupMembershipRequests(id));
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
import { Entities } from 'soapbox/entity-store/entities';
|
||||||
|
import { useEntities } from 'soapbox/entity-store/hooks';
|
||||||
|
import { accountSchema } from 'soapbox/schemas';
|
||||||
|
|
||||||
|
function useGroupMembershipRequests(groupId: string) {
|
||||||
|
return useEntities(
|
||||||
|
[Entities.ACCOUNTS, 'membership_requests', groupId],
|
||||||
|
`/api/v1/groups/${groupId}/membership_requests`,
|
||||||
|
{ schema: accountSchema },
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export { useGroupMembershipRequests };
|
Loading…
Reference in New Issue