@botonic/react
Version:
Build Chatbots using React
28 lines • 1.95 kB
JavaScript
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import { useContext } from 'react';
import { ROLES, WEBCHAT } from '../../constants';
import { resolveImage } from '../../util/environment';
import { WebchatContext } from '../../webchat/context';
import { StyledTriggerButton, TriggerImage, UnreadMessagesCounter, } from './styles';
export const TriggerButton = () => {
const { webchatState, getThemeProperty, toggleWebchat } = useContext(WebchatContext);
const getTriggerImage = () => {
const image = getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.triggerButtonImage, undefined);
if (!image) {
webchatState.theme.triggerButton.image = WEBCHAT.DEFAULTS.LOGO;
return null;
}
return image;
};
const triggerButtonImage = getTriggerImage();
const triggerButtonStyle = getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.triggerButtonStyle);
const notificationsTriggerButtonEnabled = getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.notificationsTriggerButtonEnabled);
const notificationsEnabled = getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.notificationsEnabled, notificationsTriggerButtonEnabled);
const CustomTriggerButton = getThemeProperty(WEBCHAT.CUSTOM_PROPERTIES.customTrigger);
const handleClick = (event) => {
toggleWebchat(true);
event.preventDefault();
};
return (_jsxs("div", Object.assign({ onClick: handleClick }, { children: [webchatState.numUnreadMessages !== 0 && notificationsEnabled && (_jsx(UnreadMessagesCounter, Object.assign({ className: 'trigger-notifications' }, { children: webchatState.numUnreadMessages }))), CustomTriggerButton ? (_jsx(CustomTriggerButton, {})) : (_jsx(StyledTriggerButton, Object.assign({ role: ROLES.TRIGGER_BUTTON, style: triggerButtonStyle }, { children: triggerButtonImage && (_jsx(TriggerImage, { src: resolveImage(triggerButtonImage) })) })))] })));
};
//# sourceMappingURL=index.js.map