All checks were successful
Build and Deploy Gabriel Kaszewski Portfolio / build-and-deploy-local (push) Successful in 1m32s
- Added essays: qui-sumus-existential-dread.pdf and licencjat.pdf - Added scripts: loop.pdf - Added images: DSC_1283.avif, GAK00015.avif, GAK00017.avif, GAK00041.avif, GAK00042.avif, painter.avif, parasitic-god-1.avif, parasitic-god-2.avif, parasitic-god-3.avif, parasitic-god-4.avif, parasitic-god-5.avif, spanish-inq-1.avif, spanish-inq-2.avif, spanish-inq-3.avif, spanish-inq-4.avif, typing-game-1.avif, typing-game-2.avif
36 lines
988 B
TypeScript
36 lines
988 B
TypeScript
import { Writing } from "@/lib/types";
|
|
import { FileText } from "lucide-react";
|
|
|
|
const kindLabel: Record<Writing["kind"], string> = {
|
|
essay: "Essay",
|
|
script: "Script",
|
|
other: "Other",
|
|
novel: "Novel",
|
|
};
|
|
|
|
const WritingsList = ({ writings }: { writings: Writing[] }) => {
|
|
return (
|
|
<div className="flex flex-col gap-3 w-full max-w-lg">
|
|
{writings.map((w) => (
|
|
<a
|
|
key={w.url}
|
|
href={w.url}
|
|
target="_blank"
|
|
rel="noopener noreferrer"
|
|
className="flex items-center gap-3 px-4 py-3 rounded-lg text-white hover:bg-white/10 transition-colors group"
|
|
>
|
|
<FileText className="w-5 h-5 text-yellow-400 shrink-0" />
|
|
<span className="group-hover:text-yellow-400 transition-colors">
|
|
{w.title}
|
|
</span>
|
|
<span className="text-white/40 text-sm ml-auto">
|
|
{kindLabel[w.kind]}
|
|
</span>
|
|
</a>
|
|
))}
|
|
</div>
|
|
);
|
|
};
|
|
|
|
export default WritingsList;
|