Browse Source

fix: show nodes on right sidebar on app load

pull/892/head
Dan Ditomaso 8 months ago
parent
commit
f846897058
  1. 2
      packages/web/src/core/stores/nodeDBStore/index.ts
  2. 101
      packages/web/src/pages/Messages.tsx

2
packages/web/src/core/stores/nodeDBStore/index.ts

@ -41,7 +41,7 @@ export interface NodeDB {
filter?: (node: Protobuf.Mesh.NodeInfo) => boolean, filter?: (node: Protobuf.Mesh.NodeInfo) => boolean,
includeSelf?: boolean, includeSelf?: boolean,
) => Protobuf.Mesh.NodeInfo[]; ) => Protobuf.Mesh.NodeInfo[];
getMyNode: () => Protobuf.Mesh.NodeInfo | undefined; getMyNode: () => Protobuf.Mesh.NodeInfo;
getNodeError: (nodeNum: number) => NodeError | undefined; getNodeError: (nodeNum: number) => NodeError | undefined;
hasNodeError: (nodeNum: number) => boolean; hasNodeError: (nodeNum: number) => boolean;

101
packages/web/src/pages/Messages.tsx

@ -247,63 +247,52 @@ export const MessagesPage = () => {
], ],
); );
const rightSidebar = useMemo( const rightSidebar = (
() => ( <SidebarSection
<SidebarSection label=""
label="" className="px-0 flex flex-col h-full overflow-y-auto"
className="px-0 flex flex-col h-full overflow-y-auto" >
<label className="p-2 block" htmlFor="nodeSearch">
<Input
type="text"
name="nodeSearch"
placeholder={t("search.nodes")}
value={searchTerm}
onChange={(e) => setSearchTerm(e.target.value)}
showClearButton={!!searchTerm}
/>
</label>
<div
className={cn(
"flex flex-col h-full flex-1 overflow-y-auto gap-2.5 pt-1 ",
)}
style={{ contentVisibility: "auto", containIntrinsicSize: "100px" }}
> >
<label className="p-2 block" htmlFor="nodeSearch"> {filteredNodes()?.map((node) => (
<Input <SidebarButton
type="text" key={node.num}
name="nodeSearch" preventCollapse
placeholder={t("search.nodes")} label={node.user?.longName ?? t("unknown.shortName")}
value={searchTerm} count={node.unreadCount > 0 ? node.unreadCount : undefined}
onChange={(e) => setSearchTerm(e.target.value)} active={
showClearButton={!!searchTerm} numericChatId === node.num && chatType === MessageType.Direct
/> }
</label> onClick={() => {
<div navigateToChat(MessageType.Direct, node.num.toString());
className={cn( resetUnread(node.num);
"flex flex-col h-full flex-1 overflow-y-auto gap-2.5 pt-1 ", }}
)} >
> <Avatar
{filteredNodes()?.map((node) => ( text={node.user?.shortName ?? t("unknown.shortName")}
<SidebarButton className={cn(hasNodeError(node.num) && "text-red-500")}
key={node.num} showError={hasNodeError(node.num)}
preventCollapse showFavorite={node.isFavorite}
label={node.user?.longName ?? t("unknown.shortName")} size="sm"
count={node.unreadCount > 0 ? node.unreadCount : undefined} />
active={ </SidebarButton>
numericChatId === node.num && chatType === MessageType.Direct ))}
} </div>
onClick={() => { </SidebarSection>
navigateToChat(MessageType.Direct, node.num.toString());
resetUnread(node.num);
}}
>
<Avatar
text={node.user?.shortName ?? t("unknown.shortName")}
className={cn(hasNodeError(node.num) && "text-red-500")}
showError={hasNodeError(node.num)}
showFavorite={node.isFavorite}
size="sm"
/>
</SidebarButton>
))}
</div>
</SidebarSection>
),
[
filteredNodes,
searchTerm,
numericChatId,
chatType,
navigateToChat,
resetUnread,
hasNodeError,
t,
],
); );
return ( return (

Loading…
Cancel
Save