diff --git a/src/api/hooks/admin/useAdminAccounts.ts b/src/api/hooks/admin/useAdminAccounts.ts index cb329ced6..ebd1a7004 100644 --- a/src/api/hooks/admin/useAdminAccounts.ts +++ b/src/api/hooks/admin/useAdminAccounts.ts @@ -3,16 +3,29 @@ import { useEntities } from 'soapbox/entity-store/hooks'; import { useApi } from 'soapbox/hooks'; import { adminAccountSchema } from 'soapbox/schemas/admin-account'; -type Filter = 'local' | 'remote' | 'active' | 'pending' | 'disabled' | 'silenced' | 'suspended' | 'sensitized'; +const allFilters = new Set([ + 'local' as const, + 'remote' as const, + 'active' as const, + 'pending' as const, + 'disabled' as const, + 'silenced' as const, + 'suspended' as const, + 'sensitized' as const, +]); /** https://docs.joinmastodon.org/methods/admin/accounts/#v1 */ -export function useAdminAccounts(filters: Filter[] = [], limit?: number) { +export function useAdminAccounts(filters: typeof allFilters, limit?: number) { const api = useApi(); const searchParams = new URLSearchParams(); - for (const filter of filters) { - searchParams.append(filter, 'true'); + for (const filter of allFilters) { + if (filters.has(filter)) { + searchParams.append(filter, 'true'); + } else { + searchParams.append(filter, 'false'); + } } if (typeof limit === 'number') { diff --git a/src/features/admin/components/latest-accounts-panel.tsx b/src/features/admin/components/latest-accounts-panel.tsx index c179afaf3..1d9004407 100644 --- a/src/features/admin/components/latest-accounts-panel.tsx +++ b/src/features/admin/components/latest-accounts-panel.tsx @@ -18,7 +18,7 @@ const LatestAccountsPanel: React.FC = ({ limit = 5 }) => { const intl = useIntl(); const history = useHistory(); - const { accounts } = useAdminAccounts(['local', 'active'], limit); + const { accounts } = useAdminAccounts(new Set(['local', 'active']), limit); const handleAction = () => { history.push('/soapbox/admin/users'); diff --git a/src/features/admin/user-index.tsx b/src/features/admin/user-index.tsx index 93d418d96..bb12d1b49 100644 --- a/src/features/admin/user-index.tsx +++ b/src/features/admin/user-index.tsx @@ -15,7 +15,7 @@ const messages = defineMessages({ const UserIndex: React.FC = () => { const intl = useIntl(); - const { accounts, isLoading, hasNextPage, fetchNextPage } = useAdminAccounts(['local']); + const { accounts, isLoading, hasNextPage, fetchNextPage } = useAdminAccounts(new Set(['local'])); const handleLoadMore = () => { if (!isLoading) {