diff --git a/app/src/components/EspSidebar.tsx b/app/src/components/EspSidebar.tsx index bb9f94b..33e7748 100644 --- a/app/src/components/EspSidebar.tsx +++ b/app/src/components/EspSidebar.tsx @@ -20,9 +20,15 @@ declare module "react" { import { buildBudpyConfig, defaultBackgroundColor, + maxScreenIdleHours, + maxScreenIdleMinutes, normalizeBrightnessMode, normalizeBrightnessValue, normalizeColorValue, + normalizeScreenIdleMinutes, + normalizeScreenIdleUnit, + normalizeScreenSleepDimBrightness, + normalizeScreenSleepMode, type Orientation, } from "../lib/config"; import { saveStoredDeviceSetupInput } from "../lib/deviceSetupStorage"; @@ -98,6 +104,17 @@ export function EspSidebar({ const brightnessMode = normalizeBrightnessMode(input.brightnessMode); const brightnessLabel = brightnessMode === "auto" ? "Maximum brightness" : "Brightness"; + const screenIdleMinutes = normalizeScreenIdleMinutes(input.screenIdleMinutes); + const screenIdleUnit = normalizeScreenIdleUnit(input.screenIdleUnit); + const screenSleepMode = normalizeScreenSleepMode(input.screenSleepMode); + const screenSleepDimBrightness = normalizeScreenSleepDimBrightness( + input.screenSleepDimBrightness, + ); + const screenIdleValue = + screenIdleUnit === "hours" ? screenIdleMinutes / 60 : screenIdleMinutes; + const screenIdleMax = + screenIdleUnit === "hours" ? maxScreenIdleHours : maxScreenIdleMinutes; + const screenSleepEnabled = screenIdleMinutes > 0; function updateInput(key: keyof DeviceSetupInput, value: string | number) { onInputChange(key, value); @@ -336,6 +353,81 @@ export function EspSidebar({ } /> + + + + {screenSleepMode === "dim" && ( + + )} + )} + + {error &&

{error}

} + {field.description && !error &&

{field.description}

} + + ); +} + function PluginConfigFieldInput({ field, value, + cell, + orientation, + totalImageDataLength, globalVars, colorVars, onConfigChange, }: { field: PluginConfigField; value: unknown; + cell: LayoutCell; + orientation: Orientation; + totalImageDataLength: number; globalVars: readonly GlobalVar[]; colorVars: readonly GlobalVar[]; onConfigChange: (key: string, value: unknown) => void; @@ -101,6 +215,19 @@ function PluginConfigFieldInput({ ); } + if (field.type === "image") { + return ( + + ); + } + if (field.type === "select") { return (