openova/products/catalyst/bootstrap
e3mrah 239eb4fffd
feat(ui): Wave 6 PR 3 — BSS Orders native (drops iframe) (#1607)
Replaces the BssSectionShell iframe at /console/bss/orders with a
native React table that mirrors JobsTable's shape: toolbar (search +
status + age dropdowns) → scrollable table (Order ID | Tenant org |
Product | Status | Created | Last update | Total) → row click to
drill-in (TODO Link to /bss/orders/{id}, route added in a follow-up).

Inherits the parent app's design system per Wave 6 brief +
feedback_subagents_inherit_design_system.md:
  - PortalShell wrapper with `← Back to BSS overview` header slot
    (mirrors BssSectionShell verbatim so the page reads as a sibling
    of /bss/{billing,revenue,vouchers,tenants})
  - Design tokens only (var(--color-bg-2), var(--color-border),
    var(--color-text), var(--color-text-dim), var(--color-text-strong),
    var(--color-accent), var(--color-surface), var(--color-success),
    var(--color-error))
  - amber-* exception ONLY for the documented "API pending" pill
    (verbatim copy from BssLandingPage + SettingsPage); no rose
  - No hex colours; no bespoke Tailwind colour families
  - Empty / loading / API-pending states mirror JobsTable +
    ParentDomainsPage + BssLandingPage

API plumbing:
  - lib/bss.api.ts: added Order / OrderStatus / OrdersResponse types
    and getOrders() that fetches /api/v1/sme/orders and tolerates
    404 / 5xx / network error by returning {pendingApi:true, orders:[]}
    so the full table chrome paints on first load with the "API
    pending" pill (per INVIOLABLE-PRINCIPLES.md #1).
  - No BE handler added; the FE-only stub matches getBssOverview's
    pattern and was explicitly OPTIONAL in the Wave 6 brief.

Verification:
  - tsc -b --noEmit: my files clean (28 pre-existing errors elsewhere:
    CloudPage CloudListKind drift + openova-flow workspace types,
    all unrelated to this PR).
  - Color audit grep: returns only the documented amber-500/* and
    amber-300 used by the API-pending pill.
  - Side-by-side render with JobsPage: same PortalShell chrome, same
    toolbar shape, same table column treatment.

Links Wave 6 PR 1 (#1606).

Co-authored-by: hatiyildiz <hatice.yildiz@openova.io>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 00:27:27 +04:00
..
api fix(catalyst-api+ui): Family B — AppDetail status sync (HR→UI wire + correct ns/label) (#1603) 2026-05-17 22:23:35 +04:00
ui feat(ui): Wave 6 PR 3 — BSS Orders native (drops iframe) (#1607) 2026-05-18 00:27:27 +04:00