import React, { PureComponent } from 'react'; import { defineMessages } from 'react-intl'; import { ActionsBarItemType, ActionsBarPosition } from 'bigbluebutton-html-plugin-sdk/dist/cjs/extensible-areas/actions-bar-item/enums'; import Styled from './styles'; import ActionsDropdown from './actions-dropdown/container'; import AudioCaptionsButtonContainer from '/imports/ui/components/audio/audio-graphql/audio-captions/button/component'; import ScreenshareButtonContainer from '/imports/ui/components/actions-bar/screenshare/container'; import AudioControlsContainer from '../audio/audio-graphql/audio-controls/component'; import JoinVideoOptionsContainer from '../video-provider/video-button/container'; import PresentationOptionsContainer from './presentation-options/component'; import Button from '/imports/ui/components/common/button/component'; import { getSettingsSingletonInstance } from '/imports/ui/services/settings'; import { LAYOUT_TYPE } from '../layout/enums'; import ReactionsButtonContainer from '/imports/ui/components/actions-bar/reactions-button/container'; import RaiseHandButtonContainer from '/imports/ui/components/actions-bar/raise-hand-button/container'; const intlMessages = defineMessages({ actionsBarLabel: { id: 'app.actionsBar.label', description: 'Aria-label for ActionsBar Section', }, }); class ActionsBar extends PureComponent { constructor(props) { super(props); this.actionsBarRef = React.createRef(); this.renderPluginsActionBarItems = this.renderPluginsActionBarItems.bind(this); } renderPluginsActionBarItems(position) { const { actionBarItems } = this.props; return ( <> { actionBarItems.filter((plugin) => plugin.position === position).map((plugin) => { let actionBarItemToReturn; switch (plugin.type) { case ActionsBarItemType.BUTTON: actionBarItemToReturn = (