Files
blog/src/links/LinkTree.tsx
Tymur Arsentiev 1c78e959f6
All checks were successful
/ image_build (push) Successful in 5m41s
add LinkTree like links page
2026-09-25 11:15:40 -04:00

38 lines
1.1 KiB
TypeScript

import "./links.sass";
import {Link as LinkBase} from "../router/Link";
import {Path} from "../router/router";
import {Link} from "./link";
import {LINKS} from "./links";
import {motion} from "motion/react";
import {AnimateFade} from "../animations";
export default function LinkTree() {
return <motion.main className="link-tree" {...AnimateFade()}>
<section className="link-ctr">
{
LINKS.map(link => <LinkBox key={link.name} {...link}/>)
}
</section>
</motion.main>
}
function LinkBox(props: Link) {
const {name, desc, img, href} = props;
return <section className="link-box">
<LinkBase target="_blank" className="link-box-ctr" href={href as Path}>
<div className="link-img-ctr">
{
img && <img className="link-img" src={img.href} alt={img.alt} width={100} height={100}/>
}
</div>
<div className="content-ctr">
<div className="link-title">
<h2>{name}</h2>
</div>
<div className="link-desc">{desc}</div>
</div>
</LinkBase>
</section>
}