diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml deleted file mode 100644 index 7112600..0000000 --- a/.github/workflows/release-please.yml +++ /dev/null @@ -1,19 +0,0 @@ -name: release-please -on: - push: - branches: - - main - workflow_dispatch: - -permissions: - contents: write - pull-requests: write - -jobs: - release-please: - runs-on: ubuntu-latest - steps: - - uses: google-github-actions/release-please-action@v3 - with: - release-type: node - package-name: aireadi.org diff --git a/public/data/team.json b/public/data/team.json index d5eedc1..d9cf6a5 100644 --- a/public/data/team.json +++ b/public/data/team.json @@ -3,23 +3,36 @@ "id": "Bhavesh-Patel", "name": "Bhavesh Patel", "pronoun": "he/him", - "roles": ["Associate Research Professor"], + "roles": ["Associate Research Professor", "Director"], "department": "FAIR Data Innovations Hub", "organization": "California Medical Innovations Institute", "location": "San Diego, CA", - "caption": "Qui molestiae aspernatur a ducimus architecto et impedit molestias aut voluptatem molestiae in omnis placeat aut veniam exercitationem. Sit autem nobis ex sequi quia ut quia provident eos quas molestiae ab eveniet eaque ut eius dignissimos? Et error sequi et voluptates iure eum nulla optio aut quia illo.", + "about": "Qui molestiae aspernatur a ducimus architecto et impedit molestias aut voluptatem molestiae in omnis placeat aut veniam exercitationem. Sit autem nobis ex sequi quia ut quia provident eos quas molestiae ab eveniet eaque ut eius dignissimos? Et error sequi et voluptates iure eum nulla optio aut quia illo. Qui molestiae aspernatur a ducimus architecto et impedit molestias aut. Qui molestiae aspernatur a ducimus architecto et impedit molestias aut. Qui molestiae aspernatur a ducimus architecto et.", "image": "https://ucarecdn.com/b36da179-1c47-4fa9-9e9b-9001ffc9b869/-/quality/smart_retina/-/format/auto/-/progressive/yes/", - "moduleImageParams": "-/crop/face/200px180p/", + "moduleImageParams": "-/crop/face/200px200p/", "modules": [ "data-sharing", "capacity-building", "american-indian-engagement", "data-collection" ], + "education": [ + { "degree": "MD Internal Medicine", "institution": "" }, + { "degree": "MS Ophthalmology", "institution": "" }, + { "degree": "MCR Translational Research", "institution": "" } + ], + "expertise": [ + "Translational Medicine", + "Research Methodology Training", + "Grant Writing" + ], "social": { "website": ["https://fairdataihub.org"], "linkedin": "https://linkedin.com/in/bvhpatel", - "twitter": "https://twitter.com/fairdataihub" + "twitter": "https://twitter.com/fairdataihub", + "resume": "https://fairdataihub.org/resume", + "instagram": "https://instagram.com/fairdataihub", + "github": "https://github.com/slugb0t" } }, { @@ -30,14 +43,27 @@ "department": "FAIR Data Innovations Hub", "organization": "California Medical Innovations Institute", "location": "San Diego, CA", - "caption": "Qui molestiae aspernatur a ducimus architecto et impedit molestias aut voluptatem molestiae in omnis placeat aut veniam exercitationem. Sit autem nobis ex sequi quia ut quia provident eos quas molestiae ab eveniet eaque ut eius dignissimos? Et error sequi et voluptates iure eum nulla optio aut quia illo. ", + "about": "Qui molestiae aspernatur a ducimus architecto et impedit molestias aut voluptatem molestiae in omnis placeat aut veniam exercitationem. Sit autem nobis ex sequi quia ut quia provident eos quas molestiae ab eveniet eaque ut eius dignissimos? Et error sequi et voluptates iure eum nulla optio aut quia illo. Qui molestiae aspernatur a ducimus architecto et impedit molestias aut. Qui molestiae aspernatur a ducimus architecto et impedit molestias aut. Qui molestiae aspernatur a ducimus architecto et.", "image": "https://ucarecdn.com/dca922ac-d2dc-4fb4-8c37-5bdc2d5aa768/-/quality/smart_retina/-/format/auto/-/progressive/yes/", - "moduleImageParams": "-/crop/face/200px150p/", + "moduleImageParams": "-/crop/face/250px200p/", "modules": ["data-sharing", "data-sharing", "data-collection"], + "education": [ + { "degree": "MD Internal Medicine", "institution": "" }, + { "degree": "MS Ophthalmology", "institution": "" }, + { "degree": "MCR Translational Research", "institution": "" } + ], + "expertise": [ + "Translational Medicine", + "Research Methodology Training", + "Grant Writing" + ], "social": { - "website": ["https://sanjaysoundarajan.dev"], - "github": "https://github.com/megasanjay", - "twitter": "https://twitter.com/megasanjay" + "website": ["https://fairdataihub.org"], + "linkedin": "https://linkedin.com/in/bvhpatel", + "twitter": "https://twitter.com/fairdataihub", + "resume": "https://fairdataihub.org/resume", + "instagram": "https://instagram.com/fairdataihub", + "github": "https://github.com/slugb0t" } }, { @@ -48,14 +74,121 @@ "department": "FAIR Data Innovations Hub", "organization": "California Medical Innovations Institute", "location": "San Bernardino, CA", - "caption": "Qui molestiae aspernatur a ducimus architecto et impedit molestias aut voluptatem molestiae in omnis placeat aut veniam exercitationem. Sit autem nobis ex sequi quia ut quia provident eos quas molestiae ab eveniet eaque ut eius dignissimos? Et error sequi et voluptates iure eum nulla optio aut quia illo. ", + "about": "Qui molestiae aspernatur a ducimus architecto et impedit molestias aut voluptatem molestiae in omnis placeat aut veniam exercitationem. Sit autem nobis ex sequi quia ut quia provident eos quas molestiae ab eveniet eaque ut eius dignissimos? Et error sequi et voluptates iure eum nulla optio aut quia illo. Qui molestiae aspernatur a ducimus architecto et impedit molestias aut. Qui molestiae aspernatur a ducimus architecto et impedit molestias aut. Qui molestiae aspernatur a ducimus architecto et.", "image": "https://ucarecdn.com/a3ed77eb-24bc-4b55-b8f9-118a9d07f760/-/quality/smart_retina/-/format/auto/-/progressive/yes/", - "moduleImageParams": "-/crop/face/200px200p/", + "moduleImageParams": "-/crop/face/250px250p/", + "modules": ["data-sharing", "data-collection"], + "education": [ + { "degree": "MD Internal Medicine", "institution": "" }, + { "degree": "MS Ophthalmology", "institution": "" }, + { "degree": "MCR Translational Research", "institution": "" } + ], + "expertise": [ + "Translational Medicine", + "Research Methodology Training", + "Grant Writing" + ], + "social": { + "website": ["https://fairdataihub.org"], + "linkedin": "https://linkedin.com/in/bvhpatel", + "instagram": "https://instagram.com/fairdataihub", + "github": "https://github.com/slugb0t" + } + }, + { + "id": "Bhavesh-Patel1", + "name": "Bhavesh Patel", + "pronoun": "he/him", + "roles": ["Associate Research Professor"], + "department": "FAIR Data Innovations Hub", + "organization": "California Medical Innovations Institute", + "location": "San Diego, CA", + "about": "Qui molestiae aspernatur a ducimus architecto et impedit molestias aut voluptatem molestiae in omnis placeat aut veniam exercitationem. Sit autem nobis ex sequi quia ut quia provident eos quas molestiae ab eveniet eaque ut eius dignissimos? Et error sequi et voluptates iure eum nulla optio aut quia illo.", + "image": "https://ucarecdn.com/b36da179-1c47-4fa9-9e9b-9001ffc9b869/-/quality/smart_retina/-/format/auto/-/progressive/yes/", + "moduleImageParams": "-/crop/face/250px200p/", + "modules": [ + "data-sharing", + "capacity-building", + "american-indian-engagement", + "data-collection" + ], + "education": [ + { "degree": "MD Internal Medicine", "institution": "" }, + { "degree": "MS Ophthalmology", "institution": "" }, + { "degree": "MCR Translational Research", "institution": "" } + ], + "expertise": [ + "Translational Medicine", + "Research Methodology Training", + "Grant Writing" + ], + "social": { + "website": ["https://fairdataihub.org"], + "linkedin": "https://linkedin.com/in/bvhpatel", + "twitter": "https://twitter.com/fairdataihub", + "resume": "https://fairdataihub.org/resume", + "instagram": "https://instagram.com/fairdataihub", + "github": "https://github.com/slugb0t" + } + }, + { + "id": "Sanjay-Soundarajan1", + "name": "Sanjay Soundarajan", + "pronoun": "he/him", + "roles": ["Front End Developer"], + "department": "FAIR Data Innovations Hub", + "organization": "California Medical Innovations Institute", + "location": "San Diego, CA", + "about": "Qui molestiae aspernatur a ducimus architecto et impedit molestias aut voluptatem molestiae in omnis placeat aut veniam exercitationem. Sit autem nobis ex sequi quia ut quia provident eos quas molestiae ab eveniet eaque ut eius dignissimos? Et error sequi et voluptates iure eum nulla optio aut quia illo. ", + "image": "https://ucarecdn.com/dca922ac-d2dc-4fb4-8c37-5bdc2d5aa768/-/quality/smart_retina/-/format/auto/-/progressive/yes/", + "moduleImageParams": "-/crop/face/250px200p/", + "modules": ["data-sharing", "data-sharing", "data-collection"], + "education": [ + { "degree": "MD Internal Medicine", "institution": "" }, + { "degree": "MS Ophthalmology", "institution": "" }, + { "degree": "MCR Translational Research", "institution": "" } + ], + "expertise": [ + "Translational Medicine", + "Research Methodology Training", + "Grant Writing" + ], + "social": { + "website": ["https://fairdataihub.org"], + "linkedin": "https://linkedin.com/in/bvhpatel", + "twitter": "https://twitter.com/fairdataihub", + "resume": "https://fairdataihub.org/resume" + } + }, + { + "id": "Dorian-Portillo1", + "name": "Dorian Portillo", + "pronoun": "they/them", + "roles": ["Web Developer"], + "department": "FAIR Data Innovations Hub", + "organization": "California Medical Innovations Institute", + "location": "San Bernardino, CA", + "about": "Qui molestiae aspernatur a ducimus architecto et impedit molestias aut voluptatem molestiae in omnis placeat aut veniam exercitationem. Sit autem nobis ex sequi quia ut quia provident eos quas molestiae ab eveniet eaque ut eius dignissimos? Et error sequi et voluptates iure eum nulla optio aut quia illo. ", + "image": "https://ucarecdn.com/a3ed77eb-24bc-4b55-b8f9-118a9d07f760/-/quality/smart_retina/-/format/auto/-/progressive/yes/", + "moduleImageParams": "-/crop/face/250px250p/", "modules": ["data-sharing", "data-collection"], + "education": [ + { "degree": "MD Internal Medicine", "institution": "" }, + { "degree": "MS Ophthalmology", "institution": "" }, + { "degree": "MCR Translational Research", "institution": "" } + ], + "expertise": [ + "Translational Medicine", + "Research Methodology Training", + "Grant Writing" + ], "social": { - "website": ["https://dorianportillo.dev"], - "github": "https://github.com/slugb0t", - "linkedin": "https://www.linkedin.com/in/dorian-portillo-4733b61b5/" + "website": ["https://fairdataihub.org"], + "linkedin": "https://linkedin.com/in/bvhpatel", + "twitter": "https://twitter.com/fairdataihub", + "resume": "https://fairdataihub.org/resume", + "instagram": "https://instagram.com/fairdataihub", + "github": "https://github.com/slugb0t" } } ] diff --git a/src/pages/team/index.tsx b/src/pages/team/index.tsx index 15addd3..c99443b 100644 --- a/src/pages/team/index.tsx +++ b/src/pages/team/index.tsx @@ -1,255 +1,360 @@ /* eslint-disable @next/next/no-img-element */ -import { Divider } from '@chakra-ui/react'; +import { + Grid, + GridItem, + Modal, + ModalBody, + ModalCloseButton, + ModalContent, + ModalOverlay, + Tag, + useDisclosure, + VStack, +} from '@chakra-ui/react'; import { SkipNavContent, SkipNavLink } from '@chakra-ui/skip-nav'; +import { motion } from 'framer-motion'; import { InferGetStaticPropsType } from 'next'; import Image from 'next/image'; import { getPlaiceholder } from 'plaiceholder'; -import { AiFillGithub, AiFillLinkedin, AiOutlineTwitter } from 'react-icons/ai'; -import { BiBuildingHouse } from 'react-icons/bi'; -import { BsGlobe, BsMastodon } from 'react-icons/bs'; -import { FaHospitalUser } from 'react-icons/fa'; -import { HiUserGroup } from 'react-icons/hi'; +import { useState } from 'react'; +import { FaRegBuilding } from 'react-icons/fa'; +import { + FaGithub, + FaGlobe, + FaInstagram, + FaLinkedin, + FaTwitter, +} from 'react-icons/fa'; +import { FaCircleInfo } from 'react-icons/fa6'; import { IoSchoolSharp } from 'react-icons/io5'; -import { MdLocationOn } from 'react-icons/md'; -import { RiInstagramFill } from 'react-icons/ri'; +import { IoLocationOutline } from 'react-icons/io5'; +import { MdOutlineBadge } from 'react-icons/md'; +import { PiUserListBold } from 'react-icons/pi'; +import { RiAwardFill } from 'react-icons/ri'; import Layout from '@/components/layout/Layout'; +import UnstyledLink from '@/components/links/UnstyledLink'; import Seo from '@/components/Seo'; -import TEAM_JSON from '~/data/team.json'; - -const TeamPage: React.FC> = ({ - TeamMembers, -}) => ( - <> - Skip to content +import { FramerContainer } from '@/utils/framer'; - - - -
- +import TEAM_JSON from '~/data/team.json'; -
-
-
-

- Our Team -

-

- Meet the people behind the scenes who make it all happen -

+interface Member { + id: string; + name: string; + image: string; + organization: string; + blurDataURL: string; + moduleImageParams: string; + education: { degree: string; institution: string }[]; + expertise?: string[]; + about: string; + pronoun?: string; + roles?: string[]; + location?: string; + social: { + linkedin?: string; + resume?: string; + medprofile?: string; + website?: string[]; + twitter?: string; + instagram?: string; + github?: string; + }; +} + +const MembersGrid: React.FC<{ + members: Member[]; + openModal: (scholarId: string) => void; +}> = ({ members, openModal }) => { + return ( + + {members.map((scholar) => ( + openModal(scholar.id)} + > +
+ {scholar.name + {/* Text overlay */} +
+

+ {scholar.name} +

+
+ +

+ {scholar.education[0].degree} +

+
+
+
+ ))} +
+ ); +}; -
- {TeamMembers.map((member, index) => ( -
-
- user profile picture -
- -
-

- {member.name}{' '} - {member.pronoun && ( - - ({member.pronoun}) - - )} -

- - {member.roles.map((role, index) => ( -

- {role} -

- ))} - - - -
- {member.department && ( -
-
- -
-

{member.department}

-
- )} - - {member.organization && ( -
-
- -
-

{member.organization}

-
- )} -
- -
- -

{member.location}

-
- - - -

- {member.caption} -

- - {/* */} +const ScholarsPage: React.FC< + InferGetStaticPropsType +> = ({ AllMembers }) => { + const { isOpen, onOpen, onClose } = useDisclosure(); + const [selectedScholar, setSelectedScholar] = useState(null); - {/* */} + const openModal = (scholarid: string) => { + const scholar = AllMembers.find((scholar) => scholar.id === scholarid); - {Object.keys(member.social).length > 0 && ( - - )} + if (!scholar) { + return; + } - -
-
- ))} -
-
-
-
-
- -); + + + {/* Education */} +
+

+ + Education +

+ +
+ + {/* Expertise */} +
+

+ + Expertise +

+
+ {selectedScholar?.expertise?.map( + (expertise, index) => ( + + {expertise} + + ), + )} +
+
+ + {/* About Me */} +
+

+ + About Me +

+

+ {selectedScholar?.about} +

+
+ + + + + + + + + + ); +}; export const getStaticProps = async () => { - const TeamMembers = await Promise.all( + const AllMembers = await Promise.all( TEAM_JSON.map(async (member) => { const { base64, @@ -267,7 +372,7 @@ export const getStaticProps = async () => { ).then((values) => values); // sort by name - TeamMembers.sort((a, b) => { + AllMembers.sort((a, b) => { if (a.name < b.name) { return -1; } @@ -279,26 +384,11 @@ export const getStaticProps = async () => { return 0; }); - // sort modules by name - TeamMembers.forEach((member) => { - member.modules.sort((a, b) => { - if (a < b) { - return -1; - } - - if (a > b) { - return 1; - } - - return 0; - }); - }); - return { props: { - TeamMembers, + AllMembers, }, }; }; -export default TeamPage; +export default ScholarsPage; diff --git a/tailwind.config.js b/tailwind.config.js index 79c01eb..725f5a6 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -59,6 +59,11 @@ module.exports = { }, }, }, + variants: { + extend: { + boxShadow: ['hover', 'hover:child'], + }, + }, plugins: [ require('@tailwindcss/forms'), require('@tailwindcss/typography'),