Skip to content

Commit d8a2e4c

Browse files
committed
#9 moved ckeditor loading to app.js to include in test spec
1 parent a4971bb commit d8a2e4c

File tree

6 files changed

+41
-27
lines changed

6 files changed

+41
-27
lines changed

package-lock.json

+6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@
8686
"react-test-renderer": "^16.0.0",
8787
"react-widgets": "^3.5.0",
8888
"rimraf": "^2.6.2",
89+
"scriptjs": "^2.5.8",
8990
"spectrum-colorpicker": "^1.8.0",
9091
"string-replace-loader": "^1.3.0",
9192
"style-loader": "^0.13.0",

src/components/app.js

+2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import Slides from './slides'
1010
import Overview from './overview'
1111
import DeckStore from 'stores/deck'
1212
import _ from 'lodash'
13+
import $script from 'scriptjs'
1314
let key = require('mousetrap')
1415
let App = class extends React.Component {
1516
constructor(props) {
@@ -31,6 +32,7 @@ let App = class extends React.Component {
3132
componentWillMount() {
3233
super.componentWillMount && super.componentWillMount()
3334
this.setDocTitle(this.state.deck._fn)
35+
$script('//cdn.ckeditor.com/4.5.7/full-all/ckeditor.js','ckeditor')
3436
}
3537
componentDidMount() {
3638
super.componentDidMount && super.componentDidMount()

src/components/widgets/primitives/textBox.js

+28-25
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
'use strict'
22
import React from 'react'
33
import lang from 'i18n/lang'
4+
import $script from 'scriptjs'
45
let TextBox = class extends React.Component {
56
constructor(props) {
67
super(props)
@@ -17,32 +18,34 @@ let TextBox = class extends React.Component {
1718
if (this.editor) {
1819
return
1920
}
20-
let editor = (this.editor = window.CKEDITOR.inline(
21-
this.refs.editableContent,
22-
{
23-
extraPlugins: 'sourcedialog'
24-
}
25-
))
26-
editor.setData(this.props.component.text)
27-
editor.on('loaded', function() {
28-
let editable = editor.editable(this.element)
29-
editable.hasFocus = true
21+
$script.ready('ckeditor', () => {
22+
let editor = (this.editor = window.CKEDITOR.inline(
23+
this.refs.editableContent,
24+
{
25+
extraPlugins: 'sourcedialog'
26+
}
27+
))
28+
editor.setData(this.props.component.text)
29+
editor.on('loaded', function() {
30+
let editable = editor.editable(this.element)
31+
editable.hasFocus = true
32+
})
33+
editor.on('blur', function() {
34+
setTimeout(() => {
35+
this.destroy()
36+
delete reactEle.editor
37+
}, 0)
38+
if (this.getData() !== reactEle.props.component.text) {
39+
reactEle.props.onSelectedWidgetUpdated &&
40+
reactEle.props.onSelectedWidgetUpdated(reactEle.props.idx, {
41+
text: this.getData()
42+
})
43+
}
44+
reactEle.setState({ editable: false })
45+
reactEle.props.setDraggable(true)
46+
})
47+
ev.stopPropagation && ev.stopPropagation()
3048
})
31-
editor.on('blur', function() {
32-
setTimeout(() => {
33-
this.destroy()
34-
delete reactEle.editor
35-
}, 0)
36-
if (this.getData() !== reactEle.props.component.text) {
37-
reactEle.props.onSelectedWidgetUpdated &&
38-
reactEle.props.onSelectedWidgetUpdated(reactEle.props.idx, {
39-
text: this.getData()
40-
})
41-
}
42-
reactEle.setState({ editable: false })
43-
reactEle.props.setDraggable(true)
44-
})
45-
ev.stopPropagation && ev.stopPropagation()
4649
}
4750
render() {
4851
return (

src/index.html

-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
77
<meta name="description" content="">
88
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
9-
<script src="//cdn.ckeditor.com/4.5.7/full-all/ckeditor.js"></script>
109
</head>
1110
<body>
1211
<div id="app"/>

test/components/AppTest.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,10 @@ describe('MainComponent', () => {
2727
describe('<Main />', () => {
2828
it.only('should have its component name as default className', () => {
2929
debugger
30-
const wrapper = mount(<Main />, { attachTo: document.body })
30+
let app = document.createElement('div')
31+
app.setAttribute('id', 'app')
32+
document.body.appendChild(app)
33+
const wrapper = mount(<Main />, { attachTo: app })
3134
expect(wrapper.children().is('.sp-main-container')).to.equal(true)
3235
})
3336
})

0 commit comments

Comments
 (0)