30 lines
997 B
TypeScript
30 lines
997 B
TypeScript
"use client";
|
|
|
|
import type { ReactNode } from "react";
|
|
|
|
import { FunnelProvider } from "@/lib/funnel/FunnelProvider";
|
|
import { UnleashProvider } from "./UnleashProvider";
|
|
|
|
interface AppProvidersProps {
|
|
children: ReactNode;
|
|
}
|
|
|
|
/**
|
|
* Корневой Provider приложения
|
|
*
|
|
* ВАЖНО: UnleashAnalyticsInitializer перемещен в FunnelUnleashWrapper
|
|
* чтобы гарантировать что impression listener готов ДО загрузки флагов
|
|
*
|
|
* Структура:
|
|
* 1. UnleashProvider (FlagProvider) - инициализация Unleash Client (глобально)
|
|
* 2. FunnelProvider - управление состоянием воронки
|
|
* 3. FunnelUnleashWrapper (в layout) - подписка на impression события + загрузка флагов
|
|
*/
|
|
export function AppProviders({ children }: AppProvidersProps) {
|
|
return (
|
|
<UnleashProvider>
|
|
<FunnelProvider>{children}</FunnelProvider>
|
|
</UnleashProvider>
|
|
);
|
|
}
|