Skip to main content
Version: v2.x

UI Overrides

Developers can also override some of the default UI components in the AI chat area with their own React components.

Usage

You can override the JSX of certain UI components by including a custom container component to the AiChat component with your JSX elements inside it.

Example where the default loader spinner is replaced with a custom spinner:

const MyAiChatApp = () => {
const myAdapter = useChatAdapter({ /* Your adapter options */ });
return (
<AiChat adapter={myAdapter}>
<AiChatUI.Loader>
<span className="rounded">Loading 👻</span>
</AiChatUI.Loader>
</AiChat>
);
};

Overrides Available

Below is a list of UI component overrides that are currently supported:


Loader

This enables overriding the loading spinner displayed in 2 locations:

  • Inside the default submit button, when it's in a loading state.
  • Under a message, when it's being loaded from the server or streaming.

Nova Theme Overview

You can override it with your own JSX element by using the AiChatUI.Loader component:

  • Overriding Container: AiChatUI.Loader
  • Usage:
<AiChat adapter={myAdapter}>
<AiChatUI.Loader>
<span className="rounded">Loading 👻</span>
</AiChatUI.Loader>
</AiChat>

Greeting

The Greeting component (previously referred to as the Welcome Message component) is displayed when the chat is first opened, and when the conversation history is empty.

Nova Theme Overview

You can override it with your own JSX element by using the AiChatUI.Greeting component:

  • Overriding Container: AiChatUI.Greeting
  • Usage:
<AiChat adapter={myAdapter}>
<AiChatUI.Greeting>
<span className="rounded">Hello! 👋</span>
</AiChatUI.Greeting>
</AiChat>

Adding More Overrides

We will be adding more customization options and overrides as we receive feedback from the community.
If your project requires more customization options, please let us know:

UI overrides are only supported for the React JS version of NLUX at the moment.