a tool for shared writing and social publishing
0

Configure Feed

Select the types of activity you want to include in your feed.

subscribe button type change from button to submit

celine (Apr 22, 2026, 2:19 PM EDT) d57e5064 bdbdf0a6

+13 -15
+9 -13
app/(home-pages)/reader/layout.tsx
··· 1 1 "use client"; 2 2 3 - import { usePathname } from "next/navigation"; 4 - import Link from "next/link"; 3 + import { usePathname, useRouter } from "next/navigation"; 5 4 import { Header } from "components/PageHeader"; 6 5 import { Footer } from "components/ActionBar/Footer"; 7 6 import { DesktopNavigation } from "components/ActionBar/DesktopNavigation"; ··· 9 8 import { MediaContents } from "components/Media"; 10 9 import { DashboardIdContext } from "components/PageLayouts/DashboardLayout"; 11 10 import { useIdentityData } from "components/IdentityProvider"; 11 + import { Tab } from "components/Tab"; 12 12 13 13 const allTabs = [ 14 14 { name: "Subs", href: "/reader", requiresAuth: true }, ··· 22 22 children: React.ReactNode; 23 23 }) { 24 24 const pathname = usePathname(); 25 + const router = useRouter(); 25 26 const { identity } = useIdentityData(); 26 27 const isLoggedIn = !!identity?.atp_did; 27 28 const tabs = allTabs.filter((tab) => !tab.requiresAuth || isLoggedIn); ··· 52 53 <Header> 53 54 <div className="pubDashTabs flex flex-row gap-1"> 54 55 {tabs.map((tab) => ( 55 - <Link key={tab.name} href={tab.href}> 56 - <div 57 - className={`pubTabs px-1 py-0 flex gap-1 items-center rounded-md hover:cursor-pointer ${ 58 - isActive(tab.href) 59 - ? "text-accent-2 bg-accent-1 font-bold -mb-px" 60 - : "text-secondary" 61 - }`} 62 - > 63 - {tab.name} 64 - </div> 65 - </Link> 56 + <Tab 57 + key={tab.name} 58 + name={tab.name} 59 + selected={isActive(tab.href)} 60 + onSelect={() => router.push(tab.href)} 61 + /> 66 62 ))} 67 63 </div> 68 64 <div className="sm:block grow" />
+4 -2
app/lish/Subscribe.tsx
··· 19 19 } from "./subscribeToPublication"; 20 20 import { DotLoader } from "components/utils/DotLoader"; 21 21 import { addFeed } from "./addFeed"; 22 - import { useSearchParams } from "next/navigation"; 22 + import { useSearchParams, usePathname } from "next/navigation"; 23 23 24 24 import { RSSSmall } from "components/Icons/RSSSmall"; 25 25 import { OAuthErrorMessage, isOAuthSessionError } from "components/OAuthError"; ··· 168 168 }) => { 169 169 let { identity } = useIdentityData(); 170 170 let toaster = useToaster(); 171 + let pathname = usePathname(); 171 172 let [oauthError, setOauthError] = useState< 172 173 import("src/atproto-oauth").OAuthSessionError | null 173 174 >(null); ··· 195 196 if (!identity?.atp_did) { 196 197 return ( 197 198 <LoginModal 199 + redirectRoute={pathname} 198 200 trigger={<ButtonPrimary>Subscribe!</ButtonPrimary>} 199 201 noEmailLogin 200 202 /> ··· 206 208 action={subscribe} 207 209 className="place-self-center flex flex-row gap-1" 208 210 > 209 - <ButtonPrimary type="button" className="mx-auto max-w-full"> 211 + <ButtonPrimary type="submit" className="mx-auto max-w-full"> 210 212 {subscribePending ? ( 211 213 <DotLoader /> 212 214 ) : (