Placeholders en Search

This commit is contained in:
Daniel Cortes
2020-06-16 03:05:53 -04:00
parent 32353f814c
commit 049f7e83d7
2 changed files with 27 additions and 4 deletions

View File

@@ -2,6 +2,20 @@ import React from "react";
import {Link} from "react-router-dom"; import {Link} from "react-router-dom";
import "./EntityList.scss" import "./EntityList.scss"
const EntityPlaceholder = (props) => {
return (
<li className='entity-item pulsating'>
<Link to={props.link}>
{props.cover && <div className='cover'/>}
<div className='body'>
<span class='title'>&nbsp;</span>
<span className='subtitle'>&nbsp;</span>
</div>
</Link>
</li>
)
}
const EntityItem = (props) => { const EntityItem = (props) => {
return ( return (
<li className='entity-item'> <li className='entity-item'>
@@ -21,8 +35,17 @@ const EntityItem = (props) => {
} }
export const EntityList = (props) => { export const EntityList = (props) => {
const entities = props.items.map(item => <EntityItem cover={item.cover} link={item.link} let entities;
if(props.placeholder){
entities = [];
for(const i of Array(props.size).keys()){
entities.push(<EntityPlaceholder key={i} cover={props.cover}/>)
}
}else{
entities = props.items.map(item => <EntityItem cover={item.cover} link={item.link}
title={item.title} subtitle={item.subtitle}/>); title={item.title} subtitle={item.subtitle}/>);
}
const className = props.grid ? "grid" : "column"; const className = props.grid ? "grid" : "column";
return ( return (

View File

@@ -39,7 +39,7 @@ const SearchSongs = (props) => {
}; };
let songsComponent = <Fragment/>; let songsComponent = <EntityList placeholder={true} size={10}/>;
if (songs) { if (songs) {
const items = songs.map((song) => { const items = songs.map((song) => {
return { return {
@@ -99,7 +99,7 @@ const SearchDiscs = (props) => {
}) })
}; };
let discsComponent = <Fragment/>; let discsComponent = <EntityList placeholder={true} size={10} cover={true}/>;
if (discs) { if (discs) {
const items = discs.map((disc) => ({ const items = discs.map((disc) => ({
'cover': <CoverArt disc={disc}/>, 'cover': <CoverArt disc={disc}/>,
@@ -157,7 +157,7 @@ const SearchArtists = (props) => {
}) })
}; };
let artistsContent = <Fragment/>; let artistsContent = <EntityList placeholder={true} size={10}/>;
if (artists) { if (artists) {
const items = artists.map((artist) => ({ const items = artists.map((artist) => ({
'cover': null, 'cover': null,