Isolate InfoPanel templates, document DataItem contract
- Added MGGRID_TODO.md entry (ACBLAZOR-GRID-T-E3B6) for ErrorBoundary isolation of consumer templates and DataItem contract documentation. - Updated GridShippingDocumentInfoPanel.razor to guard against null ShippingItems after add/save, preventing unhandled exceptions. - Added PowerShell command in settings.local.json to count MGGRID_TODO.md lines for monitoring.
This commit is contained in:
parent
9a0c077f2a
commit
60a5599214
|
|
@ -69,6 +69,21 @@ Not urgent — only light grouping usage so far; the base path works. Promote to
|
||||||
- Unit / integration test with a grouped column.
|
- Unit / integration test with a grouped column.
|
||||||
- Remove the `// TODO: Implement local grouping when needed` comment.
|
- Remove the `// TODO: Implement local grouping when needed` comment.
|
||||||
|
|
||||||
|
## ACBLAZOR-GRID-T-E3B6: Fogyasztói template-ek izolálása (ErrorBoundary) + DataItem-kontraktus dokumentálása
|
||||||
|
**Priority:** P2 · **Type:** Resilience + Docs · **Origin:** 2026-07-13 runtime incidens (fogyasztói InfoPanel-template NRE → WASM renderer crit)
|
||||||
|
|
||||||
|
A template-hosztok (`MgGridInfoPanel` Header/BeforeColumns/Columns/AfterColumns/Footer template-hívásai — pl. `MgGridInfoPanel.razor:44` —, és általában a fogyasztói `RenderFragment`-hívások) **védtelenül** futnak: egy fogyasztói template-ben dobott kivétel unhandled render exceptionként a WASM renderert üti meg (`crit: …WebAssemblyRenderer`), rosszabb esetben az egész app-ot viszi — nem csak az érintett panelt.
|
||||||
|
|
||||||
|
**Trigger-incidens:** add/save után a kijelölt sor a szerver-válasz nyers (reláció nélkül betöltött) entitása a grid-reloadig; a fogyasztói template null navigációt dereferált → NRE a renderben. A fogyasztói fix (null-guard a template-ben) megvan, de a keret két hiányossága marad:
|
||||||
|
|
||||||
|
1. **ErrorBoundary a template-hívások köré** — a hibás template a panelen belül hibablokká szelídüljön (+ logolás), a grid/app maradjon életben. Figyelem: az `ErrorBoundary` az eseménykezelő-kivételeket is elkapja; recovery-stratégia kell (pl. `Recover()` a következő DataItem-váltásnál).
|
||||||
|
2. **DataItem-kontraktus kimondása a doksiban** (`MGGRID_INFOPANEL` / README): a template-nek részlegesen töltött DataItem-mel KELL számolnia (null navigációs property-k) — add/save után a DataItem a szerver-válasz nyers entitása lehet, amíg a reload le nem cseréli.
|
||||||
|
|
||||||
|
### Acceptance criteria
|
||||||
|
- Fogyasztói template-kivétel nem eszkalálódik unhandled render exceptionné; a panel hibablokkot mutat és logol.
|
||||||
|
- A következő sikeres render (pl. DataItem-váltás) után a panel magától helyreáll.
|
||||||
|
- A DataItem-kontraktus dokumentálva.
|
||||||
|
|
||||||
## TODO entry template
|
## TODO entry template
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue