mirror of
https://github.com/hanzoai/next.js.git
synced 2026-09-24 17:00:51 +00:00
Like `compiler.define`, this allows users to create compile-time constants both Turbopack and webpack from a single API. `compiler.defineServer` instead only makes these constants available for server or edge environments, not the client environment.
31 lines
769 B
JavaScript
31 lines
769 B
JavaScript
/* eslint-disable no-undef */
|
|
'use client'
|
|
|
|
import { useState, useEffect } from 'react'
|
|
|
|
export function ClientValue() {
|
|
const [serverVar, setServerVar] = useState('<loading>')
|
|
// Use `useEffect` to only evaluate this in the actual browser as client
|
|
// components are still SSRed
|
|
useEffect(() => {
|
|
setServerVar(
|
|
typeof MY_SERVER_VARIABLE === 'string' ? MY_SERVER_VARIABLE : 'not set'
|
|
)
|
|
}, [setServerVar])
|
|
|
|
return <>{serverVar}</>
|
|
}
|
|
|
|
export function ClientExpr() {
|
|
const [serverExpr, setServerExpr] = useState('<loading>')
|
|
useEffect(() => {
|
|
setServerExpr(
|
|
typeof process.env.MY_MAGIC_SERVER_EXPR === 'string'
|
|
? process.env.MY_MAGIC_SERVER_EXPR
|
|
: 'not set'
|
|
)
|
|
}, [setServerExpr])
|
|
|
|
return <>{serverExpr}</>
|
|
}
|