You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
740 B
24 lines
740 B
|
1 month ago
|
/**
|
||
|
|
* Client-only value Hook
|
||
|
|
*
|
||
|
|
* This hook is used to provide different values for server-side rendering (SSR)
|
||
|
|
* and client-side rendering. It's particularly useful for React Native Web
|
||
|
|
* to prevent hydration errors.
|
||
|
|
*
|
||
|
|
* @param server - Value to use during server-side rendering
|
||
|
|
* @param client - Value to use during client-side rendering
|
||
|
|
* @returns The appropriate value based on the rendering context
|
||
|
|
*
|
||
|
|
* @example
|
||
|
|
* ```tsx
|
||
|
|
* // Disable header on server, enable on client
|
||
|
|
* headerShown: useClientOnlyValue(false, true)
|
||
|
|
* ```
|
||
|
|
*/
|
||
|
|
|
||
|
|
// This function is web-only as native doesn't currently support server (or build-time) rendering.
|
||
|
|
export function useClientOnlyValue<S, C>(server: S, client: C): S | C {
|
||
|
|
return client;
|
||
|
|
}
|
||
|
|
|