add contact pages and blocks
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
import { ContactEntityBlock as ContactEntityBlockType } from "@/gql/graphql";
|
||||
import styles from "./contactEntityBlock.module.scss";
|
||||
import { formatNorwegianPhoneNumber, formatPhoneE164 } from "@/lib/common";
|
||||
|
||||
export const ContactEntityBlock = ({
|
||||
block,
|
||||
}: {
|
||||
block: ContactEntityBlockType;
|
||||
}) => {
|
||||
// TODO: image
|
||||
|
||||
const contact = block?.contactEntity;
|
||||
|
||||
if (!contact) {
|
||||
return <></>;
|
||||
}
|
||||
|
||||
const phoneE164 = contact.phoneNumber && formatPhoneE164(contact.phoneNumber);
|
||||
const phoneFormatted = phoneE164 && formatNorwegianPhoneNumber(phoneE164);
|
||||
|
||||
return (
|
||||
<li className={styles.contactItem}>
|
||||
<div className={styles.image}></div>
|
||||
<div className={styles.text}>
|
||||
<h1 className={styles.name}>{contact.name}</h1>
|
||||
{contact.title && <p className={styles.role}>{contact.title}</p>}
|
||||
{(contact.email || phoneE164) && (
|
||||
<ul className={styles.contact}>
|
||||
{contact.email && (
|
||||
<li>
|
||||
<span className={styles.icon}>✉ </span>
|
||||
<a href={`mailto:${contact.email}`} target="_blank">
|
||||
{contact.email}
|
||||
</a>
|
||||
</li>
|
||||
)}
|
||||
{phoneE164 && (
|
||||
<li>
|
||||
<span className={styles.icon}>☎ </span>
|
||||
<a href={`tel:${phoneE164}`} target="_blank">
|
||||
{phoneFormatted}
|
||||
</a>
|
||||
</li>
|
||||
)}
|
||||
</ul>
|
||||
)}
|
||||
</div>
|
||||
</li>
|
||||
);
|
||||
};
|
||||
Reference in New Issue
Block a user