import { html, nothing, type TemplateResult } from 'lit'; import type { I18nKey } from './i18n'; import { roomTempThresholdDraft, strictNumber } from './space-dialog'; interface RoomTemperatureControlsHost { _roomTempMin: string; _roomTempMax: string; _t: (key: I18nKey) => string; requestUpdate: () => unknown; } export interface RoomTemperatureControls { valid: boolean; template: TemplateResult | typeof nothing; } /** Lazy-editor UI for the optional per-room comfort bounds. */ export function roomTemperatureControls( host: RoomTemperatureControlsHost, effectiveFill: string, spaceMin: number, spaceMax: number, help: TemplateResult | typeof nothing, ): RoomTemperatureControls { const draft = roomTempThresholdDraft(host._roomTempMin, host._roomTempMax); if (effectiveFill !== 'temp') return { valid: draft.valid, template: nothing }; const minInvalid = host._roomTempMin.trim() !== '' && strictNumber(host._roomTempMin) === null; const maxInvalid = host._roomTempMax.trim() !== '' && strictNumber(host._roomTempMax) === null; return { valid: draft.valid, template: html`