Skip to content

August 7, 2026 — Frontend

Release date: Friday, 2026-08-07

Summary

This week renames building insurance workbooks end-to-end in the UI (OpenAPI + clients + screens), adds manual building value request/approval on the insurance tab, and hardens list tables—shared size/typography, clearer coverage labels, mid-term expiry treated as active until expiredOn, plus preferences sync that keeps row selection local without invalid or useless PATCH /me/preferences calls.

Shipped

  • Workbook rename — UI wired to building workbook APIs and naming after OpenAPI regeneration; audit labels and property insurance overview updated accordingly.
  • Manual building value — request and approval panel on building insurance, with dedicated API client and permission keys.
  • Coverage list UX — aligned Norwegian labels/dates, shared list-table typography rules, denser consistent Table size across BMS entity lists.
  • Coverage lifecycle — scheduled mid-term expiry stays active until expiredOn (not treated as already expired).
  • Select labels@sod/ui Select shorthand for label overrides; BMS insurance forms use the labels prop.
  • Table preferences — merge partial table state (incl. local selectedRows); strip selection from API payload; skip PATCH when only selection changed; preserve selection across server preference loads.

Engineering (commit recap)

Frontend — week of August 3 – August 7, 2026

Window: after 2026-08-01, before 2026-08-08 (--no-merges).

Summary

Contract-led workbook rename lands with regenerated OpenAPI types and a focused buildingWorkbookApi, then manual value flows on top. Design-system work unifies Table size typography and Select label overrides; BMS list screens and coverage display utils follow. Preferences/table persistence fixes close the selection → invalid or noisy preferences PATCH loop without storing selection on the server.

Themes

  • Workbook contract & UI: OpenAPI regen; buildingWorkbookApi; rename across insurance years, coverage lines, property overview, and display utils; deprecation tracker for historical audit labels.
  • Manual building value: buildingManualValueApi, permission keys, BuildingManualValuePanel + action helpers with Vitest.
  • List tables & coverage copy: table-size / BMS list-table typography convention; coverage filters and columns; lifecycle util for mid-term expiry.
  • Select API: shorthand label override props on @sod/ui/select; BMS consumers switched to labels.
  • Preferences & Table selection: merge/selectedRows local-only; getPreferencesSyncKey skip-PATCH; preserve selection on server replace; Table no longer clears selection on empty/server-page data or re-init.

Notable fixes or risks (if any)

  • Manual value and workbook screens need matching backend routes deployed; OpenAPI refresh alone is not enough if the API env lags.
  • Row selection remains local-only (not on the server); refresh still restores from browser prefs, not from another device.
  • Stale internal localStorage table keys (pre–externalStorage) can still exist in some browsers but are no longer read on the BMS externalStorage path for re-init.