internal data sources (clock, static text), connection indicator, rendering fixes
DataSourceConfig refactored to enum: External/Clock/StaticText. Clock generates formatted time via chrono, static text emits configured string. ESP32: connection status indicator (green/red dot bottom-right), per-widget clear before redraw, RenderEvent enum for local + server messages. Polling uses DataUpdate instead of ScreenUpdate to avoid wiping widget state. Empty mappings passthrough raw source data for internal sources.
This commit is contained in:
@@ -35,6 +35,15 @@ impl WidgetConfig {
|
||||
}
|
||||
|
||||
pub fn extract(&self, raw: &Value) -> WidgetState {
|
||||
let has_mappings = self.mappings.iter().any(|m| !m.source_path.is_empty());
|
||||
if !has_mappings {
|
||||
let data = match raw {
|
||||
Value::Object(map) => map.clone(),
|
||||
_ => BTreeMap::new(),
|
||||
};
|
||||
return WidgetState { data, error: None };
|
||||
}
|
||||
|
||||
let budget = self.max_data_size as usize;
|
||||
let mut used = 0usize;
|
||||
let mut data = BTreeMap::new();
|
||||
|
||||
Reference in New Issue
Block a user