Browse Source

Fix thumbhash saving and handling

Prevent bad thumbhash to crash the Chat JS
pull/1326/head
Timothée Jaussoin 1 year ago
parent
commit
2a023d7219
  1. 17
      app/Message.php
  2. 6
      app/widgets/Chat/chat.js

17
app/Message.php

@ -34,13 +34,18 @@ class Message extends Model
public function save(array $options = [])
{
try {
parent::save($options);
$saved = parent::save($options);
if ($this->messageFiles != null && $this->messageFiles->isNotEmpty()) {
MessageFile::where('message_mid')->delete();
if ($saved && $this->messageFiles != null && $this->messageFiles->isNotEmpty()) {
$mid = $this->mid;
// Todo optimize
$this->messageFiles->each(function ($file) {
if ($mid == null) {
$mid = DB::getPdo()->lastInsertId();
MessageFile::where('message_mid', $mid)->delete();
}
$this->messageFiles->each(function ($file) use ($mid) {
$file->message_mid = $mid;
$file->save();
});
}
@ -499,7 +504,7 @@ class Message extends Model
$messageFile->thumbnail_width = (int)$thumbnailAttributes->width;
$messageFile->thumbnail_height = (int)$thumbnailAttributes->height;
$messageFile->thumbnail_type = (string)$thumbnailAttributes->{'media-type'};
$messageFile->thumbnail_url = substr((string)$thumbnailAttributes->uri, 0, 21);
$messageFile->thumbnail_url = substr((string)$thumbnailAttributes->uri, 21);
}
}

6
app/widgets/Chat/chat.js

@ -1339,7 +1339,11 @@ var Chat = {
}
if (file.preview.thumbnail_type = 'image/thumbhash' && file.preview.thumbnail_url) {
div.style.background = `center / cover url(${thumbHashToDataURL(MovimUtils.base64ToBinary(file.preview.thumbnail_url))})`;
try {
div.style.background = `center / cover url(${thumbHashToDataURL(MovimUtils.base64ToBinary(file.preview.thumbnail_url))})`;
} catch (error) {
console.log('Cannot handle thumbhash hash');
}
}
div.appendChild(img);

Loading…
Cancel
Save