role === channel.role)
- ? 'bg-green-500'
- : 'bg-gray-400'
- }`}
- />
- }
- selected={selectedChannel?.index === channel.index}
- selectedIcon={
}
- actions={
-
-
- {channel.settings?.uplinkEnabled &&
- channel.settings?.downlinkEnabled ? (
-
- ) : channel.settings?.uplinkEnabled ? (
-
- ) : channel.settings?.downlinkEnabled ? (
-
- ) : (
-
- )}
-
-
- }
- >
-
- {channel.settings?.name.length
- ? channel.settings.name
- : channel.role === Protobuf.Channel_Role.PRIMARY
- ? 'Primary'
- : `Channel: ${channel.index}`}
-
-
- ))}
>
);
};
diff --git a/src/components/layout/Sidebar/Settings/Position.tsx b/src/components/layout/Sidebar/Settings/Position.tsx
index c1722e88..d7151c22 100644
--- a/src/components/layout/Sidebar/Settings/Position.tsx
+++ b/src/components/layout/Sidebar/Settings/Position.tsx
@@ -1,13 +1,14 @@
import React from 'react';
import { Controller, useForm } from 'react-hook-form';
+import { FiSave } from 'react-icons/fi';
import { MultiSelect } from 'react-multi-select-component';
import { bitwiseEncode } from '@app/core/utils/bitwise';
import { Label } from '@components/generic/form/Label';
import { connection } from '@core/connection';
import { useAppSelector } from '@hooks/useAppSelector';
-import { Checkbox, Input, Select } from '@meshtastic/components';
+import { Checkbox, IconButton, Input, Select } from '@meshtastic/components';
import { Protobuf } from '@meshtastic/meshtasticjs';
export const Position = (): JSX.Element => {
@@ -54,87 +55,100 @@ export const Position = (): JSX.Element => {
};
return (
-
+
+
+
+
+
+
+
+
+
+
+
+ => {
+ await onSubmit();
+ }}
+ icon={}
+ />
+
+
+ >
);
};
diff --git a/src/components/layout/Sidebar/Settings/Power.tsx b/src/components/layout/Sidebar/Settings/Power.tsx
index 1a531316..9be2cbd3 100644
--- a/src/components/layout/Sidebar/Settings/Power.tsx
+++ b/src/components/layout/Sidebar/Settings/Power.tsx
@@ -1,10 +1,11 @@
import React from 'react';
import { useForm } from 'react-hook-form';
+import { FiSave } from 'react-icons/fi';
import { connection } from '@core/connection';
import { useAppSelector } from '@hooks/useAppSelector';
-import { Checkbox, Select } from '@meshtastic/components';
+import { Checkbox, IconButton, Select } from '@meshtastic/components';
import { Protobuf } from '@meshtastic/meshtasticjs';
export const Power = (): JSX.Element => {
@@ -33,21 +34,34 @@ export const Power = (): JSX.Element => {
});
});
return (
-
+ <>
+
+
+
+ => {
+ await onSubmit();
+ }}
+ icon={}
+ />
+
+
+ >
);
};
diff --git a/src/components/layout/Sidebar/Settings/Radio.tsx b/src/components/layout/Sidebar/Settings/Radio.tsx
index df42ce9f..116f6a64 100644
--- a/src/components/layout/Sidebar/Settings/Radio.tsx
+++ b/src/components/layout/Sidebar/Settings/Radio.tsx
@@ -1,10 +1,11 @@
import React from 'react';
import { useForm } from 'react-hook-form';
+import { FiSave } from 'react-icons/fi';
import { connection } from '@core/connection';
import { useAppSelector } from '@hooks/useAppSelector';
-import { Checkbox, Select } from '@meshtastic/components';
+import { Checkbox, IconButton, Select } from '@meshtastic/components';
import { Protobuf } from '@meshtastic/meshtasticjs';
export const Radio = (): JSX.Element => {
@@ -30,15 +31,28 @@ export const Radio = (): JSX.Element => {
});
});
return (
-
+ <>
+
+
+
+ => {
+ await onSubmit();
+ }}
+ icon={}
+ />
+
+
+ >
);
};
diff --git a/src/components/layout/Sidebar/Settings/User.tsx b/src/components/layout/Sidebar/Settings/User.tsx
index 96600f30..c1f2476e 100644
--- a/src/components/layout/Sidebar/Settings/User.tsx
+++ b/src/components/layout/Sidebar/Settings/User.tsx
@@ -1,11 +1,12 @@
import React from 'react';
import { useForm } from 'react-hook-form';
+import { FiSave } from 'react-icons/fi';
import { base16 } from 'rfc4648';
import { connection } from '@core/connection';
import { useAppSelector } from '@hooks/useAppSelector';
-import { Checkbox, Input, Select } from '@meshtastic/components';
+import { Checkbox, IconButton, Input, Select } from '@meshtastic/components';
import { Protobuf } from '@meshtastic/meshtasticjs';
export const User = (): JSX.Element => {
@@ -62,53 +63,66 @@ export const User = (): JSX.Element => {
});
return (
-
+ <>
+
+
+
+ => {
+ await onSubmit();
+ }}
+ icon={}
+ />
+
+
+ >
);
};
diff --git a/src/components/layout/Sidebar/Settings/WiFi.tsx b/src/components/layout/Sidebar/Settings/WiFi.tsx
index 6d44e325..da27c168 100644
--- a/src/components/layout/Sidebar/Settings/WiFi.tsx
+++ b/src/components/layout/Sidebar/Settings/WiFi.tsx
@@ -1,10 +1,11 @@
import React from 'react';
import { useForm, useWatch } from 'react-hook-form';
+import { FiSave } from 'react-icons/fi';
import { connection } from '@core/connection';
import { useAppSelector } from '@hooks/useAppSelector';
-import { Checkbox, Input } from '@meshtastic/components';
+import { Checkbox, IconButton, Input } from '@meshtastic/components';
import type { Protobuf } from '@meshtastic/meshtasticjs';
export const WiFi = (): JSX.Element => {
@@ -42,38 +43,51 @@ export const WiFi = (): JSX.Element => {
});
});
return (
-
+ <>
+
+
+
+ => {
+ await onSubmit();
+ }}
+ icon={}
+ />
+
+
+ >
);
};
diff --git a/src/pages/Messages/index.tsx b/src/pages/Messages/index.tsx
index bda62c6c..dd854a20 100644
--- a/src/pages/Messages/index.tsx
+++ b/src/pages/Messages/index.tsx
@@ -38,12 +38,12 @@ export const Messages = (): JSX.Element => {
icon={
}
sidebarContents={
- {nodes
- .filter((node) => node.number !== myNodeNum)
- .map((node) => (
-
channel.settings?.name !== 'admin')
+ .map((channel) => (
+
@@ -51,12 +51,12 @@ export const Messages = (): JSX.Element => {
{nodes.length !== 0 && channels.length !== 0 && (
)}
- {channels
- .filter((channel) => channel.settings?.name !== 'admin')
- .map((channel) => (
- node.number !== myNodeNum)
+ .map((node) => (
+
diff --git a/src/pages/Nodes/NodeCard.tsx b/src/pages/Nodes/NodeCard.tsx
index 795b8485..fe68f921 100644
--- a/src/pages/Nodes/NodeCard.tsx
+++ b/src/pages/Nodes/NodeCard.tsx
@@ -116,7 +116,14 @@ export const NodeCard = ({
direction="x"
>
}>
- Info
+
+
+
+
+ {node?.user?.longName || 'Unknown'}
+
+
+
}>
Info