mirror of
https://github.com/mastermindzh/rickvanlieshout.com
synced 2025-09-10 02:06:19 +02:00
40 lines
1.1 KiB
TypeScript
40 lines
1.1 KiB
TypeScript
import React from "react";
|
|
|
|
import * as styles from "./Contacts.module.scss";
|
|
import { Icon } from "@/components/Icon";
|
|
import { ICONS } from "@/constants";
|
|
import { Dictionary } from "@/types";
|
|
import { getContactHref, getIcon } from "@/utils";
|
|
|
|
type Props = {
|
|
contacts: Dictionary<string>;
|
|
};
|
|
|
|
const Contacts: React.FC<Props> = ({ contacts }: Props) => (
|
|
<div className={styles.contacts}>
|
|
<ul className={styles.list}>
|
|
{(Object.keys(contacts) as Array<keyof typeof ICONS>).map((name) =>
|
|
contacts[name] ? (
|
|
<li className={styles.item} key={name}>
|
|
<a
|
|
className={styles.link}
|
|
href={getContactHref(name, contacts[name])}
|
|
rel="noopener noreferrer"
|
|
target="_blank"
|
|
>
|
|
<Icon name={name} icon={getIcon(name)} />
|
|
</a>
|
|
</li>
|
|
) : null
|
|
)}
|
|
<li className={styles.item} key="keys">
|
|
<a className={styles.link} href="/keys.json" rel="noopener noreferrer" target="_blank">
|
|
<Icon name="keys" icon={getIcon("keys")} />
|
|
</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
);
|
|
|
|
export default Contacts;
|