diff --git a/package.json b/package.json
index ec62a1b4..6d285fb2 100644
--- a/package.json
+++ b/package.json
@@ -6,6 +6,7 @@
"license": "GPL-3.0-only",
"scripts": {
"build": "pnpm check && rsbuild build",
+ "build:analyze": "BUNDLE_ANALYZE=true rsbuild build",
"check": "biome check src/",
"check:fix": "pnpm check --write src/",
"format": "biome format --write src/",
diff --git a/src/components/PageComponents/Config/Device.tsx b/src/components/PageComponents/Config/Device.tsx
index 9ef11904..17ee8cb2 100644
--- a/src/components/PageComponents/Config/Device.tsx
+++ b/src/components/PageComponents/Config/Device.tsx
@@ -46,7 +46,7 @@ export const Device = (): JSX.Element => {
"Lost and Found":
Protobuf.Config.Config_DeviceConfig_Role.LOST_AND_FOUND,
"TAK Tracker":
- Protobuf.Config.Config_DeviceConfig_Role.SENSOR,
+ Protobuf.Config.Config_DeviceConfig_Role.TAK_TRACKER,
},
formatEnumName: true,
},
diff --git a/src/components/PageLayout.tsx b/src/components/PageLayout.tsx
index 79495bdc..1009ab54 100644
--- a/src/components/PageLayout.tsx
+++ b/src/components/PageLayout.tsx
@@ -35,7 +35,7 @@ export const PageLayout = ({
{actions?.map((action, index) => (
+
);
})}
diff --git a/src/pages/Messages.tsx b/src/pages/Messages.tsx
index ce866ed8..c06ce08f 100644
--- a/src/pages/Messages.tsx
+++ b/src/pages/Messages.tsx
@@ -20,9 +20,12 @@ const MessagesPage = () => {
const [activeChat, setActiveChat] = useState(
Types.ChannelNumber.Primary,
);
- const filteredNodes = Array.from(nodes.values()).filter(
- (n) => n.num !== hardware.myNodeNum,
- );
+ const [searchTerm, setSearchTerm] = useState("");
+ const filteredNodes = Array.from(nodes.values()).filter((node) => {
+ if (node.num === hardware.myNodeNum) return false;
+ const nodeName = node.user?.longName ?? `!${numberToHexUnpadded(node.num)}`;
+ return nodeName.toLowerCase().includes(searchTerm.toLowerCase());
+ });
const allChannels = Array.from(channels.values());
const filteredChannels = allChannels.filter(
(ch) => ch.role !== Protobuf.Channel.Channel_Role.DISABLED,
@@ -56,6 +59,15 @@ const MessagesPage = () => {
))}
+
+ setSearchTerm(e.target.value)}
+ className="w-full p-2 border border-gray-300 rounded bg-white text-black"
+ />
+
{filteredNodes.map((node) => (
{
- const { nodes, hardware, connection } = useDevice();
+ const { nodes, hardware, setDialogOpen } = useDevice();
const [selectedNode, setSelectedNode] = useState<
Protobuf.Mesh.NodeInfo | undefined
>(undefined);
const [selectedTraceroute, setSelectedTraceroute] = useState<
Types.PacketMetadata | undefined
>();
+ const { setNodeNumToBeRemoved } = useAppStore();
+ const [searchTerm, setSearchTerm] = useState("");
- const filteredNodes = Array.from(nodes.values()).filter(
- (n) => n.num !== hardware.myNodeNum,
- );
+ const filteredNodes = Array.from(nodes.values()).filter((node) => {
+ if (node.num === hardware.myNodeNum) return false;
+ const nodeName = node.user?.longName ?? `!${numberToHexUnpadded(node.num)}`;
+ return nodeName.toLowerCase().includes(searchTerm.toLowerCase());
+ });
useEffect(() => {
connection?.events.onTraceRoutePacket.subscribe(handleTraceroute);
@@ -48,6 +52,15 @@ const NodesPage = (): JSX.Element => {
<>