@memori.ai/memori-react 8.40.0 → 8.40.1
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 +7 -0
- package/dist/components/MemoriWidget/MemoriWidget.js +93 -73
- package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/esm/components/MemoriWidget/MemoriWidget.js +96 -74
- package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
- package/esm/version.d.ts +1 -1
- package/esm/version.js +1 -1
- package/package.json +1 -1
- package/src/components/MemoriWidget/MemoriWidget.tsx +68 -41
- package/src/components/layouts/layouts.stories.tsx +1 -1
- package/src/version.ts +1 -1
|
@@ -582,6 +582,7 @@ const MemoriWidget = ({
|
|
|
582
582
|
const [showLoginDrawer, setShowLoginDrawer] = useState(false);
|
|
583
583
|
|
|
584
584
|
const [clickedStart, setClickedStart] = useState(false);
|
|
585
|
+
const sessionStartingRef = useRef(false);
|
|
585
586
|
|
|
586
587
|
const language =
|
|
587
588
|
memori.culture?.split('-')?.[0]?.toUpperCase()! ||
|
|
@@ -1843,6 +1844,7 @@ const MemoriWidget = ({
|
|
|
1843
1844
|
return () => {
|
|
1844
1845
|
setHasUserActivatedSpeak(false);
|
|
1845
1846
|
setClickedStart(false);
|
|
1847
|
+
sessionStartingRef.current = false;
|
|
1846
1848
|
clearInteractionTimeout();
|
|
1847
1849
|
timeoutRef.current = undefined;
|
|
1848
1850
|
};
|
|
@@ -2715,6 +2717,7 @@ const MemoriWidget = ({
|
|
|
2715
2717
|
if (!sessionID && !!minAge && !birth) {
|
|
2716
2718
|
setShowAgeVerification(true);
|
|
2717
2719
|
setClickedStart(false);
|
|
2720
|
+
return;
|
|
2718
2721
|
}
|
|
2719
2722
|
// Handle authentication
|
|
2720
2723
|
else if (
|
|
@@ -2730,41 +2733,46 @@ const MemoriWidget = ({
|
|
|
2730
2733
|
}
|
|
2731
2734
|
// Create new session if needed
|
|
2732
2735
|
else if (!sessionID || initialSessionExpired) {
|
|
2733
|
-
|
|
2734
|
-
|
|
2735
|
-
|
|
2736
|
-
|
|
2737
|
-
|
|
2738
|
-
|
|
2739
|
-
|
|
2740
|
-
|
|
2741
|
-
|
|
2742
|
-
|
|
2743
|
-
|
|
2744
|
-
|
|
2745
|
-
|
|
2746
|
-
|
|
2747
|
-
:
|
|
2748
|
-
|
|
2749
|
-
|
|
2750
|
-
|
|
2751
|
-
|
|
2752
|
-
|
|
2753
|
-
|
|
2754
|
-
|
|
2755
|
-
|
|
2756
|
-
|
|
2757
|
-
|
|
2758
|
-
|
|
2759
|
-
|
|
2760
|
-
|
|
2761
|
-
|
|
2762
|
-
|
|
2763
|
-
|
|
2764
|
-
|
|
2765
|
-
|
|
2736
|
+
if (sessionStartingRef.current) {
|
|
2737
|
+
return;
|
|
2738
|
+
}
|
|
2739
|
+
sessionStartingRef.current = true;
|
|
2740
|
+
try {
|
|
2741
|
+
const session = await fetchSession({
|
|
2742
|
+
memoriID: memori.engineMemoriID!,
|
|
2743
|
+
password: secret || memoriPwd || memori.secretToken,
|
|
2744
|
+
tag: personification?.tag,
|
|
2745
|
+
pin: personification?.pin,
|
|
2746
|
+
continueFromChatLogID: chatLog?.chatLogID,
|
|
2747
|
+
initialContextVars: {
|
|
2748
|
+
LANG: userLang,
|
|
2749
|
+
PATHNAME: window.location.pathname?.toUpperCase(),
|
|
2750
|
+
ROUTE:
|
|
2751
|
+
window.location.pathname?.split('/')?.pop()?.toUpperCase() ||
|
|
2752
|
+
'',
|
|
2753
|
+
...((!chatLog
|
|
2754
|
+
? initialContextVars
|
|
2755
|
+
: chatLog.lines[chatLog.lines.length - 1].contextVars) || {}),
|
|
2756
|
+
},
|
|
2757
|
+
initialQuestion: chatLog ? undefined : initialQuestion,
|
|
2758
|
+
birthDate: birth,
|
|
2759
|
+
additionalInfo: {
|
|
2760
|
+
...(additionalInfo || {}),
|
|
2761
|
+
loginToken:
|
|
2762
|
+
userToken ??
|
|
2763
|
+
loginToken ??
|
|
2764
|
+
additionalInfo?.loginToken ??
|
|
2765
|
+
authToken,
|
|
2766
|
+
language: (
|
|
2767
|
+
userLang ??
|
|
2768
|
+
memori.culture?.split('-')?.[0] ??
|
|
2769
|
+
'IT'
|
|
2770
|
+
).toLowerCase(),
|
|
2771
|
+
timeZoneOffset: new Date().getTimezoneOffset().toString(),
|
|
2772
|
+
},
|
|
2773
|
+
});
|
|
2766
2774
|
|
|
2767
|
-
|
|
2775
|
+
if (session?.dialogState) {
|
|
2768
2776
|
// reset history
|
|
2769
2777
|
if (!chatLog) {
|
|
2770
2778
|
setHistory([]);
|
|
@@ -2773,6 +2781,7 @@ const MemoriWidget = ({
|
|
|
2773
2781
|
await translateAndSpeak(session.dialogState, userLang);
|
|
2774
2782
|
// No need for additional handleSpeak call since translateAndSpeak already handles it
|
|
2775
2783
|
setHasUserActivatedSpeak(true);
|
|
2784
|
+
setClickedStart(false);
|
|
2776
2785
|
} else {
|
|
2777
2786
|
const messages = chatLog.lines.map(
|
|
2778
2787
|
(l, i) =>
|
|
@@ -2834,12 +2843,18 @@ const MemoriWidget = ({
|
|
|
2834
2843
|
true
|
|
2835
2844
|
).finally(() => {
|
|
2836
2845
|
setHasUserActivatedSpeak(true);
|
|
2846
|
+
setClickedStart(false);
|
|
2837
2847
|
});
|
|
2838
2848
|
}
|
|
2839
|
-
|
|
2840
|
-
|
|
2841
|
-
|
|
2842
|
-
|
|
2849
|
+
} else if (session?.resultCode === 0) {
|
|
2850
|
+
sessionStartingRef.current = false;
|
|
2851
|
+
await onClickStart((session as any) || undefined);
|
|
2852
|
+
} else {
|
|
2853
|
+
setLoading(false);
|
|
2854
|
+
setClickedStart(false);
|
|
2855
|
+
}
|
|
2856
|
+
} finally {
|
|
2857
|
+
sessionStartingRef.current = false;
|
|
2843
2858
|
}
|
|
2844
2859
|
|
|
2845
2860
|
return;
|
|
@@ -2853,7 +2868,6 @@ const MemoriWidget = ({
|
|
|
2853
2868
|
if (response.resultCode !== 0 || !currentState) {
|
|
2854
2869
|
const { chatLogs } = await getSessionChatLogs(sessionID!, sessionID!);
|
|
2855
2870
|
setSessionId(undefined);
|
|
2856
|
-
setClickedStart(false);
|
|
2857
2871
|
await onClickStart(undefined, true, chatLogs?.[0]);
|
|
2858
2872
|
return;
|
|
2859
2873
|
}
|
|
@@ -2879,6 +2893,7 @@ const MemoriWidget = ({
|
|
|
2879
2893
|
|
|
2880
2894
|
if (session && session.resultCode === 0) {
|
|
2881
2895
|
await translateAndSpeak(session.currentState, userLang);
|
|
2896
|
+
setClickedStart(false);
|
|
2882
2897
|
} else {
|
|
2883
2898
|
throw new Error('No session');
|
|
2884
2899
|
}
|
|
@@ -2902,6 +2917,7 @@ const MemoriWidget = ({
|
|
|
2902
2917
|
birth
|
|
2903
2918
|
).then(() => {
|
|
2904
2919
|
setHasUserActivatedSpeak(true);
|
|
2920
|
+
setClickedStart(false);
|
|
2905
2921
|
});
|
|
2906
2922
|
}
|
|
2907
2923
|
}
|
|
@@ -2924,6 +2940,7 @@ const MemoriWidget = ({
|
|
|
2924
2940
|
|
|
2925
2941
|
if (session && session.resultCode === 0) {
|
|
2926
2942
|
await translateAndSpeak(session.currentState, userLang);
|
|
2943
|
+
setClickedStart(false);
|
|
2927
2944
|
} else {
|
|
2928
2945
|
throw new Error('No session');
|
|
2929
2946
|
}
|
|
@@ -2946,6 +2963,7 @@ const MemoriWidget = ({
|
|
|
2946
2963
|
birth
|
|
2947
2964
|
).then(() => {
|
|
2948
2965
|
setHasUserActivatedSpeak(true);
|
|
2966
|
+
setClickedStart(false);
|
|
2949
2967
|
});
|
|
2950
2968
|
}
|
|
2951
2969
|
}
|
|
@@ -3008,6 +3026,7 @@ const MemoriWidget = ({
|
|
|
3008
3026
|
) {
|
|
3009
3027
|
// we have a history, don't push message
|
|
3010
3028
|
setHasUserActivatedSpeak(true);
|
|
3029
|
+
setClickedStart(false);
|
|
3011
3030
|
await translateAndSpeak(
|
|
3012
3031
|
currentState,
|
|
3013
3032
|
userLang,
|
|
@@ -3086,6 +3105,7 @@ const MemoriWidget = ({
|
|
|
3086
3105
|
undefined,
|
|
3087
3106
|
false
|
|
3088
3107
|
);
|
|
3108
|
+
setClickedStart(false);
|
|
3089
3109
|
}
|
|
3090
3110
|
} catch (e) {
|
|
3091
3111
|
console.error('[EnterText] onClickStart: NATS wait failed', e);
|
|
@@ -3108,16 +3128,23 @@ const MemoriWidget = ({
|
|
|
3108
3128
|
|
|
3109
3129
|
// everything is fine, just translate dialog state and activate chat
|
|
3110
3130
|
await translateAndSpeak(dialogState!, userLang);
|
|
3131
|
+
setClickedStart(false);
|
|
3111
3132
|
}
|
|
3112
3133
|
},
|
|
3113
3134
|
[memoriPwd, memori, memoriTokens, birthDate, sessionId, userLang, position]
|
|
3114
3135
|
);
|
|
3115
3136
|
|
|
3116
3137
|
useEffect(() => {
|
|
3117
|
-
if (
|
|
3138
|
+
if (
|
|
3139
|
+
!clickedStart &&
|
|
3140
|
+
!sessionStartingRef.current &&
|
|
3141
|
+
!sessionId &&
|
|
3142
|
+
autoStart &&
|
|
3143
|
+
selectedLayout !== 'HIDDEN_CHAT'
|
|
3144
|
+
) {
|
|
3118
3145
|
onClickStart();
|
|
3119
3146
|
}
|
|
3120
|
-
}, [clickedStart, autoStart, selectedLayout]);
|
|
3147
|
+
}, [clickedStart, autoStart, selectedLayout, sessionId]);
|
|
3121
3148
|
|
|
3122
3149
|
useEffect(() => {
|
|
3123
3150
|
const targetNode =
|
package/src/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// This file is auto-generated. Do not edit manually.
|
|
2
|
-
export const version = '8.40.
|
|
2
|
+
export const version = '8.40.1';
|