Update deps, add ethernet config
This commit is contained in:
+3
-3
@@ -25,7 +25,7 @@
|
||||
"@heroicons/react": "^2.0.12",
|
||||
"@hookform/resolvers": "^2.9.10",
|
||||
"@meshtastic/eslint-config": "^1.0.8",
|
||||
"@meshtastic/meshtasticjs": "^0.6.109",
|
||||
"@meshtastic/meshtasticjs": "^0.6.110",
|
||||
"@tailwindcss/line-clamp": "^0.4.2",
|
||||
"@tailwindcss/typography": "^0.5.7",
|
||||
"base64-js": "^1.5.1",
|
||||
@@ -35,7 +35,7 @@
|
||||
"class-validator": "^0.13.2",
|
||||
"date-fns": "^2.29.3",
|
||||
"geodesy": "^2.4.0",
|
||||
"immer": "^9.0.15",
|
||||
"immer": "^9.0.16",
|
||||
"mapbox-gl": "npm:empty-npm-package@^1.0.0",
|
||||
"maplibre-gl": "^2.4.0",
|
||||
"pretty-ms": "^8.0.0",
|
||||
@@ -50,7 +50,7 @@
|
||||
"react-map-gl": "^7.0.19",
|
||||
"react-qrcode-logo": "^2.8.0",
|
||||
"rfc4648": "^1.5.2",
|
||||
"zustand": "4.1.2"
|
||||
"zustand": "4.1.3"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@tailwindcss/forms": "^0.5.3",
|
||||
|
||||
Generated
+158
-11
@@ -6,7 +6,7 @@ specifiers:
|
||||
'@heroicons/react': ^2.0.12
|
||||
'@hookform/resolvers': ^2.9.10
|
||||
'@meshtastic/eslint-config': ^1.0.8
|
||||
'@meshtastic/meshtasticjs': ^0.6.109
|
||||
'@meshtastic/meshtasticjs': ^0.6.110
|
||||
'@tailwindcss/forms': ^0.5.3
|
||||
'@tailwindcss/line-clamp': ^0.4.2
|
||||
'@tailwindcss/typography': ^0.5.7
|
||||
@@ -27,7 +27,7 @@ specifiers:
|
||||
date-fns: ^2.29.3
|
||||
geodesy: ^2.4.0
|
||||
gzipper: ^7.1.0
|
||||
immer: ^9.0.15
|
||||
immer: ^9.0.16
|
||||
mapbox-gl: npm:empty-npm-package@^1.0.0
|
||||
maplibre-gl: ^2.4.0
|
||||
postcss: ^8.4.18
|
||||
@@ -53,7 +53,7 @@ specifiers:
|
||||
unimported: ^1.22.0
|
||||
vite: ^3.1.8
|
||||
vite-plugin-environment: ^1.1.3
|
||||
zustand: 4.1.2
|
||||
zustand: 4.1.3
|
||||
|
||||
dependencies:
|
||||
'@emeraldpay/hashicon-react': 0.5.2
|
||||
@@ -61,7 +61,7 @@ dependencies:
|
||||
'@heroicons/react': 2.0.12_react@18.2.0
|
||||
'@hookform/resolvers': 2.9.10_react-hook-form@7.38.0
|
||||
'@meshtastic/eslint-config': 1.0.8
|
||||
'@meshtastic/meshtasticjs': link:../meshtastic.js
|
||||
'@meshtastic/meshtasticjs': 0.6.110
|
||||
'@tailwindcss/line-clamp': 0.4.2_tailwindcss@3.2.1
|
||||
'@tailwindcss/typography': 0.5.7_tailwindcss@3.2.1
|
||||
base64-js: 1.5.1
|
||||
@@ -71,7 +71,7 @@ dependencies:
|
||||
class-validator: 0.13.2
|
||||
date-fns: 2.29.3
|
||||
geodesy: 2.4.0
|
||||
immer: 9.0.15
|
||||
immer: 9.0.16
|
||||
mapbox-gl: /empty-npm-package/1.0.0
|
||||
maplibre-gl: 2.4.0
|
||||
pretty-ms: 8.0.0
|
||||
@@ -86,7 +86,7 @@ dependencies:
|
||||
react-map-gl: 7.0.19_6eczaga5xxiwzxtfiyk6fioasq
|
||||
react-qrcode-logo: 2.8.0_biqbaboplfbrettd7655fr4n2y
|
||||
rfc4648: 1.5.2
|
||||
zustand: 4.1.2_immer@9.0.15+react@18.2.0
|
||||
zustand: 4.1.3_immer@9.0.16+react@18.2.0
|
||||
|
||||
devDependencies:
|
||||
'@tailwindcss/forms': 0.5.3_tailwindcss@3.2.1
|
||||
@@ -636,6 +636,17 @@ packages:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@meshtastic/meshtasticjs/0.6.110:
|
||||
resolution: {integrity: sha512-pqWDg12NKcWRFqvrrG0KIaESZG+e4HqT9zFQKOcf0DwI1xw0f7d7qaa4UNYK6BSOtY7CxAjYuTwxn6O4vYXwZw==}
|
||||
dependencies:
|
||||
'@protobuf-ts/runtime': 2.8.1
|
||||
'@serialport/stream': 10.3.0
|
||||
serialport: 10.4.0
|
||||
sub-events: 1.9.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@nodelib/fs.scandir/2.1.5:
|
||||
resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
|
||||
engines: {node: '>= 8'}
|
||||
@@ -654,6 +665,106 @@ packages:
|
||||
'@nodelib/fs.scandir': 2.1.5
|
||||
fastq: 1.13.0
|
||||
|
||||
/@protobuf-ts/runtime/2.8.1:
|
||||
resolution: {integrity: sha512-D9M5hSumYCovIfNllt7N6ODh4q+LrjiMWtNETvooaf+a2XheZJ7kgjFlsFghti0CFWwtA//of4JXQfw9hU+cCw==}
|
||||
dev: false
|
||||
|
||||
/@serialport/binding-mock/10.2.2:
|
||||
resolution: {integrity: sha512-HAFzGhk9OuFMpuor7aT5G1ChPgn5qSsklTFOTUX72Rl6p0xwcSVsRtG/xaGp6bxpN7fI9D/S8THLBWbBgS6ldw==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
dependencies:
|
||||
'@serialport/bindings-interface': 1.2.2
|
||||
debug: 4.3.4
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@serialport/bindings-cpp/10.7.0:
|
||||
resolution: {integrity: sha512-Xx1wA2UCG2loS32hxNvWJI4smCzGKhWqE85//fLRzHoGgE1lSLe3Nk7W40/ebrlGFHWRbQZmeaIF4chb2XLliA==}
|
||||
engines: {node: '>=12.17.0 <13.0 || >=14.0.0'}
|
||||
requiresBuild: true
|
||||
dependencies:
|
||||
'@serialport/bindings-interface': 1.2.1
|
||||
'@serialport/parser-readline': 10.3.0
|
||||
debug: 4.3.4
|
||||
node-addon-api: 4.3.0
|
||||
node-gyp-build: 4.5.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@serialport/bindings-interface/1.2.1:
|
||||
resolution: {integrity: sha512-63Dyqz2gtryRDDckFusOYqLYhR3Hq/M4sEdbF9i/VsvDb6T+tNVgoAKUZ+FMrXXKnCSu+hYbk+MTc0XQANszxw==}
|
||||
engines: {node: ^12.22 || ^14.13 || >=16}
|
||||
dev: false
|
||||
|
||||
/@serialport/bindings-interface/1.2.2:
|
||||
resolution: {integrity: sha512-CJaUd5bLvtM9c5dmO9rPBHPXTa9R2UwpkJ0wdh9JCYcbrPWsKz+ErvR0hBLeo7NPeiFdjFO4sonRljiw4d2XiA==}
|
||||
engines: {node: ^12.22 || ^14.13 || >=16}
|
||||
dev: false
|
||||
|
||||
/@serialport/parser-byte-length/10.3.0:
|
||||
resolution: {integrity: sha512-pJ/VoFemzKRRNDHLhFfPThwP40QrGaEnm9TtwL7o2GihEPwzBg3T0bN13ew5TpbbUYZdMpUtpm3CGfl6av9rUQ==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
dev: false
|
||||
|
||||
/@serialport/parser-cctalk/10.3.0:
|
||||
resolution: {integrity: sha512-8ujmk8EvVbDPrNF4mM33bWvUYJOZ0wXbY3WCRazHRWvyCdL0VO0DQvW81ZqgoTpiDQZm5r8wQu9rmuemahF6vQ==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
dev: false
|
||||
|
||||
/@serialport/parser-delimiter/10.3.0:
|
||||
resolution: {integrity: sha512-9E4Vj6s0UbbcCCTclwegHGPYjJhdm9qLCS0lowXQDEQC5naZnbsELemMHs93nD9jHPcyx1B4oXkMnVZLxX5TYw==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
dev: false
|
||||
|
||||
/@serialport/parser-inter-byte-timeout/10.3.0:
|
||||
resolution: {integrity: sha512-wKP0QK85NHgvT6BBB1qBfKBBU4pf8kespNXAZBUYmFT+P4n8r8IZE2mqigCD+AiZcfWNQoAizwOsT/Jx/qeVig==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
dev: false
|
||||
|
||||
/@serialport/parser-packet-length/10.3.0:
|
||||
resolution: {integrity: sha512-bj0cWzt8YSQj/E5fRQVYdi4TsfTlZQrXlXrUwjyTsCONv8IPOHzsz+yY0fw5SEMiJtaLyqvPkCHLsttOd/zFsg==}
|
||||
engines: {node: '>=8.6.0'}
|
||||
dev: false
|
||||
|
||||
/@serialport/parser-readline/10.3.0:
|
||||
resolution: {integrity: sha512-ki3ATZ3/RAqnqGROBKE7k+OeZ0DZXZ53GTca4q71OU5RazbbNhTOBQLKLXD3v9QZXCMJdg4hGW/2Y0DuMUqMQg==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
dependencies:
|
||||
'@serialport/parser-delimiter': 10.3.0
|
||||
dev: false
|
||||
|
||||
/@serialport/parser-ready/10.3.0:
|
||||
resolution: {integrity: sha512-1owywJ4p592dJyVrEJZPIh6pUZ3/y/LN6kGTDH2wxdewRUITo/sGvDy0er5i2+dJD3yuowiAz0dOHSdz8tevJA==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
dev: false
|
||||
|
||||
/@serialport/parser-regex/10.3.0:
|
||||
resolution: {integrity: sha512-tIogTs7CvTH+UUFnsvE7i33MSISyTPTGPWlglWYH2/5coipXY503jlaYS1YGe818wWNcSx6YAjMZRdhTWwM39w==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
dev: false
|
||||
|
||||
/@serialport/parser-slip-encoder/10.3.0:
|
||||
resolution: {integrity: sha512-JI0ILF5sylWn8f0MuMzHFBix/iMUTa79/Z95KaPZYnVaEdA7h7hh/o21Jmon/26P3RJwL1SNJCjZ81zfan+LtQ==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
dev: false
|
||||
|
||||
/@serialport/parser-spacepacket/10.3.0:
|
||||
resolution: {integrity: sha512-PDF73ClEPsClD1FEJZHNuBevDKsJCkqy/XD5+S5eA6+tY5D4HLrVgSWsg+3qqB6+dlpwf2CzHe+uO8D3teuKHA==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
dev: false
|
||||
|
||||
/@serialport/stream/10.3.0:
|
||||
resolution: {integrity: sha512-7sooi5fHogYNVEJwxVdg872xO6TuMgQd2E9iRmv+o8pk/1dbBnPkmH6Ka3st1mVE+0KnIJqVlgei+ncSsqXIGw==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
dependencies:
|
||||
'@serialport/bindings-interface': 1.2.1
|
||||
debug: 4.3.4
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@stablelib/binary/1.0.1:
|
||||
resolution: {integrity: sha512-ClJWvmL6UBM/wjkvv/7m5VP3GMr9t0osr4yVgLZsLCOz4hGN9gIAFEqnJ0TsSMAN+n840nf2cHZnA5/KFqHC7Q==}
|
||||
dependencies:
|
||||
@@ -2430,8 +2541,8 @@ packages:
|
||||
resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==}
|
||||
engines: {node: '>= 4'}
|
||||
|
||||
/immer/9.0.15:
|
||||
resolution: {integrity: sha512-2eB/sswms9AEUSkOm4SbV5Y7Vmt/bKRwByd52jfLkW4OLYeaTP3EEiJ9agqU0O/tq6Dk62Zfj+TJSqfm1rLVGQ==}
|
||||
/immer/9.0.16:
|
||||
resolution: {integrity: sha512-qenGE7CstVm1NrHQbMh8YaSzTZTFNP3zPqr3YU0S0UY441j4bJTg4A2Hh5KAhwgaiU6ZZ1Ar6y/2f4TblnMReQ==}
|
||||
dev: false
|
||||
|
||||
/import-fresh/3.3.0:
|
||||
@@ -2909,6 +3020,15 @@ packages:
|
||||
/natural-compare/1.4.0:
|
||||
resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
|
||||
|
||||
/node-addon-api/4.3.0:
|
||||
resolution: {integrity: sha512-73sE9+3UaLYYFmDsFZnqCInzPyh3MqIwZO9cw58yIqAZhONrrabrYyYe3TuIqtIiOuTXVhsGau8hcrhhwSsDIQ==}
|
||||
dev: false
|
||||
|
||||
/node-gyp-build/4.5.0:
|
||||
resolution: {integrity: sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==}
|
||||
hasBin: true
|
||||
dev: false
|
||||
|
||||
/node-modules-regexp/1.0.0:
|
||||
resolution: {integrity: sha512-JMaRS9L4wSRIR+6PTVEikTrq/lMGEZR43a48ETeilY0Q0iMwVnccMFrUM1k+tNzmYuIU0Vh710bCUqHX+/+ctQ==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
@@ -3633,6 +3753,28 @@ packages:
|
||||
dependencies:
|
||||
lru-cache: 6.0.0
|
||||
|
||||
/serialport/10.4.0:
|
||||
resolution: {integrity: sha512-PszPM5SnFMgSXom60PkKS2A9nMlNbHkuoyRBlzdSWw9rmgOn258+V0dYbWMrETJMM+TJV32vqBzjg5MmmUMwMw==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
dependencies:
|
||||
'@serialport/binding-mock': 10.2.2
|
||||
'@serialport/bindings-cpp': 10.7.0
|
||||
'@serialport/parser-byte-length': 10.3.0
|
||||
'@serialport/parser-cctalk': 10.3.0
|
||||
'@serialport/parser-delimiter': 10.3.0
|
||||
'@serialport/parser-inter-byte-timeout': 10.3.0
|
||||
'@serialport/parser-packet-length': 10.3.0
|
||||
'@serialport/parser-readline': 10.3.0
|
||||
'@serialport/parser-ready': 10.3.0
|
||||
'@serialport/parser-regex': 10.3.0
|
||||
'@serialport/parser-slip-encoder': 10.3.0
|
||||
'@serialport/parser-spacepacket': 10.3.0
|
||||
'@serialport/stream': 10.3.0
|
||||
debug: 4.3.4
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/shebang-command/2.0.0:
|
||||
resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
|
||||
engines: {node: '>=8'}
|
||||
@@ -3798,6 +3940,11 @@ packages:
|
||||
resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
|
||||
engines: {node: '>=8'}
|
||||
|
||||
/sub-events/1.9.0:
|
||||
resolution: {integrity: sha512-dnFBayilG9Ku0k/lNs1Y7WV4kv91+ovCoeBV3uIYrY49DylvBb6z9d9ED2ctcrvX2YlReFalpCgJNtSgmrOaJg==}
|
||||
engines: {node: '>=10.0.0'}
|
||||
dev: false
|
||||
|
||||
/supercluster/7.1.5:
|
||||
resolution: {integrity: sha512-EulshI3pGUM66o6ZdH3ReiFcvHpM3vAigyK+vcxdjpJyEbIIrtbmBdY23mGgnI24uXiGFvrGq9Gkum/8U7vJWg==}
|
||||
dependencies:
|
||||
@@ -4227,8 +4374,8 @@ packages:
|
||||
engines: {node: '>=10'}
|
||||
dev: false
|
||||
|
||||
/zustand/4.1.2_immer@9.0.15+react@18.2.0:
|
||||
resolution: {integrity: sha512-gcRaKchcxFPbImrBb/BKgujOhHhik9YhVpIeP87ETT7uokEe2Szu7KkuZ9ghjtD+/KKkcrRNktR2AiLXPIbKIQ==}
|
||||
/zustand/4.1.3_immer@9.0.16+react@18.2.0:
|
||||
resolution: {integrity: sha512-AdFyr6+4sVD6xlyc/ArQaOrleqzxJEBbAXglufZ5lgvisoz8GUN3icOrKOnX1uRSxmpmdVUQPen9hhymWIzhBg==}
|
||||
engines: {node: '>=12.7.0'}
|
||||
peerDependencies:
|
||||
immer: '>=9.0'
|
||||
@@ -4239,7 +4386,7 @@ packages:
|
||||
react:
|
||||
optional: true
|
||||
dependencies:
|
||||
immer: 9.0.15
|
||||
immer: 9.0.16
|
||||
react: 18.2.0
|
||||
use-sync-external-store: 1.2.0_react@18.2.0
|
||||
dev: false
|
||||
|
||||
@@ -33,6 +33,12 @@ export const Network = (): JSX.Element => {
|
||||
defaultValue: false,
|
||||
});
|
||||
|
||||
const ethEnabled = useWatch({
|
||||
control,
|
||||
name: "ethEnabled",
|
||||
defaultValue: false,
|
||||
});
|
||||
|
||||
useEffect(() => {
|
||||
reset(config.network);
|
||||
}, [reset, config.network]);
|
||||
@@ -108,8 +114,57 @@ export const Network = (): JSX.Element => {
|
||||
label="NTP Server"
|
||||
description="NTP server for time synchronization"
|
||||
error={errors.ntpServer?.message}
|
||||
disabled={!wifiEnabled && !ethEnabled}
|
||||
{...register("ntpServer")}
|
||||
/>
|
||||
<Controller
|
||||
name="ethEnabled"
|
||||
control={control}
|
||||
render={({ field: { value, ...rest } }) => (
|
||||
<Toggle
|
||||
label="Ethernet Enabled"
|
||||
description="Enable or disbale the Ethernet port"
|
||||
checked={value}
|
||||
{...rest}
|
||||
/>
|
||||
)}
|
||||
/>
|
||||
<Select
|
||||
label="Ethernet Mode"
|
||||
description="Address assignment selection"
|
||||
disabled={!ethEnabled}
|
||||
{...register("ethMode", { valueAsNumber: true })}
|
||||
>
|
||||
{renderOptions(Protobuf.Config_NetworkConfig_WiFiMode)}
|
||||
</Select>
|
||||
<Input
|
||||
label="Ethernet IP"
|
||||
description="IP Address"
|
||||
error={errors.wifiSsid?.message}
|
||||
disabled={!ethEnabled}
|
||||
{...register("ethConfig.ip")}
|
||||
/>
|
||||
<Input
|
||||
label="Ethernet Gateway"
|
||||
description="Default Gatewat"
|
||||
error={errors.wifiSsid?.message}
|
||||
disabled={!ethEnabled}
|
||||
{...register("ethConfig.gateway")}
|
||||
/>
|
||||
<Input
|
||||
label="Ethernet Subnet"
|
||||
description="Subnet Mask"
|
||||
error={errors.wifiSsid?.message}
|
||||
disabled={!ethEnabled}
|
||||
{...register("ethConfig.subnet")}
|
||||
/>
|
||||
<Input
|
||||
label="Ethernet DNS"
|
||||
description="DNS Server"
|
||||
error={errors.wifiSsid?.message}
|
||||
disabled={!ethEnabled}
|
||||
{...register("ethConfig.dns")}
|
||||
/>
|
||||
</Form>
|
||||
);
|
||||
};
|
||||
|
||||
@@ -34,7 +34,7 @@ export const Sidebar = (): JSX.Element => {
|
||||
removeDevice(selectedDevice ?? 0);
|
||||
}}
|
||||
reconnect={() => {
|
||||
console.log("");
|
||||
void connection?.disconnect();
|
||||
}}
|
||||
/>
|
||||
|
||||
|
||||
@@ -16,7 +16,16 @@ export interface InputProps extends InputHTMLAttributes<HTMLInputElement> {
|
||||
}
|
||||
|
||||
export const Input = forwardRef<HTMLInputElement, InputProps>(function Input(
|
||||
{ label, description, prefix, suffix, action, error, ...rest }: InputProps,
|
||||
{
|
||||
label,
|
||||
description,
|
||||
prefix,
|
||||
suffix,
|
||||
action,
|
||||
error,
|
||||
disabled,
|
||||
...rest
|
||||
}: InputProps,
|
||||
ref
|
||||
) {
|
||||
return (
|
||||
@@ -34,7 +43,10 @@ export const Input = forwardRef<HTMLInputElement, InputProps>(function Input(
|
||||
ref={ref}
|
||||
className={`flex h-10 w-full rounded-md border-transparent bg-orange-100 px-3 text-sm focus:border-transparent focus:outline-none focus:ring-2 focus:ring-orange-500 ${
|
||||
prefix ? "rounded-l-none" : ""
|
||||
} ${action ? "rounded-r-none" : ""}`}
|
||||
} ${action ? "rounded-r-none" : ""} ${
|
||||
disabled ? "cursor-not-allowed bg-orange-50 text-orange-200" : ""
|
||||
}`}
|
||||
disabled={disabled}
|
||||
{...rest}
|
||||
/>
|
||||
{suffix && (
|
||||
|
||||
@@ -43,7 +43,7 @@ export const Select = forwardRef<HTMLSelectElement, SelectProps>(function Input(
|
||||
className={`flex h-10 w-full rounded-md border-transparent bg-orange-100 px-3 text-sm focus:border-transparent focus:outline-none focus:ring-2 focus:ring-orange-500 ${
|
||||
prefix ? "rounded-l-none" : ""
|
||||
} ${action ? "rounded-r-none" : ""} ${
|
||||
disabled ? "cursor-not-allowed" : ""
|
||||
disabled ? "cursor-not-allowed bg-orange-50 text-orange-200" : ""
|
||||
}`}
|
||||
disabled={disabled}
|
||||
{...rest}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { IsBoolean, IsEnum, Length } from "class-validator";
|
||||
import { IsBoolean, IsEnum, IsIP, Length } from "class-validator";
|
||||
|
||||
import { Protobuf } from "@meshtastic/meshtasticjs";
|
||||
|
||||
@@ -17,4 +17,28 @@ export class NetworkValidation implements Protobuf.Config_NetworkConfig {
|
||||
|
||||
@Length(2, 30)
|
||||
ntpServer: string;
|
||||
|
||||
@IsBoolean()
|
||||
ethEnabled: boolean;
|
||||
|
||||
@IsEnum(Protobuf.Config_NetworkConfig_EthMode)
|
||||
ethMode: Protobuf.Config_NetworkConfig_EthMode;
|
||||
|
||||
ethConfig: NetworkValidation_ethConfig;
|
||||
}
|
||||
|
||||
export class NetworkValidation_ethConfig
|
||||
implements Protobuf.Config_NetworkConfig_NetworkConfig
|
||||
{
|
||||
@IsIP()
|
||||
ip: number;
|
||||
|
||||
@IsIP()
|
||||
gateway: number;
|
||||
|
||||
@IsIP()
|
||||
subnet: number;
|
||||
|
||||
@IsIP()
|
||||
dns: number;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user