@@ -15,24 +15,24 @@ class SaveButton extends React.Component {
15
15
] ) ;
16
16
}
17
17
handleClick ( ) {
18
- const json = this . props . vm . saveProjectSb3 ( ) ;
19
-
20
- // Download project data into a file - create link element,
21
- // simulate click on it, and then remove it.
22
18
const saveLink = document . createElement ( 'a' ) ;
23
19
document . body . appendChild ( saveLink ) ;
24
20
25
- const data = new Blob ( [ json ] , { type : 'text' } ) ;
26
- const url = window . URL . createObjectURL ( data ) ;
27
- saveLink . href = url ;
21
+ this . props . vm . saveProjectSb3 ( ) . then ( content => {
22
+ const url = window . URL . createObjectURL ( content ) ;
23
+
24
+ saveLink . href = url ;
28
25
29
- // File name: project-DATE-TIME
30
- const date = new Date ( ) ;
31
- const timestamp = `${ date . toLocaleDateString ( ) } -${ date . toLocaleTimeString ( ) } ` ;
32
- saveLink . download = `project-${ timestamp } .json` ;
33
- saveLink . click ( ) ;
34
- window . URL . revokeObjectURL ( url ) ;
35
- document . body . removeChild ( saveLink ) ;
26
+ // TODO user-friendly project name
27
+ // File name: project-DATE-TIME
28
+ const date = new Date ( ) ;
29
+ const timestamp = `${ date . toLocaleDateString ( ) } -${ date . toLocaleTimeString ( ) } ` ;
30
+ // TODO change extension to sb3
31
+ saveLink . download = `project-${ timestamp } .zip` ;
32
+ saveLink . click ( ) ;
33
+ window . URL . revokeObjectURL ( url ) ;
34
+ document . body . removeChild ( saveLink ) ;
35
+ } ) ;
36
36
}
37
37
render ( ) {
38
38
const {
@@ -59,7 +59,8 @@ class SaveButton extends React.Component {
59
59
SaveButton . propTypes = {
60
60
vm : PropTypes . shape ( {
61
61
saveProjectSb3 : PropTypes . func
62
- } ) } ;
62
+ } )
63
+ } ;
63
64
64
65
const mapStateToProps = state => ( {
65
66
vm : state . vm
0 commit comments