Skip to main content
Version: v4

Form Message

The FormMessage class is used to create an interactive form message that can be sent via CometChat. It extends the InteractiveMessage class from CometChat.

Constructor

NameTypeDescription
receiverIdstringThe ID of the receiver
receiverTypestringThe type of the receiver
titlestringThe title of the form
formFieldsArray<ElementEntity>The fields of the form
submitElementButtonElementThe submit button of the form

Class Usage

How to create an instance of the FormMessage class:

// Create an instance of APIAction
let apiAction = new APIAction("https://example.com/api", "POST");

// Create an instance of ButtonElement
let submitButton = new ButtonElement("1", apiAction, "Submit");

// Create an instance of TextInput
let nameInput = new TextInput("1", "Please enter your name");
// Create a new instance of FormMessage

let formMessage = new FormMessage(
"receiverId",
CometChat.RECEIVER_TYPE.USER,
"Title",
[nameInput],
submitButton
);

Key Properties and Methods

Goal Completion Text

The setGoalCompletionText() method sets the goal completion text of the form.

let formMessage = new FormMessage(
"receiverId",
CometChat.RECEIVER_TYPE.USER,
"Title",
[nameInput],
submitButton
);
formMessage.setGoalCompletionText("Goal completed");

Creating a FormMessage from JSON

The static fromJSON() method creates an instance of FormMessage from a provided JSON object.

// Create a FormMessage from JSON
let json = {
receiver: "receiverId",
receiverType: CometChat.RECEIVER_TYPE.USER,
type: "form",
data: {
interactiveData: {
title: "Title",
formFields: [],
submitElement: new ButtonElement(
"1",
new APIAction("https://example.com/api", "POST"),
"Submit"
),
},
},
};

let formMessageFromJSON = FormMessage.fromJSON(json);

Example

Below is an example that showcases the creation and manipulation of an instance of FormMessage:

// Create an instance of APIAction

let apiAction = new APIAction("https://example.com/api", "POST");

// Create an instance of ButtonElement

let submitButton = new ButtonElement("1", apiAction, "Submit");

// Create a new instance of FormMessage

let formMessage = new FormMessage(
"receiverId",
CometChat.RECEIVER_TYPE.USER,
"customType",
"Title",
[],
submitButton
);

formMessage.setGoalCompletionText("Goal completed");

// Create a FormMessage from JSON

let json = {
receiver: "receiverId",
receiverType: CometChat.RECEIVER_TYPE.USER,
type: "form",
data: {
interactiveData: {
title: "Title",
formFields: [],
submitElement: new ButtonElement(
"1",
new APIAction("https://example.com/api", "POST"),
"Submit"
),
},
},
};

let formMessageFromJSON = FormMessage.fromJSON(json);

In this example, a new instance of the FormMessage class is created. The title, form fields, submit element, and goal completion text are retrieved, updated, and retrieved again. Then a new FormMessage instance is made from a JSON object, and the title is retrieved and logged.