Browse Source

update display and module config

pull/71/head
Sacha Weatherstone 3 years ago
parent
commit
8ddb900f81
No known key found for this signature in database GPG Key ID: 7AB2D7E206124B31
  1. 2
      package.json
  2. 152
      pnpm-lock.yaml
  3. 35
      src/components/PageComponents/Config/Network.tsx
  4. 6
      src/validation/config/display.ts
  5. 6
      src/validation/config/network.ts

2
package.json

@ -27,7 +27,7 @@
"@heroicons/react": "^2.0.13",
"@hookform/error-message": "^2.0.1",
"@hookform/resolvers": "^2.9.10",
"@meshtastic/meshtasticjs": "^0.9.8",
"@meshtastic/meshtasticjs": "^2.0.12",
"@primer/octicons-react": "^17.10.1",
"@tailwindcss/typography": "^0.5.8",
"@turf/turf": "^6.5.0",

152
pnpm-lock.yaml

@ -6,7 +6,7 @@ specifiers:
'@heroicons/react': ^2.0.13
'@hookform/error-message': ^2.0.1
'@hookform/resolvers': ^2.9.10
'@meshtastic/meshtasticjs': ^0.9.8
'@meshtastic/meshtasticjs': ^2.0.12
'@primer/octicons-react': ^17.10.1
'@tailwindcss/forms': ^0.5.3
'@tailwindcss/typography': ^0.5.8
@ -70,7 +70,7 @@ dependencies:
'@heroicons/react': 2.0[email protected]
'@hookform/error-message': 2.0.1_gf3zkkv7tdoxfuxo733ouedgte
'@hookform/resolvers': 2.9[email protected]
'@meshtastic/meshtasticjs': 0.9.8
'@meshtastic/meshtasticjs': 2.0.12
'@primer/octicons-react': 17.10[email protected]
'@tailwindcss/typography': 0.5[email protected]
'@turf/turf': 6.5.0
@ -1328,8 +1328,8 @@ packages:
js-sha3: 0.8.0
dev: false
/@esbuild/android-arm/0.16.15:
resolution: {integrity: sha512-JsJtmadyWcR+DEtHLixM7bAQsfi1s0Xotv9kVOoXbCLyhKPOHvMEyh3kJBuTbCPSE4c2jQkQVmarwc9Mg9k3bA==}
/@esbuild/android-arm/0.16.16:
resolution: {integrity: sha512-BUuWMlt4WSXod1HSl7aGK8fJOsi+Tab/M0IDK1V1/GstzoOpqc/v3DqmN8MkuapPKQ9Br1WtLAN4uEgWR8x64A==}
engines: {node: '>=12'}
cpu: [arm]
os: [android]
@ -1337,8 +1337,8 @@ packages:
dev: true
optional: true
/@esbuild/android-arm64/0.16.15:
resolution: {integrity: sha512-OdbkUv7468dSsgoFtHIwTaYAuI5lDEv/v+dlfGBUbVa2xSDIIuSOHXawynw5N9+5lygo/JdXa5/sgGjiEU18gQ==}
/@esbuild/android-arm64/0.16.16:
resolution: {integrity: sha512-hFHVAzUKp9Tf8psGq+bDVv+6hTy1bAOoV/jJMUWwhUnIHsh6WbFMhw0ZTkqDuh7TdpffFoHOiIOIxmHc7oYRBQ==}
engines: {node: '>=12'}
cpu: [arm64]
os: [android]
@ -1346,8 +1346,8 @@ packages:
dev: true
optional: true
/@esbuild/android-x64/0.16.15:
resolution: {integrity: sha512-dPUOBiNNWAm+/bxoA75o7R7qqqfcEzXaYlb5uJk2xGHmUMNKSAnDCtRYLgx9/wfE4sXyn8H948OrDyUAHhPOuA==}
/@esbuild/android-x64/0.16.16:
resolution: {integrity: sha512-9WhxJpeb6XumlfivldxqmkJepEcELekmSw3NkGrs+Edq6sS5KRxtUBQuKYDD7KqP59dDkxVbaoPIQFKWQG0KLg==}
engines: {node: '>=12'}
cpu: [x64]
os: [android]
@ -1355,8 +1355,8 @@ packages:
dev: true
optional: true
/@esbuild/darwin-arm64/0.16.15:
resolution: {integrity: sha512-AksarYV85Hxgwh5/zb6qGl4sYWxIXPQGBAZ+jUro1ZpINy3EWumK+/4DPOKUBPnsrOIvnNXy7Rq4mTeCsMQDNA==}
/@esbuild/darwin-arm64/0.16.16:
resolution: {integrity: sha512-8Z+wld+vr/prHPi2O0X7o1zQOfMbXWGAw9hT0jEyU/l/Yrg+0Z3FO9pjPho72dVkZs4ewZk0bDOFLdZHm8jEfw==}
engines: {node: '>=12'}
cpu: [arm64]
os: [darwin]
@ -1364,8 +1364,8 @@ packages:
dev: true
optional: true
/@esbuild/darwin-x64/0.16.15:
resolution: {integrity: sha512-qqrKJxoohceZGGP+sZ5yXkzW9ZiyFZJ1gWSEfuYdOWzBSL18Uy3w7s/IvnDYHo++/cxwqM0ch3HQVReSZy7/4Q==}
/@esbuild/darwin-x64/0.16.16:
resolution: {integrity: sha512-CYkxVvkZzGCqFrt7EgjFxQKhlUPyDkuR9P0Y5wEcmJqVI8ncerOIY5Kej52MhZyzOBXkYrJgZeVZC9xXXoEg9A==}
engines: {node: '>=12'}
cpu: [x64]
os: [darwin]
@ -1373,8 +1373,8 @@ packages:
dev: true
optional: true
/@esbuild/freebsd-arm64/0.16.15:
resolution: {integrity: sha512-LBWaep6RvJm5KnsKkocdVEzuwnGMjz54fcRVZ9d3R7FSEWOtPBxMhuxeA1n98JVbCLMkTPFmKN6xSnfhnM9WXQ==}
/@esbuild/freebsd-arm64/0.16.16:
resolution: {integrity: sha512-fxrw4BYqQ39z/3Ja9xj/a1gMsVq0xEjhSyI4a9MjfvDDD8fUV8IYliac96i7tzZc3+VytyXX+XNsnpEk5sw5Wg==}
engines: {node: '>=12'}
cpu: [arm64]
os: [freebsd]
@ -1382,8 +1382,8 @@ packages:
dev: true
optional: true
/@esbuild/freebsd-x64/0.16.15:
resolution: {integrity: sha512-LE8mKC6JPR04kPLRP9A6k7ZmG0k2aWF4ru79Sde6UeWCo7yDby5f48uJNFQ2pZqzUUkLrHL8xNdIHerJeZjHXg==}
/@esbuild/freebsd-x64/0.16.16:
resolution: {integrity: sha512-8p3v1D+du2jiDvSoNVimHhj7leSfST9YlKsAEO7etBfuqjaBMndo0fmjNLp0JCMld+XIx9L80tooOkyUv1a1PQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [freebsd]
@ -1391,8 +1391,8 @@ packages:
dev: true
optional: true
/@esbuild/linux-arm/0.16.15:
resolution: {integrity: sha512-+1sGlqtMJTOnJUXwLUGnDhPaGRKqxT0UONtYacS+EjdDOrSgpQ/1gUXlnze45Z/BogwYaswQM19Gu1YD1T19/w==}
/@esbuild/linux-arm/0.16.16:
resolution: {integrity: sha512-bYaocE1/PTMRmkgSckZ0D0Xn2nox8v2qlk+MVVqm+VECNKDdZvghVZtH41dNtBbwADSvA6qkCHGYeWm9LrNCBw==}
engines: {node: '>=12'}
cpu: [arm]
os: [linux]
@ -1400,8 +1400,8 @@ packages:
dev: true
optional: true
/@esbuild/linux-arm64/0.16.15:
resolution: {integrity: sha512-mRYpuQGbzY+XLczy3Sk7fMJ3DRKLGDIuvLKkkUkyecDGQMmil6K/xVKP9IpKO7JtNH477qAiMjjX7jfKae8t4g==}
/@esbuild/linux-arm64/0.16.16:
resolution: {integrity: sha512-N3u6BBbCVY3xeP2D8Db7QY8I+nZ+2AgOopUIqk+5yCoLnsWkcVxD2ay5E9iIdvApFi1Vg1lZiiwaVp8bOpAc4A==}
engines: {node: '>=12'}
cpu: [arm64]
os: [linux]
@ -1409,8 +1409,8 @@ packages:
dev: true
optional: true
/@esbuild/linux-ia32/0.16.15:
resolution: {integrity: sha512-puXVFvY4m8EB6/fzu3LdgjiNnEZ3gZMSR7NmKoQe51l3hyQalvTjab3Dt7aX4qGf+8Pj7dsCOBNzNzkSlr/4Aw==}
/@esbuild/linux-ia32/0.16.16:
resolution: {integrity: sha512-dxjqLKUW8GqGemoRT9v8IgHk+T4tRm1rn1gUcArsp26W9EkK/27VSjBVUXhEG5NInHZ92JaQ3SSMdTwv/r9a2A==}
engines: {node: '>=12'}
cpu: [ia32]
os: [linux]
@ -1418,8 +1418,8 @@ packages:
dev: true
optional: true
/@esbuild/linux-loong64/0.16.15:
resolution: {integrity: sha512-ATMGb3eg8T6ZTGZFldlGeFEcevBiVq6SBHvRAO04HMfUjZWneZ/U+JJb3YzlNZxuscJ4Tmzq+JrYxlk7ro4dRg==}
/@esbuild/linux-loong64/0.16.16:
resolution: {integrity: sha512-MdUFggHjRiCCwNE9+1AibewoNq6wf94GLB9Q9aXwl+a75UlRmbRK3h6WJyrSGA6ZstDJgaD2wiTSP7tQNUYxwA==}
engines: {node: '>=12'}
cpu: [loong64]
os: [linux]
@ -1427,8 +1427,8 @@ packages:
dev: true
optional: true
/@esbuild/linux-mips64el/0.16.15:
resolution: {integrity: sha512-3SEA4L82OnoSATW+Ve8rPgLaKjC8WMt8fnx7De9kvi/NcVbkj8W+J7qnu/tK2P9pUPQP7Au/0sjPEqZtFeyKQQ==}
/@esbuild/linux-mips64el/0.16.16:
resolution: {integrity: sha512-CO3YmO7jYMlGqGoeFeKzdwx/bx8Vtq/SZaMAi+ZLDUnDUdfC7GmGwXzIwDJ70Sg+P9pAemjJyJ1icKJ9R3q/Fg==}
engines: {node: '>=12'}
cpu: [mips64el]
os: [linux]
@ -1436,8 +1436,8 @@ packages:
dev: true
optional: true
/@esbuild/linux-ppc64/0.16.15:
resolution: {integrity: sha512-8PgbeX+N6vmqeySzyxO0NyDOltCEW13OS5jUHTvCHmCgf4kNXZtAWJ+zEfJxjRGYhVezQ1FdIm7WfN1R27uOyg==}
/@esbuild/linux-ppc64/0.16.16:
resolution: {integrity: sha512-DSl5Czh5hCy/7azX0Wl9IdzPHX2H8clC6G87tBnZnzUpNgRxPFhfmArbaHoAysu4JfqCqbB/33u/GL9dUgCBAw==}
engines: {node: '>=12'}
cpu: [ppc64]
os: [linux]
@ -1445,8 +1445,8 @@ packages:
dev: true
optional: true
/@esbuild/linux-riscv64/0.16.15:
resolution: {integrity: sha512-U+coqH+89vbPVoU30no1Fllrn6gvEeO5tfEArBhjYZ+dQ3Gv7ciQXYf5nrT1QdlIFwEjH4Is1U1iiaGWW+tGpQ==}
/@esbuild/linux-riscv64/0.16.16:
resolution: {integrity: sha512-sSVVMEXsqf1fQu0j7kkhXMViroixU5XoaJXl1u/u+jbXvvhhCt9YvA/B6VM3aM/77HuRQ94neS5bcisijGnKFQ==}
engines: {node: '>=12'}
cpu: [riscv64]
os: [linux]
@ -1454,8 +1454,8 @@ packages:
dev: true
optional: true
/@esbuild/linux-s390x/0.16.15:
resolution: {integrity: sha512-M0nKLFMdyFGBoitxG42kq6Xap0CPeDC6gfF9lg7ZejzGF6kqYUGT+pQGl2QCQoxJBeat/LzTma1hG8C3dq2ocg==}
/@esbuild/linux-s390x/0.16.16:
resolution: {integrity: sha512-jRqBCre9gZGoCdCN/UWCCMwCMsOg65IpY9Pyj56mKCF5zXy9d60kkNRdDN6YXGjr3rzcC4DXnS/kQVCGcC4yPQ==}
engines: {node: '>=12'}
cpu: [s390x]
os: [linux]
@ -1463,8 +1463,8 @@ packages:
dev: true
optional: true
/@esbuild/linux-x64/0.16.15:
resolution: {integrity: sha512-t7/fOXBUKfigvhJLGKZ9TPHHgqNgpIpYaAbcXQk1X+fPeUG7x0tpAbXJ2wST9F/gJ02+CLETPMnhG7Tra2wqsQ==}
/@esbuild/linux-x64/0.16.16:
resolution: {integrity: sha512-G1+09TopOzo59/55lk5Q0UokghYLyHTKKzD5lXsAOOlGDbieGEFJpJBr3BLDbf7cz89KX04sBeExAR/pL/26sA==}
engines: {node: '>=12'}
cpu: [x64]
os: [linux]
@ -1472,8 +1472,8 @@ packages:
dev: true
optional: true
/@esbuild/netbsd-x64/0.16.15:
resolution: {integrity: sha512-0k0Nxi6DOJmTnLtKD/0rlyqOPpcqONXY53vpkoAsue8CfyhNPWtwzba1ICFNCfCY1dqL3Ho/xEzujJhmdXq1rg==}
/@esbuild/netbsd-x64/0.16.16:
resolution: {integrity: sha512-xwjGJB5wwDEujLaJIrSMRqWkbigALpBNcsF9SqszoNKc+wY4kPTdKrSxiY5ik3IatojePP+WV108MvF6q6np4w==}
engines: {node: '>=12'}
cpu: [x64]
os: [netbsd]
@ -1481,8 +1481,8 @@ packages:
dev: true
optional: true
/@esbuild/openbsd-x64/0.16.15:
resolution: {integrity: sha512-3SkckazfIbdSjsGpuIYT3d6n2Hx0tck3MS1yVsbahhWiLvdy4QozTpvlbjqO3GmvtvhxY4qdyhFOO2wiZKeTAQ==}
/@esbuild/openbsd-x64/0.16.16:
resolution: {integrity: sha512-yeERkoxG2nR2oxO5n+Ms7MsCeNk23zrby2GXCqnfCpPp7KNc0vxaaacIxb21wPMfXXRhGBrNP4YLIupUBrWdlg==}
engines: {node: '>=12'}
cpu: [x64]
os: [openbsd]
@ -1490,8 +1490,8 @@ packages:
dev: true
optional: true
/@esbuild/sunos-x64/0.16.15:
resolution: {integrity: sha512-8PNvBC+O8X5EnyIGqE8St2bOjjrXMR17NOLenIrzolvwWnJXvwPo0tE/ahOeiAJmTOS/eAcN8b4LAZcn17Uj7w==}
/@esbuild/sunos-x64/0.16.16:
resolution: {integrity: sha512-nHfbEym0IObXPhtX6Va3H5GaKBty2kdhlAhKmyCj9u255ktAj0b1YACUs9j5H88NRn9cJCthD1Ik/k9wn8YKVg==}
engines: {node: '>=12'}
cpu: [x64]
os: [sunos]
@ -1499,8 +1499,8 @@ packages:
dev: true
optional: true
/@esbuild/win32-arm64/0.16.15:
resolution: {integrity: sha512-YPaSgm/mm7kNcATB53OxVGVfn6rDNbImTn330ZlF3hKej1e9ktCaljGjn2vH08z2dlHEf3kdt57tNjE6zs8SzA==}
/@esbuild/win32-arm64/0.16.16:
resolution: {integrity: sha512-pdD+M1ZOFy4hE15ZyPX09fd5g4DqbbL1wXGY90YmleVS6Y5YlraW4BvHjim/X/4yuCpTsAFvsT4Nca2lbyDH/A==}
engines: {node: '>=12'}
cpu: [arm64]
os: [win32]
@ -1508,8 +1508,8 @@ packages:
dev: true
optional: true
/@esbuild/win32-ia32/0.16.15:
resolution: {integrity: sha512-0movUXbSNrTeNf5ZXT0avklEvlJD0hNGZsrrXHfsp9z4tK5xC+apCqmUEZeE9mqrb84Z8XbgGr/MS9LqafTP2A==}
/@esbuild/win32-ia32/0.16.16:
resolution: {integrity: sha512-IPEMfU9p0c3Vb8PqxaPX6BM9rYwlTZGYOf9u+kMdhoILZkVKEjq6PKZO0lB+isojWwAnAqh4ZxshD96njTXajg==}
engines: {node: '>=12'}
cpu: [ia32]
os: [win32]
@ -1517,8 +1517,8 @@ packages:
dev: true
optional: true
/@esbuild/win32-x64/0.16.15:
resolution: {integrity: sha512-27h5GCcbfomVAqAnMJWvR1LqEY0dFqIq4vTe5nY3becnZNu0SX8F0+gTk3JPvgWQHzaGc6VkPzlOiMkdSUunUA==}
/@esbuild/win32-x64/0.16.16:
resolution: {integrity: sha512-1YYpoJ39WV/2bnShPwgdzJklc+XS0bysN6Tpnt1cWPdeoKOG4RMEY1g7i534QxXX/rPvNx/NLJQTTCeORYzipg==}
engines: {node: '>=12'}
cpu: [x64]
os: [win32]
@ -1711,8 +1711,8 @@ packages:
engines: {node: '>=6.0.0'}
dev: false
/@meshtastic/meshtasticjs/0.9.8:
resolution: {integrity: sha512-B76jPM3sKBVFcmW9Z3/I8DY+KHEbjVHfKTqIAnxfqTgDOTSIn5/kgxseVxnDLmMo795MxTey5rUm0ysao/s40g==}
/@meshtastic/meshtasticjs/2.0.12:
resolution: {integrity: sha512-OdvBOqnoStta8zbP7ALndKO6epWYxc5z534KoToPIL6kxvQBT+Xe1895orFmqfgVtHGOUutmOU/da84CIf9YGQ==}
dependencies:
'@protobuf-ts/runtime': 2.8.2
glob: 8.0.3
@ -3549,7 +3549,7 @@ packages:
resolution: {integrity: sha512-ct3ltplN8I9fOwUd8GrP8UQixwff129BkEtuWDKL5W45cQuLd19xqmTLu5ge78YDm/fdje6FMt0hGOhl0lii3A==}
dependencies:
'@types/validator': 13.7.10
libphonenumber-js: 1.10.16
libphonenumber-js: 1.10.17
validator: 13.7.0
dev: false
@ -3977,34 +3977,34 @@ packages:
is-symbol: 1.0.4
dev: true
/esbuild/0.16.15:
resolution: {integrity: sha512-v+3ozjy9wyj8cOElzx3//Lsb4TCxPfZxRmdsfm0YaEkvZu7y6rKH7Zi1UpDx4JI7dSQui+U1Qxhfij9KBbHfrA==}
/esbuild/0.16.16:
resolution: {integrity: sha512-24JyKq10KXM5EBIgPotYIJ2fInNWVVqflv3gicIyQqfmUqi4HvDW1VR790cBgLJHCl96Syy7lhoz7tLFcmuRmg==}
engines: {node: '>=12'}
hasBin: true
requiresBuild: true
optionalDependencies:
'@esbuild/android-arm': 0.16.15
'@esbuild/android-arm64': 0.16.15
'@esbuild/android-x64': 0.16.15
'@esbuild/darwin-arm64': 0.16.15
'@esbuild/darwin-x64': 0.16.15
'@esbuild/freebsd-arm64': 0.16.15
'@esbuild/freebsd-x64': 0.16.15
'@esbuild/linux-arm': 0.16.15
'@esbuild/linux-arm64': 0.16.15
'@esbuild/linux-ia32': 0.16.15
'@esbuild/linux-loong64': 0.16.15
'@esbuild/linux-mips64el': 0.16.15
'@esbuild/linux-ppc64': 0.16.15
'@esbuild/linux-riscv64': 0.16.15
'@esbuild/linux-s390x': 0.16.15
'@esbuild/linux-x64': 0.16.15
'@esbuild/netbsd-x64': 0.16.15
'@esbuild/openbsd-x64': 0.16.15
'@esbuild/sunos-x64': 0.16.15
'@esbuild/win32-arm64': 0.16.15
'@esbuild/win32-ia32': 0.16.15
'@esbuild/win32-x64': 0.16.15
'@esbuild/android-arm': 0.16.16
'@esbuild/android-arm64': 0.16.16
'@esbuild/android-x64': 0.16.16
'@esbuild/darwin-arm64': 0.16.16
'@esbuild/darwin-x64': 0.16.16
'@esbuild/freebsd-arm64': 0.16.16
'@esbuild/freebsd-x64': 0.16.16
'@esbuild/linux-arm': 0.16.16
'@esbuild/linux-arm64': 0.16.16
'@esbuild/linux-ia32': 0.16.16
'@esbuild/linux-loong64': 0.16.16
'@esbuild/linux-mips64el': 0.16.16
'@esbuild/linux-ppc64': 0.16.16
'@esbuild/linux-riscv64': 0.16.16
'@esbuild/linux-s390x': 0.16.16
'@esbuild/linux-x64': 0.16.16
'@esbuild/netbsd-x64': 0.16.16
'@esbuild/openbsd-x64': 0.16.16
'@esbuild/sunos-x64': 0.16.16
'@esbuild/win32-arm64': 0.16.16
'@esbuild/win32-ia32': 0.16.16
'@esbuild/win32-x64': 0.16.16
dev: true
/escalade/3.1.1:
@ -5053,8 +5053,8 @@ packages:
type-check: 0.4.0
dev: true
/libphonenumber-js/1.10.16:
resolution: {integrity: sha512-ga6F+8WSmMprzIKvRoeL/iAvkZWSdEpYCDISnXIiQTXw7sezfk+J9IHwzjK3b+6QvyZK8Gjjzjl3Hp+B5lpUXg==}
/libphonenumber-js/1.10.17:
resolution: {integrity: sha512-UQrNzsusSn5qaojdpWqporWRdpx6AGeb+egj64NrpYuyKHvnSH9jMp/1Dy3b/WnMyJA5zgV1yw//jC6J0dCXkw==}
dev: false
/lilconfig/2.0.6:
@ -6768,7 +6768,7 @@ packages:
optional: true
dependencies:
'@types/node': 18.11.18
esbuild: 0.16.15
esbuild: 0.16.16
postcss: 8.4.21
resolve: 1.22.1
rollup: 3.9.1

35
src/components/PageComponents/Config/Network.tsx

@ -6,6 +6,7 @@ import { toast } from "react-hot-toast";
import { FormSection } from "@app/components/form/FormSection.js";
import { Input } from "@app/components/form/Input.js";
import { IPInput } from "@app/components/form/IPInput.js";
import { Select } from "@app/components/form/Select.js";
import { Toggle } from "@app/components/form/Toggle.js";
import { renderOptions } from "@app/core/utils/selectEnumOptions.js";
@ -43,8 +44,8 @@ export const Network = (): JSX.Element => {
const ethMode = useWatch({
control,
name: "ethMode",
defaultValue: Protobuf.Config_NetworkConfig_EthMode.DHCP
name: "addressMode",
defaultValue: Protobuf.Config_NetworkConfig_AddressMode.DHCP
});
useEffect(() => {
@ -94,7 +95,7 @@ export const Network = (): JSX.Element => {
<ErrorMessage errors={errors} name="wifiPsk" />
<ErrorMessage errors={errors} name="ntpServer" />
<ErrorMessage errors={errors} name="ethEnabled" />
<ErrorMessage errors={errors} name="ethMode" />
<ErrorMessage errors={errors} name="addressMode" />
<ErrorMessage errors={errors} name="ethConfig" />
<ErrorMessage errors={errors} name="ip" />
<ErrorMessage errors={errors} name="gateway" />
@ -143,43 +144,41 @@ export const Network = (): JSX.Element => {
/>
)}
/>
</FormSection>
<FormSection title="IP Config">
<Select
label="Ethernet Mode"
label="Address Mode"
description="Address assignment selection"
disabled={!ethEnabled}
{...register("ethMode", {
valueAsNumber: true,
disabled: !ethEnabled
disabled={!(ethEnabled || wifiEnabled)}
{...register("addressMode", {
valueAsNumber: true
})}
>
{renderOptions(Protobuf.Config_NetworkConfig_EthMode)}
{renderOptions(Protobuf.Config_NetworkConfig_AddressMode)}
</Select>
{ethMode === Protobuf.Config_NetworkConfig_EthMode.STATIC && (
{ethMode === Protobuf.Config_NetworkConfig_AddressMode.STATIC && (
<>
<Input
<IPInput
label="IP"
type="number"
description="IP Address"
error={errors.ipv4Config?.ip?.message}
{...register("ipv4Config.ip", { valueAsNumber: true })}
/>
<Input
<IPInput
label="Gateway"
type="number"
description="Default Gateway"
error={errors.ipv4Config?.gateway?.message}
{...register("ipv4Config.gateway", { valueAsNumber: true })}
/>
<Input
<IPInput
label="Subnet"
type="number"
description="Subnet Mask"
error={errors.ipv4Config?.subnet?.message}
{...register("ipv4Config.subnet", { valueAsNumber: true })}
/>
<Input
<IPInput
label="DNS"
type="number"
// type="number" //prevent
description="DNS Server"
error={errors.ipv4Config?.dns?.message}
{...register("ipv4Config.dns", { valueAsNumber: true })}

6
src/validation/config/display.ts

@ -23,4 +23,10 @@ export class DisplayValidation implements Protobuf.Config_DisplayConfig {
@IsEnum(Protobuf.Config_DisplayConfig_OledType)
oled: Protobuf.Config_DisplayConfig_OledType;
@IsEnum(Protobuf.Config_DisplayConfig_DisplayMode)
displaymode: Protobuf.Config_DisplayConfig_DisplayMode;
@IsBoolean()
headingBold: boolean;
}

6
src/validation/config/network.ts

@ -20,9 +20,9 @@ export class NetworkValidation implements Protobuf.Config_NetworkConfig {
@IsBoolean()
ethEnabled: boolean;
@IsEnum(Protobuf.Config_NetworkConfig_EthMode)
@IsOptional()
ethMode: Protobuf.Config_NetworkConfig_EthMode;
@IsEnum(Protobuf.Config_NetworkConfig_AddressMode)
// @IsOptional()
addressMode: Protobuf.Config_NetworkConfig_AddressMode;
ipv4Config: NetworkValidation_IpV4Config;
}

Loading…
Cancel
Save