Skip to content

feat(frontend): admin UI on @hanzogui/admin canonical shell#32

Closed
hanzo-dev wants to merge 1 commit into
mainfrom
feat/admin-ui
Closed

feat(frontend): admin UI on @hanzogui/admin canonical shell#32
hanzo-dev wants to merge 1 commit into
mainfrom
feat/admin-ui

Conversation

@hanzo-dev
Copy link
Copy Markdown
Member

Net-new Vite + React 19 admin SPA at frontend/, on the canonical @hanzogui/admin shell (PR hanzoai/gui#2).

Pages

Path Component Type
/orders OrdersPage CollectionCRUD (read-only, status filter)
/orders/:id OrderDetailPage Custom — status timeline (placed → paid → fulfilled → shipped → delivered) + history
/products ProductsPage CollectionCRUD
/customers CustomersPage CollectionCRUD
/invoices InvoicesPage CollectionCRUD (status filter)
/subscriptions SubscriptionsPage CollectionCRUD (status filter)
/vault VaultPage Custom — read-only PCI-scoped tokens, masked PAN + brand + last4

Backend

Untouched. Stays on Gin. Frontend talks /v1/commerce/* and doesn't care how it's served. When the Gin → zip migration sprint runs, no frontend change needed.

Coordination

  • @hanzogui/admin is workspace-linked via file:../../gui/pkgs/ui-admin (matches auto's pattern). Will resolve via npm registry once v7.2.4 publishes.
  • Mirrors hanzoai/auto#6 — same wiring, same primitives, same idioms.

Follow-ups

  • Real CRUD verbs (PATCH/DELETE) wait on @hanzogui/admin Phase 2.
  • Vault page expects /v1/vault/tokens; if vault is a separate service (per global rule "PCI-scope only to vault solo"), the URL changes to vault.hanzo.ai/v1/vault/tokens — fix when wiring lands.

🚀 Generated with hanzo-dev.

New Vite + React 19 + @hanzogui/admin SPA at frontend/, mirroring the
auto admin pattern (PR hanzoai/auto#6). One wiring sequence:

  BrowserRouter
    AuthGate (hanzo.id OIDC)
      BaseClientProvider (/v1/commerce)
        CommerceApiProvider (typed CommerceApi)
          AdminApp (sidebar + topbar)
            Routes
              /orders, /orders/:id (status timeline)
              /products  (CollectionCRUD)
              /customers (CollectionCRUD)
              /invoices  (status filter)
              /subscriptions (cancel flow)
              /vault     (read-only, masked PAN + brand + last4)

Backend untouched. Stays on Gin — frontend talks /v1/commerce/* and
ignores how the backend serves it. When the Gin → zip migration runs
its own sprint, the frontend won't need to change.

Generic CRUD pages use @hanzogui/admin's <CollectionCRUD>. Service-
specific views (order timeline, vault masked view) are custom child
components.
@hanzo-dev
Copy link
Copy Markdown
Member Author

Closing — duplicates the canonical commerce admin at gui/apps/admin-commerce@1.38.0 which is wired into commerce backend via ui/embed.go + scripts/sync-admin-ui.sh. The canonical source stays in the @hanzo/gui workspace; commerce binary embeds it via sync.

@hanzo-dev hanzo-dev closed this May 21, 2026
@hanzo-dev hanzo-dev deleted the feat/admin-ui branch May 21, 2026 21:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants