Перейти к основному содержимому

MineflowProvider

@mineflow/client-react


@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

ParameterTypeDescription
propsMineflowProviderPropsКонфигурация провайдера (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>