@memori.ai/memori-react
Version:
[](https://www.npmjs.com/package/@memori.ai/memori-react)  ;
const tslib_1 = require("tslib");
const jsx_runtime_1 = require("react/jsx-runtime");
const react_1 = require("react");
const classnames_1 = tslib_1.__importDefault(require("classnames"));
const Button_1 = tslib_1.__importDefault(require("../ui/Button"));
const MapMarker_1 = tslib_1.__importDefault(require("../icons/MapMarker"));
const SoundDeactivated_1 = tslib_1.__importDefault(require("../icons/SoundDeactivated"));
const Sound_1 = tslib_1.__importDefault(require("../icons/Sound"));
const react_i18next_1 = require("react-i18next");
const Setting_1 = tslib_1.__importDefault(require("../icons/Setting"));
const ShareButton_1 = tslib_1.__importDefault(require("../ShareButton/ShareButton"));
const FullscreenExit_1 = tslib_1.__importDefault(require("../icons/FullscreenExit"));
const Fullscreen_1 = tslib_1.__importDefault(require("../icons/Fullscreen"));
const Refresh_1 = tslib_1.__importDefault(require("../icons/Refresh"));
const Clear_1 = tslib_1.__importDefault(require("../icons/Clear"));
const DeepThought_1 = tslib_1.__importDefault(require("../icons/DeepThought"));
const Group_1 = tslib_1.__importDefault(require("../icons/Group"));
const User_1 = tslib_1.__importDefault(require("../icons/User"));
const Message_1 = tslib_1.__importDefault(require("../icons/Message"));
const Header = ({ className, memori, tenant, position, setShowPositionDrawer, setShowSettingsDrawer, setShowChatHistoryDrawer, setShowKnownFactsDrawer, setShowExpertsDrawer, enableAudio = true, speakerMuted, setSpeakerMuted, hasUserActivatedSpeak = false, showShare = true, showSettings = true, showSpeaker = true, showReload = false, showClear = false, showLogin = true, setShowLoginDrawer, clearHistory, loginToken, user, sessionID, showChatHistory = true, fullScreenHandler, baseUrl, }) => {
const { t } = (0, react_i18next_1.useTranslation)();
const [fullScreenAvailable, setFullScreenAvailable] = (0, react_1.useState)(false);
const [fullScreen, setFullScreen] = (0, react_1.useState)(false);
(0, react_1.useEffect)(() => {
if (document.fullscreenEnabled) {
setFullScreenAvailable(true);
}
}, []);
return ((0, jsx_runtime_1.jsxs)("div", { className: (0, classnames_1.default)('memori-header', className), children: [memori.needsPosition && position && ((0, jsx_runtime_1.jsxs)("div", { className: "memori-header--position", children: [position.latitude !== 0 && position.longitude !== 0 && ((0, jsx_runtime_1.jsx)("span", { className: "memori-header--position-placeName", children: position.placeName })), (0, jsx_runtime_1.jsx)(Button_1.default, { primary: true, shape: "circle", className: "memori-header--button memori-header--button--position", title: t('widget.position') || 'Position', icon: (0, jsx_runtime_1.jsx)(MapMarker_1.default, {}), onClick: () => setShowPositionDrawer(true) })] })), showReload && ((0, jsx_runtime_1.jsx)(Button_1.default, { primary: true, shape: "circle", className: "memori-header--button memori-header--button--reload", title: t('reload') || 'Reload', icon: (0, jsx_runtime_1.jsx)(Refresh_1.default, {}), onClick: () => {
window.location.reload();
} })), showClear && ((0, jsx_runtime_1.jsx)(Button_1.default, { primary: true, shape: "circle", className: "memori-header--button memori-header--button--clear", title: t('clearHistory') || 'Clear chat', icon: (0, jsx_runtime_1.jsx)(Clear_1.default, {}), onClick: clearHistory })), showChatHistory && !!loginToken && ((0, jsx_runtime_1.jsx)(Button_1.default, { primary: true, disabled: !loginToken, shape: "circle", className: "memori-header--button memori-header--button--chat-history", title: t('write_and_speak.chatHistory') || 'Chat history', icon: (0, jsx_runtime_1.jsx)(Message_1.default, {}), onClick: () => setShowChatHistoryDrawer(true) })), fullScreenAvailable && ((0, jsx_runtime_1.jsx)(Button_1.default, { primary: true, shape: "circle", className: "memori-header--button memori-header--button--fullscreen", title: fullScreen
? t('fullscreenExit') || 'Exit fullscreen'
: t('fullscreenEnter') || 'Enter fullscreen', icon: fullScreen ? (0, jsx_runtime_1.jsx)(FullscreenExit_1.default, {}) : (0, jsx_runtime_1.jsx)(Fullscreen_1.default, {}), onClick: fullScreenHandler ||
(() => {
if (!document.fullscreenElement) {
const memoriWidget = document.querySelector('.memori-widget');
if (memoriWidget) {
memoriWidget.style.backgroundColor =
'#FFFFFF';
memoriWidget.requestFullscreen().catch(err => {
console.warn('Error attempting to enable fullscreen:', err);
});
}
setFullScreen(true);
}
else if (document.exitFullscreen) {
const memoriWidget = document.querySelector('.memori-widget');
if (memoriWidget) {
memoriWidget.style.backgroundColor = '';
}
document.exitFullscreen().catch(err => {
console.warn('Error attempting to exit fullscreen:', err);
});
setFullScreen(false);
}
}) })), memori.enableDeepThought && !!loginToken && (user === null || user === void 0 ? void 0 : user.pAndCUAccepted) && ((0, jsx_runtime_1.jsx)(Button_1.default, { primary: !!sessionID && !!hasUserActivatedSpeak, shape: "circle", icon: (0, jsx_runtime_1.jsx)(DeepThought_1.default, {}), className: "memori-header--button memori-header--button--knownfacts", disabled: !hasUserActivatedSpeak || !sessionID, onClick: () => setShowKnownFactsDrawer(true), title: t('knownFacts.title') || 'Known facts' })), memori.enableBoardOfExperts && ((0, jsx_runtime_1.jsx)(Button_1.default, { primary: true, shape: "circle", icon: (0, jsx_runtime_1.jsx)(Group_1.default, {}), className: "memori-header--button memori-header--button--experts", disabled: !hasUserActivatedSpeak || !sessionID, onClick: () => setShowExpertsDrawer(true), title: t('widget.showExpertsInTheBoard') || 'Experts in this board' })), enableAudio && showSpeaker && ((0, jsx_runtime_1.jsx)(Button_1.default, { primary: true, shape: "circle", className: "memori-header--button memori-header--button--speaker", icon: speakerMuted ? (0, jsx_runtime_1.jsx)(SoundDeactivated_1.default, {}) : (0, jsx_runtime_1.jsx)(Sound_1.default, {}), onClick: () => setSpeakerMuted(!speakerMuted), title: t('widget.sound') || 'Sound' })), showSettings && ((0, jsx_runtime_1.jsx)(Button_1.default, { primary: true, shape: "circle", className: "memori-header--button memori-header--button-settings", icon: (0, jsx_runtime_1.jsx)(Setting_1.default, {}), onClick: () => setShowSettingsDrawer(true), title: t('widget.settings') || 'Settings' })), showShare && ((0, jsx_runtime_1.jsx)(ShareButton_1.default, { className: "memori-header--button memori-header--button-share", title: memori.name, memori: memori, sessionID: sessionID, tenant: tenant, showQrCode: true, align: "left", baseUrl: baseUrl })), showLogin && ((0, jsx_runtime_1.jsx)(Button_1.default, { primary: true, shape: "circle", className: "memori-header--button memori-header--button-login", icon: (0, jsx_runtime_1.jsx)(User_1.default, {}), onClick: () => setShowLoginDrawer(true), title: loginToken ? t('login.user') || 'User' : t('login.login') || 'Login' }))] }));
};
exports.default = Header;
//# sourceMappingURL=Header.js.map