From 95d26510849fd7eddd74bae73c3a9b6b75b5afdc Mon Sep 17 00:00:00 2001 From: Christian van der Loo Date: Tue, 29 Jul 2025 09:28:47 -0400 Subject: [PATCH] bsky stuff --- astro.config.ts | 14 ++- bun.lockb | Bin 244034 -> 273860 bytes package.json | 8 ++ src/components/BlueskyComments.tsx | 158 +++++++++++++++++++++++++++++ src/oauth.ts | 11 ++ src/pages/callback.astro | 22 ++++ src/pages/posts/[...slug].astro | 4 +- 7 files changed, 208 insertions(+), 9 deletions(-) create mode 100644 src/components/BlueskyComments.tsx create mode 100644 src/oauth.ts create mode 100644 src/pages/callback.astro diff --git a/astro.config.ts b/astro.config.ts index 52d0ea4..3d1fac3 100644 --- a/astro.config.ts +++ b/astro.config.ts @@ -2,17 +2,15 @@ import sitemap from "@astrojs/sitemap"; import tailwindcss from "@tailwindcss/vite"; import icon from "astro-icon"; import { defineConfig } from "astro/config"; +import react from "@astrojs/react"; export default defineConfig({ site: "https://chrisvanderloo.com/", - integrations: [ - icon(), - sitemap(), - ], - vite: { - plugins: [tailwindcss()] - }, - markdown: { + integrations: [icon(), sitemap(), react()], + vite: { + plugins: [tailwindcss()] + }, + markdown: { shikiConfig: { themes: { light: "catppuccin-latte", diff --git a/bun.lockb b/bun.lockb index 23a9bf5001ef08e3199fbdf07f10b1bc1fdd1aca..ec38aa9c849e683bb80379da6313ded8ce1a097a 100755 GIT binary patch delta 63737 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 W%}FCr2Bqet!A;cI{(lRzGYbIr(UGVC delta 44913 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 void + signOut: () => Promise +} | null +const OAuthContext = createContext(null) + +function useOAuthContext() { + const ctx = useContext(OAuthContext) + if (!ctx) { + throw new Error("OAuthSessionContext.Provider required for useOAuthSession.") + } + return ctx +} + +function OAuthContextProvider({ children }: PropsWithChildren) { + const [isPending, startTransition] = useTransition() + const [client, setClient] = useState() + const [handle, setHandle] = useState() + const [session, setSession] = useState() + + const signOut = useCallback(async () => { + if (client) { + await client.revoke(session?.sub || "") + setSession(undefined) + } + }, [client, session]) + + useEffect(() => { + startTransition(async () => { + const client = await getClient() + const initReturn = await client.init() + if (initReturn) { + setSession(initReturn.session) + const handle = await fetch(`https://plc.directory/${initReturn.session.did}`) + .then((b) => b.json()) + .then((j) => j.alsoKnownAs?.[0]?.replace("at://", "@")) + setHandle(handle) + } + setClient(client) + }) + }, []) + + return ( + + {children} + + ) +} + +function SignInWithBluesky() { + const { client } = useOAuthContext() + const [handle, setHandle] = useState("") + + const onChange = useCallback((e: React.ChangeEvent) => { + setHandle(e.target.value) + }, []) + + const onSignIn = useCallback(() => { + client?.signIn(handle) + window.location.hash = "comments" + localStorage.setItem("redirect", window.location.href) + }, [client, handle]) + + return ( +
+

Sign In with Bluesky

+ or any other Atmosphere account. +
+ + +
+
+ ) +} + +function UserComment() { + const [comment, setComment] = useState("") + const { handle, signOut } = useOAuthContext() + return ( + <> +