@@ -19,15 +19,14 @@ const typesColor = {
19
19
'steel' : '#B7B7CE' ,
20
20
'fairy' : '#D685AD' ,
21
21
}
22
+ const container = document . getElementsByClassName ( "container" ) [ 0 ] ;
23
+ const btnRefresh = document . getElementById ( "refresh" ) ;
24
+ const card = document . getElementById ( "text-placeholder" ) ;
25
+
22
26
23
27
document . addEventListener ( "DOMContentLoaded" , ( ) => {
24
28
if ( window . Worker ) {
25
29
let worker = new Worker ( './javascript/dist/worker-bundled.js' ) ;
26
-
27
- let btnRefresh = document . getElementById ( "refresh" ) ;
28
- let container = document . getElementsByClassName ( "container" ) [ 0 ] ;
29
- let card = document . getElementById ( "text-placeholder" ) ;
30
-
31
30
worker . postMessage ( 'init' ) ;
32
31
33
32
btnRefresh . addEventListener ( "click" , ( ) => {
@@ -37,46 +36,57 @@ document.addEventListener("DOMContentLoaded",() => {
37
36
38
37
worker . onmessage = function ( e ) {
39
38
if ( e . data . todo == 'fetch' ) {
40
- let jsonFetched = e . data . data ;
41
- for ( let fieldName of fields ) {
42
- document . getElementsByClassName ( fieldName ) [ 0 ] . innerHTML = jsonFetched [ fieldName ] ;
43
- }
44
- document . getElementsByClassName ( 'types' ) [ 0 ] . innerHTML = jsonFetched [ 'types' ] . map ( x => x . type . name )
45
- if ( jsonFetched [ 'types' ] . length > 1 ) {
46
- card . style . borderTopColor = typesColor [ jsonFetched [ 'types' ] [ 0 ] . type . name ] ;
47
- card . style . borderLeftColor = typesColor [ jsonFetched [ 'types' ] [ 0 ] . type . name ] ;
48
- card . style . borderBottomColor = typesColor [ jsonFetched [ 'types' ] [ 1 ] . type . name ] ;
49
- card . style . borderRightColor = typesColor [ jsonFetched [ 'types' ] [ 1 ] . type . name ] ;
50
- } else {
51
- card . style . borderColor = typesColor [ jsonFetched [ 'types' ] [ 0 ] . type . name ] ;
52
- }
53
- document . getElementsByClassName ( 'sprite' ) [ 0 ] . src = jsonFetched [ 'sprites' ] . front_default ;
54
- container . classList . remove ( 'is-loading' ) ;
55
- let pokeList = [ ...document . getElementsByClassName ( "poke-badge" ) ] ;
56
- let find = pokeList . filter ( ( elem ) => {
57
- if ( elem . dataset . name == jsonFetched [ 'name' ] && elem . classList . contains ( "empty" ) ) {
58
- return true ;
59
- }
60
- return false ;
61
- } )
62
- if ( find . length ) {
63
- find [ 0 ] . style . backgroundImage = 'url(' + jsonFetched [ 'sprites' ] . front_default + ')' ;
64
- find [ 0 ] . style . backgroundColor = typesColor [ jsonFetched [ 'types' ] . filter ( e => e . slot == 1 ) [ 0 ] . type . name ] ;
65
- find [ 0 ] . classList . remove ( "empty" ) ;
66
- }
67
-
39
+ updateWithPokemon ( e . data . data ) ;
68
40
} else if ( e . data . todo == 'init' ) {
69
- let pokeArray = e . data . data . results ;
70
- let pokeList = document . getElementsByClassName ( "poke-list" ) [ 0 ] ;
71
- console . log ( pokeArray )
72
- for ( let poke of pokeArray ) {
73
- let li = document . createElement ( 'li' ) ;
74
- pokeList . appendChild ( li ) ;
75
- li . dataset [ 'name' ] = poke . name ;
76
- li . classList . add ( 'empty' , 'poke-badge' ) ;
77
- console . log ( poke . name ) ;
78
- }
41
+ pokeListInitialization ( e . data . data . results ) ;
79
42
}
80
43
}
81
44
}
82
- } )
45
+ } )
46
+
47
+
48
+
49
+
50
+
51
+ function updateWithPokemon ( pokemon ) {
52
+ let pokeList = [ ...document . getElementsByClassName ( "poke-badge" ) ] ;
53
+ for ( let fieldName of fields ) { document . getElementsByClassName ( fieldName ) [ 0 ] . innerHTML = pokemon [ fieldName ] ; }
54
+ document . getElementsByClassName ( 'types' ) [ 0 ] . innerHTML = pokemon [ 'types' ] . map ( x => x . type . name )
55
+ document . getElementsByClassName ( 'sprite' ) [ 0 ] . src = pokemon [ 'sprites' ] . front_default ;
56
+
57
+ if ( pokemon [ 'types' ] . length > 1 ) {
58
+ card . style . borderTopColor = typesColor [ pokemon [ 'types' ] [ 0 ] . type . name ] ;
59
+ card . style . borderLeftColor = typesColor [ pokemon [ 'types' ] [ 0 ] . type . name ] ;
60
+ card . style . borderBottomColor = typesColor [ pokemon [ 'types' ] [ 1 ] . type . name ] ;
61
+ card . style . borderRightColor = typesColor [ pokemon [ 'types' ] [ 1 ] . type . name ] ;
62
+ } else {
63
+ card . style . borderColor = typesColor [ pokemon [ 'types' ] [ 0 ] . type . name ] ;
64
+ }
65
+
66
+
67
+ container . classList . remove ( 'is-loading' ) ;
68
+
69
+ let find = pokeList . filter ( ( elem ) => {
70
+ if ( elem . dataset . name == pokemon [ 'name' ] && elem . classList . contains ( "empty" ) ) {
71
+ return true ;
72
+ }
73
+ return false ;
74
+ } )
75
+
76
+ if ( find . length ) {
77
+ find [ 0 ] . style . backgroundImage = 'url(' + pokemon [ 'sprites' ] . front_default + ')' ;
78
+ find [ 0 ] . style . backgroundColor = typesColor [ pokemon [ 'types' ] . filter ( e => e . slot == 1 ) [ 0 ] . type . name ] ;
79
+ find [ 0 ] . classList . remove ( "empty" ) ;
80
+ }
81
+ }
82
+
83
+
84
+ function pokeListInitialization ( pokeArray ) {
85
+ let pokeList = document . getElementsByClassName ( "poke-list" ) [ 0 ] ;
86
+ for ( let poke of pokeArray ) {
87
+ let li = document . createElement ( 'li' ) ;
88
+ pokeList . appendChild ( li ) ;
89
+ li . dataset [ 'name' ] = poke . name ;
90
+ li . classList . add ( 'empty' , 'poke-badge' ) ;
91
+ }
92
+ }
0 commit comments