Skip to content

Commit 7be2b43

Browse files
Changes in sketch and main js
1 parent 678da10 commit 7be2b43

File tree

2 files changed

+40
-39
lines changed

2 files changed

+40
-39
lines changed

examples/main.jsx

Lines changed: 21 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,7 @@ class SketchFieldDemo extends React.Component {
149149
enableCopyPaste: false,
150150
isOpen: true,
151151
dataJson: dataJson,
152+
url: dataUrl
152153
};
153154
}
154155

@@ -162,7 +163,8 @@ class SketchFieldDemo extends React.Component {
162163

163164
_save = () => {
164165
var array = []
165-
var stObject = this._sketch._fc._objects;
166+
let canvas = this._sketch._fc;
167+
var stObject = canvas._objects;
166168
for (var key in stObject) {
167169
var obArray = []
168170
var orgState = stObject[key].__originalState;
@@ -177,51 +179,35 @@ class SketchFieldDemo extends React.Component {
177179
array.push(hash)
178180
}
179181
}
180-
var objects = {
181-
"objects": array,
182-
"background": "red",
183-
}
184182

185-
// var backgroundImage = this._sketch._fc.backgroundImage._element.src;
183+
var objects = { "objects": array , background: canvas.backgroundColor }
184+
185+
if(canvas.backgroundImage){
186+
var url = canvas.backgroundImage._element.src;
187+
this.setState({url: url})
188+
}
186189
this.setState({isOpen: true , objects: objects});
187190
};
188191

189192
_open = () => {
190-
// this._setBackGround(this.state.backgroundImage)
191-
this._sketch.fromJSON(this.state.objects)
192-
193+
this._sketch.changeBackground(this.state.url)
194+
if(this.state.objects.objects.length > 0){
195+
this._sketch.fromJSON(this.state.objects);
196+
}
193197
}
194198

195199
_download = () => {
196200
this._sketch.download();
197201
};
198202

199-
// Start Setting Background
200-
_setBackGround =(src)=>{
201-
let sketch = this._sketch;
202-
let { stretched, stretchedX, stretchedY, originX, originY } = this.state;
203-
sketch.setBackgroundFromDataUrl(src, {
204-
stretched: true,
205-
stretchedX: true,
206-
stretchedY: true,
207-
originX: originX,
208-
originY: originY
209-
})
210-
211-
}
212-
// End
213-
214-
215-
216203
// Start
217204
//
218205
// Process
219206

220207
_getHash = (obj, obArray) => {
221-
console.log(obj);
208+
222209
var hash = {
223210
type: obj.type,
224-
version: obj.version,
225211
originX: obj.originX,
226212
originY: obj.originY,
227213
left: obj.left,
@@ -347,8 +333,7 @@ class SketchFieldDemo extends React.Component {
347333
}
348334
};
349335

350-
_onBackgroundImageDrop = (accepted /*, rejected*/) => {
351-
console.log(accepted)
336+
_onBackgroundImageDrop = (accepted) => {
352337
if (accepted && accepted.length > 0) {
353338
let sketch = this._sketch;
354339
let reader = new FileReader();
@@ -357,8 +342,13 @@ class SketchFieldDemo extends React.Component {
357342
reader.addEventListener(
358343
'load',
359344
() =>sketch.setBackgroundFromDataUrl(reader.result, {
360-
345+
stretched: stretched,
346+
stretchedX: stretchedX,
347+
stretchedY: stretchedY,
348+
originX: originX,
349+
originY: originY,
361350
}),
351+
362352
false,
363353
);
364354
reader.readAsDataURL(accepted[0]);

src/SketchField.jsx

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -415,17 +415,17 @@ class SketchField extends PureComponent {
415415
toJSON = (propertiesToInclude) => this._fc.toJSON(propertiesToInclude);
416416

417417
fromJSON = (json) => {
418-
418+
var canvas = this._fc;
419419
if (!json) return;
420-
let canvas = this._fc;
421-
setTimeout(() => {
420+
//setTimeout(() => {
422421
canvas.loadFromJSON(json, () => {
423422
canvas.renderAll();
424423
if (this.props.onChange) {
425-
this.props.onChange()
424+
// this.props.onChange()
426425
}
427426
})
428-
}, 100)
427+
// }, 100)
428+
429429
};
430430

431431
clear = (propertiesToInclude) => {
@@ -495,9 +495,6 @@ class SketchField extends PureComponent {
495495
* @param options
496496
*/
497497
setBackgroundFromDataUrl = (dataUrl, options = {}) => {
498-
console.log(dataUrl);
499-
500-
501498
let canvas = this._fc;
502499
if (options.stretched) {
503500
delete options.stretched;
@@ -525,6 +522,20 @@ class SketchField extends PureComponent {
525522
img.src = dataUrl
526523
};
527524

525+
changeBackground = (imgData) =>{
526+
let canvas = this._fc;
527+
setTimeout(() => {
528+
var img = new Image();
529+
img.onload = function() {
530+
// this is syncronous
531+
var f_img = new fabric.Image(img);
532+
canvas.setBackgroundImage(f_img);
533+
canvas.renderAll();
534+
};
535+
img.src = imgData;
536+
}, 3000)
537+
}
538+
528539
addText = (text, options = {}) => {
529540
let canvas = this._fc;
530541
let iText = new fabric.IText(text, options);

0 commit comments

Comments
 (0)