@memori.ai/memori-react 2.8.2 → 2.9.0
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 +19 -0
- package/README.md +30 -29
- package/dist/components/MemoriWidget/MemoriWidget.d.ts +1 -0
- package/dist/components/MemoriWidget/MemoriWidget.js +18 -4
- package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
- package/dist/components/SettingsDrawer/SettingsDrawer.d.ts +2 -1
- package/dist/components/SettingsDrawer/SettingsDrawer.js +2 -2
- package/dist/components/SettingsDrawer/SettingsDrawer.js.map +1 -1
- package/dist/components/SettingsDrawer/SettingsDrawer.test.js +9 -0
- package/dist/components/SettingsDrawer/SettingsDrawer.test.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +6 -2
- package/dist/index.js.map +1 -1
- package/esm/components/MemoriWidget/MemoriWidget.d.ts +1 -0
- package/esm/components/MemoriWidget/MemoriWidget.js +18 -4
- package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
- package/esm/components/SettingsDrawer/SettingsDrawer.d.ts +2 -1
- package/esm/components/SettingsDrawer/SettingsDrawer.js +2 -2
- package/esm/components/SettingsDrawer/SettingsDrawer.js.map +1 -1
- package/esm/components/SettingsDrawer/SettingsDrawer.test.js +10 -1
- package/esm/components/SettingsDrawer/SettingsDrawer.test.js.map +1 -1
- package/esm/index.d.ts +1 -0
- package/esm/index.js +6 -2
- package/esm/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/MemoriWidget/MemoriWidget.tsx +20 -5
- package/src/components/SettingsDrawer/SettingsDrawer.stories.tsx +28 -0
- package/src/components/SettingsDrawer/SettingsDrawer.test.tsx +37 -0
- package/src/components/SettingsDrawer/SettingsDrawer.tsx +8 -0
- package/src/components/SettingsDrawer/__snapshots__/SettingsDrawer.test.tsx.snap +8 -0
- package/src/index.tsx +10 -1
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAChE,OAAO,SAAS,MAAM,YAAY,CAAC;AAKnC,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,YAEN,MAAM,wCAAwC,CAAC;AAEhD,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -204,6 +204,7 @@ export interface Props {
|
|
|
204
204
|
onStateChange?: (state?: DialogState) => void;
|
|
205
205
|
additionalInfo?: OpenSession['additionalInfo'] & { [key: string]: string };
|
|
206
206
|
customMediaRenderer?: ChatProps['customMediaRenderer'];
|
|
207
|
+
additionalSettings?: JSX.Element | null;
|
|
207
208
|
}
|
|
208
209
|
|
|
209
210
|
const MemoriWidget = ({
|
|
@@ -877,6 +878,15 @@ const MemoriWidget = ({
|
|
|
877
878
|
undefined
|
|
878
879
|
);
|
|
879
880
|
|
|
881
|
+
let referral;
|
|
882
|
+
try {
|
|
883
|
+
referral = (() => {
|
|
884
|
+
return window.location.href;
|
|
885
|
+
})();
|
|
886
|
+
} catch (err) {
|
|
887
|
+
console.error(err);
|
|
888
|
+
}
|
|
889
|
+
|
|
880
890
|
fetchSession({
|
|
881
891
|
memoriID: memori.engineMemoriID ?? '',
|
|
882
892
|
password: secret || memoriPwd || memori.secretToken,
|
|
@@ -885,6 +895,11 @@ const MemoriWidget = ({
|
|
|
885
895
|
initialContextVars,
|
|
886
896
|
initialQuestion,
|
|
887
897
|
birthDate: birthDate || storageBirthDate || undefined,
|
|
898
|
+
additionalInfo: {
|
|
899
|
+
...(additionalInfo || {}),
|
|
900
|
+
language: getCultureCodeByLanguage(userLang),
|
|
901
|
+
referral: referral,
|
|
902
|
+
},
|
|
888
903
|
});
|
|
889
904
|
} else if (!!currentState) {
|
|
890
905
|
return {
|
|
@@ -947,6 +962,7 @@ const MemoriWidget = ({
|
|
|
947
962
|
!speechSynthesizer &&
|
|
948
963
|
!isPlayingAudio &&
|
|
949
964
|
!userMessage.length &&
|
|
965
|
+
!memoriTyping &&
|
|
950
966
|
!listening
|
|
951
967
|
)
|
|
952
968
|
setInteractionTimeout();
|
|
@@ -956,6 +972,7 @@ const MemoriWidget = ({
|
|
|
956
972
|
!!speechSynthesizer ||
|
|
957
973
|
isPlayingAudio ||
|
|
958
974
|
!!userMessage.length ||
|
|
975
|
+
memoriTyping ||
|
|
959
976
|
listening
|
|
960
977
|
) {
|
|
961
978
|
resetInteractionTimeout();
|
|
@@ -1016,16 +1033,13 @@ const MemoriWidget = ({
|
|
|
1016
1033
|
}
|
|
1017
1034
|
}
|
|
1018
1035
|
|
|
1019
|
-
if (memori.enableCompletions) {
|
|
1020
|
-
timeout = timeout + 60;
|
|
1021
|
-
}
|
|
1022
|
-
|
|
1023
1036
|
let uiTimeout = setTimeout(handleTimeout, timeout * 1000);
|
|
1024
1037
|
setUserInteractionTimeout(uiTimeout);
|
|
1025
1038
|
timeoutRef.current = uiTimeout;
|
|
1026
1039
|
};
|
|
1027
1040
|
useEffect(() => {
|
|
1028
|
-
if (!!userMessage.length || isPlayingAudio
|
|
1041
|
+
if (!!userMessage.length || isPlayingAudio || memoriTyping)
|
|
1042
|
+
clearInteractionTimeout();
|
|
1029
1043
|
if (sessionId && !!!userMessage.length) resetInteractionTimeout();
|
|
1030
1044
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
1031
1045
|
}, [
|
|
@@ -1036,6 +1050,7 @@ const MemoriWidget = ({
|
|
|
1036
1050
|
sessionId,
|
|
1037
1051
|
history,
|
|
1038
1052
|
userMessage,
|
|
1053
|
+
memoriTyping,
|
|
1039
1054
|
]);
|
|
1040
1055
|
useEffect(() => {
|
|
1041
1056
|
return () => {
|
|
@@ -60,3 +60,31 @@ WithinTotemLayout.args = {
|
|
|
60
60
|
setContinuousSpeech: () => {},
|
|
61
61
|
setContinuousSpeechTimeout: () => {},
|
|
62
62
|
};
|
|
63
|
+
|
|
64
|
+
const AdditionalSettings = () => {
|
|
65
|
+
const [hideEmissions, setHideEmissions] = React.useState(false);
|
|
66
|
+
|
|
67
|
+
return (
|
|
68
|
+
<div>
|
|
69
|
+
<label htmlFor="#hideEmissions">Hide emissions:</label>
|
|
70
|
+
<input
|
|
71
|
+
id="hideEmissions"
|
|
72
|
+
name="hideEmissions"
|
|
73
|
+
type="checkbox"
|
|
74
|
+
checked={hideEmissions}
|
|
75
|
+
onChange={e => setHideEmissions(e.target.checked)}
|
|
76
|
+
/>
|
|
77
|
+
</div>
|
|
78
|
+
);
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
export const WithAdditionalSettings = Template.bind({});
|
|
82
|
+
WithAdditionalSettings.args = {
|
|
83
|
+
open: true,
|
|
84
|
+
onClose: () => {},
|
|
85
|
+
continuousSpeech: false,
|
|
86
|
+
continuousSpeechTimeout: 2,
|
|
87
|
+
setContinuousSpeech: () => {},
|
|
88
|
+
setContinuousSpeechTimeout: () => {},
|
|
89
|
+
additionalSettings: <AdditionalSettings />,
|
|
90
|
+
};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { render } from '@testing-library/react';
|
|
2
2
|
import SettingsDrawer from './SettingsDrawer';
|
|
3
|
+
import React from 'react';
|
|
3
4
|
|
|
4
5
|
beforeEach(() => {
|
|
5
6
|
// @ts-ignore
|
|
@@ -139,3 +140,39 @@ it('renders SettingsDrawer for totem layout with continuous speech and hide emis
|
|
|
139
140
|
);
|
|
140
141
|
expect(container).toMatchSnapshot();
|
|
141
142
|
});
|
|
143
|
+
|
|
144
|
+
const AdditionalSettings = () => {
|
|
145
|
+
const [hideEmissions, setHideEmissions] = React.useState(false);
|
|
146
|
+
|
|
147
|
+
return (
|
|
148
|
+
<div>
|
|
149
|
+
<label htmlFor="#hideEmissions">Hide emissions:</label>
|
|
150
|
+
<input
|
|
151
|
+
id="hideEmissions"
|
|
152
|
+
name="hideEmissions"
|
|
153
|
+
type="checkbox"
|
|
154
|
+
checked={hideEmissions}
|
|
155
|
+
onChange={e => setHideEmissions(e.target.checked)}
|
|
156
|
+
/>
|
|
157
|
+
</div>
|
|
158
|
+
);
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
it('renders SettingsDrawer with additional custom settings unchanged', () => {
|
|
162
|
+
const { container } = render(
|
|
163
|
+
<SettingsDrawer
|
|
164
|
+
open={true}
|
|
165
|
+
onClose={jest.fn()}
|
|
166
|
+
microphoneMode="HOLD_TO_TALK"
|
|
167
|
+
setMicrophoneMode={jest.fn()}
|
|
168
|
+
continuousSpeechTimeout={2}
|
|
169
|
+
setContinuousSpeechTimeout={jest.fn()}
|
|
170
|
+
controlsPosition="bottom"
|
|
171
|
+
setControlsPosition={jest.fn()}
|
|
172
|
+
hideEmissions={false}
|
|
173
|
+
setHideEmissions={jest.fn()}
|
|
174
|
+
additionalSettings={<AdditionalSettings />}
|
|
175
|
+
/>
|
|
176
|
+
);
|
|
177
|
+
expect(container).toMatchSnapshot();
|
|
178
|
+
});
|
|
@@ -19,6 +19,7 @@ export interface Props {
|
|
|
19
19
|
setControlsPosition: (value: 'center' | 'bottom') => void;
|
|
20
20
|
hideEmissions?: boolean;
|
|
21
21
|
setHideEmissions: (value: boolean) => void;
|
|
22
|
+
additionalSettings?: WidgetProps['additionalSettings'];
|
|
22
23
|
}
|
|
23
24
|
|
|
24
25
|
const silenceSeconds = [2, 3, 5, 10, 15, 20, 30, 60];
|
|
@@ -35,6 +36,7 @@ const SettingsDrawer = ({
|
|
|
35
36
|
setControlsPosition,
|
|
36
37
|
hideEmissions,
|
|
37
38
|
setHideEmissions,
|
|
39
|
+
additionalSettings,
|
|
38
40
|
}: Props) => {
|
|
39
41
|
const { t } = useTranslation();
|
|
40
42
|
|
|
@@ -151,6 +153,12 @@ const SettingsDrawer = ({
|
|
|
151
153
|
</div>
|
|
152
154
|
</>
|
|
153
155
|
)}
|
|
156
|
+
|
|
157
|
+
{additionalSettings && (
|
|
158
|
+
<div className="memori-settings-drawer--field controls">
|
|
159
|
+
{additionalSettings}
|
|
160
|
+
</div>
|
|
161
|
+
)}
|
|
154
162
|
</Drawer>
|
|
155
163
|
);
|
|
156
164
|
};
|
|
@@ -49,3 +49,11 @@ exports[`renders SettingsDrawer open with non-default continuous speech timeout
|
|
|
49
49
|
`;
|
|
50
50
|
|
|
51
51
|
exports[`renders SettingsDrawer unchanged 1`] = `<div />`;
|
|
52
|
+
|
|
53
|
+
exports[`renders SettingsDrawer with additional custom settings unchanged 1`] = `
|
|
54
|
+
<div>
|
|
55
|
+
<div
|
|
56
|
+
style="position: fixed; top: 1px; left: 1px; width: 1px; height: 0px; padding: 0px; margin: -1px; overflow: hidden; clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border-width: 0px; display: none;"
|
|
57
|
+
/>
|
|
58
|
+
</div>
|
|
59
|
+
`;
|
package/src/index.tsx
CHANGED
|
@@ -41,6 +41,7 @@ export interface Props {
|
|
|
41
41
|
onStateChange?: (state?: DialogState) => void;
|
|
42
42
|
additionalInfo?: WidgetProps['additionalInfo'];
|
|
43
43
|
customMediaRenderer?: WidgetProps['customMediaRenderer'];
|
|
44
|
+
additionalSettings?: WidgetProps['additionalSettings'];
|
|
44
45
|
}
|
|
45
46
|
|
|
46
47
|
const getPreferredLanguages = () => {
|
|
@@ -89,6 +90,7 @@ const Memori: React.FC<Props> = ({
|
|
|
89
90
|
onStateChange,
|
|
90
91
|
additionalInfo,
|
|
91
92
|
customMediaRenderer,
|
|
93
|
+
additionalSettings,
|
|
92
94
|
}) => {
|
|
93
95
|
const [memori, setMemori] = useState<IMemori>();
|
|
94
96
|
const [speechKey, setSpeechKey] = useState<string | undefined>(
|
|
@@ -216,10 +218,17 @@ const Memori: React.FC<Props> = ({
|
|
|
216
218
|
onStateChange={onStateChange}
|
|
217
219
|
additionalInfo={additionalInfo}
|
|
218
220
|
customMediaRenderer={customMediaRenderer}
|
|
221
|
+
additionalSettings={additionalSettings}
|
|
219
222
|
{...(tag && pin ? { personification: { tag, pin } } : {})}
|
|
220
223
|
/>
|
|
221
224
|
) : (
|
|
222
|
-
<div
|
|
225
|
+
<div
|
|
226
|
+
style={{
|
|
227
|
+
display: 'flex',
|
|
228
|
+
alignItems: 'center',
|
|
229
|
+
justifyContent: 'center',
|
|
230
|
+
}}
|
|
231
|
+
>
|
|
223
232
|
<p style={{ textAlign: 'center', margin: '2rem auto' }}>
|
|
224
233
|
{t('loading')}...
|
|
225
234
|
</p>
|