fix race condition

pull/1/head
ansuz 8 years ago
parent bf9c2b0b84
commit c3ba7cd792

@ -1289,41 +1289,11 @@ define([
return isEmoji(emojis[0])? emojis[0]: str[0]; return isEmoji(emojis[0])? emojis[0]: str[0];
}; };
var cropImageToSquare = function (container, cb) {
var $container = $(container);
var $image = $(container).find('img');
var onLoad = function () {
var img = new Image();
img.src = $image.attr('src');
img.onload = function () {
if (img.width > img.height) {
$image.css('max-height', '100%');
$container.css('flex-direction', 'column');
if (cb) { cb($image); }
return;
}
$image.css('max-width', '100%');
$container.css('flex-direction', 'row');
if (cb) { cb($container); }
};
};
if ($image[0].complete) { return void onLoad(); }
$image.on('load', onLoad);
};
$(window.document).on('decryption', function (e) { $(window.document).on('decryption', function (e) {
var decrypted = e.originalEvent; var decrypted = e.originalEvent;
if (decrypted.callback) { if (decrypted.callback) {
var cb = decrypted.callback; var cb = decrypted.callback;
cb(function (mediaObject) { cb(function (mediaObject) {
if (mediaObject.type === 'image') {
var $parent = $(mediaObject.element).parent();
if ($parent.hasClass('avatar')) {
return cropImageToSquare(mediaObject.element);
}
}
if (mediaObject.type !== 'download') { return; } if (mediaObject.type !== 'download') { return; }
var root = mediaObject.rootElement; var root = mediaObject.rootElement;
if (!root) { return; } if (!root) { return; }
@ -1390,7 +1360,6 @@ define([
var $img = $('<media-tag>').appendTo($container); var $img = $('<media-tag>').appendTo($container);
$img.attr('src', src); $img.attr('src', src);
$img.attr('data-crypto-key', 'cryptpad:' + cryptKey); $img.attr('data-crypto-key', 'cryptpad:' + cryptKey);
MediaTag($img[0]);
var observer = new MutationObserver(function(mutations) { var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) { mutations.forEach(function(mutation) {
if (mutation.type === 'childList' && mutation.addedNodes.length) { if (mutation.type === 'childList' && mutation.addedNodes.length) {
@ -1402,7 +1371,6 @@ define([
var $image = $img.find('img'); var $image = $img.find('img');
var onLoad = function () { var onLoad = function () {
var img = new Image(); var img = new Image();
img.src = $image.attr('src');
img.onload = function () { img.onload = function () {
var w = img.width; var w = img.width;
var h = img.height; var h = img.height;
@ -1416,6 +1384,7 @@ define([
$img.css('flex-direction', 'row'); $img.css('flex-direction', 'row');
if (cb) { cb($img); } if (cb) { cb($img); }
}; };
img.src = $image.attr('src');
}; };
if ($image[0].complete) { onLoad(); } if ($image[0].complete) { onLoad(); }
$image.on('load', onLoad); $image.on('load', onLoad);
@ -1427,6 +1396,7 @@ define([
childList: true, childList: true,
characterData: false characterData: false
}); });
MediaTag($img[0]);
}); });
} }
}; };

Loading…
Cancel
Save