Skip to content

Commit

Permalink
Fix Safari detection in PDF previewing (#12737)
Browse files Browse the repository at this point in the history
  • Loading branch information
tassoevan authored and rodrigok committed Nov 27, 2018
1 parent 9eabcef commit d33ffa2
Showing 1 changed file with 22 additions and 5 deletions.
27 changes: 22 additions & 5 deletions packages/rocketchat-ui-message/client/message.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,21 +9,34 @@ import moment from 'moment';
import { DateFormat } from 'meteor/rocketchat:lib';

async function renderPdfToCanvas(canvasId, pdfLink) {
const isSafari = /constructor/i.test(window.HTMLElement) ||
((p) => p.toString() === '[object SafariRemoteNotification]')(!window.safari ||
(typeof window.safari !== 'undefined' && window.safari.pushNotification));

if (navigator.userAgent.toLowerCase().indexOf('safari/') > -1) {
if (isSafari) {
const [, version] = /Version\/([0-9]+)/.exec(navigator.userAgent) || [null, 0];
if (version <= 12) {
return;
}
}

if (!pdfLink || !/\.pdf$/i.test(pdfLink)) { return; }
if (!pdfLink || !/\.pdf$/i.test(pdfLink)) {
return;
}

const canvas = document.getElementById(canvasId);
if (!canvas) { return; }
if (!canvas) {
return;
}

const pdfjsLib = await import('pdfjs-dist');
pdfjsLib.GlobalWorkerOptions.workerSrc = `${ Meteor.absoluteUrl() }node_modules/pdfjs-dist/build/pdf.worker.js`;

const loader = document.getElementById('js-loading-${canvasId}');
if (loader) { loader.style.display = 'block'; }
if (loader) {
loader.style.display = 'block';
}

const pdf = await pdfjsLib.getDocument(pdfLink);
const page = await pdf.getPage(1);
const scale = 0.5;
Expand All @@ -35,7 +48,11 @@ async function renderPdfToCanvas(canvasId, pdfLink) {
canvasContext: context,
viewport,
});
if (loader) { loader.style.display = 'none'; }

if (loader) {
loader.style.display = 'none';
}

canvas.style.maxWidth = '-webkit-fill-available';
canvas.style.maxWidth = '-moz-available';
canvas.style.display = 'block';
Expand Down

0 comments on commit d33ffa2

Please sign in to comment.