Files
Will Binns-SmithandGitHub 94b246469e next.config.ts: Implement compiler.defineServer for server-only constants (#79225)
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.
2025-05-19 12:25:46 -07:00

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}</>
}