mirror of
https://github.com/hanzoai/sites.git
synced 2026-10-30 18:22:43 +00:00
The four are not four applications. They are one application whose `module` is a
value read off the hostname, because the thing behind all four — the framework
DocType engine — already treats an app lane as a module tag over a registry. The
first DNS label picks the site; the registered domain picks the brand. Keeping
those two resolutions apart is why erp.zoo.ngo is an ordinary sentence and not a
special case.
The renderer is @hanzo/ui/framework (list / detail / form from DocType metadata
alone), so this repo holds no per-module code and adding a fifth product is one
entry in SITES plus a DNS record. Auth is the console's IAM PKCE path — the access
token is the only credential, and cloud derives the org from its membership claim,
so this app never chooses a tenant.
Proven locally against a real cloud binary serving /v1/framework: nine Playwright
cases sign in through the app's own button and photograph all four hosts at 390x844
and 1440x900, asserting real records are on screen and that nothing scrolls
sideways on a phone.
Found on the way: @hanzo/brand's getBrand() takes a HOST, not a brand id, so
getBrand('lux') silently returns the Hanzo brand — every white-label caller keying
it by id is quietly wrong.
Co-authored-by: Hanzo Dev <[email protected]>
22 lines
782 B
TypeScript
22 lines
782 B
TypeScript
/**
|
|
* Registers @hanzo/gui's v5 config with the type system, so the shorthand style
|
|
* props this app is written in (`items` / `justify` / `minH` / `self` / `rounded`
|
|
* / `bg` …) resolve to their concrete types.
|
|
*
|
|
* The v5 config sets `onlyShorthandStyleProps`, so the shorthands ARE the API —
|
|
* without this augmentation TypeScript sees only the base React Native props and
|
|
* every one of them reads as an unknown prop. Ambient + type-only.
|
|
*/
|
|
import type { createGui } from '@hanzo/gui'
|
|
import type { defaultConfig } from '@hanzogui/config/v5'
|
|
|
|
type Conf = ReturnType<typeof createGui<typeof defaultConfig>>
|
|
|
|
declare module '@hanzogui/web' {
|
|
interface GuiCustomConfig extends Conf {}
|
|
}
|
|
|
|
declare module '@hanzogui/core' {
|
|
interface GuiCustomConfig extends Conf {}
|
|
}
|