Merge pull request #560 from danditomaso/fix/node-detail-use-message-store
fix: update node details page to use message store
This commit is contained in:
@@ -27,15 +27,15 @@ import {
|
|||||||
TooltipProvider,
|
TooltipProvider,
|
||||||
TooltipTrigger,
|
TooltipTrigger,
|
||||||
} from "@radix-ui/react-tooltip";
|
} from "@radix-ui/react-tooltip";
|
||||||
import { useAppStore } from "@core/stores/appStore.ts";
|
|
||||||
import { useDevice } from "@core/stores/deviceStore.ts";
|
import { useDevice } from "@core/stores/deviceStore.ts";
|
||||||
|
import { MessageType, useMessageStore } from "@core/stores/messageStore.ts";
|
||||||
|
|
||||||
export interface NodeDetailProps {
|
export interface NodeDetailProps {
|
||||||
node: ProtobufType.Mesh.NodeInfo;
|
node: ProtobufType.Mesh.NodeInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const NodeDetail = ({ node }: NodeDetailProps) => {
|
export const NodeDetail = ({ node }: NodeDetailProps) => {
|
||||||
const { setChatType, setActiveChat } = useAppStore();
|
const { setChatType, setActiveChat } = useMessageStore();
|
||||||
const { setActivePage } = useDevice();
|
const { setActivePage } = useDevice();
|
||||||
const name = node.user?.longName || `!${numberToHexUnpadded(node.num)}`;
|
const name = node.user?.longName || `!${numberToHexUnpadded(node.num)}`;
|
||||||
const shortName = node.user?.shortName ?? "UNK";
|
const shortName = node.user?.shortName ?? "UNK";
|
||||||
@@ -44,7 +44,7 @@ export const NodeDetail = ({ node }: NodeDetailProps) => {
|
|||||||
Protobuf.Mesh.HardwareModel[hwModel]?.replaceAll("_", " ") ?? `${hwModel}`;
|
Protobuf.Mesh.HardwareModel[hwModel]?.replaceAll("_", " ") ?? `${hwModel}`;
|
||||||
|
|
||||||
function handleDirectMessage() {
|
function handleDirectMessage() {
|
||||||
setChatType("direct");
|
setChatType(MessageType.Direct);
|
||||||
setActiveChat(node.num);
|
setActiveChat(node.num);
|
||||||
setActivePage("messages");
|
setActivePage("messages");
|
||||||
}
|
}
|
||||||
@@ -54,7 +54,7 @@ export const NodeDetail = ({ node }: NodeDetailProps) => {
|
|||||||
<div className="flex gap-2">
|
<div className="flex gap-2">
|
||||||
<div className="flex flex-col items-center gap-2 min-w-6 pt-1">
|
<div className="flex flex-col items-center gap-2 min-w-6 pt-1">
|
||||||
<Avatar text={shortName} />
|
<Avatar text={shortName} />
|
||||||
|
|
||||||
<div onFocusCapture={(e) => {
|
<div onFocusCapture={(e) => {
|
||||||
// Required to prevent DM tooltip auto-appearing on creation
|
// Required to prevent DM tooltip auto-appearing on creation
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
@@ -80,11 +80,10 @@ export const NodeDetail = ({ node }: NodeDetailProps) => {
|
|||||||
<TooltipProvider>
|
<TooltipProvider>
|
||||||
<Tooltip>
|
<Tooltip>
|
||||||
<TooltipTrigger>
|
<TooltipTrigger>
|
||||||
<MessageSquareIcon
|
<MessageSquareIcon
|
||||||
size={14}
|
size={14}
|
||||||
onClick={handleDirectMessage}
|
onClick={handleDirectMessage}
|
||||||
className="cursor-pointer hover:text-blue-500"
|
className="cursor-pointer hover:text-blue-500"
|
||||||
title="Send Message"
|
|
||||||
/>
|
/>
|
||||||
</TooltipTrigger>
|
</TooltipTrigger>
|
||||||
<TooltipPortal>
|
<TooltipPortal>
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ export const MessagesPage = () => {
|
|||||||
key={otherNode.num}
|
key={otherNode.num}
|
||||||
label={otherNode.user?.longName ??
|
label={otherNode.user?.longName ??
|
||||||
`!${numberToHexUnpadded(otherNode.num)}`}
|
`!${numberToHexUnpadded(otherNode.num)}`}
|
||||||
active={activeChat === otherNode.num && chatType === "direct"}
|
active={activeChat === otherNode.num && chatType === MessageType.Direct}
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setChatType(MessageType.Direct);
|
setChatType(MessageType.Direct);
|
||||||
setActiveChat(otherNode.num);
|
setActiveChat(otherNode.num);
|
||||||
@@ -153,7 +153,6 @@ export const MessagesPage = () => {
|
|||||||
|
|
||||||
<div className="shrink-0 p-4 w-full dark:bg-slate-900">
|
<div className="shrink-0 p-4 w-full dark:bg-slate-900">
|
||||||
<MessageInput
|
<MessageInput
|
||||||
from={activeChat}
|
|
||||||
to={currentChat.type === MessageType.Direct ? activeChat : MessageType.Broadcast}
|
to={currentChat.type === MessageType.Direct ? activeChat : MessageType.Broadcast}
|
||||||
channel={currentChat.type === MessageType.Direct ? Types.ChannelNumber.Primary : currentChat.id}
|
channel={currentChat.type === MessageType.Direct ? Types.ChannelNumber.Primary : currentChat.id}
|
||||||
maxBytes={200}
|
maxBytes={200}
|
||||||
|
|||||||
Reference in New Issue
Block a user