Skip to content
Snippets Groups Projects
boardMemberCard.jsx 1.35 KiB
Newer Older
Alexander Schoch's avatar
Alexander Schoch committed
import { useRouter } from "next/router";

import { Avatar, Button, Paper, Text, useMantineTheme } from "@mantine/core";

import { Icon, ICONS } from "vseth-canine-ui";

Alexander Schoch's avatar
Alexander Schoch committed
import { getAccentColor } from "../utilities/colors";

Alexander Schoch's avatar
Alexander Schoch committed
export default function BoardMemberCard({ entry }) {
  const theme = useMantineTheme();
  const { locale, push } = useRouter();

  const sendMail = (address) => {
    push("mailto:" + address);
  };
Alexander Schoch's avatar
Alexander Schoch committed

  return (
    <Paper
      radius="md"
      withBorder
      p="lg"
      style={{
        display: "flex",
        flexDirection: "column",
        justifyContent: "space-between",
        flexGrow: 1,
      }}
      shadow="sm"
    >
      <div>
        <Avatar src={entry.image} size={120} radius={20} mx="auto" />
        <Text ta="center" fz="lg" weight={500} mt="md">
          {entry.name}
        </Text>
        <Text ta="center" c="dimmed" fz="sm">
          {entry.mail ? entry.mail.replace("@", " [ät] ") + "" : ""}
          {entry.role[locale || "en"]}
Alexander Schoch's avatar
Alexander Schoch committed
        </Text>
      </div>

      {entry.mail && (
        <div>
          <Button
            leftIcon={<Icon icon={ICONS.EMAIL} color={getAccentColor(theme)} />}
            variant="default"
            fullWidth
            mt="md"
            onClick={() => sendMail(entry.mail)}
          >
            Send message
          </Button>
Alexander Schoch's avatar
Alexander Schoch committed
    </Paper>
  );
}