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

MineflowProvider

@mineflow/client-react


@mineflow/client-react / provider / MineflowProvider

Function: MineflowProvider()

function MineflowProvider(props: MineflowProviderProps): Element;

Defined in: client-react/src/provider.tsx:96

Корневой провайдер SDK. Строит аутентифицированный fetch ОДИН раз для REST-клиента. TanStack Query + контекст. Работает в web и React Native (react-dom не требуется). Live-доставку (Centrifugo, ADR-0054) держит отдельный RealtimeProvider — оборачивается ВНУТРИ этого провайдера.

Транспорт (authFetch/rest) изолирован от смены roles: адресация realtime считается сервером по токену (каналы не зависят от UI-ролей), поэтому смена набора ролей не должна пересоздавать транспорт. roles сравниваются по содержимому (rolesSignature), поэтому inline-литерал не вызывает лишних перестроений.

NB: tokenProvider/generateId сравниваются по ссылке — передавайте стабильные (создавайте адаптер один раз вне рендера), иначе транспорт пересоберётся.

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>