Add UoM to location selector (#25358)

This commit is contained in:
karwosts 2025-05-07 07:13:29 -07:00 committed by GitHub
parent b823a3b139
commit 6d931b9e37
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 17 additions and 5 deletions

View File

@ -11,6 +11,7 @@ import type { SchemaUnion } from "../ha-form/types";
import type { MarkerLocation } from "../map/ha-locations-editor"; import type { MarkerLocation } from "../map/ha-locations-editor";
import "../map/ha-locations-editor"; import "../map/ha-locations-editor";
import "../ha-form/ha-form"; import "../ha-form/ha-form";
import type { LocalizeFunc } from "../../common/translations/localize";
@customElement("ha-selector-location") @customElement("ha-selector-location")
export class HaLocationSelector extends LitElement { export class HaLocationSelector extends LitElement {
@ -27,7 +28,7 @@ export class HaLocationSelector extends LitElement {
@property({ type: Boolean, reflect: true }) public disabled = false; @property({ type: Boolean, reflect: true }) public disabled = false;
private _schema = memoizeOne( private _schema = memoizeOne(
(radius?: boolean, radius_readonly?: boolean) => (localize: LocalizeFunc, radius?: boolean, radius_readonly?: boolean) =>
[ [
{ {
name: "", name: "",
@ -36,12 +37,12 @@ export class HaLocationSelector extends LitElement {
{ {
name: "latitude", name: "latitude",
required: true, required: true,
selector: { number: { step: "any" } }, selector: { number: { step: "any", unit_of_measurement: "°" } },
}, },
{ {
name: "longitude", name: "longitude",
required: true, required: true,
selector: { number: { step: "any" } }, selector: { number: { step: "any", unit_of_measurement: "°" } },
}, },
], ],
}, },
@ -52,7 +53,16 @@ export class HaLocationSelector extends LitElement {
required: true, required: true,
default: 1000, default: 1000,
disabled: !!radius_readonly, disabled: !!radius_readonly,
selector: { number: { min: 0, step: 1, mode: "box" } as const }, selector: {
number: {
min: 0,
step: 1,
mode: "box",
unit_of_measurement: localize(
"ui.components.selectors.location.radius_meters"
),
} as const,
},
} as const, } as const,
] ]
: []), : []),
@ -84,6 +94,7 @@ export class HaLocationSelector extends LitElement {
<ha-form <ha-form
.hass=${this.hass} .hass=${this.hass}
.schema=${this._schema( .schema=${this._schema(
this.hass.localize,
this.selector.location?.radius, this.selector.location?.radius,
this.selector.location?.radius_readonly this.selector.location?.radius_readonly
)} )}

View File

@ -403,7 +403,8 @@
"location": { "location": {
"latitude": "[%key:ui::panel::config::zone::detail::latitude%]", "latitude": "[%key:ui::panel::config::zone::detail::latitude%]",
"longitude": "[%key:ui::panel::config::zone::detail::longitude%]", "longitude": "[%key:ui::panel::config::zone::detail::longitude%]",
"radius": "[%key:ui::panel::config::zone::detail::radius%]" "radius": "[%key:ui::panel::config::zone::detail::radius%]",
"radius_meters": "[%key:ui::panel::config::core::section::core::core_config::elevation_meters%]"
}, },
"selector": { "selector": {
"options": "Selector Options", "options": "Selector Options",