Artist component (ongoing)

This commit is contained in:
Rodrigo Pinto 2019-12-14 18:05:19 -05:00
commit 7c9139f2ee
5 changed files with 897 additions and 6 deletions

View file

@ -1,17 +1,31 @@
import React, { useState, useEffect } from 'react'
import SpotifyWebApi from 'spotify-web-api-js'
import Artist from '../components/Artist'
import './ArtistSearch.scss'
const spotifyApi = new SpotifyWebApi()
function ArtistSearch() {
let [token, setToken] = useState(null)
let [search, setSearch] = useState(null)
let [artists, setArtists] = useState(null)
useEffect(() => {
const search = window.location.search
const params = new URLSearchParams(search)
setToken(params.get('access_token'))
const token = params.get('access_token')
spotifyApi.setAccessToken(token)
}, [])
useEffect(() => {
console.log(search)
if (search && search.length > 4) {
spotifyApi.searchArtists(search)
.then(function(data) {
setArtists(data.artists.items)
}, function(err) {
console.error(err);
})
}
}, [search])
const handleChange = e => {
@ -23,6 +37,19 @@ function ArtistSearch() {
<h1>Artist search</h1>
<input placeholder='Search for an artist' onChange={handleChange} />
{artists && (
<div className='artists'>
<ul className='list'>
{artists.map((artist, index) => (
<li className='list-item' key={index}>
<Artist props={artist} />
</li>
))}
</ul>
</div>
)}
</div>
)
}

View file

@ -0,0 +1,16 @@
.artist-search {
h1 {
text-align: center;
}
ul {
list-style-type: none;
max-width: 60em;
margin: auto;
padding: 0;
li {
display: inline-block;
}
}
}