Something went wrong. Try again.
A small Disqus alternative based on AT Proto (WIP)
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970<script lang="ts"> import type { OAuthSession } from "@atproto/oauth-client-browser"; import { Client } from "./at/client"; import { Agent } from "@atproto/api"; import { Session } from "./states/session.svelte"; import Login from "./pages/Login.svelte"; import Route from "./components/Route.svelte"; import { Router } from "./states/router.svelte"; import Index from "./pages/Index.svelte"; import Comment from "./pages/Comment.svelte";
async function initClient() { const result: undefined | { session: OAuthSession; state?: string | null } = await Client.init();
if (result) { const { session: s, state } = result;
if (state != null) { console.log( `${s.sub} was successfully authenticated (state: ${state})` ); } else { console.log(`${s.sub} was restored (last active session)`); }
// Session.value = s; Session.value = s;
let agent = new Agent(s); Session.profile = ( await agent.getProfile({ actor: agent.assertDid }) ).data;
Session.initialized = true;
if (Router.url === "/oauth/callback") { if (state != null) { let query = new URLSearchParams(state); let from = query.get("from");
if (from !== null) { Router.go(from); } else { Router.go("/"); } } else { Router.go("/"); } } }
Session.initialized = true; }
initClient();</script>
<main> <Route url="/login"> <Login /> </Route> <Route url="/comment"> <Comment /> </Route> <Route url="/" auth={true}> <Index /> </Route></main>