stream-chat-react-native-core 4.8.0-beta.1 → 4.9.0-beta.2
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/lib/commonjs/components/Attachment/GallaryImage.js +41 -0
- package/lib/commonjs/components/Attachment/GallaryImage.js.map +1 -0
- package/lib/commonjs/components/Attachment/Gallery.js +101 -36
- package/lib/commonjs/components/Attachment/Gallery.js.map +1 -1
- package/lib/commonjs/components/Attachment/Giphy.js +118 -25
- package/lib/commonjs/components/Attachment/Giphy.js.map +1 -1
- package/lib/commonjs/components/Attachment/ImageLoadingFailedIndicator.js +105 -0
- package/lib/commonjs/components/Attachment/ImageLoadingFailedIndicator.js.map +1 -0
- package/lib/commonjs/components/Attachment/ImageLoadingIndicator.js +58 -0
- package/lib/commonjs/components/Attachment/ImageLoadingIndicator.js.map +1 -0
- package/lib/commonjs/components/Attachment/hooks/useLoadingImage.js +32 -0
- package/lib/commonjs/components/Attachment/hooks/useLoadingImage.js.map +1 -0
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js +3 -2
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +1 -1
- package/lib/commonjs/components/AutoCompleteInput/AutoCompleteSuggestionItem.js.map +1 -1
- package/lib/commonjs/components/Channel/Channel.js +23 -13
- package/lib/commonjs/components/Channel/Channel.js.map +1 -1
- package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js +4 -0
- package/lib/commonjs/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
- package/lib/commonjs/components/ChannelPreview/hooks/useLatestMessagePreview.js +43 -19
- package/lib/commonjs/components/ChannelPreview/hooks/useLatestMessagePreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js +20 -19
- package/lib/commonjs/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/commonjs/components/MessageInput/ImageUploadPreview.js +14 -15
- package/lib/commonjs/components/MessageInput/ImageUploadPreview.js.map +1 -1
- package/lib/commonjs/contexts/messagesContext/MessagesContext.js +2 -2
- package/lib/commonjs/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/commonjs/contexts/themeContext/utils/theme.js +4 -0
- package/lib/commonjs/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/commonjs/mock-builders/api/channelMocks.js +299 -0
- package/lib/commonjs/mock-builders/api/channelMocks.js.map +1 -0
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Attachment/GallaryImage.js +41 -0
- package/lib/module/components/Attachment/GallaryImage.js.map +1 -0
- package/lib/module/components/Attachment/Gallery.js +101 -36
- package/lib/module/components/Attachment/Gallery.js.map +1 -1
- package/lib/module/components/Attachment/Giphy.js +118 -25
- package/lib/module/components/Attachment/Giphy.js.map +1 -1
- package/lib/module/components/Attachment/ImageLoadingFailedIndicator.js +105 -0
- package/lib/module/components/Attachment/ImageLoadingFailedIndicator.js.map +1 -0
- package/lib/module/components/Attachment/ImageLoadingIndicator.js +58 -0
- package/lib/module/components/Attachment/ImageLoadingIndicator.js.map +1 -0
- package/lib/module/components/Attachment/hooks/useLoadingImage.js +32 -0
- package/lib/module/components/Attachment/hooks/useLoadingImage.js.map +1 -0
- package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js +3 -2
- package/lib/module/components/AutoCompleteInput/AutoCompleteInput.js.map +1 -1
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionItem.js +1 -1
- package/lib/module/components/AutoCompleteInput/AutoCompleteSuggestionItem.js.map +1 -1
- package/lib/module/components/Channel/Channel.js +23 -13
- package/lib/module/components/Channel/Channel.js.map +1 -1
- package/lib/module/components/Channel/hooks/useCreateMessagesContext.js +4 -0
- package/lib/module/components/Channel/hooks/useCreateMessagesContext.js.map +1 -1
- package/lib/module/components/ChannelPreview/hooks/useLatestMessagePreview.js +43 -19
- package/lib/module/components/ChannelPreview/hooks/useLatestMessagePreview.js.map +1 -1
- package/lib/module/components/MessageInput/FileUploadPreview.js +20 -19
- package/lib/module/components/MessageInput/FileUploadPreview.js.map +1 -1
- package/lib/module/components/MessageInput/ImageUploadPreview.js +14 -15
- package/lib/module/components/MessageInput/ImageUploadPreview.js.map +1 -1
- package/lib/module/contexts/messagesContext/MessagesContext.js +2 -2
- package/lib/module/contexts/messagesContext/MessagesContext.js.map +1 -1
- package/lib/module/contexts/themeContext/utils/theme.js +4 -0
- package/lib/module/contexts/themeContext/utils/theme.js.map +1 -1
- package/lib/module/mock-builders/api/channelMocks.js +299 -0
- package/lib/module/mock-builders/api/channelMocks.js.map +1 -0
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/Attachment/GallaryImage.d.ts +5 -0
- package/lib/typescript/components/Attachment/Gallery.d.ts +1 -1
- package/lib/typescript/components/Attachment/Giphy.d.ts +1 -1
- package/lib/typescript/components/Attachment/ImageLoadingFailedIndicator.d.ts +3 -0
- package/lib/typescript/components/Attachment/ImageLoadingIndicator.d.ts +3 -0
- package/lib/typescript/components/Attachment/hooks/useLoadingImage.d.ts +7 -0
- package/lib/typescript/components/Channel/Channel.d.ts +1 -1
- package/lib/typescript/components/Channel/hooks/useCreateMessagesContext.d.ts +1 -1
- package/lib/typescript/components/ChannelPreview/hooks/__tests__/useLatestMessagePreview.test.d.ts +1 -0
- package/lib/typescript/contexts/messagesContext/MessagesContext.d.ts +10 -0
- package/lib/typescript/contexts/themeContext/utils/theme.d.ts +4 -0
- package/lib/typescript/mock-builders/api/channelMocks.d.ts +14 -0
- package/package.json +1 -1
- package/src/components/Attachment/GallaryImage.tsx +22 -0
- package/src/components/Attachment/Gallery.tsx +68 -35
- package/src/components/Attachment/Giphy.tsx +68 -1
- package/src/components/Attachment/ImageLoadingFailedIndicator.tsx +56 -0
- package/src/components/Attachment/ImageLoadingIndicator.tsx +31 -0
- package/src/components/Attachment/__tests__/Attachment.test.js +9 -3
- package/src/components/Attachment/__tests__/Gallery.test.js +36 -1
- package/src/components/Attachment/__tests__/Giphy.test.js +110 -90
- package/src/components/Attachment/hooks/useLoadingImage.tsx +8 -0
- package/src/components/AutoCompleteInput/AutoCompleteInput.tsx +2 -1
- package/src/components/AutoCompleteInput/AutoCompleteSuggestionItem.tsx +1 -1
- package/src/components/Channel/Channel.tsx +8 -0
- package/src/components/Channel/hooks/useCreateMessagesContext.ts +4 -0
- package/src/components/ChannelPreview/__tests__/ChannelPreviewMessenger.test.js +0 -1
- package/src/components/ChannelPreview/hooks/__tests__/useLatestMessagePreview.test.tsx +145 -0
- package/src/components/ChannelPreview/hooks/useLatestMessagePreview.ts +50 -24
- package/src/components/MessageInput/FileUploadPreview.tsx +5 -4
- package/src/components/MessageInput/ImageUploadPreview.tsx +2 -3
- package/src/components/MessageInput/__tests__/__snapshots__/MessageInput.test.js.snap +1 -0
- package/src/components/Thread/__tests__/__snapshots__/Thread.test.js.snap +1 -0
- package/src/contexts/messagesContext/MessagesContext.tsx +15 -0
- package/src/contexts/themeContext/utils/theme.ts +8 -0
- package/src/mock-builders/api/channelMocks.tsx +272 -0
- package/src/version.json +1 -1
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ImageLoadingFailedIndicator = void 0;
|
|
7
|
+
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
|
|
10
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
|
+
|
|
12
|
+
var _react = _interopRequireDefault(require("react"));
|
|
13
|
+
|
|
14
|
+
var _reactNative = require("react-native");
|
|
15
|
+
|
|
16
|
+
var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
|
|
17
|
+
|
|
18
|
+
var _TranslationContext = require("../../contexts/translationContext/TranslationContext");
|
|
19
|
+
|
|
20
|
+
var _icons = require("../../icons");
|
|
21
|
+
|
|
22
|
+
var _excluded = ["style"];
|
|
23
|
+
|
|
24
|
+
var _this = this,
|
|
25
|
+
_jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/Attachment/ImageLoadingFailedIndicator.tsx";
|
|
26
|
+
|
|
27
|
+
var WARNING_ICON_SIZE = 14;
|
|
28
|
+
|
|
29
|
+
var styles = _reactNative.StyleSheet.create({
|
|
30
|
+
container: {
|
|
31
|
+
alignContent: 'center',
|
|
32
|
+
alignItems: 'center',
|
|
33
|
+
borderRadius: 20,
|
|
34
|
+
flexDirection: 'row',
|
|
35
|
+
justifyContent: 'center'
|
|
36
|
+
},
|
|
37
|
+
errorText: {
|
|
38
|
+
fontSize: 8,
|
|
39
|
+
justifyContent: 'center',
|
|
40
|
+
paddingHorizontal: 8
|
|
41
|
+
},
|
|
42
|
+
warningIconStyle: {
|
|
43
|
+
borderRadius: 24,
|
|
44
|
+
marginLeft: 4,
|
|
45
|
+
marginTop: 6
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
var ImageLoadingFailedIndicator = function ImageLoadingFailedIndicator(props) {
|
|
50
|
+
var _useTheme = (0, _ThemeContext.useTheme)(),
|
|
51
|
+
_useTheme$theme$color = _useTheme.theme.colors,
|
|
52
|
+
accent_red = _useTheme$theme$color.accent_red,
|
|
53
|
+
overlay = _useTheme$theme$color.overlay,
|
|
54
|
+
white = _useTheme$theme$color.white;
|
|
55
|
+
|
|
56
|
+
var _useTranslationContex = (0, _TranslationContext.useTranslationContext)(),
|
|
57
|
+
t = _useTranslationContex.t;
|
|
58
|
+
|
|
59
|
+
var style = props.style,
|
|
60
|
+
rest = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
|
61
|
+
return _react["default"].createElement(_reactNative.View, (0, _extends2["default"])({}, rest, {
|
|
62
|
+
accessibilityHint: "image-loading-error",
|
|
63
|
+
style: [style],
|
|
64
|
+
__self: _this,
|
|
65
|
+
__source: {
|
|
66
|
+
fileName: _jsxFileName,
|
|
67
|
+
lineNumber: 44,
|
|
68
|
+
columnNumber: 5
|
|
69
|
+
}
|
|
70
|
+
}), _react["default"].createElement(_reactNative.View, {
|
|
71
|
+
style: [styles.container, {
|
|
72
|
+
backgroundColor: overlay
|
|
73
|
+
}],
|
|
74
|
+
__self: _this,
|
|
75
|
+
__source: {
|
|
76
|
+
fileName: _jsxFileName,
|
|
77
|
+
lineNumber: 45,
|
|
78
|
+
columnNumber: 7
|
|
79
|
+
}
|
|
80
|
+
}, _react["default"].createElement(_icons.Warning, {
|
|
81
|
+
height: WARNING_ICON_SIZE,
|
|
82
|
+
pathFill: accent_red,
|
|
83
|
+
style: styles.warningIconStyle,
|
|
84
|
+
width: WARNING_ICON_SIZE,
|
|
85
|
+
__self: _this,
|
|
86
|
+
__source: {
|
|
87
|
+
fileName: _jsxFileName,
|
|
88
|
+
lineNumber: 46,
|
|
89
|
+
columnNumber: 9
|
|
90
|
+
}
|
|
91
|
+
}), _react["default"].createElement(_reactNative.Text, {
|
|
92
|
+
style: [styles.errorText, {
|
|
93
|
+
color: white
|
|
94
|
+
}],
|
|
95
|
+
__self: _this,
|
|
96
|
+
__source: {
|
|
97
|
+
fileName: _jsxFileName,
|
|
98
|
+
lineNumber: 52,
|
|
99
|
+
columnNumber: 9
|
|
100
|
+
}
|
|
101
|
+
}, t('Error loading'))));
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
exports.ImageLoadingFailedIndicator = ImageLoadingFailedIndicator;
|
|
105
|
+
//# sourceMappingURL=ImageLoadingFailedIndicator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["ImageLoadingFailedIndicator.tsx"],"names":["WARNING_ICON_SIZE","styles","StyleSheet","create","container","alignContent","alignItems","borderRadius","flexDirection","justifyContent","errorText","fontSize","paddingHorizontal","warningIconStyle","marginLeft","marginTop","ImageLoadingFailedIndicator","props","theme","colors","accent_red","overlay","white","t","style","rest","backgroundColor","color"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAEA;;AACA;;AAEA;;;;;;;AAEA,IAAMA,iBAAiB,GAAG,EAA1B;;AAEA,IAAMC,MAAM,GAAGC,wBAAWC,MAAX,CAAkB;AAC/BC,EAAAA,SAAS,EAAE;AACTC,IAAAA,YAAY,EAAE,QADL;AAETC,IAAAA,UAAU,EAAE,QAFH;AAGTC,IAAAA,YAAY,EAAE,EAHL;AAITC,IAAAA,aAAa,EAAE,KAJN;AAKTC,IAAAA,cAAc,EAAE;AALP,GADoB;AAQ/BC,EAAAA,SAAS,EAAE;AACTC,IAAAA,QAAQ,EAAE,CADD;AAETF,IAAAA,cAAc,EAAE,QAFP;AAGTG,IAAAA,iBAAiB,EAAE;AAHV,GARoB;AAa/BC,EAAAA,gBAAgB,EAAE;AAChBN,IAAAA,YAAY,EAAE,EADE;AAEhBO,IAAAA,UAAU,EAAE,CAFI;AAGhBC,IAAAA,SAAS,EAAE;AAHK;AAba,CAAlB,CAAf;;AAsBO,IAAMC,2BAA2B,GAAG,SAA9BA,2BAA8B,CAACC,KAAD,EAA6C;AACtF,kBAII,6BAJJ;AAAA,wCACEC,KADF,CAEIC,MAFJ;AAAA,MAEcC,UAFd,yBAEcA,UAFd;AAAA,MAE0BC,OAF1B,yBAE0BA,OAF1B;AAAA,MAEmCC,KAFnC,yBAEmCA,KAFnC;;AAMA,8BAAc,gDAAd;AAAA,MAAQC,CAAR,yBAAQA,CAAR;;AAEA,MAAQC,KAAR,GAA2BP,KAA3B,CAAQO,KAAR;AAAA,MAAkBC,IAAlB,6CAA2BR,KAA3B;AACA,SACE,gCAAC,iBAAD,gCAAUQ,IAAV;AAAgB,IAAA,iBAAiB,EAAC,qBAAlC;AAAwD,IAAA,KAAK,EAAE,CAACD,KAAD,CAA/D;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MACE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACvB,MAAM,CAACG,SAAR,EAAmB;AAAEsB,MAAAA,eAAe,EAAEL;AAAnB,KAAnB,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KACE,gCAAC,cAAD;AACE,IAAA,MAAM,EAAErB,iBADV;AAEE,IAAA,QAAQ,EAAEoB,UAFZ;AAGE,IAAA,KAAK,EAAEnB,MAAM,CAACY,gBAHhB;AAIE,IAAA,KAAK,EAAEb,iBAJT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADF,EAOE,gCAAC,iBAAD;AAAM,IAAA,KAAK,EAAE,CAACC,MAAM,CAACS,SAAR,EAAmB;AAAEiB,MAAAA,KAAK,EAAEL;AAAT,KAAnB,CAAb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAoDC,CAAC,CAAC,eAAD,CAArD,CAPF,CADF,CADF;AAaD,CAvBM","sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, View, ViewProps } from 'react-native';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport { useTranslationContext } from '../../contexts/translationContext/TranslationContext';\n\nimport { Warning } from '../../icons';\n\nconst WARNING_ICON_SIZE = 14;\n\nconst styles = StyleSheet.create({\n container: {\n alignContent: 'center',\n alignItems: 'center',\n borderRadius: 20,\n flexDirection: 'row',\n justifyContent: 'center',\n },\n errorText: {\n fontSize: 8,\n justifyContent: 'center',\n paddingHorizontal: 8,\n },\n warningIconStyle: {\n borderRadius: 24,\n marginLeft: 4,\n marginTop: 6,\n },\n});\n\nexport type ImageLoadingFailedIndicatorProps = ViewProps;\n\nexport const ImageLoadingFailedIndicator = (props: ImageLoadingFailedIndicatorProps) => {\n const {\n theme: {\n colors: { accent_red, overlay, white },\n },\n } = useTheme();\n\n const { t } = useTranslationContext();\n\n const { style, ...rest } = props;\n return (\n <View {...rest} accessibilityHint='image-loading-error' style={[style]}>\n <View style={[styles.container, { backgroundColor: overlay }]}>\n <Warning\n height={WARNING_ICON_SIZE}\n pathFill={accent_red}\n style={styles.warningIconStyle}\n width={WARNING_ICON_SIZE}\n />\n <Text style={[styles.errorText, { color: white }]}>{t('Error loading')}</Text>\n </View>\n </View>\n );\n};\n"]}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ImageLoadingIndicator = void 0;
|
|
7
|
+
|
|
8
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
9
|
+
|
|
10
|
+
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
11
|
+
|
|
12
|
+
var _react = _interopRequireDefault(require("react"));
|
|
13
|
+
|
|
14
|
+
var _reactNative = require("react-native");
|
|
15
|
+
|
|
16
|
+
var _ThemeContext = require("../../contexts/themeContext/ThemeContext");
|
|
17
|
+
|
|
18
|
+
var _excluded = ["style"];
|
|
19
|
+
|
|
20
|
+
var _this = this,
|
|
21
|
+
_jsxFileName = "/home/runner/work/stream-chat-react-native/stream-chat-react-native/package/src/components/Attachment/ImageLoadingIndicator.tsx";
|
|
22
|
+
|
|
23
|
+
var styles = _reactNative.StyleSheet.create({
|
|
24
|
+
container: {
|
|
25
|
+
alignItems: 'center',
|
|
26
|
+
display: 'flex',
|
|
27
|
+
justifyContent: 'center',
|
|
28
|
+
width: '100%'
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
var ImageLoadingIndicator = function ImageLoadingIndicator(props) {
|
|
33
|
+
var _useTheme = (0, _ThemeContext.useTheme)(),
|
|
34
|
+
container = _useTheme.theme.messageSimple.loadingIndicator.container;
|
|
35
|
+
|
|
36
|
+
var style = props.style,
|
|
37
|
+
rest = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
|
38
|
+
return _react["default"].createElement(_reactNative.View, (0, _extends2["default"])({}, rest, {
|
|
39
|
+
accessibilityHint: "image-loading",
|
|
40
|
+
style: [styles.container, container, style],
|
|
41
|
+
__self: _this,
|
|
42
|
+
__source: {
|
|
43
|
+
fileName: _jsxFileName,
|
|
44
|
+
lineNumber: 27,
|
|
45
|
+
columnNumber: 5
|
|
46
|
+
}
|
|
47
|
+
}), _react["default"].createElement(_reactNative.ActivityIndicator, {
|
|
48
|
+
__self: _this,
|
|
49
|
+
__source: {
|
|
50
|
+
fileName: _jsxFileName,
|
|
51
|
+
lineNumber: 28,
|
|
52
|
+
columnNumber: 7
|
|
53
|
+
}
|
|
54
|
+
}));
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
exports.ImageLoadingIndicator = ImageLoadingIndicator;
|
|
58
|
+
//# sourceMappingURL=ImageLoadingIndicator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["ImageLoadingIndicator.tsx"],"names":["styles","StyleSheet","create","container","alignItems","display","justifyContent","width","ImageLoadingIndicator","props","theme","messageSimple","loadingIndicator","style","rest"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AAEA;;;;;;;AAEA,IAAMA,MAAM,GAAGC,wBAAWC,MAAX,CAAkB;AAC/BC,EAAAA,SAAS,EAAE;AACTC,IAAAA,UAAU,EAAE,QADH;AAETC,IAAAA,OAAO,EAAE,MAFA;AAGTC,IAAAA,cAAc,EAAE,QAHP;AAITC,IAAAA,KAAK,EAAE;AAJE;AADoB,CAAlB,CAAf;;AAWO,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAwB,CAACC,KAAD,EAAuC;AAC1E,kBAMI,6BANJ;AAAA,MAG0BN,SAH1B,aACEO,KADF,CAEIC,aAFJ,CAGMC,gBAHN,CAG0BT,SAH1B;;AAOA,MAAQU,KAAR,GAA2BJ,KAA3B,CAAQI,KAAR;AAAA,MAAkBC,IAAlB,6CAA2BL,KAA3B;AACA,SACE,gCAAC,iBAAD,gCAAUK,IAAV;AAAgB,IAAA,iBAAiB,EAAC,eAAlC;AAAkD,IAAA,KAAK,EAAE,CAACd,MAAM,CAACG,SAAR,EAAmBA,SAAnB,EAA8BU,KAA9B,CAAzD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MACE,gCAAC,8BAAD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IADF,CADF;AAKD,CAdM","sourcesContent":["import React from 'react';\nimport { ActivityIndicator, StyleSheet, View, ViewProps } from 'react-native';\n\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\n\nconst styles = StyleSheet.create({\n container: {\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n },\n});\n\nexport type ImageLoadingIndicatorProps = ViewProps;\n\nexport const ImageLoadingIndicator = (props: ImageLoadingIndicatorProps) => {\n const {\n theme: {\n messageSimple: {\n loadingIndicator: { container },\n },\n },\n } = useTheme();\n const { style, ...rest } = props;\n return (\n <View {...rest} accessibilityHint='image-loading' style={[styles.container, container, style]}>\n <ActivityIndicator />\n </View>\n );\n};\n"]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useLoadingImage = void 0;
|
|
7
|
+
|
|
8
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
+
|
|
10
|
+
var _react = require("react");
|
|
11
|
+
|
|
12
|
+
var useLoadingImage = function useLoadingImage() {
|
|
13
|
+
var _useState = (0, _react.useState)(true),
|
|
14
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
15
|
+
isLoadingImage = _useState2[0],
|
|
16
|
+
setLoadingImage = _useState2[1];
|
|
17
|
+
|
|
18
|
+
var _useState3 = (0, _react.useState)(false),
|
|
19
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
20
|
+
isLoadingImageError = _useState4[0],
|
|
21
|
+
setLoadingImageError = _useState4[1];
|
|
22
|
+
|
|
23
|
+
return {
|
|
24
|
+
isLoadingImage: isLoadingImage,
|
|
25
|
+
isLoadingImageError: isLoadingImageError,
|
|
26
|
+
setLoadingImage: setLoadingImage,
|
|
27
|
+
setLoadingImageError: setLoadingImageError
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
exports.useLoadingImage = useLoadingImage;
|
|
32
|
+
//# sourceMappingURL=useLoadingImage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["useLoadingImage.tsx"],"names":["useLoadingImage","isLoadingImage","setLoadingImage","isLoadingImageError","setLoadingImageError"],"mappings":";;;;;;;;;AAAA;;AAEO,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,GAAM;AACnC,kBAA0C,qBAAS,IAAT,CAA1C;AAAA;AAAA,MAAOC,cAAP;AAAA,MAAuBC,eAAvB;;AACA,mBAAoD,qBAAS,KAAT,CAApD;AAAA;AAAA,MAAOC,mBAAP;AAAA,MAA4BC,oBAA5B;;AAEA,SAAO;AAAEH,IAAAA,cAAc,EAAdA,cAAF;AAAkBE,IAAAA,mBAAmB,EAAnBA,mBAAlB;AAAuCD,IAAAA,eAAe,EAAfA,eAAvC;AAAwDE,IAAAA,oBAAoB,EAApBA;AAAxD,GAAP;AACD,CALM","sourcesContent":["import { useState } from 'react';\n\nexport const useLoadingImage = () => {\n const [isLoadingImage, setLoadingImage] = useState(true);\n const [isLoadingImageError, setLoadingImageError] = useState(false);\n\n return { isLoadingImage, isLoadingImageError, setLoadingImage, setLoadingImageError };\n};\n"]}
|
|
@@ -488,7 +488,8 @@ var AutoCompleteInputWithContext = function AutoCompleteInputWithContext(props)
|
|
|
488
488
|
ref: setInputBoxRef,
|
|
489
489
|
style: [styles.inputBox, {
|
|
490
490
|
color: black,
|
|
491
|
-
maxHeight: (textHeight || 17) * numberOfLines
|
|
491
|
+
maxHeight: (textHeight || 17) * numberOfLines,
|
|
492
|
+
textAlign: _reactNative.I18nManager.isRTL ? 'right' : 'left'
|
|
492
493
|
}, inputBox],
|
|
493
494
|
testID: "auto-complete-text-input",
|
|
494
495
|
value: text
|
|
@@ -581,7 +582,7 @@ var AutoCompleteInput = function AutoCompleteInput(props) {
|
|
|
581
582
|
__self: _this,
|
|
582
583
|
__source: {
|
|
583
584
|
fileName: _jsxFileName,
|
|
584
|
-
lineNumber:
|
|
585
|
+
lineNumber: 500,
|
|
585
586
|
columnNumber: 5
|
|
586
587
|
}
|
|
587
588
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["AutoCompleteInput.tsx"],"names":["styles","StyleSheet","create","inputBox","flex","fontSize","includeFontPadding","padding","paddingTop","textAlignVertical","computeCaretPosition","token","startOfTokenPosition","length","isCommand","text","split","AutoCompleteInputWithContext","props","additionalTextInputProps","autoCompleteSuggestionsLimit","closeSuggestions","cooldownActive","giphyActive","giphyEnabled","maxMessageLength","mentionAllAppUsersEnabled","mentionAllAppUsersQuery","numberOfLines","onChange","openSuggestions","setGiphyActive","setInputBoxRef","setShowMoreOptions","t","triggerSettings","updateSuggestionsContext","updateSuggestions","isTrackingStarted","selectionEnd","textHeight","setTextHeight","theme","colors","black","grey","messageInput","handleChange","newText","fromUpdate","handleSuggestionsThrottled","startTracking","trigger","triggerSetting","current","type","stopTracking","query","dataProvider","data","queryCallback","onSelect","item","onSelectSuggestion","queryText","limit","handleSelectionChange","end","nativeEvent","selection","newTokenString","output","textToModify","slice","lastIndexOf","newCaretPosition","modifiedText","substring","replace","startsWith","callback","handleCommand","actualToken","trim","handleMentions","tokenMatch","lastToken","handleMentionsTrigger","Object","keys","find","handleEmojis","handleEmojisTrigger","handleSuggestions","test","mentionTokenMatch","match","emojiTokenMatch","placeholderText","leading","height","contentSize","color","maxHeight","event","onBlur","areEqual","prevProps","nextProps","prevCooldownActive","prevGiphyActive","prevT","prevText","nextCooldownActive","nextGiphyActive","nextT","nextText","giphyActiveEqual","tEqual","textEqual","cooldownActiveEqual","MemoizedAutoCompleteInput","React","memo","AutoCompleteInput","displayName"],"mappings":"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","sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { StyleSheet, TextInput, TextInputProps } from 'react-native';\n\nimport throttle from 'lodash/throttle';\n\nimport {\n ChannelContextValue,\n useChannelContext,\n} from '../../contexts/channelContext/ChannelContext';\nimport {\n MessageInputContextValue,\n useMessageInputContext,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport {\n isSuggestionCommand,\n isSuggestionEmoji,\n isSuggestionUser,\n Suggestion,\n SuggestionCommand,\n SuggestionsContextValue,\n SuggestionUser,\n useSuggestionsContext,\n} from '../../contexts/suggestionsContext/SuggestionsContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport {\n TranslationContextValue,\n useTranslationContext,\n} from '../../contexts/translationContext/TranslationContext';\nimport type { Emoji } from '../../emoji-data/compiled';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { isCommandTrigger, isEmojiTrigger, isMentionTrigger } from '../../utils/utils';\n\nimport type { Trigger } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n inputBox: {\n flex: 1,\n fontSize: 14,\n includeFontPadding: false, // for android vertical text centering\n padding: 0, // removal of default text input padding on android\n paddingTop: 0, // removal of iOS top padding for weird centering\n textAlignVertical: 'center', // for android vertical text centering\n },\n});\n\nconst computeCaretPosition = (token: string, startOfTokenPosition: number) =>\n startOfTokenPosition + token.length;\n\nconst isCommand = (text: string) => text[0] === '/' && text.split(' ').length <= 1;\n\ntype AutoCompleteInputPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChannelContextValue<StreamChatGenerics>, 'giphyEnabled'> &\n Pick<\n MessageInputContextValue<StreamChatGenerics>,\n | 'additionalTextInputProps'\n | 'autoCompleteSuggestionsLimit'\n | 'giphyActive'\n | 'maxMessageLength'\n | 'mentionAllAppUsersEnabled'\n | 'mentionAllAppUsersQuery'\n | 'numberOfLines'\n | 'onChange'\n | 'setGiphyActive'\n | 'setInputBoxRef'\n | 'setShowMoreOptions'\n | 'text'\n | 'triggerSettings'\n > &\n Pick<\n SuggestionsContextValue<StreamChatGenerics>,\n 'closeSuggestions' | 'openSuggestions' | 'updateSuggestions'\n > &\n Pick<TranslationContextValue, 't'> & {\n /**\n * This is currently passed in from MessageInput to avoid rerenders\n * that would happen if we put this in the MessageInputContext\n */\n cooldownActive?: boolean;\n };\n\nexport type AutoCompleteInputProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<AutoCompleteInputPropsWithContext<StreamChatGenerics>>;\n\nconst AutoCompleteInputWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: AutoCompleteInputPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTextInputProps,\n autoCompleteSuggestionsLimit,\n closeSuggestions,\n cooldownActive = false,\n giphyActive,\n giphyEnabled,\n maxMessageLength,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n numberOfLines,\n onChange,\n openSuggestions,\n setGiphyActive,\n setInputBoxRef,\n setShowMoreOptions,\n t,\n text,\n triggerSettings,\n updateSuggestions: updateSuggestionsContext,\n } = props;\n\n const isTrackingStarted = useRef(false);\n const selectionEnd = useRef(0);\n const [textHeight, setTextHeight] = useState(0);\n\n const {\n theme: {\n colors: { black, grey },\n messageInput: { inputBox },\n },\n } = useTheme();\n\n const handleChange = (newText: string, fromUpdate = false) => {\n if (!fromUpdate) {\n onChange(newText);\n } else {\n handleSuggestionsThrottled(newText);\n }\n };\n\n useEffect(() => {\n handleChange(text, true);\n }, [text]);\n\n const startTracking = (trigger: Trigger) => {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n isTrackingStarted.current = true;\n const { type } = triggerSetting;\n openSuggestions(type);\n }\n };\n\n const stopTracking = () => {\n isTrackingStarted.current = false;\n closeSuggestions();\n };\n\n const updateSuggestions = async ({\n query,\n trigger,\n }: {\n query: Suggestion['name'];\n trigger: Trigger;\n }) => {\n if (isMentionTrigger(trigger)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n await triggerSetting.dataProvider(\n query as SuggestionUser<StreamChatGenerics>['name'],\n text,\n (data, queryCallback) => {\n if (query === queryCallback) {\n updateSuggestionsContext({\n data,\n onSelect: (item) => onSelectSuggestion({ item, trigger }),\n queryText: query,\n });\n }\n },\n {\n limit: autoCompleteSuggestionsLimit,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n },\n );\n }\n } else if (isCommandTrigger(trigger)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n await triggerSetting.dataProvider(\n query as SuggestionCommand<StreamChatGenerics>['name'],\n text,\n (data, queryCallback) => {\n if (query !== queryCallback) {\n return;\n }\n\n updateSuggestionsContext({\n data,\n onSelect: (item) => onSelectSuggestion({ item, trigger }),\n queryText: query,\n });\n },\n {\n limit: autoCompleteSuggestionsLimit,\n },\n );\n }\n } else {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n await triggerSetting.dataProvider(query as Emoji['name'], text, (data, queryCallback) => {\n if (query !== queryCallback) {\n return;\n }\n\n updateSuggestionsContext({\n data,\n onSelect: (item) => onSelectSuggestion({ item, trigger }),\n queryText: query,\n });\n });\n }\n }\n };\n\n const handleSelectionChange: TextInputProps['onSelectionChange'] = ({\n nativeEvent: {\n selection: { end },\n },\n }) => {\n selectionEnd.current = end;\n };\n\n const onSelectSuggestion = ({\n item,\n trigger,\n }: {\n item: Suggestion<StreamChatGenerics>;\n trigger: Trigger;\n }) => {\n if (!trigger || !triggerSettings[trigger]) {\n return;\n }\n\n let newTokenString = '';\n if (isCommandTrigger(trigger) && isSuggestionCommand(item)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n newTokenString = `${triggerSetting.output(item).text} `;\n }\n }\n if (isEmojiTrigger(trigger) && isSuggestionEmoji(item)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n newTokenString = `${triggerSetting.output(item).text} `;\n }\n }\n if (isMentionTrigger(trigger) && isSuggestionUser(item)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n newTokenString = `${triggerSetting.output(item).text} `;\n }\n }\n\n const textToModify = text.slice(0, selectionEnd.current);\n\n const startOfTokenPosition = textToModify.lastIndexOf(trigger, selectionEnd.current);\n\n const newCaretPosition = computeCaretPosition(newTokenString, startOfTokenPosition);\n\n const modifiedText = `${textToModify.substring(0, startOfTokenPosition)}${newTokenString}`;\n\n stopTracking();\n\n const newText = text.replace(textToModify, modifiedText);\n\n if (giphyEnabled && newText.startsWith('/giphy ')) {\n onChange(newText.slice(7)); // 7 because of '/giphy ' length\n setGiphyActive(true);\n } else {\n onChange(newText);\n }\n\n selectionEnd.current = newCaretPosition || 0;\n\n if (isMentionTrigger(trigger) && isSuggestionUser(item)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n triggerSetting.callback(item);\n }\n }\n };\n\n const handleCommand = async (text: string) => {\n if (!isCommand(text)) {\n return false;\n }\n\n if (!isTrackingStarted.current) {\n startTracking('/');\n }\n const actualToken = text.trim().slice(1);\n await updateSuggestions({ query: actualToken, trigger: '/' });\n\n return true;\n };\n\n const handleMentions = ({ tokenMatch }: { tokenMatch: RegExpMatchArray | null }) => {\n const lastToken = tokenMatch?.[tokenMatch.length - 1];\n const handleMentionsTrigger =\n (lastToken && Object.keys(triggerSettings).find((trigger) => trigger === lastToken[0])) ||\n null;\n\n /*\n if we lost the trigger token or there is no following character we want to close\n the autocomplete\n */\n if (!lastToken || lastToken.length <= 0) {\n stopTracking();\n return;\n }\n\n const actualToken = lastToken.slice(1);\n\n // if trigger is not configured step out from the function, otherwise proceed\n if (!handleMentionsTrigger) {\n return;\n }\n\n if (!isTrackingStarted.current) {\n startTracking('@');\n }\n\n updateSuggestions({ query: actualToken, trigger: '@' });\n };\n\n const handleEmojis = ({ tokenMatch }: { tokenMatch: RegExpMatchArray | null }) => {\n const lastToken = tokenMatch?.[tokenMatch.length - 1].trim();\n const handleEmojisTrigger =\n (lastToken && Object.keys(triggerSettings).find((trigger) => trigger === lastToken[0])) ||\n null;\n\n /*\n if we lost the trigger token or there is no following character we want to close\n the autocomplete\n */\n if (!lastToken || lastToken.length <= 0) {\n stopTracking();\n return;\n }\n\n const actualToken = lastToken.slice(1);\n\n // if trigger is not configured step out from the function, otherwise proceed\n if (!handleEmojisTrigger) {\n return;\n }\n\n if (!isTrackingStarted.current) {\n startTracking(':');\n }\n\n updateSuggestions({ query: actualToken, trigger: ':' });\n };\n\n const handleSuggestions = async (text: string) => {\n if (\n /\\s/.test(text.slice(selectionEnd.current - 1, selectionEnd.current)) &&\n isTrackingStarted.current\n ) {\n stopTracking();\n } else if (!(await handleCommand(text))) {\n const mentionTokenMatch = text\n .slice(0, selectionEnd.current)\n .match(/(?!^|\\W)?@[^\\s@]*\\s?[^\\s@]*$/g);\n if (mentionTokenMatch) {\n handleMentions({ tokenMatch: mentionTokenMatch });\n } else {\n const emojiTokenMatch = text\n .slice(0, selectionEnd.current)\n .match(/(?!^|\\W)?:\\w{2,}[^\\s]*\\s?[^\\s]*$/g);\n handleEmojis({ tokenMatch: emojiTokenMatch });\n }\n }\n };\n\n const placeholderText = giphyActive\n ? t('Search GIFs')\n : cooldownActive\n ? t('Slow mode ON')\n : t('Send a message');\n\n const handleSuggestionsThrottled = throttle(handleSuggestions, 100, {\n leading: false,\n });\n\n return (\n <TextInput\n maxLength={maxMessageLength}\n multiline\n onChangeText={(newText) => {\n if (giphyEnabled && newText.startsWith('/giphy ')) {\n handleChange(newText.slice(7)); // 7 because of '/giphy' length\n setGiphyActive(true);\n } else {\n handleChange(newText);\n }\n }}\n onContentSizeChange={({\n nativeEvent: {\n contentSize: { height },\n },\n }) => {\n if (!textHeight) {\n setTextHeight(height);\n }\n }}\n onSelectionChange={handleSelectionChange}\n placeholder={placeholderText}\n placeholderTextColor={grey}\n ref={setInputBoxRef}\n style={[\n styles.inputBox,\n {\n color: black,\n maxHeight: (textHeight || 17) * numberOfLines,\n },\n inputBox,\n ]}\n testID='auto-complete-text-input'\n value={text}\n {...additionalTextInputProps}\n onBlur={(event) => {\n if (additionalTextInputProps?.onBlur) {\n additionalTextInputProps?.onBlur(event);\n }\n setShowMoreOptions(true);\n }}\n />\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: AutoCompleteInputPropsWithContext<StreamChatGenerics>,\n nextProps: AutoCompleteInputPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n cooldownActive: prevCooldownActive,\n giphyActive: prevGiphyActive,\n t: prevT,\n text: prevText,\n } = prevProps;\n const {\n cooldownActive: nextCooldownActive,\n giphyActive: nextGiphyActive,\n t: nextT,\n text: nextText,\n } = nextProps;\n\n const giphyActiveEqual = prevGiphyActive === nextGiphyActive;\n if (!giphyActiveEqual) return false;\n\n const tEqual = prevT === nextT;\n if (!tEqual) return false;\n\n const textEqual = prevText === nextText;\n if (!textEqual) return false;\n\n const cooldownActiveEqual = prevCooldownActive === nextCooldownActive;\n if (!cooldownActiveEqual) return false;\n\n return true;\n};\n\nconst MemoizedAutoCompleteInput = React.memo(\n AutoCompleteInputWithContext,\n areEqual,\n) as typeof AutoCompleteInputWithContext;\n\nexport const AutoCompleteInput = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: AutoCompleteInputProps<StreamChatGenerics>,\n) => {\n const { giphyEnabled } = useChannelContext<StreamChatGenerics>();\n const {\n additionalTextInputProps,\n autoCompleteSuggestionsLimit,\n giphyActive,\n maxMessageLength,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n numberOfLines,\n onChange,\n setGiphyActive,\n setInputBoxRef,\n setShowMoreOptions,\n text,\n triggerSettings,\n } = useMessageInputContext<StreamChatGenerics>();\n const { closeSuggestions, openSuggestions, updateSuggestions } =\n useSuggestionsContext<StreamChatGenerics>();\n const { t } = useTranslationContext();\n\n return (\n <MemoizedAutoCompleteInput\n {...{\n additionalTextInputProps,\n autoCompleteSuggestionsLimit,\n closeSuggestions,\n giphyActive,\n giphyEnabled,\n maxMessageLength,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n numberOfLines,\n onChange,\n openSuggestions,\n setGiphyActive,\n setInputBoxRef,\n setShowMoreOptions,\n t,\n text,\n triggerSettings,\n updateSuggestions,\n }}\n {...props}\n />\n );\n};\n\nAutoCompleteInput.displayName = 'AutoCompleteInput{messageInput{inputBox}}';\n"]}
|
|
1
|
+
{"version":3,"sources":["AutoCompleteInput.tsx"],"names":["styles","StyleSheet","create","inputBox","flex","fontSize","includeFontPadding","padding","paddingTop","textAlignVertical","computeCaretPosition","token","startOfTokenPosition","length","isCommand","text","split","AutoCompleteInputWithContext","props","additionalTextInputProps","autoCompleteSuggestionsLimit","closeSuggestions","cooldownActive","giphyActive","giphyEnabled","maxMessageLength","mentionAllAppUsersEnabled","mentionAllAppUsersQuery","numberOfLines","onChange","openSuggestions","setGiphyActive","setInputBoxRef","setShowMoreOptions","t","triggerSettings","updateSuggestionsContext","updateSuggestions","isTrackingStarted","selectionEnd","textHeight","setTextHeight","theme","colors","black","grey","messageInput","handleChange","newText","fromUpdate","handleSuggestionsThrottled","startTracking","trigger","triggerSetting","current","type","stopTracking","query","dataProvider","data","queryCallback","onSelect","item","onSelectSuggestion","queryText","limit","handleSelectionChange","end","nativeEvent","selection","newTokenString","output","textToModify","slice","lastIndexOf","newCaretPosition","modifiedText","substring","replace","startsWith","callback","handleCommand","actualToken","trim","handleMentions","tokenMatch","lastToken","handleMentionsTrigger","Object","keys","find","handleEmojis","handleEmojisTrigger","handleSuggestions","test","mentionTokenMatch","match","emojiTokenMatch","placeholderText","leading","height","contentSize","color","maxHeight","textAlign","I18nManager","isRTL","event","onBlur","areEqual","prevProps","nextProps","prevCooldownActive","prevGiphyActive","prevT","prevText","nextCooldownActive","nextGiphyActive","nextT","nextText","giphyActiveEqual","tEqual","textEqual","cooldownActiveEqual","MemoizedAutoCompleteInput","React","memo","AutoCompleteInput","displayName"],"mappings":"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","sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { I18nManager, StyleSheet, TextInput, TextInputProps } from 'react-native';\n\nimport throttle from 'lodash/throttle';\n\nimport {\n ChannelContextValue,\n useChannelContext,\n} from '../../contexts/channelContext/ChannelContext';\nimport {\n MessageInputContextValue,\n useMessageInputContext,\n} from '../../contexts/messageInputContext/MessageInputContext';\nimport {\n isSuggestionCommand,\n isSuggestionEmoji,\n isSuggestionUser,\n Suggestion,\n SuggestionCommand,\n SuggestionsContextValue,\n SuggestionUser,\n useSuggestionsContext,\n} from '../../contexts/suggestionsContext/SuggestionsContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport {\n TranslationContextValue,\n useTranslationContext,\n} from '../../contexts/translationContext/TranslationContext';\nimport type { Emoji } from '../../emoji-data/compiled';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { isCommandTrigger, isEmojiTrigger, isMentionTrigger } from '../../utils/utils';\n\nimport type { Trigger } from '../../utils/utils';\n\nconst styles = StyleSheet.create({\n inputBox: {\n flex: 1,\n fontSize: 14,\n includeFontPadding: false, // for android vertical text centering\n padding: 0, // removal of default text input padding on android\n paddingTop: 0, // removal of iOS top padding for weird centering\n textAlignVertical: 'center', // for android vertical text centering\n },\n});\n\nconst computeCaretPosition = (token: string, startOfTokenPosition: number) =>\n startOfTokenPosition + token.length;\n\nconst isCommand = (text: string) => text[0] === '/' && text.split(' ').length <= 1;\n\ntype AutoCompleteInputPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<ChannelContextValue<StreamChatGenerics>, 'giphyEnabled'> &\n Pick<\n MessageInputContextValue<StreamChatGenerics>,\n | 'additionalTextInputProps'\n | 'autoCompleteSuggestionsLimit'\n | 'giphyActive'\n | 'maxMessageLength'\n | 'mentionAllAppUsersEnabled'\n | 'mentionAllAppUsersQuery'\n | 'numberOfLines'\n | 'onChange'\n | 'setGiphyActive'\n | 'setInputBoxRef'\n | 'setShowMoreOptions'\n | 'text'\n | 'triggerSettings'\n > &\n Pick<\n SuggestionsContextValue<StreamChatGenerics>,\n 'closeSuggestions' | 'openSuggestions' | 'updateSuggestions'\n > &\n Pick<TranslationContextValue, 't'> & {\n /**\n * This is currently passed in from MessageInput to avoid rerenders\n * that would happen if we put this in the MessageInputContext\n */\n cooldownActive?: boolean;\n };\n\nexport type AutoCompleteInputProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Partial<AutoCompleteInputPropsWithContext<StreamChatGenerics>>;\n\nconst AutoCompleteInputWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: AutoCompleteInputPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n additionalTextInputProps,\n autoCompleteSuggestionsLimit,\n closeSuggestions,\n cooldownActive = false,\n giphyActive,\n giphyEnabled,\n maxMessageLength,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n numberOfLines,\n onChange,\n openSuggestions,\n setGiphyActive,\n setInputBoxRef,\n setShowMoreOptions,\n t,\n text,\n triggerSettings,\n updateSuggestions: updateSuggestionsContext,\n } = props;\n\n const isTrackingStarted = useRef(false);\n const selectionEnd = useRef(0);\n const [textHeight, setTextHeight] = useState(0);\n\n const {\n theme: {\n colors: { black, grey },\n messageInput: { inputBox },\n },\n } = useTheme();\n\n const handleChange = (newText: string, fromUpdate = false) => {\n if (!fromUpdate) {\n onChange(newText);\n } else {\n handleSuggestionsThrottled(newText);\n }\n };\n\n useEffect(() => {\n handleChange(text, true);\n }, [text]);\n\n const startTracking = (trigger: Trigger) => {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n isTrackingStarted.current = true;\n const { type } = triggerSetting;\n openSuggestions(type);\n }\n };\n\n const stopTracking = () => {\n isTrackingStarted.current = false;\n closeSuggestions();\n };\n\n const updateSuggestions = async ({\n query,\n trigger,\n }: {\n query: Suggestion['name'];\n trigger: Trigger;\n }) => {\n if (isMentionTrigger(trigger)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n await triggerSetting.dataProvider(\n query as SuggestionUser<StreamChatGenerics>['name'],\n text,\n (data, queryCallback) => {\n if (query === queryCallback) {\n updateSuggestionsContext({\n data,\n onSelect: (item) => onSelectSuggestion({ item, trigger }),\n queryText: query,\n });\n }\n },\n {\n limit: autoCompleteSuggestionsLimit,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n },\n );\n }\n } else if (isCommandTrigger(trigger)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n await triggerSetting.dataProvider(\n query as SuggestionCommand<StreamChatGenerics>['name'],\n text,\n (data, queryCallback) => {\n if (query !== queryCallback) {\n return;\n }\n\n updateSuggestionsContext({\n data,\n onSelect: (item) => onSelectSuggestion({ item, trigger }),\n queryText: query,\n });\n },\n {\n limit: autoCompleteSuggestionsLimit,\n },\n );\n }\n } else {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n await triggerSetting.dataProvider(query as Emoji['name'], text, (data, queryCallback) => {\n if (query !== queryCallback) {\n return;\n }\n\n updateSuggestionsContext({\n data,\n onSelect: (item) => onSelectSuggestion({ item, trigger }),\n queryText: query,\n });\n });\n }\n }\n };\n\n const handleSelectionChange: TextInputProps['onSelectionChange'] = ({\n nativeEvent: {\n selection: { end },\n },\n }) => {\n selectionEnd.current = end;\n };\n\n const onSelectSuggestion = ({\n item,\n trigger,\n }: {\n item: Suggestion<StreamChatGenerics>;\n trigger: Trigger;\n }) => {\n if (!trigger || !triggerSettings[trigger]) {\n return;\n }\n\n let newTokenString = '';\n if (isCommandTrigger(trigger) && isSuggestionCommand(item)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n newTokenString = `${triggerSetting.output(item).text} `;\n }\n }\n if (isEmojiTrigger(trigger) && isSuggestionEmoji(item)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n newTokenString = `${triggerSetting.output(item).text} `;\n }\n }\n if (isMentionTrigger(trigger) && isSuggestionUser(item)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n newTokenString = `${triggerSetting.output(item).text} `;\n }\n }\n\n const textToModify = text.slice(0, selectionEnd.current);\n\n const startOfTokenPosition = textToModify.lastIndexOf(trigger, selectionEnd.current);\n\n const newCaretPosition = computeCaretPosition(newTokenString, startOfTokenPosition);\n\n const modifiedText = `${textToModify.substring(0, startOfTokenPosition)}${newTokenString}`;\n\n stopTracking();\n\n const newText = text.replace(textToModify, modifiedText);\n\n if (giphyEnabled && newText.startsWith('/giphy ')) {\n onChange(newText.slice(7)); // 7 because of '/giphy ' length\n setGiphyActive(true);\n } else {\n onChange(newText);\n }\n\n selectionEnd.current = newCaretPosition || 0;\n\n if (isMentionTrigger(trigger) && isSuggestionUser(item)) {\n const triggerSetting = triggerSettings[trigger];\n if (triggerSetting) {\n triggerSetting.callback(item);\n }\n }\n };\n\n const handleCommand = async (text: string) => {\n if (!isCommand(text)) {\n return false;\n }\n\n if (!isTrackingStarted.current) {\n startTracking('/');\n }\n const actualToken = text.trim().slice(1);\n await updateSuggestions({ query: actualToken, trigger: '/' });\n\n return true;\n };\n\n const handleMentions = ({ tokenMatch }: { tokenMatch: RegExpMatchArray | null }) => {\n const lastToken = tokenMatch?.[tokenMatch.length - 1];\n const handleMentionsTrigger =\n (lastToken && Object.keys(triggerSettings).find((trigger) => trigger === lastToken[0])) ||\n null;\n\n /*\n if we lost the trigger token or there is no following character we want to close\n the autocomplete\n */\n if (!lastToken || lastToken.length <= 0) {\n stopTracking();\n return;\n }\n\n const actualToken = lastToken.slice(1);\n\n // if trigger is not configured step out from the function, otherwise proceed\n if (!handleMentionsTrigger) {\n return;\n }\n\n if (!isTrackingStarted.current) {\n startTracking('@');\n }\n\n updateSuggestions({ query: actualToken, trigger: '@' });\n };\n\n const handleEmojis = ({ tokenMatch }: { tokenMatch: RegExpMatchArray | null }) => {\n const lastToken = tokenMatch?.[tokenMatch.length - 1].trim();\n const handleEmojisTrigger =\n (lastToken && Object.keys(triggerSettings).find((trigger) => trigger === lastToken[0])) ||\n null;\n\n /*\n if we lost the trigger token or there is no following character we want to close\n the autocomplete\n */\n if (!lastToken || lastToken.length <= 0) {\n stopTracking();\n return;\n }\n\n const actualToken = lastToken.slice(1);\n\n // if trigger is not configured step out from the function, otherwise proceed\n if (!handleEmojisTrigger) {\n return;\n }\n\n if (!isTrackingStarted.current) {\n startTracking(':');\n }\n\n updateSuggestions({ query: actualToken, trigger: ':' });\n };\n\n const handleSuggestions = async (text: string) => {\n if (\n /\\s/.test(text.slice(selectionEnd.current - 1, selectionEnd.current)) &&\n isTrackingStarted.current\n ) {\n stopTracking();\n } else if (!(await handleCommand(text))) {\n const mentionTokenMatch = text\n .slice(0, selectionEnd.current)\n .match(/(?!^|\\W)?@[^\\s@]*\\s?[^\\s@]*$/g);\n if (mentionTokenMatch) {\n handleMentions({ tokenMatch: mentionTokenMatch });\n } else {\n const emojiTokenMatch = text\n .slice(0, selectionEnd.current)\n .match(/(?!^|\\W)?:\\w{2,}[^\\s]*\\s?[^\\s]*$/g);\n handleEmojis({ tokenMatch: emojiTokenMatch });\n }\n }\n };\n\n const placeholderText = giphyActive\n ? t('Search GIFs')\n : cooldownActive\n ? t('Slow mode ON')\n : t('Send a message');\n\n const handleSuggestionsThrottled = throttle(handleSuggestions, 100, {\n leading: false,\n });\n\n return (\n <TextInput\n maxLength={maxMessageLength}\n multiline\n onChangeText={(newText) => {\n if (giphyEnabled && newText.startsWith('/giphy ')) {\n handleChange(newText.slice(7)); // 7 because of '/giphy' length\n setGiphyActive(true);\n } else {\n handleChange(newText);\n }\n }}\n onContentSizeChange={({\n nativeEvent: {\n contentSize: { height },\n },\n }) => {\n if (!textHeight) {\n setTextHeight(height);\n }\n }}\n onSelectionChange={handleSelectionChange}\n placeholder={placeholderText}\n placeholderTextColor={grey}\n ref={setInputBoxRef}\n style={[\n styles.inputBox,\n {\n color: black,\n maxHeight: (textHeight || 17) * numberOfLines,\n textAlign: I18nManager.isRTL ? 'right' : 'left',\n },\n inputBox,\n ]}\n testID='auto-complete-text-input'\n value={text}\n {...additionalTextInputProps}\n onBlur={(event) => {\n if (additionalTextInputProps?.onBlur) {\n additionalTextInputProps?.onBlur(event);\n }\n setShowMoreOptions(true);\n }}\n />\n );\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: AutoCompleteInputPropsWithContext<StreamChatGenerics>,\n nextProps: AutoCompleteInputPropsWithContext<StreamChatGenerics>,\n) => {\n const {\n cooldownActive: prevCooldownActive,\n giphyActive: prevGiphyActive,\n t: prevT,\n text: prevText,\n } = prevProps;\n const {\n cooldownActive: nextCooldownActive,\n giphyActive: nextGiphyActive,\n t: nextT,\n text: nextText,\n } = nextProps;\n\n const giphyActiveEqual = prevGiphyActive === nextGiphyActive;\n if (!giphyActiveEqual) return false;\n\n const tEqual = prevT === nextT;\n if (!tEqual) return false;\n\n const textEqual = prevText === nextText;\n if (!textEqual) return false;\n\n const cooldownActiveEqual = prevCooldownActive === nextCooldownActive;\n if (!cooldownActiveEqual) return false;\n\n return true;\n};\n\nconst MemoizedAutoCompleteInput = React.memo(\n AutoCompleteInputWithContext,\n areEqual,\n) as typeof AutoCompleteInputWithContext;\n\nexport const AutoCompleteInput = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: AutoCompleteInputProps<StreamChatGenerics>,\n) => {\n const { giphyEnabled } = useChannelContext<StreamChatGenerics>();\n const {\n additionalTextInputProps,\n autoCompleteSuggestionsLimit,\n giphyActive,\n maxMessageLength,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n numberOfLines,\n onChange,\n setGiphyActive,\n setInputBoxRef,\n setShowMoreOptions,\n text,\n triggerSettings,\n } = useMessageInputContext<StreamChatGenerics>();\n const { closeSuggestions, openSuggestions, updateSuggestions } =\n useSuggestionsContext<StreamChatGenerics>();\n const { t } = useTranslationContext();\n\n return (\n <MemoizedAutoCompleteInput\n {...{\n additionalTextInputProps,\n autoCompleteSuggestionsLimit,\n closeSuggestions,\n giphyActive,\n giphyEnabled,\n maxMessageLength,\n mentionAllAppUsersEnabled,\n mentionAllAppUsersQuery,\n numberOfLines,\n onChange,\n openSuggestions,\n setGiphyActive,\n setInputBoxRef,\n setShowMoreOptions,\n t,\n text,\n triggerSettings,\n updateSuggestions,\n }}\n {...props}\n />\n );\n};\n\nAutoCompleteInput.displayName = 'AutoCompleteInput{messageInput{inputBox}}';\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["AutoCompleteSuggestionItem.tsx"],"names":["styles","StyleSheet","create","args","fontSize","column","flex","justifyContent","paddingLeft","container","alignItems","flexDirection","paddingHorizontal","paddingVertical","name","fontWeight","paddingBottom","tag","text","title","paddingRight","AutoCompleteSuggestionItemWithContext","itemProps","triggerType","theme","colors","accent_blue","black","grey","messageInput","suggestions","command","argsStyle","commandContainer","emoji","emojiContainer","mention","avatarSize","mentionContainer","nameStyle","id","image","online","color","unicode","replace","char","toUpperCase","areEqual","prevProps","nextProps","prevItemProps","prevType","nextItemProps","nextType","itemPropsEqual","typeEqual","MemoizedAutoCompleteSuggestionItem","React","memo","AutoCompleteSuggestionItem","props","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, View } from 'react-native';\n\nimport { AutoCompleteSuggestionCommandIcon } from './AutoCompleteSuggestionCommandIcon';\n\nimport type {\n Suggestion,\n SuggestionCommand,\n SuggestionsContextValue,\n SuggestionUser,\n} from '../../contexts/suggestionsContext/SuggestionsContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport type { Emoji } from '../../emoji-data/compiled';\nimport { AtMentions } from '../../icons/AtMentions';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { Avatar } from '../Avatar/Avatar';\n\nexport type AutoCompleteSuggestionItemPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<SuggestionsContextValue, 'triggerType'> & {\n itemProps: Suggestion<StreamChatGenerics>;\n};\n\nconst styles = StyleSheet.create({\n args: {\n fontSize: 14,\n },\n column: {\n flex: 1,\n justifyContent: 'space-evenly',\n paddingLeft: 8,\n },\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n paddingHorizontal: 16,\n paddingVertical: 8,\n },\n name: {\n fontSize: 14,\n fontWeight: 'bold',\n paddingBottom: 2,\n },\n tag: {\n fontSize: 12,\n fontWeight: '600',\n },\n text: {\n fontSize: 14,\n },\n title: {\n fontSize: 14,\n fontWeight: 'bold',\n paddingRight: 8,\n },\n});\n\nconst AutoCompleteSuggestionItemWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n itemProps,\n triggerType,\n}: AutoCompleteSuggestionItemPropsWithContext<StreamChatGenerics>) => {\n const {\n theme: {\n colors: { accent_blue, black, grey },\n messageInput: {\n suggestions: {\n command: { args: argsStyle, container: commandContainer, title },\n emoji: { container: emojiContainer, text },\n mention: { avatarSize, column, container: mentionContainer, name: nameStyle },\n },\n },\n },\n } = useTheme();\n\n if (triggerType === 'mention') {\n const { id, image, name, online } = itemProps as SuggestionUser<StreamChatGenerics>;\n return (\n <View style={[styles.container, mentionContainer]}>\n <Avatar image={image} name={name} online={online} size={avatarSize} />\n <View style={[styles.column, column]}>\n <Text style={[styles.name, { color: black }, nameStyle]} testID='mentions-item-name'>\n {name || id}\n </Text>\n </View>\n <AtMentions pathFill={accent_blue} />\n </View>\n );\n } else if (triggerType === 'emoji') {\n const { name, unicode } = itemProps as Emoji;\n return (\n <View style={[styles.container, emojiContainer]}>\n <Text style={[styles.text, { color: black }, text]} testID='emojis-item-unicode'>\n {unicode}\n </Text>\n <Text style={[styles.text, { color: black }, text]} testID='emojis-item-name'>\n {` ${name}`}\n </Text>\n </View>\n );\n } else if (triggerType === 'command') {\n const { args, name } = itemProps as SuggestionCommand<StreamChatGenerics>;\n return (\n <View style={[styles.container, commandContainer]}>\n <AutoCompleteSuggestionCommandIcon name={name} />\n <Text style={[styles.title, { color: black }, title]} testID='commands-item-title'>\n {(name || '').replace(/^\\w/, (char) => char.toUpperCase())}\n </Text>\n <Text style={[styles.args, { color: grey }, argsStyle]} testID='commands-item-args'>\n {`/${name} ${args}`}\n </Text>\n </View>\n );\n } else {\n return null;\n }\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: AutoCompleteSuggestionItemPropsWithContext<StreamChatGenerics>,\n nextProps: AutoCompleteSuggestionItemPropsWithContext<StreamChatGenerics>,\n) => {\n const { itemProps: prevItemProps, triggerType: prevType } = prevProps;\n const { itemProps: nextItemProps, triggerType: nextType } = nextProps;\n const itemPropsEqual = prevItemProps === nextItemProps;\n if (!itemPropsEqual) return false;\n const typeEqual = prevType === nextType;\n if (!typeEqual) return false;\n return true;\n};\n\nconst MemoizedAutoCompleteSuggestionItem = React.memo(\n AutoCompleteSuggestionItemWithContext,\n areEqual,\n) as typeof AutoCompleteSuggestionItemWithContext;\n\nexport type AutoCompleteSuggestionItemProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = AutoCompleteSuggestionItemPropsWithContext<StreamChatGenerics>;\n\nexport const AutoCompleteSuggestionItem = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: AutoCompleteSuggestionItemProps<StreamChatGenerics>,\n) => <MemoizedAutoCompleteSuggestionItem {...props} />;\n\nAutoCompleteSuggestionItem.displayName =\n 'AutoCompleteSuggestionItem{messageInput{suggestions{Item}}}';\n"]}
|
|
1
|
+
{"version":3,"sources":["AutoCompleteSuggestionItem.tsx"],"names":["styles","StyleSheet","create","args","fontSize","column","flex","justifyContent","paddingLeft","container","alignItems","flexDirection","paddingHorizontal","paddingVertical","name","fontWeight","paddingBottom","tag","text","title","AutoCompleteSuggestionItemWithContext","itemProps","triggerType","theme","colors","accent_blue","black","grey","messageInput","suggestions","command","argsStyle","commandContainer","emoji","emojiContainer","mention","avatarSize","mentionContainer","nameStyle","id","image","online","color","unicode","replace","char","toUpperCase","areEqual","prevProps","nextProps","prevItemProps","prevType","nextItemProps","nextType","itemPropsEqual","typeEqual","MemoizedAutoCompleteSuggestionItem","React","memo","AutoCompleteSuggestionItem","props","displayName"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { StyleSheet, Text, View } from 'react-native';\n\nimport { AutoCompleteSuggestionCommandIcon } from './AutoCompleteSuggestionCommandIcon';\n\nimport type {\n Suggestion,\n SuggestionCommand,\n SuggestionsContextValue,\n SuggestionUser,\n} from '../../contexts/suggestionsContext/SuggestionsContext';\nimport { useTheme } from '../../contexts/themeContext/ThemeContext';\nimport type { Emoji } from '../../emoji-data/compiled';\nimport { AtMentions } from '../../icons/AtMentions';\nimport type { DefaultStreamChatGenerics } from '../../types/types';\nimport { Avatar } from '../Avatar/Avatar';\n\nexport type AutoCompleteSuggestionItemPropsWithContext<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = Pick<SuggestionsContextValue, 'triggerType'> & {\n itemProps: Suggestion<StreamChatGenerics>;\n};\n\nconst styles = StyleSheet.create({\n args: {\n fontSize: 14,\n },\n column: {\n flex: 1,\n justifyContent: 'space-evenly',\n paddingLeft: 8,\n },\n container: {\n alignItems: 'center',\n flexDirection: 'row',\n paddingHorizontal: 16,\n paddingVertical: 8,\n },\n name: {\n fontSize: 14,\n fontWeight: 'bold',\n paddingBottom: 2,\n },\n tag: {\n fontSize: 12,\n fontWeight: '600',\n },\n text: {\n fontSize: 14,\n },\n title: {\n fontSize: 14,\n fontWeight: 'bold',\n paddingHorizontal: 8,\n },\n});\n\nconst AutoCompleteSuggestionItemWithContext = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>({\n itemProps,\n triggerType,\n}: AutoCompleteSuggestionItemPropsWithContext<StreamChatGenerics>) => {\n const {\n theme: {\n colors: { accent_blue, black, grey },\n messageInput: {\n suggestions: {\n command: { args: argsStyle, container: commandContainer, title },\n emoji: { container: emojiContainer, text },\n mention: { avatarSize, column, container: mentionContainer, name: nameStyle },\n },\n },\n },\n } = useTheme();\n\n if (triggerType === 'mention') {\n const { id, image, name, online } = itemProps as SuggestionUser<StreamChatGenerics>;\n return (\n <View style={[styles.container, mentionContainer]}>\n <Avatar image={image} name={name} online={online} size={avatarSize} />\n <View style={[styles.column, column]}>\n <Text style={[styles.name, { color: black }, nameStyle]} testID='mentions-item-name'>\n {name || id}\n </Text>\n </View>\n <AtMentions pathFill={accent_blue} />\n </View>\n );\n } else if (triggerType === 'emoji') {\n const { name, unicode } = itemProps as Emoji;\n return (\n <View style={[styles.container, emojiContainer]}>\n <Text style={[styles.text, { color: black }, text]} testID='emojis-item-unicode'>\n {unicode}\n </Text>\n <Text style={[styles.text, { color: black }, text]} testID='emojis-item-name'>\n {` ${name}`}\n </Text>\n </View>\n );\n } else if (triggerType === 'command') {\n const { args, name } = itemProps as SuggestionCommand<StreamChatGenerics>;\n return (\n <View style={[styles.container, commandContainer]}>\n <AutoCompleteSuggestionCommandIcon name={name} />\n <Text style={[styles.title, { color: black }, title]} testID='commands-item-title'>\n {(name || '').replace(/^\\w/, (char) => char.toUpperCase())}\n </Text>\n <Text style={[styles.args, { color: grey }, argsStyle]} testID='commands-item-args'>\n {`/${name} ${args}`}\n </Text>\n </View>\n );\n } else {\n return null;\n }\n};\n\nconst areEqual = <StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics>(\n prevProps: AutoCompleteSuggestionItemPropsWithContext<StreamChatGenerics>,\n nextProps: AutoCompleteSuggestionItemPropsWithContext<StreamChatGenerics>,\n) => {\n const { itemProps: prevItemProps, triggerType: prevType } = prevProps;\n const { itemProps: nextItemProps, triggerType: nextType } = nextProps;\n const itemPropsEqual = prevItemProps === nextItemProps;\n if (!itemPropsEqual) return false;\n const typeEqual = prevType === nextType;\n if (!typeEqual) return false;\n return true;\n};\n\nconst MemoizedAutoCompleteSuggestionItem = React.memo(\n AutoCompleteSuggestionItemWithContext,\n areEqual,\n) as typeof AutoCompleteSuggestionItemWithContext;\n\nexport type AutoCompleteSuggestionItemProps<\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n> = AutoCompleteSuggestionItemPropsWithContext<StreamChatGenerics>;\n\nexport const AutoCompleteSuggestionItem = <\n StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics,\n>(\n props: AutoCompleteSuggestionItemProps<StreamChatGenerics>,\n) => <MemoizedAutoCompleteSuggestionItem {...props} />;\n\nAutoCompleteSuggestionItem.displayName =\n 'AutoCompleteSuggestionItem{messageInput{suggestions{Item}}}';\n"]}
|
|
@@ -93,6 +93,10 @@ var _Gallery = require("../Attachment/Gallery");
|
|
|
93
93
|
|
|
94
94
|
var _Giphy = require("../Attachment/Giphy");
|
|
95
95
|
|
|
96
|
+
var _ImageLoadingFailedIndicator = require("../Attachment/ImageLoadingFailedIndicator");
|
|
97
|
+
|
|
98
|
+
var _ImageLoadingIndicator = require("../Attachment/ImageLoadingIndicator");
|
|
99
|
+
|
|
96
100
|
var _VideoThumbnail = require("../Attachment/VideoThumbnail");
|
|
97
101
|
|
|
98
102
|
var _AutoCompleteSuggestionHeader = require("../AutoCompleteInput/AutoCompleteSuggestionHeader");
|
|
@@ -358,6 +362,10 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
358
362
|
LoadingIndicator = _props$LoadingIndicat === void 0 ? _LoadingIndicator.LoadingIndicator : _props$LoadingIndicat,
|
|
359
363
|
loadingMoreProp = props.loadingMore,
|
|
360
364
|
loadingMoreRecentProp = props.loadingMoreRecent,
|
|
365
|
+
_props$ImageLoadingFa = props.ImageLoadingFailedIndicator,
|
|
366
|
+
ImageLoadingFailedIndicator = _props$ImageLoadingFa === void 0 ? _ImageLoadingFailedIndicator.ImageLoadingFailedIndicator : _props$ImageLoadingFa,
|
|
367
|
+
_props$ImageLoadingIn = props.ImageLoadingIndicator,
|
|
368
|
+
ImageLoadingIndicator = _props$ImageLoadingIn === void 0 ? _ImageLoadingIndicator.ImageLoadingIndicator : _props$ImageLoadingIn,
|
|
361
369
|
markdownRules = props.markdownRules,
|
|
362
370
|
maxMessageLengthProp = props.maxMessageLength,
|
|
363
371
|
_props$maxNumberOfFil = props.maxNumberOfFiles,
|
|
@@ -1978,6 +1986,8 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
1978
1986
|
handleReaction: handleReaction,
|
|
1979
1987
|
handleRetry: handleRetry,
|
|
1980
1988
|
handleThreadReply: handleThreadReply,
|
|
1989
|
+
ImageLoadingFailedIndicator: ImageLoadingFailedIndicator,
|
|
1990
|
+
ImageLoadingIndicator: ImageLoadingIndicator,
|
|
1981
1991
|
initialScrollToFirstUnreadMessage: initialScrollToFirstUnreadMessage,
|
|
1982
1992
|
InlineDateSeparator: InlineDateSeparator,
|
|
1983
1993
|
InlineUnreadIndicator: InlineUnreadIndicator,
|
|
@@ -2051,7 +2061,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
2051
2061
|
__self: _this,
|
|
2052
2062
|
__source: {
|
|
2053
2063
|
fileName: _jsxFileName,
|
|
2054
|
-
lineNumber:
|
|
2064
|
+
lineNumber: 1782,
|
|
2055
2065
|
columnNumber: 12
|
|
2056
2066
|
}
|
|
2057
2067
|
});
|
|
@@ -2066,7 +2076,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
2066
2076
|
__self: _this,
|
|
2067
2077
|
__source: {
|
|
2068
2078
|
fileName: _jsxFileName,
|
|
2069
|
-
lineNumber:
|
|
2079
|
+
lineNumber: 1787,
|
|
2070
2080
|
columnNumber: 7
|
|
2071
2081
|
}
|
|
2072
2082
|
}, t('Please select a channel first'));
|
|
@@ -2080,7 +2090,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
2080
2090
|
__self: _this,
|
|
2081
2091
|
__source: {
|
|
2082
2092
|
fileName: _jsxFileName,
|
|
2083
|
-
lineNumber:
|
|
2093
|
+
lineNumber: 1794,
|
|
2084
2094
|
columnNumber: 5
|
|
2085
2095
|
}
|
|
2086
2096
|
}), _react["default"].createElement(_ChannelContext.ChannelProvider, {
|
|
@@ -2088,7 +2098,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
2088
2098
|
__self: _this,
|
|
2089
2099
|
__source: {
|
|
2090
2100
|
fileName: _jsxFileName,
|
|
2091
|
-
lineNumber:
|
|
2101
|
+
lineNumber: 1800,
|
|
2092
2102
|
columnNumber: 7
|
|
2093
2103
|
}
|
|
2094
2104
|
}, _react["default"].createElement(_OwnCapabilitiesContext.OwnCapabilitiesProvider, {
|
|
@@ -2096,7 +2106,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
2096
2106
|
__self: _this,
|
|
2097
2107
|
__source: {
|
|
2098
2108
|
fileName: _jsxFileName,
|
|
2099
|
-
lineNumber:
|
|
2109
|
+
lineNumber: 1801,
|
|
2100
2110
|
columnNumber: 9
|
|
2101
2111
|
}
|
|
2102
2112
|
}, _react["default"].createElement(_TypingContext.TypingProvider, {
|
|
@@ -2104,7 +2114,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
2104
2114
|
__self: _this,
|
|
2105
2115
|
__source: {
|
|
2106
2116
|
fileName: _jsxFileName,
|
|
2107
|
-
lineNumber:
|
|
2117
|
+
lineNumber: 1802,
|
|
2108
2118
|
columnNumber: 11
|
|
2109
2119
|
}
|
|
2110
2120
|
}, _react["default"].createElement(_PaginatedMessageListContext.PaginatedMessageListProvider, {
|
|
@@ -2112,7 +2122,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
2112
2122
|
__self: _this,
|
|
2113
2123
|
__source: {
|
|
2114
2124
|
fileName: _jsxFileName,
|
|
2115
|
-
lineNumber:
|
|
2125
|
+
lineNumber: 1803,
|
|
2116
2126
|
columnNumber: 13
|
|
2117
2127
|
}
|
|
2118
2128
|
}, _react["default"].createElement(_MessagesContext.MessagesProvider, {
|
|
@@ -2120,7 +2130,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
2120
2130
|
__self: _this,
|
|
2121
2131
|
__source: {
|
|
2122
2132
|
fileName: _jsxFileName,
|
|
2123
|
-
lineNumber:
|
|
2133
|
+
lineNumber: 1804,
|
|
2124
2134
|
columnNumber: 15
|
|
2125
2135
|
}
|
|
2126
2136
|
}, _react["default"].createElement(_ThreadContext.ThreadProvider, {
|
|
@@ -2128,7 +2138,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
2128
2138
|
__self: _this,
|
|
2129
2139
|
__source: {
|
|
2130
2140
|
fileName: _jsxFileName,
|
|
2131
|
-
lineNumber:
|
|
2141
|
+
lineNumber: 1805,
|
|
2132
2142
|
columnNumber: 17
|
|
2133
2143
|
}
|
|
2134
2144
|
}, _react["default"].createElement(_SuggestionsContext.SuggestionsProvider, {
|
|
@@ -2136,7 +2146,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
2136
2146
|
__self: _this,
|
|
2137
2147
|
__source: {
|
|
2138
2148
|
fileName: _jsxFileName,
|
|
2139
|
-
lineNumber:
|
|
2149
|
+
lineNumber: 1806,
|
|
2140
2150
|
columnNumber: 19
|
|
2141
2151
|
}
|
|
2142
2152
|
}, _react["default"].createElement(_MessageInputContext.MessageInputProvider, {
|
|
@@ -2144,7 +2154,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
2144
2154
|
__self: _this,
|
|
2145
2155
|
__source: {
|
|
2146
2156
|
fileName: _jsxFileName,
|
|
2147
|
-
lineNumber:
|
|
2157
|
+
lineNumber: 1807,
|
|
2148
2158
|
columnNumber: 21
|
|
2149
2159
|
}
|
|
2150
2160
|
}, _react["default"].createElement(_reactNative.View, {
|
|
@@ -2154,7 +2164,7 @@ var ChannelWithContext = function ChannelWithContext(props) {
|
|
|
2154
2164
|
__self: _this,
|
|
2155
2165
|
__source: {
|
|
2156
2166
|
fileName: _jsxFileName,
|
|
2157
|
-
lineNumber:
|
|
2167
|
+
lineNumber: 1808,
|
|
2158
2168
|
columnNumber: 23
|
|
2159
2169
|
}
|
|
2160
2170
|
}, children))))))))));
|
|
@@ -2209,7 +2219,7 @@ var Channel = function Channel(props) {
|
|
|
2209
2219
|
__self: _this,
|
|
2210
2220
|
__source: {
|
|
2211
2221
|
fileName: _jsxFileName,
|
|
2212
|
-
lineNumber:
|
|
2222
|
+
lineNumber: 1865,
|
|
2213
2223
|
columnNumber: 5
|
|
2214
2224
|
}
|
|
2215
2225
|
}));
|