- You can try the communication tool here: https://nightborn-be.github.io/signum
- Or on our website for a production-version: https://nightborn.be
npm install --save @nightborn/signum
yarn add @nightborn/signum
For the configuration of the UI we created a little interface to generate a config.js file to customize the theme. https://nightborn.be/lab/signum
For the options it's a pretty straightforward structure.
- First create the container object:
option: {
title: 'Hello there !',
subTitle: 'How can I help you?',
message: 'How can I help you?',
name: 'Hello there'
}
- Add the array of options (If you want options)
option: {
title: 'Hello there !',
subTitle: 'How can I help you?',
message: 'How can I help you?',
name: 'Hello there',
options: [
{
title: 'Hello there !',
message: 'You chose option A?',
name: 'Option A',
options: [
{
title: 'Hello there !',
message: 'You chose option AA?',
name: 'Option AA',
},
{
title: 'Hello there !',
message: 'You chose option AB?',
name: 'Option AB',
}
]
},
{
title: 'Hello there !',
message: 'You chose option B?',
name: 'Option B',
}
]
}
- In order for the back-button to appear, you should leave blanc the subTitle attribute of the object.
- If you're at a leaf of your option-tree, please leave empty the options attribute and the messaging body of Signum will appear.
import React from 'react'
import Chat from '@nightborn/signum'
import '@nightborn/signum/dist/index.css';
const defaultProps = {
option: {
title: 'Hello there !',
subTitle: 'How can I help you?',
message: 'How can I help you?',
name: 'Hello there',
options: [
{
title: 'Hello there !',
message: 'You chose option A?',
name: 'Option A',
options: [
{
title: 'Hello there !',
message: 'You chose option AA?',
name: 'Option AA',
},
{
title: 'Hello there !',
message: 'You chose option AB?',
name: 'Option AB',
}
]
},
{
title: 'Hello there !',
message: 'You chose option B?',
name: 'Option B',
}
]
},
config: {
openByDefault: false,
avatarIcon: require('./assets/chat_avatar.png'),
mainColor: 'linear-gradient(90deg, #406321 0%, #283E15 100%)',
secondaryColor: 'linear-gradient(90deg, #406321 0%, #283E15 100%)',
sendButtonColor: '#0074CE',
finalButtonColor: "linear-gradient(90deg, #406321 0%, #283E15 100%)",
emailPlaceholder: 'Please fill in your e-mail',
messagePlaceholder: 'Please provide us some information',
finalTitle: 'Thank you.',
finalSubTitle: "We'll be in touch!",
finalButtonText: "Continue",
handleFinalButtonClicked: () => { },
handleSendClicked: (information) => console.log(information),
}
}
const App = () => {
return (
<Chat {...defaultProps} />
)
}
export default App;
In the handleSendClicked function you'll receive following structure
interface IChatBodyInformation {
email: string,
message: string,
steps: IOption[],
option: IOption
}
You can then use the received information to send it to EMAILJS, your backend, ... any solution in which you want to track the information given by your website visitors.
MIT © m-Nightly