diff --git a/.jest/__fixtures__/meta.json b/.jest/__fixtures__/meta.json index 6a102971..dd3249ab 100644 --- a/.jest/__fixtures__/meta.json +++ b/.jest/__fixtures__/meta.json @@ -10,6 +10,7 @@ "email": "m@kretschmann.io", "uri": "https://matthiaskretschmann.com", "twitter": "https://twitter.com/kremalicious", + "mastodon": "https://mas.to/@krema", "github": "https://github.com/kremalicious", "facebook": "https://facebook.com/matthiaskretschmann", "bitcoin": "171qDmKEXm9YBgBLXyGjjPvopP5o9htQ1V", diff --git a/config.ts b/config.ts index ef3fad7f..00a3f578 100644 --- a/config.ts +++ b/config.ts @@ -11,6 +11,7 @@ export default { email: 'm@kretschmann.io', uri: 'https://matthiaskretschmann.com', twitter: 'https://twitter.com/kremalicious', + mastodon: 'https://mas.to/@krema', github: 'https://github.com/kremalicious', bitcoin: '171qDmKEXm9YBgBLXyGjjPvopP5o9htQ1V', ether: '0xf50F267b5689b005FE107cfdb34619f24c014457' diff --git a/src/components/atoms/HeadMeta/SchemaOrg.tsx b/src/components/atoms/HeadMeta/SchemaOrg.tsx index 1c5eb54c..2b11e50f 100644 --- a/src/components/atoms/HeadMeta/SchemaOrg.tsx +++ b/src/components/atoms/HeadMeta/SchemaOrg.tsx @@ -1,6 +1,6 @@ import { ImageDataLike } from 'gatsby-plugin-image' import React, { ReactElement } from 'react' -import { useSiteMetadata } from '../../../hooks/use-site-metadata' +import { useSiteMetadata } from '../../../hooks/useSiteMetadata' type SchemaOrgProps = { post?: { diff --git a/src/components/atoms/HeadMeta/index.tsx b/src/components/atoms/HeadMeta/index.tsx index a047517d..a0e4f244 100644 --- a/src/components/atoms/HeadMeta/index.tsx +++ b/src/components/atoms/HeadMeta/index.tsx @@ -1,7 +1,7 @@ import React, { ReactElement } from 'react' import { graphql, useStaticQuery } from 'gatsby' import { getSrc, ImageDataLike } from 'gatsby-plugin-image' -import { useSiteMetadata } from '../../../hooks/use-site-metadata' +import { useSiteMetadata } from '../../../hooks/useSiteMetadata' import useDarkMode from '../../../hooks/useDarkMode' const query = graphql` diff --git a/src/components/atoms/Icon.tsx b/src/components/atoms/Icon.tsx index 81dd343f..b3b7c97b 100644 --- a/src/components/atoms/Icon.tsx +++ b/src/components/atoms/Icon.tsx @@ -27,6 +27,7 @@ import { import { ReactComponent as Jsonfeed } from '../../images/jsonfeed.svg' import { ReactComponent as Bitcoin } from '../../images/bitcoin.svg' import { ReactComponent as Stopwatch } from '../../images/stopwatch.svg' +import { ReactComponent as Mastodon } from '../../images/mastodon.svg' import * as styles from './Icon.module.css' const components: { @@ -54,7 +55,8 @@ const components: { Camera, Aperture, Maximize, - Crosshair + Crosshair, + Mastodon } const Icon = ({ name, ...props }: { name: string }): ReactElement => { diff --git a/src/components/molecules/Menu.tsx b/src/components/molecules/Menu.tsx index 85347e45..0eed5c56 100644 --- a/src/components/molecules/Menu.tsx +++ b/src/components/molecules/Menu.tsx @@ -2,7 +2,7 @@ import React, { ReactElement, useEffect, useState } from 'react' import { Link } from 'gatsby' import Hamburger from '../atoms/Hamburger' import * as styles from './Menu.module.css' -import { useSiteMetadata } from '../../hooks/use-site-metadata' +import { useSiteMetadata } from '../../hooks/useSiteMetadata' export default function Menu(): ReactElement { const [menuOpen, setMenuOpen] = useState(false) diff --git a/src/components/molecules/Networks.tsx b/src/components/molecules/Networks.tsx index 54e61f15..18a4c349 100644 --- a/src/components/molecules/Networks.tsx +++ b/src/components/molecules/Networks.tsx @@ -5,7 +5,9 @@ import * as styles from './Networks.module.css' function NetworkIcon({ link }: { link: string }) { let IconComp - if (link.includes('twitter')) { + if (link.includes('mas.to')) { + IconComp = + } else if (link.includes('twitter')) { IconComp = } else if (link.includes('github')) { IconComp = @@ -28,7 +30,7 @@ export default function IconLinks({ return (

{links.map((link: string) => ( - + ))} diff --git a/src/components/molecules/Vcard.tsx b/src/components/molecules/Vcard.tsx index 9d37de34..82570fa2 100644 --- a/src/components/molecules/Vcard.tsx +++ b/src/components/molecules/Vcard.tsx @@ -3,7 +3,7 @@ import { graphql, useStaticQuery } from 'gatsby' import { getSrc } from 'gatsby-plugin-image' import IconLinks from './Networks' import * as styles from './Vcard.module.css' -import { useSiteMetadata } from '../../hooks/use-site-metadata' +import { useSiteMetadata } from '../../hooks/useSiteMetadata' const query = graphql` query Avatar { @@ -27,9 +27,9 @@ const query = graphql` export default function Vcard(): ReactElement { const data = useStaticQuery(query) const { author, rss, jsonfeed } = useSiteMetadata() - const { twitter, github, name, uri } = author + const { mastodon, twitter, github, name, uri } = author const avatar = getSrc(data.avatar.edges[0].node) - const links = [twitter, github, rss, jsonfeed] + const links = [mastodon, github, twitter, rss, jsonfeed] return ( <> diff --git a/src/components/organisms/Footer.tsx b/src/components/organisms/Footer.tsx index 48a47920..8a3ec2f6 100644 --- a/src/components/organisms/Footer.tsx +++ b/src/components/organisms/Footer.tsx @@ -2,7 +2,7 @@ import React from 'react' import { Link } from 'gatsby' import Icon from '../atoms/Icon' import Vcard from '../molecules/Vcard' -import { useSiteMetadata } from '../../hooks/use-site-metadata' +import { useSiteMetadata } from '../../hooks/useSiteMetadata' import * as styles from './Footer.module.css' function Copyright() { diff --git a/src/components/templates/Post/Actions.tsx b/src/components/templates/Post/Actions.tsx index 78bce7a3..dedbfcf6 100644 --- a/src/components/templates/Post/Actions.tsx +++ b/src/components/templates/Post/Actions.tsx @@ -1,5 +1,5 @@ import React, { ReactElement } from 'react' -import { useSiteMetadata } from '../../../hooks/use-site-metadata' +import { useSiteMetadata } from '../../../hooks/useSiteMetadata' import * as styles from './Actions.module.css' import Icon from '../../atoms/Icon' @@ -22,22 +22,19 @@ const Action = ({ title, text, url, icon, onClick }: ActionProps) => { } export default function PostActions({ - slug, githubLink }: { - slug: string githubLink: string }): ReactElement { - const { siteUrl } = useSiteMetadata() - const urlTwitter = `https://twitter.com/intent/tweet?text=@kremalicious&url=${siteUrl}${slug}` + const { author } = useSiteMetadata() return (

} - + diff --git a/src/hooks/use-site-metadata.ts b/src/hooks/useSiteMetadata.ts similarity index 97% rename from src/hooks/use-site-metadata.ts rename to src/hooks/useSiteMetadata.ts index c1b7d3c5..4f9549d7 100644 --- a/src/hooks/use-site-metadata.ts +++ b/src/hooks/useSiteMetadata.ts @@ -13,6 +13,7 @@ const query = graphql` email uri twitter + mastodon github bitcoin ether diff --git a/src/images/mastodon.svg b/src/images/mastodon.svg new file mode 100644 index 00000000..178896c0 --- /dev/null +++ b/src/images/mastodon.svg @@ -0,0 +1,23 @@ + + + + + + diff --git a/src/pages/thanks.tsx b/src/pages/thanks.tsx index 55b0cbc3..28aa2322 100644 --- a/src/pages/thanks.tsx +++ b/src/pages/thanks.tsx @@ -1,5 +1,5 @@ import React, { ReactElement } from 'react' -import { useSiteMetadata } from '../hooks/use-site-metadata' +import { useSiteMetadata } from '../hooks/useSiteMetadata' import Icon from '../components/atoms/Icon' import * as styles from './thanks.module.css' import Web3Donation from '../components/molecules/Web3Donation'