From 5564e8b53357607c7098c011405a0e643ca7ac26 Mon Sep 17 00:00:00 2001 From: Casper Lamboo Date: Wed, 21 Feb 2018 11:54:25 +0100 Subject: [PATCH] add font loader --- package-lock.json | 19 +++++++++++++++++-- package.json | 1 + src/components/App.js | 13 +++++++++++-- src/components/D2Panel.js | 6 ------ src/components/D3Panel.js | 2 -- src/components/DoodlePreview.js | 3 --- src/utils/loaded.js | 17 +++++++++++++++++ 7 files changed, 46 insertions(+), 15 deletions(-) create mode 100644 src/utils/loaded.js diff --git a/package-lock.json b/package-lock.json index 3db3187..45f55d5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4077,8 +4077,7 @@ "events": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", - "dev": true + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=" }, "eventsource": { "version": "0.1.6", @@ -4450,6 +4449,17 @@ "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=", "dev": true }, + "font-loaded": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/font-loaded/-/font-loaded-1.0.0.tgz", + "integrity": "sha512-/qicwhzOAnob/EOguqhk12ccQL50BIkU+j+5mjauQCWKLek4WVag6TmsDGL9bZtgJRlOeLXb5Ul1wSgO/003EA==", + "requires": { + "events": "1.1.1", + "inherits": "2.0.3", + "lodash": "4.17.4", + "timeout-raf": "1.1.2" + } + }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", @@ -13191,6 +13201,11 @@ "integrity": "sha1-84sK6B03R9YoAB9B2vxlKs5nHAo=", "dev": true }, + "timeout-raf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/timeout-raf/-/timeout-raf-1.1.2.tgz", + "integrity": "sha512-YuDUcAz8kTuZIo5/SIFe2aKsiuNYFraXuRLhXjuqe6ljmVpRaqv5wXhjnXbY1hUdYEQ3Q94cJem/p6HTkBgwrQ==" + }, "timers-browserify": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.4.tgz", diff --git a/package.json b/package.json index f0375db..acefa47 100755 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ "blueimp-canvas-to-blob": "^3.14.0", "bowser": "^1.8.1", "fit-curve": "^0.1.6", + "font-loaded": "^1.0.0", "google-fonts-webpack-plugin": "^0.4.4", "imports-loader": "^0.7.1", "jss": "^9.4.0", diff --git a/src/components/App.js b/src/components/App.js index 357fa63..88fdb97 100644 --- a/src/components/App.js +++ b/src/components/App.js @@ -16,6 +16,7 @@ import JSONToSketchData from '../shape/JSONToSketchData.js'; import keycode from 'keycode'; import bowser from 'bowser'; import * as d2Tools from '../constants/d2Tools.js'; +import { isLoaded, load } from '../utils/loaded.js'; const styles = { container: { @@ -74,9 +75,15 @@ class App extends React.Component { selectedPen: PropTypes.string.isRequired }; + state = { + loaded: isLoaded() + }; + componentDidMount() { const { container } = this.refs; + if (!this.state.loaded) load.then(() => this.setState({ loaded: true })); + container.addEventListener('dragover', event => event.preventDefault()); container.addEventListener('drop', this.onDrop); window.addEventListener('keydown', this.onKeyDown); @@ -178,14 +185,16 @@ class App extends React.Component { render() { const { classes, undo, redo } = this.props; + const { loaded } = this.state; + return (
-
+ {loaded &&
-
+
}