@memori.ai/memori-react 8.8.2 → 8.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/dist/components/Header/Header.d.ts +3 -0
- package/dist/components/Header/Header.js +31 -17
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/MemoriWidget/MemoriWidget.js +28 -45
- package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
- package/dist/helpers/tts/useTTS.js +15 -5
- package/dist/helpers/tts/useTTS.js.map +1 -1
- package/esm/components/Header/Header.d.ts +3 -0
- package/esm/components/Header/Header.js +32 -18
- package/esm/components/Header/Header.js.map +1 -1
- package/esm/components/MemoriWidget/MemoriWidget.js +28 -45
- package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
- package/esm/helpers/tts/useTTS.js +15 -5
- package/esm/helpers/tts/useTTS.js.map +1 -1
- package/package.json +1 -1
- package/src/components/Header/Header.tsx +58 -30
- package/src/components/Header/__snapshots__/Header.test.tsx.snap +0 -20
- package/src/components/MemoriWidget/MemoriWidget.tsx +52 -78
- package/src/components/layouts/__snapshots__/Chat.test.tsx.snap +0 -20
- package/src/components/layouts/__snapshots__/FullPage.test.tsx.snap +0 -40
- package/src/components/layouts/__snapshots__/HiddenChat.test.tsx.snap +0 -20
- package/src/components/layouts/__snapshots__/ZoomedFullBody.test.tsx.snap +0 -20
- package/src/helpers/tts/useTTS.ts +23 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
|
+
## [8.8.3](https://github.com/memori-ai/memori-react/compare/v8.8.2...v8.8.3) (2025-10-24)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* add settings button to Totem layout for enhanced user configuration ([31f4d1f](https://github.com/memori-ai/memori-react/commit/31f4d1fe2837fbf5ec433fa9307210e6fc7f8bfc))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Changes
|
|
12
|
+
|
|
13
|
+
* add settings content check and improve fullscreen handling in Header component ([b87f3f4](https://github.com/memori-ai/memori-react/commit/b87f3f4468b07ac0d26cef6217edb4c31b898c59))
|
|
14
|
+
* clean up MemoriWidget and useTTS for improved audio handling and state management ([ad69071](https://github.com/memori-ai/memori-react/commit/ad690719c8c28d1401a0d5743e365b44bc03448f))
|
|
15
|
+
* implement centralized audio playback logic in MemoriWidget ([a31463b](https://github.com/memori-ai/memori-react/commit/a31463b928517c13a74184925ed7433d97ada5dc))
|
|
16
|
+
* optimize settings content check and enhance Header component structure ([320b16e](https://github.com/memori-ai/memori-react/commit/320b16e3d0c6af531d48c17c48c8b3ec3d881655))
|
|
17
|
+
|
|
3
18
|
## [8.8.2](https://github.com/memori-ai/memori-react/compare/v8.8.1...v8.8.2) (2025-10-23)
|
|
4
19
|
|
|
5
20
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Memori, Message, Tenant, Venue, User } from '@memori.ai/memori-api-client/dist/types';
|
|
3
3
|
import memoriApiClient from '@memori.ai/memori-api-client';
|
|
4
|
+
import { Props as WidgetProps } from '../MemoriWidget/MemoriWidget';
|
|
4
5
|
export interface Props {
|
|
5
6
|
className?: string;
|
|
6
7
|
memori: Memori;
|
|
@@ -31,6 +32,8 @@ export interface Props {
|
|
|
31
32
|
fullScreenHandler?: (e: React.MouseEvent<HTMLButtonElement>) => void;
|
|
32
33
|
onLogout?: () => void;
|
|
33
34
|
apiClient: ReturnType<typeof memoriApiClient>;
|
|
35
|
+
layout?: WidgetProps['layout'];
|
|
36
|
+
additionalSettings?: WidgetProps['additionalSettings'];
|
|
34
37
|
}
|
|
35
38
|
declare const Header: React.FC<Props>;
|
|
36
39
|
export default Header;
|
|
@@ -24,7 +24,7 @@ const Logout_1 = tslib_1.__importDefault(require("../icons/Logout"));
|
|
|
24
24
|
const error_1 = require("../../helpers/error");
|
|
25
25
|
const react_hot_toast_1 = tslib_1.__importDefault(require("react-hot-toast"));
|
|
26
26
|
const imgMimeTypes = ['image/jpeg', 'image/png', 'image/jpg', 'image/gif'];
|
|
27
|
-
const Header = ({ className, memori, tenant, position, setShowPositionDrawer, setShowSettingsDrawer, setShowChatHistoryDrawer, setShowKnownFactsDrawer, setShowExpertsDrawer, enableAudio = true, speakerMuted, setSpeakerMuted, hasUserActivatedSpeak = false, showShare = true, showSettings = true, showReload = false, showClear = false, showLogin = true, setShowLoginDrawer, clearHistory, loginToken, user, sessionID, showChatHistory = true, fullScreenHandler, baseUrl, onLogout, apiClient, }) => {
|
|
27
|
+
const Header = ({ className, memori, tenant, position, setShowPositionDrawer, setShowSettingsDrawer, setShowChatHistoryDrawer, setShowKnownFactsDrawer, setShowExpertsDrawer, enableAudio = true, speakerMuted, setSpeakerMuted, hasUserActivatedSpeak = false, showShare = true, showSettings = true, showReload = false, showClear = false, showLogin = true, setShowLoginDrawer, clearHistory, loginToken, user, sessionID, showChatHistory = true, fullScreenHandler, baseUrl, onLogout, apiClient, layout, additionalSettings, }) => {
|
|
28
28
|
const { t } = (0, react_i18next_1.useTranslation)();
|
|
29
29
|
const { uploadAsset, pwlUpdateUser } = apiClient.backend;
|
|
30
30
|
const [fullScreenAvailable, setFullScreenAvailable] = (0, react_1.useState)(false);
|
|
@@ -34,6 +34,12 @@ const Header = ({ className, memori, tenant, position, setShowPositionDrawer, se
|
|
|
34
34
|
setFullScreenAvailable(true);
|
|
35
35
|
}
|
|
36
36
|
}, []);
|
|
37
|
+
const hasSettingsContent = (0, react_1.useCallback)((layout, additionalSettings) => {
|
|
38
|
+
console.log('[hasSettingsContent] Layout:', layout);
|
|
39
|
+
console.log('[hasSettingsContent] Additional settings:', additionalSettings);
|
|
40
|
+
return (layout === 'TOTEM' ||
|
|
41
|
+
(additionalSettings && Object.keys(additionalSettings).length > 0) || false);
|
|
42
|
+
}, [layout, additionalSettings]);
|
|
37
43
|
const updateAvatar = async (avatar) => {
|
|
38
44
|
console.log('[updateAvatar] Starting avatar update', { avatar });
|
|
39
45
|
if (avatar && loginToken) {
|
|
@@ -88,27 +94,35 @@ const Header = ({ className, memori, tenant, position, setShowPositionDrawer, se
|
|
|
88
94
|
: t('fullscreenEnter') || 'Enter fullscreen', icon: fullScreen ? (0, jsx_runtime_1.jsx)(FullscreenExit_1.default, {}) : (0, jsx_runtime_1.jsx)(Fullscreen_1.default, {}), onClick: fullScreenHandler ||
|
|
89
95
|
(() => {
|
|
90
96
|
if (!document.fullscreenElement) {
|
|
91
|
-
const
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
}
|
|
97
|
+
const body = layout !== 'HIDDEN_CHAT' && layout !== 'WEBSITE_ASSISTANT'
|
|
98
|
+
? document.body
|
|
99
|
+
: document.querySelector('.memori-widget');
|
|
100
|
+
if (body) {
|
|
101
|
+
const memoriReact = document.querySelector('.memori-widget');
|
|
102
|
+
if (memoriReact) {
|
|
103
|
+
memoriReact.style.backgroundColor =
|
|
104
|
+
'#FFFFFF';
|
|
105
|
+
}
|
|
106
|
+
body
|
|
107
|
+
.requestFullscreen()
|
|
108
|
+
.then(() => setFullScreen(true))
|
|
109
|
+
.catch(err => {
|
|
100
110
|
console.warn('Error attempting to enable fullscreen:', err);
|
|
101
111
|
});
|
|
102
112
|
}
|
|
103
|
-
setFullScreen(true);
|
|
104
113
|
}
|
|
105
|
-
else
|
|
106
|
-
document.exitFullscreen
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
114
|
+
else {
|
|
115
|
+
if (document.exitFullscreen) {
|
|
116
|
+
document
|
|
117
|
+
.exitFullscreen()
|
|
118
|
+
.then(() => setFullScreen(false))
|
|
119
|
+
.catch(err => {
|
|
120
|
+
console.warn('Error attempting to exit fullscreen:', err);
|
|
121
|
+
});
|
|
122
|
+
}
|
|
110
123
|
}
|
|
111
|
-
}) })), 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 && ((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 &&
|
|
124
|
+
}) })), 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 && ((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 &&
|
|
125
|
+
hasSettingsContent(layout, additionalSettings) && ((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)(jsx_runtime_1.Fragment, { children: loginToken && user ? ((0, jsx_runtime_1.jsxs)(Dropdown_1.default, { placement: "bottom-right", trigger: (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, {}), title: t('login.user') || 'User' }), children: [(0, jsx_runtime_1.jsx)("div", { className: "memori-dropdown--user-profile", children: (0, jsx_runtime_1.jsxs)("div", { className: "memori-dropdown--user-info", children: [user.avatarURL ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("img", { src: user.avatarURL, alt: user.userName || user.eMail, className: "memori-dropdown--avatar" }), (0, jsx_runtime_1.jsx)("input", { type: "file", name: "avatar", id: "avatar", className: "memori-dropdown--avatar-input", onChange: e => {
|
|
112
126
|
var _a, _b;
|
|
113
127
|
return updateAvatar((_b = (_a = e.target.files) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : null);
|
|
114
128
|
}, accept: imgMimeTypes.join(', ') })] })) : ((0, jsx_runtime_1.jsxs)("div", { className: "memori-dropdown--avatar-placeholder", children: [(0, jsx_runtime_1.jsx)("span", { children: (user.userName || user.eMail || 'U')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/components/Header/Header.tsx"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../src/components/Header/Header.tsx"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,6 @@ const jsx_runtime_1 = require("react/jsx-runtime");
|
|
|
5
5
|
const react_1 = require("react");
|
|
6
6
|
const react_i18next_1 = require("react-i18next");
|
|
7
7
|
const memori_api_client_1 = tslib_1.__importDefault(require("@memori.ai/memori-api-client"));
|
|
8
|
-
const standardized_audio_context_1 = require("standardized-audio-context");
|
|
9
8
|
const classnames_1 = tslib_1.__importDefault(require("classnames"));
|
|
10
9
|
const luxon_1 = require("luxon");
|
|
11
10
|
const react_hot_toast_1 = tslib_1.__importDefault(require("react-hot-toast"));
|
|
@@ -156,7 +155,6 @@ window.typeMessageHidden = typeMessageHidden;
|
|
|
156
155
|
window.typeBatchMessages = typeBatchMessages;
|
|
157
156
|
let audioContext;
|
|
158
157
|
let memoriPassword;
|
|
159
|
-
let speakerMuted = false;
|
|
160
158
|
let userToken;
|
|
161
159
|
const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenantID, memoriLang, multilingual, integration, layout, customLayout, showShare, preview = false, embed = false, showCopyButton = true, showTranslationOriginal = false, showInputs = true, showDates = false, showContextPerLine = false, showSettings, showTypingText = false, showClear = false, showLogin = false, showUpload, showOnlyLastMessages, showChatHistory, showReasoning, height = '100vh', secret, baseUrl = 'https://aisuru-staging.aclambda.online', apiURL = 'https://backend-staging.memori.ai', engineURL = 'https://engine-staging.memori.ai', initialContextVars, initialQuestion, ttsProvider, ogImage, sessionID: initialSessionID, tenant, personification, authToken, enableAudio, defaultSpeakerActive = true, disableTextEnteredEvents = false, onStateChange, additionalInfo, additionalSettings, customMediaRenderer, userAvatar, __WEBCOMPONENT__ = false, useMathFormatting = false, autoStart = false, applyVarsToRoot = false, showFunctionCache = false, }) => {
|
|
162
160
|
var _a, _b, _c, _d, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7;
|
|
@@ -177,7 +175,9 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
|
|
|
177
175
|
if (loginToken &&
|
|
178
176
|
!(user === null || user === void 0 ? void 0 : user.userID) &&
|
|
179
177
|
(showLogin || memori.requireLoginToken)) {
|
|
180
|
-
client.backend
|
|
178
|
+
client.backend
|
|
179
|
+
.pwlGetCurrentUser(loginToken)
|
|
180
|
+
.then(({ user, resultCode }) => {
|
|
181
181
|
if (user && resultCode === 0) {
|
|
182
182
|
setUser(user);
|
|
183
183
|
(0, configuration_1.setLocalConfig)('loginToken', loginToken);
|
|
@@ -402,7 +402,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
|
|
|
402
402
|
currentState.emission = emission;
|
|
403
403
|
translateDialogState(currentState, userLang, msg).then(ts => {
|
|
404
404
|
let text = ts.translatedEmission || ts.emission;
|
|
405
|
-
if (text && text
|
|
405
|
+
if (text && shouldPlayAudio(text)) {
|
|
406
406
|
handleSpeak(text);
|
|
407
407
|
}
|
|
408
408
|
});
|
|
@@ -429,7 +429,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
|
|
|
429
429
|
tag: currentState.currentTag,
|
|
430
430
|
memoryTags: currentState.memoryTags,
|
|
431
431
|
});
|
|
432
|
-
if (emission && emission
|
|
432
|
+
if (emission && shouldPlayAudio(emission)) {
|
|
433
433
|
handleSpeak(emission);
|
|
434
434
|
}
|
|
435
435
|
}
|
|
@@ -1000,7 +1000,10 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
|
|
|
1000
1000
|
const isVisible = !document.hidden;
|
|
1001
1001
|
if (isVisible && !isTabVisible) {
|
|
1002
1002
|
console.log('Tab is now active/visible - starting date polling');
|
|
1003
|
-
sendDateChangedEvent({
|
|
1003
|
+
sendDateChangedEvent({
|
|
1004
|
+
sessionID: sessionId,
|
|
1005
|
+
state: currentDialogState,
|
|
1006
|
+
});
|
|
1004
1007
|
startDatePolling();
|
|
1005
1008
|
}
|
|
1006
1009
|
else if (!isVisible && isTabVisible) {
|
|
@@ -1062,6 +1065,15 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
|
|
|
1062
1065
|
continuousSpeech: continuousSpeech,
|
|
1063
1066
|
preview: preview,
|
|
1064
1067
|
}, autoStart, defaultEnableAudio, defaultSpeakerActive);
|
|
1068
|
+
const shouldPlayAudio = (text) => {
|
|
1069
|
+
const currentSpeakerMuted = (0, configuration_1.getLocalConfig)('muteSpeaker', false);
|
|
1070
|
+
console.log('[MemoriWidget] shouldPlayAudio', currentSpeakerMuted);
|
|
1071
|
+
return (text &&
|
|
1072
|
+
text.trim() &&
|
|
1073
|
+
!preview &&
|
|
1074
|
+
!currentSpeakerMuted &&
|
|
1075
|
+
defaultEnableAudio);
|
|
1076
|
+
};
|
|
1065
1077
|
const processSpeechAndSendMessage = (text) => {
|
|
1066
1078
|
if (!text || text.trim().length === 0) {
|
|
1067
1079
|
return;
|
|
@@ -1083,11 +1095,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
|
|
|
1083
1095
|
apiUrl: `${baseUrl}/api/stt`,
|
|
1084
1096
|
}, defaultEnableAudio);
|
|
1085
1097
|
const handleSpeak = async (text) => {
|
|
1086
|
-
if (!text
|
|
1087
|
-
!text.trim() ||
|
|
1088
|
-
preview ||
|
|
1089
|
-
speakerMuted ||
|
|
1090
|
-
!defaultEnableAudio) {
|
|
1098
|
+
if (!shouldPlayAudio(text)) {
|
|
1091
1099
|
const e = new CustomEvent('MemoriEndSpeak');
|
|
1092
1100
|
document.dispatchEvent(e);
|
|
1093
1101
|
return Promise.resolve();
|
|
@@ -1102,7 +1110,6 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
|
|
|
1102
1110
|
const translateAndSpeak = (0, react_1.useCallback)(async (dialogState, language, msg, skipEmission = false) => {
|
|
1103
1111
|
try {
|
|
1104
1112
|
if (!dialogState) {
|
|
1105
|
-
console.warn('translateAndSpeak called with empty dialog state');
|
|
1106
1113
|
return null;
|
|
1107
1114
|
}
|
|
1108
1115
|
const translatedState = await translateDialogState(dialogState, language, msg, skipEmission);
|
|
@@ -1110,10 +1117,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
|
|
|
1110
1117
|
if (!hasUserActivatedSpeak) {
|
|
1111
1118
|
setHasUserActivatedSpeak(true);
|
|
1112
1119
|
}
|
|
1113
|
-
if (textToSpeak &&
|
|
1114
|
-
textToSpeak.trim() &&
|
|
1115
|
-
!skipEmission &&
|
|
1116
|
-
!speakerMuted) {
|
|
1120
|
+
if (textToSpeak && !skipEmission && shouldPlayAudio(textToSpeak)) {
|
|
1117
1121
|
await handleSpeak(textToSpeak);
|
|
1118
1122
|
}
|
|
1119
1123
|
return translatedState;
|
|
@@ -1130,6 +1134,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
|
|
|
1130
1134
|
handleSpeak,
|
|
1131
1135
|
hasUserActivatedSpeak,
|
|
1132
1136
|
setHasUserActivatedSpeak,
|
|
1137
|
+
speakerMuted,
|
|
1133
1138
|
]);
|
|
1134
1139
|
const focusChatInput = () => {
|
|
1135
1140
|
let textarea = document.querySelector('#chat-fieldset textarea');
|
|
@@ -1287,8 +1292,9 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
|
|
|
1287
1292
|
sendMessage(text, undefined, undefined, false, translatedText);
|
|
1288
1293
|
};
|
|
1289
1294
|
const memoriTextEnteredHandler = (0, react_1.useCallback)((e) => {
|
|
1290
|
-
if (disableTextEnteredEvents)
|
|
1295
|
+
if (disableTextEnteredEvents) {
|
|
1291
1296
|
return;
|
|
1297
|
+
}
|
|
1292
1298
|
const { text, waitForPrevious, hidden, typingText, useLoaderTextAsMsg, hasBatchQueued, } = e.detail;
|
|
1293
1299
|
if (text) {
|
|
1294
1300
|
if (waitForPrevious &&
|
|
@@ -1309,6 +1315,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
|
|
|
1309
1315
|
memoriTyping,
|
|
1310
1316
|
userLang,
|
|
1311
1317
|
disableTextEnteredEvents,
|
|
1318
|
+
speakerMuted,
|
|
1312
1319
|
]);
|
|
1313
1320
|
(0, react_1.useEffect)(() => {
|
|
1314
1321
|
if (!disableTextEnteredEvents) {
|
|
@@ -1675,8 +1682,7 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
|
|
|
1675
1682
|
};
|
|
1676
1683
|
}, [sessionId]);
|
|
1677
1684
|
const showFullHistory = showOnlyLastMessages === undefined
|
|
1678
|
-
? selectedLayout !== 'TOTEM' &&
|
|
1679
|
-
selectedLayout !== 'WEBSITE_ASSISTANT'
|
|
1685
|
+
? selectedLayout !== 'TOTEM' && selectedLayout !== 'WEBSITE_ASSISTANT'
|
|
1680
1686
|
: !showOnlyLastMessages;
|
|
1681
1687
|
const headerProps = {
|
|
1682
1688
|
memori: {
|
|
@@ -1688,39 +1694,16 @@ const MemoriWidget = ({ memori, memoriConfigs, ownerUserID, ownerUserName, tenan
|
|
|
1688
1694
|
history,
|
|
1689
1695
|
showShare: (_v = showShare !== null && showShare !== void 0 ? showShare : integrationConfig === null || integrationConfig === void 0 ? void 0 : integrationConfig.showShare) !== null && _v !== void 0 ? _v : true,
|
|
1690
1696
|
position,
|
|
1697
|
+
layout: selectedLayout,
|
|
1698
|
+
additionalSettings,
|
|
1691
1699
|
setShowPositionDrawer,
|
|
1692
1700
|
setShowSettingsDrawer,
|
|
1693
1701
|
setShowKnownFactsDrawer,
|
|
1694
1702
|
setShowExpertsDrawer,
|
|
1695
1703
|
enableAudio: defaultEnableAudio,
|
|
1696
1704
|
speakerMuted: speakerMuted !== null && speakerMuted !== void 0 ? speakerMuted : false,
|
|
1697
|
-
setSpeakerMuted: mute => {
|
|
1698
|
-
var _a;
|
|
1699
|
-
if (!((_a = enableAudio !== null && enableAudio !== void 0 ? enableAudio : integrationConfig === null || integrationConfig === void 0 ? void 0 : integrationConfig.enableAudio) !== null && _a !== void 0 ? _a : true)) {
|
|
1700
|
-
mute = true;
|
|
1701
|
-
}
|
|
1705
|
+
setSpeakerMuted: (mute) => {
|
|
1702
1706
|
toggleMute(mute);
|
|
1703
|
-
(0, configuration_1.setLocalConfig)('muteSpeaker', !!mute);
|
|
1704
|
-
let microphoneMode = (0, configuration_1.getLocalConfig)('microphoneMode', 'HOLD_TO_TALK');
|
|
1705
|
-
if (microphoneMode === 'CONTINUOUS' && mute) {
|
|
1706
|
-
setContinuousSpeech(false);
|
|
1707
|
-
(0, configuration_1.setLocalConfig)('microphoneMode', 'HOLD_TO_TALK');
|
|
1708
|
-
}
|
|
1709
|
-
if (mute) {
|
|
1710
|
-
ttsStop();
|
|
1711
|
-
}
|
|
1712
|
-
else {
|
|
1713
|
-
try {
|
|
1714
|
-
audioContext = new standardized_audio_context_1.AudioContext();
|
|
1715
|
-
let buffer = audioContext.createBuffer(1, 10000, 22050);
|
|
1716
|
-
let source = audioContext.createBufferSource();
|
|
1717
|
-
source.buffer = buffer;
|
|
1718
|
-
source.connect(audioContext.destination);
|
|
1719
|
-
}
|
|
1720
|
-
catch (error) {
|
|
1721
|
-
console.warn('Failed to initialize audio context:', error);
|
|
1722
|
-
}
|
|
1723
|
-
}
|
|
1724
1707
|
},
|
|
1725
1708
|
setShowChatHistoryDrawer,
|
|
1726
1709
|
showSettings: (_w = showSettings !== null && showSettings !== void 0 ? showSettings : integrationConfig === null || integrationConfig === void 0 ? void 0 : integrationConfig.showSettings) !== null && _w !== void 0 ? _w : true,
|