import { Box, Throbber } from '@rocket.chat/fuselage'; import { useDebouncedCallback } from '@rocket.chat/fuselage-hooks'; import { ContextualbarClose, ContextualbarContent, ContextualbarDialog, ContextualbarEmptyContent, ContextualbarHeader, ContextualbarIcon, ContextualbarTitle, VirtualizedScrollbars, } from '@rocket.chat/ui-client'; import { useTranslation } from 'react-i18next'; import { Virtuoso } from 'react-virtuoso'; import BannedUsersItem from './BannedUsersItem'; import type { BannedUser } from '../../../hooks/useRoomBannedUsers'; export type BannedUsersProps = { loading: boolean; error?: Error; useRealName?: boolean; bannedUsers: BannedUser[]; onClickClose: () => void; onClickUnban: (username: string) => void; onLoadMore: () => void; }; const BannedUsers = ({ loading, error, bannedUsers, useRealName = false, onClickClose, onClickUnban, onLoadMore }: BannedUsersProps) => { const { t } = useTranslation(); const loadMoreBannedUsers = useDebouncedCallback(() => onLoadMore(), 300, [onLoadMore, bannedUsers]); return ( {t('Banned_Users')} {loading && ( )} {error && } {!loading && !error && bannedUsers.length === 0 && ( )} {!loading && !error && bannedUsers.length > 0 && ( } /> )} ); }; export default BannedUsers;