@@ -107,9 +107,20 @@ function processFile(file) {
107107 const reader = new FileReader ( ) ;
108108
109109 reader . addEventListener ( 'load' , ( event ) => {
110-
111- cd . textContent = event . target . result ;
110+
111+ if ( hashCode ( event . target . result ) !== hashCode ( cd . textContent ) ) {
112+
113+ cd . textContent = event . target . result ;
114+
115+ }
116+
112117 cd . lang = getFileLang ( file . name ) ;
118+
119+ cd . scrollTo ( 0 , 0 ) ;
120+
121+ // set caret pos in codeit
122+ if ( ! isMobile ) cd . setSelection ( 0 , 0 ) ;
123+
113124 cd . focus ( ) ;
114125
115126 // change tab character
@@ -123,22 +134,26 @@ function processFile(file) {
123134
124135 }
125136
126- cd . history = [ ] ;
137+ cd . history = [ { html : cd . innerHTML , pos : cd . getSelection ( ) } ] ;
127138
128- saveSelectedFileContent ( ) ;
129- saveSelectedFileCaretPos ( ) ;
130- saveSelectedFileScrollPos ( ) ;
131- saveSelectedFileLang ( ) ;
139+ window . addEventListener ( 'load' , ( ) => {
140+
141+ saveSelectedFileContent ( ) ;
142+ saveSelectedFileCaretPos ( ) ;
143+ saveSelectedFileScrollPos ( ) ;
144+ saveSelectedFileLang ( ) ;
145+
146+ } ) ;
132147
133- console . log ( 'Loaded local file. Name: ' + file . name + ' Size: ' + file . size + ' bytes' ) ;
148+ showMessage ( 'Loaded ' + file . name + '!' , 5000 ) ;
134149
135150 } ) ;
136151
137152 reader . readAsText ( file ) ;
138153
139154}
140155
141- cd . on ( 'drop' , ( ev ) => {
156+ body . addEventListener ( 'drop' , ( ev ) => {
142157
143158 // prevent default behavior (prevent file from being opened)
144159 ev . preventDefault ( ) ;
@@ -147,7 +162,7 @@ cd.on('drop', (ev) => {
147162 if ( gitToken == '' ) {
148163
149164 // remove drop indication
150- document . body . classList . remove ( 'focus' ) ;
165+ cd . classList . remove ( 'focus' ) ;
151166
152167 if ( ev . dataTransfer . items ) {
153168
@@ -179,7 +194,7 @@ cd.on('drop', (ev) => {
179194
180195} )
181196
182- cd . on ( 'dragover' , ( ev ) => {
197+ body . addEventListener ( 'dragover' , ( ev ) => {
183198
184199 // prevent default behavior (prevent file from being opened)
185200 ev . preventDefault ( ) ;
@@ -188,47 +203,50 @@ cd.on('dragover', (ev) => {
188203 if ( gitToken == '' ) {
189204
190205 // show drop indication
191- document . body . classList . add ( 'focus' ) ;
206+ cd . classList . add ( 'focus' ) ;
192207
193208 }
194209
195210} )
196211
197- cd . on ( 'dragleave' , ( ev ) => {
212+ body . addEventListener ( 'dragleave' , ( ev ) => {
198213
199214 // if not logged into git
200215 if ( gitToken == '' ) {
201216
202217 // remove drop indication
203- document . body . classList . remove ( 'focus' ) ;
218+ cd . classList . remove ( 'focus' ) ;
204219
205220 }
206221
207222} )
208223
209224if ( 'launchQueue' in window ) {
210225
211- launchQueue . setConsumer ( async ( launchParams ) => {
212-
213- // if not logged into git
214- if ( gitToken == '' ) {
215-
216- // nothing to do when the queue is empty
217- if ( ! launchParams . files . length ) {
218- return ;
219- }
220-
221- for ( const fileHandle of launchParams . files ) {
222-
223- // handle the file
224- const fileData = await fileHandle . getFile ( ) ;
225-
226- processFile ( fileData ) ;
227-
228- }
229-
226+ window . launchQueue . setConsumer ( async ( launchParams ) => {
227+
228+ console . log ( 'Launched with: ' , launchParams ) ;
229+
230+ if ( ! launchParams . files . length ) {
231+ return ;
230232 }
233+
234+ const launchFile = launchParams . files [ 0 ] ;
235+
236+
237+ // if logged into git
238+ if ( gitToken ) {
239+
240+ return ;
241+
242+ }
243+
244+
245+ // handle the file
246+ const fileData = await launchFile . getFile ( ) ;
231247
248+ processFile ( fileData ) ;
249+
232250 } ) ;
233251
234252}
0 commit comments