From 887a77b28d475f4ab24fa5953e18ac3a4612b3c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Espino?= Date: Mon, 29 Nov 2021 23:57:25 +0100 Subject: [PATCH] Lazy loading pdf.js library (#9371) * Lazy loading pdf.js library * Removing pdfjs lib from plugins/export Co-authored-by: Mattermod --- components/pdf_preview.jsx | 6 ++++-- plugins/export.js | 1 - root.jsx | 4 ---- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/components/pdf_preview.jsx b/components/pdf_preview.jsx index 22c8fc067035..91e9c5da9a65 100644 --- a/components/pdf_preview.jsx +++ b/components/pdf_preview.jsx @@ -3,7 +3,6 @@ import PropTypes from 'prop-types'; import React from 'react'; -import PDFJS from 'pdfjs-dist'; import debounce from 'lodash/debounce'; import {getFileDownloadUrl} from 'mattermost-redux/utils/file_utils'; @@ -147,7 +146,10 @@ export default class PDFPreview extends React.PureComponent { } getPdfDocument = () => { - PDFJS.getDocument(this.props.fileUrl).then(this.onDocumentLoad).catch(this.onDocumentLoadError); + import('pdfjs-dist').then((PDFJS) => { + PDFJS.disableWorker = true; + PDFJS.getDocument(this.props.fileUrl).then(this.onDocumentLoad).catch(this.onDocumentLoadError); + }); } onDocumentLoad = (pdf) => { diff --git a/plugins/export.js b/plugins/export.js index e5b470448f57..db130896bce6 100644 --- a/plugins/export.js +++ b/plugins/export.js @@ -29,7 +29,6 @@ window.ReactRedux = require('react-redux'); window.ReactBootstrap = require('react-bootstrap'); window.ReactRouterDom = require('react-router-dom'); window.PropTypes = require('prop-types'); -window.PDFJS = require('pdfjs-dist'); window.Luxon = require('luxon'); // Functions exposed on window for plugins to use. diff --git a/root.jsx b/root.jsx index 675ba1489e2a..807a8c7d8be6 100644 --- a/root.jsx +++ b/root.jsx @@ -6,8 +6,6 @@ import './entry.js'; import React from 'react'; import ReactDOM from 'react-dom'; -import PDFJS from 'pdfjs-dist'; - import {logError} from 'mattermost-redux/actions/errors'; // Import our styles @@ -20,8 +18,6 @@ import {isDevMode, setCSRFFromCookie} from 'utils/utils'; import store from 'stores/redux_store.jsx'; import App from 'components/app'; -PDFJS.disableWorker = true; - // This is for anything that needs to be done for ALL react components. // This runs before we start to render anything. function preRenderSetup(callwhendone) {