diff --git a/app/components/MemberCards.tsx b/app/components/MemberCards.tsx index f7c21a5d..009eaf69 100644 --- a/app/components/MemberCards.tsx +++ b/app/components/MemberCards.tsx @@ -10,6 +10,7 @@ import Polywork from '~/svg/Polywork'; import Medium from '~/svg/Medium'; import HashNode from '~/svg/HashNode'; import YouTube from '~/svg/YouTube'; +import Mastodon from '~/svg/Mastodon'; import Website from '~/svg/Website'; import type { MemberList } from 'members/types'; @@ -27,6 +28,7 @@ export default function MemberCards({ data }: { data: MemberList }) { Medium, HashNode, YouTube, + Mastodon, Website, }; diff --git a/app/svg/Mastodon.tsx b/app/svg/Mastodon.tsx new file mode 100644 index 00000000..c210734b --- /dev/null +++ b/app/svg/Mastodon.tsx @@ -0,0 +1,25 @@ +import type { IconProps } from 'members/types'; + +export default function Mastodon({ + ariaHidden, + title = 'Mastodon', +}: IconProps): JSX.Element { + return ( + + {!ariaHidden && {title || 'Website'}} + + + ); +} diff --git a/members/members/_EXAMPLE.ts b/members/members/_EXAMPLE.ts index a74a62b6..a0854411 100644 --- a/members/members/_EXAMPLE.ts +++ b/members/members/_EXAMPLE.ts @@ -40,6 +40,7 @@ export const _EXAMPLE: MemberObject = { // { type: 'polywork', username: 'yourUserName' }, // { type: 'medium', username: 'yourUserName' }, // { type: 'hashnode', username: 'yourUserName' }, + // { type: 'mastodon', url: 'https://mastodon.server/@username' }, // { type: 'website', url: 'https://virtualcoffee.io', title: 'Title of link' }, ], badges: [], diff --git a/members/members/mikestreety.ts b/members/members/mikestreety.ts index 04880cd3..89daa20b 100644 --- a/members/members/mikestreety.ts +++ b/members/members/mikestreety.ts @@ -32,6 +32,7 @@ export const mikestreety: MemberObject = { // Links - You can add one of each type, except website - you can add as many `website` accounts as you wish. accounts: [ { type: 'linkedin', username: 'mikestreety' }, + { type: 'mastodon', url: 'https://hachyderm.io/@mikestreety' }, // { type: 'dev', username: 'yourUserName' }, // { type: 'codenewbie', username: 'yourUserName' }, // { type: 'twitter', username: 'yourUserName' }, @@ -42,8 +43,8 @@ export const mikestreety: MemberObject = { // { type: 'hashnode', username: 'yourUserName' }, { type: 'website', - url: 'https://hachyderm.io/@mikestreety', - title: 'Mastodon', + url: 'https://www.mikestreety.co.uk/', + title: 'Mikestreety', }, ], badges: ['Hacktoberfest2023'], diff --git a/netlify/functions/data-members/index.ts b/netlify/functions/data-members/index.ts index bd98b959..03c366b6 100644 --- a/netlify/functions/data-members/index.ts +++ b/netlify/functions/data-members/index.ts @@ -371,6 +371,14 @@ async function loadUserData() { return null; + case 'mastodon': + return { + ...account, + Icon: 'Mastodon', + type: 'mastodon', + title: account.title || account.url, + }; + case 'website': return { ...account,