> ## Documentation Index
> Fetch the complete documentation index at: https://docs.activeviam.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Context providers

## ClientsProvider

React Context Provider, useful to provide clients. Allows underlying Components to communicate with their target server(s).

```jsx theme={"languages":{"custom":["/engine/python-sdk/0.9/languages/pycon.tmLanguage.json"]}}
<ClientsProvider value={clients}>{children}</ClientsProvider>
```

## DataModelClickListenersProvider

React Context provider for the listeners to data model tree clicks.

An `initialValue` prop can optionally be passed, containing the listeners provided through the context instance. If it is not passed, the sets of listeners will initially be empty.

```jsx theme={"languages":{"custom":["/engine/python-sdk/0.9/languages/pycon.tmLanguage.json"]}}
<DataModelClickListenersProvider value={dataModelClickListeners}>
  {children}
</DataModelClickListenersProvider>
```

## IsPresentingProvider

Provides whether the user has entered presentation mode. Allows the underlying Components to know whether they should show edition capabilities.

```jsx theme={"languages":{"custom":["/engine/python-sdk/0.9/languages/pycon.tmLanguage.json"]}}
<IsPresentingProvider value={isPresenting}>{children}</IsPresentingProvider>
```

## JwtProvider

React Context Provider, providing the JWT allowing to authenticate the communication with the servers.

```jsx theme={"languages":{"custom":["/engine/python-sdk/0.9/languages/pycon.tmLanguage.json"]}}
<JwtProvider value={jwt}>{children}</JwtProvider>
```

## LogoutProvider

React Context Provider, providing a callback to logout the user.

```jsx theme={"languages":{"custom":["/engine/python-sdk/0.9/languages/pycon.tmLanguage.json"]}}
<LogoutProvider value={logout}>{children}</LogoutProvider>
```

## ModalsProvider

React context provider that provides an `openModal` and a `closeModal` function that allow to imperatively open and close modals registered through the `modals` prop. The provided functions can be accessed through the [useModal](hooks#usemodal) hook.

Note: in most cases, you do <strong>not</strong> need this API, and you can use a regular declarative [\<Modal />](https://ant.design/components/modal). This imperative API is useful when the modal lifecycle needs to be decoupled from that of its trigger, for example when opening a modal through a context menu item.

```jsx theme={"languages":{"custom":["/engine/python-sdk/0.9/languages/pycon.tmLanguage.json"]}}
<ModalsProvider value={modals}>{children}</ModalsProvider>
```

## PluginsProvider

Plugins Context provider. Necessary to define the widgets that can be displayed as well as all other types of plugins.

```jsx theme={"languages":{"custom":["/engine/python-sdk/0.9/languages/pycon.tmLanguage.json"]}}
<PluginsProvider value={plugins}>{children}</PluginsProvider>
```

## RequestInitProvider

React context provider for requestInit passed to all HTTP requests made by [ContentClient](types#contentclient) and [AtotiClient](types#atoticlient). See [https://developer.mozilla.org/en-US/docs/Web/API/RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/RequestInit).

```jsx theme={"languages":{"custom":["/engine/python-sdk/0.9/languages/pycon.tmLanguage.json"]}}
<RequestInitProvider value={requestInit}>{children}</RequestInitProvider>
```

## ThemeProvider

Theme Context provider. Accepts a partial [Theme](types#theme) and does the following things: - adds defaults where needed to provide a full theme. - generates the Ant Design theme from it, and passes it to `antd`'s `<ConfigProvider />`. - adds styling to the descendant of this provider.

```jsx theme={"languages":{"custom":["/engine/python-sdk/0.9/languages/pycon.tmLanguage.json"]}}
<ThemeProvider value={theme}>{children}</ThemeProvider>
```

## UserNamesProvider

React Context Provider, useful to provide the [UserName](types#username)s. Allows underlying components to access the provided usernames.

```jsx theme={"languages":{"custom":["/engine/python-sdk/0.9/languages/pycon.tmLanguage.json"]}}
<UserNamesProvider value={userNames}>{children}</UserNamesProvider>
```

## UserProvider

React Context Provider, useful to provide the current [User](types#user). Allows underlying components to access the current user's information.

```jsx theme={"languages":{"custom":["/engine/python-sdk/0.9/languages/pycon.tmLanguage.json"]}}
<UserProvider value={user}>{children}</UserProvider>
```

## UserRolesProvider

React Context Provider, useful to provide the [UserRole](types#userrole)s. Allows underlying components to access the provided user roles.

```jsx theme={"languages":{"custom":["/engine/python-sdk/0.9/languages/pycon.tmLanguage.json"]}}
<UserRolesProvider value={userRoles}>{children}</UserRolesProvider>
```

## WebsocketHeadersProvider

Allows to provide headers to be set on "REGISTER" and "UPDATE" websocket messages sent to Atoti Server and triggered by `useQueryResult`.

```jsx theme={"languages":{"custom":["/engine/python-sdk/0.9/languages/pycon.tmLanguage.json"]}}
<WebsocketHeadersProvider value={websocketHeaders}>
  {children}
</WebsocketHeadersProvider>
```
