diff --git a/components/Contributors/index.jsx b/components/Contributors/index.jsx
index 67abf52..b679bce 100644
--- a/components/Contributors/index.jsx
+++ b/components/Contributors/index.jsx
@@ -2,6 +2,7 @@ import { useContext, useEffect, useState } from 'react';
import { Zoom } from 'react-awesome-reveal';
import themeContext from '../../context/defaultTheme';
import ContributorFilter from './ContributorFilter';
+import { FaMastodon, FaXTwitter } from 'react-icons/fa6';
function Contributors({ contributors }) {
const [showMorePositions, setShowMorePositions] = useState([]);
@@ -153,6 +154,20 @@ function Contributors({ contributors }) {
) : (
<>>
)}
+ {contributor.x ? (
+
+
+
+ ) : (
+ <>>
+ )}
+ {contributor.mastodon ? (
+
+
+
+ ) : (
+ <>>
+ )}
{contributor.linkedin ? (
diff --git a/package-lock.json b/package-lock.json
index bd7f612..d7aaef5 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,6 +9,7 @@
"version": "0.1.0",
"dependencies": {
"@emotion/react": "^11.11.1",
+ "@fortawesome/react-fontawesome": "^0.2.0",
"@notionhq/client": "^0.4.2",
"axios": "^0.22.0",
"dayjs": "^1.10.7",
@@ -19,6 +20,7 @@
"react-awesome-reveal": "^4.2.5",
"react-content-loader": "^6.0.3",
"react-dom": "18.2.0",
+ "react-icons": "^5.0.1",
"react-text-transition": "^3.1.0",
"react-tiny-popover": "^7.0.1",
"react-twitter-embed": "^4.0.4",
@@ -307,6 +309,41 @@
"node": "^10.12.0 || >=12.0.0"
}
},
+ "node_modules/@fortawesome/fontawesome-common-types": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.5.1.tgz",
+ "integrity": "sha512-GkWzv+L6d2bI5f/Vk6ikJ9xtl7dfXtoRu3YGE6nq0p/FFqA1ebMOAWg3XgRyb0I6LYyYkiAo+3/KrwuBp8xG7A==",
+ "hasInstallScript": true,
+ "peer": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@fortawesome/fontawesome-svg-core": {
+ "version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.5.1.tgz",
+ "integrity": "sha512-MfRCYlQPXoLlpem+egxjfkEuP9UQswTrlCOsknus/NcMoblTH2g0jPrapbcIb04KGA7E2GZxbAccGZfWoYgsrQ==",
+ "hasInstallScript": true,
+ "peer": true,
+ "dependencies": {
+ "@fortawesome/fontawesome-common-types": "6.5.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/@fortawesome/react-fontawesome": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.0.tgz",
+ "integrity": "sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==",
+ "dependencies": {
+ "prop-types": "^15.8.1"
+ },
+ "peerDependencies": {
+ "@fortawesome/fontawesome-svg-core": "~1 || ~6",
+ "react": ">=16.3"
+ }
+ },
"node_modules/@humanwhocodes/config-array": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz",
@@ -3921,7 +3958,6 @@
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
- "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -4351,7 +4387,6 @@
"version": "15.8.1",
"resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz",
"integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==",
- "dev": true,
"dependencies": {
"loose-envify": "^1.4.0",
"object-assign": "^4.1.1",
@@ -4485,6 +4520,14 @@
"react": "^18.2.0"
}
},
+ "node_modules/react-icons": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.0.1.tgz",
+ "integrity": "sha512-WqLZJ4bLzlhmsvme6iFdgO8gfZP17rfjYEJ2m9RsZjZ+cc4k1hTzknEz63YS1MeT50kVzoa1Nz36f4BEx+Wigw==",
+ "peerDependencies": {
+ "react": "*"
+ }
+ },
"node_modules/react-intersection-observer": {
"version": "9.5.2",
"resolved": "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-9.5.2.tgz",
diff --git a/package.json b/package.json
index d04718a..d5d481a 100644
--- a/package.json
+++ b/package.json
@@ -15,6 +15,7 @@
},
"dependencies": {
"@emotion/react": "^11.11.1",
+ "@fortawesome/react-fontawesome": "^0.2.0",
"@notionhq/client": "^0.4.2",
"axios": "^0.22.0",
"dayjs": "^1.10.7",
@@ -25,6 +26,7 @@
"react-awesome-reveal": "^4.2.5",
"react-content-loader": "^6.0.3",
"react-dom": "18.2.0",
+ "react-icons": "^5.0.1",
"react-text-transition": "^3.1.0",
"react-tiny-popover": "^7.0.1",
"react-twitter-embed": "^4.0.4",
diff --git a/utils/contributors.js b/utils/contributors.js
index a12db9b..98d8a42 100644
--- a/utils/contributors.js
+++ b/utils/contributors.js
@@ -35,6 +35,12 @@ const getContributors = async () => {
github: result.properties.Github.rich_text[0]
? result.properties.Github.rich_text[0].text.content
: '',
+ x: result.properties.Twitter.rich_text[0]
+ ? result.properties.Twitter.rich_text[0].text.content
+ : '',
+ mastodon: result.properties.Mastodon.rich_text[0]
+ ? result.properties.Mastodon.rich_text[0].text.content
+ : '',
orcid: result.properties.Orcid.rich_text[0]
? result.properties.Orcid.rich_text[0].text.content
: '',
diff --git a/yarn.lock b/yarn.lock
index 751a0f5..21d8e0f 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -159,6 +159,25 @@
minimatch "^3.0.4"
strip-json-comments "^3.1.1"
+"@fortawesome/fontawesome-common-types@6.5.1":
+ version "6.5.1"
+ resolved "https://registry.npmjs.org/@fortawesome/fontawesome-common-types/-/fontawesome-common-types-6.5.1.tgz"
+ integrity sha512-GkWzv+L6d2bI5f/Vk6ikJ9xtl7dfXtoRu3YGE6nq0p/FFqA1ebMOAWg3XgRyb0I6LYyYkiAo+3/KrwuBp8xG7A==
+
+"@fortawesome/fontawesome-svg-core@~1 || ~6":
+ version "6.5.1"
+ resolved "https://registry.npmjs.org/@fortawesome/fontawesome-svg-core/-/fontawesome-svg-core-6.5.1.tgz"
+ integrity sha512-MfRCYlQPXoLlpem+egxjfkEuP9UQswTrlCOsknus/NcMoblTH2g0jPrapbcIb04KGA7E2GZxbAccGZfWoYgsrQ==
+ dependencies:
+ "@fortawesome/fontawesome-common-types" "6.5.1"
+
+"@fortawesome/react-fontawesome@^0.2.0":
+ version "0.2.0"
+ resolved "https://registry.npmjs.org/@fortawesome/react-fontawesome/-/react-fontawesome-0.2.0.tgz"
+ integrity sha512-uHg75Rb/XORTtVt7OS9WoK8uM276Ufi7gCzshVWkUJbHhh3svsUUeqXerrM96Wm7fRiDzfKRwSoahhMIkGAYHw==
+ dependencies:
+ prop-types "^15.8.1"
+
"@humanwhocodes/config-array@^0.5.0":
version "0.5.0"
resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz"
@@ -185,10 +204,10 @@
dependencies:
glob "7.1.7"
-"@next/swc-darwin-arm64@13.4.19":
+"@next/swc-darwin-x64@13.4.19":
version "13.4.19"
- resolved "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.19.tgz"
- integrity sha512-vv1qrjXeGbuF2mOkhkdxMDtv9np7W4mcBtaDnHU+yJG+bBwa6rYsYSCI/9Xm5+TuF5SbZbrWO6G1NfTh1TMjvQ==
+ resolved "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.19.tgz"
+ integrity sha512-jyzO6wwYhx6F+7gD8ddZfuqO4TtpJdw3wyOduR4fxTUCm3aLw7YmHGYNjS0xRSYGAkLpBkH1E0RcelyId6lNsw==
"@nodelib/fs.scandir@2.1.5":
version "2.1.5"
@@ -2585,6 +2604,11 @@ react-content-loader@^6.0.3:
loose-envify "^1.1.0"
scheduler "^0.23.0"
+react-icons@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.npmjs.org/react-icons/-/react-icons-5.0.1.tgz"
+ integrity sha512-WqLZJ4bLzlhmsvme6iFdgO8gfZP17rfjYEJ2m9RsZjZ+cc4k1hTzknEz63YS1MeT50kVzoa1Nz36f4BEx+Wigw==
+
react-intersection-observer@^9.4.3:
version "9.5.2"
resolved "https://registry.npmjs.org/react-intersection-observer/-/react-intersection-observer-9.5.2.tgz"
@@ -2619,7 +2643,7 @@ react-twitter-embed@^4.0.4:
dependencies:
scriptjs "^2.5.9"
-"react@^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", "react@^16.0.0 || ^17.0.0 || ^18.0.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0", react@^18.2.0, "react@>= 16.8.0 || 17.x.x || ^18.0.0-0", react@>=16.0.0, react@>=16.14.0, react@>=16.8.0, react@>=18.0.0, react@18.2.0:
+react@*, "react@^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", "react@^16.0.0 || ^17.0.0 || ^18.0.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0", react@^18.2.0, "react@>= 16.8.0 || 17.x.x || ^18.0.0-0", react@>=16.0.0, react@>=16.14.0, react@>=16.3, react@>=16.8.0, react@>=18.0.0, react@18.2.0:
version "18.2.0"
resolved "https://registry.npmjs.org/react/-/react-18.2.0.tgz"
integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==