diff --git a/bigbluebutton-html5/imports/ui/components/layout/layout-manager/customLayout.jsx b/bigbluebutton-html5/imports/ui/components/layout/layout-manager/customLayout.jsx
index 5215e0e9f4..fbb0de07e9 100644
--- a/bigbluebutton-html5/imports/ui/components/layout/layout-manager/customLayout.jsx
+++ b/bigbluebutton-html5/imports/ui/components/layout/layout-manager/customLayout.jsx
@@ -392,164 +392,125 @@ const CustomLayout = (props) => {
const baseBounds = baseCameraDockBounds(mediaAreaBounds, sidebarSize);
- if(Object.keys(baseBounds).length > 0){
+ // do not proceed if using values from BaseLayout
+ if (Object.keys(baseBounds).length > 0) {
return baseBounds;
}
- const { camerasMargin } = DEFAULT_VALUES;
+ const {
+ camerasMargin,
+ cameraDockMinHeight,
+ cameraDockMinWidth,
+ navBarHeight,
+ presentationToolbarMinWidth,
+ } = DEFAULT_VALUES;
const cameraDockBounds = {};
- let cameraDockLeft = 0;
let cameraDockHeight = 0;
let cameraDockWidth = 0;
- switch (cameraDockInput.position) {
- case CAMERADOCK_POSITION.CONTENT_TOP: {
- cameraDockLeft = mediaAreaBounds.left;
-
- if (cameraDockInput.height === 0 || deviceType === DEVICE_TYPE.MOBILE) {
- cameraDockHeight = min(
- max((mediaAreaBounds.height * 0.2), DEFAULT_VALUES.cameraDockMinHeight),
- (mediaAreaBounds.height - DEFAULT_VALUES.cameraDockMinHeight),
- );
- } else {
- cameraDockHeight = min(
- max(cameraDockInput.height, DEFAULT_VALUES.cameraDockMinHeight),
- (mediaAreaBounds.height - DEFAULT_VALUES.cameraDockMinHeight),
- );
- }
-
- cameraDockBounds.top = DEFAULT_VALUES.navBarHeight + bannerAreaHeight();
- cameraDockBounds.left = cameraDockLeft;
- cameraDockBounds.right = isRTL ? sidebarSize : null;
- cameraDockBounds.minWidth = mediaAreaBounds.width;
- cameraDockBounds.width = mediaAreaBounds.width;
- cameraDockBounds.maxWidth = mediaAreaBounds.width;
- cameraDockBounds.minHeight = DEFAULT_VALUES.cameraDockMinHeight;
- cameraDockBounds.height = cameraDockHeight;
- cameraDockBounds.maxHeight = mediaAreaBounds.height * 0.8;
- break;
- }
- case CAMERADOCK_POSITION.CONTENT_RIGHT: {
- if (cameraDockInput.width === 0) {
- cameraDockWidth = min(
- max((mediaAreaBounds.width * 0.2), DEFAULT_VALUES.cameraDockMinWidth),
- (mediaAreaBounds.width - DEFAULT_VALUES.cameraDockMinWidth),
- );
- } else {
- cameraDockWidth = min(
- max(cameraDockInput.width, DEFAULT_VALUES.cameraDockMinWidth),
- (mediaAreaBounds.width - DEFAULT_VALUES.cameraDockMinWidth),
- );
- }
-
- cameraDockBounds.top = DEFAULT_VALUES.navBarHeight + bannerAreaHeight();
- const sizeValue = presentationInput.isOpen
- ? (mediaAreaBounds.left + mediaAreaBounds.width) - cameraDockWidth
- : mediaAreaBounds.left;
- cameraDockBounds.left = !isRTL ? sizeValue - camerasMargin : 0;
- cameraDockBounds.right = isRTL ? sizeValue + sidebarSize - camerasMargin : null;
- cameraDockBounds.minWidth = DEFAULT_VALUES.cameraDockMinWidth;
- cameraDockBounds.width = cameraDockWidth;
- cameraDockBounds.maxWidth = mediaAreaBounds.width * 0.8;
- cameraDockBounds.presenterMaxWidth = mediaAreaBounds.width
- - DEFAULT_VALUES.presentationToolbarMinWidth
- - camerasMargin;
- cameraDockBounds.minHeight = DEFAULT_VALUES.cameraDockMinHeight;
- cameraDockBounds.height = mediaAreaBounds.height;
- cameraDockBounds.maxHeight = mediaAreaBounds.height;
- // button size in vertical position
- cameraDockBounds.height -= 20;
- break;
- }
- case CAMERADOCK_POSITION.CONTENT_BOTTOM: {
- cameraDockLeft = mediaAreaBounds.left;
-
- if (cameraDockInput.height === 0) {
- cameraDockHeight = min(
- max((mediaAreaBounds.height * 0.2), DEFAULT_VALUES.cameraDockMinHeight),
- (mediaAreaBounds.height - DEFAULT_VALUES.cameraDockMinHeight),
- );
- } else {
- cameraDockHeight = min(
- max(cameraDockInput.height, DEFAULT_VALUES.cameraDockMinHeight),
- (mediaAreaBounds.height - DEFAULT_VALUES.cameraDockMinHeight),
- );
- }
-
- cameraDockBounds.top = DEFAULT_VALUES.navBarHeight
- + mediaAreaBounds.height - cameraDockHeight + bannerAreaHeight();
- cameraDockBounds.left = cameraDockLeft;
- cameraDockBounds.right = isRTL ? sidebarSize : null;
- cameraDockBounds.minWidth = mediaAreaBounds.width;
- cameraDockBounds.width = mediaAreaBounds.width;
- cameraDockBounds.maxWidth = mediaAreaBounds.width;
- cameraDockBounds.minHeight = DEFAULT_VALUES.cameraDockMinHeight;
- cameraDockBounds.height = cameraDockHeight;
- cameraDockBounds.maxHeight = mediaAreaBounds.height * 0.8;
- break;
- }
- case CAMERADOCK_POSITION.CONTENT_LEFT: {
- if (cameraDockInput.width === 0) {
- cameraDockWidth = min(
- max((mediaAreaBounds.width * 0.2), DEFAULT_VALUES.cameraDockMinWidth),
- (mediaAreaBounds.width - DEFAULT_VALUES.cameraDockMinWidth),
- );
- } else {
- cameraDockWidth = min(
- max(cameraDockInput.width, DEFAULT_VALUES.cameraDockMinWidth),
- (mediaAreaBounds.width - DEFAULT_VALUES.cameraDockMinWidth),
- );
- }
-
- cameraDockBounds.top = DEFAULT_VALUES.navBarHeight + bannerAreaHeight();
- cameraDockBounds.left = mediaAreaBounds.left + camerasMargin;
- cameraDockBounds.right = isRTL ? sidebarSize + (camerasMargin * 2) : null;
- cameraDockBounds.minWidth = DEFAULT_VALUES.cameraDockMinWidth;
- cameraDockBounds.width = cameraDockWidth;
- cameraDockBounds.maxWidth = mediaAreaBounds.width * 0.8;
- cameraDockBounds.presenterMaxWidth = mediaAreaBounds.width
- - DEFAULT_VALUES.presentationToolbarMinWidth
- - camerasMargin;
- cameraDockBounds.minHeight = mediaAreaBounds.height;
- cameraDockBounds.height = mediaAreaBounds.height;
- cameraDockBounds.maxHeight = mediaAreaBounds.height;
- // button size in vertical position
- cameraDockBounds.height -= 20;
- break;
- }
- case CAMERADOCK_POSITION.SIDEBAR_CONTENT_BOTTOM: {
- if (cameraDockInput.height === 0) {
- cameraDockHeight = min(
- max((windowHeight() * 0.2), DEFAULT_VALUES.cameraDockMinHeight),
- (windowHeight() - DEFAULT_VALUES.cameraDockMinHeight),
- );
- } else {
- cameraDockHeight = min(
- max(cameraDockInput.height, DEFAULT_VALUES.cameraDockMinHeight),
- (windowHeight() - DEFAULT_VALUES.cameraDockMinHeight),
- );
- }
-
- cameraDockBounds.top = windowHeight() - cameraDockHeight;
- cameraDockBounds.left = !isRTL ? sidebarNavWidth : 0;
- cameraDockBounds.right = isRTL ? sidebarNavWidth : 0;
- cameraDockBounds.minWidth = sidebarContentWidth;
- cameraDockBounds.width = sidebarContentWidth;
- cameraDockBounds.maxWidth = sidebarContentWidth;
- cameraDockBounds.minHeight = DEFAULT_VALUES.cameraDockMinHeight;
- cameraDockBounds.height = cameraDockHeight;
- cameraDockBounds.maxHeight = windowHeight() * 0.8;
- break;
- }
- default: {
- console.log('default');
- }
- }
if (cameraDockInput.isDragging) cameraDockBounds.zIndex = 99;
else cameraDockBounds.zIndex = 1;
+ const isMobile = deviceType === DEVICE_TYPE.MOBILE;
+ const isCameraTop = cameraDockInput.position === CAMERADOCK_POSITION.CONTENT_TOP;
+ const isCameraBottom = cameraDockInput.position === CAMERADOCK_POSITION.CONTENT_BOTTOM;
+ const isCameraLeft = cameraDockInput.position === CAMERADOCK_POSITION.CONTENT_LEFT;
+ const isCameraRight = cameraDockInput.position === CAMERADOCK_POSITION.CONTENT_RIGHT;
+ const isCameraSidebar = cameraDockInput.position === CAMERADOCK_POSITION.SIDEBAR_CONTENT_BOTTOM;
+
+ if (isCameraTop || isCameraBottom) {
+ if (cameraDockInput.height === 0 || (isCameraTop && isMobile)) {
+ cameraDockHeight = min(
+ max((mediaAreaBounds.height * 0.2), cameraDockMinHeight),
+ (mediaAreaBounds.height - cameraDockMinHeight),
+ );
+ } else {
+ cameraDockHeight = min(
+ max(cameraDockInput.height, cameraDockMinHeight),
+ (mediaAreaBounds.height - cameraDockMinHeight),
+ );
+ }
+
+ cameraDockBounds.top = navBarHeight + bannerAreaHeight();
+ cameraDockBounds.left = mediaAreaBounds.left;
+ cameraDockBounds.right = isRTL ? sidebarSize : null;
+ cameraDockBounds.minWidth = mediaAreaBounds.width;
+ cameraDockBounds.width = mediaAreaBounds.width;
+ cameraDockBounds.maxWidth = mediaAreaBounds.width;
+ cameraDockBounds.minHeight = cameraDockMinHeight;
+ cameraDockBounds.height = cameraDockHeight;
+ cameraDockBounds.maxHeight = mediaAreaBounds.height * 0.8;
+
+ if (isCameraBottom) {
+ cameraDockBounds.top += (mediaAreaBounds.height - cameraDockHeight);
+ }
+
+ return cameraDockBounds;
+ }
+
+ if (isCameraLeft || isCameraRight) {
+ if (cameraDockInput.width === 0) {
+ cameraDockWidth = min(
+ max((mediaAreaBounds.width * 0.2), cameraDockMinWidth),
+ (mediaAreaBounds.width - cameraDockMinWidth),
+ );
+ } else {
+ cameraDockWidth = min(
+ max(cameraDockInput.width, cameraDockMinWidth),
+ (mediaAreaBounds.width - cameraDockMinWidth),
+ );
+ }
+
+ cameraDockBounds.top = navBarHeight + bannerAreaHeight();
+ cameraDockBounds.minWidth = cameraDockMinWidth;
+ cameraDockBounds.width = cameraDockWidth;
+ cameraDockBounds.maxWidth = mediaAreaBounds.width * 0.8;
+ cameraDockBounds.presenterMaxWidth = mediaAreaBounds.width
+ - presentationToolbarMinWidth
+ - camerasMargin;
+ cameraDockBounds.minHeight = cameraDockMinHeight;
+ cameraDockBounds.height = mediaAreaBounds.height;
+ cameraDockBounds.maxHeight = mediaAreaBounds.height;
+ // button size in vertical position
+ cameraDockBounds.height -= 20;
+
+ if (isCameraRight) {
+ const sizeValue = (mediaAreaBounds.left + mediaAreaBounds.width) - cameraDockWidth;
+ cameraDockBounds.left = !isRTL ? sizeValue - camerasMargin : 0;
+ cameraDockBounds.right = isRTL ? sizeValue + sidebarSize - camerasMargin : null;
+ } else if (isCameraLeft) {
+ cameraDockBounds.left = mediaAreaBounds.left + camerasMargin;
+ cameraDockBounds.right = isRTL ? sidebarSize + (camerasMargin * 2) : null;
+ }
+
+ return cameraDockBounds;
+ }
+
+ if (isCameraSidebar) {
+ if (cameraDockInput.height === 0) {
+ cameraDockHeight = min(
+ max((windowHeight() * 0.2), cameraDockMinHeight),
+ (windowHeight() - cameraDockMinHeight),
+ );
+ } else {
+ cameraDockHeight = min(
+ max(cameraDockInput.height, cameraDockMinHeight),
+ (windowHeight() - cameraDockMinHeight),
+ );
+ }
+
+ cameraDockBounds.top = windowHeight() - cameraDockHeight;
+ cameraDockBounds.left = !isRTL ? sidebarNavWidth : 0;
+ cameraDockBounds.right = isRTL ? sidebarNavWidth : 0;
+ cameraDockBounds.minWidth = sidebarContentWidth;
+ cameraDockBounds.width = sidebarContentWidth;
+ cameraDockBounds.maxWidth = sidebarContentWidth;
+ cameraDockBounds.minHeight = cameraDockMinHeight;
+ cameraDockBounds.height = cameraDockHeight;
+ cameraDockBounds.maxHeight = windowHeight() * 0.8;
+ }
return cameraDockBounds;
};