From 2b88e88d054f7cb97fef16a3cdae17139e9c0523 Mon Sep 17 00:00:00 2001 From: jp Date: Thu, 13 Aug 2026 19:50:22 +0100 Subject: [PATCH] =?UTF-8?q?Add=20dropdown=20menu=20on=20contacts=20page=20?= =?UTF-8?q?rows=20-=20=E2=8B=AE=20Call=20back=20/=20Lookup=20number=20besi?= =?UTF-8?q?de=20each=20contact=20-=20same=20styling=20as=20messages=20page?= =?UTF-8?q?=20menu?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/components/ContactsPage.tsx | 57 ++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/frontend/src/components/ContactsPage.tsx b/frontend/src/components/ContactsPage.tsx index 7f2d4e1..e8a8cd7 100644 --- a/frontend/src/components/ContactsPage.tsx +++ b/frontend/src/components/ContactsPage.tsx @@ -52,6 +52,9 @@ export default function ContactsPage() { History {" "} + + + ))} @@ -78,3 +81,57 @@ function DeleteBtn({ id, name }: { id: number; name?: string }) { }); return ; } + +function ContactMenu({ number, name }: { number?: string; name?: string }) { + const [open, setOpen] = useState(false); + const digits = (number || "").replace(/[^\d+]/g, ""); + const lookup = encodeURIComponent(name || number || ""); + return ( + <> + + {open && ( + <> + setOpen(false)} + /> +
e.stopPropagation()} + > + {digits && ( + setOpen(false)} + > + 📞 Call back + + )} + setOpen(false)} + > + 🔍 Lookup number + +
+ + )} + + ); +}