Chatwoot/app/javascript/packs/sdk.js
Sojan Jose b0950d6880
Feature: Rich Message Types (#610)
Co-authored-by: Pranav Raj S <pranavrajs@gmail.com>
Co-authored-by: Nithin David Thomas <webofnithin@gmail.com>
2020-04-10 16:42:37 +05:30

61 lines
1.5 KiB
JavaScript
Executable file

import Cookies from 'js-cookie';
import { IFrameHelper } from '../sdk/IFrameHelper';
const runSDK = ({ baseUrl, websiteToken }) => {
const chatwootSettings = window.chatwootSettings || {};
window.$chatwoot = {
baseUrl,
hasLoaded: false,
hideMessageBubble: chatwootSettings.hideMessageBubble || false,
isOpen: false,
position: chatwootSettings.position || 'right',
websiteToken,
toggle() {
IFrameHelper.events.toggleBubble();
},
setUser(identifier, user) {
if (typeof identifier === 'string' || typeof identifier === 'number') {
window.$chatwoot.identifier = identifier;
window.$chatwoot.user = user || {};
IFrameHelper.sendMessage('set-user', {
identifier,
user: window.$chatwoot.user,
});
} else {
throw new Error('Identifier should be a string or a number');
}
},
setLabel(label = '') {
IFrameHelper.sendMessage('set-label', { label });
},
removeLabel(label = '') {
IFrameHelper.sendMessage('remove-label', { label });
},
reset() {
if (window.$chatwoot.isOpen) {
IFrameHelper.events.toggleBubble();
}
Cookies.remove('cw_conversation');
const iframe = IFrameHelper.getAppFrame();
iframe.src = IFrameHelper.getUrl({
baseUrl: window.$chatwoot.baseUrl,
websiteToken: window.$chatwoot.websiteToken,
});
},
};
IFrameHelper.createFrame({
baseUrl,
websiteToken,
});
};
window.chatwootSDK = {
run: runSDK,
};