@@ -32,6 +32,8 @@ import RemoveIcon from '@material-ui/icons/Remove';
3232import DownloadIcon from '@material-ui/icons/CloudDownload' ;
3333import ZoomInIcon from '@material-ui/icons/ZoomIn' ;
3434import ZoomOutIcon from '@material-ui/icons/ZoomOut' ;
35+ import UploadIcon from '@material-ui/icons/Backup' ;
36+
3537import dataJson from './data.json' ;
3638import dataJsonControlled from './data.json.controlled' ;
3739import { SketchField , Tools } from '../src' ;
@@ -91,7 +93,7 @@ const styles = {
9193 } ,
9294 card : {
9395 margin : '10px 10px 5px 0'
94- }
96+ } ,
9597} ;
9698
9799/**
@@ -111,6 +113,9 @@ function eventFire(el, etype) {
111113 }
112114}
113115
116+
117+
118+
114119class SketchFieldDemo extends React . Component {
115120
116121 constructor ( props ) {
@@ -124,7 +129,7 @@ class SketchFieldDemo extends React.Component {
124129 shadowWidth : 0 ,
125130 shadowOffset : 0 ,
126131 tool : Tools . Select ,
127- enableRemoveSelected : false ,
132+ enableRemoveSelected : true ,
128133 fillWithColor : false ,
129134 fillWithBackgroundColor : false ,
130135 drawings : [ ] ,
@@ -200,9 +205,6 @@ class SketchFieldDemo extends React.Component {
200205 this . _sketch . download ( ) ;
201206 } ;
202207
203- // Start
204- //
205- // Process
206208
207209 _getHash = ( obj , obArray ) => {
208210
@@ -341,7 +343,7 @@ class SketchFieldDemo extends React.Component {
341343 let { stretched, stretchedX, stretchedY, originX, originY } = this . state ;
342344 reader . addEventListener (
343345 'load' ,
344- ( ) => sketch . setBackgroundFromDataUrl ( reader . result , {
346+ ( ) => sketch . setBackgroundFromDataUrl ( reader . result , {
345347 stretched : stretched ,
346348 stretchedX : stretchedX ,
347349 stretchedY : stretchedY ,
@@ -357,6 +359,20 @@ class SketchFieldDemo extends React.Component {
357359
358360 _addText = ( ) => this . _sketch . addText ( this . state . text ) ;
359361
362+ _readFile = ( event ) => {
363+ let sketch = this . _sketch ;
364+ let file = event . target . files [ 0 ]
365+ if ( file ) {
366+ let reader = new FileReader ( ) ;
367+ reader . onload = function ( e ) {
368+ let data = e . target . result ;
369+ console . log ( data ) ;
370+ sketch . fromJSON ( data ) ;
371+ }
372+ reader . readAsText ( file ) ;
373+ }
374+ }
375+
360376 componentDidMount = ( ) => {
361377 ( function ( console ) {
362378 console . save = function ( data , filename ) {
@@ -378,8 +394,11 @@ class SketchFieldDemo extends React.Component {
378394 a . dispatchEvent ( e ) ;
379395 } ;
380396 } ) ( console ) ;
397+
381398 } ;
382399
400+
401+
383402 render = ( ) => {
384403 let { controlledValue } = this . state ;
385404 const theme = createMuiTheme ( {
@@ -430,12 +449,23 @@ class SketchFieldDemo extends React.Component {
430449 onClick = { this . _save } >
431450 < SaveIcon />
432451 </ IconButton >
452+ < Button
453+ style = { { background : 'none' , border : 'none' , color : '#607d8b' , boxShadow : 'none' } }
454+ variant = "contained"
455+ component = "label"
456+ title = "Upload" >
457+ < UploadIcon />
458+ < input type = "file"
459+ onChange = { ( e ) => this . _readFile ( e ) }
460+ style = { { display : "none" } } />
461+ </ Button >
433462 < IconButton
434463 color = "primary"
435464 title = "Download"
436465 onClick = { this . _download } >
437466 < DownloadIcon />
438467 </ IconButton >
468+
439469 < IconButton
440470 color = "primary"
441471 title = "Delete All"
0 commit comments