Files
graff.estate/client/src/components/ProjectCard.tsx
T
2023-11-17 19:04:17 +05:00

64 lines
1.9 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import { isAfter, parse } from "date-fns";
import { motion } from "framer-motion";
interface ProjectCardProps {
title: string;
company: string;
image: string;
releaseDate: string;
stream?: boolean;
}
function ProjectCard({
title,
company,
image,
releaseDate,
stream,
}: ProjectCardProps) {
return (
<motion.div
initial={{ opacity: 0 }}
whileInView={{ opacity: 1 }}
viewport={{ once: true, margin: "-100px" }}
transition={{ duration: 1, ease: [0.58, 0.12, 0.27, 0.98], delay: 0.2 }}
className="aspect-[4/3] p-6 bg-cover bg-center bg-no-repeat flex items-end"
style={{
background: `linear-gradient(180deg, rgba(20, 22, 31, 0.00) 0%, rgba(20, 22, 31, 0.60) 100%), url('${image}'), lightgray 50% / cover no-repeat`,
}}
>
<div className="flex flex-col gap-4">
<div>
<p className="text-2xl font-gilroy font-medium">{title}</p>
<p className="text-sm">{company}</p>
</div>
<div className="flex gap-2">
{isAfter(parse(releaseDate, "dd.MM.yyyy", new Date()), new Date()) ? (
<div className="bg-[#14161F] px-4 py-2.5 rounded-full w-fit">
<p className="font-gilroy font-medium leading-none">
Релиз {releaseDate}
</p>
</div>
) : (
<div className="bg-gradient px-4 py-2.5 rounded-full w-fit">
<p className="font-gilroy font-medium leading-none">Сдан</p>
</div>
)}
{stream && (
<div className="bg-[#14161F] px-4 py-2.5 rounded-full w-fit flex items-center gap-2">
<div className="w-2 h-2 bg-gradient rounded-full"></div>
<p className="font-gilroy font-semibold leading-none text-gradient">
Stream
</p>
</div>
)}
</div>
</div>
</motion.div>
);
}
export default ProjectCard;