Files for my website
bwc9876.dev
1---
2import IconLink, { type LabelPlacement } from "@components/IconLink.astro";
3
4type SocialData = Array<{
5 name: string;
6 icon: string;
7 link: string;
8 overridePack?: string;
9}>;
10
11export interface Props {
12 labelPlacement: LabelPlacement;
13 makeLinksUnfocusable?: boolean;
14 [rest: string | number | symbol]: unknown;
15}
16
17const socialData: SocialData = [
18 { name: "Resume", icon: "file-earmark-text-fill", link: "/resume.pdf" },
19 {
20 name: "Tangled",
21 icon: "dolly",
22 overridePack: "local",
23 link: "https://tangled.org/did:plc:x7tlupbnqot7nu6udnffnv4h"
24 },
25 { name: "Bluesky", icon: "bluesky", link: "https://bsky.app/profile/bwc9876.dev" },
26 { name: "PayPal", icon: "paypal", link: "https://paypal.me/bwc9876" },
27 { name: "GitHub", icon: "github", link: "https://github.com/Bwc9876" }
28];
29
30const { labelPlacement, makeLinksUnfocusable, ...rest } = Astro.props;
31---
32
33<span {...rest}>
34 {
35 socialData.map((s) => (
36 <IconLink
37 icon={s.icon}
38 overridePack={s.overridePack}
39 href={s.link}
40 label={s.name}
41 placement={labelPlacement}
42 isExternal
43 />
44 ))
45 }
46</span>
47
48<style>
49 span {
50 padding-left: 0;
51 display: flex;
52 flex-direction: row;
53 gap: var(--2);
54 }
55</style>