This is an automated email from the ASF dual-hosted git repository.

visortelle pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pulsar-site.git


The following commit(s) were added to refs/heads/main by this push:
     new a987e8a55e81 Add GitHub user ids for committers and PMC members to 
team.js (#858)
a987e8a55e81 is described below

commit a987e8a55e81c0e57a6a08b73fb09f4aa54e3e47
Author: Lari Hotari <[email protected]>
AuthorDate: Tue Mar 19 06:02:58 2024 -0700

    Add GitHub user ids for committers and PMC members to team.js (#858)
    
    * Add GitHub user ids for committers and PMC members to team.js
    
    - it's possible to have multiple GitHub user ids so that's the reason why 
it's an array
    
    * Use githubUsername information on CommunityPage.tsx
    
    * Reduce duplication
    
    * Shuffle team members so that order is different each time
    
    * polish
    
    * Update src/components/pages/CommunityPage/CommunityPage.tsx
    
    Co-authored-by: Kiryl Valkovich 🛸 <[email protected]>
    
    * Update src/components/pages/CommunityPage/CommunityPage.tsx
    
    Co-authored-by: Kiryl Valkovich 🛸 <[email protected]>
    
    * Update src/components/pages/CommunityPage/CommunityPage.tsx
    
    Co-authored-by: Kiryl Valkovich 🛸 <[email protected]>
    
    * Require explicit github username information for providing the link
    
    * Use _.shuffle
    
    * polish
    
    * Sync latest version of team.js
    
    ---------
    
    Co-authored-by: Kiryl Valkovich 🛸 <[email protected]>
---
 data/team.js                                       | 392 ++++++++++++++++-----
 scripts/sync-team-js.sh                            |  12 +
 .../pages/CommunityPage/CommunityPage.tsx          |  87 ++---
 3 files changed, 356 insertions(+), 135 deletions(-)

diff --git a/data/team.js b/data/team.js
index 07c82f4df127..1c7c023d5ce2 100644
--- a/data/team.js
+++ b/data/team.js
@@ -2,333 +2,561 @@ module.exports = {
   "pmc": [
     {
       "name": "Sahaya Andrews",
-      "apacheId": "andrews"
+      "apacheId": "andrews",
+      "githubUsername": [
+        "saandrews"
+      ]
     },
     {
       "name": "Daniel Blankensteiner",
-      "apacheId": "blankensteiner"
+      "apacheId": "blankensteiner",
+      "githubUsername": [
+        "blankensteiner"
+      ]
     },
     {
       "name": "Bo Cong",
-      "apacheId": "bogong"
+      "apacheId": "bogong",
+      "githubUsername": [
+        "congbobo184"
+      ]
     },
     {
       "name": "Brad McMillen",
-      "apacheId": "bradtm"
+      "apacheId": "bradtm",
+      "githubUsername": []
     },
     {
       "name": "Hang Chen",
-      "apacheId": "chenhang"
+      "apacheId": "chenhang",
+      "githubUsername": [
+        "hangc0276"
+      ]
     },
     {
       "name": "David Jensen",
-      "apacheId": "djensen"
+      "apacheId": "djensen",
+      "githubUsername": []
     },
     {
       "name": "Enrico Olivelli",
-      "apacheId": "eolivelli"
+      "apacheId": "eolivelli",
+      "githubUsername": [
+        "eolivelli"
+      ]
     },
     {
       "name": "Jennifer Huang",
-      "apacheId": "hjf"
+      "apacheId": "hjf",
+      "githubUsername": [
+        "jennifer88huang",
+        "Jennifer88huang-zz"
+      ]
     },
     {
       "name": "Hiroyuki Sakai",
-      "apacheId": "hrsakai"
+      "apacheId": "hrsakai",
+      "githubUsername": [
+        "hrsakai"
+      ]
     },
     {
       "name": "Ivan Brendan Kelly",
-      "apacheId": "ivank"
+      "apacheId": "ivank",
+      "githubUsername": [
+        "ivankelly"
+      ]
     },
     {
       "name": "Jai Asher",
-      "apacheId": "jai1"
+      "apacheId": "jai1",
+      "githubUsername": [
+        "jai1"
+      ]
     },
     {
       "name": "Boyang Jerry Peng",
-      "apacheId": "jerrypeng"
+      "apacheId": "jerrypeng",
+      "githubUsername": [
+        "jerrypeng"
+      ]
     },
     {
       "name": "Haiting Jiang",
-      "apacheId": "jianghaiting"
+      "apacheId": "jianghaiting",
+      "githubUsername": [
+        "Jason918"
+      ]
     },
     {
       "name": "Jim Jagielski",
-      "apacheId": "jim"
+      "apacheId": "jim",
+      "githubUsername": [
+        "jimjag"
+      ]
     },
     {
       "name": "Joe Francis",
-      "apacheId": "joef"
+      "apacheId": "joef",
+      "githubUsername": [
+        "joefk"
+      ]
     },
     {
       "name": "Lari Hotari",
-      "apacheId": "lhotari"
+      "apacheId": "lhotari",
+      "githubUsername": [
+        "lhotari"
+      ]
     },
     {
       "name": "Lin Lin",
-      "apacheId": "linlin"
+      "apacheId": "linlin",
+      "githubUsername": [
+        "315157973"
+      ]
     },
     {
       "name": "Liu Yu",
-      "apacheId": "liuyu"
+      "apacheId": "liuyu",
+      "githubUsername": [
+        "Anonymitaet"
+      ]
     },
     {
       "name": "Ludwig Pummer",
-      "apacheId": "ludwigp"
+      "apacheId": "ludwigp",
+      "githubUsername": []
     },
     {
       "name": "Masakazu Kitajo",
-      "apacheId": "maskit"
+      "apacheId": "maskit",
+      "githubUsername": [
+        "maskit"
+      ]
     },
     {
       "name": "Masahiro Sakamoto",
-      "apacheId": "massakam"
+      "apacheId": "massakam",
+      "githubUsername": [
+        "massakam"
+      ]
     },
     {
       "name": "Qiang Zhao",
-      "apacheId": "mattisonchao"
+      "apacheId": "mattisonchao",
+      "githubUsername": [
+        "mattisonchao"
+      ]
     },
     {
       "name": "Michael Marshall",
-      "apacheId": "mmarshall"
+      "apacheId": "mmarshall",
+      "githubUsername": [
+        "michaeljmarshall"
+      ]
     },
     {
       "name": "Matteo Merli",
-      "apacheId": "mmerli"
+      "apacheId": "mmerli",
+      "githubUsername": [
+        "merlimat"
+      ]
     },
     {
       "name": "Nicolò Boschi",
-      "apacheId": "nicoloboschi"
+      "apacheId": "nicoloboschi",
+      "githubUsername": [
+        "nicoloboschi"
+      ]
     },
     {
       "name": "Nozomi Kurihara",
-      "apacheId": "nkurihar"
+      "apacheId": "nkurihar",
+      "githubUsername": [
+        "nkurihar"
+      ]
     },
     {
       "name": "Penghui Li",
-      "apacheId": "penghui"
+      "apacheId": "penghui",
+      "githubUsername": [
+        "codelipenghui"
+      ]
     },
     {
       "name": "P. Taylor Goetz",
-      "apacheId": "ptgoetz"
+      "apacheId": "ptgoetz",
+      "githubUsername": [
+        "ptgoetz"
+      ]
     },
     {
       "name": "Rajan Dhabalia",
-      "apacheId": "rdhabalia"
+      "apacheId": "rdhabalia",
+      "githubUsername": [
+        "rdhabalia"
+      ]
     },
     {
       "name": "Sanjeev Kulkarni",
-      "apacheId": "sanjeevrk"
+      "apacheId": "sanjeevrk",
+      "githubUsername": [
+        "srkukarni"
+      ]
     },
     {
       "name": "Siddharth Boobna",
-      "apacheId": "sboobna"
+      "apacheId": "sboobna",
+      "githubUsername": [
+        "sboobna"
+      ]
     },
     {
       "name": "Sijie Guo",
-      "apacheId": "sijie"
+      "apacheId": "sijie",
+      "githubUsername": [
+        "sijie"
+      ]
     },
     {
       "name": "Sebastián Schepens",
-      "apacheId": "sschepens"
+      "apacheId": "sschepens",
+      "githubUsername": [
+        "sschepens"
+      ]
     },
     {
       "name": "Guo Jiwei",
-      "apacheId": "technoboy"
+      "apacheId": "technoboy",
+      "githubUsername": [
+        "Technoboy-"
+      ]
     },
     {
       "name": "Zili Chen",
-      "apacheId": "tison"
+      "apacheId": "tison",
+      "githubUsername": [
+        "tisonkun"
+      ]
     },
     {
       "name": "Francis Christopher Liu",
-      "apacheId": "toffer"
+      "apacheId": "toffer",
+      "githubUsername": [
+        "francisliu"
+      ]
     },
     {
       "name": "David Fisher",
-      "apacheId": "wave"
+      "apacheId": "wave",
+      "githubUsername": [
+        "dave2wave"
+      ]
     },
     {
       "name": "Yunze Xu",
-      "apacheId": "xyz"
+      "apacheId": "xyz",
+      "githubUsername": [
+        "BewareMyPower"
+      ]
     },
     {
       "name": "Yubiao Feng",
-      "apacheId": "yubiao"
+      "apacheId": "yubiao",
+      "githubUsername": []
     },
     {
       "name": "Yuki Shiga",
-      "apacheId": "yushiga"
+      "apacheId": "yushiga",
+      "githubUsername": [
+        "yush1ga"
+      ]
     },
     {
       "name": "Jia Zhai",
-      "apacheId": "zhaijia"
+      "apacheId": "zhaijia",
+      "githubUsername": [
+        "jiazhai",
+        "zhaijack"
+      ]
     }
   ],
   "committers": [
     {
       "name": "Ali Ahmed",
-      "apacheId": "aahmed"
+      "apacheId": "aahmed",
+      "githubUsername": [
+        "aahmed-se"
+      ]
     },
     {
       "name": "Addison Higham",
-      "apacheId": "addisonj"
+      "apacheId": "addisonj",
+      "githubUsername": [
+        "addisonj"
+      ]
     },
     {
       "name": "Aloys Zhang",
-      "apacheId": "aloyszhang"
+      "apacheId": "aloyszhang",
+      "githubUsername": [
+        "aloyszhang"
+      ]
     },
     {
       "name": "Asaf Mesika",
-      "apacheId": "amesika"
+      "apacheId": "amesika",
+      "githubUsername": []
     },
     {
       "name": "Andrey Yegorov",
-      "apacheId": "ayegorov"
+      "apacheId": "ayegorov",
+      "githubUsername": [
+        "dlg99"
+      ]
     },
     {
       "name": "Baodi Shi",
-      "apacheId": "baodi"
+      "apacheId": "baodi",
+      "githubUsername": [
+        "shibd"
+      ]
     },
     {
       "name": "Christophe Bornet",
-      "apacheId": "cbornet"
+      "apacheId": "cbornet",
+      "githubUsername": [
+        "cbornet"
+      ]
     },
     {
       "name": "Chris Kellogg",
-      "apacheId": "cckellogg"
+      "apacheId": "cckellogg",
+      "githubUsername": [
+        "cckellogg"
+      ]
     },
     {
       "name": "Tao Jiuming",
-      "apacheId": "daojun"
+      "apacheId": "daojun",
+      "githubUsername": []
     },
     {
       "name": "davidkj",
-      "apacheId": "davekj"
+      "apacheId": "davekj",
+      "githubUsername": [
+        "david-streamlio"
+      ]
     },
     {
       "name": "Dezhi Liu",
-      "apacheId": "dezhiliu"
+      "apacheId": "dezhiliu",
+      "githubUsername": [
+        "liudezhi2098"
+      ]
     },
     {
       "name": "Yuri Mizushima",
-      "apacheId": "equanz"
+      "apacheId": "equanz",
+      "githubUsername": []
     },
     {
       "name": "Guangning E",
-      "apacheId": "guangning"
+      "apacheId": "guangning",
+      "githubUsername": [
+        "tuteng"
+      ]
     },
     {
       "name": "Heesung Sohn",
-      "apacheId": "heesung"
+      "apacheId": "heesung",
+      "githubUsername": [
+        "heesung-sn"
+      ]
     },
     {
       "name": "Yan Zhao",
-      "apacheId": "horizonzy"
+      "apacheId": "horizonzy",
+      "githubUsername": [
+        "horizonzy"
+      ]
     },
     {
       "name": "Xiaoyu Hou",
-      "apacheId": "houxiaoyu"
+      "apacheId": "houxiaoyu",
+      "githubUsername": [
+        "AnonHxy"
+      ]
     },
     {
       "name": "Qiang Huang",
-      "apacheId": "huangqiang"
+      "apacheId": "huangqiang",
+      "githubUsername": [
+        "hqebupt"
+      ]
     },
     {
       "name": "Huanli Meng",
-      "apacheId": "huanlimeng"
+      "apacheId": "huanlimeng",
+      "githubUsername": [
+        "Huanli-Meng"
+      ]
     },
     {
       "name": "Jun Ma",
-      "apacheId": "junma"
+      "apacheId": "junma",
+      "githubUsername": []
     },
     {
       "name": "Yuto Furuta",
-      "apacheId": "k2la"
+      "apacheId": "k2la",
+      "githubUsername": [
+        "k2la"
+      ]
     },
     {
       "name": "Kai Wang",
-      "apacheId": "kwang"
+      "apacheId": "kwang",
+      "githubUsername": [
+        "Demogorgon314"
+      ]
     },
     {
       "name": "Lin Chen",
-      "apacheId": "lordcheng10"
+      "apacheId": "lordcheng10",
+      "githubUsername": [
+        "lordcheng10"
+      ]
     },
     {
       "name": "Neng Lu",
-      "apacheId": "nlu90"
+      "apacheId": "nlu90",
+      "githubUsername": [
+        "nlu90"
+      ]
     },
     {
       "name": "Chris Bono",
-      "apacheId": "onobc"
+      "apacheId": "onobc",
+      "githubUsername": []
     },
     {
       "name": "Rui Fu",
-      "apacheId": "rfu"
+      "apacheId": "rfu",
+      "githubUsername": [
+        "freeznet"
+      ]
     },
     {
       "name": "Ran Gao",
-      "apacheId": "rgao"
+      "apacheId": "rgao",
+      "githubUsername": [
+        "gaoran10"
+      ]
     },
     {
       "name": "Xiaolong Ran",
-      "apacheId": "rxl"
+      "apacheId": "rxl",
+      "githubUsername": [
+        "wolfstudy"
+      ]
     },
     {
       "name": "ZhangJian He",
-      "apacheId": "shoothzj"
+      "apacheId": "shoothzj",
+      "githubUsername": [
+        "Shoothzj"
+      ]
     },
     {
       "name": "Fangbin Sun",
-      "apacheId": "sunfangbin"
+      "apacheId": "sunfangbin",
+      "githubUsername": [
+        "murong00"
+      ]
     },
     {
       "name": "Li Li",
-      "apacheId": "urfree"
+      "apacheId": "urfree",
+      "githubUsername": [
+        "urfreespace"
+      ]
     },
     {
       "name": "Kiryl Valkovich",
-      "apacheId": "visortelle"
+      "apacheId": "visortelle",
+      "githubUsername": [
+        "visortelle"
+      ]
     },
     {
       "name": "Vineeth Polamreddy",
-      "apacheId": "vpolamreddy"
+      "apacheId": "vpolamreddy",
+      "githubUsername": []
     },
     {
       "name": "Xiangying Meng",
-      "apacheId": "xiangying"
+      "apacheId": "xiangying",
+      "githubUsername": [
+        "liangyepianzhou"
+      ]
     },
     {
       "name": "Marvin Cai",
-      "apacheId": "xxc"
+      "apacheId": "xxc",
+      "githubUsername": [
+        "MarvinCai"
+      ]
     },
     {
       "name": "Yijie Shen",
-      "apacheId": "yjshen"
+      "apacheId": "yjshen",
+      "githubUsername": [
+        "yjshen"
+      ]
     },
     {
       "name": "Yong Zhang",
-      "apacheId": "yong"
+      "apacheId": "yong",
+      "githubUsername": [
+        "zymap"
+      ]
     },
     {
       "name": "Ruguo Yu",
-      "apacheId": "yuruguo"
+      "apacheId": "yuruguo",
+      "githubUsername": [
+        "yuruguo"
+      ]
     },
     {
       "name": "Gavin Gao",
-      "apacheId": "zhangmingao"
+      "apacheId": "zhangmingao",
+      "githubUsername": [
+        "gaozhangmin"
+      ]
     },
     {
       "name": "Cong Zhao",
-      "apacheId": "zhaocong"
+      "apacheId": "zhaocong",
+      "githubUsername": [
+        "coderzc"
+      ]
     },
     {
       "name": "Zike Yang",
-      "apacheId": "zike"
+      "apacheId": "zike",
+      "githubUsername": [
+        "RobertIndie"
+      ]
     },
     {
       "name": "Zixuan Liu",
-      "apacheId": "zixuan"
+      "apacheId": "zixuan",
+      "githubUsername": [
+        "nodece"
+      ]
     }
   ]
 };
diff --git a/scripts/sync-team-js.sh b/scripts/sync-team-js.sh
new file mode 100755
index 000000000000..98ef0765f887
--- /dev/null
+++ b/scripts/sync-team-js.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+# This script is used to sync the team.js file with the Pulsar PMC and 
committers.
+# Usage:
+# 1. Log in to https://whimsy.apache.org/roster/committee/pulsar with browser
+# 2. Append ".json" to URL so that browser goes to 
https://whimsy.apache.org/roster/committee/pulsar.json
+# 3. Click "Save as..." and store the JSON as ~/Downloads/pulsar.json
+# 4. Run this script with "scripts/sync-team-js.sh"
+PULSAR_JSON="${1:-"$HOME/Downloads/pulsar.json"}"
+{ 
+  echo -n "module.exports = " && cat "$PULSAR_JSON" \
+    | jq '{"pmc": [.roster| to_entries | sort_by(.key) | .[] | 
select(.value.role|startswith("PMC")) | {"name":.value.name, "apacheId": .key, 
"githubUsername": (.value.githubUsername|split(", "))}], "committers": 
[.roster| to_entries | sort_by(.key) | .[] | select(.value.role=="Committer") | 
{"name":.value.name, "apacheId": .key, "githubUsername": 
(.value.githubUsername|split(", "))}]}'
+} | perl -pe 's/$/;\n/ if eof' > data/team.js
\ No newline at end of file
diff --git a/src/components/pages/CommunityPage/CommunityPage.tsx 
b/src/components/pages/CommunityPage/CommunityPage.tsx
index c81a78dd4e75..b2fd9728dc74 100644
--- a/src/components/pages/CommunityPage/CommunityPage.tsx
+++ b/src/components/pages/CommunityPage/CommunityPage.tsx
@@ -11,6 +11,7 @@ import ProjectGovernance from 
"./sections/project-governance/ProjectGovernance";
 import Slider from '@site/src/components/ui/Slider/Slider';
 import BrowserOnly from "@docusaurus/BrowserOnly";
 import Button from "@site/src/components/ui/Button/Button";
+import _ from 'lodash'
 
 export default function CommunityPage(): JSX.Element {
 
@@ -24,14 +25,10 @@ export default function CommunityPage(): JSX.Element {
     <Button title={isShowMoreCmtrs ? 'Show less' : 'Show more'} 
variant="transparentWhite" onClick={() => 
setIsShowMoreCmtrs(!isShowMoreCmtrs)}/>
   );
 
-  type ApacheId = string
-  type GithubId = string
-  const GithubUsers: Record<ApacheId, GithubId> = {
-    "jianghaiting": "Jason918",
-    "technoboy": "Technoboy-",
-    "linlin": "315157973"
-  }
-  
+  // Shuffle the team members so that the order is different each time the 
page is loaded
+  team.pmc = _.shuffle(team.pmc);
+  team.committers = _.shuffle(team.committers);
+
   let TeamPMCSets = new Array(Math.ceil(team.pmc.length/5));
   let teamCtrsSets = new Array(Math.ceil(team.committers.length/5));
 
@@ -53,6 +50,30 @@ export default function CommunityPage(): JSX.Element {
     teamCtrsSets[CountTheSets].push(element);
   });
 
+  function MemberCard({ member, index }) {
+    // require the member to have "GitHub username(s) (user-provided)" field 
information in Whimsy
+    // the user can go to Whimsy url 
https://whimsy.apache.org/roster/committer/__self__ to update the information
+    // since it's possible to have multiple GitHub usernames, we only take the 
first one
+    const githubUsername = member.githubUsername?.[0];
+    const href = githubUsername ? ('https://github.com/' + githubUsername) : 
"#";
+    const target = githubUsername ? "_blank" : "_self";
+  
+    return (
+      <a href={href} target={target} key={'m'+index} 
className={s.CommunityMembersMember}>
+        <div>
+          <div className={s.CommunityMembersMemberPic}>
+            { githubUsername && (
+            <img src={'https://github.com/' + githubUsername + '.png'} 
alt={githubUsername} />
+            )}
+          </div>
+          <div className={s.CommunityMembersMemberName}>
+            <strong>{member.name}</strong><br />
+            {githubUsername ? githubUsername : member.apacheId}
+          </div>
+        </div>
+      </a>
+    );
+  }
 
   return (
     <Layout title={"Community"} description={"Learn about the basics of using 
Apache Pulsar"} wrapperClassName="LandingPage">
@@ -190,17 +211,7 @@ export default function CommunityPage(): JSX.Element {
               <div>
                 <div className={(isShowMorePMC ? s.CommunityMembersDesktopOpen 
: s.CommunityMembersDesktop)}>
                   {(team.pmc || []).map((member,i) => (
-                    <a href={'https://github.com/' + 
(GithubUsers[member.apacheId] ? GithubUsers[member.apacheId] : 
member.apacheId)} target="_blank" key={'m'+i} 
className={s.CommunityMembersMember}>
-                      <div>
-                        <div className={s.CommunityMembersMemberPic}>
-                          <img src={'https://github.com/' + 
(GithubUsers[member.apacheId] ? GithubUsers[member.apacheId] : member.apacheId) 
+ '.png'} alt={GithubUsers[member.apacheId] ? GithubUsers[member.apacheId] : 
member.apacheId} />
-                        </div>
-                        <div className={s.CommunityMembersMemberName}>
-                          <strong>{member.name}</strong><br />
-                          {GithubUsers[member.apacheId] ? 
GithubUsers[member.apacheId] : member.apacheId}
-                        </div>
-                      </div>
-                    </a>
+                    <MemberCard member={member} index={i} />
                   ))}
                   <div className={s.CommunityMembersShowMore}>
                     {showMorePMCButton}
@@ -215,18 +226,8 @@ export default function CommunityPage(): JSX.Element {
                           {TeamPMCSets.map((set, i) => (
                             <div key={i} className={s.SlideTeam}>
                               {set.map((member, i) => (
-                                <a href={'https://github.com/' + 
(GithubUsers[member.apacheId] ? GithubUsers[member.apacheId] : 
member.apacheId)} target="_blank" key={'ms'+i} 
className={s.CommunityMembersMember}>
-                                  <div>
-                                    <div 
className={s.CommunityMembersMemberPic}>
-                                      <img src={'https://github.com/' + 
(GithubUsers[member.apacheId] ? GithubUsers[member.apacheId] : member.apacheId) 
+ '.png'} alt={GithubUsers[member.apacheId] ? GithubUsers[member.apacheId] : 
member.apacheId} />
-                                    </div>
-                                    <div 
className={s.CommunityMembersMemberName}>
-                                      <strong>{member.name}</strong><br />
-                                      {member.apacheId}
-                                    </div>
-                                  </div>
-                                </a>
-                              ))}
+                                  <MemberCard member={member} index={i} />
+                                ))}
                             </div>
                           ))}
                         </Slider>
@@ -239,17 +240,7 @@ export default function CommunityPage(): JSX.Element {
               <div>
                 <div className={(isShowMoreCmtrs ? 
s.CommunityMembersDesktopOpen : s.CommunityMembersDesktop)}>
                   {(team.committers || []).map((member,i) => (
-                    <a href={'https://github.com/' + 
(GithubUsers[member.apacheId] ? GithubUsers[member.apacheId] : 
member.apacheId)} target="_blank" key={'c'+i} 
className={s.CommunityMembersMember}>
-                      <div>
-                        <div className={s.CommunityMembersMemberPic}>
-                          <img src={'https://github.com/' + 
(GithubUsers[member.apacheId] ? GithubUsers[member.apacheId] : member.apacheId) 
+ '.png'} alt={GithubUsers[member.apacheId] ? GithubUsers[member.apacheId] : 
member.apacheId} />
-                        </div>
-                        <div className={s.CommunityMembersMemberName}>
-                          <strong>{member.name}</strong><br />
-                          {member.apacheId}
-                        </div>
-                      </div>
-                    </a>
+                    <MemberCard member={member} index={i} />
                   ))}
                   <div className={s.CommunityMembersShowMore}>
                     {showMoreCmtrsButton}
@@ -264,17 +255,7 @@ export default function CommunityPage(): JSX.Element {
                           {teamCtrsSets.map((set, i) => (
                             <div key={i} className={s.SlideTeam}>
                               {set.map((member, i) => (
-                                <a href={'https://github.com/' + 
(GithubUsers[member.apacheId] ? GithubUsers[member.apacheId] : 
member.apacheId)} target="_blank" key={'cs'+i} 
className={s.CommunityMembersMember}>
-                                  <div>
-                                    <div 
className={s.CommunityMembersMemberPic}>
-                                      <img src={'https://github.com/' + 
(GithubUsers[member.apacheId] ? GithubUsers[member.apacheId] : member.apacheId) 
+ '.png'} alt={GithubUsers[member.apacheId] ? GithubUsers[member.apacheId] : 
member.apacheId} />
-                                    </div>
-                                    <div 
className={s.CommunityMembersMemberName}>
-                                      <strong>{member.name}</strong><br />
-                                      {member.apacheId}
-                                    </div>
-                                  </div>
-                                </a>
+                                <MemberCard member={member} index={i} />
                               ))}
                             </div>
                           ))}

Reply via email to