aboutsummaryrefslogtreecommitdiff
path: root/src/pages/Gear.tsx
diff options
context:
space:
mode:
authorschererleander <leander@schererleander.de>2025-05-30 01:01:17 +0200
committerschererleander <leander@schererleander.de>2025-05-30 01:01:17 +0200
commitafdc982863b6cca573f1db58e1795aa8c45fabca (patch)
tree6b94d2ffdcb0e1b5ccbaf584c825763ab72ab99d /src/pages/Gear.tsx
parent8f2c8393510dfefc22871661b0ef9964569e290b (diff)
rewrite site
Diffstat (limited to 'src/pages/Gear.tsx')
-rw-r--r--src/pages/Gear.tsx43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/pages/Gear.tsx b/src/pages/Gear.tsx
new file mode 100644
index 0000000..dbbcdfb
--- /dev/null
+++ b/src/pages/Gear.tsx
@@ -0,0 +1,43 @@
+import CardLink from '../components/CardLink';
+
+import {
+ dailyDrivers,
+ desktopParts,
+ nasParts,
+ type Part,
+} from '../data/gear';
+
+function PartsGroup({ title, parts }: { title?: string; parts: Part[] }) {
+ return (
+ <>
+ {title && <h2 className="text-2xl font-semibold my-8">{title}</h2>}
+ <ul className="space-y-2">
+ {parts.map((p) => (
+ <li key={p.name}>
+ <CardLink
+ title={p.name}
+ body={p.description}
+ href={p.url}
+ imgSrc={p.image}
+ />
+ </li>
+ ))}
+ </ul>
+ </>
+ );
+}
+
+export default function GearPage() {
+ return (
+ <>
+ <title>߸ gear</title>
+ <h1>Gear</h1>
+
+ <PartsGroup parts={dailyDrivers} />
+
+ <PartsGroup title="Desktop" parts={desktopParts} />
+
+ <PartsGroup title="NAS" parts={nasParts} />
+ </>
+ );
+} \ No newline at end of file