@@ -3,6 +3,7 @@ import 'codemirror/mode/javascript/javascript'
33import { Chart } from 'chart.js/dist/chart'
44import analyze from '../js/analyze'
55import taxonomy from '..'
6+ /* global FileReader */
67
78// From https://arxiv.org/abs/2201.02089
89const EXAMPLE_JSON = {
@@ -178,8 +179,55 @@ function onAnalyze (value) {
178179 }
179180}
180181
181- document . getElementById ( 'analyze' ) . addEventListener ( 'click' , ( ) => {
182- return onAnalyze ( code . getValue ( ) )
182+ const LoaderElement = document . createElement ( 'div' )
183+ LoaderElement . classList . add ( 'loader' )
184+ const fileInputElement = document . getElementById ( 'fileInput' )
185+ const removeBtn = document . getElementById ( 'remove' )
186+
187+ function showLoader ( bool ) {
188+ if ( bool ) {
189+ document . querySelector ( 'main' ) . appendChild ( LoaderElement )
190+ document . getElementById ( 'overlay' ) . style . display = 'block'
191+ } else {
192+ document . querySelector ( 'main' ) . removeChild ( LoaderElement )
193+ document . getElementById ( 'overlay' ) . style . display = 'none'
194+ }
195+ }
196+
197+ function analyzer ( ) {
198+ const file = fileInputElement . files [ 0 ]
199+ showLoader ( true )
200+ if ( file ) {
201+ const reader = new FileReader ( )
202+ reader . onload = function ( event ) {
203+ const contents = event . target . result
204+ onAnalyze ( contents )
205+ showLoader ( false )
206+ }
207+ reader . readAsText ( file )
208+ } else {
209+ onAnalyze ( code . getValue ( ) )
210+ showLoader ( false )
211+ }
212+ }
213+
214+ removeBtn . addEventListener ( 'click' , ( ) => {
215+ fileInputElement . value = ''
216+ code . setValue ( '' )
217+ code . setOption ( 'readOnly' , false )
218+ removeBtn . classList . add ( 'uk-disabled' )
219+ } )
220+
221+ fileInputElement . addEventListener ( 'change' , ( e ) => {
222+ if ( e . target . files [ 0 ] ) {
223+ code . setValue ( 'Reading from input file' )
224+ code . setOption ( 'readOnly' , true )
225+ removeBtn . classList . remove ( 'uk-disabled' )
226+ } else {
227+ console . log ( 'else is clicked' )
228+ removeBtn . classList . add ( 'uk-disabled' )
229+ }
183230} )
184231
232+ document . getElementById ( 'analyze' ) . addEventListener ( 'click' , analyzer )
185233onAnalyze ( code . getValue ( ) )
0 commit comments