FunctionProject/frontend/components/FunctionCard/FunctionCard.js

36 lines
1.5 KiB
JavaScript
Raw Normal View History

import Link from 'next/link';
2020-03-21 16:43:37 +01:00
import { useState, Fragment } from 'react';
import Loader from '../Loader/Loader';
import './FunctionCard.css';
2020-03-21 16:43:37 +01:00
const FunctionCard = (props) => {
const [isLoading, setIsLoading] = useState(true);
const handleLoad = () => {
setIsLoading(false);
}
return (
<Link href={`/functions/${props.slug}`}>
<Fragment>
<div className={"FunctionCard col-sm-24 col-md-10 col-xl-7"}>
{isLoading && <Loader width="100px" height="100px" />}
<div className={`FunctionCard__container ${isLoading ? "d-none" : ""}`}>
<div className="FunctionCard__top">
<img onLoad={handleLoad} className="FunctionCard__image" alt={props.title} src={props.image} />
<h2 className="FunctionCard__title">{props.title}</h2>
<p className="FunctionCard__description">{props.description}</p>
</div>
<div className="FunctionCard__info">
<p className="FunctionCard__category" style={{ backgroundColor: props.category.color }}>{props.category.name}</p>
<p className="FunctionCard__publication-date">{props.publicationDate}</p>
</div>
</div>
</div>
</Fragment>
</Link>
);
}
export default FunctionCard;