From 8310b4aa4c884638dd66d0835a22e62ed0c0fa8b Mon Sep 17 00:00:00 2001 From: Kushagra Gour Date: Mon, 10 Dec 2018 19:18:39 +0530 Subject: [PATCH] make monaco stylesheet insert just once --- src/components/CodeEditor.jsx | 4 +++- src/utils.js | 7 +++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/components/CodeEditor.jsx b/src/components/CodeEditor.jsx index 6549806..a30174b 100644 --- a/src/components/CodeEditor.jsx +++ b/src/components/CodeEditor.jsx @@ -181,7 +181,9 @@ export default class CodeEditor extends Component { async loadDeps() { if (this.props.type === 'monaco' && !isMonacoDepsLoaded) { - loadCss('lib/monaco/monaco.css'); + if (!$('#monaco-css')) { + loadCss({ url: 'lib/monaco/monaco.css', id: 'monaco-css' }); + } return import(/* webpackChunkName: "monaco" */ '../lib/monaco/monaco.bundle.js').then( () => { isMonacoDepsLoaded = true; diff --git a/src/utils.js b/src/utils.js index 1eb1fc9..6399456 100644 --- a/src/utils.js +++ b/src/utils.js @@ -305,11 +305,14 @@ export function loadJS(src) { return d.promise; } -export function loadCss(src) { +export function loadCss({ url, id }) { var d = deferred(); var style = window.document.createElement('link'); - style.setAttribute('href', src); + style.setAttribute('href', url); style.setAttribute('rel', 'stylesheet'); + if (id) { + style.setAttribute('id', id); + } document.head.appendChild(style); style.onload = function() { d.resolve();