-
Notifications
You must be signed in to change notification settings - Fork 13
/
ActionProvider.jsx
95 lines (86 loc) · 2.55 KB
/
ActionProvider.jsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
class ActionProvider {
constructor(createChatBotMessage, setStateFunc, createClientMessage) {
this.createChatBotMessage = createChatBotMessage;
this.setState = setStateFunc;
this.createClientMessage = createClientMessage;
}
//method for add message in our chatbot
addMessageToBotState = (messages) => {
if (Array.isArray(messages)) {
this.setState((state) => ({
...state,
messages: [...state.messages, ...messages],
}));
} else {
this.setState((state) => ({
...state,
messages: [...state.messages, messages],
}));
}
};
//simple greeting which return simple message
Greeting = () => {
const message = this.createChatBotMessage(`hii`, {
withAvatar: true,
});
this.addMessageToBotState(message);
};
//use tools widget, return button and action doing
Tools = () => {
const message = this.createChatBotMessage(
`we provides this much features`,
{
withAvatar: true,
widget: "Tools",
}
);
this.addMessageToBotState(message);
};
//for weather widget, API testing and fetch data return current weather info of city using API
WeatherInfoHandle = () => {
const message = this.createChatBotMessage(
`enter your city name to know weather if your city`,
{
withAvatar: true,
widget: "WeatherInfo",
}
);
this.addMessageToBotState(message);
};
//for enrollment no widget , use of form and submission of event
EnrollmentNumber = () => {
const message = this.createChatBotMessage(
`enter your information for generate enrollment no.`,
{
withAvatar: true,
widget: "EnrollmentNo",
}
);
this.addMessageToBotState(message);
};
//display list using help of states array
WebHandler = () => {
const messages = this.createChatBotMessage(`cources for web development:`, {
withAvatar: true,
widget: "WebDevelopment",
});
this.addMessageToBotState(messages);
};
// display list using help of data array provided in widget
SoftwareHandler = () => {
const messages = this.createChatBotMessage(
`cources for software development:`,
{ withAvatar: true, widget: "SoftwareDevelopment" }
);
this.addMessageToBotState(messages);
};
//default handler if you not found any mathes
handleDefault = () => {
const message = this.createChatBotMessage("How can I help?", {
withAvatar: true,
widget: "Tools",
});
this.addMessageToBotState(message);
};
}
export default ActionProvider;