Move desktop and e2e into examples/ directory
- desktop/ → examples/django-react-desktop-app/ - e2e/ → examples/django-react-site/ - example/ → examples/django-react-site/backend/ - Update Dockerfile.test, Makefile, playwright config, and django.config.mjs path references Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
// AUTO-GENERATED by mizan - do not edit manually
|
||||
// Regenerate with: npm run schemas
|
||||
//
|
||||
// Server-side functions for SSR hydration.
|
||||
// These run in Next.js server components/layouts.
|
||||
|
||||
import type { currentUserOutput, greetOutput } from './generated.mizan'
|
||||
|
||||
// ============================================================================
|
||||
// Hydration Types
|
||||
// ============================================================================
|
||||
|
||||
/** Typed hydration data for SSR */
|
||||
export interface DjangoHydration {
|
||||
currentUser?: currentUserOutput
|
||||
greet?: greetOutput
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// SSR Hydration Helper
|
||||
// ============================================================================
|
||||
|
||||
/**
|
||||
* Fetch hydration data for SSR.
|
||||
*
|
||||
* Call this in your server component:
|
||||
* const hydration = await getDjangoHydration(client)
|
||||
* return <DjangoContext hydration={hydration}>...</DjangoContext>
|
||||
*/
|
||||
export async function getDjangoHydration(
|
||||
client: { request: (method: string, url: string, body?: unknown) => Promise<Response> }
|
||||
): Promise<DjangoHydration> {
|
||||
const hydration: DjangoHydration = {}
|
||||
|
||||
const results = await Promise.allSettled([
|
||||
client.request('POST', '/api/mizan/call/', { fn: 'current_user', args: {} }),
|
||||
client.request('POST', '/api/mizan/call/', { fn: 'greet', args: {} }),
|
||||
])
|
||||
|
||||
if (results[0].status === 'fulfilled') {
|
||||
const data = await (results[0] as PromiseFulfilledResult<Response>).value.json()
|
||||
if (data.error) {
|
||||
console.error('[getDjangoHydration] current_user failed:', data.code, data.message)
|
||||
} else {
|
||||
hydration.currentUser = data.data
|
||||
}
|
||||
} else {
|
||||
console.error('[getDjangoHydration] current_user request failed:', (results[0] as PromiseRejectedResult).reason)
|
||||
}
|
||||
if (results[1].status === 'fulfilled') {
|
||||
const data = await (results[1] as PromiseFulfilledResult<Response>).value.json()
|
||||
if (data.error) {
|
||||
console.error('[getDjangoHydration] greet failed:', data.code, data.message)
|
||||
} else {
|
||||
hydration.greet = data.data
|
||||
}
|
||||
} else {
|
||||
console.error('[getDjangoHydration] greet request failed:', (results[1] as PromiseRejectedResult).reason)
|
||||
}
|
||||
|
||||
return hydration
|
||||
}
|
||||
Reference in New Issue
Block a user