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.