From c2191c83fda36c65077e572a4ae57d889b068eea Mon Sep 17 00:00:00 2001 From: Jared Pereira Date: Mon, 27 Apr 2026 23:09:32 -0400 Subject: [PATCH] show attach account on attempted recommend --- components/LoginButton.tsx | 12 ++++- components/RecommendButton.tsx | 82 +++++++++++++++++++--------------- 2 files changed, 57 insertions(+), 37 deletions(-) diff --git a/components/LoginButton.tsx b/components/LoginButton.tsx index a02c46be..3ad565bb 100644 --- a/components/LoginButton.tsx +++ b/components/LoginButton.tsx @@ -24,11 +24,19 @@ import { mutate } from "swr"; export const LoginModal = (props: { noEmailLogin?: boolean; - trigger: React.ReactNode; + trigger?: React.ReactNode; asChild?: boolean; redirectRoute?: string; + open?: boolean; + onOpenChange?: (open: boolean) => void; }) => { - let [open, setOpen] = useState(false); + let [internalOpen, setInternalOpen] = useState(false); + let isControlled = props.open !== undefined; + let open = props.open ?? internalOpen; + let setOpen = (o: boolean) => { + if (!isControlled) setInternalOpen(o); + props.onOpenChange?.(o); + }; return ( (null); + const [loginOpen, setLoginOpen] = useState(false); const toaster = useToaster(); const smoker = useSmoker(); @@ -75,6 +79,10 @@ export function RecommendButton(props: { const handleClick = async (e: React.MouseEvent) => { if (isPending || isLoading) return; + if (!identity?.atp_did) { + setLoginOpen(true); + return; + } const currentlyRecommended = displayRecommended; setIsPending(true); @@ -117,43 +125,34 @@ export function RecommendButton(props: { setIsPending(false); }; - if (props.expanded) - return ( - { - e.preventDefault(); - e.stopPropagation(); - handleClick(e); - }} - > - {displayRecommended ? ( - - ) : ( - - )} -
- {count > 0 && ( - <> - - {count} - - - - )} - {displayRecommended ? "Recommended!" : "Recommend"} -
-
- ); + const onClick = (e: React.MouseEvent) => { + e.preventDefault(); + e.stopPropagation(); + handleClick(e); + }; - return ( + const button = props.expanded ? ( + + {displayRecommended ? ( + + ) : ( + + )} +
+ {count > 0 && ( + <> + + {count} + + + + )} + {displayRecommended ? "Recommended!" : "Recommend"} +
+
+ ) : ( ); + + return ( + <> + {button} + {loginOpen && ( + + )} + + ); } -- 2.51.2