Getting Started with the KendoReact Conversational UI
Premium

This guide provides essential information about using the KendoReact Conversational UI package and Chat component—you will learn how to install the Conversational UI package, add a Chat component to your project, style the component, and activate your license.

ninja-iconThe Conversational UI is part of KendoReact premium, an enterprise-grade UI library with 120+ free and premium components for building polished, performant apps. Test-drive all features with a free 30-day trial.Start Free Trial

After completing this guide, you will be able to reproduce the following example.

Change Theme
Theme
Loading ...

Before You Begin

sh
npm create vite@latest my-app -- --template react

This guide requires that you have basic knowledge of React and TypeScript, and that you have already created a blank React project.

You can speed up the development of your KendoReact application with the Kendo UI Template Wizard for Visual Studio Code.

Install the Component

sh
npm i @progress/kendo-react-conversational-ui

Importing the Component

After installing the package, import the Chat component in the React App. To enable the sending of messages, also import the Message entity and the ChatMessageSendEvent.

In the src/App.js file of your React project, import the Chat component from the Conversational UI package.

jsx
// ES2015 module syntax
import { Chat } from "@progress/kendo-react-conversational-ui";
jsx
// CommonJS format
const { Chat } = require('@progress/kendo-react-conversational-ui');

Using the Component

  1. Add the required Chat entities: a user, bot, and initialMessages.
jsx
const user = {
    id: 1,
    avatarUrl: (import.meta.env.VITE_REACT_DEMOS_BASE_URL || '') + 'assets/dropdowns/contacts/RICSU.jpg',
    avatarAltText: 'KendoReact Conversational UI RICSU'
};

const bot = { id: 0 };

const initialMessages = [
    {
        author: bot,
        timestamp: new Date(),
        text: 'Hello, This is the KendoReact Chat component.'
    }
];

For more information about the available entities and binding them to data, see the Data Binding article.

  1. Set the component messages and configure the updating of the messages collection in the state.
jsx
const App = () => {
  const [messages, setMessages] = React.useState(initialMessages);

  const addNewMessage = (event) => {
    setMessages([...messages, event.message]);
  };
  ...
  1. Add the component's markup to the src/App.js file in your project and set the user, messages, and the adding of messages. Optionally, configure a placeholder text and the width of the Chat component.
jsx
return (
    <div>
        <Chat
            user={user}
            messages={messages}
            onMessageSend={addNewMessage}
            placeholder={'Type a message...'}
            width={400}
        />
    </div>
);
  1. To style the Chat, install and import the Default theme, which is one of the three beautiful themes for KendoReact.

    2.1. Install the Default theme package.

    sh
    npm i @progress/kendo-theme-default

    2.2. Import the CSS file from the package in src/App.js. Add this import before your existing App.css import.

    jsx
    import '@progress/kendo-theme-default/dist/all.css';
  2. Build and run the application by typing the following command in the root folder of your project:

    sh
    npm start
  3. Navigate to http://localhost:3000 to see the KendoReact Chat component on the page.

Activating Your License Key

Using any of the UI components in the KendoReact library requires either a commercial license key or an active trial license key.

Follow the instructions on the KendoReact My License page to activate your trial or commercial license. You can skip this step if your application already contains a KendoReact license file.

Dependencies

The Conversational UI package requires you to install the following peer dependencies in your application:

Package NameDescription
react 16.8.2*Contains the functionality necessary to define React components.
react-domContains the React renderer for the web.
@progress/kendo-licensingContains the internal infrastructure related to licensing.
@progress/kendo-react-buttonsContains the KendoReact Buttons components.
@progress/kendo-react-intlContains the KendoReact Internationalization package that applies the desired cultures by providing services and pipes for the parsing and formatting of dates and numbers.
@progress/kendo-svg-iconsContains the KendoReact SVG icons.

Learning Resources