MineflowProvider
@mineflow/client-react / MineflowProvider
Function: MineflowProvider()
function MineflowProvider(props: MineflowProviderProps): Element;
Defined in: client-react/src/provider.tsx:81
Корневой провайдер SDK. Строит аутентифицированный fetch ОДИН раз и переиспользует его и для REST-клиента, и для SSE-фидов. TanStack Query + контекст. Работает в web и React Native (react-dom не требуется).
Транспорт (authFetch/rest) изолирован от смены roles: его пересоздание
роняет SSE-подписку (useNotificationFeed завязан на authFetch), а смена
ролей не должна реконнектить стрим. roles сравниваются по содержимому
(rolesSignature), поэтому inline-литерал не вызывает лишних перестроений.
NB: tokenProvider/generateId сравниваются по ссылке — передавайте
стабильные (создавайте адаптер один раз вне рендера), иначе транспорт
пересоберётся и SSE переподключится.
Parameters
| Parameter | Type | Description |
|---|---|---|
props | MineflowProviderProps | Конфигурация провайдера (MineflowProviderProps). |
Returns
Element
Поддерево, обёрнутое в QueryClientProvider + контекст SDK.
Example
const tokenProvider = new KeycloakTokenProvider({ keycloak }); // один раз вне рендера
<MineflowProvider
baseUrl={import.meta.env.VITE_API_BASE}
tokenProvider={tokenProvider}
generateId={() => crypto.randomUUID()}
roles={tokenProvider.getRoles()}
>
{children}
</MineflowProvider>