import Head from 'next/head' import { useRouter } from 'next/router' import { ConnectButton } from '@/components/ConnectButton' import { ArticleEditor } from '@/components/ArticleEditor' import { useEffect, useState } from 'react' import { useNostrConnect } from '@/hooks/useNostrConnect' import { getSeriesByAuthor } from '@/lib/seriesQueries' function PublishHeader() { return ( Publish Article - zapwall4Science ) } function PublishHero({ onBack }: { onBack: () => void }) { return (

Publish New Article

Create an article with a free preview and paid full content

) } export default function PublishPage() { const router = useRouter() const { pubkey } = useNostrConnect() const [seriesOptions, setSeriesOptions] = useState<{ id: string; title: string }[]>([]) const handlePublishSuccess = () => { setTimeout(() => { void router.push('/') }, 2000) } useEffect(() => { if (!pubkey) { setSeriesOptions([]) return } const load = async () => { const items = await getSeriesByAuthor(pubkey) setSeriesOptions(items.map((s) => ({ id: s.id, title: s.title }))) } void load() }, [pubkey]) return ( <> { void router.push('/') }} onPublishSuccess={handlePublishSuccess} seriesOptions={seriesOptions} /> ) } function PublishLayout({ onBack, onPublishSuccess, seriesOptions, }: { onBack: () => void onPublishSuccess: () => void seriesOptions: { id: string; title: string }[] }) { return (

zapwall4Science

) }