[Perf - part 1] Hoist service config query (#8812)

This commit is contained in:
Samuel Newman
2025-08-14 01:13:51 +03:00
committed by GitHub
parent b2c56cbd6d
commit 7a334362ae
12 changed files with 119 additions and 88 deletions
+20 -2
View File
@@ -21,6 +21,8 @@ TrendingContext.displayName = 'TrendingContext'
const LiveNowContext = createContext<LiveNowContext | null>(null)
LiveNowContext.displayName = 'LiveNowContext'
const CheckEmailConfirmedContext = createContext<boolean | null>(null)
export function Provider({children}: {children: React.ReactNode}) {
const langPrefs = useLanguagePrefs()
const {data: config, isLoading: isInitialLoad} = useServiceConfigQuery()
@@ -61,10 +63,16 @@ export function Provider({children}: {children: React.ReactNode}) {
const liveNow = useMemo<LiveNowContext>(() => config?.liveNow ?? [], [config])
// probably true, so default to true when loading
// if the call fails, the query will set it to false for us
const checkEmailConfirmed = config?.checkEmailConfirmed ?? true
return (
<TrendingContext.Provider value={trending}>
<LiveNowContext.Provider value={liveNow}>
{children}
<CheckEmailConfirmedContext.Provider value={checkEmailConfirmed}>
{children}
</CheckEmailConfirmedContext.Provider>
</LiveNowContext.Provider>
</TrendingContext.Provider>
)
@@ -78,7 +86,7 @@ export function useLiveNowConfig() {
const ctx = useContext(LiveNowContext)
if (!ctx) {
throw new Error(
'useLiveNowConfig must be used within a LiveNowConfigProvider',
'useLiveNowConfig must be used within a ServiceConfigManager',
)
}
return ctx
@@ -88,3 +96,13 @@ export function useCanGoLive(did?: string) {
const config = useLiveNowConfig()
return !!config.find(cfg => cfg.did === did)
}
export function useCheckEmailConfirmed() {
const ctx = useContext(CheckEmailConfirmedContext)
if (ctx === null) {
throw new Error(
'useCheckEmailConfirmed must be used within a ServiceConfigManager',
)
}
return ctx
}