Files
zeekay 9c4fa265ae Team Roster — a searchable team directory on Hanzo
Vite + React 19 + @hanzo/gui + @hanzo/iam + @hanzo/base, forked from
hanzo-starter (identical provider stack, vite config, auth + deploy contract).

- one org-scoped people(name,role,team,email,avatar,bio) Base collection
- three views: directory grid (avatar cards + quick search) / person profile / edit
- friendly light surface built entirely from @hanzo/gui primitives
- PKCE sign-in via hanzo.id; useQuery/useMutation carry the IAM bearer token
2026-07-21 13:27:02 -07:00

35 lines
1.3 KiB
TypeScript

import { defineConfig } from 'vite'
import react from '@vitejs/plugin-react'
/**
* Hanzo starter — Vite config.
*
* @hanzo/gui is the Tamagui line: its runtime resolves styles against
* react-native-web. The IN-BROWSER builder runtime can't do this, which is
* exactly why a real-stack template ships as a real repo built here. Three
* things make @hanzo/gui compile + render under plain Vite (no Tamagui compiler,
* no `one`, no Expo — the optimizer is a perf pass, not a correctness one):
* 1. alias `react-native` -> `react-native-web` (gui imports RN primitives),
* 2. define `process.env.TAMAGUI_TARGET` / `NODE_ENV` / `__DEV__`
* (Tamagui core reads these; Vite doesn't shim `process.env` for the client),
* 3. dedupe react / react-dom / react-native-web to one copy.
*/
export default defineConfig(({ mode }) => {
const dev = mode !== 'production'
return {
plugins: [react()],
define: {
'process.env.TAMAGUI_TARGET': JSON.stringify('web'),
'process.env.NODE_ENV': JSON.stringify(dev ? 'development' : 'production'),
__DEV__: JSON.stringify(dev),
},
resolve: {
alias: { 'react-native': 'react-native-web' },
dedupe: ['react', 'react-dom', 'react-native-web'],
},
optimizeDeps: {
include: ['@hanzo/gui', '@hanzogui/config', 'react-native-web'],
},
}
})