Skip to content

Instantly share code, notes, and snippets.

View FredrikOseberg's full-sized avatar

Fredrik Strand Oseberg FredrikOseberg

View GitHub Profile
class ActionProvider {
// The action provider receives createChatBotMessage which you can use to define the bots response, and
// the setState function that allows for manipulating the bots internal state.
constructor(createChatBotMessage, setStateFunc, createClientMessage) {
this.createChatBotMessage = createChatBotMessage;
this.setState = setStateFunc;
this.createClientMessage = createClientMessage
}
reset = () => {
const fetch = (url, options) => {
// simplified
return new Promise((resolve, reject) => {
const xhr = new XMLHttpRequest()
// ... make request
xhr.onload = () => {
const options = {
status: xhr.status,
statusText: xhr.statusText
// MessageParser starter code
class MessageParser {
constructor(actionProvider, state) {
this.actionProvider = actionProvider;
this.state = state;
}
parse(message) {
console.log(message)
}
import React from "react";
import { createChatBotMessage } from "react-chatbot-kit";
import SingleFlight from './components/SingleFlight/SingleFlight'
const botName = "Somebot";
const config = {
// Defines the chatbot name
botName: botName,
// in config
...
import Overview from "../components/widgets/Overview/Overview";
import MessageParser from "../components/widgets/MessageParser/MessageParser";
import ActionProviderDocs from "../components/widgets/ActionProvider/ActionProviderDocs";
const config = {
...,
createChatBotMessage("Ok, one moment", {
widget: "overview"
})
widgetName: The name to which you will refer to the widget when you call createChatBotMessage
widgetFunc: A function which returns the component you want to render. It needs to take in props and spread
the props out over the given component: (props) => <Component {...props} />
props: An array of props you want to pass to the component
mapStateToProps: An list of properties from configuration state property that you want this component to receive as props.
import Overview from "../components/widgets/Overview/Overview";
import MessageParserDocs from "../components/widgets/docs/MessageParserDocs/MessageParserDocs";
const config = {
...,
state: {
gist: "",
infoBox: "",
},
widgets: [
createChatBotMessage("Thanks, I'll see what I can find", {
widget: "rentalCarResults",
withAvatar: true,
delay: 500
})
import React from "react";
import { createChatBotMessage } from "react-chatbot-kit";
import Overview from "../components/widgets/Overview/Overview";
import MessageParser from "../components/widgets/MessageParser/MessageParser";
import ActionProviderDocs from "../components/widgets/ActionProvider/ActionProviderDocs";
const botName = "DocsBot";
const config = {