diff --git a/__tests__/PortfolioEntry.test.jsx b/__tests__/PortfolioEntry.test.jsx index 3005fc8..1187e73 100644 --- a/__tests__/PortfolioEntry.test.jsx +++ b/__tests__/PortfolioEntry.test.jsx @@ -5,6 +5,7 @@ import PortfolioEntry, { LinkedInEntry, EmailEntry, BitbucketEntry, + BlueskyEntry, StackOverflowEntry, StackExchangeEntry, } from '../components/PortfolioEntry' @@ -16,6 +17,7 @@ const wrappers = { linkedin: [LinkedInEntry, 'linkedin-in'], email: [EmailEntry, 'at'], bitbucket: [BitbucketEntry, 'bitbucket'], + bluesky: [BlueskyEntry, 'bluesky'], 'stack-overflow': [StackOverflowEntry, 'stack-overflow'], 'stack-exchange': [StackExchangeEntry, 'stack-exchange'], } diff --git a/__tests__/index.test.jsx b/__tests__/index.test.jsx index 48fd099..e2877e3 100644 --- a/__tests__/index.test.jsx +++ b/__tests__/index.test.jsx @@ -20,6 +20,7 @@ describe('Home page', () => { const entries = [ { url: 'https://github.com/u', title: 'GitHub', type: 'github' }, { url: 'https://twitter.com/u', title: 'Twitter', type: 'twitter' }, + { url: 'https://bsky.app/profile/u.bsky.social', title: 'Bluesky', type: 'bluesky' }, { url: 'https://www.linkedin.com/in/u', title: 'LinkedIn', type: 'linkedin' }, { url: 'mailto:u@example.com', title: 'Email u@example.com', type: 'email', target: '_self' }, { url: 'https://bitbucket.org/u', title: 'Bitbucket', type: 'bitbucket' }, diff --git a/components/PortfolioEntries.jsx b/components/PortfolioEntries.jsx index 5c8fedb..6bc7e79 100644 --- a/components/PortfolioEntries.jsx +++ b/components/PortfolioEntries.jsx @@ -5,6 +5,7 @@ import PortfolioEntry, { LinkedInEntry, EmailEntry, BitbucketEntry, + BlueskyEntry, StackOverflowEntry, StackExchangeEntry, } from './PortfolioEntry' @@ -15,6 +16,7 @@ const map = { linkedin: LinkedInEntry, email: EmailEntry, bitbucket: BitbucketEntry, + bluesky: BlueskyEntry, 'stack-overflow': StackOverflowEntry, 'stack-exchange': StackExchangeEntry, } diff --git a/components/PortfolioEntry.jsx b/components/PortfolioEntry.jsx index 941c21f..a0584bc 100644 --- a/components/PortfolioEntry.jsx +++ b/components/PortfolioEntry.jsx @@ -3,6 +3,7 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome' import { faGithub, faTwitter, + faBluesky, faLinkedinIn, faBitbucket, faStackOverflow, @@ -32,3 +33,4 @@ export const EmailEntry = (props) => export const StackOverflowEntry = (props) => export const StackExchangeEntry = (props) => +export const BlueskyEntry = (props) => diff --git a/lib/getPortfolioProps.js b/lib/getPortfolioProps.js index 94f8156..835192d 100644 --- a/lib/getPortfolioProps.js +++ b/lib/getPortfolioProps.js @@ -67,6 +67,11 @@ export default function getPortfolioProps() { title: 'Twitter', type: 'twitter', }), + bluesky: (cfg) => ({ + url: cfg.handle ? `https://bsky.app/profile/${cfg.handle}` : null, + title: 'Bluesky', + type: 'bluesky', + }), linkedIn: (cfg) => ({ url: cfg.username ? `https://www.linkedin.com/in/${cfg.username}` : null, title: 'LinkedIn', diff --git a/portfolio.default.json b/portfolio.default.json index 77b54f0..f7fac7a 100644 --- a/portfolio.default.json +++ b/portfolio.default.json @@ -37,25 +37,29 @@ "handle": "twitter", "order": 1 }, + "bluesky": { + "handle": "example.bsky.social", + "order": 2 + }, "linkedIn": { "username": "jeffweiner08", - "order": 2 + "order": 3 }, "email": { "address": "email@example.com", - "order": 3 + "order": 4 }, "bitbucket": { "username": "example", - "order": 4 + "order": 5 }, "stackOverflow": { "id": "1", - "order": 5 + "order": 6 }, "stackExchange": { "id": "1", - "order": 6 + "order": 7 } } } \ No newline at end of file