Frontend updates (#22327)

* add optional field widget

adds a switch to enable nullable fields like skip_motion_threshold

* config field updates

add skip_motion_threshold optional switch
add fps back to detect restart required

* don't use ternary operator when displaying motion previews

the main previews were being unnecessarily unmounted

* lazy mount motion preview clips to reduce DOM overhead
This commit is contained in:
Josh Hawkins
2026-03-08 12:27:53 -05:00
committed by GitHub
parent ef07563d0a
commit df27e04c0f
6 changed files with 279 additions and 130 deletions
@@ -30,10 +30,22 @@ const detect: SectionConfigOverrides = {
],
},
global: {
restartRequired: ["width", "height", "min_initialized", "max_disappeared"],
restartRequired: [
"fps",
"width",
"height",
"min_initialized",
"max_disappeared",
],
},
camera: {
restartRequired: ["width", "height", "min_initialized", "max_disappeared"],
restartRequired: [
"fps",
"width",
"height",
"min_initialized",
"max_disappeared",
],
},
};
@@ -3,6 +3,12 @@ import type { SectionConfigOverrides } from "./types";
const motion: SectionConfigOverrides = {
base: {
sectionDocs: "/configuration/motion_detection",
fieldDocs: {
lightning_threshold:
"/configuration/motion_detection#lightning_threshold",
skip_motion_threshold:
"/configuration/motion_detection#skip_motion_on_large_scene_changes",
},
restartRequired: [],
fieldOrder: [
"enabled",
@@ -20,6 +26,16 @@ const motion: SectionConfigOverrides = {
sensitivity: ["enabled", "threshold", "contour_area"],
algorithm: ["improve_contrast", "delta_alpha", "frame_alpha"],
},
uiSchema: {
skip_motion_threshold: {
"ui:widget": "optionalField",
"ui:options": {
innerWidget: "range",
step: 0.05,
suppressMultiSchema: true,
},
},
},
hiddenFields: ["enabled_in_config", "mask", "raw_mask"],
advancedFields: [
"lightning_threshold",
@@ -58,7 +74,7 @@ const motion: SectionConfigOverrides = {
"frame_alpha",
"frame_height",
],
advancedFields: ["lightning_threshold"],
advancedFields: ["lightning_threshold", "skip_motion_threshold"],
},
};