Compare commits
No commits in common. "master" and "something" have entirely different histories.
15
.vscode/launch.json
vendored
15
.vscode/launch.json
vendored
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
// Use IntelliSense to learn about possible attributes.
|
|
||||||
// Hover to view descriptions of existing attributes.
|
|
||||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
|
||||||
"version": "0.2.0",
|
|
||||||
"configurations": [
|
|
||||||
{
|
|
||||||
"type": "chrome",
|
|
||||||
"request": "launch",
|
|
||||||
"name": "Launch Chrome",
|
|
||||||
"url": "http://localhost:3000",
|
|
||||||
"webRoot": "${workspaceFolder}"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
2
package-lock.json
generated
2
package-lock.json
generated
@ -13,7 +13,7 @@
|
|||||||
"@testing-library/user-event": "^13.5.0",
|
"@testing-library/user-event": "^13.5.0",
|
||||||
"react": "^18.2.0",
|
"react": "^18.2.0",
|
||||||
"react-dom": "^18.2.0",
|
"react-dom": "^18.2.0",
|
||||||
"react-scripts": "^5.0.1",
|
"react-scripts": "5.0.1",
|
||||||
"web-vitals": "^2.1.4"
|
"web-vitals": "^2.1.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
"@testing-library/user-event": "^13.5.0",
|
"@testing-library/user-event": "^13.5.0",
|
||||||
"react": "^18.2.0",
|
"react": "^18.2.0",
|
||||||
"react-dom": "^18.2.0",
|
"react-dom": "^18.2.0",
|
||||||
"react-scripts": "^5.0.1",
|
"react-scripts": "5.0.1",
|
||||||
"web-vitals": "^2.1.4"
|
"web-vitals": "^2.1.4"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
@ -15,23 +15,14 @@ class SearchBar extends React.Component {
|
|||||||
handleTermChange = (event) => {
|
handleTermChange = (event) => {
|
||||||
this.setState({ term: event.target.value });
|
this.setState({ term: event.target.value });
|
||||||
};
|
};
|
||||||
handleKeyDown = event => {
|
|
||||||
if (event.key === "Enter"){
|
|
||||||
this.search()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
return (
|
return (
|
||||||
<div className="SearchBar">
|
<div className="SearchBar">
|
||||||
<input
|
<input
|
||||||
placeholder="Enter A Song, Album, or Artist"
|
placeholder="Enter A Song, Album, or Artist"
|
||||||
onChange={this.handleTermChange}
|
onChange={this.handleTermChange}
|
||||||
onKeyDown={this.handleKeyDown}
|
|
||||||
/>
|
/>
|
||||||
<button className="SearchButton" onClick={this.search}>
|
<button className="SearchButton">SEARCH</button>
|
||||||
SEARCH
|
|
||||||
</button>
|
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
const clientId = "c39c93bbf05745fb986d1e566004eb31";
|
const clientId = "c39c93bbf05745fb986d1e566004eb31";
|
||||||
// Hosted on https://jammingcademy.surge.sh/, but save playlist does not work
|
const redirectUri = "http://localhost:3000/";
|
||||||
const redirectUri = "http://localhost:3000";
|
|
||||||
let accessToken = "";
|
let accessToken = "";
|
||||||
|
|
||||||
export const Spotify = {
|
export const Spotify = {
|
||||||
@ -23,7 +22,8 @@ export const Spotify = {
|
|||||||
window.history.pushState("Access Token", null, "/");
|
window.history.pushState("Access Token", null, "/");
|
||||||
return accessToken;
|
return accessToken;
|
||||||
} else {
|
} else {
|
||||||
const accessUrl = `https://accounts.spotify.com/authorize?client_id=${clientId}&response_type=token&scope=playlist-modify-public&redirect_uri=${redirectUri}`;
|
const accessUrl = `https://accounts.spotify.com/authorize?client_id=${clientId}&response_type=
|
||||||
|
token&scope=playlist-modify-public&redirect_uri=${redirectUri}`;
|
||||||
window.location = accessUrl;
|
window.location = accessUrl;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -54,13 +54,13 @@ export const Spotify = {
|
|||||||
if (!name || !trackUris.length) {
|
if (!name || !trackUris.length) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const accessToken = Spotify.getAccessToken();
|
const accessToken = Spotify.getAccessToken;
|
||||||
const headers = { Authorization: `Bearer ${accessToken}` };
|
const headers = { Authorization: `Bearer ${accessToken}` };
|
||||||
let userId;
|
let userId;
|
||||||
return fetch(`https://api.spotify.com/v1/me`, { headers: headers })
|
return fetch(`https://api.spotify.com/v1/me`, { headers: headers })
|
||||||
.then((response) => response.json())
|
.then((response) => response.json())
|
||||||
.then((jsonResponse) => {
|
.then((jsonResponse) => {
|
||||||
userId = jsonResponse.id;
|
userId = jsonResponse.Id;
|
||||||
return fetch(`https://api.spotify.com/v1/users/${userId}/playlists`, {
|
return fetch(`https://api.spotify.com/v1/users/${userId}/playlists`, {
|
||||||
headers: headers,
|
headers: headers,
|
||||||
method: "POST",
|
method: "POST",
|
||||||
@ -68,7 +68,7 @@ export const Spotify = {
|
|||||||
})
|
})
|
||||||
.then((response) => response.json())
|
.then((response) => response.json())
|
||||||
.then((jsonResponse) => {
|
.then((jsonResponse) => {
|
||||||
const playlistId = jsonResponse.id;
|
const playlistId = jsonResponse.Id;
|
||||||
return fetch(
|
return fetch(
|
||||||
`https:/api.spotify.com/v1/users/${userId}/playlists/${playlistId}/tracks`,
|
`https:/api.spotify.com/v1/users/${userId}/playlists/${playlistId}/tracks`,
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user