diff --git a/packages/tuono/src/shared/DevResources.tsx b/packages/tuono/src/shared/DevResources.tsx index 7808d52e..50697143 100644 --- a/packages/tuono/src/shared/DevResources.tsx +++ b/packages/tuono/src/shared/DevResources.tsx @@ -1,12 +1,17 @@ import type { JSX } from 'react' -import { useTuonoContextServerPayload } from './TuonoContext' +import type { TuonoConfigServer } from '../config' const VITE_PROXY_PATH = '/vite-server' const DEFAULT_SERVER_CONFIG = { host: 'localhost', origin: null, port: 3000 } -export const DevResources = (): JSX.Element => { - const { devServerConfig } = useTuonoContextServerPayload() +interface DevResourcesProps { + devServerConfig?: TuonoConfigServer +} + +export const DevResources = ({ + devServerConfig, +}: DevResourcesProps): JSX.Element => { const { host, origin, port } = devServerConfig ?? DEFAULT_SERVER_CONFIG const viteBaseUrl = diff --git a/packages/tuono/src/shared/ProdResources.tsx b/packages/tuono/src/shared/ProdResources.tsx index c28e2976..79900452 100644 --- a/packages/tuono/src/shared/ProdResources.tsx +++ b/packages/tuono/src/shared/ProdResources.tsx @@ -1,10 +1,14 @@ import type { JSX } from 'react' -import { useTuonoContextServerPayload } from './TuonoContext' - -export const ProdResources = (): JSX.Element => { - const { cssBundles, jsBundles } = useTuonoContextServerPayload() +interface ProdResourcesProps { + jsBundles: Array | null + cssBundles: Array | null +} +export const ProdResources = ({ + cssBundles, + jsBundles, +}: ProdResourcesProps): JSX.Element => { return ( <> {cssBundles?.map((cssHref) => ( diff --git a/packages/tuono/src/shared/TuonoScripts.tsx b/packages/tuono/src/shared/TuonoScripts.tsx index 0e10c571..9e0dfb47 100644 --- a/packages/tuono/src/shared/TuonoScripts.tsx +++ b/packages/tuono/src/shared/TuonoScripts.tsx @@ -12,8 +12,15 @@ export function TuonoScripts(): JSX.Element { return ( <> - {serverPayload.mode === 'Dev' && } - {serverPayload.mode === 'Prod' && } + {serverPayload.mode === 'Dev' && ( + + )} + {serverPayload.mode === 'Prod' && ( + + )} ) } diff --git a/packages/tuono/src/types.ts b/packages/tuono/src/types.ts index c21b7216..dca6021a 100644 --- a/packages/tuono/src/types.ts +++ b/packages/tuono/src/types.ts @@ -1,5 +1,7 @@ import type { ReactNode } from 'react' +import type { TuonoConfigServer } from './config' + /** * Provided by the rust server and used in the ssr env * @see tuono-router {@link ServerInitialLocation} @@ -13,27 +15,11 @@ export interface ServerPayloadLocation { /** * @see crates/tuono_lib/src/payload.rs */ -export interface ServerPayload { - mode: 'Prod' | 'Dev' - +export type ServerPayload = { location: ServerPayloadLocation data: TData - - /** Available only on 'Prod' mode */ - jsBundles: Array | null - cssBundles: Array | null - - /** Available only on 'Dev' mode */ - devServerConfig?: { - port: number - origin: string | null - host: string - } -} - -/* the above type could be refined with an union like this -( +} & ( | { mode: 'Prod' jsBundles: Array @@ -41,13 +27,9 @@ export interface ServerPayload { } | { mode: 'Dev' - devServerConfig: { - port: number - host: string - } + devServerConfig?: TuonoConfigServer } ) -*/ export type TuonoRouteProps = | {