@magmamath/students-features 0.9.107-rc.chatbot-7 → 0.9.107
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 +22 -21
- package/dist/commonjs/features/chatbot/components/Chat/Chat.js.map +1 -1
- package/dist/commonjs/features/chatbot/components/ChatControls/ChatControls.js +4 -4
- package/dist/commonjs/features/chatbot/components/ChatControls/ChatControls.js.map +1 -1
- package/dist/commonjs/features/chatbot/components/Chatbot.js +10 -2
- package/dist/commonjs/features/chatbot/components/Chatbot.js.map +1 -1
- package/dist/commonjs/lib/components/ConditionalWrapper.js +23 -0
- package/dist/commonjs/lib/components/ConditionalWrapper.js.map +1 -0
- package/dist/module/features/chatbot/components/Chat/Chat.js +22 -21
- package/dist/module/features/chatbot/components/Chat/Chat.js.map +1 -1
- package/dist/module/features/chatbot/components/ChatControls/ChatControls.js +5 -5
- package/dist/module/features/chatbot/components/ChatControls/ChatControls.js.map +1 -1
- package/dist/module/features/chatbot/components/Chatbot.js +10 -2
- package/dist/module/features/chatbot/components/Chatbot.js.map +1 -1
- package/dist/module/lib/components/ConditionalWrapper.js +17 -0
- package/dist/module/lib/components/ConditionalWrapper.js.map +1 -0
- package/dist/typescript/commonjs/features/chatbot/components/Chat/Chat.d.ts +2 -2
- package/dist/typescript/commonjs/features/chatbot/components/Chat/Chat.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/components/ChatControls/ChatControls.d.ts +2 -1
- package/dist/typescript/commonjs/features/chatbot/components/ChatControls/ChatControls.d.ts.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/components/Chatbot.d.ts.map +1 -1
- package/dist/typescript/commonjs/lib/components/ConditionalWrapper.d.ts +9 -0
- package/dist/typescript/commonjs/lib/components/ConditionalWrapper.d.ts.map +1 -0
- package/dist/typescript/module/features/chatbot/components/Chat/Chat.d.ts +2 -2
- package/dist/typescript/module/features/chatbot/components/Chat/Chat.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/components/ChatControls/ChatControls.d.ts +2 -1
- package/dist/typescript/module/features/chatbot/components/ChatControls/ChatControls.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/components/Chatbot.d.ts.map +1 -1
- package/dist/typescript/module/lib/components/ConditionalWrapper.d.ts +9 -0
- package/dist/typescript/module/lib/components/ConditionalWrapper.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/features/chatbot/components/Chat/Chat.tsx +24 -27
- package/src/features/chatbot/components/ChatControls/ChatControls.tsx +5 -7
- package/src/features/chatbot/components/Chatbot.tsx +12 -3
- package/src/lib/components/ConditionalWrapper.tsx +15 -0
|
@@ -12,6 +12,7 @@ var _MessageLoader = require("../ChatMessage/MessageLoader.js");
|
|
|
12
12
|
var _ChatInput = require("../ChatInput/ChatInput.js");
|
|
13
13
|
var _modelTypes = require("../../types/model.types.js");
|
|
14
14
|
var _styleTypes = require("../../types/style.types.js");
|
|
15
|
+
var _ConditionalWrapper = require("../../../../lib/components/ConditionalWrapper.js");
|
|
15
16
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
17
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
17
18
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
@@ -26,7 +27,7 @@ const Chat = ({
|
|
|
26
27
|
isTextToSpeechEnabled,
|
|
27
28
|
isInputDisabled,
|
|
28
29
|
colorScheme = _styleTypes.ColorScheme.Blue,
|
|
29
|
-
|
|
30
|
+
MessageWrapper
|
|
30
31
|
}) => {
|
|
31
32
|
const dimensions = (0, _reactNative.useWindowDimensions)();
|
|
32
33
|
const ref = (0, _react.useRef)(null);
|
|
@@ -42,6 +43,7 @@ const Chat = ({
|
|
|
42
43
|
}) => messages);
|
|
43
44
|
const lastMessageId = messages.at(-1)?.id;
|
|
44
45
|
const MAX_HEIGHT = dimensions.height - TOOLBAR_HEIGHT - BOTTOM_OFFSET;
|
|
46
|
+
const shouldWrapMessage = MessageWrapper && isInputDisabled && messages.length === 1;
|
|
45
47
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
|
|
46
48
|
style: [styles.container, {
|
|
47
49
|
maxHeight: MAX_HEIGHT
|
|
@@ -58,26 +60,25 @@ const Chat = ({
|
|
|
58
60
|
},
|
|
59
61
|
children: [isOpen && /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
|
|
60
62
|
style: [styles.gap, isInputDisabled && styles.messagesWithoutInput],
|
|
61
|
-
children: [messages.map(message => {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
}), isHelpRequestPending && /*#__PURE__*/(0, _jsxRuntime.jsx)(_MessageLoader.MessageLoader, {
|
|
63
|
+
children: [messages.map(message => /*#__PURE__*/(0, _jsxRuntime.jsx)(_ConditionalWrapper.ConditionalWrapper, {
|
|
64
|
+
withWrapper: shouldWrapMessage,
|
|
65
|
+
Wrapper: MessageWrapper,
|
|
66
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChatMessage.ChatMessage, {
|
|
67
|
+
isTranslated: isTranslated,
|
|
68
|
+
withIcon: !message.isOwnMessage && message.id === lastMessageId,
|
|
69
|
+
message: message,
|
|
70
|
+
variant: message.isOwnMessage ? _modelTypes.MessageVariant.SENT : _modelTypes.MessageVariant.RECEIVED,
|
|
71
|
+
colorScheme: colorScheme,
|
|
72
|
+
withErrorSpotting: errorSpottingEnabled && !message.isOwnMessage,
|
|
73
|
+
t2sState: {
|
|
74
|
+
isEnabled: isTextToSpeechEnabled && !message.isOwnMessage,
|
|
75
|
+
isActive: message.id === currentPlayingId,
|
|
76
|
+
isLoading: isTextToSpeechPending,
|
|
77
|
+
status: audioStatus,
|
|
78
|
+
disabled: isTextToSpeechPending
|
|
79
|
+
}
|
|
80
|
+
}, message.id)
|
|
81
|
+
})), isHelpRequestPending && /*#__PURE__*/(0, _jsxRuntime.jsx)(_MessageLoader.MessageLoader, {
|
|
81
82
|
colorScheme: colorScheme
|
|
82
83
|
})]
|
|
83
84
|
}), isOpen && !isInputDisabled && /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChatInput.ChatInput, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_effectorReact","_ChatMessage","_MessageLoader","_ChatInput","_modelTypes","_styleTypes","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","TOOLBAR_HEIGHT","BOTTOM_OFFSET","Platform","select","web","Chat","model","isHintFeedback","isTextToSpeechEnabled","isInputDisabled","colorScheme","ColorScheme","Blue","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_effectorReact","_ChatMessage","_MessageLoader","_ChatInput","_modelTypes","_styleTypes","_ConditionalWrapper","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","TOOLBAR_HEIGHT","BOTTOM_OFFSET","Platform","select","web","Chat","model","isHintFeedback","isTextToSpeechEnabled","isInputDisabled","colorScheme","ColorScheme","Blue","MessageWrapper","dimensions","useWindowDimensions","ref","useRef","isOpen","useUnit","$isOpen","isHelpRequestPending","sendHelpRequestFx","pending","isTextToSpeechPending","api","textToSpeechTextFx","currentPlayingId","t2s","$currentPlayingId","isTranslated","translation","$isTranslated","audioStatus","$status","errorSpottingEnabled","errorSpotting","$isEnabled","messages","useStoreMap","$currentChatData","lastMessageId","at","id","MAX_HEIGHT","height","shouldWrapMessage","length","jsx","View","style","styles","container","maxHeight","children","jsxs","ScrollView","bounces","contentContainerStyle","list","onContentSizeChange","_","current","scrollToEnd","setScrollActive","gap","messagesWithoutInput","map","message","ConditionalWrapper","withWrapper","Wrapper","ChatMessage","withIcon","isOwnMessage","variant","MessageVariant","SENT","RECEIVED","withErrorSpotting","t2sState","isEnabled","isActive","isLoading","status","disabled","MessageLoader","ChatInput","hasMessages","exports","StyleSheet","create","flex","alignItems","width","paddingVertical","paddingRight","marginBottom"],"sourceRoot":"../../../../../../src","sources":["features/chatbot/components/Chat/Chat.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -7,10 +7,10 @@ exports.ChatControls = void 0;
|
|
|
7
7
|
var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
var _reactNativeUi = require("@magmamath/react-native-ui");
|
|
10
|
+
var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
|
|
10
11
|
var _effectorReact = require("effector-react");
|
|
11
12
|
var _ChatbotIcon = require("../../../../shared/icons/ChatbotIcon.js");
|
|
12
13
|
var _CloseIcon = require("../../../../shared/icons/CloseIcon.js");
|
|
13
|
-
var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
|
|
14
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
15
15
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
16
16
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
@@ -23,14 +23,14 @@ const ChatControls = ({
|
|
|
23
23
|
iconSize = {
|
|
24
24
|
width: 80,
|
|
25
25
|
height: 100
|
|
26
|
-
}
|
|
26
|
+
},
|
|
27
|
+
shouldAnimateCloseButton
|
|
27
28
|
}) => {
|
|
28
29
|
const isOpen = (0, _effectorReact.useUnit)(model.$isOpen);
|
|
29
|
-
const shouldAnimateCrossButton = (0, _effectorReact.useStoreMap)(model.$currentChatData, data => data.messages.length === 1);
|
|
30
30
|
if (isOpen) {
|
|
31
31
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeReanimated.default.View, {
|
|
32
32
|
style: styles.container,
|
|
33
|
-
entering:
|
|
33
|
+
entering: shouldAnimateCloseButton ? _reactNativeReanimated.FadeIn.duration(900) : undefined,
|
|
34
34
|
children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeUi.Button, {
|
|
35
35
|
onPress: onPressClose,
|
|
36
36
|
style: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeUi","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeUi","_reactNativeReanimated","_interopRequireWildcard","_effectorReact","_ChatbotIcon","_CloseIcon","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ChatControls","model","onPressChatIcon","onPressClose","ButtonWrapper","React","Fragment","iconSize","width","height","shouldAnimateCloseButton","isOpen","useUnit","$isOpen","jsx","View","style","styles","container","entering","FadeIn","duration","undefined","children","Button","onPress","button","buttonClose","variant","ButtonVariant","PRIMARY","size","ButtonSize","LARGE","colorScheme","ButtonColor","WHITE","raiseLevel","customColorScheme","ButtonStates","DEFAULT","backgroundColor","COLORS","NEUTRAL_1","borderColor","NEUTRAL_5","raiseColor","color","NEUTRAL_10","PRESSED","NEUTRAL_4","HOVER","NEUTRAL_3","CloseIcon","Pressable","ChatbotIcon","exports","StyleSheet","create","alignItems","justifyContent","flexDirection","maxHeight","gap","paddingBottom","borderRadius","paddingHorizontal","borderWidth"],"sourceRoot":"../../../../../../src","sources":["features/chatbot/components/ChatControls/ChatControls.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -27,6 +27,13 @@ const Chatbot = ({
|
|
|
27
27
|
isAvailable
|
|
28
28
|
}) => isAvailable);
|
|
29
29
|
model.t2s.setAudioConfig(textToSpeechConfig ?? null);
|
|
30
|
+
const shouldAnimateCloseButton = (0, _effectorReact.useStoreMap)({
|
|
31
|
+
store: model.$currentChatData,
|
|
32
|
+
fn: (chat, [isInputDisabled]) => {
|
|
33
|
+
return isInputDisabled && chat.messages.length === 1;
|
|
34
|
+
},
|
|
35
|
+
keys: [isInputDisabled]
|
|
36
|
+
});
|
|
30
37
|
const openChat = () => model.setIsOpen(true);
|
|
31
38
|
const closeChat = () => model.setIsOpen(false);
|
|
32
39
|
if (!isAvailable || !isChatAllowed) {
|
|
@@ -40,13 +47,14 @@ const Chatbot = ({
|
|
|
40
47
|
isHintFeedback: isHintFeedback,
|
|
41
48
|
isTextToSpeechEnabled: isTextToSpeechEnabled,
|
|
42
49
|
isInputDisabled: isInputDisabled,
|
|
43
|
-
|
|
50
|
+
MessageWrapper: ButtonWrapper
|
|
44
51
|
}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_ChatControls.ChatControls, {
|
|
45
52
|
model: model,
|
|
46
53
|
onPressChatIcon: openChat,
|
|
47
54
|
onPressClose: closeChat,
|
|
55
|
+
iconSize: iconSize,
|
|
48
56
|
ButtonWrapper: isInputDisabled ? undefined : ButtonWrapper,
|
|
49
|
-
|
|
57
|
+
shouldAnimateCloseButton: shouldAnimateCloseButton
|
|
50
58
|
})]
|
|
51
59
|
});
|
|
52
60
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_effectorReact","_Chat","_ChatControls","_ChatBotModelContext","_styleTypes","_jsxRuntime","e","__esModule","default","Chatbot","model","isHintFeedback","isTextToSpeechEnabled","isInputDisabled","textToSpeechConfig","ButtonWrapper","iconSize","colorScheme","ColorScheme","Blue","isChatAllowed","useUnit","$chatAccess","isAvailable","useStoreMap","$currentChatData","t2s","setAudioConfig","openChat","setIsOpen","closeChat","jsxs","ChatBotModelContext","Provider","value","children","jsx","Chat","ChatControls","onPressChatIcon","onPressClose","undefined","exports"],"sourceRoot":"../../../../../src","sources":["features/chatbot/components/Chatbot.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AAGA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AAEA,IAAAI,oBAAA,GAAAJ,OAAA;AACA,IAAAK,WAAA,GAAAL,OAAA;AAAkD,IAAAM,WAAA,GAAAN,OAAA;AAAA,SAAAD,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAgB3C,MAAMG,OAAO,GAAGA,CAAC;EACtBC,KAAK;EACLC,cAAc;EACdC,qBAAqB,GAAG,KAAK;EAC7BC,eAAe;EACfC,kBAAkB;EAClBC,aAAa;EACbC,QAAQ;EACRC,WAAW,GAAGC,uBAAW,CAACC;AACd,CAAC,KAAK;EAClB,MAAMC,aAAa,GAAG,IAAAC,sBAAO,EAACX,KAAK,CAACY,WAAW,CAAC;EAChD,MAAMC,WAAW,GAAG,IAAAC,0BAAW,EAACd,KAAK,CAACe,gBAAgB,EAAE,CAAC;IAAEF;EAAY,CAAC,KAAKA,WAAW,CAAC;EACzFb,KAAK,CAACgB,GAAG,CAACC,cAAc,CAACb,kBAAkB,IAAI,IAAI,CAAC;EAEpD,MAAMc,QAAQ,GAAGA,CAAA,
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_effectorReact","_Chat","_ChatControls","_ChatBotModelContext","_styleTypes","_jsxRuntime","e","__esModule","default","Chatbot","model","isHintFeedback","isTextToSpeechEnabled","isInputDisabled","textToSpeechConfig","ButtonWrapper","iconSize","colorScheme","ColorScheme","Blue","isChatAllowed","useUnit","$chatAccess","isAvailable","useStoreMap","$currentChatData","t2s","setAudioConfig","shouldAnimateCloseButton","store","fn","chat","messages","length","keys","openChat","setIsOpen","closeChat","jsxs","ChatBotModelContext","Provider","value","children","jsx","Chat","MessageWrapper","ChatControls","onPressChatIcon","onPressClose","undefined","exports"],"sourceRoot":"../../../../../src","sources":["features/chatbot/components/Chatbot.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,cAAA,GAAAD,OAAA;AAGA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,aAAA,GAAAH,OAAA;AAEA,IAAAI,oBAAA,GAAAJ,OAAA;AACA,IAAAK,WAAA,GAAAL,OAAA;AAAkD,IAAAM,WAAA,GAAAN,OAAA;AAAA,SAAAD,uBAAAQ,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAgB3C,MAAMG,OAAO,GAAGA,CAAC;EACtBC,KAAK;EACLC,cAAc;EACdC,qBAAqB,GAAG,KAAK;EAC7BC,eAAe;EACfC,kBAAkB;EAClBC,aAAa;EACbC,QAAQ;EACRC,WAAW,GAAGC,uBAAW,CAACC;AACd,CAAC,KAAK;EAClB,MAAMC,aAAa,GAAG,IAAAC,sBAAO,EAACX,KAAK,CAACY,WAAW,CAAC;EAChD,MAAMC,WAAW,GAAG,IAAAC,0BAAW,EAACd,KAAK,CAACe,gBAAgB,EAAE,CAAC;IAAEF;EAAY,CAAC,KAAKA,WAAW,CAAC;EACzFb,KAAK,CAACgB,GAAG,CAACC,cAAc,CAACb,kBAAkB,IAAI,IAAI,CAAC;EAEpD,MAAMc,wBAAwB,GAAG,IAAAJ,0BAAW,EAAC;IAC3CK,KAAK,EAAEnB,KAAK,CAACe,gBAAgB;IAC7BK,EAAE,EAAEA,CAACC,IAAI,EAAE,CAAClB,eAAe,CAAC,KAAK;MAC/B,OAAOA,eAAe,IAAIkB,IAAI,CAACC,QAAQ,CAACC,MAAM,KAAK,CAAC;IACtD,CAAC;IACDC,IAAI,EAAE,CAACrB,eAAe;EACxB,CAAC,CAAC;EAEF,MAAMsB,QAAQ,GAAGA,CAAA,KAAMzB,KAAK,CAAC0B,SAAS,CAAC,IAAI,CAAC;EAC5C,MAAMC,SAAS,GAAGA,CAAA,KAAM3B,KAAK,CAAC0B,SAAS,CAAC,KAAK,CAAC;EAE9C,IAAI,CAACb,WAAW,IAAI,CAACH,aAAa,EAAE;IAClC,OAAO,IAAI;EACb;EAEA,oBACE,IAAAf,WAAA,CAAAiC,IAAA,EAACnC,oBAAA,CAAAoC,mBAAmB,CAACC,QAAQ;IAACC,KAAK,EAAE/B,KAAM;IAAAgC,QAAA,gBACzC,IAAArC,WAAA,CAAAsC,GAAA,EAAC1C,KAAA,CAAA2C,IAAI;MACHlC,KAAK,EAAEA,KAAM;MACbO,WAAW,EAAEA,WAAY;MACzBN,cAAc,EAAEA,cAAe;MAC/BC,qBAAqB,EAAEA,qBAAsB;MAC7CC,eAAe,EAAEA,eAAgB;MACjCgC,cAAc,EAAE9B;IAAc,CAC/B,CAAC,eAEF,IAAAV,WAAA,CAAAsC,GAAA,EAACzC,aAAA,CAAA4C,YAAY;MACXpC,KAAK,EAAEA,KAAM;MACbqC,eAAe,EAAEZ,QAAS;MAC1Ba,YAAY,EAAEX,SAAU;MACxBrB,QAAQ,EAAEA,QAAS;MACnBD,aAAa,EAAEF,eAAe,GAAGoC,SAAS,GAAGlC,aAAc;MAC3Da,wBAAwB,EAAEA;IAAyB,CACpD,CAAC;EAAA,CAC0B,CAAC;AAEnC,CAAC;AAAAsB,OAAA,CAAAzC,OAAA,GAAAA,OAAA","ignoreList":[]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ConditionalWrapper = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
+
const ConditionalWrapper = ({
|
|
11
|
+
withWrapper,
|
|
12
|
+
Wrapper,
|
|
13
|
+
children
|
|
14
|
+
}) => {
|
|
15
|
+
if (withWrapper && Wrapper) {
|
|
16
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(Wrapper, {
|
|
17
|
+
children: children
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return children;
|
|
21
|
+
};
|
|
22
|
+
exports.ConditionalWrapper = ConditionalWrapper;
|
|
23
|
+
//# sourceMappingURL=ConditionalWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_jsxRuntime","e","__esModule","default","ConditionalWrapper","withWrapper","Wrapper","children","jsx","exports"],"sourceRoot":"../../../../src","sources":["lib/components/ConditionalWrapper.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA0E,IAAAC,WAAA,GAAAD,OAAA;AAAA,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAQnE,MAAMG,kBAAkB,GAAGA,CAAC;EAAEC,WAAW;EAAEC,OAAO;EAAEC;AAAkC,CAAC,KAAK;EACjG,IAAIF,WAAW,IAAIC,OAAO,EAAE;IAC1B,oBAAO,IAAAN,WAAA,CAAAQ,GAAA,EAACF,OAAO;MAAAC,QAAA,EAAEA;IAAQ,CAAU,CAAC;EACtC;EAEA,OAAOA,QAAQ;AACjB,CAAC;AAAAE,OAAA,CAAAL,kBAAA,GAAAA,kBAAA","ignoreList":[]}
|
|
@@ -8,6 +8,7 @@ import { MessageLoader } from "../ChatMessage/MessageLoader.js";
|
|
|
8
8
|
import { ChatInput } from "../ChatInput/ChatInput.js";
|
|
9
9
|
import { MessageVariant } from "../../types/model.types.js";
|
|
10
10
|
import { ColorScheme } from "../../types/style.types.js";
|
|
11
|
+
import { ConditionalWrapper } from "../../../../lib/components/ConditionalWrapper.js";
|
|
11
12
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
13
|
const TOOLBAR_HEIGHT = 140;
|
|
13
14
|
const BOTTOM_OFFSET = Platform.select({
|
|
@@ -20,7 +21,7 @@ export const Chat = ({
|
|
|
20
21
|
isTextToSpeechEnabled,
|
|
21
22
|
isInputDisabled,
|
|
22
23
|
colorScheme = ColorScheme.Blue,
|
|
23
|
-
|
|
24
|
+
MessageWrapper
|
|
24
25
|
}) => {
|
|
25
26
|
const dimensions = useWindowDimensions();
|
|
26
27
|
const ref = useRef(null);
|
|
@@ -36,6 +37,7 @@ export const Chat = ({
|
|
|
36
37
|
}) => messages);
|
|
37
38
|
const lastMessageId = messages.at(-1)?.id;
|
|
38
39
|
const MAX_HEIGHT = dimensions.height - TOOLBAR_HEIGHT - BOTTOM_OFFSET;
|
|
40
|
+
const shouldWrapMessage = MessageWrapper && isInputDisabled && messages.length === 1;
|
|
39
41
|
return /*#__PURE__*/_jsx(View, {
|
|
40
42
|
style: [styles.container, {
|
|
41
43
|
maxHeight: MAX_HEIGHT
|
|
@@ -52,26 +54,25 @@ export const Chat = ({
|
|
|
52
54
|
},
|
|
53
55
|
children: [isOpen && /*#__PURE__*/_jsxs(View, {
|
|
54
56
|
style: [styles.gap, isInputDisabled && styles.messagesWithoutInput],
|
|
55
|
-
children: [messages.map(message => {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}), isHelpRequestPending && /*#__PURE__*/_jsx(MessageLoader, {
|
|
57
|
+
children: [messages.map(message => /*#__PURE__*/_jsx(ConditionalWrapper, {
|
|
58
|
+
withWrapper: shouldWrapMessage,
|
|
59
|
+
Wrapper: MessageWrapper,
|
|
60
|
+
children: /*#__PURE__*/_jsx(ChatMessage, {
|
|
61
|
+
isTranslated: isTranslated,
|
|
62
|
+
withIcon: !message.isOwnMessage && message.id === lastMessageId,
|
|
63
|
+
message: message,
|
|
64
|
+
variant: message.isOwnMessage ? MessageVariant.SENT : MessageVariant.RECEIVED,
|
|
65
|
+
colorScheme: colorScheme,
|
|
66
|
+
withErrorSpotting: errorSpottingEnabled && !message.isOwnMessage,
|
|
67
|
+
t2sState: {
|
|
68
|
+
isEnabled: isTextToSpeechEnabled && !message.isOwnMessage,
|
|
69
|
+
isActive: message.id === currentPlayingId,
|
|
70
|
+
isLoading: isTextToSpeechPending,
|
|
71
|
+
status: audioStatus,
|
|
72
|
+
disabled: isTextToSpeechPending
|
|
73
|
+
}
|
|
74
|
+
}, message.id)
|
|
75
|
+
})), isHelpRequestPending && /*#__PURE__*/_jsx(MessageLoader, {
|
|
75
76
|
colorScheme: colorScheme
|
|
76
77
|
})]
|
|
77
78
|
}), isOpen && !isInputDisabled && /*#__PURE__*/_jsx(ChatInput, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useRef","Platform","ScrollView","StyleSheet","useWindowDimensions","View","useStoreMap","useUnit","ChatMessage","MessageLoader","ChatInput","MessageVariant","ColorScheme","jsx","_jsx","jsxs","_jsxs","TOOLBAR_HEIGHT","BOTTOM_OFFSET","select","web","default","Chat","model","isHintFeedback","isTextToSpeechEnabled","isInputDisabled","colorScheme","Blue","
|
|
1
|
+
{"version":3,"names":["React","useRef","Platform","ScrollView","StyleSheet","useWindowDimensions","View","useStoreMap","useUnit","ChatMessage","MessageLoader","ChatInput","MessageVariant","ColorScheme","ConditionalWrapper","jsx","_jsx","jsxs","_jsxs","TOOLBAR_HEIGHT","BOTTOM_OFFSET","select","web","default","Chat","model","isHintFeedback","isTextToSpeechEnabled","isInputDisabled","colorScheme","Blue","MessageWrapper","dimensions","ref","isOpen","$isOpen","isHelpRequestPending","sendHelpRequestFx","pending","isTextToSpeechPending","api","textToSpeechTextFx","currentPlayingId","t2s","$currentPlayingId","isTranslated","translation","$isTranslated","audioStatus","$status","errorSpottingEnabled","errorSpotting","$isEnabled","messages","$currentChatData","lastMessageId","at","id","MAX_HEIGHT","height","shouldWrapMessage","length","style","styles","container","maxHeight","children","bounces","contentContainerStyle","list","onContentSizeChange","_","current","scrollToEnd","setScrollActive","gap","messagesWithoutInput","map","message","withWrapper","Wrapper","withIcon","isOwnMessage","variant","SENT","RECEIVED","withErrorSpotting","t2sState","isEnabled","isActive","isLoading","status","disabled","hasMessages","create","flex","alignItems","width","paddingVertical","paddingRight","marginBottom"],"sourceRoot":"../../../../../../src","sources":["features/chatbot/components/Chat/Chat.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
import React from 'react';
|
|
4
4
|
import { Pressable, StyleSheet, View } from 'react-native';
|
|
5
5
|
import { Button, ButtonColor, ButtonSize, ButtonStates, ButtonVariant, COLORS } from '@magmamath/react-native-ui';
|
|
6
|
-
import {
|
|
6
|
+
import Animated, { FadeIn } from 'react-native-reanimated';
|
|
7
|
+
import { useUnit } from 'effector-react';
|
|
7
8
|
import { ChatbotIcon } from "../../../../shared/icons/ChatbotIcon.js";
|
|
8
9
|
import { CloseIcon } from "../../../../shared/icons/CloseIcon.js";
|
|
9
|
-
import Animated, { FadeIn } from 'react-native-reanimated';
|
|
10
10
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
11
|
export const ChatControls = ({
|
|
12
12
|
model,
|
|
@@ -16,14 +16,14 @@ export const ChatControls = ({
|
|
|
16
16
|
iconSize = {
|
|
17
17
|
width: 80,
|
|
18
18
|
height: 100
|
|
19
|
-
}
|
|
19
|
+
},
|
|
20
|
+
shouldAnimateCloseButton
|
|
20
21
|
}) => {
|
|
21
22
|
const isOpen = useUnit(model.$isOpen);
|
|
22
|
-
const shouldAnimateCrossButton = useStoreMap(model.$currentChatData, data => data.messages.length === 1);
|
|
23
23
|
if (isOpen) {
|
|
24
24
|
return /*#__PURE__*/_jsx(Animated.View, {
|
|
25
25
|
style: styles.container,
|
|
26
|
-
entering:
|
|
26
|
+
entering: shouldAnimateCloseButton ? FadeIn.duration(900) : undefined,
|
|
27
27
|
children: /*#__PURE__*/_jsx(Button, {
|
|
28
28
|
onPress: onPressClose,
|
|
29
29
|
style: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Pressable","StyleSheet","View","Button","ButtonColor","ButtonSize","ButtonStates","ButtonVariant","COLORS","
|
|
1
|
+
{"version":3,"names":["React","Pressable","StyleSheet","View","Button","ButtonColor","ButtonSize","ButtonStates","ButtonVariant","COLORS","Animated","FadeIn","useUnit","ChatbotIcon","CloseIcon","jsx","_jsx","ChatControls","model","onPressChatIcon","onPressClose","ButtonWrapper","Fragment","iconSize","width","height","shouldAnimateCloseButton","isOpen","$isOpen","style","styles","container","entering","duration","undefined","children","onPress","button","buttonClose","variant","PRIMARY","size","LARGE","colorScheme","WHITE","raiseLevel","customColorScheme","DEFAULT","backgroundColor","NEUTRAL_1","borderColor","NEUTRAL_5","raiseColor","color","NEUTRAL_10","PRESSED","NEUTRAL_4","HOVER","NEUTRAL_3","create","alignItems","justifyContent","flexDirection","maxHeight","gap","paddingBottom","borderRadius","paddingHorizontal","borderWidth"],"sourceRoot":"../../../../../../src","sources":["features/chatbot/components/ChatControls/ChatControls.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -22,6 +22,13 @@ export const Chatbot = ({
|
|
|
22
22
|
isAvailable
|
|
23
23
|
}) => isAvailable);
|
|
24
24
|
model.t2s.setAudioConfig(textToSpeechConfig ?? null);
|
|
25
|
+
const shouldAnimateCloseButton = useStoreMap({
|
|
26
|
+
store: model.$currentChatData,
|
|
27
|
+
fn: (chat, [isInputDisabled]) => {
|
|
28
|
+
return isInputDisabled && chat.messages.length === 1;
|
|
29
|
+
},
|
|
30
|
+
keys: [isInputDisabled]
|
|
31
|
+
});
|
|
25
32
|
const openChat = () => model.setIsOpen(true);
|
|
26
33
|
const closeChat = () => model.setIsOpen(false);
|
|
27
34
|
if (!isAvailable || !isChatAllowed) {
|
|
@@ -35,13 +42,14 @@ export const Chatbot = ({
|
|
|
35
42
|
isHintFeedback: isHintFeedback,
|
|
36
43
|
isTextToSpeechEnabled: isTextToSpeechEnabled,
|
|
37
44
|
isInputDisabled: isInputDisabled,
|
|
38
|
-
|
|
45
|
+
MessageWrapper: ButtonWrapper
|
|
39
46
|
}), /*#__PURE__*/_jsx(ChatControls, {
|
|
40
47
|
model: model,
|
|
41
48
|
onPressChatIcon: openChat,
|
|
42
49
|
onPressClose: closeChat,
|
|
50
|
+
iconSize: iconSize,
|
|
43
51
|
ButtonWrapper: isInputDisabled ? undefined : ButtonWrapper,
|
|
44
|
-
|
|
52
|
+
shouldAnimateCloseButton: shouldAnimateCloseButton
|
|
45
53
|
})]
|
|
46
54
|
});
|
|
47
55
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useStoreMap","useUnit","Chat","ChatControls","ChatBotModelContext","ColorScheme","jsx","_jsx","jsxs","_jsxs","Chatbot","model","isHintFeedback","isTextToSpeechEnabled","isInputDisabled","textToSpeechConfig","ButtonWrapper","iconSize","colorScheme","Blue","isChatAllowed","$chatAccess","isAvailable","$currentChatData","t2s","setAudioConfig","openChat","setIsOpen","closeChat","Provider","value","children","onPressChatIcon","onPressClose","undefined"],"sourceRoot":"../../../../../src","sources":["features/chatbot/components/Chatbot.tsx"],"mappings":";;AAAA,OAAOA,KAAK,
|
|
1
|
+
{"version":3,"names":["React","useStoreMap","useUnit","Chat","ChatControls","ChatBotModelContext","ColorScheme","jsx","_jsx","jsxs","_jsxs","Chatbot","model","isHintFeedback","isTextToSpeechEnabled","isInputDisabled","textToSpeechConfig","ButtonWrapper","iconSize","colorScheme","Blue","isChatAllowed","$chatAccess","isAvailable","$currentChatData","t2s","setAudioConfig","shouldAnimateCloseButton","store","fn","chat","messages","length","keys","openChat","setIsOpen","closeChat","Provider","value","children","MessageWrapper","onPressChatIcon","onPressClose","undefined"],"sourceRoot":"../../../../../src","sources":["features/chatbot/components/Chatbot.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAqD,OAAO;AACxE,SAASC,WAAW,EAAEC,OAAO,QAAQ,gBAAgB;AAGrD,SAASC,IAAI,QAAQ,gBAAa;AAClC,SAASC,YAAY,QAAQ,gCAA6B;AAE1D,SAASC,mBAAmB,QAAQ,mCAAgC;AACpE,SAASC,WAAW,QAAQ,yBAAsB;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAgBlD,OAAO,MAAMC,OAAO,GAAGA,CAAC;EACtBC,KAAK;EACLC,cAAc;EACdC,qBAAqB,GAAG,KAAK;EAC7BC,eAAe;EACfC,kBAAkB;EAClBC,aAAa;EACbC,QAAQ;EACRC,WAAW,GAAGb,WAAW,CAACc;AACd,CAAC,KAAK;EAClB,MAAMC,aAAa,GAAGnB,OAAO,CAACU,KAAK,CAACU,WAAW,CAAC;EAChD,MAAMC,WAAW,GAAGtB,WAAW,CAACW,KAAK,CAACY,gBAAgB,EAAE,CAAC;IAAED;EAAY,CAAC,KAAKA,WAAW,CAAC;EACzFX,KAAK,CAACa,GAAG,CAACC,cAAc,CAACV,kBAAkB,IAAI,IAAI,CAAC;EAEpD,MAAMW,wBAAwB,GAAG1B,WAAW,CAAC;IAC3C2B,KAAK,EAAEhB,KAAK,CAACY,gBAAgB;IAC7BK,EAAE,EAAEA,CAACC,IAAI,EAAE,CAACf,eAAe,CAAC,KAAK;MAC/B,OAAOA,eAAe,IAAIe,IAAI,CAACC,QAAQ,CAACC,MAAM,KAAK,CAAC;IACtD,CAAC;IACDC,IAAI,EAAE,CAAClB,eAAe;EACxB,CAAC,CAAC;EAEF,MAAMmB,QAAQ,GAAGA,CAAA,KAAMtB,KAAK,CAACuB,SAAS,CAAC,IAAI,CAAC;EAC5C,MAAMC,SAAS,GAAGA,CAAA,KAAMxB,KAAK,CAACuB,SAAS,CAAC,KAAK,CAAC;EAE9C,IAAI,CAACZ,WAAW,IAAI,CAACF,aAAa,EAAE;IAClC,OAAO,IAAI;EACb;EAEA,oBACEX,KAAA,CAACL,mBAAmB,CAACgC,QAAQ;IAACC,KAAK,EAAE1B,KAAM;IAAA2B,QAAA,gBACzC/B,IAAA,CAACL,IAAI;MACHS,KAAK,EAAEA,KAAM;MACbO,WAAW,EAAEA,WAAY;MACzBN,cAAc,EAAEA,cAAe;MAC/BC,qBAAqB,EAAEA,qBAAsB;MAC7CC,eAAe,EAAEA,eAAgB;MACjCyB,cAAc,EAAEvB;IAAc,CAC/B,CAAC,eAEFT,IAAA,CAACJ,YAAY;MACXQ,KAAK,EAAEA,KAAM;MACb6B,eAAe,EAAEP,QAAS;MAC1BQ,YAAY,EAAEN,SAAU;MACxBlB,QAAQ,EAAEA,QAAS;MACnBD,aAAa,EAAEF,eAAe,GAAG4B,SAAS,GAAG1B,aAAc;MAC3DU,wBAAwB,EAAEA;IAAyB,CACpD,CAAC;EAAA,CAC0B,CAAC;AAEnC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
+
export const ConditionalWrapper = ({
|
|
6
|
+
withWrapper,
|
|
7
|
+
Wrapper,
|
|
8
|
+
children
|
|
9
|
+
}) => {
|
|
10
|
+
if (withWrapper && Wrapper) {
|
|
11
|
+
return /*#__PURE__*/_jsx(Wrapper, {
|
|
12
|
+
children: children
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
return children;
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=ConditionalWrapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","jsx","_jsx","ConditionalWrapper","withWrapper","Wrapper","children"],"sourceRoot":"../../../../src","sources":["lib/components/ConditionalWrapper.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAuD,OAAO;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAQ1E,OAAO,MAAMC,kBAAkB,GAAGA,CAAC;EAAEC,WAAW;EAAEC,OAAO;EAAEC;AAAkC,CAAC,KAAK;EACjG,IAAIF,WAAW,IAAIC,OAAO,EAAE;IAC1B,oBAAOH,IAAA,CAACG,OAAO;MAAAC,QAAA,EAAEA;IAAQ,CAAU,CAAC;EACtC;EAEA,OAAOA,QAAQ;AACjB,CAAC","ignoreList":[]}
|
|
@@ -7,8 +7,8 @@ type ChatProps = {
|
|
|
7
7
|
isTextToSpeechEnabled: boolean;
|
|
8
8
|
isInputDisabled?: boolean;
|
|
9
9
|
colorScheme?: ColorScheme;
|
|
10
|
-
|
|
10
|
+
MessageWrapper?: ComponentType<PropsWithChildren>;
|
|
11
11
|
};
|
|
12
|
-
export declare const Chat: ({ model, isHintFeedback, isTextToSpeechEnabled, isInputDisabled, colorScheme,
|
|
12
|
+
export declare const Chat: ({ model, isHintFeedback, isTextToSpeechEnabled, isInputDisabled, colorScheme, MessageWrapper, }: ChatProps) => React.JSX.Element;
|
|
13
13
|
export {};
|
|
14
14
|
//# sourceMappingURL=Chat.d.ts.map
|
|
@@ -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,EAAU,MAAM,OAAO,CAAA;AAIvE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAKvD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;
|
|
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,EAAU,MAAM,OAAO,CAAA;AAIvE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAKvD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AASrD,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;CAClD,CAAA;AAED,eAAO,MAAM,IAAI,oGAOd,SAAS,sBAsEX,CAAA"}
|
|
@@ -10,7 +10,8 @@ type ChatControlsProps = {
|
|
|
10
10
|
width: number;
|
|
11
11
|
height: number;
|
|
12
12
|
};
|
|
13
|
+
shouldAnimateCloseButton?: boolean;
|
|
13
14
|
};
|
|
14
|
-
export declare const ChatControls: ({ model, onPressChatIcon, onPressClose, ButtonWrapper, iconSize, }: ChatControlsProps) => React.JSX.Element;
|
|
15
|
+
export declare const ChatControls: ({ model, onPressChatIcon, onPressClose, ButtonWrapper, iconSize, shouldAnimateCloseButton, }: ChatControlsProps) => React.JSX.Element;
|
|
15
16
|
export {};
|
|
16
17
|
//# sourceMappingURL=ChatControls.d.ts.map
|
package/dist/typescript/commonjs/features/chatbot/components/ChatControls/ChatControls.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatControls.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/chatbot/components/ChatControls/ChatControls.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"ChatControls.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/chatbot/components/ChatControls/ChatControls.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAYxD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIvD,KAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,YAAY,CAAA;IACnB,eAAe,EAAE,MAAM,IAAI,CAAA;IAC3B,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,aAAa,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;IAChD,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5C,wBAAwB,CAAC,EAAE,OAAO,CAAA;CACnC,CAAA;AAED,eAAO,MAAM,YAAY,iGAOtB,iBAAiB,sBAsDnB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chatbot.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/components/Chatbot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"Chatbot.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/components/Chatbot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAW,MAAM,OAAO,CAAA;AAGxE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAGpD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD,KAAK,YAAY,GAAG;IAClB,KAAK,EAAE,YAAY,CAAA;IACnB,cAAc,EAAE,OAAO,CAAA;IACvB,qBAAqB,EAAE,OAAO,CAAA;IAC9B,kBAAkB,CAAC,EAAE;QACnB,KAAK,EAAE,OAAO,aAAa,CAAA;QAC3B,WAAW,EAAE,OAAO,YAAY,CAAA;KACjC,CAAA;IACD,aAAa,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;IAChD,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5C,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,OAAO,iIASjB,YAAY,6BAyCd,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React, { ComponentType, PropsWithChildren, ReactNode } from 'react';
|
|
2
|
+
type ConditionalWrapperProps = {
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
withWrapper?: boolean;
|
|
5
|
+
Wrapper?: ComponentType<PropsWithChildren>;
|
|
6
|
+
};
|
|
7
|
+
export declare const ConditionalWrapper: ({ withWrapper, Wrapper, children }: ConditionalWrapperProps) => string | number | boolean | React.JSX.Element | Iterable<React.ReactNode> | null | undefined;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=ConditionalWrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConditionalWrapper.d.ts","sourceRoot":"","sources":["../../../../../src/lib/components/ConditionalWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAE1E,KAAK,uBAAuB,GAAG;IAC7B,QAAQ,EAAE,SAAS,CAAA;IACnB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,OAAO,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;CAC3C,CAAA;AAED,eAAO,MAAM,kBAAkB,uCAAwC,uBAAuB,iGAM7F,CAAA"}
|
|
@@ -7,8 +7,8 @@ type ChatProps = {
|
|
|
7
7
|
isTextToSpeechEnabled: boolean;
|
|
8
8
|
isInputDisabled?: boolean;
|
|
9
9
|
colorScheme?: ColorScheme;
|
|
10
|
-
|
|
10
|
+
MessageWrapper?: ComponentType<PropsWithChildren>;
|
|
11
11
|
};
|
|
12
|
-
export declare const Chat: ({ model, isHintFeedback, isTextToSpeechEnabled, isInputDisabled, colorScheme,
|
|
12
|
+
export declare const Chat: ({ model, isHintFeedback, isTextToSpeechEnabled, isInputDisabled, colorScheme, MessageWrapper, }: ChatProps) => React.JSX.Element;
|
|
13
13
|
export {};
|
|
14
14
|
//# sourceMappingURL=Chat.d.ts.map
|
|
@@ -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,EAAU,MAAM,OAAO,CAAA;AAIvE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAKvD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;
|
|
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,EAAU,MAAM,OAAO,CAAA;AAIvE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAKvD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AASrD,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;CAClD,CAAA;AAED,eAAO,MAAM,IAAI,oGAOd,SAAS,sBAsEX,CAAA"}
|
|
@@ -10,7 +10,8 @@ type ChatControlsProps = {
|
|
|
10
10
|
width: number;
|
|
11
11
|
height: number;
|
|
12
12
|
};
|
|
13
|
+
shouldAnimateCloseButton?: boolean;
|
|
13
14
|
};
|
|
14
|
-
export declare const ChatControls: ({ model, onPressChatIcon, onPressClose, ButtonWrapper, iconSize, }: ChatControlsProps) => React.JSX.Element;
|
|
15
|
+
export declare const ChatControls: ({ model, onPressChatIcon, onPressClose, ButtonWrapper, iconSize, shouldAnimateCloseButton, }: ChatControlsProps) => React.JSX.Element;
|
|
15
16
|
export {};
|
|
16
17
|
//# sourceMappingURL=ChatControls.d.ts.map
|
package/dist/typescript/module/features/chatbot/components/ChatControls/ChatControls.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatControls.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/chatbot/components/ChatControls/ChatControls.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"ChatControls.d.ts","sourceRoot":"","sources":["../../../../../../../src/features/chatbot/components/ChatControls/ChatControls.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAA;AAYxD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAIvD,KAAK,iBAAiB,GAAG;IACvB,KAAK,EAAE,YAAY,CAAA;IACnB,eAAe,EAAE,MAAM,IAAI,CAAA;IAC3B,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,aAAa,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;IAChD,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5C,wBAAwB,CAAC,EAAE,OAAO,CAAA;CACnC,CAAA;AAED,eAAO,MAAM,YAAY,iGAOtB,iBAAiB,sBAsDnB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chatbot.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/components/Chatbot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"Chatbot.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/components/Chatbot.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAW,MAAM,OAAO,CAAA;AAGxE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAGpD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAElD,KAAK,YAAY,GAAG;IAClB,KAAK,EAAE,YAAY,CAAA;IACnB,cAAc,EAAE,OAAO,CAAA;IACvB,qBAAqB,EAAE,OAAO,CAAA;IAC9B,kBAAkB,CAAC,EAAE;QACnB,KAAK,EAAE,OAAO,aAAa,CAAA;QAC3B,WAAW,EAAE,OAAO,YAAY,CAAA;KACjC,CAAA;IACD,aAAa,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;IAChD,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5C,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,OAAO,iIASjB,YAAY,6BAyCd,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React, { ComponentType, PropsWithChildren, ReactNode } from 'react';
|
|
2
|
+
type ConditionalWrapperProps = {
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
withWrapper?: boolean;
|
|
5
|
+
Wrapper?: ComponentType<PropsWithChildren>;
|
|
6
|
+
};
|
|
7
|
+
export declare const ConditionalWrapper: ({ withWrapper, Wrapper, children }: ConditionalWrapperProps) => string | number | boolean | React.JSX.Element | Iterable<React.ReactNode> | null | undefined;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=ConditionalWrapper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConditionalWrapper.d.ts","sourceRoot":"","sources":["../../../../../src/lib/components/ConditionalWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAE1E,KAAK,uBAAuB,GAAG;IAC7B,QAAQ,EAAE,SAAS,CAAA;IACnB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,OAAO,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAA;CAC3C,CAAA;AAED,eAAO,MAAM,kBAAkB,uCAAwC,uBAAuB,iGAM7F,CAAA"}
|
package/package.json
CHANGED
|
@@ -8,6 +8,7 @@ import { MessageLoader } from '../ChatMessage/MessageLoader'
|
|
|
8
8
|
import { ChatInput } from '../ChatInput/ChatInput'
|
|
9
9
|
import { MessageVariant } from '../../types/model.types'
|
|
10
10
|
import { ColorScheme } from '../../types/style.types'
|
|
11
|
+
import { ConditionalWrapper } from '../../../../lib/components/ConditionalWrapper'
|
|
11
12
|
|
|
12
13
|
const TOOLBAR_HEIGHT = 140
|
|
13
14
|
const BOTTOM_OFFSET = Platform.select({
|
|
@@ -21,7 +22,7 @@ type ChatProps = {
|
|
|
21
22
|
isTextToSpeechEnabled: boolean
|
|
22
23
|
isInputDisabled?: boolean
|
|
23
24
|
colorScheme?: ColorScheme
|
|
24
|
-
|
|
25
|
+
MessageWrapper?: ComponentType<PropsWithChildren>
|
|
25
26
|
}
|
|
26
27
|
|
|
27
28
|
export const Chat = ({
|
|
@@ -30,7 +31,7 @@ export const Chat = ({
|
|
|
30
31
|
isTextToSpeechEnabled,
|
|
31
32
|
isInputDisabled,
|
|
32
33
|
colorScheme = ColorScheme.Blue,
|
|
33
|
-
|
|
34
|
+
MessageWrapper,
|
|
34
35
|
}: ChatProps) => {
|
|
35
36
|
const dimensions = useWindowDimensions()
|
|
36
37
|
const ref = useRef<ScrollView>(null)
|
|
@@ -48,6 +49,7 @@ export const Chat = ({
|
|
|
48
49
|
const lastMessageId = messages.at(-1)?.id
|
|
49
50
|
|
|
50
51
|
const MAX_HEIGHT = dimensions.height - TOOLBAR_HEIGHT - BOTTOM_OFFSET
|
|
52
|
+
const shouldWrapMessage = MessageWrapper && isInputDisabled && messages.length === 1
|
|
51
53
|
|
|
52
54
|
return (
|
|
53
55
|
<View style={[styles.container, { maxHeight: MAX_HEIGHT }]}>
|
|
@@ -65,31 +67,26 @@ export const Chat = ({
|
|
|
65
67
|
>
|
|
66
68
|
{isOpen && (
|
|
67
69
|
<View style={[styles.gap, isInputDisabled && styles.messagesWithoutInput]}>
|
|
68
|
-
{messages.map((message) =>
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
}}
|
|
89
|
-
/>
|
|
90
|
-
</Wrapper>
|
|
91
|
-
)
|
|
92
|
-
})}
|
|
70
|
+
{messages.map((message) => (
|
|
71
|
+
<ConditionalWrapper withWrapper={shouldWrapMessage} Wrapper={MessageWrapper}>
|
|
72
|
+
<ChatMessage
|
|
73
|
+
key={message.id}
|
|
74
|
+
isTranslated={isTranslated}
|
|
75
|
+
withIcon={!message.isOwnMessage && message.id === lastMessageId}
|
|
76
|
+
message={message}
|
|
77
|
+
variant={message.isOwnMessage ? MessageVariant.SENT : MessageVariant.RECEIVED}
|
|
78
|
+
colorScheme={colorScheme}
|
|
79
|
+
withErrorSpotting={errorSpottingEnabled && !message.isOwnMessage}
|
|
80
|
+
t2sState={{
|
|
81
|
+
isEnabled: isTextToSpeechEnabled && !message.isOwnMessage,
|
|
82
|
+
isActive: message.id === currentPlayingId,
|
|
83
|
+
isLoading: isTextToSpeechPending,
|
|
84
|
+
status: audioStatus,
|
|
85
|
+
disabled: isTextToSpeechPending,
|
|
86
|
+
}}
|
|
87
|
+
/>
|
|
88
|
+
</ConditionalWrapper>
|
|
89
|
+
))}
|
|
93
90
|
|
|
94
91
|
{isHelpRequestPending && <MessageLoader colorScheme={colorScheme} />}
|
|
95
92
|
</View>
|
|
@@ -9,11 +9,11 @@ import {
|
|
|
9
9
|
ButtonVariant,
|
|
10
10
|
COLORS,
|
|
11
11
|
} from '@magmamath/react-native-ui'
|
|
12
|
-
import {
|
|
12
|
+
import Animated, { FadeIn } from 'react-native-reanimated'
|
|
13
|
+
import { useUnit } from 'effector-react'
|
|
13
14
|
import { ChatbotModel } from '../../model/ChatBotModel'
|
|
14
15
|
import { ChatbotIcon } from '../../../../shared/icons/ChatbotIcon'
|
|
15
16
|
import { CloseIcon } from '../../../../shared/icons/CloseIcon'
|
|
16
|
-
import Animated, { FadeIn } from 'react-native-reanimated'
|
|
17
17
|
|
|
18
18
|
type ChatControlsProps = {
|
|
19
19
|
model: ChatbotModel
|
|
@@ -21,6 +21,7 @@ type ChatControlsProps = {
|
|
|
21
21
|
onPressClose: () => void
|
|
22
22
|
ButtonWrapper?: ComponentType<PropsWithChildren>
|
|
23
23
|
iconSize?: { width: number; height: number }
|
|
24
|
+
shouldAnimateCloseButton?: boolean
|
|
24
25
|
}
|
|
25
26
|
|
|
26
27
|
export const ChatControls = ({
|
|
@@ -29,18 +30,15 @@ export const ChatControls = ({
|
|
|
29
30
|
onPressClose,
|
|
30
31
|
ButtonWrapper = React.Fragment,
|
|
31
32
|
iconSize = { width: 80, height: 100 },
|
|
33
|
+
shouldAnimateCloseButton,
|
|
32
34
|
}: ChatControlsProps) => {
|
|
33
35
|
const isOpen = useUnit(model.$isOpen)
|
|
34
|
-
const shouldAnimateCrossButton = useStoreMap(
|
|
35
|
-
model.$currentChatData,
|
|
36
|
-
(data) => data.messages.length === 1,
|
|
37
|
-
)
|
|
38
36
|
|
|
39
37
|
if (isOpen) {
|
|
40
38
|
return (
|
|
41
39
|
<Animated.View
|
|
42
40
|
style={styles.container}
|
|
43
|
-
entering={
|
|
41
|
+
entering={shouldAnimateCloseButton ? FadeIn.duration(900) : undefined}
|
|
44
42
|
>
|
|
45
43
|
<Button
|
|
46
44
|
onPress={onPressClose}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { ComponentType, PropsWithChildren } from 'react'
|
|
1
|
+
import React, { ComponentType, PropsWithChildren, useMemo } from 'react'
|
|
2
2
|
import { useStoreMap, useUnit } from 'effector-react'
|
|
3
3
|
|
|
4
4
|
import { ChatbotModel } from '../model/ChatBotModel'
|
|
@@ -36,6 +36,14 @@ export const Chatbot = ({
|
|
|
36
36
|
const isAvailable = useStoreMap(model.$currentChatData, ({ isAvailable }) => isAvailable)
|
|
37
37
|
model.t2s.setAudioConfig(textToSpeechConfig ?? null)
|
|
38
38
|
|
|
39
|
+
const shouldAnimateCloseButton = useStoreMap({
|
|
40
|
+
store: model.$currentChatData,
|
|
41
|
+
fn: (chat, [isInputDisabled]) => {
|
|
42
|
+
return isInputDisabled && chat.messages.length === 1
|
|
43
|
+
},
|
|
44
|
+
keys: [isInputDisabled],
|
|
45
|
+
})
|
|
46
|
+
|
|
39
47
|
const openChat = () => model.setIsOpen(true)
|
|
40
48
|
const closeChat = () => model.setIsOpen(false)
|
|
41
49
|
|
|
@@ -51,15 +59,16 @@ export const Chatbot = ({
|
|
|
51
59
|
isHintFeedback={isHintFeedback}
|
|
52
60
|
isTextToSpeechEnabled={isTextToSpeechEnabled}
|
|
53
61
|
isInputDisabled={isInputDisabled}
|
|
54
|
-
|
|
62
|
+
MessageWrapper={ButtonWrapper}
|
|
55
63
|
/>
|
|
56
64
|
|
|
57
65
|
<ChatControls
|
|
58
66
|
model={model}
|
|
59
67
|
onPressChatIcon={openChat}
|
|
60
68
|
onPressClose={closeChat}
|
|
61
|
-
ButtonWrapper={isInputDisabled ? undefined : ButtonWrapper}
|
|
62
69
|
iconSize={iconSize}
|
|
70
|
+
ButtonWrapper={isInputDisabled ? undefined : ButtonWrapper}
|
|
71
|
+
shouldAnimateCloseButton={shouldAnimateCloseButton}
|
|
63
72
|
/>
|
|
64
73
|
</ChatBotModelContext.Provider>
|
|
65
74
|
)
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React, { ComponentType, PropsWithChildren, ReactNode } from 'react'
|
|
2
|
+
|
|
3
|
+
type ConditionalWrapperProps = {
|
|
4
|
+
children: ReactNode
|
|
5
|
+
withWrapper?: boolean
|
|
6
|
+
Wrapper?: ComponentType<PropsWithChildren>
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export const ConditionalWrapper = ({ withWrapper, Wrapper, children }: ConditionalWrapperProps) => {
|
|
10
|
+
if (withWrapper && Wrapper) {
|
|
11
|
+
return <Wrapper>{children}</Wrapper>
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
return children
|
|
15
|
+
}
|