videos work but with bugs
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 2.6 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.3 KiB |
+92
-44
@@ -37,50 +37,6 @@ const messages = defineMessages({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Additional processing of image data.
|
|
||||||
function handleImageData(el, data, attr) {
|
|
||||||
if (!data) {
|
|
||||||
attr.src = 'img/broken_image.png';
|
|
||||||
attr.style = {
|
|
||||||
width: IMAGE_THUMBNAIL_DIM + 'px',
|
|
||||||
height: IMAGE_THUMBNAIL_DIM + 'px',
|
|
||||||
};
|
|
||||||
return el;
|
|
||||||
}
|
|
||||||
|
|
||||||
attr.className = 'inline-image';
|
|
||||||
const dim = fitImageSize(data.width, data.height,
|
|
||||||
this.viewportWidth > 0 ? Math.min(this.viewportWidth - REM_SIZE * 6.5, REM_SIZE * 34.5) :
|
|
||||||
REM_SIZE * 34.5, REM_SIZE * 24, false) ||
|
|
||||||
{dstWidth: BROKEN_IMAGE_SIZE, dstHeight: BROKEN_IMAGE_SIZE};
|
|
||||||
attr.style = {
|
|
||||||
width: dim.dstWidth + 'px',
|
|
||||||
height: dim.dstHeight + 'px',
|
|
||||||
// Looks like a Chrome bug: broken image does not respect 'width' and 'height'.
|
|
||||||
minWidth: dim.dstWidth + 'px',
|
|
||||||
minHeight: dim.dstHeight + 'px'
|
|
||||||
};
|
|
||||||
if (!Drafty.isProcessing(data)) {
|
|
||||||
attr.src = this.authorizeURL(sanitizeUrlForMime(attr.src, 'image'));
|
|
||||||
attr.alt = data.name;
|
|
||||||
if (attr.src) {
|
|
||||||
if (Math.max(data.width || 0, data.height || 0) > IMAGE_THUMBNAIL_DIM) {
|
|
||||||
// Allow previews for large enough images.
|
|
||||||
attr.onClick = this.onImagePreview;
|
|
||||||
attr.className += ' image-clickable';
|
|
||||||
}
|
|
||||||
attr.loading = 'lazy';
|
|
||||||
} else {
|
|
||||||
attr.src = 'img/broken_image.png';
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// Use custom element instead of <img>.
|
|
||||||
el = UploadingImage;
|
|
||||||
}
|
|
||||||
|
|
||||||
return el;
|
|
||||||
}
|
|
||||||
|
|
||||||
// The main Drafty formatter: converts Drafty elements into React classes. 'this' is set by the caller.
|
// The main Drafty formatter: converts Drafty elements into React classes. 'this' is set by the caller.
|
||||||
// 'this' must contain:
|
// 'this' must contain:
|
||||||
// viewportWidth: this.props.viewportWidth;
|
// viewportWidth: this.props.viewportWidth;
|
||||||
@@ -175,6 +131,12 @@ export function fullFormatter(style, data, values, key, stack) {
|
|||||||
attr.duration = data.duration;
|
attr.duration = data.duration;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 'VD':
|
||||||
|
// Additional processing for videos.
|
||||||
|
el = handleVideoData.call(this, el, data, attr);
|
||||||
|
// Video element cannot have content.
|
||||||
|
values = null;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
if (!el) {
|
if (!el) {
|
||||||
// Unknown element.
|
// Unknown element.
|
||||||
@@ -195,6 +157,92 @@ export function fullFormatter(style, data, values, key, stack) {
|
|||||||
return React.createElement(el, attr, values);
|
return React.createElement(el, attr, values);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Additional processing of image data.
|
||||||
|
function handleImageData(el, data, attr) {
|
||||||
|
if (!data) {
|
||||||
|
attr.src = 'img/broken_image.png';
|
||||||
|
attr.style = {
|
||||||
|
width: IMAGE_THUMBNAIL_DIM + 'px',
|
||||||
|
height: IMAGE_THUMBNAIL_DIM + 'px',
|
||||||
|
};
|
||||||
|
return el;
|
||||||
|
}
|
||||||
|
|
||||||
|
attr.className = 'inline-image';
|
||||||
|
const dim = fitImageSize(data.width, data.height,
|
||||||
|
this.viewportWidth > 0 ? Math.min(this.viewportWidth - REM_SIZE * 6.5, REM_SIZE * 34.5) :
|
||||||
|
REM_SIZE * 34.5, REM_SIZE * 24, false) ||
|
||||||
|
{dstWidth: BROKEN_IMAGE_SIZE, dstHeight: BROKEN_IMAGE_SIZE};
|
||||||
|
attr.style = {
|
||||||
|
width: dim.dstWidth + 'px',
|
||||||
|
height: dim.dstHeight + 'px',
|
||||||
|
// Looks like a Chrome bug: broken image does not respect 'width' and 'height'.
|
||||||
|
minWidth: dim.dstWidth + 'px',
|
||||||
|
minHeight: dim.dstHeight + 'px'
|
||||||
|
};
|
||||||
|
if (!Drafty.isProcessing(data)) {
|
||||||
|
attr.src = this.authorizeURL(sanitizeUrlForMime(attr.src, 'image'));
|
||||||
|
attr.alt = data.name;
|
||||||
|
if (attr.src) {
|
||||||
|
if (Math.max(data.width || 0, data.height || 0) > IMAGE_THUMBNAIL_DIM) {
|
||||||
|
// Allow previews for large enough images.
|
||||||
|
attr.onClick = this.onImagePreview;
|
||||||
|
attr.className += ' image-clickable';
|
||||||
|
}
|
||||||
|
attr.loading = 'lazy';
|
||||||
|
} else {
|
||||||
|
attr.src = 'img/broken_image.png';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Use custom element instead of <img>.
|
||||||
|
el = UploadingImage;
|
||||||
|
}
|
||||||
|
|
||||||
|
return el;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Additional processing of image data.
|
||||||
|
function handleVideoData(el, data, attr) {
|
||||||
|
if (!data) {
|
||||||
|
attr.src = 'img/broken_video.png';
|
||||||
|
attr.style = {
|
||||||
|
width: IMAGE_THUMBNAIL_DIM + 'px',
|
||||||
|
height: IMAGE_THUMBNAIL_DIM + 'px',
|
||||||
|
};
|
||||||
|
return el;
|
||||||
|
}
|
||||||
|
|
||||||
|
attr.className = 'inline-image';
|
||||||
|
const dim = fitImageSize(data.width, data.height,
|
||||||
|
this.viewportWidth > 0 ? Math.min(this.viewportWidth - REM_SIZE * 6.5, REM_SIZE * 34.5) :
|
||||||
|
REM_SIZE * 34.5, REM_SIZE * 24, false) ||
|
||||||
|
{dstWidth: BROKEN_IMAGE_SIZE, dstHeight: BROKEN_IMAGE_SIZE};
|
||||||
|
attr.style = {
|
||||||
|
width: dim.dstWidth + 'px',
|
||||||
|
height: dim.dstHeight + 'px',
|
||||||
|
// Looks like a Chrome bug: broken image does not respect 'width' and 'height'.
|
||||||
|
minWidth: dim.dstWidth + 'px',
|
||||||
|
minHeight: dim.dstHeight + 'px'
|
||||||
|
};
|
||||||
|
if (!Drafty.isProcessing(data)) {
|
||||||
|
attr.src = this.authorizeURL(sanitizeUrlForMime(attr.src, 'video'));
|
||||||
|
attr.alt = data.name;
|
||||||
|
if (attr.src) {
|
||||||
|
attr.onClick = this.onImagePreview;
|
||||||
|
attr.className += ' image-clickable';
|
||||||
|
attr.loading = 'lazy';
|
||||||
|
attr.controls = 'controls';
|
||||||
|
} else {
|
||||||
|
attr.src = 'img/broken_video.png';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// Use custom element instead of <img>.
|
||||||
|
el = UploadingImage;
|
||||||
|
}
|
||||||
|
|
||||||
|
return el;
|
||||||
|
}
|
||||||
|
|
||||||
// Converts Drafty object into a one-line preview. 'this' is set by the caller.
|
// Converts Drafty object into a one-line preview. 'this' is set by the caller.
|
||||||
// 'this' must contain:
|
// 'this' must contain:
|
||||||
// formatMessage: this.props.intl.formatMessage
|
// formatMessage: this.props.intl.formatMessage
|
||||||
|
|||||||
@@ -937,7 +937,6 @@ class MessagesView extends React.Component {
|
|||||||
MAX_INBAND_ATTACHMENT_SIZE) * 0.75 - 1024) | 0;
|
MAX_INBAND_ATTACHMENT_SIZE) * 0.75 - 1024) | 0;
|
||||||
|
|
||||||
if (videoBlob.size > maxInbandAttachmentSize) {
|
if (videoBlob.size > maxInbandAttachmentSize) {
|
||||||
console.log("1");
|
|
||||||
// Too large to send inband - uploading out of band and sending as a link.
|
// Too large to send inband - uploading out of band and sending as a link.
|
||||||
const uploader = this.props.tinode.getLargeFileHelper();
|
const uploader = this.props.tinode.getLargeFileHelper();
|
||||||
if (!uploader) {
|
if (!uploader) {
|
||||||
@@ -945,13 +944,11 @@ class MessagesView extends React.Component {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const uploadCompletionPromise = uploader.upload(videoBlob);
|
const uploadCompletionPromise = uploader.upload(videoBlob);
|
||||||
console.log("2");
|
|
||||||
// Make small preview to show while uploading.
|
// Make small preview to show while uploading.
|
||||||
imageScaled(previewBlob, IMAGE_PREVIEW_DIM, IMAGE_PREVIEW_DIM, -1, false)
|
imageScaled(previewBlob, IMAGE_PREVIEW_DIM, IMAGE_PREVIEW_DIM, -1, false)
|
||||||
// Convert tiny image into base64 for serialization and previewing.
|
// Convert tiny image into base64 for serialization and previewing.
|
||||||
.then(scaled => blobToBase64(scaled.blob))
|
.then(scaled => blobToBase64(scaled.blob))
|
||||||
.then(b64 => {
|
.then(b64 => {
|
||||||
console.log("3");
|
|
||||||
let msg = Drafty.insertVideo(null, 0, {
|
let msg = Drafty.insertVideo(null, 0, {
|
||||||
mime: mime,
|
mime: mime,
|
||||||
_tempPreview: b64.bits, // This preview will not be serialized.
|
_tempPreview: b64.bits, // This preview will not be serialized.
|
||||||
@@ -962,21 +959,17 @@ class MessagesView extends React.Component {
|
|||||||
size: videoBlob.size,
|
size: videoBlob.size,
|
||||||
urlPromise: uploadCompletionPromise
|
urlPromise: uploadCompletionPromise
|
||||||
});
|
});
|
||||||
console.log("4");
|
|
||||||
if (caption) {
|
if (caption) {
|
||||||
msg = Drafty.appendLineBreak(msg);
|
msg = Drafty.appendLineBreak(msg);
|
||||||
msg = Drafty.append(msg, Drafty.parse(caption));
|
msg = Drafty.append(msg, Drafty.parse(caption));
|
||||||
}
|
}
|
||||||
// Pass data and the uploader to the TinodeWeb.
|
// Pass data and the uploader to the TinodeWeb.
|
||||||
this.sendMessage(msg, uploadCompletionPromise, uploader);
|
this.sendMessage(msg, uploadCompletionPromise, uploader);
|
||||||
console.log("5");
|
|
||||||
})
|
})
|
||||||
.catch(err => /* this.props.onError(err, 'err') */ console.log(err));
|
.catch(err => /* this.props.onError(err, 'err') */ console.log(err));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("6");
|
|
||||||
|
|
||||||
// Send the video inband if it's small enough.
|
// Send the video inband if it's small enough.
|
||||||
blobToBase64(videoBlob)
|
blobToBase64(videoBlob)
|
||||||
.then(b64 => {
|
.then(b64 => {
|
||||||
|
|||||||
+77
-43
@@ -2614,43 +2614,6 @@ const messages = (0,react_intl__WEBPACK_IMPORTED_MODULE_1__.defineMessages)({
|
|||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
function handleImageData(el, data, attr) {
|
|
||||||
if (!data) {
|
|
||||||
attr.src = 'img/broken_image.png';
|
|
||||||
attr.style = {
|
|
||||||
width: _config_js__WEBPACK_IMPORTED_MODULE_8__.IMAGE_THUMBNAIL_DIM + 'px',
|
|
||||||
height: _config_js__WEBPACK_IMPORTED_MODULE_8__.IMAGE_THUMBNAIL_DIM + 'px'
|
|
||||||
};
|
|
||||||
return el;
|
|
||||||
}
|
|
||||||
attr.className = 'inline-image';
|
|
||||||
const dim = (0,_blob_helpers_js__WEBPACK_IMPORTED_MODULE_9__.fitImageSize)(data.width, data.height, this.viewportWidth > 0 ? Math.min(this.viewportWidth - _config_js__WEBPACK_IMPORTED_MODULE_8__.REM_SIZE * 6.5, _config_js__WEBPACK_IMPORTED_MODULE_8__.REM_SIZE * 34.5) : _config_js__WEBPACK_IMPORTED_MODULE_8__.REM_SIZE * 34.5, _config_js__WEBPACK_IMPORTED_MODULE_8__.REM_SIZE * 24, false) || {
|
|
||||||
dstWidth: _config_js__WEBPACK_IMPORTED_MODULE_8__.BROKEN_IMAGE_SIZE,
|
|
||||||
dstHeight: _config_js__WEBPACK_IMPORTED_MODULE_8__.BROKEN_IMAGE_SIZE
|
|
||||||
};
|
|
||||||
attr.style = {
|
|
||||||
width: dim.dstWidth + 'px',
|
|
||||||
height: dim.dstHeight + 'px',
|
|
||||||
minWidth: dim.dstWidth + 'px',
|
|
||||||
minHeight: dim.dstHeight + 'px'
|
|
||||||
};
|
|
||||||
if (!tinode_sdk__WEBPACK_IMPORTED_MODULE_2__.Drafty.isProcessing(data)) {
|
|
||||||
attr.src = this.authorizeURL((0,_utils_js__WEBPACK_IMPORTED_MODULE_11__.sanitizeUrlForMime)(attr.src, 'image'));
|
|
||||||
attr.alt = data.name;
|
|
||||||
if (attr.src) {
|
|
||||||
if (Math.max(data.width || 0, data.height || 0) > _config_js__WEBPACK_IMPORTED_MODULE_8__.IMAGE_THUMBNAIL_DIM) {
|
|
||||||
attr.onClick = this.onImagePreview;
|
|
||||||
attr.className += ' image-clickable';
|
|
||||||
}
|
|
||||||
attr.loading = 'lazy';
|
|
||||||
} else {
|
|
||||||
attr.src = 'img/broken_image.png';
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
el = _widgets_uploading_image_jsx__WEBPACK_IMPORTED_MODULE_7__["default"];
|
|
||||||
}
|
|
||||||
return el;
|
|
||||||
}
|
|
||||||
function fullFormatter(style, data, values, key, stack) {
|
function fullFormatter(style, data, values, key, stack) {
|
||||||
if (stack.includes('QQ')) {
|
if (stack.includes('QQ')) {
|
||||||
return quoteFormatter.call(this, style, data, values, key);
|
return quoteFormatter.call(this, style, data, values, key);
|
||||||
@@ -2722,6 +2685,10 @@ function fullFormatter(style, data, values, key, stack) {
|
|||||||
attr.duration = data.duration;
|
attr.duration = data.duration;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case 'VD':
|
||||||
|
el = handleVideoData.call(this, el, data, attr);
|
||||||
|
values = null;
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
if (!el) {
|
if (!el) {
|
||||||
el = (react__WEBPACK_IMPORTED_MODULE_0___default().Fragment);
|
el = (react__WEBPACK_IMPORTED_MODULE_0___default().Fragment);
|
||||||
@@ -2747,6 +2714,79 @@ function fullFormatter(style, data, values, key, stack) {
|
|||||||
}
|
}
|
||||||
return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(el, attr, values);
|
return react__WEBPACK_IMPORTED_MODULE_0___default().createElement(el, attr, values);
|
||||||
}
|
}
|
||||||
|
function handleImageData(el, data, attr) {
|
||||||
|
if (!data) {
|
||||||
|
attr.src = 'img/broken_image.png';
|
||||||
|
attr.style = {
|
||||||
|
width: _config_js__WEBPACK_IMPORTED_MODULE_8__.IMAGE_THUMBNAIL_DIM + 'px',
|
||||||
|
height: _config_js__WEBPACK_IMPORTED_MODULE_8__.IMAGE_THUMBNAIL_DIM + 'px'
|
||||||
|
};
|
||||||
|
return el;
|
||||||
|
}
|
||||||
|
attr.className = 'inline-image';
|
||||||
|
const dim = (0,_blob_helpers_js__WEBPACK_IMPORTED_MODULE_9__.fitImageSize)(data.width, data.height, this.viewportWidth > 0 ? Math.min(this.viewportWidth - _config_js__WEBPACK_IMPORTED_MODULE_8__.REM_SIZE * 6.5, _config_js__WEBPACK_IMPORTED_MODULE_8__.REM_SIZE * 34.5) : _config_js__WEBPACK_IMPORTED_MODULE_8__.REM_SIZE * 34.5, _config_js__WEBPACK_IMPORTED_MODULE_8__.REM_SIZE * 24, false) || {
|
||||||
|
dstWidth: _config_js__WEBPACK_IMPORTED_MODULE_8__.BROKEN_IMAGE_SIZE,
|
||||||
|
dstHeight: _config_js__WEBPACK_IMPORTED_MODULE_8__.BROKEN_IMAGE_SIZE
|
||||||
|
};
|
||||||
|
attr.style = {
|
||||||
|
width: dim.dstWidth + 'px',
|
||||||
|
height: dim.dstHeight + 'px',
|
||||||
|
minWidth: dim.dstWidth + 'px',
|
||||||
|
minHeight: dim.dstHeight + 'px'
|
||||||
|
};
|
||||||
|
if (!tinode_sdk__WEBPACK_IMPORTED_MODULE_2__.Drafty.isProcessing(data)) {
|
||||||
|
attr.src = this.authorizeURL((0,_utils_js__WEBPACK_IMPORTED_MODULE_11__.sanitizeUrlForMime)(attr.src, 'image'));
|
||||||
|
attr.alt = data.name;
|
||||||
|
if (attr.src) {
|
||||||
|
if (Math.max(data.width || 0, data.height || 0) > _config_js__WEBPACK_IMPORTED_MODULE_8__.IMAGE_THUMBNAIL_DIM) {
|
||||||
|
attr.onClick = this.onImagePreview;
|
||||||
|
attr.className += ' image-clickable';
|
||||||
|
}
|
||||||
|
attr.loading = 'lazy';
|
||||||
|
} else {
|
||||||
|
attr.src = 'img/broken_image.png';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
el = _widgets_uploading_image_jsx__WEBPACK_IMPORTED_MODULE_7__["default"];
|
||||||
|
}
|
||||||
|
return el;
|
||||||
|
}
|
||||||
|
function handleVideoData(el, data, attr) {
|
||||||
|
if (!data) {
|
||||||
|
attr.src = 'img/broken_video.png';
|
||||||
|
attr.style = {
|
||||||
|
width: _config_js__WEBPACK_IMPORTED_MODULE_8__.IMAGE_THUMBNAIL_DIM + 'px',
|
||||||
|
height: _config_js__WEBPACK_IMPORTED_MODULE_8__.IMAGE_THUMBNAIL_DIM + 'px'
|
||||||
|
};
|
||||||
|
return el;
|
||||||
|
}
|
||||||
|
attr.className = 'inline-image';
|
||||||
|
const dim = (0,_blob_helpers_js__WEBPACK_IMPORTED_MODULE_9__.fitImageSize)(data.width, data.height, this.viewportWidth > 0 ? Math.min(this.viewportWidth - _config_js__WEBPACK_IMPORTED_MODULE_8__.REM_SIZE * 6.5, _config_js__WEBPACK_IMPORTED_MODULE_8__.REM_SIZE * 34.5) : _config_js__WEBPACK_IMPORTED_MODULE_8__.REM_SIZE * 34.5, _config_js__WEBPACK_IMPORTED_MODULE_8__.REM_SIZE * 24, false) || {
|
||||||
|
dstWidth: _config_js__WEBPACK_IMPORTED_MODULE_8__.BROKEN_IMAGE_SIZE,
|
||||||
|
dstHeight: _config_js__WEBPACK_IMPORTED_MODULE_8__.BROKEN_IMAGE_SIZE
|
||||||
|
};
|
||||||
|
attr.style = {
|
||||||
|
width: dim.dstWidth + 'px',
|
||||||
|
height: dim.dstHeight + 'px',
|
||||||
|
minWidth: dim.dstWidth + 'px',
|
||||||
|
minHeight: dim.dstHeight + 'px'
|
||||||
|
};
|
||||||
|
if (!tinode_sdk__WEBPACK_IMPORTED_MODULE_2__.Drafty.isProcessing(data)) {
|
||||||
|
attr.src = this.authorizeURL((0,_utils_js__WEBPACK_IMPORTED_MODULE_11__.sanitizeUrlForMime)(attr.src, 'video'));
|
||||||
|
attr.alt = data.name;
|
||||||
|
if (attr.src) {
|
||||||
|
attr.onClick = this.onImagePreview;
|
||||||
|
attr.className += ' image-clickable';
|
||||||
|
attr.loading = 'lazy';
|
||||||
|
attr.controls = 'controls';
|
||||||
|
} else {
|
||||||
|
attr.src = 'img/broken_video.png';
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
el = _widgets_uploading_image_jsx__WEBPACK_IMPORTED_MODULE_7__["default"];
|
||||||
|
}
|
||||||
|
return el;
|
||||||
|
}
|
||||||
function previewFormatter(style, data, values, key) {
|
function previewFormatter(style, data, values, key) {
|
||||||
if (!style) {
|
if (!style) {
|
||||||
return values;
|
return values;
|
||||||
@@ -6153,16 +6193,13 @@ class MessagesView extends (react__WEBPACK_IMPORTED_MODULE_0___default().Compone
|
|||||||
const duration = params.duration;
|
const duration = params.duration;
|
||||||
const maxInbandAttachmentSize = this.props.tinode.getServerParam('maxMessageSize', _config_js__WEBPACK_IMPORTED_MODULE_17__.MAX_INBAND_ATTACHMENT_SIZE) * 0.75 - 1024 | 0;
|
const maxInbandAttachmentSize = this.props.tinode.getServerParam('maxMessageSize', _config_js__WEBPACK_IMPORTED_MODULE_17__.MAX_INBAND_ATTACHMENT_SIZE) * 0.75 - 1024 | 0;
|
||||||
if (videoBlob.size > maxInbandAttachmentSize) {
|
if (videoBlob.size > maxInbandAttachmentSize) {
|
||||||
console.log("1");
|
|
||||||
const uploader = this.props.tinode.getLargeFileHelper();
|
const uploader = this.props.tinode.getLargeFileHelper();
|
||||||
if (!uploader) {
|
if (!uploader) {
|
||||||
this.props.onError(this.props.intl.formatMessage(messages.cannot_initiate_upload));
|
this.props.onError(this.props.intl.formatMessage(messages.cannot_initiate_upload));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const uploadCompletionPromise = uploader.upload(videoBlob);
|
const uploadCompletionPromise = uploader.upload(videoBlob);
|
||||||
console.log("2");
|
|
||||||
(0,_lib_blob_helpers_js__WEBPACK_IMPORTED_MODULE_19__.imageScaled)(previewBlob, _config_js__WEBPACK_IMPORTED_MODULE_17__.IMAGE_PREVIEW_DIM, _config_js__WEBPACK_IMPORTED_MODULE_17__.IMAGE_PREVIEW_DIM, -1, false).then(scaled => (0,_lib_blob_helpers_js__WEBPACK_IMPORTED_MODULE_19__.blobToBase64)(scaled.blob)).then(b64 => {
|
(0,_lib_blob_helpers_js__WEBPACK_IMPORTED_MODULE_19__.imageScaled)(previewBlob, _config_js__WEBPACK_IMPORTED_MODULE_17__.IMAGE_PREVIEW_DIM, _config_js__WEBPACK_IMPORTED_MODULE_17__.IMAGE_PREVIEW_DIM, -1, false).then(scaled => (0,_lib_blob_helpers_js__WEBPACK_IMPORTED_MODULE_19__.blobToBase64)(scaled.blob)).then(b64 => {
|
||||||
console.log("3");
|
|
||||||
let msg = tinode_sdk__WEBPACK_IMPORTED_MODULE_2__.Drafty.insertVideo(null, 0, {
|
let msg = tinode_sdk__WEBPACK_IMPORTED_MODULE_2__.Drafty.insertVideo(null, 0, {
|
||||||
mime: mime,
|
mime: mime,
|
||||||
_tempPreview: b64.bits,
|
_tempPreview: b64.bits,
|
||||||
@@ -6173,17 +6210,14 @@ class MessagesView extends (react__WEBPACK_IMPORTED_MODULE_0___default().Compone
|
|||||||
size: videoBlob.size,
|
size: videoBlob.size,
|
||||||
urlPromise: uploadCompletionPromise
|
urlPromise: uploadCompletionPromise
|
||||||
});
|
});
|
||||||
console.log("4");
|
|
||||||
if (caption) {
|
if (caption) {
|
||||||
msg = tinode_sdk__WEBPACK_IMPORTED_MODULE_2__.Drafty.appendLineBreak(msg);
|
msg = tinode_sdk__WEBPACK_IMPORTED_MODULE_2__.Drafty.appendLineBreak(msg);
|
||||||
msg = tinode_sdk__WEBPACK_IMPORTED_MODULE_2__.Drafty.append(msg, tinode_sdk__WEBPACK_IMPORTED_MODULE_2__.Drafty.parse(caption));
|
msg = tinode_sdk__WEBPACK_IMPORTED_MODULE_2__.Drafty.append(msg, tinode_sdk__WEBPACK_IMPORTED_MODULE_2__.Drafty.parse(caption));
|
||||||
}
|
}
|
||||||
this.sendMessage(msg, uploadCompletionPromise, uploader);
|
this.sendMessage(msg, uploadCompletionPromise, uploader);
|
||||||
console.log("5");
|
|
||||||
}).catch(err => console.log(err));
|
}).catch(err => console.log(err));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
console.log("6");
|
|
||||||
(0,_lib_blob_helpers_js__WEBPACK_IMPORTED_MODULE_19__.blobToBase64)(videoBlob).then(b64 => {
|
(0,_lib_blob_helpers_js__WEBPACK_IMPORTED_MODULE_19__.blobToBase64)(videoBlob).then(b64 => {
|
||||||
let msg = tinode_sdk__WEBPACK_IMPORTED_MODULE_2__.Drafty.insertVideo(null, 0, {
|
let msg = tinode_sdk__WEBPACK_IMPORTED_MODULE_2__.Drafty.insertVideo(null, 0, {
|
||||||
mime: b64.mime,
|
mime: b64.mime,
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user