Graphical PDS migrator for AT Protocol

umami analytics

Changed files
+8 -4
islands
routes
+2 -3
islands/CredLogin.tsx
···
import { useState } from 'preact/hooks'
import { JSX } from 'preact'
-
import { LoginProps } from "./LoginSelector.tsx";
-
export default function CredLogin({ redirect }: LoginProps) {
+
export default function CredLogin() {
const [handle, setHandle] = useState('')
const [password, setPassword] = useState('')
const [error, setError] = useState<string | null>(null)
···
await new Promise((resolve) => setTimeout(resolve, 500))
// Redirect to home page after successful login
-
globalThis.location.href = '/login/callback?redirect=' + encodeURIComponent(redirect)
+
globalThis.location.href = '/'
} catch (err) {
const message = err instanceof Error ? err.message : 'Login failed'
setError(message)
+6 -1
routes/_app.tsx
···
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="og:image" content="/og-image.jpg" />
<meta name="og:title" content="Airport" />
-
<meta name="og:description" content="Airport is an AT Protocol PDS Migration Tool that allows you to seamlessly migrate your account from one PDS to another." />
+
<meta name="og:description" content="
+
Airport is an AT Protocol PDS Migration Tool that allows you to seamlessly
+
migrate your account from one PDS to another.
+
" />
+
<meta name="og:locale" content="en_US" />
<title>Airport</title>
<link rel="stylesheet" href="/styles.css" />
</head>
+
<script defer src="https://cloud.umami.is/script.js" data-website-id={Deno.env.get("UMAMI_ID")}></script>
<body>
<Header />
<main className="pt-8">