Skip to content

May 22, 2026 — Frontend

Release date: Friday, 2026-05-22

Summary

BMS expanded beyond buildings with feature-flagged dams, vessels, and platforms (list, map, table, and detail flows behind env flags). Coverage lines moved to dedicated pages with clearer valuation fields, year-end renewal rules, and alignment to backend validation (no strictIssue). Maps and location gained a reusable picker with geocoding on the building location form. In-app notifications wired to the new me-notifications API, and insurance UI split risk profile from workbook display per the latest OpenAPI contract.

Shipped

  • Dams, vessels, platforms: Optional modules (VITE_DAM_ACTIVE, VITE_VESSEL_ACTIVE, VITE_PLATFORM_ACTIVE) with mock APIs, list/map/table views, detail tabs, routes, and conditional shell navigation.
  • Coverage lines: Dedicated create and detail pages; valuationBasis at issue time; objektverdi separated from premiegrunnlag; default end dates and shouldRenew gated on 31 December; human-readable tariff breakdown labels; helper text on issue form; removed strictIssue from client and form.
  • Insurance workbook: UI split between risk profile and workbook; building value breakdown restored on workbook views.
  • Maps: LocationPickerMap (Places + Geocoding) with docs; coordinate picker and address geocoding on building location form.
  • Notifications: Me-notifications API client; header bell and profile notification views.
  • Icons: Boat, Dam, and Train icons plus docs page examples; DamIcon viewBox fix.
  • OpenAPI: Regenerated client for building risk-profile split and auth device DTOs.
  • Branding: Title management and branding updates in BMS shell.

Engineering (commit recap)

Frontend — week of May 18 – May 24, 2026

Window: --after="2026-05-15" --before="2026-05-23" (--no-merges).

Summary

Thirty-four non-merge commits landed, led by three parallel “asset class” surfaces (dams, vessels, platforms) built from the same pattern—types, mock API helpers, list/map/table UI, routes, and feature guards. Coverage and insurance work focused on issuance UX (dedicated routes, valuation fields, renewal/date rules) and contract sync (risk profile vs workbook, dropping strictIssue). Maps, notifications, and shared icons rounded out the week.

Themes

  • Alternate asset modules (dams / vessels / platforms): Env-gated feature flags; typed models and mock list/risk helpers; map + table + detail tab shells; conditional nav entries and route wiring; demo sidebar on dam detail.
  • Coverage line issuance: New create/detail pages; valuationBasis on issue; objektverdi vs premiegrunnlag; 31 December end-date defaults and shouldRenew behavior; tariff breakdown labels; issue-form helper copy; strictIssue removed from API client and form.
  • Insurance workbook & risk profile: OpenAPI-aligned split—workbook UI vs risk profile; building value breakdown on workbook; issue-form and display utilities updated for backend validation changes.
  • Maps & building location: LocationPickerMap in @sod/ui/maps; coordinate picker modal and geocoded address fields on location form; Maps docs page.
  • In-app notifications: me-notifications client; notification bell in shell; profile views for notification preferences/history (paired with backend notification platform).
  • Shared icons: Boat, Dam, Train SVG components; Icons docs examples; DamIcon viewBox correction.
  • Shell & branding: Title management enhancements and branding pass on BMS chrome.
  • Tooling: Concise communication Cursor rule (no product surface).

Notable fixes or risks (if any)

  • Feature flags: Dams, vessels, and platforms use mock APIs until backend endpoints ship—verify env vars before demoing each module.
  • Coverage validation: Client no longer sends strictIssue; issuance depends on server-side valuation and overlap rules—retest preview/issue after pulling backend May 22 changes.
  • Google Maps: Location picker requires Maps/Places API configuration in app env; failures surface in picker modal only.
  • OpenAPI churn: Risk-profile split and device DTOs require regenerated types—run typecheck and smoke-test Forsikring and profile devices after sync.