fix: added a notes fild to Dynamic form allowing for notes to inform users about using BLE and wifi at the same time. (#474)

This commit is contained in:
Dan Ditomaso
2025-03-03 20:32:01 -05:00
parent fc713f55fe
commit f9066eced0
4 changed files with 15 additions and 5 deletions
+3
View File
@@ -27,6 +27,7 @@ export interface BaseFormBuilderProps<T> {
disabledBy?: DisabledBy<T>[]; disabledBy?: DisabledBy<T>[];
label: string; label: string;
description?: string; description?: string;
notes?: string;
validationText?: string; validationText?: string;
properties?: Record<string, unknown>; properties?: Record<string, unknown>;
} }
@@ -45,6 +46,7 @@ export interface DynamicFormProps<T extends FieldValues> {
fieldGroups: { fieldGroups: {
label: string; label: string;
description: string; description: string;
notes?: string;
valid?: boolean; valid?: boolean;
validationText?: string; validationText?: string;
fields: FieldProps<T>[]; fields: FieldProps<T>[];
@@ -95,6 +97,7 @@ export function DynamicForm<T extends FieldValues>({
<div> <div>
<H4 className="font-medium">{fieldGroup.label}</H4> <H4 className="font-medium">{fieldGroup.label}</H4>
<Subtle>{fieldGroup.description}</Subtle> <Subtle>{fieldGroup.description}</Subtle>
<Subtle className="font-semibold">{fieldGroup?.notes}</Subtle>
</div> </div>
{fieldGroup.fields.map((field) => { {fieldGroup.fields.map((field) => {
@@ -70,7 +70,9 @@ export const Bluetooth = () => {
fieldGroups={[ fieldGroups={[
{ {
label: "Bluetooth Settings", label: "Bluetooth Settings",
description: "Settings for the Bluetooth module", description: "Settings for the Bluetooth module ",
notes:
"Note: Some devices (ESP32) cannot use both Bluetooth and WiFi at the same time.",
fields: [ fields: [
{ {
type: "toggle", type: "toggle",
@@ -53,6 +53,8 @@ export const Network = () => {
{ {
label: "WiFi Config", label: "WiFi Config",
description: "WiFi radio configuration", description: "WiFi radio configuration",
notes:
"Note: Some devices (ESP32) cannot use both Bluetooth and WiFi at the same time.",
fields: [ fields: [
{ {
type: "toggle", type: "toggle",
@@ -18,7 +18,9 @@ export const Serial = ({ closeDialog }: TabElementProps) => {
setSerialPorts(await navigator?.serial.getPorts()); setSerialPorts(await navigator?.serial.getPorts());
}, []); }, []);
navigator?.serial?.addEventListener("connect", () => { navigator?.serial?.addEventListener("connect", (event) => {
console.log(event);
updateSerialPortList(); updateSerialPortList();
}); });
navigator?.serial?.addEventListener("disconnect", () => { navigator?.serial?.addEventListener("disconnect", () => {
@@ -45,6 +47,8 @@ export const Serial = ({ closeDialog }: TabElementProps) => {
<div className="flex w-full flex-col gap-2 p-4"> <div className="flex w-full flex-col gap-2 p-4">
<div className="flex h-48 flex-col gap-2 overflow-y-auto"> <div className="flex h-48 flex-col gap-2 overflow-y-auto">
{serialPorts.map((port, index) => { {serialPorts.map((port, index) => {
console.log(port);
const { usbProductId, usbVendorId } = port.getInfo(); const { usbProductId, usbVendorId } = port.getInfo();
return ( return (
<Button <Button
@@ -55,9 +59,8 @@ export const Serial = ({ closeDialog }: TabElementProps) => {
await onConnect(port); await onConnect(port);
}} }}
> >
{`# ${index} - ${usbVendorId ?? "UNK"} - ${ {`# ${index} - ${usbVendorId ?? "UNK"} - ${usbProductId ?? "UNK"
usbProductId ?? "UNK" }`}
}`}
</Button> </Button>
); );
})} })}