3
3
/*
4
4
Write here your JavaScript for HackYourRepo!
5
5
*/
6
+ window . onload = main ;
7
+
8
+ function main ( ) {
9
+
10
+ }
11
+ const url = 'https://api.github.com/orgs/HackYourFuture/repos?per_page=100' ;
6
12
const elFactory = ( type , attributes , ...children ) => {
7
- const el = document . createElement ( type )
13
+ const el = document . createElement ( type ) ;
8
14
let key ;
9
15
for ( key in attributes ) {
10
- el . setAttribute ( key , attributes [ key ] )
11
- }
16
+ el . setAttribute ( key , attributes [ key ] ) ;
17
+ } ;
12
18
13
19
children . forEach ( child => {
14
20
if ( typeof child === 'string' ) {
15
- el . appendChild ( document . createTextNode ( child ) )
21
+ el . appendChild ( document . createTextNode ( child ) ) ;
16
22
} else {
17
- el . appendChild ( child )
23
+ el . appendChild ( child ) ;
18
24
}
19
- } )
25
+ } ) ;
20
26
21
27
return el
22
- }
28
+ } ;
29
+
23
30
const container = elFactory ( 'div' , { calss : 'container' } ) ;
24
- const header = elFactory ( 'section' , { id : 'header' } ,
31
+ const header = elFactory ( 'section' , { id : 'header' } , //Header section
25
32
elFactory ( 'p' , { } , 'HYF Repositories' ) ,
26
- elFactory ( 'select' , { calss : 'selectMenu' } ) ,
27
- elFactory ( 'option' , { value : '' } , 'alumni' ) ) ;
33
+ elFactory ( 'select' , { calss : 'selectMenu' }
34
+ ) ) ;
28
35
const bottomBox = elFactory ( 'div' , { class : 'bottom-box' } ) ;
29
- const leftSide = elFactory ( 'section' , { id : 'left-side' } )
30
-
31
-
32
- const card = elFactory ( 'div' , { calss : 'card' } ,
36
+ const leftSide = elFactory ( 'section' , { id : 'left-side' } ) ;
37
+ const card = elFactory ( 'div' , { calss : 'card' } , // Leftside table
33
38
elFactory ( 'table' , { } ,
34
39
elFactory ( 'tr' , { } ,
35
40
elFactory ( 'td' , { class : 'col-left' } , 'Repositories: ' ) ,
36
- elFactory ( 'td' , { class : 'col-right rep-text' } , elFactory ( 'a' , { href : '#' , class : 'repo-link' } , 'SampleRepo1' ) ) ) ,
41
+ elFactory ( 'td' , { class : 'col-right rep-text' } , elFactory ( 'a' , { href : '#' , class : 'repo-link' } , ) ) ) ,
37
42
elFactory ( 'tr' , { } ,
38
43
elFactory ( 'td' , { class : 'col-left' } , 'Description: ' ) ,
39
44
elFactory ( 'td' , { class : 'col-right rep-description' } , 'Lorem ipsom' ) ) ,
@@ -44,57 +49,80 @@ const card = elFactory('div', {calss: 'card'},
44
49
elFactory ( 'td' , { class : 'col-left' } , 'Update: ' ) ,
45
50
elFactory ( 'td' , { class : 'col-right rep-update' } , '2020-05-27 12:00:00' ) ) ) ) ;
46
51
47
-
48
52
const rightSide = elFactory ( 'section' , { id : 'right-side' } ,
49
53
elFactory ( 'div' , { id : 'contributor' } , 'Contributors' ) ) ;
50
54
const smallCard = elFactory ( 'div' , { class : 'card samll-card' } ,
51
55
elFactory ( 'img' , { src : 'https://avatars3.githubusercontent.com/u/3985124?v=4' , calss : 'userPhoto' , width : '50px' } ) ,
52
56
elFactory ( 'a' , { href : '' , class : 'userName' } , 'Isabela' ) ,
53
57
elFactory ( 'div' , { class : 'badge' } , '9' ) ) ;
54
58
55
- leftSide . appendChild ( card )
56
- rightSide . appendChild ( smallCard )
59
+ leftSide . appendChild ( card ) ;
60
+ rightSide . appendChild ( smallCard ) ;
57
61
container . appendChild ( header ) ;
58
62
bottomBox . appendChild ( leftSide ) ;
59
63
bottomBox . appendChild ( rightSide )
60
64
container . appendChild ( bottomBox ) ;
61
65
document . body . appendChild ( container )
62
- console . log ( container )
63
-
64
-
65
- // const container = elFactory('div', {calss: 'container'},
66
- // elFactory('section', {id: 'header'},
67
- // elFactory('p', {}, 'HYF Repositories'),
68
- // elFactory('select', {calss: 'selectMenu'},
69
- // elFactory('option', {value: ''}, 'alumni'))),
70
- // elFactory('div', {class: 'bottom-box'},
71
- // elFactory('section', {id: 'left-side'},
72
- // elFactory('div', {calss: 'card'},
73
- // elFactory('table', {},
74
- // elFactory('tr', {},
75
- // elFactory('td', {class: 'col-left'}, 'Repositories: '),
76
- // elFactory('td', {class: 'col-right rep-text'}, elFactory('a', {href: '#', class: 'repo-link'}, 'SampleRepo1')) ),
77
- // elFactory('tr', {},
78
- // elFactory('td', {class: 'col-left'}, 'Description: '),
79
- // elFactory('td', {class: 'col-right rep-description'}, 'Lorem ipsom')),
80
- // elFactory('tr', {},
81
- // elFactory('td', {class: 'col-left'}, 'Forks: '),
82
- // elFactory('td', {class: 'col-right rep-fork'}, '5')),
83
- // elFactory('tr', {},
84
- // elFactory('td', {class: 'col-left'}, 'Update: '),
85
- // elFactory('td', {class: 'col-right rep-update'}, '2020-05-27 12:00:00'))))))
86
- // );
87
-
88
- // console.log(container);
89
- // const select = container.querySelector('select')
90
- // const para = container.querySelector('p')
91
- // console.log(para)
92
66
67
+ const select = header . querySelector ( 'select' ) ;
68
+
69
+
70
+
71
+
72
+ function addrepoNames ( data ) {
73
+
74
+ data . forEach ( element => {
75
+ const option = elFactory ( 'option' , { value : '' } )
76
+ option . innerHTML = element . name ;
77
+ option . value = element . name ;
78
+ select . appendChild ( option ) ;
79
+ } ) ;
80
+
81
+ select . addEventListener ( 'input' , ( ) => {
82
+ data . forEach ( element => {
83
+ if ( select . value === element . name ) {
84
+ const repoDescription = card . querySelector ( '.rep-description' ) ;
85
+ repoDescription . innerHTML = element . description ;
86
+ const repoName = card . querySelector ( '.repo-link' ) ;
87
+ repoName . innerHTML = element . name ;
88
+ repoName . href = element . html_url ;
89
+ const forks = card . querySelector ( '.rep-fork' ) ;
90
+ forks . innerHTML = element . forks ;
91
+ const update = card . querySelector ( '.rep-update' ) ;
92
+ update . innerHTML = element . updated_at ;
93
+ const smallCard = elFactory ( 'div' , { class : 'card samll-card' } ,
94
+ elFactory ( 'img' , { src : 'https://avatars3.githubusercontent.com/u/3985124?v=4' , calss : 'userPhoto' , width : '50px' } ) ,
95
+ elFactory ( 'a' , { href : '' , class : 'userName' } , 'Isabela' ) ,
96
+ elFactory ( 'div' , { class : 'badge' } , '9' ) ) ;
97
+ const contributorsUrl = element . contributors_url ;
98
+ fetch ( contributorsUrl )
99
+ . then ( response => response . json ( ) )
100
+ . then ( data2 => console . log ( data2 ) )
101
+ // image.src = ''
102
+ // fetch(pokUrl)
103
+ // .then(response => response.json())
104
+ // .then(data => {
105
+ // image.src = data.sprites.front_default;
106
+ // document.body.appendChild(image);
107
+ // })
108
+ // .catch(error => console.log(error))
109
+ }
110
+
111
+
112
+ } )
113
+ } )
93
114
115
+ } ;
94
116
117
+ function fetchData ( url ) {
95
118
119
+ fetch ( url )
120
+ . then ( res => res . json ( ) )
121
+ . then ( data => addrepoNames ( data ) )
96
122
97
123
124
+ }
125
+ fetchData ( url ) ;
98
126
99
127
100
128
@@ -105,9 +133,4 @@ console.log(container)
105
133
106
134
107
135
108
- // const container = document.createElement('div');
109
- // container.classList.add('container');
110
- // const header = document.createElement('section');
111
- // const title = document.createElement('')
112
- // const selectMenu = document.createElement('select');
113
136
0 commit comments