-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
107 lines (86 loc) · 3.28 KB
/
Copy pathindex.js
File metadata and controls
107 lines (86 loc) · 3.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
const cards = document.querySelector('.cards')
barraDeRolagem()
barraDePesquisa('search')
barraDePesquisa('meio-search')
let barraDeRolagemArray1 = []
let barraDeRolagemArray2 = []
let barraDePesquisa1 = []
let barraDePesquisa2 = []
async function barraDeRolagem() {
const response = await pegaUsuariosStarGithub()
const users = response.data
for (const url of users) {
const response = await pegaUrlGithub(url.url)
barraDeRolagemArray1.push(response.data)
}
barraDeRolagemArray1.map(user => {
barraDeRolagemArray2.push({avatar_url: user.avatar_url, login: user.login, name: user.name, bio: user.bio})
})
cards.innerHTML = barraDeRolagemArray2.map(user => {
return `
<div class="card">
<img src="${user.avatar_url}" alt="">
<div class="info">
<div class="nome">
<h3>${user.name}</h3>
<p>@${user.login}</p>
</div>
<div class="descricao"><p>${user.bio || 'Sem descrição'}</p></div>
</div>
</div>
`
}).join('')
}
async function barraDePesquisa(tipoPesquisa) {
const botao = document.querySelector(`.${tipoPesquisa} img`)
const cardResultados = document.querySelector('.resultados')
botao.addEventListener('click', async (e) => {
const searchTopo = document.getElementById("pesquisa-topo").value.length > 1
const searchMeio = document.getElementById("pesquisa-meio").value.length > 1
console.log(searchTopo, searchMeio)
if(searchTopo || searchMeio) {
document.querySelector('.cabecalho').classList.add('pesquisa-on')
document.querySelector('.container-meio').classList.add('pesquisa-on')
document.querySelector('.pesquisa').classList.remove('off')
document.querySelector('.pesquisa').classList.add('on')
const parametroDaPesquisa = document.querySelector(`.${tipoPesquisa} input`).value
document.querySelector('.nome-pesquisado').innerHTML = parametroDaPesquisa
const response = await pesquisarUsuarioGithub(parametroDaPesquisa)
const resultadoDaPesquisa = response.data.items
for (const url of resultadoDaPesquisa) {
const response = await pegaUrlGithub(url.url)
barraDePesquisa1.push(response.data)
}
barraDePesquisa1.map(user => {
barraDePesquisa2.push({avatar_url: user.avatar_url, login: user.login, name: user.name, bio: user.bio, html_url: user.html_url})
})
cardResultados.innerHTML = barraDePesquisa2.map(user => {
return `
<div class="card resultado-item">
<a href="${user.html_url}">
<img src="${user.avatar_url}" alt="">
<div class="info">
<div class="nome">
<h3>${user.name || 'Sem nome'}</h3>
<p>@${user.login}</p>
</div>
<div class="descricao"><p>${user.bio || 'Sem descrição'}</p></div>
</div>
</a>
</div>
`
}).join('')
} else {
alert('Informe um nome na pesquisa')
}
})
}
function pegaUsuariosStarGithub() {
return axios.get(`https://api.github.com/users?sort=stars&order=desc&per_page=10`)
}
function pegaUrlGithub(url) {
return axios.get(url)
}
function pesquisarUsuarioGithub(userName) {
return axios.get(`https://api.github.com/search/users?q=${userName}&order=desc&per_page=9`)
}