From 226a5bda63cc75bd2f9bf44ba95a57d7e30be6fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81tila?= <91704222+AtilaU19@users.noreply.github.com> Date: Tue, 27 Aug 2024 13:39:11 -0300 Subject: [PATCH] feat(modal): added blur backdrop filter when user join the room (#21029) --- .../audio/audio-modal/component.jsx | 58 +++++------ .../ui/components/audio/audio-modal/styles.js | 14 +++ .../ui/components/video-preview/component.jsx | 96 ++++++++++--------- .../ui/components/video-preview/styles.js | 14 +++ 4 files changed, 109 insertions(+), 73 deletions(-) diff --git a/bigbluebutton-html5/imports/ui/components/audio/audio-modal/component.jsx b/bigbluebutton-html5/imports/ui/components/audio/audio-modal/component.jsx index fe7f26bf1e..b3602fdccb 100755 --- a/bigbluebutton-html5/imports/ui/components/audio/audio-modal/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/audio/audio-modal/component.jsx @@ -681,34 +681,36 @@ const AudioModal = ({ : null; return ( - - {isIE ? ( - - Chrome, - 1: Firefox, - }} - /> - - ) : null} - - {renderContent()} - - + + + {isIE ? ( + + Chrome, + 1: Firefox, + }} + /> + + ) : null} + + {renderContent()} + + + ); }; diff --git a/bigbluebutton-html5/imports/ui/components/audio/audio-modal/styles.js b/bigbluebutton-html5/imports/ui/components/audio/audio-modal/styles.js index 18feb0ad33..4d3148de1f 100644 --- a/bigbluebutton-html5/imports/ui/components/audio/audio-modal/styles.js +++ b/bigbluebutton-html5/imports/ui/components/audio/audio-modal/styles.js @@ -139,10 +139,24 @@ const Content = styled.div` } `; +const Background = styled.span` + ${({ isBlurred }) => isBlurred + && css` + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + backdrop-filter: blur(10px); + z-index: 998; + `} +`; + export default { AudioOptions, AudioModalButton, AudioDial, + Background, Connecting, ConnectingAnimation, AudioModal, diff --git a/bigbluebutton-html5/imports/ui/components/video-preview/component.jsx b/bigbluebutton-html5/imports/ui/components/video-preview/component.jsx index 89e3c1f29e..efcd18d2ed 100755 --- a/bigbluebutton-html5/imports/ui/components/video-preview/component.jsx +++ b/bigbluebutton-html5/imports/ui/components/video-preview/component.jsx @@ -26,6 +26,8 @@ import Checkbox from '/imports/ui/components/common/checkbox/component' import AppService from '/imports/ui/components/app/service'; import { CustomVirtualBackgroundsContext } from '/imports/ui/components/video-preview/virtual-background/context'; import VBGSelectorService from '/imports/ui/components/video-preview/virtual-background/service'; +import Storage from '/imports/ui/services/storage/session'; +import getFromUserSettings from '/imports/ui/services/users-settings'; const VIEW_STATES = { finding: 'finding', @@ -1311,6 +1313,8 @@ class VideoPreview extends Component { const WebcamBackgroundImg = `${BASE_NAME}/resources/images/webcam_background.svg`; const darkThemeState = AppService.isDarkThemeEnabled(); + const isBlurred = Storage.getItem('isFirstJoin') !== false + && getFromUserSettings('bbb_auto_share_webcam', window.meetingClientSettings.public.kurento.autoShareWebcam); if (isCamLocked === true) { this.handleProceed(); @@ -1336,58 +1340,60 @@ class VideoPreview extends Component { && isVirtualBackgroundSupported() return ( - - - - - - - - {this.getModalTitle()} - - - {shouldShowVirtualBackgroundsTab && ( - <> - + + + + + + - {intl.formatMessage(intlMessages.webcamVirtualBackgroundTitle)} + {this.getModalTitle()} + - - )} - - - - + {shouldShowVirtualBackgroundsTab && ( + <> + + + + {intl.formatMessage(intlMessages.webcamVirtualBackgroundTitle)} + + + )} + + + + - {deviceInfo.hasMediaDevices - ? this.renderModalContent(selectedTab) - : this.supportWarning() - } + {deviceInfo.hasMediaDevices + ? this.renderModalContent(selectedTab) + : this.supportWarning() + } - - + + + ); } } diff --git a/bigbluebutton-html5/imports/ui/components/video-preview/styles.js b/bigbluebutton-html5/imports/ui/components/video-preview/styles.js index 91ba70c922..38dac61720 100644 --- a/bigbluebutton-html5/imports/ui/components/video-preview/styles.js +++ b/bigbluebutton-html5/imports/ui/components/video-preview/styles.js @@ -255,6 +255,19 @@ const ellipsis = keyframes` } `; +const Background = styled.span` + ${({ isBlurred }) => isBlurred + && css` + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + backdrop-filter: blur(10px); + z-index: 998; + `} +`; + const FetchingAnimation = styled.span` margin: auto; display: inline-block; @@ -413,6 +426,7 @@ export default { BottomSeparator, VideoCol, BackgroundCol, + Background, IconSvg, SharingButton, CancelButton,