@magmamath/students-features 0.11.0-rc.3 → 0.11.0-rc.4
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/dist/commonjs/features/chatbot/components/Chat/Chat.js +20 -7
- package/dist/commonjs/features/chatbot/components/Chat/Chat.js.map +1 -1
- package/dist/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.js +2 -1
- package/dist/commonjs/features/chatbot/components/ChatMessage/ReceivedMessage.js.map +1 -1
- package/dist/module/features/chatbot/components/Chat/Chat.js +21 -8
- package/dist/module/features/chatbot/components/Chat/Chat.js.map +1 -1
- package/dist/module/features/chatbot/components/ChatMessage/ReceivedMessage.js +2 -1
- package/dist/module/features/chatbot/components/ChatMessage/ReceivedMessage.js.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/components/Chat/Chat.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/components/Chat/Chat.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/features/chatbot/components/Chat/Chat.tsx +29 -8
- package/src/features/chatbot/components/ChatMessage/ReceivedMessage.tsx +1 -0
|
@@ -7,6 +7,7 @@ exports.Chat = void 0;
|
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
var _effectorReact = require("effector-react");
|
|
10
|
+
var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
|
|
10
11
|
var _reactNativeUi = require("@magmamath/react-native-ui");
|
|
11
12
|
var _ChatbotIcon = require("../../../../shared/icons/ChatbotIcon.js");
|
|
12
13
|
var _AnimatedMessage = require("../ChatMessage/AnimatedMessage.js");
|
|
@@ -51,6 +52,12 @@ const Chat = ({
|
|
|
51
52
|
}) => messages);
|
|
52
53
|
const lastMessageId = messages.at(-1)?.id;
|
|
53
54
|
const renderedCountRef = (0, _react.useRef)(messages.length);
|
|
55
|
+
const animatedIdsRef = (0, _react.useRef)(new Set());
|
|
56
|
+
(0, _react.useEffect)(() => {
|
|
57
|
+
if (messages.length < renderedCountRef.current) {
|
|
58
|
+
renderedCountRef.current = messages.length;
|
|
59
|
+
}
|
|
60
|
+
}, [messages.length]);
|
|
54
61
|
const [showBottomFade, setShowBottomFade] = (0, _react.useState)(false);
|
|
55
62
|
const handleScroll = (0, _react.useCallback)(e => {
|
|
56
63
|
const {
|
|
@@ -89,6 +96,10 @@ const Chat = ({
|
|
|
89
96
|
const messageHighlightIndex = model.t2s.isWordHighlightEnabled && isPlayingMessage ? highlightedWordIndex : -1;
|
|
90
97
|
const isNew = index >= renderedCountRef.current;
|
|
91
98
|
const hasIcon = !message.isOwnMessage && message.id === lastMessageId;
|
|
99
|
+
if (isNew && !animatedIdsRef.current.has(message.id)) {
|
|
100
|
+
animatedIdsRef.current.add(message.id);
|
|
101
|
+
}
|
|
102
|
+
const shouldAnimate = animatedIdsRef.current.has(message.id);
|
|
92
103
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
93
104
|
style: hasIcon ? styles.messageWithIcon : undefined,
|
|
94
105
|
children: [hasIcon && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
@@ -98,7 +109,7 @@ const Chat = ({
|
|
|
98
109
|
height: 73
|
|
99
110
|
})
|
|
100
111
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_AnimatedMessage.AnimatedMessage, {
|
|
101
|
-
animate:
|
|
112
|
+
animate: shouldAnimate,
|
|
102
113
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ConditionalWrapper.ConditionalWrapper, {
|
|
103
114
|
withWrapper: shouldWrapMessage,
|
|
104
115
|
Wrapper: MessageWrapper,
|
|
@@ -123,7 +134,9 @@ const Chat = ({
|
|
|
123
134
|
}, key);
|
|
124
135
|
}), isHelpRequestPending && /*#__PURE__*/(0, _jsxRuntime.jsx)(_MessageLoader.MessageLoader, {})]
|
|
125
136
|
})
|
|
126
|
-
}), showBottomFade && /*#__PURE__*/(0, _jsxRuntime.jsx)(
|
|
137
|
+
}), showBottomFade && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
|
|
138
|
+
entering: _reactNativeReanimated.FadeIn.duration(200),
|
|
139
|
+
exiting: _reactNativeReanimated.FadeOut.duration(200),
|
|
127
140
|
style: styles.bottomFade,
|
|
128
141
|
pointerEvents: "none"
|
|
129
142
|
}), isOpen && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
@@ -143,9 +156,9 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
143
156
|
container: {
|
|
144
157
|
flex: 1,
|
|
145
158
|
alignItems: 'flex-end',
|
|
146
|
-
|
|
159
|
+
width: 374,
|
|
147
160
|
height: '100%',
|
|
148
|
-
paddingRight: _reactNativeUi.SPACING['
|
|
161
|
+
paddingRight: _reactNativeUi.SPACING['100']
|
|
149
162
|
},
|
|
150
163
|
list: {
|
|
151
164
|
alignItems: 'flex-end',
|
|
@@ -164,12 +177,12 @@ const styles = _reactNative.StyleSheet.create({
|
|
|
164
177
|
overflow: 'hidden'
|
|
165
178
|
},
|
|
166
179
|
bottomFade: {
|
|
167
|
-
width:
|
|
180
|
+
width: 374,
|
|
168
181
|
position: 'absolute',
|
|
169
182
|
bottom: 62,
|
|
170
183
|
right: 0,
|
|
171
|
-
height:
|
|
172
|
-
backgroundImage: 'linear-gradient(to top, rgba(255,255,255), transparent)'
|
|
184
|
+
height: 40,
|
|
185
|
+
backgroundImage: 'linear-gradient(to top, rgba(255,255,255,1) 0%, rgba(255,255,255,0.8) 40%, transparent 100%)'
|
|
173
186
|
},
|
|
174
187
|
messageWithIcon: {
|
|
175
188
|
flexDirection: 'row',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_effectorReact","_reactNativeUi","_ChatbotIcon","_AnimatedMessage","_ChatMessage","_MessageLoader","_ChatInput","_CloseButton","_modelTypes","_styleTypes","_ConditionalWrapper","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","SCROLL_BOTTOM_THRESHOLD","TOOLBAR_HEIGHT","BOTTOM_OFFSET","Platform","select","web","Chat","model","isHintFeedback","isTextToSpeechEnabled","isInputDisabled","colorScheme","ColorScheme","Blue","MessageWrapper","TTSHighlightRenderer","onPressClose","dimensions","useWindowDimensions","ref","useRef","isOpen","useUnit","$isOpen","isHelpRequestPending","sendHelpRequestFx","pending","isTextToSpeechPending","api","textToSpeechTextFx","audioStatus","t2s","$status","currentPlayingId","$currentPlayingId","highlightedWordIndex","wordHighlight","$highlightedWordIndex","isTranslated","translation","$isTranslated","errorSpottingEnabled","errorSpotting","$isEnabled","messages","useStoreMap","$currentChatData","lastMessageId","at","id","renderedCountRef","length","showBottomFade","setShowBottomFade","useState","handleScroll","useCallback","contentOffset","layoutMeasurement","contentSize","nativeEvent","isAtBottom","y","height","MAX_HEIGHT","shouldWrapMessage","jsxs","View","style","styles","container","maxHeight","children","jsx","ScrollView","bounces","contentContainerStyle","list","onScroll","scrollEventThrottle","onContentSizeChange","_","current","scrollToEnd","setScrollActive","gap","messagesWithoutInput","map","message","index","key","isPlayingMessage","messageHighlightIndex","isWordHighlightEnabled","isNew","hasIcon","isOwnMessage","messageWithIcon","undefined","icon","ChatbotIcon","width","AnimatedMessage","animate","ConditionalWrapper","withWrapper","Wrapper","ChatMessage","variant","MessageVariant","SENT","RECEIVED","withErrorSpotting","t2sState","isEnabled","isActive","isLoading","status","disabled","MessageLoader","bottomFade","pointerEvents","inputRow","CloseButton","onPress","ChatInput","hasMessages","exports","StyleSheet","create","flex","alignItems","paddingRight","SPACING","paddingVertical","marginBottom","flexDirection","scrollContainer","overflow","position","bottom","right","backgroundImage","marginRight"],"sourceRoot":"../../../../../../src","sources":["features/chatbot/components/Chat/Chat.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_effectorReact","_reactNativeReanimated","_reactNativeUi","_ChatbotIcon","_AnimatedMessage","_ChatMessage","_MessageLoader","_ChatInput","_CloseButton","_modelTypes","_styleTypes","_ConditionalWrapper","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","SCROLL_BOTTOM_THRESHOLD","TOOLBAR_HEIGHT","BOTTOM_OFFSET","Platform","select","web","Chat","model","isHintFeedback","isTextToSpeechEnabled","isInputDisabled","colorScheme","ColorScheme","Blue","MessageWrapper","TTSHighlightRenderer","onPressClose","dimensions","useWindowDimensions","ref","useRef","isOpen","useUnit","$isOpen","isHelpRequestPending","sendHelpRequestFx","pending","isTextToSpeechPending","api","textToSpeechTextFx","audioStatus","t2s","$status","currentPlayingId","$currentPlayingId","highlightedWordIndex","wordHighlight","$highlightedWordIndex","isTranslated","translation","$isTranslated","errorSpottingEnabled","errorSpotting","$isEnabled","messages","useStoreMap","$currentChatData","lastMessageId","at","id","renderedCountRef","length","animatedIdsRef","Set","useEffect","current","showBottomFade","setShowBottomFade","useState","handleScroll","useCallback","contentOffset","layoutMeasurement","contentSize","nativeEvent","isAtBottom","y","height","MAX_HEIGHT","shouldWrapMessage","jsxs","View","style","styles","container","maxHeight","children","jsx","ScrollView","bounces","contentContainerStyle","list","onScroll","scrollEventThrottle","onContentSizeChange","_","scrollToEnd","setScrollActive","gap","messagesWithoutInput","map","message","index","key","isPlayingMessage","messageHighlightIndex","isWordHighlightEnabled","isNew","hasIcon","isOwnMessage","add","shouldAnimate","messageWithIcon","undefined","icon","ChatbotIcon","width","AnimatedMessage","animate","ConditionalWrapper","withWrapper","Wrapper","ChatMessage","variant","MessageVariant","SENT","RECEIVED","withErrorSpotting","t2sState","isEnabled","isActive","isLoading","status","disabled","MessageLoader","entering","FadeIn","duration","exiting","FadeOut","bottomFade","pointerEvents","inputRow","CloseButton","onPress","ChatInput","hasMessages","exports","StyleSheet","create","flex","alignItems","paddingRight","SPACING","paddingVertical","marginBottom","flexDirection","scrollContainer","overflow","position","bottom","right","backgroundImage","marginRight"],"sourceRoot":"../../../../../../src","sources":["features/chatbot/components/Chat/Chat.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeUi","_styleTypes","_modelTypes","_MessageContent","_jsxRuntime","e","__esModule","default","ReceivedMessage","message","isTranslated","t2sState","colorScheme","ColorScheme","Blue","withErrorSpotting","highlightedWordIndex","TTSHighlightRenderer","text","translatedMessage","jsx","View","style","styles","container","children","MessageContent","variant","MessageVariant","RECEIVED","exports","StyleSheet","create","flex","flexDirection","maxWidth","width","alignItems","justifyContent","padding","shadowColor","shadowOffset","height","shadowOpacity","shadowRadius","elevation","borderRadius","BORDER_RADIUS","borderBottomLeftRadius","backgroundColor"],"sourceRoot":"../../../../../../src","sources":["features/chatbot/components/ChatMessage/ReceivedMessage.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AAEA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AAEA,IAAAK,eAAA,GAAAL,OAAA;AAAiD,IAAAM,WAAA,GAAAN,OAAA;AAAA,SAAAD,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE1C,MAAMG,eAAe,GAAGA,CAAC;EAC9BC,OAAO;EACPC,YAAY;EACZC,QAAQ;EACRC,WAAW,GAAGC,uBAAW,CAACC,IAAI;EAC9BC,iBAAiB;EACjBC,oBAAoB;EACpBC;AACY,CAAC,KAAK;EAClB,MAAMC,IAAI,GAAGR,YAAY,GAAGD,OAAO,CAACU,iBAAiB,GAAGV,OAAO,CAACA,OAAO;EAEvE,oBACE,IAAAL,WAAA,CAAAgB,GAAA,EAACrB,YAAA,CAAAsB,IAAI;IAACC,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,eAC5B,IAAArB,WAAA,CAAAgB,GAAA,EAACrB,YAAA,CAAAsB,IAAI;MAACC,KAAK,EAAEC,MAAM,CAACd,OAAQ;MAAAgB,QAAA,eAC1B,IAAArB,WAAA,CAAAgB,GAAA,EAACjB,eAAA,CAAAuB,cAAc;QACbjB,OAAO,EAAEA,OAAQ;QACjBkB,OAAO,EAAEC,0BAAc,CAACC,QAAS;QACjClB,QAAQ,EAAEA,QAAS;QACnBO,IAAI,EAAEA,IAAI,IAAI,EAAG;QACjBN,WAAW,EAAEA,WAAY;QACzBG,iBAAiB,EAAEA,iBAAkB;QACrCC,oBAAoB,EAAEA,oBAAqB;QAC3CC,oBAAoB,EAAEA;MAAqB,CAC5C;IAAC,CACE;EAAC,CACH,CAAC;AAEX,CAAC;AAAAa,OAAA,CAAAtB,eAAA,GAAAA,eAAA;AAED,MAAMe,MAAM,GAAGQ,uBAAU,CAACC,MAAM,CAAC;EAC/BR,SAAS,EAAE;IACTS,IAAI,EAAE,CAAC;IACPC,aAAa,EAAE,KAAK;IACpBC,QAAQ,EAAE,GAAG;IACbC,KAAK,EAAE,GAAG;IACVC,UAAU,EAAE,UAAU;IACtBC,cAAc,EAAE;
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeUi","_styleTypes","_modelTypes","_MessageContent","_jsxRuntime","e","__esModule","default","ReceivedMessage","message","isTranslated","t2sState","colorScheme","ColorScheme","Blue","withErrorSpotting","highlightedWordIndex","TTSHighlightRenderer","text","translatedMessage","jsx","View","style","styles","container","children","MessageContent","variant","MessageVariant","RECEIVED","exports","StyleSheet","create","flex","flexDirection","maxWidth","width","alignItems","justifyContent","paddingRight","padding","shadowColor","shadowOffset","height","shadowOpacity","shadowRadius","elevation","borderRadius","BORDER_RADIUS","borderBottomLeftRadius","backgroundColor"],"sourceRoot":"../../../../../../src","sources":["features/chatbot/components/ChatMessage/ReceivedMessage.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AAEA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AAEA,IAAAK,eAAA,GAAAL,OAAA;AAAiD,IAAAM,WAAA,GAAAN,OAAA;AAAA,SAAAD,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE1C,MAAMG,eAAe,GAAGA,CAAC;EAC9BC,OAAO;EACPC,YAAY;EACZC,QAAQ;EACRC,WAAW,GAAGC,uBAAW,CAACC,IAAI;EAC9BC,iBAAiB;EACjBC,oBAAoB;EACpBC;AACY,CAAC,KAAK;EAClB,MAAMC,IAAI,GAAGR,YAAY,GAAGD,OAAO,CAACU,iBAAiB,GAAGV,OAAO,CAACA,OAAO;EAEvE,oBACE,IAAAL,WAAA,CAAAgB,GAAA,EAACrB,YAAA,CAAAsB,IAAI;IAACC,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,eAC5B,IAAArB,WAAA,CAAAgB,GAAA,EAACrB,YAAA,CAAAsB,IAAI;MAACC,KAAK,EAAEC,MAAM,CAACd,OAAQ;MAAAgB,QAAA,eAC1B,IAAArB,WAAA,CAAAgB,GAAA,EAACjB,eAAA,CAAAuB,cAAc;QACbjB,OAAO,EAAEA,OAAQ;QACjBkB,OAAO,EAAEC,0BAAc,CAACC,QAAS;QACjClB,QAAQ,EAAEA,QAAS;QACnBO,IAAI,EAAEA,IAAI,IAAI,EAAG;QACjBN,WAAW,EAAEA,WAAY;QACzBG,iBAAiB,EAAEA,iBAAkB;QACrCC,oBAAoB,EAAEA,oBAAqB;QAC3CC,oBAAoB,EAAEA;MAAqB,CAC5C;IAAC,CACE;EAAC,CACH,CAAC;AAEX,CAAC;AAAAa,OAAA,CAAAtB,eAAA,GAAAA,eAAA;AAED,MAAMe,MAAM,GAAGQ,uBAAU,CAACC,MAAM,CAAC;EAC/BR,SAAS,EAAE;IACTS,IAAI,EAAE,CAAC;IACPC,aAAa,EAAE,KAAK;IACpBC,QAAQ,EAAE,GAAG;IACbC,KAAK,EAAE,GAAG;IACVC,UAAU,EAAE,UAAU;IACtBC,cAAc,EAAE,UAAU;IAC1BC,YAAY,EAAE;IACd;EACF,CAAC;EACD9B,OAAO,EAAE;IACP;IACAwB,IAAI,EAAE,CAAC;IACPC,aAAa,EAAE,KAAK;IACpBC,QAAQ,EAAE,GAAG;IACbK,OAAO,EAAE,CAAC;IACVC,WAAW,EAAE,MAAM;IACnBC,YAAY,EAAE;MAAEN,KAAK,EAAE,CAAC;MAAEO,MAAM,EAAE;IAAE,CAAC;IACrCC,aAAa,EAAE,IAAI;IACnBC,YAAY,EAAE,CAAC;IACfC,SAAS,EAAE,CAAC;IACZC,YAAY,EAAEC,4BAAa,CAAC,GAAG,CAAC;IAChCC,sBAAsB,EAAE,CAAC;IACzBC,eAAe,EAAE,SAAS;IAC1Bb,UAAU,EAAE,UAAU;IACtBC,cAAc,EAAE;EAClB;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import React, { useCallback, useRef, useState } from 'react';
|
|
3
|
+
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
|
4
4
|
import { Platform, ScrollView, StyleSheet, useWindowDimensions, View } from 'react-native';
|
|
5
5
|
import { useStoreMap, useUnit } from 'effector-react';
|
|
6
|
+
import Animated, { FadeIn, FadeOut } from 'react-native-reanimated';
|
|
6
7
|
import { SPACING } from '@magmamath/react-native-ui';
|
|
7
8
|
import { ChatbotIcon } from "../../../../shared/icons/ChatbotIcon.js";
|
|
8
9
|
import { AnimatedMessage } from "../ChatMessage/AnimatedMessage.js";
|
|
@@ -45,6 +46,12 @@ export const Chat = ({
|
|
|
45
46
|
}) => messages);
|
|
46
47
|
const lastMessageId = messages.at(-1)?.id;
|
|
47
48
|
const renderedCountRef = useRef(messages.length);
|
|
49
|
+
const animatedIdsRef = useRef(new Set());
|
|
50
|
+
useEffect(() => {
|
|
51
|
+
if (messages.length < renderedCountRef.current) {
|
|
52
|
+
renderedCountRef.current = messages.length;
|
|
53
|
+
}
|
|
54
|
+
}, [messages.length]);
|
|
48
55
|
const [showBottomFade, setShowBottomFade] = useState(false);
|
|
49
56
|
const handleScroll = useCallback(e => {
|
|
50
57
|
const {
|
|
@@ -83,6 +90,10 @@ export const Chat = ({
|
|
|
83
90
|
const messageHighlightIndex = model.t2s.isWordHighlightEnabled && isPlayingMessage ? highlightedWordIndex : -1;
|
|
84
91
|
const isNew = index >= renderedCountRef.current;
|
|
85
92
|
const hasIcon = !message.isOwnMessage && message.id === lastMessageId;
|
|
93
|
+
if (isNew && !animatedIdsRef.current.has(message.id)) {
|
|
94
|
+
animatedIdsRef.current.add(message.id);
|
|
95
|
+
}
|
|
96
|
+
const shouldAnimate = animatedIdsRef.current.has(message.id);
|
|
86
97
|
return /*#__PURE__*/_jsxs(View, {
|
|
87
98
|
style: hasIcon ? styles.messageWithIcon : undefined,
|
|
88
99
|
children: [hasIcon && /*#__PURE__*/_jsx(View, {
|
|
@@ -92,7 +103,7 @@ export const Chat = ({
|
|
|
92
103
|
height: 73
|
|
93
104
|
})
|
|
94
105
|
}), /*#__PURE__*/_jsx(AnimatedMessage, {
|
|
95
|
-
animate:
|
|
106
|
+
animate: shouldAnimate,
|
|
96
107
|
children: /*#__PURE__*/_jsx(ConditionalWrapper, {
|
|
97
108
|
withWrapper: shouldWrapMessage,
|
|
98
109
|
Wrapper: MessageWrapper,
|
|
@@ -117,7 +128,9 @@ export const Chat = ({
|
|
|
117
128
|
}, key);
|
|
118
129
|
}), isHelpRequestPending && /*#__PURE__*/_jsx(MessageLoader, {})]
|
|
119
130
|
})
|
|
120
|
-
}), showBottomFade && /*#__PURE__*/_jsx(View, {
|
|
131
|
+
}), showBottomFade && /*#__PURE__*/_jsx(Animated.View, {
|
|
132
|
+
entering: FadeIn.duration(200),
|
|
133
|
+
exiting: FadeOut.duration(200),
|
|
121
134
|
style: styles.bottomFade,
|
|
122
135
|
pointerEvents: "none"
|
|
123
136
|
}), isOpen && /*#__PURE__*/_jsxs(View, {
|
|
@@ -136,9 +149,9 @@ const styles = StyleSheet.create({
|
|
|
136
149
|
container: {
|
|
137
150
|
flex: 1,
|
|
138
151
|
alignItems: 'flex-end',
|
|
139
|
-
|
|
152
|
+
width: 374,
|
|
140
153
|
height: '100%',
|
|
141
|
-
paddingRight: SPACING['
|
|
154
|
+
paddingRight: SPACING['100']
|
|
142
155
|
},
|
|
143
156
|
list: {
|
|
144
157
|
alignItems: 'flex-end',
|
|
@@ -157,12 +170,12 @@ const styles = StyleSheet.create({
|
|
|
157
170
|
overflow: 'hidden'
|
|
158
171
|
},
|
|
159
172
|
bottomFade: {
|
|
160
|
-
width:
|
|
173
|
+
width: 374,
|
|
161
174
|
position: 'absolute',
|
|
162
175
|
bottom: 62,
|
|
163
176
|
right: 0,
|
|
164
|
-
height:
|
|
165
|
-
backgroundImage: 'linear-gradient(to top, rgba(255,255,255), transparent)'
|
|
177
|
+
height: 40,
|
|
178
|
+
backgroundImage: 'linear-gradient(to top, rgba(255,255,255,1) 0%, rgba(255,255,255,0.8) 40%, transparent 100%)'
|
|
166
179
|
},
|
|
167
180
|
messageWithIcon: {
|
|
168
181
|
flexDirection: 'row',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useRef","useState","Platform","ScrollView","StyleSheet","useWindowDimensions","View","useStoreMap","useUnit","SPACING","ChatbotIcon","AnimatedMessage","ChatMessage","MessageLoader","ChatInput","CloseButton","MessageVariant","ColorScheme","ConditionalWrapper","jsx","_jsx","jsxs","_jsxs","SCROLL_BOTTOM_THRESHOLD","TOOLBAR_HEIGHT","BOTTOM_OFFSET","select","web","default","Chat","model","isHintFeedback","isTextToSpeechEnabled","isInputDisabled","colorScheme","Blue","MessageWrapper","TTSHighlightRenderer","onPressClose","dimensions","ref","isOpen","$isOpen","isHelpRequestPending","sendHelpRequestFx","pending","isTextToSpeechPending","api","textToSpeechTextFx","audioStatus","t2s","$status","currentPlayingId","$currentPlayingId","highlightedWordIndex","wordHighlight","$highlightedWordIndex","isTranslated","translation","$isTranslated","errorSpottingEnabled","errorSpotting","$isEnabled","messages","$currentChatData","lastMessageId","at","id","renderedCountRef","length","showBottomFade","setShowBottomFade","handleScroll","e","contentOffset","layoutMeasurement","contentSize","nativeEvent","isAtBottom","y","height","MAX_HEIGHT","shouldWrapMessage","style","styles","container","maxHeight","children","bounces","contentContainerStyle","list","onScroll","scrollEventThrottle","onContentSizeChange","_","
|
|
1
|
+
{"version":3,"names":["React","useCallback","useEffect","useRef","useState","Platform","ScrollView","StyleSheet","useWindowDimensions","View","useStoreMap","useUnit","Animated","FadeIn","FadeOut","SPACING","ChatbotIcon","AnimatedMessage","ChatMessage","MessageLoader","ChatInput","CloseButton","MessageVariant","ColorScheme","ConditionalWrapper","jsx","_jsx","jsxs","_jsxs","SCROLL_BOTTOM_THRESHOLD","TOOLBAR_HEIGHT","BOTTOM_OFFSET","select","web","default","Chat","model","isHintFeedback","isTextToSpeechEnabled","isInputDisabled","colorScheme","Blue","MessageWrapper","TTSHighlightRenderer","onPressClose","dimensions","ref","isOpen","$isOpen","isHelpRequestPending","sendHelpRequestFx","pending","isTextToSpeechPending","api","textToSpeechTextFx","audioStatus","t2s","$status","currentPlayingId","$currentPlayingId","highlightedWordIndex","wordHighlight","$highlightedWordIndex","isTranslated","translation","$isTranslated","errorSpottingEnabled","errorSpotting","$isEnabled","messages","$currentChatData","lastMessageId","at","id","renderedCountRef","length","animatedIdsRef","Set","current","showBottomFade","setShowBottomFade","handleScroll","e","contentOffset","layoutMeasurement","contentSize","nativeEvent","isAtBottom","y","height","MAX_HEIGHT","shouldWrapMessage","style","styles","container","maxHeight","children","bounces","contentContainerStyle","list","onScroll","scrollEventThrottle","onContentSizeChange","_","scrollToEnd","setScrollActive","gap","messagesWithoutInput","map","message","index","key","isPlayingMessage","messageHighlightIndex","isWordHighlightEnabled","isNew","hasIcon","isOwnMessage","has","add","shouldAnimate","messageWithIcon","undefined","icon","width","animate","withWrapper","Wrapper","variant","SENT","RECEIVED","withErrorSpotting","t2sState","isEnabled","isActive","isLoading","status","disabled","entering","duration","exiting","bottomFade","pointerEvents","inputRow","onPress","hasMessages","create","flex","alignItems","paddingRight","paddingVertical","marginBottom","flexDirection","scrollContainer","overflow","position","bottom","right","backgroundImage","marginRight"],"sourceRoot":"../../../../../../src","sources":["features/chatbot/components/Chat/Chat.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","StyleSheet","View","BORDER_RADIUS","ColorScheme","MessageVariant","MessageContent","jsx","_jsx","ReceivedMessage","message","isTranslated","t2sState","colorScheme","Blue","withErrorSpotting","highlightedWordIndex","TTSHighlightRenderer","text","translatedMessage","style","styles","container","children","variant","RECEIVED","create","flex","flexDirection","maxWidth","width","alignItems","justifyContent","padding","shadowColor","shadowOffset","height","shadowOpacity","shadowRadius","elevation","borderRadius","borderBottomLeftRadius","backgroundColor"],"sourceRoot":"../../../../../../src","sources":["features/chatbot/components/ChatMessage/ReceivedMessage.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,SAASC,aAAa,QAAgB,4BAA4B;AAElE,SAASC,WAAW,QAAQ,4BAAyB;AACrD,SAASC,cAAc,QAAQ,4BAAyB;AAExD,SAASC,cAAc,QAAQ,qBAAkB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAEjD,OAAO,MAAMC,eAAe,GAAGA,CAAC;EAC9BC,OAAO;EACPC,YAAY;EACZC,QAAQ;EACRC,WAAW,GAAGT,WAAW,CAACU,IAAI;EAC9BC,iBAAiB;EACjBC,oBAAoB;EACpBC;AACY,CAAC,KAAK;EAClB,MAAMC,IAAI,GAAGP,YAAY,GAAGD,OAAO,CAACS,iBAAiB,GAAGT,OAAO,CAACA,OAAO;EAEvE,oBACEF,IAAA,CAACN,IAAI;IAACkB,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,eAC5Bf,IAAA,CAACN,IAAI;MAACkB,KAAK,EAAEC,MAAM,CAACX,OAAQ;MAAAa,QAAA,eAC1Bf,IAAA,CAACF,cAAc;QACbI,OAAO,EAAEA,OAAQ;QACjBc,OAAO,EAAEnB,cAAc,CAACoB,QAAS;QACjCb,QAAQ,EAAEA,QAAS;QACnBM,IAAI,EAAEA,IAAI,IAAI,EAAG;QACjBL,WAAW,EAAEA,WAAY;QACzBE,iBAAiB,EAAEA,iBAAkB;QACrCC,oBAAoB,EAAEA,oBAAqB;QAC3CC,oBAAoB,EAAEA;MAAqB,CAC5C;IAAC,CACE;EAAC,CACH,CAAC;AAEX,CAAC;AAED,MAAMI,MAAM,GAAGpB,UAAU,CAACyB,MAAM,CAAC;EAC/BJ,SAAS,EAAE;IACTK,IAAI,EAAE,CAAC;IACPC,aAAa,EAAE,KAAK;IACpBC,QAAQ,EAAE,GAAG;IACbC,KAAK,EAAE,GAAG;IACVC,UAAU,EAAE,UAAU;IACtBC,cAAc,EAAE;
|
|
1
|
+
{"version":3,"names":["React","StyleSheet","View","BORDER_RADIUS","ColorScheme","MessageVariant","MessageContent","jsx","_jsx","ReceivedMessage","message","isTranslated","t2sState","colorScheme","Blue","withErrorSpotting","highlightedWordIndex","TTSHighlightRenderer","text","translatedMessage","style","styles","container","children","variant","RECEIVED","create","flex","flexDirection","maxWidth","width","alignItems","justifyContent","paddingRight","padding","shadowColor","shadowOffset","height","shadowOpacity","shadowRadius","elevation","borderRadius","borderBottomLeftRadius","backgroundColor"],"sourceRoot":"../../../../../../src","sources":["features/chatbot/components/ChatMessage/ReceivedMessage.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,SAASC,aAAa,QAAgB,4BAA4B;AAElE,SAASC,WAAW,QAAQ,4BAAyB;AACrD,SAASC,cAAc,QAAQ,4BAAyB;AAExD,SAASC,cAAc,QAAQ,qBAAkB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAEjD,OAAO,MAAMC,eAAe,GAAGA,CAAC;EAC9BC,OAAO;EACPC,YAAY;EACZC,QAAQ;EACRC,WAAW,GAAGT,WAAW,CAACU,IAAI;EAC9BC,iBAAiB;EACjBC,oBAAoB;EACpBC;AACY,CAAC,KAAK;EAClB,MAAMC,IAAI,GAAGP,YAAY,GAAGD,OAAO,CAACS,iBAAiB,GAAGT,OAAO,CAACA,OAAO;EAEvE,oBACEF,IAAA,CAACN,IAAI;IAACkB,KAAK,EAAEC,MAAM,CAACC,SAAU;IAAAC,QAAA,eAC5Bf,IAAA,CAACN,IAAI;MAACkB,KAAK,EAAEC,MAAM,CAACX,OAAQ;MAAAa,QAAA,eAC1Bf,IAAA,CAACF,cAAc;QACbI,OAAO,EAAEA,OAAQ;QACjBc,OAAO,EAAEnB,cAAc,CAACoB,QAAS;QACjCb,QAAQ,EAAEA,QAAS;QACnBM,IAAI,EAAEA,IAAI,IAAI,EAAG;QACjBL,WAAW,EAAEA,WAAY;QACzBE,iBAAiB,EAAEA,iBAAkB;QACrCC,oBAAoB,EAAEA,oBAAqB;QAC3CC,oBAAoB,EAAEA;MAAqB,CAC5C;IAAC,CACE;EAAC,CACH,CAAC;AAEX,CAAC;AAED,MAAMI,MAAM,GAAGpB,UAAU,CAACyB,MAAM,CAAC;EAC/BJ,SAAS,EAAE;IACTK,IAAI,EAAE,CAAC;IACPC,aAAa,EAAE,KAAK;IACpBC,QAAQ,EAAE,GAAG;IACbC,KAAK,EAAE,GAAG;IACVC,UAAU,EAAE,UAAU;IACtBC,cAAc,EAAE,UAAU;IAC1BC,YAAY,EAAE;IACd;EACF,CAAC;EACDvB,OAAO,EAAE;IACP;IACAiB,IAAI,EAAE,CAAC;IACPC,aAAa,EAAE,KAAK;IACpBC,QAAQ,EAAE,GAAG;IACbK,OAAO,EAAE,CAAC;IACVC,WAAW,EAAE,MAAM;IACnBC,YAAY,EAAE;MAAEN,KAAK,EAAE,CAAC;MAAEO,MAAM,EAAE;IAAE,CAAC;IACrCC,aAAa,EAAE,IAAI;IACnBC,YAAY,EAAE,CAAC;IACfC,SAAS,EAAE,CAAC;IACZC,YAAY,EAAEtC,aAAa,CAAC,GAAG,CAAC;IAChCuC,sBAAsB,EAAE,CAAC;IACzBC,eAAe,EAAE,SAAS;IAC1BZ,UAAU,EAAE,UAAU;IACtBC,cAAc,EAAE;EAClB;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chat.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/chatbot/components/Chat/Chat.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"Chat.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/chatbot/components/Chat/Chat.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAA4C,MAAM,OAAO,CAAA;AAczG,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAQvD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAErD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAU5D,KAAK,SAAS,GAAG;IACf,KAAK,EAAE,YAAY,CAAA;IACnB,cAAc,EAAE,OAAO,CAAA;IACvB,qBAAqB,EAAE,OAAO,CAAA;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,cAAc,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;IACjD,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAC3C,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,IAAI,wIASd,SAAS,sBAoIX,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chat.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/chatbot/components/Chat/Chat.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"Chat.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/chatbot/components/Chat/Chat.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAA4C,MAAM,OAAO,CAAA;AAczG,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAQvD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAErD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAU5D,KAAK,SAAS,GAAG;IACf,KAAK,EAAE,YAAY,CAAA;IACnB,cAAc,EAAE,OAAO,CAAA;IACvB,qBAAqB,EAAE,OAAO,CAAA;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,cAAc,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;IACjD,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;IAC3C,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,IAAI,wIASd,SAAS,sBAoIX,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { ComponentType, PropsWithChildren, useCallback, useRef, useState } from 'react'
|
|
1
|
+
import React, { ComponentType, PropsWithChildren, useCallback, useEffect, useRef, useState } from 'react'
|
|
2
2
|
import {
|
|
3
3
|
NativeScrollEvent,
|
|
4
4
|
NativeSyntheticEvent,
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
View,
|
|
10
10
|
} from 'react-native'
|
|
11
11
|
import { useStoreMap, useUnit } from 'effector-react'
|
|
12
|
+
import Animated, { FadeIn, FadeOut } from 'react-native-reanimated'
|
|
12
13
|
import { SPACING } from '@magmamath/react-native-ui'
|
|
13
14
|
|
|
14
15
|
import { ChatbotModel } from '../../model/ChatBotModel'
|
|
@@ -69,6 +70,13 @@ export const Chat = ({
|
|
|
69
70
|
const messages = useStoreMap(model.$currentChatData, ({ messages }) => messages)
|
|
70
71
|
const lastMessageId = messages.at(-1)?.id
|
|
71
72
|
const renderedCountRef = useRef(messages.length)
|
|
73
|
+
const animatedIdsRef = useRef(new Set<string>())
|
|
74
|
+
|
|
75
|
+
useEffect(() => {
|
|
76
|
+
if (messages.length < renderedCountRef.current) {
|
|
77
|
+
renderedCountRef.current = messages.length
|
|
78
|
+
}
|
|
79
|
+
}, [messages.length])
|
|
72
80
|
|
|
73
81
|
const [showBottomFade, setShowBottomFade] = useState(false)
|
|
74
82
|
|
|
@@ -111,6 +119,11 @@ export const Chat = ({
|
|
|
111
119
|
const isNew = index >= renderedCountRef.current
|
|
112
120
|
const hasIcon = !message.isOwnMessage && message.id === lastMessageId
|
|
113
121
|
|
|
122
|
+
if (isNew && !animatedIdsRef.current.has(message.id)) {
|
|
123
|
+
animatedIdsRef.current.add(message.id)
|
|
124
|
+
}
|
|
125
|
+
const shouldAnimate = animatedIdsRef.current.has(message.id)
|
|
126
|
+
|
|
114
127
|
return (
|
|
115
128
|
<View key={key} style={hasIcon ? styles.messageWithIcon : undefined}>
|
|
116
129
|
{hasIcon && (
|
|
@@ -118,7 +131,7 @@ export const Chat = ({
|
|
|
118
131
|
<ChatbotIcon width={53} height={73} />
|
|
119
132
|
</View>
|
|
120
133
|
)}
|
|
121
|
-
<AnimatedMessage animate={
|
|
134
|
+
<AnimatedMessage animate={shouldAnimate}>
|
|
122
135
|
<ConditionalWrapper withWrapper={shouldWrapMessage} Wrapper={MessageWrapper}>
|
|
123
136
|
<ChatMessage
|
|
124
137
|
isTranslated={isTranslated}
|
|
@@ -148,7 +161,14 @@ export const Chat = ({
|
|
|
148
161
|
</View>
|
|
149
162
|
)}
|
|
150
163
|
</ScrollView>
|
|
151
|
-
{showBottomFade &&
|
|
164
|
+
{showBottomFade && (
|
|
165
|
+
<Animated.View
|
|
166
|
+
entering={FadeIn.duration(200)}
|
|
167
|
+
exiting={FadeOut.duration(200)}
|
|
168
|
+
style={styles.bottomFade}
|
|
169
|
+
pointerEvents="none"
|
|
170
|
+
/>
|
|
171
|
+
)}
|
|
152
172
|
|
|
153
173
|
{isOpen && (
|
|
154
174
|
<View style={styles.inputRow}>
|
|
@@ -170,9 +190,9 @@ const styles = StyleSheet.create({
|
|
|
170
190
|
container: {
|
|
171
191
|
flex: 1,
|
|
172
192
|
alignItems: 'flex-end',
|
|
173
|
-
|
|
193
|
+
width: 374,
|
|
174
194
|
height: '100%',
|
|
175
|
-
paddingRight: SPACING['
|
|
195
|
+
paddingRight: SPACING['100'],
|
|
176
196
|
},
|
|
177
197
|
list: {
|
|
178
198
|
alignItems: 'flex-end',
|
|
@@ -191,12 +211,13 @@ const styles = StyleSheet.create({
|
|
|
191
211
|
overflow: 'hidden',
|
|
192
212
|
},
|
|
193
213
|
bottomFade: {
|
|
194
|
-
width:
|
|
214
|
+
width: 374,
|
|
195
215
|
position: 'absolute',
|
|
196
216
|
bottom: 62,
|
|
197
217
|
right: 0,
|
|
198
|
-
height:
|
|
199
|
-
backgroundImage:
|
|
218
|
+
height: 40,
|
|
219
|
+
backgroundImage:
|
|
220
|
+
'linear-gradient(to top, rgba(255,255,255,1) 0%, rgba(255,255,255,0.8) 40%, transparent 100%)',
|
|
200
221
|
} as any,
|
|
201
222
|
messageWithIcon: {
|
|
202
223
|
flexDirection: 'row',
|