diff --git a/bigbluebutton-html5/imports/ui/components/app/component.jsx b/bigbluebutton-html5/imports/ui/components/app/component.jsx
index 9cd7a92ad3..5e94326123 100755
--- a/bigbluebutton-html5/imports/ui/components/app/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/app/component.jsx
@@ -157,6 +157,8 @@ class App extends Component {
isRTL,
hidePresentation,
autoSwapLayout,
+ shouldShowScreenshare,
+ shouldShowExternalVideo,
} = this.props;
const { browserName } = browserInfo;
const { osName } = deviceInfo;
@@ -168,9 +170,12 @@ class App extends Component {
value: isRTL,
});
+ const presentationOpen = !(autoSwapLayout || hidePresentation)
+ || shouldShowExternalVideo || shouldShowScreenshare;
+
layoutContextDispatch({
type: ACTIONS.SET_PRESENTATION_IS_OPEN,
- value: !(autoSwapLayout || hidePresentation),
+ value: presentationOpen,
});
Modal.setAppElement('#app');
diff --git a/bigbluebutton-html5/imports/ui/components/presentation/presentation-uploader/component.jsx b/bigbluebutton-html5/imports/ui/components/presentation/presentation-uploader/component.jsx
index 5e93449612..037aed3013 100755
--- a/bigbluebutton-html5/imports/ui/components/presentation/presentation-uploader/component.jsx
+++ b/bigbluebutton-html5/imports/ui/components/presentation/presentation-uploader/component.jsx
@@ -301,14 +301,23 @@ class PresentationUploader extends Component {
}
});
- if (!_.isEqual(prevProps.presentations, propPresentations) || presentations.length === 0) {
- this.setState({
- presentations: Object.values({
- ...presentations,
- ...propPresentations,
- }),
- });
- }
+ const presState = Object.values({
+ ...propPresentations,
+ ...presentations,
+ });
+ const presStateMapped = presState.map((presentation) => {
+ propPresentations.forEach((propPres) => {
+ if (propPres.id == presentation.id){
+ presentation.isCurrent = propPres.isCurrent;
+ }
+ })
+ return presentation;
+ })
+
+ this.setState({
+ presentations: presStateMapped,
+ })
+
}
if (presentations.length > 0) {
@@ -857,7 +866,6 @@ class PresentationUploader extends Component {
keyValue={item.id}
onChange={() => this.handleCurrentChange(item.id)}
disabled={disableActions}
- animations={animations}
/>
{isRemovable ? (
diff --git a/bigbluebutton-html5/imports/ui/components/presentation/presentation-uploader/service.js b/bigbluebutton-html5/imports/ui/components/presentation/presentation-uploader/service.js
index d45754b7f4..a5d8a73f92 100644
--- a/bigbluebutton-html5/imports/ui/components/presentation/presentation-uploader/service.js
+++ b/bigbluebutton-html5/imports/ui/components/presentation/presentation-uploader/service.js
@@ -5,6 +5,7 @@ import Poll from '/imports/api/polls/';
import { makeCall } from '/imports/ui/services/api';
import logger from '/imports/startup/client/logger';
import _ from 'lodash';
+import { Random } from 'meteor/random'
const CONVERSION_TIMEOUT = 300000;
const TOKEN_TIMEOUT = 5000;
@@ -155,7 +156,6 @@ const requestPresentationUploadToken = (
});
const uploadAndConvertPresentation = (
- tmpPresId,
file,
downloadable,
podId,
@@ -165,9 +165,9 @@ const uploadAndConvertPresentation = (
onProgress,
onConversion,
) => {
+ const tmpPresId = _.uniqueId(Random.id(20))
+
const data = new FormData();
- data.append('presentation_name', file.name);
- data.append('Filename', file.name);
data.append('fileUpload', file);
data.append('conference', meetingId);
data.append('room', meetingId);
@@ -209,7 +209,7 @@ const uploadAndConvertPresentations = (
podId,
uploadEndpoint,
) => Promise.all(presentationsToUpload.map((p) => uploadAndConvertPresentation(
- p.id, p.file, p.isDownloadable, podId, meetingId, uploadEndpoint,
+ p.file, p.isDownloadable, podId, meetingId, uploadEndpoint,
p.onUpload, p.onProgress, p.onConversion,
)));