@magmamath/students-features 0.6.14-rc.12 → 0.6.14-rc.13
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/ChatInput/freeText/ChatTextInput.js +13 -5
- package/dist/commonjs/features/chatbot/components/ChatInput/freeText/ChatTextInput.js.map +1 -1
- package/dist/commonjs/shared/hooks/useKeyDownListener.js +3 -2
- package/dist/commonjs/shared/hooks/useKeyDownListener.js.map +1 -1
- package/dist/module/features/chatbot/components/ChatInput/freeText/ChatTextInput.js +13 -4
- package/dist/module/features/chatbot/components/ChatInput/freeText/ChatTextInput.js.map +1 -1
- package/dist/module/shared/hooks/useKeyDownListener.js +3 -2
- package/dist/module/shared/hooks/useKeyDownListener.js.map +1 -1
- package/dist/typescript/commonjs/features/chatbot/components/ChatInput/freeText/ChatTextInput.d.ts.map +1 -1
- package/dist/typescript/commonjs/shared/hooks/useKeyDownListener.d.ts +1 -1
- package/dist/typescript/commonjs/shared/hooks/useKeyDownListener.d.ts.map +1 -1
- package/dist/typescript/commonjs/shared/hooks/useKeyboard.d.ts +1 -1
- package/dist/typescript/commonjs/shared/hooks/useKeyboard.d.ts.map +1 -1
- package/dist/typescript/module/features/chatbot/components/ChatInput/freeText/ChatTextInput.d.ts.map +1 -1
- package/dist/typescript/module/shared/hooks/useKeyDownListener.d.ts +1 -1
- package/dist/typescript/module/shared/hooks/useKeyDownListener.d.ts.map +1 -1
- package/dist/typescript/module/shared/hooks/useKeyboard.d.ts +1 -1
- package/dist/typescript/module/shared/hooks/useKeyboard.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/features/chatbot/components/ChatInput/freeText/ChatTextInput.tsx +15 -4
- package/src/shared/hooks/useKeyDownListener.ts +3 -1
|
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.ChatTextInput = void 0;
|
|
7
|
-
var _react =
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
|
|
9
9
|
var _reactNative = require("react-native");
|
|
10
10
|
var _reactNativeUi = require("@magmamath/react-native-ui");
|
|
@@ -15,7 +15,6 @@ var _SendMessageButton = require("./SendMessageButton.js");
|
|
|
15
15
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
16
16
|
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
17
|
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; }
|
|
18
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
19
18
|
const MAX_AVAILABLE_MESSAGE_LENGTH = 500;
|
|
20
19
|
const COMPACT_WIDTH = 134;
|
|
21
20
|
const FULL_WIDTH = 305;
|
|
@@ -30,6 +29,7 @@ const ChatTextInput = ({
|
|
|
30
29
|
colorScheme = _studentsFeatures.ColorScheme.Blue,
|
|
31
30
|
placeholder
|
|
32
31
|
}) => {
|
|
32
|
+
const [isFocused, setIsFocused] = (0, _react.useState)(false);
|
|
33
33
|
const widthSv = (0, _reactNativeReanimated.useSharedValue)(COMPACT_WIDTH);
|
|
34
34
|
const animatedStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
|
|
35
35
|
width: widthSv.value
|
|
@@ -56,18 +56,26 @@ const ChatTextInput = ({
|
|
|
56
56
|
onSubmit?.();
|
|
57
57
|
handleInputChange('');
|
|
58
58
|
};
|
|
59
|
+
const handleOnFocus = e => {
|
|
60
|
+
setIsFocused(true);
|
|
61
|
+
onFocus?.(e);
|
|
62
|
+
};
|
|
63
|
+
const handleOnBlur = e => {
|
|
64
|
+
setIsFocused(false);
|
|
65
|
+
onBlur?.(e);
|
|
66
|
+
};
|
|
59
67
|
(0, _useKeyboard.useKeyBoard)(event => {
|
|
60
68
|
if (event.key === _constants.KeyboardKeys.ENTER) {
|
|
61
69
|
void handleSendMessage();
|
|
62
70
|
}
|
|
63
|
-
});
|
|
71
|
+
}, isFocused);
|
|
64
72
|
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeReanimated.default.View, {
|
|
65
73
|
style: [styles.inputWrapper, animatedStyle],
|
|
66
74
|
children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
|
|
67
75
|
value: value,
|
|
68
76
|
onChangeText: handleInputChange,
|
|
69
|
-
onBlur:
|
|
70
|
-
onFocus:
|
|
77
|
+
onBlur: handleOnBlur,
|
|
78
|
+
onFocus: handleOnFocus,
|
|
71
79
|
placeholder: placeholder,
|
|
72
80
|
placeholderTextColor: _reactNativeUi.COLORS.NEUTRAL_6,
|
|
73
81
|
style: styles.input
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNativeReanimated","_reactNative","_reactNativeUi","_studentsFeatures","_useKeyboard","_constants","_SendMessageButton","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","MAX_AVAILABLE_MESSAGE_LENGTH","COMPACT_WIDTH","FULL_WIDTH","ANIMATION_DURATION","ChatTextInput","value","submitDisabled","onSubmit","onChangeText","onBlur","onFocus","colorScheme","ColorScheme","Blue","placeholder","isFocused","setIsFocused","useState","widthSv","useSharedValue","animatedStyle","useAnimatedStyle","width","handleInputChange","text","length","hasText","trim","isExpanded","shouldCollapseInput","shouldExpandInput","withTiming","duration","handleSendMessage","handleOnFocus","handleOnBlur","useKeyBoard","event","key","KeyboardKeys","ENTER","jsxs","View","style","styles","inputWrapper","children","jsx","TextInput","placeholderTextColor","COLORS","NEUTRAL_6","input","SendMessageButton","onPress","disabled","exports","StyleSheet","create","container","position","alignItems","height","justifyContent","zIndex","left","flexDirection","borderWidth","borderColor","NEUTRAL_5","borderRadius","backgroundColor","NEUTRAL_1","paddingHorizontal","SPACING","paddingVertical","elevation","shadowColor","shadowOffset","shadowOpacity","shadowRadius","flex","fontSize","minWidth","minHeight","fontWeight","fontFamily","FONT_FAMILY","buenosAires","Platform","OS","outlineStyle","arrowWrapper","marginLeft"],"sourceRoot":"../../../../../../../src","sources":["features/chatbot/components/ChatInput/freeText/ChatTextInput.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,10 +6,11 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.useKeyDownListener = void 0;
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var _constants = require("../../lib/constants.js");
|
|
9
|
-
const useKeyDownListener = (callback, overrideKeys = [_constants.KeyboardKeys.ENTER]) => {
|
|
9
|
+
const useKeyDownListener = (callback, enabled = true, overrideKeys = [_constants.KeyboardKeys.ENTER]) => {
|
|
10
10
|
const callbackRef = (0, _react.useRef)(callback);
|
|
11
11
|
callbackRef.current = callback;
|
|
12
12
|
(0, _react.useEffect)(() => {
|
|
13
|
+
if (!enabled) return;
|
|
13
14
|
const eventHandler = event => {
|
|
14
15
|
if (overrideKeys.includes(event.key)) {
|
|
15
16
|
event.preventDefault();
|
|
@@ -21,7 +22,7 @@ const useKeyDownListener = (callback, overrideKeys = [_constants.KeyboardKeys.EN
|
|
|
21
22
|
return () => {
|
|
22
23
|
document.removeEventListener('keydown', eventHandler, true);
|
|
23
24
|
};
|
|
24
|
-
}, []);
|
|
25
|
+
}, [enabled]);
|
|
25
26
|
};
|
|
26
27
|
exports.useKeyDownListener = useKeyDownListener;
|
|
27
28
|
//# sourceMappingURL=useKeyDownListener.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_constants","useKeyDownListener","callback","overrideKeys","KeyboardKeys","ENTER","callbackRef","useRef","current","useEffect","eventHandler","event","includes","key","preventDefault","stopPropagation","document","addEventListener","removeEventListener","exports"],"sourceRoot":"../../../../src","sources":["shared/hooks/useKeyDownListener.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AAEO,MAAME,kBAAkB,GAAGA,CAChCC,QAAwC,EACxCC,YAAY,GAAG,CAACC,uBAAY,CAACC,KAAK,CAAC,KAChC;EACH,MAAMC,WAAW,GAAG,IAAAC,aAAM,
|
|
1
|
+
{"version":3,"names":["_react","require","_constants","useKeyDownListener","callback","enabled","overrideKeys","KeyboardKeys","ENTER","callbackRef","useRef","current","useEffect","eventHandler","event","includes","key","preventDefault","stopPropagation","document","addEventListener","removeEventListener","exports"],"sourceRoot":"../../../../src","sources":["shared/hooks/useKeyDownListener.ts"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AAEO,MAAME,kBAAkB,GAAGA,CAChCC,QAAwC,EACxCC,OAAO,GAAG,IAAI,EACdC,YAAY,GAAG,CAACC,uBAAY,CAACC,KAAK,CAAC,KAChC;EACH,MAAMC,WAAW,GAAG,IAAAC,aAAM,EAACN,QAAQ,CAAC;EACpCK,WAAW,CAACE,OAAO,GAAGP,QAAQ;EAE9B,IAAAQ,gBAAS,EAAC,MAAM;IACd,IAAI,CAACP,OAAO,EAAE;IACd,MAAMQ,YAAY,GAAIC,KAAoB,IAAK;MAC7C,IAAIR,YAAY,CAACS,QAAQ,CAACD,KAAK,CAACE,GAAmB,CAAC,EAAE;QACpDF,KAAK,CAACG,cAAc,CAAC,CAAC;QACtBH,KAAK,CAACI,eAAe,CAAC,CAAC;MACzB;MAEAT,WAAW,CAACE,OAAO,CAACG,KAAK,CAAC;IAC5B,CAAC;IAEDK,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAEP,YAAY,EAAE,IAAI,CAAC;IACxD,OAAO,MAAM;MACXM,QAAQ,CAACE,mBAAmB,CAAC,SAAS,EAAER,YAAY,EAAE,IAAI,CAAC;IAC7D,CAAC;EACH,CAAC,EAAE,CAACR,OAAO,CAAC,CAAC;AACf,CAAC;AAAAiB,OAAA,CAAAnB,kBAAA,GAAAA,kBAAA","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import React from 'react';
|
|
3
|
+
import React, { useState } from 'react';
|
|
4
4
|
import Animated, { useAnimatedStyle, useSharedValue, withTiming } from 'react-native-reanimated';
|
|
5
5
|
import { Platform, StyleSheet, TextInput } from 'react-native';
|
|
6
6
|
import { COLORS, FONT_FAMILY, SPACING } from '@magmamath/react-native-ui';
|
|
@@ -23,6 +23,7 @@ export const ChatTextInput = ({
|
|
|
23
23
|
colorScheme = ColorScheme.Blue,
|
|
24
24
|
placeholder
|
|
25
25
|
}) => {
|
|
26
|
+
const [isFocused, setIsFocused] = useState(false);
|
|
26
27
|
const widthSv = useSharedValue(COMPACT_WIDTH);
|
|
27
28
|
const animatedStyle = useAnimatedStyle(() => ({
|
|
28
29
|
width: widthSv.value
|
|
@@ -49,18 +50,26 @@ export const ChatTextInput = ({
|
|
|
49
50
|
onSubmit?.();
|
|
50
51
|
handleInputChange('');
|
|
51
52
|
};
|
|
53
|
+
const handleOnFocus = e => {
|
|
54
|
+
setIsFocused(true);
|
|
55
|
+
onFocus?.(e);
|
|
56
|
+
};
|
|
57
|
+
const handleOnBlur = e => {
|
|
58
|
+
setIsFocused(false);
|
|
59
|
+
onBlur?.(e);
|
|
60
|
+
};
|
|
52
61
|
useKeyBoard(event => {
|
|
53
62
|
if (event.key === KeyboardKeys.ENTER) {
|
|
54
63
|
void handleSendMessage();
|
|
55
64
|
}
|
|
56
|
-
});
|
|
65
|
+
}, isFocused);
|
|
57
66
|
return /*#__PURE__*/_jsxs(Animated.View, {
|
|
58
67
|
style: [styles.inputWrapper, animatedStyle],
|
|
59
68
|
children: [/*#__PURE__*/_jsx(TextInput, {
|
|
60
69
|
value: value,
|
|
61
70
|
onChangeText: handleInputChange,
|
|
62
|
-
onBlur:
|
|
63
|
-
onFocus:
|
|
71
|
+
onBlur: handleOnBlur,
|
|
72
|
+
onFocus: handleOnFocus,
|
|
64
73
|
placeholder: placeholder,
|
|
65
74
|
placeholderTextColor: COLORS.NEUTRAL_6,
|
|
66
75
|
style: styles.input
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Animated","useAnimatedStyle","useSharedValue","withTiming","Platform","StyleSheet","TextInput","COLORS","FONT_FAMILY","SPACING","ColorScheme","useKeyBoard","KeyboardKeys","SendMessageButton","jsx","_jsx","jsxs","_jsxs","MAX_AVAILABLE_MESSAGE_LENGTH","COMPACT_WIDTH","FULL_WIDTH","ANIMATION_DURATION","ChatTextInput","value","submitDisabled","onSubmit","onChangeText","onBlur","onFocus","colorScheme","Blue","placeholder","widthSv","animatedStyle","width","handleInputChange","text","length","hasText","trim","isExpanded","shouldCollapseInput","shouldExpandInput","duration","handleSendMessage","event","key","ENTER","View","style","styles","inputWrapper","children","placeholderTextColor","NEUTRAL_6","input","onPress","disabled","create","container","position","alignItems","height","justifyContent","zIndex","left","flexDirection","borderWidth","borderColor","NEUTRAL_5","borderRadius","backgroundColor","NEUTRAL_1","paddingHorizontal","paddingVertical","elevation","shadowColor","shadowOffset","shadowOpacity","shadowRadius","flex","fontSize","minWidth","minHeight","fontWeight","fontFamily","buenosAires","OS","outlineStyle","arrowWrapper","marginLeft"],"sourceRoot":"../../../../../../../src","sources":["features/chatbot/components/ChatInput/freeText/ChatTextInput.tsx"],"mappings":";;AAAA,OAAOA,KAAK,
|
|
1
|
+
{"version":3,"names":["React","useState","Animated","useAnimatedStyle","useSharedValue","withTiming","Platform","StyleSheet","TextInput","COLORS","FONT_FAMILY","SPACING","ColorScheme","useKeyBoard","KeyboardKeys","SendMessageButton","jsx","_jsx","jsxs","_jsxs","MAX_AVAILABLE_MESSAGE_LENGTH","COMPACT_WIDTH","FULL_WIDTH","ANIMATION_DURATION","ChatTextInput","value","submitDisabled","onSubmit","onChangeText","onBlur","onFocus","colorScheme","Blue","placeholder","isFocused","setIsFocused","widthSv","animatedStyle","width","handleInputChange","text","length","hasText","trim","isExpanded","shouldCollapseInput","shouldExpandInput","duration","handleSendMessage","handleOnFocus","e","handleOnBlur","event","key","ENTER","View","style","styles","inputWrapper","children","placeholderTextColor","NEUTRAL_6","input","onPress","disabled","create","container","position","alignItems","height","justifyContent","zIndex","left","flexDirection","borderWidth","borderColor","NEUTRAL_5","borderRadius","backgroundColor","NEUTRAL_1","paddingHorizontal","paddingVertical","elevation","shadowColor","shadowOffset","shadowOpacity","shadowRadius","flex","fontSize","minWidth","minHeight","fontWeight","fontFamily","buenosAires","OS","outlineStyle","arrowWrapper","marginLeft"],"sourceRoot":"../../../../../../../src","sources":["features/chatbot/components/ChatInput/freeText/ChatTextInput.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
import { useEffect, useRef } from 'react';
|
|
4
4
|
import { KeyboardKeys } from "../../lib/constants.js";
|
|
5
|
-
export const useKeyDownListener = (callback, overrideKeys = [KeyboardKeys.ENTER]) => {
|
|
5
|
+
export const useKeyDownListener = (callback, enabled = true, overrideKeys = [KeyboardKeys.ENTER]) => {
|
|
6
6
|
const callbackRef = useRef(callback);
|
|
7
7
|
callbackRef.current = callback;
|
|
8
8
|
useEffect(() => {
|
|
9
|
+
if (!enabled) return;
|
|
9
10
|
const eventHandler = event => {
|
|
10
11
|
if (overrideKeys.includes(event.key)) {
|
|
11
12
|
event.preventDefault();
|
|
@@ -17,6 +18,6 @@ export const useKeyDownListener = (callback, overrideKeys = [KeyboardKeys.ENTER]
|
|
|
17
18
|
return () => {
|
|
18
19
|
document.removeEventListener('keydown', eventHandler, true);
|
|
19
20
|
};
|
|
20
|
-
}, []);
|
|
21
|
+
}, [enabled]);
|
|
21
22
|
};
|
|
22
23
|
//# sourceMappingURL=useKeyDownListener.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useRef","KeyboardKeys","useKeyDownListener","callback","overrideKeys","ENTER","callbackRef","current","eventHandler","event","includes","key","preventDefault","stopPropagation","document","addEventListener","removeEventListener"],"sourceRoot":"../../../../src","sources":["shared/hooks/useKeyDownListener.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAEzC,SAASC,YAAY,QAAQ,wBAAqB;AAElD,OAAO,MAAMC,kBAAkB,GAAGA,CAChCC,QAAwC,EACxCC,YAAY,GAAG,
|
|
1
|
+
{"version":3,"names":["useEffect","useRef","KeyboardKeys","useKeyDownListener","callback","enabled","overrideKeys","ENTER","callbackRef","current","eventHandler","event","includes","key","preventDefault","stopPropagation","document","addEventListener","removeEventListener"],"sourceRoot":"../../../../src","sources":["shared/hooks/useKeyDownListener.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AAEzC,SAASC,YAAY,QAAQ,wBAAqB;AAElD,OAAO,MAAMC,kBAAkB,GAAGA,CAChCC,QAAwC,EACxCC,OAAO,GAAG,IAAI,EACdC,YAAY,GAAG,CAACJ,YAAY,CAACK,KAAK,CAAC,KAChC;EACH,MAAMC,WAAW,GAAGP,MAAM,CAACG,QAAQ,CAAC;EACpCI,WAAW,CAACC,OAAO,GAAGL,QAAQ;EAE9BJ,SAAS,CAAC,MAAM;IACd,IAAI,CAACK,OAAO,EAAE;IACd,MAAMK,YAAY,GAAIC,KAAoB,IAAK;MAC7C,IAAIL,YAAY,CAACM,QAAQ,CAACD,KAAK,CAACE,GAAmB,CAAC,EAAE;QACpDF,KAAK,CAACG,cAAc,CAAC,CAAC;QACtBH,KAAK,CAACI,eAAe,CAAC,CAAC;MACzB;MAEAP,WAAW,CAACC,OAAO,CAACE,KAAK,CAAC;IAC5B,CAAC;IAEDK,QAAQ,CAACC,gBAAgB,CAAC,SAAS,EAAEP,YAAY,EAAE,IAAI,CAAC;IACxD,OAAO,MAAM;MACXM,QAAQ,CAACE,mBAAmB,CAAC,SAAS,EAAER,YAAY,EAAE,IAAI,CAAC;IAC7D,CAAC;EACH,CAAC,EAAE,CAACL,OAAO,CAAC,CAAC;AACf,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatTextInput.d.ts","sourceRoot":"","sources":["../../../../../../../../src/features/chatbot/components/ChatInput/freeText/ChatTextInput.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ChatTextInput.d.ts","sourceRoot":"","sources":["../../../../../../../../src/features/chatbot/components/ChatInput/freeText/ChatTextInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,EACL,oBAAoB,EAIpB,uBAAuB,EACxB,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAW1D,KAAK,kBAAkB,GAAG;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,uBAAuB,CAAC,KAAK,IAAI,CAAA;IACnE,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,uBAAuB,CAAC,KAAK,IAAI,CAAA;IACpE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,aAAa,kGASvB,kBAAkB,sBAsEpB,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { KeyboardKeys } from '../../lib/constants';
|
|
2
|
-
export declare const useKeyDownListener: (callback: (event: KeyboardEvent) => void, overrideKeys?: KeyboardKeys[]) => void;
|
|
2
|
+
export declare const useKeyDownListener: (callback: (event: KeyboardEvent) => void, enabled?: boolean, overrideKeys?: KeyboardKeys[]) => void;
|
|
3
3
|
//# sourceMappingURL=useKeyDownListener.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useKeyDownListener.d.ts","sourceRoot":"","sources":["../../../../../src/shared/hooks/useKeyDownListener.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAElD,eAAO,MAAM,kBAAkB,aACnB,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,
|
|
1
|
+
{"version":3,"file":"useKeyDownListener.d.ts","sourceRoot":"","sources":["../../../../../src/shared/hooks/useKeyDownListener.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAElD,eAAO,MAAM,kBAAkB,aACnB,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,2DAuBzC,CAAA"}
|
|
@@ -7,5 +7,5 @@
|
|
|
7
7
|
* - On web (default), it returns the `useKeyDownListener` hook, which allows you
|
|
8
8
|
* to register a callback that is triggered on keydown events.
|
|
9
9
|
*/
|
|
10
|
-
export declare const useKeyBoard: (callback: (event: KeyboardEvent) => void, overrideKeys?: import("../../lib/constants").KeyboardKeys[]) => void;
|
|
10
|
+
export declare const useKeyBoard: (callback: (event: KeyboardEvent) => void, enabled?: boolean, overrideKeys?: import("../../lib/constants").KeyboardKeys[]) => void;
|
|
11
11
|
//# sourceMappingURL=useKeyboard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useKeyboard.d.ts","sourceRoot":"","sources":["../../../../../src/shared/hooks/useKeyboard.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"useKeyboard.d.ts","sourceRoot":"","sources":["../../../../../src/shared/hooks/useKeyboard.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,oIAGtB,CAAC"}
|
package/dist/typescript/module/features/chatbot/components/ChatInput/freeText/ChatTextInput.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatTextInput.d.ts","sourceRoot":"","sources":["../../../../../../../../src/features/chatbot/components/ChatInput/freeText/ChatTextInput.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ChatTextInput.d.ts","sourceRoot":"","sources":["../../../../../../../../src/features/chatbot/components/ChatInput/freeText/ChatTextInput.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,EACL,oBAAoB,EAIpB,uBAAuB,EACxB,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAA;AAW1D,KAAK,kBAAkB,GAAG;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,uBAAuB,CAAC,KAAK,IAAI,CAAA;IACnE,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,oBAAoB,CAAC,uBAAuB,CAAC,KAAK,IAAI,CAAA;IACpE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,WAAW,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,aAAa,kGASvB,kBAAkB,sBAsEpB,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { KeyboardKeys } from '../../lib/constants';
|
|
2
|
-
export declare const useKeyDownListener: (callback: (event: KeyboardEvent) => void, overrideKeys?: KeyboardKeys[]) => void;
|
|
2
|
+
export declare const useKeyDownListener: (callback: (event: KeyboardEvent) => void, enabled?: boolean, overrideKeys?: KeyboardKeys[]) => void;
|
|
3
3
|
//# sourceMappingURL=useKeyDownListener.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useKeyDownListener.d.ts","sourceRoot":"","sources":["../../../../../src/shared/hooks/useKeyDownListener.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAElD,eAAO,MAAM,kBAAkB,aACnB,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,
|
|
1
|
+
{"version":3,"file":"useKeyDownListener.d.ts","sourceRoot":"","sources":["../../../../../src/shared/hooks/useKeyDownListener.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAElD,eAAO,MAAM,kBAAkB,aACnB,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,2DAuBzC,CAAA"}
|
|
@@ -7,5 +7,5 @@
|
|
|
7
7
|
* - On web (default), it returns the `useKeyDownListener` hook, which allows you
|
|
8
8
|
* to register a callback that is triggered on keydown events.
|
|
9
9
|
*/
|
|
10
|
-
export declare const useKeyBoard: (callback: (event: KeyboardEvent) => void, overrideKeys?: import("../../lib/constants").KeyboardKeys[]) => void;
|
|
10
|
+
export declare const useKeyBoard: (callback: (event: KeyboardEvent) => void, enabled?: boolean, overrideKeys?: import("../../lib/constants").KeyboardKeys[]) => void;
|
|
11
11
|
//# sourceMappingURL=useKeyboard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useKeyboard.d.ts","sourceRoot":"","sources":["../../../../../src/shared/hooks/useKeyboard.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"useKeyboard.d.ts","sourceRoot":"","sources":["../../../../../src/shared/hooks/useKeyboard.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AACH,eAAO,MAAM,WAAW,oIAGtB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from 'react'
|
|
1
|
+
import React, { useState } from 'react'
|
|
2
2
|
import Animated, { useAnimatedStyle, useSharedValue, withTiming } from 'react-native-reanimated'
|
|
3
3
|
import {
|
|
4
4
|
NativeSyntheticEvent,
|
|
@@ -40,6 +40,7 @@ export const ChatTextInput = ({
|
|
|
40
40
|
colorScheme = ColorScheme.Blue,
|
|
41
41
|
placeholder,
|
|
42
42
|
}: ChatTextInputProps) => {
|
|
43
|
+
const [isFocused, setIsFocused] = useState(false)
|
|
43
44
|
const widthSv = useSharedValue(COMPACT_WIDTH)
|
|
44
45
|
|
|
45
46
|
const animatedStyle = useAnimatedStyle(
|
|
@@ -74,19 +75,29 @@ export const ChatTextInput = ({
|
|
|
74
75
|
handleInputChange('')
|
|
75
76
|
}
|
|
76
77
|
|
|
78
|
+
const handleOnFocus = (e: NativeSyntheticEvent<TextInputFocusEventData>) => {
|
|
79
|
+
setIsFocused(true)
|
|
80
|
+
onFocus?.(e)
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
const handleOnBlur = (e: NativeSyntheticEvent<TextInputFocusEventData>) => {
|
|
84
|
+
setIsFocused(false)
|
|
85
|
+
onBlur?.(e)
|
|
86
|
+
}
|
|
87
|
+
|
|
77
88
|
useKeyBoard((event) => {
|
|
78
89
|
if (event.key === KeyboardKeys.ENTER) {
|
|
79
90
|
void handleSendMessage()
|
|
80
91
|
}
|
|
81
|
-
})
|
|
92
|
+
}, isFocused)
|
|
82
93
|
|
|
83
94
|
return (
|
|
84
95
|
<Animated.View style={[styles.inputWrapper, animatedStyle]}>
|
|
85
96
|
<TextInput
|
|
86
97
|
value={value}
|
|
87
98
|
onChangeText={handleInputChange}
|
|
88
|
-
onBlur={
|
|
89
|
-
onFocus={
|
|
99
|
+
onBlur={handleOnBlur}
|
|
100
|
+
onFocus={handleOnFocus}
|
|
90
101
|
placeholder={placeholder}
|
|
91
102
|
placeholderTextColor={COLORS.NEUTRAL_6}
|
|
92
103
|
style={styles.input}
|
|
@@ -4,12 +4,14 @@ import { KeyboardKeys } from '../../lib/constants'
|
|
|
4
4
|
|
|
5
5
|
export const useKeyDownListener = (
|
|
6
6
|
callback: (event: KeyboardEvent) => void,
|
|
7
|
+
enabled = true,
|
|
7
8
|
overrideKeys = [KeyboardKeys.ENTER],
|
|
8
9
|
) => {
|
|
9
10
|
const callbackRef = useRef(callback)
|
|
10
11
|
callbackRef.current = callback
|
|
11
12
|
|
|
12
13
|
useEffect(() => {
|
|
14
|
+
if (!enabled) return
|
|
13
15
|
const eventHandler = (event: KeyboardEvent) => {
|
|
14
16
|
if (overrideKeys.includes(event.key as KeyboardKeys)) {
|
|
15
17
|
event.preventDefault()
|
|
@@ -23,5 +25,5 @@ export const useKeyDownListener = (
|
|
|
23
25
|
return () => {
|
|
24
26
|
document.removeEventListener('keydown', eventHandler, true)
|
|
25
27
|
}
|
|
26
|
-
}, [])
|
|
28
|
+
}, [enabled])
|
|
27
29
|
}
|