Skip to content

Commit

Permalink
feat(component): Add SNS component (#44)
Browse files Browse the repository at this point in the history
Render SNS icon and link.
  • Loading branch information
5ouma authored Nov 16, 2024
1 parent 0e985bf commit 9d03989
Show file tree
Hide file tree
Showing 5 changed files with 173 additions and 0 deletions.
61 changes: 61 additions & 0 deletions src/components/SNS/SNS.astro
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
---
import { Icon } from "astro-icon/components";
import { type contact, getContact } from "../../libs/contact.ts";
import type { serviceName } from "../../types/services.ts";
import "../../styles/global.css";
export type Props = { service: serviceName; id: string };
const { service, id } = Astro.props;
const { url, icon, color }: contact = getContact(service, id);
---

<a
href={url}
target="_blank"
rel="noopener noreferrer"
aria-label={`Go to ${id}'s profile on ${service}`}
>
<Icon name={icon} />
<span>{id}</span>
</a>

<style define:vars={{ "accent-color": color }}>
a {
display: inline-flex;
align-items: center;
gap: 0.5rem;
text-decoration: none;
color: var(--foreground);
border-bottom: 2px solid
color-mix(in srgb, var(--foreground) 30%, transparent);
transition:
color 0.3s ease-in-out,
border-color 0.3s ease-in-out;

&:hover,
&:focus-visible {
color: color-mix(in srgb, var(--accent-color) 20%, var(--foreground));
border-color: color-mix(
in srgb,
var(--accent-color) 60%,
var(--foreground)
);
}
}

svg {
width: 1.5rem;
height: auto;
opacity: 80%;
}

span {
font-family: "LINE Seed JP", sans-serif;
font-size: 1rem;
font-style: normal;
font-weight: bold;
line-height: normal;
}
</style>
16 changes: 16 additions & 0 deletions src/components/SNS/SNS.stories.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import SNS from "./SNS.astro";
import * as stories from "./story.ts";

export default {
title: "SNS Links",
component: SNS,
};

export const Bluesky = { args: stories.Bluesky };
export const Facebook = { args: stories.Facebook };
export const GitHub = { args: stories.GitHub };
export const Instagram = { args: stories.Instagram };
export const Mastodon = { args: stories.Mastodon };
export const Misskey = { args: stories.Misskey };
export const Posts = { args: stories.Posts };
export const Twitter = { args: stories.Twitter };
38 changes: 38 additions & 0 deletions src/components/SNS/SNS.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import { experimental_AstroContainer as AstroContainer } from "astro/container";
import { describe, expect, test } from "vitest";

import SNS from "./SNS.astro";
import * as stories from "./story.ts";

describe("SNS", () => {
describe("Valid service and ID", () => {
for (const [name, props] of Object.entries(stories)) {
test(name, async () => {
const container: AstroContainer = await AstroContainer.create();
const result: string = await container.renderToString(SNS, {
props,
});

expect(result).toMatchSnapshot();
});
}
});

describe("Invalid service or ID", () => {
const invalidProps: { service: string; id: string }[] = [
{ service: "Mastodon", id: "invalid-id" },
{ service: "Misskey", id: "invalid-id" },
{ service: "invalid-service", id: "id" },
];

for (const props of invalidProps) {
test(props.service, async () => {
const container: AstroContainer = await AstroContainer.create();

await expect(
container.renderToString(SNS, { props }),
).rejects.toThrow();
});
}
});
});
17 changes: 17 additions & 0 deletions src/components/SNS/__snapshots__/SNS.test.ts.snap
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html

exports[`SNS > Valid service and ID > Bluesky 1`] = `"<a href="https://bsky.app/profile/bsky.app" target="_blank" rel="noopener noreferrer" aria-label="Go to bsky.app's profile on Bluesky" data-astro-cid-ilwnnabb style="--accent-color: #0285FF;"> <svg width="1em" height="1em" data-astro-cid-ilwnnabb data-icon="mingcute:bluesky-social-line"> <symbol id="ai:mingcute:bluesky-social-line" viewBox="0 0 24 24"><g fill="none" fill-rule="evenodd"><path d="m12.594 23.258l-.012.002l-.071.035l-.02.004l-.014-.004l-.071-.036q-.016-.004-.024.006l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.016-.018m.264-.113l-.014.002l-.184.093l-.01.01l-.003.011l.018.43l.005.012l.008.008l.201.092q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.003-.011l.018-.43l-.003-.012l-.01-.01z"/><path fill="currentColor" d="M4.747 5.105a.94.94 0 0 0-.41.892l.314 3.287A3 3 0 0 0 7.637 12H9a1 1 0 0 1 .371 1.928l-2.34.937c-.885.354-1.122 1.32-.664 1.932c.288.384.576.731.84.996c.233.233.532.485.865.74c.619.475 1.625.214 1.94-.734l1.04-3.115a1 1 0 0 1 1.897 0l1.038 3.115c.316.948 1.322 1.21 1.941.735a9 9 0 0 0 .865-.741c.265-.265.553-.612.84-.996c.458-.612.222-1.578-.664-1.932l-2.34-.937A1 1 0 0 1 15 12h1.363a3 3 0 0 0 2.986-2.716l.314-3.287a.94.94 0 0 0-.41-.892a.75.75 0 0 0-.858-.001c-2.645 1.708-4.05 3.442-5.5 6.343a1 1 0 0 1-1.79 0c-1.45-2.901-2.855-4.635-5.5-6.343a.75.75 0 0 0-.858.001m-2.4 1.082C2.13 3.913 4.567 2.053 6.69 3.424C9.13 5 10.662 6.639 12 8.9c1.338-2.261 2.87-3.9 5.31-5.476c2.123-1.371 4.56.49 4.344 2.763l-.314 3.287a5 5 0 0 1-2.783 4.02c1.329 1.039 1.818 2.978.677 4.502c-.317.423-.669.853-1.027 1.211c-.317.317-.69.628-1.062.914c-1.88 1.441-4.375.35-5.055-1.69l-.09-.269l-.09.27c-.68 2.04-3.175 3.13-5.055 1.689a11 11 0 0 1-1.062-.914a11.5 11.5 0 0 1-1.027-1.211c-1.141-1.524-.651-3.463.678-4.502a5 5 0 0 1-2.784-4.02z"/></g></symbol><use href="#ai:mingcute:bluesky-social-line"></use> </svg> <span data-astro-cid-ilwnnabb style="--accent-color: #0285FF;">bsky.app</span> </a> "`;

exports[`SNS > Valid service and ID > Facebook 1`] = `"<a href="https://www.facebook.com/facebook" target="_blank" rel="noopener noreferrer" aria-label="Go to facebook's profile on Facebook" data-astro-cid-ilwnnabb style="--accent-color: #0866FF;"> <svg width="1em" height="1em" data-astro-cid-ilwnnabb data-icon="mingcute:facebook-line"> <symbol id="ai:mingcute:facebook-line" viewBox="0 0 24 24"><g fill="none" fill-rule="evenodd"><path d="m12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.018-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z"/><path fill="currentColor" d="M4 12a8 8 0 1 1 9 7.938V14h2a1 1 0 1 0 0-2h-2v-2a1 1 0 0 1 1-1h.5a1 1 0 1 0 0-2H14a3 3 0 0 0-3 3v2H9a1 1 0 1 0 0 2h2v5.938A8 8 0 0 1 4 12m8 10c5.523 0 10-4.477 10-10S17.523 2 12 2S2 6.477 2 12s4.477 10 10 10"/></g></symbol><use href="#ai:mingcute:facebook-line"></use> </svg> <span data-astro-cid-ilwnnabb style="--accent-color: #0866FF;">facebook</span> </a> "`;

exports[`SNS > Valid service and ID > GitHub 1`] = `"<a href="https://github.com/github" target="_blank" rel="noopener noreferrer" aria-label="Go to github's profile on GitHub" data-astro-cid-ilwnnabb style="--accent-color: #181717;"> <svg width="1em" height="1em" data-astro-cid-ilwnnabb data-icon="mingcute:github-line"> <symbol id="ai:mingcute:github-line" viewBox="0 0 24 24"><g fill="none"><path d="m12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.018-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z"/><path fill="currentColor" d="M6.315 6.176c-.25-.638-.24-1.367-.129-2.034a6.8 6.8 0 0 1 2.12 1.07c.28.214.647.283.989.18A9.3 9.3 0 0 1 12 5c.961 0 1.874.14 2.703.391c.342.104.709.034.988-.18a6.8 6.8 0 0 1 2.119-1.07c.111.667.12 1.396-.128 2.033c-.15.384-.075.826.208 1.14C18.614 8.117 19 9.04 19 10c0 2.114-1.97 4.187-5.134 4.818c-.792.158-1.101 1.155-.495 1.726c.389.366.629.882.629 1.456v3a1 1 0 0 0 2 0v-3c0-.57-.12-1.112-.334-1.603C18.683 15.35 21 12.993 21 10c0-1.347-.484-2.585-1.287-3.622c.21-.82.191-1.646.111-2.28c-.071-.568-.17-1.312-.57-1.756c-.595-.659-1.58-.271-2.28-.032a9 9 0 0 0-2.125 1.045A11.4 11.4 0 0 0 12 3c-.994 0-1.953.125-2.851.356a9 9 0 0 0-2.125-1.045c-.7-.24-1.686-.628-2.281.031c-.408.452-.493 1.137-.566 1.719l-.005.038c-.08.635-.098 1.462.112 2.283C3.484 7.418 3 8.654 3 10c0 2.992 2.317 5.35 5.334 6.397A4 4 0 0 0 8 17.98l-.168.034c-.717.099-1.176.01-1.488-.122c-.76-.322-1.152-1.133-1.63-1.753c-.298-.385-.732-.866-1.398-1.088a1 1 0 0 0-.632 1.898c.558.186.944 1.142 1.298 1.566c.373.448.869.916 1.58 1.218c.682.29 1.483.393 2.438.276V21a1 1 0 0 0 2 0v-3c0-.574.24-1.09.629-1.456c.607-.572.297-1.568-.495-1.726C6.969 14.187 5 12.114 5 10c0-.958.385-1.881 1.108-2.684c.283-.314.357-.756.207-1.14"/></g></symbol><use href="#ai:mingcute:github-line"></use> </svg> <span data-astro-cid-ilwnnabb style="--accent-color: #181717;">github</span> </a> "`;

exports[`SNS > Valid service and ID > Instagram 1`] = `"<a href="https://www.instagram.com/instagram" target="_blank" rel="noopener noreferrer" aria-label="Go to instagram's profile on Instagram" data-astro-cid-ilwnnabb style="--accent-color: #E4405F;"> <svg width="1em" height="1em" data-astro-cid-ilwnnabb data-icon="mingcute:ins-line"> <symbol id="ai:mingcute:ins-line" viewBox="0 0 24 24"><g fill="none" fill-rule="evenodd"><path d="m12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.018-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z"/><path fill="currentColor" d="M16 3a5 5 0 0 1 5 5v8a5 5 0 0 1-5 5H8a5 5 0 0 1-5-5V8a5 5 0 0 1 5-5zm0 2H8a3 3 0 0 0-3 3v8a3 3 0 0 0 3 3h8a3 3 0 0 0 3-3V8a3 3 0 0 0-3-3m-4 3a4 4 0 1 1 0 8a4 4 0 0 1 0-8m0 2a2 2 0 1 0 0 4a2 2 0 0 0 0-4m4.5-3.5a1 1 0 1 1 0 2a1 1 0 0 1 0-2"/></g></symbol><use href="#ai:mingcute:ins-line"></use> </svg> <span data-astro-cid-ilwnnabb style="--accent-color: #E4405F;">instagram</span> </a> "`;

exports[`SNS > Valid service and ID > Mastodon 1`] = `"<a href="https://mastodon.social/@Mastodon@mastodon.social" target="_blank" rel="noopener noreferrer" aria-label="Go to @Mastodon@mastodon.social's profile on Mastodon" data-astro-cid-ilwnnabb style="--accent-color: #6364FF;"> <svg width="1em" height="1em" data-astro-cid-ilwnnabb data-icon="mingcute:mastodon-line"> <symbol id="ai:mingcute:mastodon-line" viewBox="0 0 24 24"><g fill="none"><path d="m12.594 23.258l-.012.002l-.071.035l-.02.004l-.014-.004l-.071-.036q-.016-.004-.024.006l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.016-.018m.264-.113l-.014.002l-.184.093l-.01.01l-.003.011l.018.43l.005.012l.008.008l.201.092q.019.005.029-.008l.004-.014l-.034-.614q-.005-.019-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.003-.011l.018-.43l-.003-.012l-.01-.01z"/><path fill="currentColor" d="M16.432 2.415a5.11 5.11 0 0 1 4.163 4.142c.431 2.361.528 4.682.04 7.108c-.406 2.023-2.006 3.532-4.01 3.893c-1.55.278-3.105.424-4.667.42c.722.144 1.471.17 2.21.186l.632.012l.395.002c.536.007 1.097.048 1.533.34c.266.178.535.51.533.985c0 .429-.231.732-.364.878c-.468.513-1.19.784-1.832.994c-1.042.339-2.46.6-4.06.607c-3.428.016-6.644-2.263-7.478-5.75c-.749-3.133-.743-6.648-.145-9.781a5.03 5.03 0 0 1 4.094-4.02a25.9 25.9 0 0 1 8.956-.016M7.822 4.4a3.03 3.03 0 0 0-2.475 2.424c-.552 2.89-.55 6.117.125 8.942c.602 2.514 2.951 4.227 5.523 4.215q.351-.001.684-.02a5.86 5.86 0 0 1-2.959-1.498c-.519-.495-1.115-1.254-.791-2.014c.201-.471.702-.721 1.2-.657c2.383.31 4.759.224 7.142-.204c1.223-.22 2.165-1.127 2.404-2.318c.426-2.119.35-4.177-.047-6.355a3.11 3.11 0 0 0-2.537-2.53a23.9 23.9 0 0 0-8.269.015M14 6a3 3 0 0 1 3 3v4a1 1 0 1 1-2 0V9a1 1 0 1 0-2 0v3a1 1 0 1 1-2 0V9a1 1 0 1 0-2 0v4a1 1 0 1 1-2 0V9a3 3 0 0 1 5-2.236A3 3 0 0 1 14 6"/></g></symbol><use href="#ai:mingcute:mastodon-line"></use> </svg> <span data-astro-cid-ilwnnabb style="--accent-color: #6364FF;">@Mastodon@mastodon.social</span> </a> "`;

exports[`SNS > Valid service and ID > Misskey 1`] = `"<a href="https://misskey.io/@support@misskey.io" target="_blank" rel="noopener noreferrer" aria-label="Go to @support@misskey.io's profile on Misskey" data-astro-cid-ilwnnabb style="--accent-color: #A1CA03;"> <svg width="1em" height="1em" data-astro-cid-ilwnnabb data-icon="simple-icons:misskey"> <symbol id="ai:simple-icons:misskey" viewBox="0 0 24 24"><path fill="currentColor" d="M8.91 16.892c-1.039.003-1.931-.63-2.352-1.366c-.225-.322-.67-.437-.676 0v2.014q0 1.215-.876 2.1q-.85.86-2.078.86q-1.2 0-2.077-.86A2.93 2.93 0 0 1 0 17.54V6.46q0-.936.526-1.695a2.86 2.86 0 0 1 1.402-1.088a2.9 2.9 0 0 1 1-.177q1.353 0 2.253 1.063l2.997 3.515c.067.05.263.437.732.437c.47 0 .692-.386.758-.437l2.972-3.515Q13.567 3.5 14.918 3.5q.501 0 1.001.177a2.73 2.73 0 0 1 1.377 1.088q.55.758.55 1.695v11.08q0 1.215-.875 2.1q-.852.86-2.078.86q-1.201 0-2.078-.86a2.93 2.93 0 0 1-.85-2.1v-2.014c-.05-.55-.531-.204-.702 0c-.45.843-1.313 1.361-2.352 1.366M21.448 8.61q-1.05 0-1.802-.733q-.726-.759-.726-1.822c0-1.063.242-1.307.726-1.796a2.44 2.44 0 0 1 1.802-.758q1.05 0 1.803.758q.75.735.75 1.796q0 1.063-.75 1.822q-.751.732-1.803.733m.025.507q1.05 0 1.777.758q.75.759.751 1.822v6.248q0 1.064-.75 1.821a2.4 2.4 0 0 1-1.778.734q-1.05 0-1.802-.733a2.5 2.5 0 0 1-.75-1.822v-6.248a2.5 2.5 0 0 1 .75-1.822a2.44 2.44 0 0 1 1.802-.758"/></symbol><use href="#ai:simple-icons:misskey"></use> </svg> <span data-astro-cid-ilwnnabb style="--accent-color: #A1CA03;">@support@misskey.io</span> </a> "`;

exports[`SNS > Valid service and ID > Posts 1`] = `"<a href="https://posts.cv/support" target="_blank" rel="noopener noreferrer" aria-label="Go to support's profile on Posts" data-astro-cid-ilwnnabb style="--accent-color: #111111;"> <svg width="1em" height="1em" data-astro-cid-ilwnnabb data-icon="simple-icons:readdotcv"> <symbol id="ai:simple-icons:readdotcv" viewBox="0 0 24 24"><path fill="currentColor" d="M20.832 3.367L8.668.108a3.15 3.15 0 0 0-3.856 2.226L.943 16.777a3.15 3.15 0 0 0 2.226 3.856l12.163 3.259a3.15 3.15 0 0 0 3.855-2.226l3.87-14.443a3.15 3.15 0 0 0-2.226-3.856M6.332 2.741A1.574 1.574 0 0 1 8.26 1.628l12.163 3.26a1.574 1.574 0 0 1 1.113 1.927l-3.87 14.444a1.574 1.574 0 0 1-1.928 1.113l-12.163-3.26a1.574 1.574 0 0 1-1.113-1.927zm2.634 2.336a.787.787 0 1 0-.407 1.52l9.122 2.444a.787.787 0 1 0 .407-1.52zM6.985 9.434a.787.787 0 0 1 .963-.557l9.123 2.445a.787.787 0 0 1-.408 1.52l-9.122-2.444a.787.787 0 0 1-.556-.964m-.055 3.244a.787.787 0 0 0-.407 1.52l5.32 1.427a.787.787 0 0 0 .408-1.52z"/></symbol><use href="#ai:simple-icons:readdotcv"></use> </svg> <span data-astro-cid-ilwnnabb style="--accent-color: #111111;">support</span> </a> "`;

exports[`SNS > Valid service and ID > Twitter 1`] = `"<a href="https://twitter.com/twitter" target="_blank" rel="noopener noreferrer" aria-label="Go to twitter's profile on Twitter" data-astro-cid-ilwnnabb style="--accent-color: #1D9BF0;"> <svg width="1em" height="1em" data-astro-cid-ilwnnabb data-icon="mingcute:twitter-line"> <symbol id="ai:mingcute:twitter-line" viewBox="0 0 24 24"><g fill="none" fill-rule="evenodd"><path d="m12.593 23.258l-.011.002l-.071.035l-.02.004l-.014-.004l-.071-.035q-.016-.005-.024.005l-.004.01l-.017.428l.005.02l.01.013l.104.074l.015.004l.012-.004l.104-.074l.012-.016l.004-.017l-.017-.427q-.004-.016-.017-.018m.265-.113l-.013.002l-.185.093l-.01.01l-.003.011l.018.43l.005.012l.008.007l.201.093q.019.005.029-.008l.004-.014l-.034-.614q-.005-.018-.02-.022m-.715.002a.02.02 0 0 0-.027.006l-.006.014l-.034.614q.001.018.017.024l.015-.002l.201-.093l.01-.008l.004-.011l.017-.43l-.003-.012l-.01-.01z"/><path fill="currentColor" d="M17.817 6.989c-.353-.508-1.297-1.222-2.826-.914c-.892.179-1.425.62-1.764 1.202c-.361.62-.536 1.463-.536 2.444a1 1 0 0 1-1 1c-2.366 0-4.618-.703-6.513-2.604a10.5 10.5 0 0 0-.168 2.34c.053 1.086.312 2.175.927 3.108c.605.917 1.6 1.757 3.264 2.285a1 1 0 0 1 .41 1.655a8.5 8.5 0 0 1-1.796 1.405c1.06.11 2.082.118 3.03.032c1.92-.174 3.449-.723 4.405-1.5c2.013-1.632 3.09-4.066 2.89-8.144c-.034-.67.613-1.393.925-1.942c-.471.088-.943.072-1.248-.367M4.594 4.984a1 1 0 0 1 .941.429C7.011 7.572 8.783 8.47 10.75 8.674c.096-.841.323-1.672.75-2.404c.626-1.074 1.644-1.864 3.098-2.156c2.01-.404 3.54.324 4.427 1.215l1.792-.335a1 1 0 0 1 1.053 1.478l-1.72 3.022c.157 4.361-1.055 7.405-3.639 9.502c-1.37 1.112-3.332 1.743-5.485 1.938c-2.17.196-4.623-.041-7.061-.753a1 1 0 0 1 .007-1.922c1.226-.349 2.16-.65 3.003-1.177c-1.199-.636-2.082-1.468-2.707-2.416c-.868-1.318-1.19-2.788-1.254-4.113S3.141 8 3.343 7.115c.115-.505.249-1.011.434-1.495a1 1 0 0 1 .818-.636Z"/></g></symbol><use href="#ai:mingcute:twitter-line"></use> </svg> <span data-astro-cid-ilwnnabb style="--accent-color: #1D9BF0;">twitter</span> </a> "`;
41 changes: 41 additions & 0 deletions src/components/SNS/story.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import type { Props } from "./SNS.astro";

export const Bluesky: Props = {
service: "Bluesky",
id: "bsky.app",
};

export const Facebook: Props = {
service: "Facebook",
id: "facebook",
};

export const GitHub: Props = {
service: "GitHub",
id: "github",
};

export const Instagram: Props = {
service: "Instagram",
id: "instagram",
};

export const Mastodon: Props = {
service: "Mastodon",
id: "@Mastodon@mastodon.social",
};

export const Misskey: Props = {
service: "Misskey",
id: "@support@misskey.io",
};

export const Posts: Props = {
service: "Posts",
id: "support",
};

export const Twitter: Props = {
service: "Twitter",
id: "twitter",
};

0 comments on commit 9d03989

Please sign in to comment.