From c0308532a152ba6e8e0714ab3c264dacc832c967 Mon Sep 17 00:00:00 2001 From: James Thomas Date: Thu, 27 Mar 2025 17:21:40 -0400 Subject: [PATCH 1/4] Adding DM from Map function --- .../PageComponents/Map/NodeDetail.tsx | 67 +++++++++++++++---- 1 file changed, 55 insertions(+), 12 deletions(-) diff --git a/src/components/PageComponents/Map/NodeDetail.tsx b/src/components/PageComponents/Map/NodeDetail.tsx index 71dbad96..66b41c49 100644 --- a/src/components/PageComponents/Map/NodeDetail.tsx +++ b/src/components/PageComponents/Map/NodeDetail.tsx @@ -16,31 +16,51 @@ import { Dot, LockIcon, LockOpenIcon, + MessageSquareIcon, MountainSnow, Star, } from "lucide-react"; +import { + Tooltip, + TooltipContent, + TooltipPortal, + TooltipProvider, + TooltipTrigger, +} from "@radix-ui/react-tooltip"; +import { useAppStore } from "@core/stores/appStore.ts"; +import { useDevice } from "@core/stores/deviceStore.ts"; export interface NodeDetailProps { node: ProtobufType.Mesh.NodeInfo; } export const NodeDetail = ({ node }: NodeDetailProps) => { + const { setChatType, setActiveChat } = useAppStore(); + const { setActivePage } = useDevice(); const name = node.user?.longName || `!${numberToHexUnpadded(node.num)}`; + const shortName = node.user?.shortName ?? "UNK"; const hwModel = node.user?.hwModel ?? 0; const hardwareType = Protobuf.Mesh.HardwareModel[hwModel]?.replaceAll("_", " ") ?? `${hwModel}`; + function handleDirectMessage() { + setChatType("direct"); + setActiveChat(node.num); + setActivePage("messages"); + } + return (
- + + +
-
{node.user?.publicKey && node.user?.publicKey.length > 0 ? ( { ) : ( )} -
- + + + + + + + + Direct Message {shortName} + + + + + + +
@@ -70,7 +113,7 @@ export const NodeDetail = ({ node }: NodeDetailProps) => { {!!node.deviceMetrics?.batteryLevel && (
@@ -88,7 +131,7 @@ export const NodeDetail = ({ node }: NodeDetailProps) => {
)} - +
{node.user?.shortName &&
"{node.user?.shortName}"
} {node.user?.id &&
{node.user?.id}
} From 626970865f1218f6965dd3ac434c71a364e9d4d2 Mon Sep 17 00:00:00 2001 From: James Thomas Date: Thu, 27 Mar 2025 17:34:42 -0400 Subject: [PATCH 2/4] Lint --- src/components/PageComponents/Map/NodeDetail.tsx | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/components/PageComponents/Map/NodeDetail.tsx b/src/components/PageComponents/Map/NodeDetail.tsx index 66b41c49..23e2f8d5 100644 --- a/src/components/PageComponents/Map/NodeDetail.tsx +++ b/src/components/PageComponents/Map/NodeDetail.tsx @@ -56,7 +56,6 @@ export const NodeDetail = ({ node }: NodeDetailProps) => {
- {node.user?.publicKey && node.user?.publicKey.length > 0 ? ( {
)} - +
{node.user?.shortName &&
"{node.user?.shortName}"
} {node.user?.id &&
{node.user?.id}
} From 77b3a7ac85196355c75f2a42067e11077ab55823 Mon Sep 17 00:00:00 2001 From: James Thomas Date: Thu, 27 Mar 2025 17:35:18 -0400 Subject: [PATCH 3/4] Lint --- src/components/PageComponents/Map/NodeDetail.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/PageComponents/Map/NodeDetail.tsx b/src/components/PageComponents/Map/NodeDetail.tsx index 23e2f8d5..506b814d 100644 --- a/src/components/PageComponents/Map/NodeDetail.tsx +++ b/src/components/PageComponents/Map/NodeDetail.tsx @@ -55,7 +55,7 @@ export const NodeDetail = ({ node }: NodeDetailProps) => {
-
+
{node.user?.publicKey && node.user?.publicKey.length > 0 ? ( Date: Fri, 28 Mar 2025 09:57:35 -0400 Subject: [PATCH 4/4] Prevent tooltip from appearing by default --- src/components/PageComponents/Map/NodeDetail.tsx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/components/PageComponents/Map/NodeDetail.tsx b/src/components/PageComponents/Map/NodeDetail.tsx index 506b814d..4e57f75a 100644 --- a/src/components/PageComponents/Map/NodeDetail.tsx +++ b/src/components/PageComponents/Map/NodeDetail.tsx @@ -54,8 +54,11 @@ export const NodeDetail = ({ node }: NodeDetailProps) => {
- -
+ +
{ + // Required to prevent DM tooltip auto-appearing on creation + e.stopPropagation(); + }}> {node.user?.publicKey && node.user?.publicKey.length > 0 ? (