Skip to content
Snippets Groups Projects
Select Git revision
  • de3c86619d12192e7f2418f1ff42a2bf15122ba7
  • master default protected
  • v3-modify-mail
  • snyk-fix-207483a1e839c807f95a55077e86527d
  • translations_3b5aa4f3c755059914cfa23d7d2edcde_ru
  • translations_6e4a5e377a3e50f17e6402264fdbfcc6_ru
  • translations_3b5aa4f3c755059914cfa23d7d2edcde_fa_IR
  • translations_en-yml--master_fa_IR
  • snyk-fix-7d634f2eb65555f41bf06d6af930e812
  • translations_en-yml--master_ar
  • translations_3b5aa4f3c755059914cfa23d7d2edcde_el
  • jfederico-patch-1
  • v2
  • v3
  • v1
  • release-3.1.0.2
  • release-3.1.0.1
  • release-3.1.0
  • release-2.14.8.4
  • release-3.0.9.1
  • release-3.0.9
  • release-3.0.8.1
  • release-2.14.8.3
  • release-3.0.8
  • release-3.0.7.1
  • release-2.14.8.2
  • release-3.0.7
  • release-3.0.6.1
  • release-3.0.6
  • release-3.0.5.4
  • release-3.0.5.3
  • release-2.14.8.1
  • release-3.0.5.2
  • release-3.0.5.1
  • release-3.0.5
35 results

FeatureTabs.jsx

Blame
  • user avatar
    Mariam A authored and GitHub committed
    * Hide recording tabs when recording is disabled by admin
    
    * test and PR fixes
    de3c8661
    History
    FeatureTabs.jsx 3.34 KiB
    // BigBlueButton open source conferencing system - http://www.bigbluebutton.org/.
    //
    // Copyright (c) 2022 BigBlueButton Inc. and by respective authors (see below).
    //
    // This program is free software; you can redistribute it and/or modify it under the
    // terms of the GNU Lesser General Public License as published by the Free Software
    // Foundation; either version 3.0 of the License, or (at your option) any later
    // version.
    //
    // Greenlight is distributed in the hope that it will be useful, but WITHOUT ANY
    // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
    // PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
    //
    // You should have received a copy of the GNU Lesser General Public License along
    // with Greenlight; if not, see <http://www.gnu.org/licenses/>.
    
    import React from 'react';
    import { Tabs, Tab, Placeholder } from 'react-bootstrap';
    import { useTranslation } from 'react-i18next';
    import { useParams } from 'react-router-dom';
    import Presentation from './presentation/Presentation';
    import RoomSettings from './room_settings/RoomSettings';
    import SharedAccess from './shared_access/SharedAccess';
    import { useAuth } from '../../../contexts/auth/AuthProvider';
    import useSiteSetting from '../../../hooks/queries/site_settings/useSiteSetting';
    import RoomRecordings from '../../recordings/room_recordings/RoomRecordings';
    import useRoom from '../../../hooks/queries/rooms/useRoom';
    import useRoomConfigValue from '../../../hooks/queries/rooms/useRoomConfigValue';
    
    export default function FeatureTabs() {
      const { t } = useTranslation();
      const { isLoading, data: settings } = useSiteSetting(['PreuploadPresentation', 'ShareRooms']);
      const currentUser = useAuth();
    
      const { friendlyId } = useParams();
      const { data: room } = useRoom(friendlyId);
      const { isLoading: isRoomConfigLoading, data: recordValue } = useRoomConfigValue('record');
    
      if (isLoading || isRoomConfigLoading) {
        return (
          <div className="wide-white pt-4 pb-2 mx-0">
            <Placeholder className="ps-0" animation="glow">
              <Placeholder xs={1} size="lg" className="me-2" />
              <Placeholder xs={1} size="lg" className="mx-2" />
              <Placeholder xs={1} size="lg" className="mx-2" />
              <Placeholder xs={1} size="lg" className="mx-2" />
            </Placeholder>
          </div>
        );
      }
    
      const showRecTabs = (recordValue !== 'false');
    
      return (
        <Tabs className="wide-white pt-4 mx-0" defaultActiveKey={showRecTabs ? 'recordings' : 'presentation'} unmountOnExit>
          {showRecTabs
            && (
              <Tab className="background-whitesmoke" eventKey="recordings" title={t('recording.recordings')}>
                <RoomRecordings />
              </Tab>
            )}
          {settings?.PreuploadPresentation
            && (
              <Tab className="background-whitesmoke" eventKey="presentation" title={t('room.presentation.presentation')}>
                <Presentation />
              </Tab>
            )}
          {(settings?.ShareRooms && (!room?.shared || currentUser?.permissions?.ManageRooms === 'true'))
            && (
              <Tab className="background-whitesmoke" eventKey="access" title={t('room.shared_access.access')}>
                <SharedAccess />
              </Tab>
            )}
          <Tab className="background-whitesmoke" eventKey="settings" title={t('room.settings.settings')}>
            <RoomSettings />
          </Tab>
        </Tabs>
      );
    }