* [wip] update team page * Update old site and alumni * Add more team members * Update old page too * Shrink images * Add remaining people on updated team pages (#5327) * updates * remove active members from acknowledgements * mobile styles for social/links * update jason image * clarify Jasons role * image alt text * Move all content into <TeamMember> incl headers * icon for personal site links * update TOC to extract beyond top-level elements * cleanup * github link should...point to github. oops * this can no longer be described as a small team * Update beta/src/content/learn/meet-the-team.md * Update content/community/team.md Co-authored-by: Sathya Gunasekaran <gsathya.ceg@gmail.com> Co-authored-by: Rick Hanlon <rickhanlonii@fb.com> Co-authored-by: lauren <poteto@users.noreply.github.com> Co-authored-by: Sathya Gunasekaran <gsathya.ceg@gmail.com>main
Before Width: | Height: | Size: 6.8 MiB After Width: | Height: | Size: 111 KiB |
Before Width: | Height: | Size: 388 KiB |
Before Width: | Height: | Size: 428 KiB After Width: | Height: | Size: 78 KiB |
Before Width: | Height: | Size: 340 KiB |
After Width: | Height: | Size: 232 KiB |
After Width: | Height: | Size: 90 KiB |
After Width: | Height: | Size: 121 KiB |
After Width: | Height: | Size: 147 KiB |
Before Width: | Height: | Size: 406 KiB After Width: | Height: | Size: 150 KiB |
After Width: | Height: | Size: 2.3 MiB |
Before Width: | Height: | Size: 378 KiB |
Before Width: | Height: | Size: 278 KiB After Width: | Height: | Size: 116 KiB |
Before Width: | Height: | Size: 302 KiB |
Before Width: | Height: | Size: 75 KiB |
After Width: | Height: | Size: 100 KiB |
After Width: | Height: | Size: 69 KiB |
Before Width: | Height: | Size: 226 KiB After Width: | Height: | Size: 89 KiB |
After Width: | Height: | Size: 160 KiB |
Before Width: | Height: | Size: 301 KiB After Width: | Height: | Size: 301 KiB |
After Width: | Height: | Size: 167 KiB |
Before Width: | Height: | Size: 503 KiB |
After Width: | Height: | Size: 51 KiB |
Before Width: | Height: | Size: 64 KiB |
@ -0,0 +1,25 @@ |
|||||
|
/* |
||||
|
* Copyright (c) Facebook, Inc. and its affiliates. |
||||
|
*/ |
||||
|
|
||||
|
import {memo} from 'react'; |
||||
|
|
||||
|
export const IconLink = memo<JSX.IntrinsicElements['svg']>(function IconLink( |
||||
|
props |
||||
|
) { |
||||
|
return ( |
||||
|
<svg |
||||
|
xmlns="http://www.w3.org/2000/svg" |
||||
|
width="1.33em" |
||||
|
height="1.33em" |
||||
|
viewBox="0 -2 24 24" |
||||
|
fill="currentColor" |
||||
|
{...props}> |
||||
|
<path |
||||
|
strokeLinecap="round" |
||||
|
strokeLinejoin="round" |
||||
|
d="M13.19 8.688a4.5 4.5 0 011.242 7.244l-4.5 4.5a4.5 4.5 0 01-6.364-6.364l1.757-1.757m13.35-.622l1.757-1.757a4.5 4.5 0 00-6.364-6.364l-4.5 4.5a4.5 4.5 0 001.242 7.244" |
||||
|
/> |
||||
|
</svg> |
||||
|
); |
||||
|
}); |
@ -0,0 +1,98 @@ |
|||||
|
/* |
||||
|
* Copyright (c) Facebook, Inc. and its affiliates. |
||||
|
*/ |
||||
|
|
||||
|
import * as React from 'react'; |
||||
|
import Image from 'next/image'; |
||||
|
import {IconTwitter} from '../Icon/IconTwitter'; |
||||
|
import {IconGitHub} from '../Icon/IconGitHub'; |
||||
|
import {ExternalLink} from '../ExternalLink'; |
||||
|
import {IconNewPage} from 'components/Icon/IconNewPage'; |
||||
|
import {H3} from './Heading'; |
||||
|
import {IconLink} from 'components/Icon/IconLink'; |
||||
|
|
||||
|
interface TeamMemberProps { |
||||
|
name: string; |
||||
|
title: string; |
||||
|
permalink: string; |
||||
|
children: React.ReactNode; |
||||
|
photo: string; |
||||
|
twitter?: string; |
||||
|
github?: string; |
||||
|
personal?: string; |
||||
|
} |
||||
|
|
||||
|
// TODO: good alt text for images/links
|
||||
|
export function TeamMember({ |
||||
|
name, |
||||
|
title, |
||||
|
permalink, |
||||
|
children, |
||||
|
photo, |
||||
|
github, |
||||
|
twitter, |
||||
|
personal, |
||||
|
}: TeamMemberProps) { |
||||
|
if (name == null || title == null || permalink == null || children == null) { |
||||
|
throw new Error( |
||||
|
'Expected name, title, permalink, and children for ' + name ?? |
||||
|
title ?? |
||||
|
permalink ?? |
||||
|
'unknown' |
||||
|
); |
||||
|
} |
||||
|
return ( |
||||
|
<div className="pb-6 sm:pb-10"> |
||||
|
<div className="flex flex-col sm:flex-row height-auto"> |
||||
|
<div |
||||
|
className="hidden sm:block basis-2/5 rounded overflow-hidden relative" |
||||
|
style={{width: 300, height: 250}}> |
||||
|
<Image src={photo} layout="fill" objectFit="cover" alt={name} /> |
||||
|
</div> |
||||
|
<div |
||||
|
style={{minHeight: 300}} |
||||
|
className="block w-full sm:hidden flex-grow basis-2/5 rounded overflow-hidden relative"> |
||||
|
<Image src={photo} layout="fill" objectFit="cover" alt={name} /> |
||||
|
</div> |
||||
|
<div className="pl-0 sm:pl-6 basis-3/5 items-start"> |
||||
|
<H3 className="mb-1 sm:my-0" id={permalink}> |
||||
|
{name} |
||||
|
</H3> |
||||
|
{title && <div>{title}</div>} |
||||
|
{children} |
||||
|
<div className="sm:flex sm:flex-row"> |
||||
|
{twitter && ( |
||||
|
<div className="mr-4"> |
||||
|
<ExternalLink |
||||
|
aria-label="React on Twitter" |
||||
|
href={`https://twitter.com/${twitter}`} |
||||
|
className="hover:text-primary dark:text-primary-dark flex flex-row items-center"> |
||||
|
<IconTwitter className="pr-2" /> |
||||
|
{twitter} |
||||
|
</ExternalLink> |
||||
|
</div> |
||||
|
)} |
||||
|
{github && ( |
||||
|
<div className="mr-4"> |
||||
|
<ExternalLink |
||||
|
aria-label="GitHub Profile" |
||||
|
href={`https://github.com/${github}`} |
||||
|
className="hover:text-primary dark:text-primary-dark flex flex-row items-center"> |
||||
|
<IconGitHub className="pr-2" /> {github} |
||||
|
</ExternalLink> |
||||
|
</div> |
||||
|
)} |
||||
|
{personal && ( |
||||
|
<ExternalLink |
||||
|
aria-label="Personal Site" |
||||
|
href={`https://${personal}`} |
||||
|
className="hover:text-primary dark:text-primary-dark flex flex-row items-center"> |
||||
|
<IconLink className="pr-2" /> {personal} |
||||
|
</ExternalLink> |
||||
|
)} |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
); |
||||
|
} |
Before Width: | Height: | Size: 6.8 MiB After Width: | Height: | Size: 111 KiB |
Before Width: | Height: | Size: 388 KiB |
Before Width: | Height: | Size: 428 KiB After Width: | Height: | Size: 78 KiB |
Before Width: | Height: | Size: 340 KiB |
After Width: | Height: | Size: 232 KiB |
After Width: | Height: | Size: 130 KiB |
After Width: | Height: | Size: 185 KiB |
After Width: | Height: | Size: 147 KiB |
Before Width: | Height: | Size: 406 KiB After Width: | Height: | Size: 150 KiB |
After Width: | Height: | Size: 2.3 MiB |
Before Width: | Height: | Size: 378 KiB |
Before Width: | Height: | Size: 278 KiB After Width: | Height: | Size: 116 KiB |
Before Width: | Height: | Size: 302 KiB |
Before Width: | Height: | Size: 75 KiB |
After Width: | Height: | Size: 101 KiB |
After Width: | Height: | Size: 69 KiB |
Before Width: | Height: | Size: 226 KiB After Width: | Height: | Size: 89 KiB |
After Width: | Height: | Size: 160 KiB |
Before Width: | Height: | Size: 301 KiB After Width: | Height: | Size: 301 KiB |
After Width: | Height: | Size: 167 KiB |
Before Width: | Height: | Size: 503 KiB |
After Width: | Height: | Size: 78 KiB |
Before Width: | Height: | Size: 64 KiB |