import React, { useState } from "react"; import { useNavigate, useSearchParams, Link } from "react-router-dom"; import { useStore } from "@nanostores/react"; import { $user } from "../../store/auth"; import Composer from "../../components/feed/Composer"; import type { Selector } from "../../types"; export default function NewAnnotationPage() { const user = useStore($user); const navigate = useNavigate(); const [searchParams] = useSearchParams(); const initialUrl = searchParams.get("url") || ""; let initialSelector: Selector | null = null; const selectorParam = searchParams.get("selector"); if (selectorParam) { try { initialSelector = JSON.parse(selectorParam); } catch (e) { console.error("Failed to parse selector:", e); } } const legacyQuote = searchParams.get("quote") || ""; if (legacyQuote && !initialSelector) { initialSelector = { type: "TextQuoteSelector", exact: legacyQuote, }; } const [url, setUrl] = useState(initialUrl); if (!user) { return (

Sign in to create

You need a Bluesky account

Sign in with Bluesky
); } const handleSuccess = () => { navigate("/home"); }; return (

New Annotation

Write in the margins of the web

{!initialUrl && (
setUrl(e.target.value)} placeholder="https://example.com/article" className="w-full p-3 bg-white dark:bg-surface-900 border border-surface-200 dark:border-surface-700 rounded-lg text-surface-900 dark:text-white placeholder:text-surface-400 dark:placeholder:text-surface-500 focus:ring-2 focus:ring-primary-500/20 focus:border-primary-500 dark:focus:border-primary-400 outline-none transition-all" required />
)}
navigate(-1)} />
); }