UNPKG

@botonic/react

Version:

Build Chatbots using React

28 lines 1.95 kB
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