import type { IRoom, IUpload, IUploadWithUser } from '@rocket.chat/core-typings'; import type { SelectOption } from '@rocket.chat/fuselage'; import { Box, Icon, TextInput, Select, Throbber } from '@rocket.chat/fuselage'; import { VirtualizedScrollbars, ContextualbarHeader, ContextualbarIcon, ContextualbarTitle, ContextualbarClose, ContextualbarContent, ContextualbarEmptyContent, ContextualbarSection, ContextualbarDialog, } from '@rocket.chat/ui-client'; import type { ChangeEvent } from 'react'; import { useId, useMemo } from 'react'; import { useTranslation } from 'react-i18next'; import { Virtuoso } from 'react-virtuoso'; import RoomFileItemWrapper from './RoomFileItemWrapper'; import RoomFilesListWrapper from './RoomFilesListWrapper'; import FileItem from './components/FileItem'; import ResultsLiveRegion from '../../../../components/ResultsLiveRegion'; export type RoomFilesProps = { rid: IRoom['_id']; isPending: boolean; isSuccess: boolean; type: string; text: string; filesItems: IUploadWithUser[]; loadMoreItems: () => void; setType: (value: any) => void; setText: (e: ChangeEvent) => void; total: number; onClickClose: () => void; onClickDelete: (id: IUpload['_id']) => void; }; const RoomFiles = ({ rid, isPending, isSuccess, type, text, filesItems = [], loadMoreItems, setType, setText, total, onClickClose, onClickDelete, }: RoomFilesProps) => { const { t } = useTranslation(); const filesListId = useId(); const options: SelectOption[] = useMemo( () => [ ['all', t('All')], ['image', t('Images')], ['video', t('Videos')], ['audio', t('Audios')], ['text', t('Texts')], ['application', t('Files')], ], [t], ); return ( {t('Files')} {onClickClose && } } />