@@ -55,14 +55,14 @@ <h2>Output:</h2>
5555 state . set ( 'gist' , parameters . get ( 'gist' ) ) ;
5656 } else {
5757 state . set ( 'code' , LZString . compressToBase64 ( editor . getValue ( ) ) ) ;
58+ state . set ( 'mode' , mode . value ) ;
59+ state . set ( 'features' , [ ...features ] . join ( ',' ) ) ;
5860 }
59- state . set ( 'features' , [ ...features ] . join ( ',' ) ) ;
60- state . set ( 'mode' , mode . value ) ;
6161 document . location . hash = state . toString ( ) ;
6262 }
6363
6464 let featuresPopulated = false ;
65- const features = new Set ( parameters . has ( 'features' ) ? parameters . get ( 'features' ) . split ( ',' ) : [ ] ) ;
65+ let features = new Set ( parameters . has ( 'features' ) ? parameters . get ( 'features' ) . split ( ',' ) : [ ] ) ;
6666 let worker ;
6767
6868 if ( parameters . has ( 'mode' ) ) {
@@ -158,16 +158,12 @@ <h2>Output:</h2>
158158 fetch ( `https://api.github.com/gists/${ parameters . get ( 'gist' ) } ` )
159159 . then ( ( r ) => r . json ( ) )
160160 . then ( ( data ) => {
161- const fileName = Object . keys ( data . files ) [ 0 ] ;
162- const file = data . files [ fileName ] ;
163- editor . setValue ( file . content ) ;
164- if ( fileName . endsWith ( '.js' ) ) {
165- mode . value = 'script' ;
166- } else if ( fileName . endsWith ( '.mjs' ) ) {
167- mode . value = 'module' ;
168- }
169- saveState ( ) ;
161+ const state = JSON . parse ( data . files [ 'state.json' ] . content ) ;
162+ mode . value = state . mode ;
163+ features = new Set ( state . features ) ;
164+ const file = data . files [ `code.${ state . mode === 'script' ? 'js' : 'mjs' } ` ] ;
170165 respawn ( ) ;
166+ editor . setValue ( file . content ) ;
171167 } ) ;
172168 } else {
173169 editor . setValue ( 'print(\'Hello, World!\');' ) ;
0 commit comments