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==