bf90d6312b
The backend stored the MAC, but the frontend built the approved canvas node locally with properties=[] (non-zigbee) and no mac field. On save, canvas/save upserts every node field from the in-memory canvas, so the empty properties overwrote the DB MAC — the address showed after a no-save reload but vanished once saved. Now both approve paths (single + bulk) attach a MAC property row and the mac field to the node added to the canvas, mirroring the backend build_mac_property. Hidden by default, toggleable from the right panel. - new buildMacProperty util + unit tests - bulk-approve modal test asserts MAC propagation (IP device) and absence for a zigbee device ha-relevant: yes
10 lines
428 B
TypeScript
10 lines
428 B
TypeScript
import type { NodeProperty } from '@/types'
|
|
|
|
/** Build the MAC address property row shown in the right panel.
|
|
* Hidden by default — the user opts in to showing it on the canvas card.
|
|
* Matches backend `build_mac_property`. Returns an empty array when no MAC. */
|
|
export function buildMacProperty(mac?: string | null): NodeProperty[] {
|
|
if (!mac) return []
|
|
return [{ key: 'MAC', value: mac, icon: null, visible: false }]
|
|
}
|