23 lines
703 B
TypeScript
23 lines
703 B
TypeScript
import React from 'react'
|
|
import { getDynamicConfig_BLOCKS_ON_INIT } from '../services/analytics/growthbook.js'
|
|
|
|
/**
|
|
* React hook for dynamic config values.
|
|
* Returns the default value initially, then updates when the config is fetched.
|
|
*/
|
|
export function useDynamicConfig<T>(configName: string, defaultValue: T): T {
|
|
const [configValue, setConfigValue] = React.useState<T>(defaultValue)
|
|
|
|
React.useEffect(() => {
|
|
if (process.env.NODE_ENV === 'test') {
|
|
// Prevents a test hang when using this hook in tests
|
|
return
|
|
}
|
|
void getDynamicConfig_BLOCKS_ON_INIT<T>(configName, defaultValue).then(
|
|
setConfigValue,
|
|
)
|
|
}, [configName, defaultValue])
|
|
|
|
return configValue
|
|
}
|