mirror of
https://github.com/The-Low-Code-Foundation/OpenNoodl.git
synced 2026-03-08 01:53:30 +01:00
feat(uba): UBA-008/009 panel registration + health indicator
UBA-008: Register UBAPanel in editor sidebar (router.setup.ts) UBA-009: Health indicator widget in Configure tab - useUBAHealth hook polling UBAClient.health() every 30s - HealthBadge component: 4 states (unknown/checking/healthy/unhealthy) - Pulsing animation on checking; design token colours with fallbacks - Shown only when schema.backend.endpoints.health is present Test fix: UBASchemaParser.test.ts - isFailure<T>() type guard for webpack ts-loader friendly narrowing - eslint-disable for destructuring discard patterns
This commit is contained in:
@@ -49,8 +49,41 @@
|
||||
| UBA-006 ConfigPanel mounting | ✅ Done | UBAPanel with project metadata |
|
||||
| UBA-007 Debug Stream Panel | ✅ Done | SSE viewer in Debug tab |
|
||||
|
||||
### Session 4 (Sprint 2)
|
||||
|
||||
- **UBA-008**: `router.setup.ts` — Registered UBAPanel in editor sidebar
|
||||
|
||||
- Added `uba` route with `UBAPanel` component
|
||||
- Panel accessible via editor sidebar navigation
|
||||
|
||||
- **UBA-009**: `UBAPanel.tsx` + `UBAPanel.module.scss` — Health indicator widget
|
||||
|
||||
- `useUBAHealth` hook: polls `UBAClient.health()` every 30s, never throws
|
||||
- `HealthBadge` component: dot + label, 4 states (unknown/checking/healthy/unhealthy)
|
||||
- Animated pulse on `checking` state; green/red semantic colours with `--theme-color-success/danger` tokens + fallbacks
|
||||
- Shown above ConfigPanel when `schema.backend.endpoints.health` is present
|
||||
- `configureTabContent` wrapper div for flex layout
|
||||
|
||||
- **Test fixes**: `UBASchemaParser.test.ts`
|
||||
- Added `isFailure<T>()` type guard (webpack ts-loader friendly discriminated union narrowing)
|
||||
- Replaced all `if (!result.success)` with `if (isFailure(result))`
|
||||
- Fixed destructuring discard pattern `_sv`/`_b` → `_` with `eslint-disable-next-line`
|
||||
|
||||
## Status
|
||||
|
||||
| Task | Status | Notes |
|
||||
| ---------------------------- | ------- | -------------------------------- |
|
||||
| UBA-001 Types | ✅ Done | |
|
||||
| UBA-002 SchemaParser | ✅ Done | Instance method `.parse()` |
|
||||
| UBA-003 Field Renderers | ✅ Done | 8 field types |
|
||||
| UBA-004 ConfigPanel | ✅ Done | Tabs, validation, dirty state |
|
||||
| UBA-005 UBAClient | ✅ Done | configure/health/openDebugStream |
|
||||
| UBA-006 ConfigPanel mounting | ✅ Done | UBAPanel with project metadata |
|
||||
| UBA-007 Debug Stream Panel | ✅ Done | SSE viewer in Debug tab |
|
||||
| UBA-008 Panel registration | ✅ Done | Sidebar route in router.setup.ts |
|
||||
| UBA-009 Health indicator | ✅ Done | useUBAHealth + HealthBadge |
|
||||
|
||||
## Next Up
|
||||
|
||||
- UBA-008: UBA panel registration in editor sidebar
|
||||
- UBA-009: UBA health indicator / status widget
|
||||
- STYLE tasks: Any remaining style overhaul items
|
||||
- UBA-010: Consider E2E integration test with mock backend
|
||||
|
||||
Reference in New Issue
Block a user