From 79806cc6a26e387dd7b7ddf8483b4d62521ba448 Mon Sep 17 00:00:00 2001 From: Connor Morgan Date: Sun, 24 Nov 2024 22:17:17 -0600 Subject: [PATCH 1/8] feat: Add search functionality for nodes in Messages and Nodes pages --- src/pages/Messages.tsx | 18 +++++++++++++++--- src/pages/Nodes.tsx | 19 ++++++++++++++++--- 2 files changed, 31 insertions(+), 6 deletions(-) diff --git a/src/pages/Messages.tsx b/src/pages/Messages.tsx index 28a35d2c..e5d87bc8 100644 --- a/src/pages/Messages.tsx +++ b/src/pages/Messages.tsx @@ -20,9 +20,12 @@ export const MessagesPage = (): JSX.Element => { 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 @@ export const MessagesPage = (): JSX.Element => { ))} +
+ setSearchTerm(e.target.value)} + className="w-full p-2 border border-gray-300 rounded bg-white text-black" + /> +
{filteredNodes.map((node) => ( { const { nodes, hardware, setDialogOpen } = useDevice(); 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()); + }); return ( <>
+
+ setSearchTerm(e.target.value)} + className="w-full p-2 border border-gray-300 rounded bg-white text-black" + /> +
Date: Sat, 11 Jan 2025 20:56:03 -0800 Subject: [PATCH 2/8] feat: Make nodes on dashboard clickable --- src/pages/Dashboard/index.tsx | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/pages/Dashboard/index.tsx b/src/pages/Dashboard/index.tsx index ee2c4693..bdfc660b 100644 --- a/src/pages/Dashboard/index.tsx +++ b/src/pages/Dashboard/index.tsx @@ -15,7 +15,7 @@ import { import { useMemo } from "react"; export const Dashboard = () => { - const { setConnectDialogOpen } = useAppStore(); + const { setConnectDialogOpen, setSelectedDevice } = useAppStore(); const { getDevices } = useDeviceStore(); const devices = useMemo(() => getDevices(), [getDevices]); @@ -38,7 +38,12 @@ export const Dashboard = () => { {devices.map((device) => { return (
  • -
    +
    - +
  • ); })} From 5b7b770aee8bfd21edb9bd6804c31c0c3b841540 Mon Sep 17 00:00:00 2001 From: Dan Ditomaso Date: Wed, 29 Jan 2025 09:07:57 -0500 Subject: [PATCH 3/8] feat: add bundle analyzer script --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 1c055073..2b685ffe 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/", From 2bdfbedeeaa527bd51543037c009c7dd1f9ada25 Mon Sep 17 00:00:00 2001 From: Hunter275 Date: Wed, 29 Jan 2025 23:50:38 -0500 Subject: [PATCH 4/8] add dark mode classes and biome fixes --- src/pages/Dashboard/index.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/pages/Dashboard/index.tsx b/src/pages/Dashboard/index.tsx index bdfc660b..34dc7aad 100644 --- a/src/pages/Dashboard/index.tsx +++ b/src/pages/Dashboard/index.tsx @@ -17,6 +17,7 @@ import { useMemo } from "react"; export const Dashboard = () => { const { setConnectDialogOpen, setSelectedDevice } = useAppStore(); const { getDevices } = useDeviceStore(); + const { darkMode } = useAppStore(); const devices = useMemo(() => getDevices(), [getDevices]); @@ -39,7 +40,8 @@ export const Dashboard = () => { return (