Issue #20 Solucionados errores mostrados por consola

This commit is contained in:
Daniel Cortes
2020-06-24 01:12:50 -04:00
parent 902f80536d
commit f49b4a57fd
7 changed files with 64 additions and 55 deletions

View File

@@ -5,8 +5,8 @@ import queryString from "query-string";
import {auth, logout} from "../services/auth_service"; import {auth, logout} from "../services/auth_service";
import {useStateValue} from "../services/State"; import {useStateValue} from "../services/State";
export const AuthMiddleware = (props) => { export const AuthMiddleware = () => {
const match = useRouteMatch('*') useRouteMatch('*');
return null; return null;
} }
@@ -20,8 +20,6 @@ export const AuthLogin = (props) => {
const params = queryString.parse(props.location.search); const params = queryString.parse(props.location.search);
auth(params).then((response) => { auth(params).then((response) => {
console.debug(response, window.localStorage);
if(response.status === 'redirect_to_code'){ if(response.status === 'redirect_to_code'){
// Se va o ya se redirigió hacia la pagina que obtiene el código, no hay nada que hacer. // Se va o ya se redirigió hacia la pagina que obtiene el código, no hay nada que hacer.
return null; return null;
@@ -42,16 +40,16 @@ export const AuthLogin = (props) => {
return null; return null;
} }
export const AuthLogout = (props) => { export const AuthLogout = () => {
const [context, dispatch] = useStateValue(); const [context, dispatch] = useStateValue();
if (!context.user.auth) { if (!context.user.auth) {
return <Redirect to='/'/> return <Redirect to={'/'}/>;
} }
logout(context.user.access_token).then(result => { logout(context.user.access_token).then(() => {
console.log(result); dispatch({type: 'logout', user: {auth: false}})
}); });
dispatch({type: 'logout', user: {auth: false}}) return <Redirect to={'/'}/>;
return <Redirect to='/'/>
} }

View File

@@ -6,14 +6,14 @@ import Faker from 'faker';
import './Comments.scss' import './Comments.scss'
const Comment = (props) => ( const Comment = (props) => (
<div class='comment'> <div className='comment'>
<div class='avatar-container'> <div className='avatar-container'>
<img className='avatar' src={props.avatar} alt='Avatar'/> <img className='avatar' src={props.avatar} alt='Avatar'/>
</div> </div>
<div className='body'> <div className='body'>
<span className='username'>{props.user}</span> <span className='username'>{props.user}</span>
<p>{props.text}</p> <p>{props.text}</p>
<div class='buttons'> <div className='buttons'>
<button><FaThumbsUp/></button> <button><FaThumbsUp/></button>
<button><FaThumbsDown/></button> <button><FaThumbsDown/></button>
<button><FaLaughSquint/></button> <button><FaLaughSquint/></button>

View File

@@ -13,11 +13,11 @@ const EntityHeader = (props) => {
const EntityPlaceholder = (props) => { const EntityPlaceholder = (props) => {
return ( return (
<li className={'entity-item ' + (props.cover ? '' : 'pulsating')}> <li className={'entity-item ' + (props.cover ? '' : 'pulsating')}>
<div class="entity-container"> <div className="entity-container">
<Link to={props.link}> <Link to={'#'}>
{props.cover && <div className='cover pulsating'/>} {props.cover && <div className='cover pulsating'/>}
<div className='body'> <div className='body'>
<span class='title'>&nbsp;</span> <span className='title'>&nbsp;</span>
<span className='subtitle'>&nbsp;</span> <span className='subtitle'>&nbsp;</span>
</div> </div>
</Link> </Link>
@@ -30,16 +30,16 @@ const EntityItem = (props) => {
const item = props.item; const item = props.item;
return ( return (
<li className={'entity-item ' + (item.selected ? 'selected' : '')} id={item.id}> <li className={'entity-item ' + (item.selected ? 'selected' : '')} id={item.id}>
<div class="entity-container"> <div className="entity-container">
<Link to={item.link}> <Link to={item.link}>
{item.cover && item.cover} {item.cover && item.cover}
<div className='body'> <div className='body'>
<span class='title'>{item.title}</span> <span className='title'>{item.title}</span>
<span className='subtitle'>{item.subtitle}</span> <span className='subtitle'>{item.subtitle}</span>
</div> </div>
</Link> </Link>
{ item.widget && { item.widget &&
<div class="widget"> <div className="widget">
{item.widget} {item.widget}
</div> </div>
} }
@@ -59,7 +59,7 @@ export const EntityList = (props) => {
}else{ }else{
let mapped = props.list.map(group => { let mapped = props.list.map(group => {
let header = group.header ? <EntityHeader title={group.header}/> : null; let header = group.header ? <EntityHeader title={group.header}/> : null;
let items = group.items.map(item => <EntityItem item={item}/>); let items = group.items.map((item, index) => <EntityItem key={index} item={item}/>);
items.unshift(header); items.unshift(header);
return items; return items;
}); });

View File

@@ -3,8 +3,6 @@ import React, {createContext, useContext, useReducer} from 'react';
const initialState = {user: {auth: false}}; const initialState = {user: {auth: false}};
const reducer = (state, action) => { const reducer = (state, action) => {
console.log(state, action);
switch (action.type) { switch (action.type) {
case 'login': case 'login':
return { return {
@@ -24,9 +22,10 @@ const reducer = (state, action) => {
export const StateContext = createContext(null); export const StateContext = createContext(null);
export const StateProvider = ({children}) => { export const StateProvider = ({children}) => {
const value = useReducer(reducer, initialState);
return ( return (
<StateContext.Provider value={useReducer(reducer, initialState)}> <StateContext.Provider value={value}>
{children} {children}
</StateContext.Provider> </StateContext.Provider>
); );

View File

@@ -68,7 +68,6 @@ export const auth = async (params) => {
if (expires > new Date()) { if (expires > new Date()) {
const refresh_token = window.localStorage.getItem('refresh_token'); const refresh_token = window.localStorage.getItem('refresh_token');
response = await do_refresh(refresh_token); response = await do_refresh(refresh_token);
console.log('refresh response', response);
} }
} }

View File

@@ -3,56 +3,69 @@ import axios from 'axios';
let baseUrl = `${process.env.REACT_APP_API_SERVER}/api/brainz`; let baseUrl = `${process.env.REACT_APP_API_SERVER}/api/brainz`;
export async function getArtist(mbid) { export async function getArtist(mbid) {
const url = `${baseUrl}/artist/${mbid}`; const url = `${baseUrl}/artist/${mbid}`;
const response = await axios.get(url) const response = await axios.get(url)
return response.data return response.data
} }
export async function getArtistDiscs(mbid, page = 1, per_page = 10) { export async function getArtistDiscs(mbid, page = 1, per_page = 10) {
const url = `${baseUrl}/artist/${mbid}/discs?per_page=${per_page}&page=${page}`; const url = `${baseUrl}/artist/${mbid}/discs?per_page=${per_page}&page=${page}`;
const response = await axios.get(url); const response = await axios.get(url);
return response.data return response.data
} }
export async function getDisc(mbid) { export async function getDisc(mbid) {
const url = `${baseUrl}/disc/${mbid}`; const url = `${baseUrl}/disc/${mbid}`;
const response = await axios.get(url); const response = await axios.get(url);
return response.data return response.data
} }
export async function getDiscVersions(mbid, page = 1, per_page = 10) { export async function getDiscVersions(mbid, page = 1, per_page = 10) {
const url = `${baseUrl}/disc/${mbid}/releases`; const url = `${baseUrl}/disc/${mbid}/releases`;
const response = await axios.get(url); const response = await axios.get(url);
return response.data return response.data
} }
export async function getRelease(mbid) { export async function getRelease(mbid) {
const url = `${baseUrl}/release/${mbid}`; const url = `${baseUrl}/release/${mbid}`;
const response = await axios.get(url); const response = await axios.get(url);
return response.data return response.data
} }
export async function getReleaseSongs(mbid) { export async function getReleaseSongs(mbid) {
const url = `${baseUrl}/release/${mbid}/recordings`; const url = `${baseUrl}/release/${mbid}/recordings`;
const response = await axios.get(url); const response = await axios.get(url);
return response.data return response.data
} }
export async function getSong(mbid) { export async function getSong(mbid) {
const url = `${baseUrl}/recording/${mbid}`; const url = `${baseUrl}/recording/${mbid}`;
const response = await axios.get(url); const response = await axios.get(url);
console.log(response.data); return response.data;
return response.data;
} }
export async function getDiscCoverArt(mbid) { export async function getDiscCoverArt(mbid) {
const url = `${baseUrl}/disc/${mbid}/coverart`; const url = `${baseUrl}/disc/${mbid}/coverart`;
const response = await axios.get(url); try{
return response.data const response = await axios.get(url);
return response.data;
} catch (error) {
// 404 es un caso común asi que es ignorado
if(error.response.status !== 404){
return error;
}
}
} }
export async function getReleaseCoverArt(mbid) { export async function getReleaseCoverArt(mbid) {
const url = `${baseUrl}/release/${mbid}/coverart`; const url = `${baseUrl}/release/${mbid}/coverart`;
const response = await axios.get(url); try{
return response.data const response = await axios.get(url);
return response.data;
} catch (error) {
// 404 es un caso común asi que es ignorado
if(error.response.status !== 404){
return error;
}
}
} }

View File

@@ -21,7 +21,7 @@ const PopularArtists = () => {
return <EntityList placeholder={true} size={4}/> return <EntityList placeholder={true} size={4}/>
} else { } else {
const items = artists.map((artist) => { const items = artists.map((artist) => {
const widget = (<span><FaEye class='icon'/> {Math.floor(Math.random() * 1000)}</span>); const widget = (<span><FaEye className='icon'/> {Math.floor(Math.random() * 1000)}</span>);
return { return {
'cover': null, 'cover': null,
'link': `/artist/${artist.id}`, 'link': `/artist/${artist.id}`,
@@ -50,7 +50,7 @@ const PopularDiscs = () => {
}else { }else {
const items = discs.map((disc) => { const items = discs.map((disc) => {
const cover = (<CoverArt disc={disc} size={2}/>); const cover = (<CoverArt disc={disc} size={2}/>);
const widget = (<span><FaEye class='icon'/> {Math.floor(Math.random() * 1000)}</span>) const widget = (<span><FaEye className='icon'/> {Math.floor(Math.random() * 1000)}</span>)
return { return {
'cover': cover, 'cover': cover,
'link': `/disc/${disc.id}`, 'link': `/disc/${disc.id}`,
@@ -80,7 +80,7 @@ const PopularSongs = () => {
return <EntityList placeholder={true} size={4}/> return <EntityList placeholder={true} size={4}/>
}else { }else {
const items = songs.map((song) => { const items = songs.map((song) => {
const widget = (<span><FaEye class='icon'/> {Math.floor(Math.random() * 1000)}</span>); const widget = (<span><FaEye className='icon'/> {Math.floor(Math.random() * 1000)}</span>);
return { return {
'cover': null, 'cover': null,
'link': `/song/${song.id}`, 'link': `/song/${song.id}`,