import React, { Component } from 'react'; import PropTypes from 'prop-types'; import withShortcutHelper from '/imports/ui/components/shortcut-help/service'; import { defineMessages, injectIntl } from 'react-intl'; import * as PluginSdk from 'bigbluebutton-html-plugin-sdk'; import Styled from './styles'; import RecordingIndicator from '/imports/ui/components/nav-bar/nav-bar-graphql/recording-indicator/component'; import TalkingIndicatorContainer from '/imports/ui/components/nav-bar/talking-indicator/container'; import ConnectionStatusButton from '/imports/ui/components/connection-status/button/container'; import ConnectionStatusService from '/imports/ui/components/connection-status/service'; import { addNewAlert } from '/imports/ui/components/screenreader-alert/service'; import OptionsDropdownContainer from './options-dropdown/container'; import TimerIndicatorContainer from '/imports/ui/components/timer/timer-graphql/indicator/component'; import browserInfo from '/imports/utils/browserInfo'; import deviceInfo from '/imports/utils/deviceInfo'; import { PANELS, ACTIONS } from '../layout/enums'; import Button from '/imports/ui/components/common/button/component'; import { isEqual } from 'radash'; const intlMessages = defineMessages({ toggleUserListLabel: { id: 'app.navBar.userListToggleBtnLabel', description: 'Toggle button label', }, toggleUserListAria: { id: 'app.navBar.toggleUserList.ariaLabel', description: 'description of the lists inside the userlist', }, newMessages: { id: 'app.navBar.toggleUserList.newMessages', description: 'label for toggleUserList btn when showing red notification', }, newMsgAria: { id: 'app.navBar.toggleUserList.newMsgAria', description: 'label for new message screen reader alert', }, defaultBreakoutName: { id: 'app.createBreakoutRoom.room', description: 'default breakout room name', }, }); const propTypes = { presentationTitle: PropTypes.string, hasUnreadMessages: PropTypes.bool, shortcuts: PropTypes.string, breakoutNum: PropTypes.number, breakoutName: PropTypes.string, meetingName: PropTypes.string, pluginNavBarItems: PropTypes.arrayOf(PropTypes.shape({ id: PropTypes.string, })).isRequired, }; const defaultProps = { presentationTitle: 'Default Room Title', hasUnreadMessages: false, shortcuts: '', }; const renderPluginItems = (pluginItems) => { if (pluginItems !== undefined) { return ( <> { pluginItems.map((pluginItem) => { let returnComponent; switch (pluginItem.type) { case PluginSdk.NavBarItemType.BUTTON: returnComponent = (