// @flow import React, { useCallback, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { FlatList, Text, TouchableOpacity, View } from 'react-native'; import { useDispatch } from 'react-redux'; import { openDialog } from '../../../base/dialog'; import { Icon, IconArrowDown, IconArrowUp } from '../../../base/icons'; import BreakoutRoomContextMenu from './BreakoutRoomContextMenu'; import BreakoutRoomParticipantItem from './BreakoutRoomParticipantItem'; import styles from './styles'; type Props = { /** * Room to display. */ room: Object } /** * Returns a key for a passed item of the list. * * @param {Object} item - The participant. * @returns {string} - The user ID. */ function _keyExtractor(item: Object) { return item.jid; } export const CollapsibleRoom = ({ room }: Props) => { const dispatch = useDispatch(); const [ collapsed, setCollapsed ] = useState(false); const { t } = useTranslation(); const _toggleCollapsed = useCallback(() => { setCollapsed(!collapsed); }, [ collapsed ]); const _openContextMenu = useCallback(() => { dispatch(openDialog(BreakoutRoomContextMenu, { room })); }, [ room ]); return ( {`${room.name || t('breakoutRooms.mainRoom')} (${Object.values(room.participants || {}).length})`} {!collapsed && } showsHorizontalScrollIndicator = { false } windowSize = { 2 } />} ); };