@sendbird/uikit-react-native-foundation 3.0.4 → 3.1.0
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/Icon/index.js +12 -0
- package/lib/commonjs/components/Icon/index.js.map +1 -1
- package/lib/commonjs/components/VideoThumbnail/index.js +108 -0
- package/lib/commonjs/components/VideoThumbnail/index.js.map +1 -0
- package/lib/commonjs/index.js +7 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/theme/DarkUIKitTheme.js +2 -1
- package/lib/commonjs/theme/DarkUIKitTheme.js.map +1 -1
- package/lib/commonjs/theme/LightUIKitTheme.js +2 -1
- package/lib/commonjs/theme/LightUIKitTheme.js.map +1 -1
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/ui/BottomSheet/index.js +1 -0
- package/lib/commonjs/ui/BottomSheet/index.js.map +1 -1
- package/lib/commonjs/ui/Dialog/DialogSheet.js +4 -3
- package/lib/commonjs/ui/Dialog/DialogSheet.js.map +1 -1
- package/lib/commonjs/ui/GroupChannelMessage/Message.file.js +6 -9
- package/lib/commonjs/ui/GroupChannelMessage/Message.file.js.map +1 -1
- package/lib/commonjs/ui/GroupChannelMessage/Message.file.video.js +9 -71
- package/lib/commonjs/ui/GroupChannelMessage/Message.file.video.js.map +1 -1
- package/lib/commonjs/ui/GroupChannelMessage/MessageContainer.js +7 -5
- package/lib/commonjs/ui/GroupChannelMessage/MessageContainer.js.map +1 -1
- package/lib/commonjs/ui/GroupChannelMessage/MessageOpenGraph.js +2 -2
- package/lib/commonjs/ui/GroupChannelMessage/MessageOpenGraph.js.map +1 -1
- package/lib/commonjs/ui/GroupChannelMessage/index.js.map +1 -1
- package/lib/commonjs/ui/OpenChannelMessage/Message.file.js +2 -8
- package/lib/commonjs/ui/OpenChannelMessage/Message.file.js.map +1 -1
- package/lib/commonjs/ui/OpenChannelMessage/Message.file.video.js +10 -77
- package/lib/commonjs/ui/OpenChannelMessage/Message.file.video.js.map +1 -1
- package/lib/commonjs/ui/OpenChannelMessage/Message.user.og.js +1 -1
- package/lib/commonjs/ui/OpenChannelMessage/Message.user.og.js.map +1 -1
- package/lib/module/components/Icon/index.js +12 -0
- package/lib/module/components/Icon/index.js.map +1 -1
- package/lib/module/components/VideoThumbnail/index.js +98 -0
- package/lib/module/components/VideoThumbnail/index.js.map +1 -0
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/theme/DarkUIKitTheme.js +2 -1
- package/lib/module/theme/DarkUIKitTheme.js.map +1 -1
- package/lib/module/theme/LightUIKitTheme.js +2 -1
- package/lib/module/theme/LightUIKitTheme.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/module/ui/BottomSheet/index.js +1 -0
- package/lib/module/ui/BottomSheet/index.js.map +1 -1
- package/lib/module/ui/Dialog/DialogSheet.js +4 -3
- package/lib/module/ui/Dialog/DialogSheet.js.map +1 -1
- package/lib/module/ui/GroupChannelMessage/Message.file.js +7 -10
- package/lib/module/ui/GroupChannelMessage/Message.file.js.map +1 -1
- package/lib/module/ui/GroupChannelMessage/Message.file.video.js +9 -69
- package/lib/module/ui/GroupChannelMessage/Message.file.video.js.map +1 -1
- package/lib/module/ui/GroupChannelMessage/MessageContainer.js +7 -5
- package/lib/module/ui/GroupChannelMessage/MessageContainer.js.map +1 -1
- package/lib/module/ui/GroupChannelMessage/MessageOpenGraph.js +2 -2
- package/lib/module/ui/GroupChannelMessage/MessageOpenGraph.js.map +1 -1
- package/lib/module/ui/GroupChannelMessage/index.js.map +1 -1
- package/lib/module/ui/OpenChannelMessage/Message.file.js +2 -8
- package/lib/module/ui/OpenChannelMessage/Message.file.js.map +1 -1
- package/lib/module/ui/OpenChannelMessage/Message.file.video.js +10 -75
- package/lib/module/ui/OpenChannelMessage/Message.file.video.js.map +1 -1
- package/lib/module/ui/OpenChannelMessage/Message.user.og.js +1 -1
- package/lib/module/ui/OpenChannelMessage/Message.user.og.js.map +1 -1
- package/lib/typescript/src/components/Icon/index.d.ts +5 -0
- package/lib/typescript/src/components/VideoThumbnail/index.d.ts +11 -0
- package/lib/typescript/src/index.d.ts +1 -0
- package/lib/typescript/src/types.d.ts +1 -1
- package/lib/typescript/src/ui/BottomSheet/index.d.ts +1 -0
- package/lib/typescript/src/ui/Dialog/DialogSheet.d.ts +2 -1
- package/lib/typescript/src/ui/GroupChannelMessage/MessageContainer.d.ts +2 -2
- package/lib/typescript/src/ui/GroupChannelMessage/MessageOpenGraph.d.ts +1 -1
- package/lib/typescript/src/ui/GroupChannelMessage/index.d.ts +8 -0
- package/package.json +3 -3
- package/src/components/Icon/index.tsx +11 -7
- package/src/components/VideoThumbnail/index.tsx +100 -0
- package/src/index.ts +1 -0
- package/src/theme/DarkUIKitTheme.ts +1 -0
- package/src/theme/LightUIKitTheme.ts +1 -0
- package/src/types.ts +1 -1
- package/src/ui/BottomSheet/index.tsx +2 -0
- package/src/ui/Dialog/DialogSheet.tsx +6 -3
- package/src/ui/GroupChannelMessage/Message.file.tsx +4 -6
- package/src/ui/GroupChannelMessage/Message.file.video.tsx +10 -58
- package/src/ui/GroupChannelMessage/MessageContainer.tsx +18 -13
- package/src/ui/GroupChannelMessage/MessageOpenGraph.tsx +3 -3
- package/src/ui/GroupChannelMessage/index.ts +1 -0
- package/src/ui/OpenChannelMessage/Message.file.tsx +1 -3
- package/src/ui/OpenChannelMessage/Message.file.video.tsx +10 -53
- package/src/ui/OpenChannelMessage/Message.user.og.tsx +1 -1
|
@@ -14,12 +14,6 @@ var _createStyleSheet = _interopRequireDefault(require("../../styles/createStyle
|
|
|
14
14
|
var _useUIKitTheme = _interopRequireDefault(require("../../theme/useUIKitTheme"));
|
|
15
15
|
var _MessageContainer = _interopRequireDefault(require("./MessageContainer"));
|
|
16
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
-
const iconMapper = {
|
|
18
|
-
audio: 'file-audio',
|
|
19
|
-
image: 'photo',
|
|
20
|
-
video: 'play',
|
|
21
|
-
file: 'file-document'
|
|
22
|
-
};
|
|
23
17
|
const FileMessage = props => {
|
|
24
18
|
const {
|
|
25
19
|
variant = 'incoming'
|
|
@@ -42,8 +36,8 @@ const FileMessage = props => {
|
|
|
42
36
|
style: styles.container
|
|
43
37
|
}, /*#__PURE__*/_react.default.createElement(_Box.default, {
|
|
44
38
|
style: styles.bubble
|
|
45
|
-
}, /*#__PURE__*/_react.default.createElement(_Icon.default, {
|
|
46
|
-
|
|
39
|
+
}, /*#__PURE__*/_react.default.createElement(_Icon.default.File, {
|
|
40
|
+
fileType: fileType,
|
|
47
41
|
size: 24,
|
|
48
42
|
containerStyle: {
|
|
49
43
|
backgroundColor: colors.background,
|
|
@@ -57,7 +51,10 @@ const FileMessage = props => {
|
|
|
57
51
|
numberOfLines: 1,
|
|
58
52
|
color: pressed ? color.pressed.textMsg : color.enabled.textMsg,
|
|
59
53
|
style: styles.name
|
|
60
|
-
}, ((_props$strings = props.strings) === null || _props$strings === void 0 ? void 0 : _props$strings.fileName) || props.message.name
|
|
54
|
+
}, (0, _uikitUtils.truncate)(((_props$strings = props.strings) === null || _props$strings === void 0 ? void 0 : _props$strings.fileName) || props.message.name, {
|
|
55
|
+
mode: 'mid',
|
|
56
|
+
maxLen: 20
|
|
57
|
+
}))), props.children);
|
|
61
58
|
}));
|
|
62
59
|
};
|
|
63
60
|
const styles = (0, _createStyleSheet.default)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_uikitUtils","_Box","_Icon","_PressBox","_Text","_createStyleSheet","_useUIKitTheme","_MessageContainer","obj","__esModule","default","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_uikitUtils","_Box","_Icon","_PressBox","_Text","_createStyleSheet","_useUIKitTheme","_MessageContainer","obj","__esModule","default","FileMessage","props","variant","colors","useUIKitTheme","fileType","getFileType","message","type","getFileExtension","name","color","ui","groupChannelMessage","createElement","onPress","onLongPress","_ref","_props$strings","pressed","backgroundColor","background","enabled","style","styles","container","bubble","File","size","containerStyle","padding","borderRadius","marginRight","body3","ellipsizeMode","numberOfLines","textMsg","truncate","strings","fileName","mode","maxLen","children","createStyleSheet","overflow","flexDirection","alignItems","paddingHorizontal","paddingVertical","flexShrink","_default","exports"],"sources":["Message.file.tsx"],"sourcesContent":["import React from 'react';\n\nimport { SendbirdFileMessage, getFileExtension, getFileType, truncate } from '@sendbird/uikit-utils';\n\nimport Box from '../../components/Box';\nimport Icon from '../../components/Icon';\nimport PressBox from '../../components/PressBox';\nimport Text from '../../components/Text';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport MessageContainer from './MessageContainer';\nimport type { GroupChannelMessageProps } from './index';\n\ntype Props = GroupChannelMessageProps<SendbirdFileMessage>;\n\nconst FileMessage = (props: Props) => {\n const { variant = 'incoming' } = props;\n const { colors } = useUIKitTheme();\n\n const fileType = getFileType(props.message.type || getFileExtension(props.message.name));\n const color = colors.ui.groupChannelMessage[variant];\n\n return (\n <MessageContainer {...props}>\n <PressBox onPress={props.onPress} onLongPress={props.onLongPress}>\n {({ pressed }) => (\n <Box backgroundColor={pressed ? color.pressed.background : color.enabled.background} style={styles.container}>\n <Box style={styles.bubble}>\n <Icon.File\n fileType={fileType}\n size={24}\n containerStyle={{ backgroundColor: colors.background, padding: 2, borderRadius: 8, marginRight: 8 }}\n />\n <Text\n body3\n ellipsizeMode={'middle'}\n numberOfLines={1}\n color={pressed ? color.pressed.textMsg : color.enabled.textMsg}\n style={styles.name}\n >\n {truncate(props.strings?.fileName || props.message.name, { mode: 'mid', maxLen: 20 })}\n </Text>\n </Box>\n {props.children}\n </Box>\n )}\n </PressBox>\n </MessageContainer>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n overflow: 'hidden',\n borderRadius: 16,\n },\n bubble: {\n flexDirection: 'row',\n alignItems: 'center',\n paddingHorizontal: 12,\n paddingVertical: 6,\n },\n name: {\n flexShrink: 1,\n },\n});\n\nexport default FileMessage;\n"],"mappings":"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"}
|
|
@@ -4,19 +4,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
var _react =
|
|
8
|
-
var _reactNative = require("react-native");
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
8
|
var _uikitUtils = require("@sendbird/uikit-utils");
|
|
10
9
|
var _Box = _interopRequireDefault(require("../../components/Box"));
|
|
11
|
-
var _Icon = _interopRequireDefault(require("../../components/Icon"));
|
|
12
|
-
var _ImageWithPlaceholder = _interopRequireDefault(require("../../components/ImageWithPlaceholder"));
|
|
13
10
|
var _PressBox = _interopRequireDefault(require("../../components/PressBox"));
|
|
11
|
+
var _VideoThumbnail = require("../../components/VideoThumbnail");
|
|
14
12
|
var _createStyleSheet = _interopRequireDefault(require("../../styles/createStyleSheet"));
|
|
15
13
|
var _useUIKitTheme = _interopRequireDefault(require("../../theme/useUIKitTheme"));
|
|
16
14
|
var _MessageContainer = _interopRequireDefault(require("./MessageContainer"));
|
|
17
15
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
18
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
19
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
20
16
|
const VideoFileMessage = props => {
|
|
21
17
|
const {
|
|
22
18
|
onPress,
|
|
@@ -24,79 +20,21 @@ const VideoFileMessage = props => {
|
|
|
24
20
|
variant = 'incoming'
|
|
25
21
|
} = props;
|
|
26
22
|
const {
|
|
27
|
-
colors
|
|
28
|
-
palette,
|
|
29
|
-
select
|
|
23
|
+
colors
|
|
30
24
|
} = (0, _useUIKitTheme.default)();
|
|
31
25
|
const uri = (0, _uikitUtils.getAvailableUriFromFileMessage)(props.message);
|
|
32
|
-
const {
|
|
33
|
-
thumbnail,
|
|
34
|
-
loading
|
|
35
|
-
} = useRetry(() => props.fetchThumbnailFromVideoSource(uri));
|
|
36
26
|
return /*#__PURE__*/_react.default.createElement(_MessageContainer.default, props, /*#__PURE__*/_react.default.createElement(_Box.default, {
|
|
37
27
|
style: styles.container,
|
|
38
28
|
backgroundColor: colors.ui.groupChannelMessage[variant].enabled.background
|
|
39
29
|
}, /*#__PURE__*/_react.default.createElement(_PressBox.default, {
|
|
40
30
|
activeOpacity: 0.8,
|
|
41
31
|
onPress: onPress,
|
|
42
|
-
onLongPress: onLongPress
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
light: palette.background100
|
|
49
|
-
})
|
|
50
|
-
}) : /*#__PURE__*/_react.default.createElement(_ImageWithPlaceholder.default, {
|
|
51
|
-
source: {
|
|
52
|
-
uri: thumbnail ?? 'invalid-image'
|
|
53
|
-
},
|
|
54
|
-
style: _reactNative.StyleSheet.absoluteFill
|
|
55
|
-
}), (loading || thumbnail !== null) && /*#__PURE__*/_react.default.createElement(_Box.default, {
|
|
56
|
-
style: _reactNative.StyleSheet.absoluteFill,
|
|
57
|
-
alignItems: 'center',
|
|
58
|
-
justifyContent: 'center'
|
|
59
|
-
}, /*#__PURE__*/_react.default.createElement(_Icon.default, {
|
|
60
|
-
icon: 'play',
|
|
61
|
-
size: 28,
|
|
62
|
-
color: palette.onBackgroundLight02,
|
|
63
|
-
containerStyle: [styles.playIcon, {
|
|
64
|
-
backgroundColor: palette.onBackgroundDark01
|
|
65
|
-
}]
|
|
66
|
-
}))), props.children));
|
|
67
|
-
};
|
|
68
|
-
const useRetry = function (fetch) {
|
|
69
|
-
let retryCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;
|
|
70
|
-
const [state, setState] = (0, _react.useState)({
|
|
71
|
-
thumbnail: null,
|
|
72
|
-
loading: true
|
|
73
|
-
});
|
|
74
|
-
const retryCountRef = (0, _react.useRef)(0);
|
|
75
|
-
const retryTimeoutRef = (0, _react.useRef)();
|
|
76
|
-
const fetchThumbnail = (0, _react.useRef)(fetch);
|
|
77
|
-
fetchThumbnail.current = fetch;
|
|
78
|
-
(0, _react.useEffect)(() => {
|
|
79
|
-
if (!state.thumbnail) {
|
|
80
|
-
const reloadReservation = () => {
|
|
81
|
-
if (retryCountRef.current < retryCount) {
|
|
82
|
-
retryTimeoutRef.current = setTimeout(() => {
|
|
83
|
-
retryCountRef.current++;
|
|
84
|
-
reloadReservation();
|
|
85
|
-
fetchThumbnail.current().then(result => {
|
|
86
|
-
setState({
|
|
87
|
-
loading: false,
|
|
88
|
-
thumbnail: (result === null || result === void 0 ? void 0 : result.path) ?? null
|
|
89
|
-
});
|
|
90
|
-
});
|
|
91
|
-
}, retryCountRef.current * 5000);
|
|
92
|
-
}
|
|
93
|
-
};
|
|
94
|
-
return reloadReservation();
|
|
95
|
-
} else {
|
|
96
|
-
return clearTimeout(retryTimeoutRef.current);
|
|
97
|
-
}
|
|
98
|
-
}, [state.thumbnail]);
|
|
99
|
-
return state;
|
|
32
|
+
onLongPress: onLongPress
|
|
33
|
+
}, /*#__PURE__*/_react.default.createElement(_VideoThumbnail.VideoThumbnail, {
|
|
34
|
+
style: styles.image,
|
|
35
|
+
videoSource: uri,
|
|
36
|
+
fetchThumbnailFromVideoSource: props.fetchThumbnailFromVideoSource
|
|
37
|
+
})), props.children));
|
|
100
38
|
};
|
|
101
39
|
const styles = (0, _createStyleSheet.default)({
|
|
102
40
|
container: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_uikitUtils","_Box","_PressBox","_VideoThumbnail","_createStyleSheet","_useUIKitTheme","_MessageContainer","obj","__esModule","default","VideoFileMessage","props","onPress","onLongPress","variant","colors","useUIKitTheme","uri","getAvailableUriFromFileMessage","message","createElement","style","styles","container","backgroundColor","ui","groupChannelMessage","enabled","background","activeOpacity","VideoThumbnail","image","videoSource","fetchThumbnailFromVideoSource","children","createStyleSheet","borderRadius","overflow","maxWidth","width","height","playIcon","padding","_default","exports"],"sources":["Message.file.video.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { SendbirdFileMessage } from '@sendbird/uikit-utils';\nimport { getAvailableUriFromFileMessage } from '@sendbird/uikit-utils';\n\nimport Box from '../../components/Box';\nimport PressBox from '../../components/PressBox';\nimport { VideoThumbnail } from '../../components/VideoThumbnail';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport MessageContainer from './MessageContainer';\nimport type { GroupChannelMessageProps } from './index';\n\ntype Props = GroupChannelMessageProps<\n SendbirdFileMessage,\n { fetchThumbnailFromVideoSource: (uri: string) => Promise<{ path: string } | null> }\n>;\n\nconst VideoFileMessage = (props: Props) => {\n const { onPress, onLongPress, variant = 'incoming' } = props;\n\n const { colors } = useUIKitTheme();\n const uri = getAvailableUriFromFileMessage(props.message);\n\n return (\n <MessageContainer {...props}>\n <Box style={styles.container} backgroundColor={colors.ui.groupChannelMessage[variant].enabled.background}>\n <PressBox activeOpacity={0.8} onPress={onPress} onLongPress={onLongPress}>\n <VideoThumbnail\n style={styles.image}\n videoSource={uri}\n fetchThumbnailFromVideoSource={props.fetchThumbnailFromVideoSource}\n />\n </PressBox>\n {props.children}\n </Box>\n </MessageContainer>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n borderRadius: 16,\n overflow: 'hidden',\n },\n image: {\n maxWidth: 240,\n width: 240,\n height: 160,\n borderRadius: 16,\n overflow: 'hidden',\n },\n playIcon: {\n padding: 10,\n borderRadius: 50,\n },\n});\nexport default VideoFileMessage;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,IAAAC,WAAA,GAAAD,OAAA;AAEA,IAAAE,IAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,SAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,eAAA,GAAAJ,OAAA;AACA,IAAAK,iBAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,cAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,iBAAA,GAAAR,sBAAA,CAAAC,OAAA;AAAkD,SAAAD,uBAAAS,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAQlD,MAAMG,gBAAgB,GAAIC,KAAY,IAAK;EACzC,MAAM;IAAEC,OAAO;IAAEC,WAAW;IAAEC,OAAO,GAAG;EAAW,CAAC,GAAGH,KAAK;EAE5D,MAAM;IAAEI;EAAO,CAAC,GAAG,IAAAC,sBAAa,GAAE;EAClC,MAAMC,GAAG,GAAG,IAAAC,0CAA8B,EAACP,KAAK,CAACQ,OAAO,CAAC;EAEzD,oBACEtB,MAAA,CAAAY,OAAA,CAAAW,aAAA,CAACd,iBAAA,CAAAG,OAAgB,EAAKE,KAAK,eACzBd,MAAA,CAAAY,OAAA,CAAAW,aAAA,CAACnB,IAAA,CAAAQ,OAAG;IAACY,KAAK,EAAEC,MAAM,CAACC,SAAU;IAACC,eAAe,EAAET,MAAM,CAACU,EAAE,CAACC,mBAAmB,CAACZ,OAAO,CAAC,CAACa,OAAO,CAACC;EAAW,gBACvG/B,MAAA,CAAAY,OAAA,CAAAW,aAAA,CAAClB,SAAA,CAAAO,OAAQ;IAACoB,aAAa,EAAE,GAAI;IAACjB,OAAO,EAAEA,OAAQ;IAACC,WAAW,EAAEA;EAAY,gBACvEhB,MAAA,CAAAY,OAAA,CAAAW,aAAA,CAACjB,eAAA,CAAA2B,cAAc;IACbT,KAAK,EAAEC,MAAM,CAACS,KAAM;IACpBC,WAAW,EAAEf,GAAI;IACjBgB,6BAA6B,EAAEtB,KAAK,CAACsB;EAA8B,EACnE,CACO,EACVtB,KAAK,CAACuB,QAAQ,CACX,CACW;AAEvB,CAAC;AAED,MAAMZ,MAAM,GAAG,IAAAa,yBAAgB,EAAC;EAC9BZ,SAAS,EAAE;IACTa,YAAY,EAAE,EAAE;IAChBC,QAAQ,EAAE;EACZ,CAAC;EACDN,KAAK,EAAE;IACLO,QAAQ,EAAE,GAAG;IACbC,KAAK,EAAE,GAAG;IACVC,MAAM,EAAE,GAAG;IACXJ,YAAY,EAAE,EAAE;IAChBC,QAAQ,EAAE;EACZ,CAAC;EACDI,QAAQ,EAAE;IACRC,OAAO,EAAE,EAAE;IACXN,YAAY,EAAE;EAChB;AACF,CAAC,CAAC;AAAC,IAAAO,QAAA,GACYjC,gBAAgB;AAAAkC,OAAA,CAAAnC,OAAA,GAAAkC,QAAA"}
|
|
@@ -28,7 +28,8 @@ MessageContainer.Incoming = function MessageContainerIncoming(_ref) {
|
|
|
28
28
|
groupedWithPrev,
|
|
29
29
|
message,
|
|
30
30
|
onPressAvatar,
|
|
31
|
-
strings
|
|
31
|
+
strings,
|
|
32
|
+
parentMessage
|
|
32
33
|
} = _ref;
|
|
33
34
|
const {
|
|
34
35
|
colors
|
|
@@ -48,7 +49,7 @@ MessageContainer.Incoming = function MessageContainerIncoming(_ref) {
|
|
|
48
49
|
uri: (_message$sender = message.sender) === null || _message$sender === void 0 ? void 0 : _message$sender.profileUrl
|
|
49
50
|
}))), /*#__PURE__*/_react.default.createElement(_Box.default, {
|
|
50
51
|
flexShrink: 1
|
|
51
|
-
}, !groupedWithPrev && /*#__PURE__*/_react.default.createElement(_Box.default, {
|
|
52
|
+
}, parentMessage, !groupedWithPrev && !message.parentMessage && /*#__PURE__*/_react.default.createElement(_Box.default, {
|
|
52
53
|
marginLeft: 12,
|
|
53
54
|
marginBottom: 4
|
|
54
55
|
}, (message.isFileMessage() || message.isUserMessage()) && /*#__PURE__*/_react.default.createElement(_Text.default, {
|
|
@@ -73,13 +74,14 @@ MessageContainer.Outgoing = function MessageContainerOutgoing(_ref2) {
|
|
|
73
74
|
message,
|
|
74
75
|
groupedWithNext,
|
|
75
76
|
strings,
|
|
76
|
-
sendingStatus
|
|
77
|
+
sendingStatus,
|
|
78
|
+
parentMessage
|
|
77
79
|
} = _ref2;
|
|
78
80
|
const {
|
|
79
81
|
colors
|
|
80
82
|
} = (0, _useUIKitTheme.default)();
|
|
81
83
|
const color = colors.ui.groupChannelMessage.outgoing;
|
|
82
|
-
return /*#__PURE__*/_react.default.createElement(_Box.default, {
|
|
84
|
+
return /*#__PURE__*/_react.default.createElement(_Box.default, null, parentMessage, /*#__PURE__*/_react.default.createElement(_Box.default, {
|
|
83
85
|
flexDirection: 'row',
|
|
84
86
|
justifyContent: 'flex-end',
|
|
85
87
|
alignItems: 'flex-end'
|
|
@@ -96,7 +98,7 @@ MessageContainer.Outgoing = function MessageContainerOutgoing(_ref2) {
|
|
|
96
98
|
color: color.enabled.textTime
|
|
97
99
|
}, (strings === null || strings === void 0 ? void 0 : strings.sentDate) ?? (0, _uikitUtils.getMessageTimeFormat)(new Date(message.createdAt))))), /*#__PURE__*/_react.default.createElement(_Box.default, {
|
|
98
100
|
style: styles.bubble
|
|
99
|
-
}, children));
|
|
101
|
+
}, children)));
|
|
100
102
|
};
|
|
101
103
|
const styles = (0, _createStyleSheet.default)({
|
|
102
104
|
bubble: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_uikitUtils","_Box","_Text","_createStyleSheet","_useUIKitTheme","_Avatar","obj","__esModule","default","MessageContainer","props","variant","createElement","Incoming","Outgoing","MessageContainerIncoming","_ref","_message$sender","children","groupedWithNext","groupedWithPrev","message","onPressAvatar","strings","colors","useUIKitTheme","color","ui","groupChannelMessage","incoming","flexDirection","justifyContent","alignItems","width","marginRight","isFileMessage","isUserMessage","Pressable","onPress","size","uri","sender","profileUrl","flexShrink","marginLeft","marginBottom","caption1","enabled","textSenderName","numberOfLines","senderName","nickname","style","styles","bubble","caption4","textTime","sentDate","getMessageTimeFormat","Date","createdAt","MessageContainerOutgoing","_ref2","sendingStatus","outgoing","createStyleSheet","maxWidth","overflow","_default","exports"],"sources":["MessageContainer.tsx"],"sourcesContent":["import React from 'react';\nimport { Pressable } from 'react-native';\n\nimport type { SendbirdMessage } from '@sendbird/uikit-utils';\nimport { getMessageTimeFormat } from '@sendbird/uikit-utils';\n\nimport Box from '../../components/Box';\nimport Text from '../../components/Text';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Avatar from '../Avatar';\nimport type { GroupChannelMessageProps } from './index';\n\ntype Props = GroupChannelMessageProps<SendbirdMessage>;\n\nconst MessageContainer = (props: Props) => {\n if (props.variant === 'incoming') {\n return <MessageContainer.Incoming {...props} />;\n } else {\n return <MessageContainer.Outgoing {...props} />;\n }\n};\n\nMessageContainer.Incoming = function MessageContainerIncoming({\n children,\n groupedWithNext,\n groupedWithPrev,\n message,\n onPressAvatar,\n strings,\n}: Props) {\n const { colors } = useUIKitTheme();\n const color = colors.ui.groupChannelMessage.incoming;\n\n return (\n <Box flexDirection={'row'} justifyContent={'flex-start'} alignItems={'flex-end'}>\n <Box width={26} marginRight={12}>\n {(message.isFileMessage() || message.isUserMessage()) && !groupedWithNext && (\n <Pressable onPress={onPressAvatar}>\n <Avatar size={26} uri={message.sender?.profileUrl} />\n </Pressable>\n )}\n </Box>\n <Box flexShrink={1}>\n {!groupedWithPrev && (\n <Box marginLeft={12} marginBottom={4}>\n {(message.isFileMessage() || message.isUserMessage()) && (\n <Text caption1 color={color.enabled.textSenderName} numberOfLines={1}>\n {strings?.senderName ?? message.sender.nickname}\n </Text>\n )}\n </Box>\n )}\n\n <Box flexDirection={'row'} alignItems={'flex-end'}>\n <Box style={styles.bubble}>{children}</Box>\n {!groupedWithNext && (\n <Box marginLeft={4}>\n <Text caption4 color={color.enabled.textTime}>\n {strings?.sentDate ?? getMessageTimeFormat(new Date(message.createdAt))}\n </Text>\n </Box>\n )}\n </Box>\n </Box>\n </Box>\n );\n};\n\nMessageContainer.Outgoing = function MessageContainerOutgoing({\n children,\n message,\n groupedWithNext,\n strings,\n sendingStatus,\n}: Props) {\n const { colors } = useUIKitTheme();\n const color = colors.ui.groupChannelMessage.outgoing;\n\n return (\n <Box flexDirection={'row'} justifyContent={'flex-end'} alignItems={'flex-end'}>\n
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_uikitUtils","_Box","_Text","_createStyleSheet","_useUIKitTheme","_Avatar","obj","__esModule","default","MessageContainer","props","variant","createElement","Incoming","Outgoing","MessageContainerIncoming","_ref","_message$sender","children","groupedWithNext","groupedWithPrev","message","onPressAvatar","strings","parentMessage","colors","useUIKitTheme","color","ui","groupChannelMessage","incoming","flexDirection","justifyContent","alignItems","width","marginRight","isFileMessage","isUserMessage","Pressable","onPress","size","uri","sender","profileUrl","flexShrink","marginLeft","marginBottom","caption1","enabled","textSenderName","numberOfLines","senderName","nickname","style","styles","bubble","caption4","textTime","sentDate","getMessageTimeFormat","Date","createdAt","MessageContainerOutgoing","_ref2","sendingStatus","outgoing","createStyleSheet","maxWidth","overflow","_default","exports"],"sources":["MessageContainer.tsx"],"sourcesContent":["import React from 'react';\nimport { Pressable } from 'react-native';\n\nimport type { SendbirdMessage } from '@sendbird/uikit-utils';\nimport { getMessageTimeFormat } from '@sendbird/uikit-utils';\n\nimport Box from '../../components/Box';\nimport Text from '../../components/Text';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Avatar from '../Avatar';\nimport type { GroupChannelMessageProps } from './index';\n\ntype Props = GroupChannelMessageProps<SendbirdMessage>;\n\nconst MessageContainer = (props: Props) => {\n if (props.variant === 'incoming') {\n return <MessageContainer.Incoming {...props} />;\n } else {\n return <MessageContainer.Outgoing {...props} />;\n }\n};\n\nMessageContainer.Incoming = function MessageContainerIncoming({\n children,\n groupedWithNext,\n groupedWithPrev,\n message,\n onPressAvatar,\n strings,\n parentMessage,\n}: Props) {\n const { colors } = useUIKitTheme();\n const color = colors.ui.groupChannelMessage.incoming;\n\n return (\n <Box flexDirection={'row'} justifyContent={'flex-start'} alignItems={'flex-end'}>\n <Box width={26} marginRight={12}>\n {(message.isFileMessage() || message.isUserMessage()) && !groupedWithNext && (\n <Pressable onPress={onPressAvatar}>\n <Avatar size={26} uri={message.sender?.profileUrl} />\n </Pressable>\n )}\n </Box>\n <Box flexShrink={1}>\n {parentMessage}\n {!groupedWithPrev && !message.parentMessage && (\n <Box marginLeft={12} marginBottom={4}>\n {(message.isFileMessage() || message.isUserMessage()) && (\n <Text caption1 color={color.enabled.textSenderName} numberOfLines={1}>\n {strings?.senderName ?? message.sender.nickname}\n </Text>\n )}\n </Box>\n )}\n\n <Box flexDirection={'row'} alignItems={'flex-end'}>\n <Box style={styles.bubble}>{children}</Box>\n {!groupedWithNext && (\n <Box marginLeft={4}>\n <Text caption4 color={color.enabled.textTime}>\n {strings?.sentDate ?? getMessageTimeFormat(new Date(message.createdAt))}\n </Text>\n </Box>\n )}\n </Box>\n </Box>\n </Box>\n );\n};\n\nMessageContainer.Outgoing = function MessageContainerOutgoing({\n children,\n message,\n groupedWithNext,\n strings,\n sendingStatus,\n parentMessage,\n}: Props) {\n const { colors } = useUIKitTheme();\n const color = colors.ui.groupChannelMessage.outgoing;\n\n return (\n <Box>\n {parentMessage}\n <Box flexDirection={'row'} justifyContent={'flex-end'} alignItems={'flex-end'}>\n <Box flexDirection={'row'} alignItems={'flex-end'} justifyContent={'center'}>\n {sendingStatus && <Box marginRight={4}>{sendingStatus}</Box>}\n {!groupedWithNext && (\n <Box marginRight={4}>\n <Text caption4 color={color.enabled.textTime}>\n {strings?.sentDate ?? getMessageTimeFormat(new Date(message.createdAt))}\n </Text>\n </Box>\n )}\n </Box>\n <Box style={styles.bubble}>{children}</Box>\n </Box>\n </Box>\n );\n};\n\nconst styles = createStyleSheet({\n bubble: {\n maxWidth: 240,\n overflow: 'hidden',\n flexShrink: 1,\n },\n});\n\nexport default MessageContainer;\n"],"mappings":"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"}
|
|
@@ -35,7 +35,7 @@ const MessageOpenGraph = _ref => {
|
|
|
35
35
|
} = _ref2;
|
|
36
36
|
return /*#__PURE__*/_react.default.createElement(_Box.default, {
|
|
37
37
|
backgroundColor: pressed ? color.pressed.background : color.enabled.background
|
|
38
|
-
},
|
|
38
|
+
}, !!ogMetaData.defaultImage && /*#__PURE__*/_react.default.createElement(_ImageWithPlaceholder.default, {
|
|
39
39
|
style: styles.ogImage,
|
|
40
40
|
source: {
|
|
41
41
|
uri: ogMetaData.defaultImage.url
|
|
@@ -51,7 +51,7 @@ const MessageOpenGraph = _ref => {
|
|
|
51
51
|
body2: true,
|
|
52
52
|
color: colors.onBackground01,
|
|
53
53
|
style: styles.ogTitle
|
|
54
|
-
}, ogMetaData.title),
|
|
54
|
+
}, ogMetaData.title), !!ogMetaData.description && /*#__PURE__*/_react.default.createElement(_Text.default, {
|
|
55
55
|
numberOfLines: 1,
|
|
56
56
|
caption2: true,
|
|
57
57
|
color: colors.onBackground01,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_Box","_ImageWithPlaceholder","_PressBox","_Text","_createStyleSheet","_useUIKitTheme","obj","__esModule","default","MessageOpenGraph","_ref","onPressURL","onLongPress","ogMetaData","variant","palette","select","colors","useUIKitTheme","color","ui","groupChannelMessage","createElement","activeOpacity","onPress","url","_ref2","pressed","backgroundColor","background","enabled","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_Box","_ImageWithPlaceholder","_PressBox","_Text","_createStyleSheet","_useUIKitTheme","obj","__esModule","default","MessageOpenGraph","_ref","onPressURL","onLongPress","ogMetaData","variant","palette","select","colors","useUIKitTheme","color","ui","groupChannelMessage","createElement","activeOpacity","onPress","url","_ref2","pressed","backgroundColor","background","enabled","defaultImage","style","styles","ogImage","source","uri","ogContainer","dark","background400","light","background100","numberOfLines","body2","onBackground01","ogTitle","title","description","caption2","ogDesc","onBackground02","createStyleSheet","overflow","paddingHorizontal","paddingTop","paddingBottom","maxWidth","width","height","ogUrl","marginBottom","lineHeight","_default","exports"],"sources":["MessageOpenGraph.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { SendbirdUserMessage } from '@sendbird/uikit-utils';\n\nimport Box from '../../components/Box';\nimport ImageWithPlaceholder from '../../components/ImageWithPlaceholder';\nimport PressBox from '../../components/PressBox';\nimport Text from '../../components/Text';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\n\nconst MessageOpenGraph = ({\n onPressURL,\n onLongPress,\n ogMetaData,\n variant,\n}: {\n ogMetaData: NonNullable<SendbirdUserMessage['ogMetaData']>;\n variant: 'outgoing' | 'incoming';\n onPressURL?: (url: string) => void;\n onLongPress?: () => void;\n}) => {\n const { palette, select, colors } = useUIKitTheme();\n const color = colors.ui.groupChannelMessage[variant];\n\n return (\n <PressBox\n activeOpacity={0.85}\n onPress={() => typeof ogMetaData?.url === 'string' && onPressURL?.(ogMetaData.url)}\n onLongPress={onLongPress}\n >\n {({ pressed }) => (\n <Box backgroundColor={pressed ? color.pressed.background : color.enabled.background}>\n {!!ogMetaData.defaultImage && (\n <ImageWithPlaceholder style={styles.ogImage} source={{ uri: ogMetaData.defaultImage.url }} />\n )}\n\n <Box\n style={styles.ogContainer}\n backgroundColor={select({ dark: palette.background400, light: palette.background100 })}\n >\n <Text numberOfLines={3} body2 color={colors.onBackground01} style={styles.ogTitle}>\n {ogMetaData.title}\n </Text>\n {!!ogMetaData.description && (\n <Text numberOfLines={1} caption2 color={colors.onBackground01} style={styles.ogDesc}>\n {ogMetaData.description}\n </Text>\n )}\n <Text numberOfLines={1} caption2 color={colors.onBackground02}>\n {ogMetaData.url}\n </Text>\n </Box>\n </Box>\n )}\n </PressBox>\n );\n};\n\nconst styles = createStyleSheet({\n ogContainer: {\n overflow: 'hidden',\n paddingHorizontal: 12,\n paddingTop: 8,\n paddingBottom: 12,\n },\n ogImage: {\n maxWidth: 240,\n width: 240,\n height: 136,\n },\n ogUrl: {\n marginBottom: 4,\n },\n ogTitle: {\n marginBottom: 4,\n },\n ogDesc: {\n lineHeight: 14,\n marginBottom: 8,\n },\n});\n\nexport default MessageOpenGraph;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_Message","_interopRequireDefault","require","_Message2","_MessageFile","_MessageFile2","_Message3","_Message4","_MessageUser","obj","__esModule","default","GroupChannelMessage","User","UserMessage","OpenGraphUser","File","FileMessage","ImageFile","ImageFileMessage","VideoFile","VideoFileMessage","Admin","AdminMessage","Unknown","UnknownMessage","_default","exports"],"sources":["index.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { SendbirdGroupChannel, SendbirdMessage, SendbirdUser } from '@sendbird/uikit-utils';\n\nimport AdminMessage from './Message.admin';\nimport FileMessage from './Message.file';\nimport ImageFileMessage from './Message.file.image';\nimport VideoFileMessage from './Message.file.video';\nimport UnknownMessage from './Message.unknown';\nimport UserMessage from './Message.user';\nimport OpenGraphUser from './Message.user.og';\n\nexport type GroupChannelMessageProps<T extends SendbirdMessage, AdditionalProps = unknown> = {\n channel: SendbirdGroupChannel;\n message: T;\n variant?: 'outgoing' | 'incoming';\n strings?: {\n senderName?: string;\n sentDate?: string;\n edited?: string;\n fileName?: string;\n unknownTitle?: string;\n unknownDescription?: string;\n };\n\n children?: React.ReactNode;\n sendingStatus?: React.ReactNode;\n\n groupedWithPrev: boolean;\n groupedWithNext: boolean;\n onPress?: () => void;\n onLongPress?: () => void;\n onPressAvatar?: () => void;\n onPressURL?: (url: string) => void;\n onPressMentionedUser?: (mentionedUser?: SendbirdUser) => void;\n} & AdditionalProps;\n\nconst GroupChannelMessage = {\n User: UserMessage,\n OpenGraphUser: OpenGraphUser,\n File: FileMessage,\n ImageFile: ImageFileMessage,\n VideoFile: VideoFileMessage,\n Admin: AdminMessage,\n Unknown: UnknownMessage,\n};\n\nexport default GroupChannelMessage;\n"],"mappings":";;;;;;AAIA,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,YAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,aAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,SAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,SAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,YAAA,GAAAP,sBAAA,CAAAC,OAAA;AAA8C,SAAAD,uBAAAQ,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;
|
|
1
|
+
{"version":3,"names":["_Message","_interopRequireDefault","require","_Message2","_MessageFile","_MessageFile2","_Message3","_Message4","_MessageUser","obj","__esModule","default","GroupChannelMessage","User","UserMessage","OpenGraphUser","File","FileMessage","ImageFile","ImageFileMessage","VideoFile","VideoFileMessage","Admin","AdminMessage","Unknown","UnknownMessage","_default","exports"],"sources":["index.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { SendbirdGroupChannel, SendbirdMessage, SendbirdUser } from '@sendbird/uikit-utils';\n\nimport AdminMessage from './Message.admin';\nimport FileMessage from './Message.file';\nimport ImageFileMessage from './Message.file.image';\nimport VideoFileMessage from './Message.file.video';\nimport UnknownMessage from './Message.unknown';\nimport UserMessage from './Message.user';\nimport OpenGraphUser from './Message.user.og';\n\nexport type GroupChannelMessageProps<T extends SendbirdMessage, AdditionalProps = unknown> = {\n channel: SendbirdGroupChannel;\n message: T;\n variant?: 'outgoing' | 'incoming';\n strings?: {\n senderName?: string;\n sentDate?: string;\n edited?: string;\n fileName?: string;\n unknownTitle?: string;\n unknownDescription?: string;\n };\n\n children?: React.ReactNode;\n sendingStatus?: React.ReactNode;\n parentMessage?: React.ReactNode;\n\n groupedWithPrev: boolean;\n groupedWithNext: boolean;\n onPress?: () => void;\n onLongPress?: () => void;\n onPressAvatar?: () => void;\n onPressURL?: (url: string) => void;\n onPressMentionedUser?: (mentionedUser?: SendbirdUser) => void;\n} & AdditionalProps;\n\nconst GroupChannelMessage = {\n User: UserMessage,\n OpenGraphUser: OpenGraphUser,\n File: FileMessage,\n ImageFile: ImageFileMessage,\n VideoFile: VideoFileMessage,\n Admin: AdminMessage,\n Unknown: UnknownMessage,\n};\n\nexport default GroupChannelMessage;\n"],"mappings":";;;;;;AAIA,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,YAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,aAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,SAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,SAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,YAAA,GAAAP,sBAAA,CAAAC,OAAA;AAA8C,SAAAD,uBAAAQ,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AA4B9C,MAAMG,mBAAmB,GAAG;EAC1BC,IAAI,EAAEC,iBAAW;EACjBC,aAAa,EAAEA,oBAAa;EAC5BC,IAAI,EAAEC,iBAAW;EACjBC,SAAS,EAAEC,oBAAgB;EAC3BC,SAAS,EAAEC,qBAAgB;EAC3BC,KAAK,EAAEC,gBAAY;EACnBC,OAAO,EAAEC;AACX,CAAC;AAAC,IAAAC,QAAA,GAEad,mBAAmB;AAAAe,OAAA,CAAAhB,OAAA,GAAAe,QAAA"}
|
|
@@ -14,12 +14,6 @@ var _createStyleSheet = _interopRequireDefault(require("../../styles/createStyle
|
|
|
14
14
|
var _useUIKitTheme = _interopRequireDefault(require("../../theme/useUIKitTheme"));
|
|
15
15
|
var _MessageContainer = _interopRequireDefault(require("./MessageContainer"));
|
|
16
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
-
const iconMapper = {
|
|
18
|
-
audio: 'file-audio',
|
|
19
|
-
image: 'photo',
|
|
20
|
-
video: 'play',
|
|
21
|
-
file: 'file-document'
|
|
22
|
-
};
|
|
23
17
|
const FileMessage = props => {
|
|
24
18
|
const {
|
|
25
19
|
colors
|
|
@@ -54,8 +48,8 @@ const FileMessage = props => {
|
|
|
54
48
|
borderRadius: 8,
|
|
55
49
|
alignItems: 'flex-start',
|
|
56
50
|
backgroundColor: colors.background
|
|
57
|
-
}, /*#__PURE__*/_react.default.createElement(_Icon.default, {
|
|
58
|
-
|
|
51
|
+
}, /*#__PURE__*/_react.default.createElement(_Icon.default.File, {
|
|
52
|
+
fileType: type,
|
|
59
53
|
size: 32
|
|
60
54
|
})), /*#__PURE__*/_react.default.createElement(_Text.default, {
|
|
61
55
|
body3: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_uikitUtils","_Box","_Icon","_PressBox","_Text","_createStyleSheet","_useUIKitTheme","_MessageContainer","obj","__esModule","default","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_uikitUtils","_Box","_Icon","_PressBox","_Text","_createStyleSheet","_useUIKitTheme","_MessageContainer","obj","__esModule","default","FileMessage","props","colors","useUIKitTheme","onPress","onLongPress","rest","type","getFileTypeFromMessage","message","color","ui","openChannelMessage","createElement","_ref","_props$strings","pressed","padding","borderRadius","flexDirection","alignItems","justifyContent","style","backgroundColor","bubbleBackground","enabled","marginRight","background","File","fileType","size","body3","numberOfLines","ellipsizeMode","textMsg","styles","fileName","strings","name","createStyleSheet","flexShrink","_default","exports"],"sources":["Message.file.tsx"],"sourcesContent":["import React from 'react';\n\nimport { SendbirdFileMessage, getFileTypeFromMessage } from '@sendbird/uikit-utils';\n\nimport Box from '../../components/Box';\nimport Icon from '../../components/Icon';\nimport PressBox from '../../components/PressBox';\nimport Text from '../../components/Text';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport MessageContainer from './MessageContainer';\nimport type { OpenChannelMessageProps } from './index';\n\ntype Props = {};\nconst FileMessage = (props: OpenChannelMessageProps<SendbirdFileMessage, Props>) => {\n const { colors } = useUIKitTheme();\n const { onPress, onLongPress, ...rest } = props;\n const type = getFileTypeFromMessage(props.message);\n const color = colors.ui.openChannelMessage.default;\n\n return (\n <MessageContainer {...rest}>\n <PressBox onPress={onPress} onLongPress={onLongPress}>\n {({ pressed }) => {\n return (\n <Box\n padding={8}\n borderRadius={8}\n flexDirection={'row'}\n alignItems={'center'}\n justifyContent={'flex-start'}\n style={{ backgroundColor: pressed ? color.pressed.bubbleBackground : color.enabled.bubbleBackground }}\n >\n <Box\n padding={4}\n marginRight={8}\n borderRadius={8}\n alignItems={'flex-start'}\n backgroundColor={colors.background}\n >\n <Icon.File fileType={type} size={32} />\n </Box>\n <Text\n body3\n numberOfLines={1}\n ellipsizeMode={'middle'}\n color={color.enabled.textMsg}\n style={styles.fileName}\n >\n {props.strings?.fileName || props.message.name}\n </Text>\n </Box>\n );\n }}\n </PressBox>\n </MessageContainer>\n );\n};\n\nconst styles = createStyleSheet({\n fileName: {\n flexShrink: 1,\n },\n});\nexport default FileMessage;\n"],"mappings":"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"}
|
|
@@ -4,104 +4,37 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
-
var _react =
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
8
|
var _uikitUtils = require("@sendbird/uikit-utils");
|
|
9
|
-
var _Box = _interopRequireDefault(require("../../components/Box"));
|
|
10
|
-
var _Icon = _interopRequireDefault(require("../../components/Icon"));
|
|
11
|
-
var _ImageWithPlaceholder = _interopRequireDefault(require("../../components/ImageWithPlaceholder"));
|
|
12
9
|
var _PressBox = _interopRequireDefault(require("../../components/PressBox"));
|
|
10
|
+
var _VideoThumbnail = require("../../components/VideoThumbnail");
|
|
13
11
|
var _createStyleSheet = _interopRequireDefault(require("../../styles/createStyleSheet"));
|
|
14
|
-
var _useUIKitTheme = _interopRequireDefault(require("../../theme/useUIKitTheme"));
|
|
15
12
|
var _MessageContainer = _interopRequireDefault(require("./MessageContainer"));
|
|
16
13
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
18
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
19
14
|
const VideoFileMessage = props => {
|
|
20
|
-
const {
|
|
21
|
-
colors,
|
|
22
|
-
palette
|
|
23
|
-
} = (0, _useUIKitTheme.default)();
|
|
24
15
|
const {
|
|
25
16
|
onPress,
|
|
26
17
|
onLongPress,
|
|
27
18
|
...rest
|
|
28
19
|
} = props;
|
|
29
20
|
const uri = (0, _uikitUtils.getAvailableUriFromFileMessage)(props.message);
|
|
30
|
-
const {
|
|
31
|
-
thumbnail,
|
|
32
|
-
loading
|
|
33
|
-
} = useRetry(() => props.fetchThumbnailFromVideoSource(uri));
|
|
34
21
|
return /*#__PURE__*/_react.default.createElement(_MessageContainer.default, rest, /*#__PURE__*/_react.default.createElement(_PressBox.default, {
|
|
35
22
|
style: styles.container,
|
|
36
23
|
activeOpacity: 0.8,
|
|
37
24
|
onPress: onPress,
|
|
38
25
|
onLongPress: onLongPress
|
|
39
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
backgroundColor: colors.onBackground04,
|
|
45
|
-
style: {
|
|
46
|
-
width: '100%',
|
|
47
|
-
height: '100%'
|
|
48
|
-
}
|
|
49
|
-
}) : /*#__PURE__*/_react.default.createElement(_ImageWithPlaceholder.default, {
|
|
50
|
-
source: {
|
|
51
|
-
uri: thumbnail ?? 'invalid-image'
|
|
52
|
-
},
|
|
53
|
-
width: '100%',
|
|
54
|
-
height: '100%'
|
|
55
|
-
}), (loading || thumbnail !== null) && /*#__PURE__*/_react.default.createElement(_Box.default, {
|
|
56
|
-
style: styles.iconContainer,
|
|
57
|
-
alignItems: 'center',
|
|
58
|
-
justifyContent: 'center'
|
|
59
|
-
}, /*#__PURE__*/_react.default.createElement(_Icon.default, {
|
|
60
|
-
icon: 'play',
|
|
61
|
-
size: 28,
|
|
62
|
-
color: palette.onBackgroundLight02,
|
|
63
|
-
containerStyle: [styles.playIcon, {
|
|
64
|
-
backgroundColor: palette.onBackgroundDark01
|
|
65
|
-
}]
|
|
66
|
-
})))));
|
|
67
|
-
};
|
|
68
|
-
const useRetry = function (fetch) {
|
|
69
|
-
let retryCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;
|
|
70
|
-
const [state, setState] = (0, _react.useState)({
|
|
71
|
-
thumbnail: null,
|
|
72
|
-
loading: true
|
|
73
|
-
});
|
|
74
|
-
const retryCountRef = (0, _react.useRef)(0);
|
|
75
|
-
const retryTimeoutRef = (0, _react.useRef)();
|
|
76
|
-
const fetchThumbnail = (0, _react.useRef)(fetch);
|
|
77
|
-
fetchThumbnail.current = fetch;
|
|
78
|
-
(0, _react.useEffect)(() => {
|
|
79
|
-
if (!state.thumbnail) {
|
|
80
|
-
const reloadReservation = () => {
|
|
81
|
-
if (retryCountRef.current < retryCount) {
|
|
82
|
-
retryTimeoutRef.current = setTimeout(() => {
|
|
83
|
-
retryCountRef.current++;
|
|
84
|
-
reloadReservation();
|
|
85
|
-
fetchThumbnail.current().then(result => {
|
|
86
|
-
setState({
|
|
87
|
-
loading: false,
|
|
88
|
-
thumbnail: (result === null || result === void 0 ? void 0 : result.path) ?? null
|
|
89
|
-
});
|
|
90
|
-
});
|
|
91
|
-
}, retryCountRef.current * 5000);
|
|
92
|
-
}
|
|
93
|
-
};
|
|
94
|
-
return reloadReservation();
|
|
95
|
-
} else {
|
|
96
|
-
return clearTimeout(retryTimeoutRef.current);
|
|
97
|
-
}
|
|
98
|
-
}, [state.thumbnail]);
|
|
99
|
-
return state;
|
|
26
|
+
}, /*#__PURE__*/_react.default.createElement(_VideoThumbnail.VideoThumbnail, {
|
|
27
|
+
style: styles.container,
|
|
28
|
+
videoSource: uri,
|
|
29
|
+
fetchThumbnailFromVideoSource: props.fetchThumbnailFromVideoSource
|
|
30
|
+
})));
|
|
100
31
|
};
|
|
101
32
|
const styles = (0, _createStyleSheet.default)({
|
|
102
33
|
container: {
|
|
103
34
|
maxWidth: 296,
|
|
104
|
-
height: 196
|
|
35
|
+
height: 196,
|
|
36
|
+
borderRadius: 8,
|
|
37
|
+
overflow: 'hidden'
|
|
105
38
|
},
|
|
106
39
|
iconContainer: {
|
|
107
40
|
position: 'absolute',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_uikitUtils","_PressBox","_VideoThumbnail","_createStyleSheet","_MessageContainer","obj","__esModule","default","VideoFileMessage","props","onPress","onLongPress","rest","uri","getAvailableUriFromFileMessage","message","createElement","style","styles","container","activeOpacity","VideoThumbnail","videoSource","fetchThumbnailFromVideoSource","createStyleSheet","maxWidth","height","borderRadius","overflow","iconContainer","position","width","playIcon","padding","_default","exports"],"sources":["Message.file.video.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { SendbirdFileMessage } from '@sendbird/uikit-utils';\nimport { getAvailableUriFromFileMessage } from '@sendbird/uikit-utils';\n\nimport PressBox from '../../components/PressBox';\nimport { VideoThumbnail } from '../../components/VideoThumbnail';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport MessageContainer from './MessageContainer';\nimport type { OpenChannelMessageProps } from './index';\n\ntype Props = {\n fetchThumbnailFromVideoSource: (uri: string) => Promise<{ path: string } | null>;\n};\n\nconst VideoFileMessage = (props: OpenChannelMessageProps<SendbirdFileMessage, Props>) => {\n const { onPress, onLongPress, ...rest } = props;\n const uri = getAvailableUriFromFileMessage(props.message);\n\n return (\n <MessageContainer {...rest}>\n <PressBox style={styles.container} activeOpacity={0.8} onPress={onPress} onLongPress={onLongPress}>\n <VideoThumbnail\n style={styles.container}\n videoSource={uri}\n fetchThumbnailFromVideoSource={props.fetchThumbnailFromVideoSource}\n />\n </PressBox>\n </MessageContainer>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n maxWidth: 296,\n height: 196,\n borderRadius: 8,\n overflow: 'hidden',\n },\n iconContainer: {\n position: 'absolute',\n width: '100%',\n height: '100%',\n },\n playIcon: {\n padding: 10,\n borderRadius: 50,\n },\n});\nexport default VideoFileMessage;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGA,IAAAC,WAAA,GAAAD,OAAA;AAEA,IAAAE,SAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,iBAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,iBAAA,GAAAN,sBAAA,CAAAC,OAAA;AAAkD,SAAAD,uBAAAO,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAOlD,MAAMG,gBAAgB,GAAIC,KAA0D,IAAK;EACvF,MAAM;IAAEC,OAAO;IAAEC,WAAW;IAAE,GAAGC;EAAK,CAAC,GAAGH,KAAK;EAC/C,MAAMI,GAAG,GAAG,IAAAC,0CAA8B,EAACL,KAAK,CAACM,OAAO,CAAC;EAEzD,oBACElB,MAAA,CAAAU,OAAA,CAAAS,aAAA,CAACZ,iBAAA,CAAAG,OAAgB,EAAKK,IAAI,eACxBf,MAAA,CAAAU,OAAA,CAAAS,aAAA,CAACf,SAAA,CAAAM,OAAQ;IAACU,KAAK,EAAEC,MAAM,CAACC,SAAU;IAACC,aAAa,EAAE,GAAI;IAACV,OAAO,EAAEA,OAAQ;IAACC,WAAW,EAAEA;EAAY,gBAChGd,MAAA,CAAAU,OAAA,CAAAS,aAAA,CAACd,eAAA,CAAAmB,cAAc;IACbJ,KAAK,EAAEC,MAAM,CAACC,SAAU;IACxBG,WAAW,EAAET,GAAI;IACjBU,6BAA6B,EAAEd,KAAK,CAACc;EAA8B,EACnE,CACO,CACM;AAEvB,CAAC;AAED,MAAML,MAAM,GAAG,IAAAM,yBAAgB,EAAC;EAC9BL,SAAS,EAAE;IACTM,QAAQ,EAAE,GAAG;IACbC,MAAM,EAAE,GAAG;IACXC,YAAY,EAAE,CAAC;IACfC,QAAQ,EAAE;EACZ,CAAC;EACDC,aAAa,EAAE;IACbC,QAAQ,EAAE,UAAU;IACpBC,KAAK,EAAE,MAAM;IACbL,MAAM,EAAE;EACV,CAAC;EACDM,QAAQ,EAAE;IACRC,OAAO,EAAE,EAAE;IACXN,YAAY,EAAE;EAChB;AACF,CAAC,CAAC;AAAC,IAAAO,QAAA,GACY1B,gBAAgB;AAAA2B,OAAA,CAAA5B,OAAA,GAAA2B,QAAA"}
|