|
|
@ -3,6 +3,7 @@ |
|
|
|
import React, { useCallback } from 'react'; |
|
|
|
import React, { useCallback } from 'react'; |
|
|
|
import { useSelector } from 'react-redux'; |
|
|
|
import { useSelector } from 'react-redux'; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import { isMobileBrowser } from '../../../../../base/environment/utils'; |
|
|
|
import { isLocalParticipantModerator } from '../../../../../base/participants'; |
|
|
|
import { isLocalParticipantModerator } from '../../../../../base/participants'; |
|
|
|
import { equals } from '../../../../../base/redux'; |
|
|
|
import { equals } from '../../../../../base/redux'; |
|
|
|
import useContextMenu from '../../../../../base/ui/hooks/useContextMenu.web'; |
|
|
|
import useContextMenu from '../../../../../base/ui/hooks/useContextMenu.web'; |
|
|
@ -40,10 +41,11 @@ export const RoomList = ({ searchString }: Props) => { |
|
|
|
const isLocalModerator = useSelector(isLocalParticipantModerator); |
|
|
|
const isLocalModerator = useSelector(isLocalParticipantModerator); |
|
|
|
const showAutoAssign = useSelector(isAutoAssignParticipantsVisible); |
|
|
|
const showAutoAssign = useSelector(isAutoAssignParticipantsVisible); |
|
|
|
const { hideJoinRoomButton } = useSelector(getBreakoutRoomsConfig); |
|
|
|
const { hideJoinRoomButton } = useSelector(getBreakoutRoomsConfig); |
|
|
|
const _overflowDrawer = useSelector(showOverflowDrawer); |
|
|
|
const overflowDrawer = useSelector(showOverflowDrawer); |
|
|
|
const [ lowerMenu, raiseMenu, toggleMenu, menuEnter, menuLeave, raiseContext ] = useContextMenu(); |
|
|
|
const [ lowerMenu, raiseMenu, toggleMenu, menuEnter, menuLeave, raiseContext ] = useContextMenu(); |
|
|
|
const [ lowerParticipantMenu, raiseParticipantMenu, toggleParticipantMenu, |
|
|
|
const [ lowerParticipantMenu, raiseParticipantMenu, toggleParticipantMenu, |
|
|
|
participantMenuEnter, participantMenuLeave, raiseParticipantContext ] = useContextMenu(); |
|
|
|
participantMenuEnter, participantMenuLeave, raiseParticipantContext ] = useContextMenu(); |
|
|
|
|
|
|
|
const hideMenu = useCallback(() => !overflowDrawer && lowerMenu(), [ overflowDrawer, lowerMenu ]); |
|
|
|
const onRaiseMenu = useCallback(room => target => raiseMenu(room, target), [ raiseMenu ]); |
|
|
|
const onRaiseMenu = useCallback(room => target => raiseMenu(room, target), [ raiseMenu ]); |
|
|
|
|
|
|
|
|
|
|
|
return ( |
|
|
|
return ( |
|
|
@ -55,14 +57,14 @@ export const RoomList = ({ searchString }: Props) => { |
|
|
|
<React.Fragment key = { room.id }> |
|
|
|
<React.Fragment key = { room.id }> |
|
|
|
<CollapsibleRoom |
|
|
|
<CollapsibleRoom |
|
|
|
isHighlighted = { raiseContext.entity === room } |
|
|
|
isHighlighted = { raiseContext.entity === room } |
|
|
|
onLeave = { lowerMenu } |
|
|
|
onLeave = { hideMenu } |
|
|
|
onRaiseMenu = { onRaiseMenu(room) } |
|
|
|
onRaiseMenu = { onRaiseMenu(room) } |
|
|
|
participantContextEntity = { raiseParticipantContext.entity } |
|
|
|
participantContextEntity = { raiseParticipantContext.entity } |
|
|
|
raiseParticipantContextMenu = { raiseParticipantMenu } |
|
|
|
raiseParticipantContextMenu = { raiseParticipantMenu } |
|
|
|
room = { room } |
|
|
|
room = { room } |
|
|
|
searchString = { searchString } |
|
|
|
searchString = { searchString } |
|
|
|
toggleParticipantMenu = { toggleParticipantMenu }> |
|
|
|
toggleParticipantMenu = { toggleParticipantMenu }> |
|
|
|
{!_overflowDrawer && <> |
|
|
|
{!isMobileBrowser() && <> |
|
|
|
{!hideJoinRoomButton && <JoinActionButton room = { room } />} |
|
|
|
{!hideJoinRoomButton && <JoinActionButton room = { room } />} |
|
|
|
{isLocalModerator && !room.isMainRoom |
|
|
|
{isLocalModerator && !room.isMainRoom |
|
|
|
&& <RoomActionEllipsis onClick = { toggleMenu(room) } />} |
|
|
|
&& <RoomActionEllipsis onClick = { toggleMenu(room) } />} |
|
|
|