import { Box, Circle, Heading, Icon, Link, SimpleGrid, Stack, Text, VisuallyHidden, VStack, Wrap, WrapItem, } from '@chakra-ui/react' import fs from 'fs' import MDXLayout from 'layouts/mdx' import NextImage from 'next/image' import { IoIosGlobe, IoLogoGithub, IoLogoTwitter } from 'react-icons/io' import { IFormerMember } from 'scripts/get-former-members' import { Contributor, Member as IMember } from 'src/types/github' import { t } from 'utils/i18n' function SocialLink(props: { icon: React.ElementType href: string label: string }) { const { icon, href, label } = props return ( {label} ) } function Member(props: { member: IMember }) { const { avatar_url: avatarUrl, bio, name, twitter_username: twitterUsername, blog: websiteUrl, url, } = props.member return ( {name} {twitterUsername && ( )} {websiteUrl && ( )} {bio} ) } function FormerMember({ formerMember }: { formerMember: IFormerMember }) { return ( {formerMember.name} ) } interface TeamProps { members: IMember[] formerMembers: IFormerMember[] contributors: Contributor[] } function Team({ members, formerMembers, contributors }: TeamProps) { const memberLogins = members.map(({ login }) => login) const contributorsWithoutTeam = contributors.filter( ({ login }) => !memberLogins.includes(login), ) return ( {t('team.message')} {t('team.core-team')} {members.map((member) => ( ))} {formerMembers && ( {t('team.former-members')} {formerMembers.map( (member) => member.name && member.githubName && ( ), )} )} {t('team.our-sponsors')} {t('team.organizations')} {new Array(9).fill('').map((_, idx) => ( Open collective Organizations ))} {t('team.individuals')} Open collective Individuals {t('team.project-contributors')} {contributorsWithoutTeam.map((contributor) => ( ))} ) } export async function getStaticProps() { /** * Read the profile/bio of each member from `.all-membersrc` file * to avoid overfetching from Github */ const { members } = JSON.parse(fs.readFileSync('.all-membersrc', 'utf-8')) /** * Read former members from `.all-former-membersrc` file * to avoid overfetching from Github */ const formerMembers = JSON.parse( fs.readFileSync('.all-former-membersrc', 'utf-8'), ) /** * Read contributors from `.all-contributorsrc` file * to avoid overfetching from Github */ const { contributors } = JSON.parse( fs.readFileSync('.all-contributorsrc', 'utf-8'), ) return { props: { members, formerMembers, contributors, }, } } export default Team