@sendbird/uikit-react-native-foundation 2.3.0 → 2.4.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.
Files changed (105) hide show
  1. package/lib/commonjs/components/Box/index.js +46 -0
  2. package/lib/commonjs/components/Box/index.js.map +1 -0
  3. package/lib/commonjs/components/ImageWithPlaceholder/index.js +92 -0
  4. package/lib/commonjs/components/ImageWithPlaceholder/index.js.map +1 -0
  5. package/lib/commonjs/components/PressBox/index.js +60 -0
  6. package/lib/commonjs/components/PressBox/index.js.map +1 -0
  7. package/lib/commonjs/index.js +39 -5
  8. package/lib/commonjs/index.js.map +1 -1
  9. package/lib/commonjs/theme/DarkUIKitTheme.js +220 -179
  10. package/lib/commonjs/theme/DarkUIKitTheme.js.map +1 -1
  11. package/lib/commonjs/theme/LightUIKitTheme.js +220 -179
  12. package/lib/commonjs/theme/LightUIKitTheme.js.map +1 -1
  13. package/lib/commonjs/types.js.map +1 -1
  14. package/lib/commonjs/ui/Header/index.js +4 -2
  15. package/lib/commonjs/ui/Header/index.js.map +1 -1
  16. package/lib/commonjs/ui/OpenChannelMessage/Message.admin.js +40 -0
  17. package/lib/commonjs/ui/OpenChannelMessage/Message.admin.js.map +1 -0
  18. package/lib/commonjs/ui/OpenChannelMessage/Message.file.image.js +57 -0
  19. package/lib/commonjs/ui/OpenChannelMessage/Message.file.image.js.map +1 -0
  20. package/lib/commonjs/ui/OpenChannelMessage/Message.file.js +90 -0
  21. package/lib/commonjs/ui/OpenChannelMessage/Message.file.js.map +1 -0
  22. package/lib/commonjs/ui/OpenChannelMessage/Message.file.video.js +134 -0
  23. package/lib/commonjs/ui/OpenChannelMessage/Message.file.video.js.map +1 -0
  24. package/lib/commonjs/ui/OpenChannelMessage/Message.unknown.js +55 -0
  25. package/lib/commonjs/ui/OpenChannelMessage/Message.unknown.js.map +1 -0
  26. package/lib/commonjs/ui/OpenChannelMessage/Message.user.js +83 -0
  27. package/lib/commonjs/ui/OpenChannelMessage/Message.user.js.map +1 -0
  28. package/lib/commonjs/ui/OpenChannelMessage/Message.user.og.js +140 -0
  29. package/lib/commonjs/ui/OpenChannelMessage/Message.user.og.js.map +1 -0
  30. package/lib/commonjs/ui/OpenChannelMessage/MessageContainer.js +136 -0
  31. package/lib/commonjs/ui/OpenChannelMessage/MessageContainer.js.map +1 -0
  32. package/lib/commonjs/ui/OpenChannelMessage/index.js +35 -0
  33. package/lib/commonjs/ui/OpenChannelMessage/index.js.map +1 -0
  34. package/lib/commonjs/ui/OpenChannelPreview/index.js +134 -0
  35. package/lib/commonjs/ui/OpenChannelPreview/index.js.map +1 -0
  36. package/lib/module/components/Box/index.js +33 -0
  37. package/lib/module/components/Box/index.js.map +1 -0
  38. package/lib/module/components/ImageWithPlaceholder/index.js +71 -0
  39. package/lib/module/components/ImageWithPlaceholder/index.js.map +1 -0
  40. package/lib/module/components/PressBox/index.js +45 -0
  41. package/lib/module/components/PressBox/index.js.map +1 -0
  42. package/lib/module/index.js +6 -1
  43. package/lib/module/index.js.map +1 -1
  44. package/lib/module/theme/DarkUIKitTheme.js +220 -179
  45. package/lib/module/theme/DarkUIKitTheme.js.map +1 -1
  46. package/lib/module/theme/LightUIKitTheme.js +220 -179
  47. package/lib/module/theme/LightUIKitTheme.js.map +1 -1
  48. package/lib/module/types.js.map +1 -1
  49. package/lib/module/ui/Header/index.js +4 -2
  50. package/lib/module/ui/Header/index.js.map +1 -1
  51. package/lib/module/ui/OpenChannelMessage/Message.admin.js +27 -0
  52. package/lib/module/ui/OpenChannelMessage/Message.admin.js.map +1 -0
  53. package/lib/module/ui/OpenChannelMessage/Message.file.image.js +41 -0
  54. package/lib/module/ui/OpenChannelMessage/Message.file.image.js.map +1 -0
  55. package/lib/module/ui/OpenChannelMessage/Message.file.js +71 -0
  56. package/lib/module/ui/OpenChannelMessage/Message.file.js.map +1 -0
  57. package/lib/module/ui/OpenChannelMessage/Message.file.video.js +112 -0
  58. package/lib/module/ui/OpenChannelMessage/Message.file.video.js.map +1 -0
  59. package/lib/module/ui/OpenChannelMessage/Message.unknown.js +41 -0
  60. package/lib/module/ui/OpenChannelMessage/Message.unknown.js.map +1 -0
  61. package/lib/module/ui/OpenChannelMessage/Message.user.js +67 -0
  62. package/lib/module/ui/OpenChannelMessage/Message.user.js.map +1 -0
  63. package/lib/module/ui/OpenChannelMessage/Message.user.og.js +121 -0
  64. package/lib/module/ui/OpenChannelMessage/Message.user.og.js.map +1 -0
  65. package/lib/module/ui/OpenChannelMessage/MessageContainer.js +116 -0
  66. package/lib/module/ui/OpenChannelMessage/MessageContainer.js.map +1 -0
  67. package/lib/module/ui/OpenChannelMessage/index.js +18 -0
  68. package/lib/module/ui/OpenChannelMessage/index.js.map +1 -0
  69. package/lib/module/ui/OpenChannelPreview/index.js +117 -0
  70. package/lib/module/ui/OpenChannelPreview/index.js.map +1 -0
  71. package/lib/typescript/src/components/Box/index.d.ts +11 -0
  72. package/lib/typescript/src/components/ImageWithPlaceholder/index.d.ts +11 -0
  73. package/lib/typescript/src/components/PressBox/index.d.ts +16 -0
  74. package/lib/typescript/src/index.d.ts +8 -1
  75. package/lib/typescript/src/types.d.ts +21 -5
  76. package/lib/typescript/src/ui/Header/index.d.ts +1 -0
  77. package/lib/typescript/src/ui/OpenChannelMessage/Message.admin.d.ts +4 -0
  78. package/lib/typescript/src/ui/OpenChannelMessage/Message.file.d.ts +5 -0
  79. package/lib/typescript/src/ui/OpenChannelMessage/Message.file.image.d.ts +4 -0
  80. package/lib/typescript/src/ui/OpenChannelMessage/Message.file.video.d.ts +9 -0
  81. package/lib/typescript/src/ui/OpenChannelMessage/Message.unknown.d.ts +4 -0
  82. package/lib/typescript/src/ui/OpenChannelMessage/Message.user.d.ts +5 -0
  83. package/lib/typescript/src/ui/OpenChannelMessage/Message.user.og.d.ts +5 -0
  84. package/lib/typescript/src/ui/OpenChannelMessage/MessageContainer.d.ts +7 -0
  85. package/lib/typescript/src/ui/OpenChannelMessage/index.d.ts +136 -0
  86. package/lib/typescript/src/ui/OpenChannelPreview/index.d.ts +10 -0
  87. package/package.json +4 -4
  88. package/src/components/Box/index.tsx +65 -0
  89. package/src/components/ImageWithPlaceholder/index.tsx +83 -0
  90. package/src/components/PressBox/index.tsx +53 -0
  91. package/src/index.ts +8 -1
  92. package/src/theme/DarkUIKitTheme.ts +213 -171
  93. package/src/theme/LightUIKitTheme.ts +213 -171
  94. package/src/types.ts +41 -6
  95. package/src/ui/Header/index.tsx +7 -2
  96. package/src/ui/OpenChannelMessage/Message.admin.tsx +24 -0
  97. package/src/ui/OpenChannelMessage/Message.file.image.tsx +34 -0
  98. package/src/ui/OpenChannelMessage/Message.file.tsx +67 -0
  99. package/src/ui/OpenChannelMessage/Message.file.video.tsx +93 -0
  100. package/src/ui/OpenChannelMessage/Message.unknown.tsx +31 -0
  101. package/src/ui/OpenChannelMessage/Message.user.og.tsx +120 -0
  102. package/src/ui/OpenChannelMessage/Message.user.tsx +61 -0
  103. package/src/ui/OpenChannelMessage/MessageContainer.tsx +121 -0
  104. package/src/ui/OpenChannelMessage/index.ts +42 -0
  105. package/src/ui/OpenChannelPreview/index.tsx +97 -0
@@ -0,0 +1,27 @@
1
+ import React from 'react';
2
+ import Box from '../../components/Box';
3
+ import Text from '../../components/Text';
4
+ import useUIKitTheme from '../../theme/useUIKitTheme';
5
+
6
+ const AdminMessage = props => {
7
+ const {
8
+ colors
9
+ } = useUIKitTheme();
10
+ const color = colors.ui.openChannelMessage.default;
11
+ return /*#__PURE__*/React.createElement(Box, {
12
+ marginVertical: 8,
13
+ paddingHorizontal: 12,
14
+ backgroundColor: colors.background
15
+ }, /*#__PURE__*/React.createElement(Box, {
16
+ borderRadius: 8,
17
+ paddingHorizontal: 16,
18
+ paddingVertical: 14,
19
+ backgroundColor: color.enabled.adminBackground
20
+ }, /*#__PURE__*/React.createElement(Text, {
21
+ caption2: true,
22
+ color: colors.onBackground02
23
+ }, props.message.message)));
24
+ };
25
+
26
+ export default AdminMessage;
27
+ //# sourceMappingURL=Message.admin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Box","Text","useUIKitTheme","AdminMessage","props","colors","color","ui","openChannelMessage","default","background","enabled","adminBackground","onBackground02","message"],"sources":["Message.admin.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { SendbirdAdminMessage } from '@sendbird/uikit-utils';\n\nimport Box from '../../components/Box';\nimport Text from '../../components/Text';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport type { OpenChannelMessageProps } from './index';\n\nconst AdminMessage = (props: OpenChannelMessageProps<SendbirdAdminMessage>) => {\n const { colors } = useUIKitTheme();\n const color = colors.ui.openChannelMessage.default;\n return (\n <Box marginVertical={8} paddingHorizontal={12} backgroundColor={colors.background}>\n <Box borderRadius={8} paddingHorizontal={16} paddingVertical={14} backgroundColor={color.enabled.adminBackground}>\n <Text caption2 color={colors.onBackground02}>\n {props.message.message}\n </Text>\n </Box>\n </Box>\n );\n};\n\nexport default AdminMessage;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAIA,OAAOC,GAAP,MAAgB,sBAAhB;AACA,OAAOC,IAAP,MAAiB,uBAAjB;AACA,OAAOC,aAAP,MAA0B,2BAA1B;;AAGA,MAAMC,YAAY,GAAIC,KAAD,IAA0D;EAC7E,MAAM;IAAEC;EAAF,IAAaH,aAAa,EAAhC;EACA,MAAMI,KAAK,GAAGD,MAAM,CAACE,EAAP,CAAUC,kBAAV,CAA6BC,OAA3C;EACA,oBACE,oBAAC,GAAD;IAAK,cAAc,EAAE,CAArB;IAAwB,iBAAiB,EAAE,EAA3C;IAA+C,eAAe,EAAEJ,MAAM,CAACK;EAAvE,gBACE,oBAAC,GAAD;IAAK,YAAY,EAAE,CAAnB;IAAsB,iBAAiB,EAAE,EAAzC;IAA6C,eAAe,EAAE,EAA9D;IAAkE,eAAe,EAAEJ,KAAK,CAACK,OAAN,CAAcC;EAAjG,gBACE,oBAAC,IAAD;IAAM,QAAQ,MAAd;IAAe,KAAK,EAAEP,MAAM,CAACQ;EAA7B,GACGT,KAAK,CAACU,OAAN,CAAcA,OADjB,CADF,CADF,CADF;AASD,CAZD;;AAcA,eAAeX,YAAf"}
@@ -0,0 +1,41 @@
1
+ import React from 'react';
2
+ import { getAvailableUriFromFileMessage } from '@sendbird/uikit-utils';
3
+ import Box from '../../components/Box';
4
+ import ImageWithPlaceholder from '../../components/ImageWithPlaceholder';
5
+ import PressBox from '../../components/PressBox';
6
+ import createStyleSheet from '../../styles/createStyleSheet';
7
+ import MessageContainer from './MessageContainer';
8
+
9
+ const ImageFileMessage = props => {
10
+ const {
11
+ onPress,
12
+ onLongPress,
13
+ ...rest
14
+ } = props;
15
+ const uri = getAvailableUriFromFileMessage(props.message);
16
+ return /*#__PURE__*/React.createElement(MessageContainer, rest, /*#__PURE__*/React.createElement(Box, {
17
+ borderRadius: 8,
18
+ overflow: 'hidden',
19
+ style: styles.container
20
+ }, /*#__PURE__*/React.createElement(PressBox, {
21
+ style: styles.container,
22
+ activeOpacity: 0.8,
23
+ onPress: onPress,
24
+ onLongPress: onLongPress
25
+ }, /*#__PURE__*/React.createElement(ImageWithPlaceholder, {
26
+ source: {
27
+ uri
28
+ },
29
+ width: '100%',
30
+ height: '100%'
31
+ }))));
32
+ };
33
+
34
+ const styles = createStyleSheet({
35
+ container: {
36
+ maxWidth: 296,
37
+ height: 196
38
+ }
39
+ });
40
+ export default ImageFileMessage;
41
+ //# sourceMappingURL=Message.file.image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","getAvailableUriFromFileMessage","Box","ImageWithPlaceholder","PressBox","createStyleSheet","MessageContainer","ImageFileMessage","props","onPress","onLongPress","rest","uri","message","styles","container","maxWidth","height"],"sources":["Message.file.image.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 ImageWithPlaceholder from '../../components/ImageWithPlaceholder';\nimport PressBox from '../../components/PressBox';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport MessageContainer from './MessageContainer';\nimport type { OpenChannelMessageProps } from './index';\n\nconst ImageFileMessage = (props: OpenChannelMessageProps<SendbirdFileMessage>) => {\n const { onPress, onLongPress, ...rest } = props;\n const uri = getAvailableUriFromFileMessage(props.message);\n return (\n <MessageContainer {...rest}>\n <Box borderRadius={8} overflow={'hidden'} style={styles.container}>\n <PressBox style={styles.container} activeOpacity={0.8} onPress={onPress} onLongPress={onLongPress}>\n <ImageWithPlaceholder source={{ uri }} width={'100%'} height={'100%'} />\n </PressBox>\n </Box>\n </MessageContainer>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n maxWidth: 296,\n height: 196,\n },\n});\n\nexport default ImageFileMessage;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAGA,SAASC,8BAAT,QAA+C,uBAA/C;AAEA,OAAOC,GAAP,MAAgB,sBAAhB;AACA,OAAOC,oBAAP,MAAiC,uCAAjC;AACA,OAAOC,QAAP,MAAqB,2BAArB;AACA,OAAOC,gBAAP,MAA6B,+BAA7B;AACA,OAAOC,gBAAP,MAA6B,oBAA7B;;AAGA,MAAMC,gBAAgB,GAAIC,KAAD,IAAyD;EAChF,MAAM;IAAEC,OAAF;IAAWC,WAAX;IAAwB,GAAGC;EAA3B,IAAoCH,KAA1C;EACA,MAAMI,GAAG,GAAGX,8BAA8B,CAACO,KAAK,CAACK,OAAP,CAA1C;EACA,oBACE,oBAAC,gBAAD,EAAsBF,IAAtB,eACE,oBAAC,GAAD;IAAK,YAAY,EAAE,CAAnB;IAAsB,QAAQ,EAAE,QAAhC;IAA0C,KAAK,EAAEG,MAAM,CAACC;EAAxD,gBACE,oBAAC,QAAD;IAAU,KAAK,EAAED,MAAM,CAACC,SAAxB;IAAmC,aAAa,EAAE,GAAlD;IAAuD,OAAO,EAAEN,OAAhE;IAAyE,WAAW,EAAEC;EAAtF,gBACE,oBAAC,oBAAD;IAAsB,MAAM,EAAE;MAAEE;IAAF,CAA9B;IAAuC,KAAK,EAAE,MAA9C;IAAsD,MAAM,EAAE;EAA9D,EADF,CADF,CADF,CADF;AASD,CAZD;;AAcA,MAAME,MAAM,GAAGT,gBAAgB,CAAC;EAC9BU,SAAS,EAAE;IACTC,QAAQ,EAAE,GADD;IAETC,MAAM,EAAE;EAFC;AADmB,CAAD,CAA/B;AAOA,eAAeV,gBAAf"}
@@ -0,0 +1,71 @@
1
+ import React from 'react';
2
+ import { getFileTypeFromMessage } from '@sendbird/uikit-utils';
3
+ import Box from '../../components/Box';
4
+ import Icon from '../../components/Icon';
5
+ import PressBox from '../../components/PressBox';
6
+ import Text from '../../components/Text';
7
+ import createStyleSheet from '../../styles/createStyleSheet';
8
+ import useUIKitTheme from '../../theme/useUIKitTheme';
9
+ import MessageContainer from './MessageContainer';
10
+ const iconMapper = {
11
+ audio: 'file-audio',
12
+ image: 'photo',
13
+ video: 'play',
14
+ file: 'file-document'
15
+ };
16
+
17
+ const FileMessage = props => {
18
+ const {
19
+ colors
20
+ } = useUIKitTheme();
21
+ const {
22
+ onPress,
23
+ onLongPress,
24
+ ...rest
25
+ } = props;
26
+ const type = getFileTypeFromMessage(props.message);
27
+ const color = colors.ui.openChannelMessage.default;
28
+ return /*#__PURE__*/React.createElement(MessageContainer, rest, /*#__PURE__*/React.createElement(PressBox, {
29
+ onPress: onPress,
30
+ onLongPress: onLongPress
31
+ }, _ref => {
32
+ var _props$strings;
33
+
34
+ let {
35
+ pressed
36
+ } = _ref;
37
+ return /*#__PURE__*/React.createElement(Box, {
38
+ padding: 8,
39
+ borderRadius: 8,
40
+ flexDirection: 'row',
41
+ alignItems: 'center',
42
+ justifyContent: 'flex-start',
43
+ style: {
44
+ backgroundColor: pressed ? color.pressed.bubbleBackground : color.enabled.bubbleBackground
45
+ }
46
+ }, /*#__PURE__*/React.createElement(Box, {
47
+ padding: 4,
48
+ marginRight: 8,
49
+ borderRadius: 8,
50
+ alignItems: 'flex-start',
51
+ backgroundColor: colors.background
52
+ }, /*#__PURE__*/React.createElement(Icon, {
53
+ icon: iconMapper[type],
54
+ size: 32
55
+ })), /*#__PURE__*/React.createElement(Text, {
56
+ body3: true,
57
+ numberOfLines: 1,
58
+ ellipsizeMode: 'middle',
59
+ color: color.enabled.textMsg,
60
+ style: styles.fileName
61
+ }, ((_props$strings = props.strings) === null || _props$strings === void 0 ? void 0 : _props$strings.fileName) || props.message.name));
62
+ }));
63
+ };
64
+
65
+ const styles = createStyleSheet({
66
+ fileName: {
67
+ flexShrink: 1
68
+ }
69
+ });
70
+ export default FileMessage;
71
+ //# sourceMappingURL=Message.file.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","getFileTypeFromMessage","Box","Icon","PressBox","Text","createStyleSheet","useUIKitTheme","MessageContainer","iconMapper","audio","image","video","file","FileMessage","props","colors","onPress","onLongPress","rest","type","message","color","ui","openChannelMessage","default","pressed","backgroundColor","bubbleBackground","enabled","background","textMsg","styles","fileName","strings","name","flexShrink"],"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\nconst iconMapper = { audio: 'file-audio', image: 'photo', video: 'play', file: 'file-document' } as const;\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 icon={iconMapper[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":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,SAA8BC,sBAA9B,QAA4D,uBAA5D;AAEA,OAAOC,GAAP,MAAgB,sBAAhB;AACA,OAAOC,IAAP,MAAiB,uBAAjB;AACA,OAAOC,QAAP,MAAqB,2BAArB;AACA,OAAOC,IAAP,MAAiB,uBAAjB;AACA,OAAOC,gBAAP,MAA6B,+BAA7B;AACA,OAAOC,aAAP,MAA0B,2BAA1B;AACA,OAAOC,gBAAP,MAA6B,oBAA7B;AAGA,MAAMC,UAAU,GAAG;EAAEC,KAAK,EAAE,YAAT;EAAuBC,KAAK,EAAE,OAA9B;EAAuCC,KAAK,EAAE,MAA9C;EAAsDC,IAAI,EAAE;AAA5D,CAAnB;;AAGA,MAAMC,WAAW,GAAIC,KAAD,IAAgE;EAClF,MAAM;IAAEC;EAAF,IAAaT,aAAa,EAAhC;EACA,MAAM;IAAEU,OAAF;IAAWC,WAAX;IAAwB,GAAGC;EAA3B,IAAoCJ,KAA1C;EACA,MAAMK,IAAI,GAAGnB,sBAAsB,CAACc,KAAK,CAACM,OAAP,CAAnC;EACA,MAAMC,KAAK,GAAGN,MAAM,CAACO,EAAP,CAAUC,kBAAV,CAA6BC,OAA3C;EAEA,oBACE,oBAAC,gBAAD,EAAsBN,IAAtB,eACE,oBAAC,QAAD;IAAU,OAAO,EAAEF,OAAnB;IAA4B,WAAW,EAAEC;EAAzC,GACG,QAAiB;IAAA;;IAAA,IAAhB;MAAEQ;IAAF,CAAgB;IAChB,oBACE,oBAAC,GAAD;MACE,OAAO,EAAE,CADX;MAEE,YAAY,EAAE,CAFhB;MAGE,aAAa,EAAE,KAHjB;MAIE,UAAU,EAAE,QAJd;MAKE,cAAc,EAAE,YALlB;MAME,KAAK,EAAE;QAAEC,eAAe,EAAED,OAAO,GAAGJ,KAAK,CAACI,OAAN,CAAcE,gBAAjB,GAAoCN,KAAK,CAACO,OAAN,CAAcD;MAA5E;IANT,gBAQE,oBAAC,GAAD;MACE,OAAO,EAAE,CADX;MAEE,WAAW,EAAE,CAFf;MAGE,YAAY,EAAE,CAHhB;MAIE,UAAU,EAAE,YAJd;MAKE,eAAe,EAAEZ,MAAM,CAACc;IAL1B,gBAOE,oBAAC,IAAD;MAAM,IAAI,EAAErB,UAAU,CAACW,IAAD,CAAtB;MAA8B,IAAI,EAAE;IAApC,EAPF,CARF,eAiBE,oBAAC,IAAD;MACE,KAAK,MADP;MAEE,aAAa,EAAE,CAFjB;MAGE,aAAa,EAAE,QAHjB;MAIE,KAAK,EAAEE,KAAK,CAACO,OAAN,CAAcE,OAJvB;MAKE,KAAK,EAAEC,MAAM,CAACC;IALhB,GAOG,mBAAAlB,KAAK,CAACmB,OAAN,kEAAeD,QAAf,KAA2BlB,KAAK,CAACM,OAAN,CAAcc,IAP5C,CAjBF,CADF;EA6BD,CA/BH,CADF,CADF;AAqCD,CA3CD;;AA6CA,MAAMH,MAAM,GAAG1B,gBAAgB,CAAC;EAC9B2B,QAAQ,EAAE;IACRG,UAAU,EAAE;EADJ;AADoB,CAAD,CAA/B;AAKA,eAAetB,WAAf"}
@@ -0,0 +1,112 @@
1
+ import React, { useEffect, useRef, useState } from 'react';
2
+ import { getAvailableUriFromFileMessage } from '@sendbird/uikit-utils';
3
+ import Box from '../../components/Box';
4
+ import Icon from '../../components/Icon';
5
+ import ImageWithPlaceholder from '../../components/ImageWithPlaceholder';
6
+ import PressBox from '../../components/PressBox';
7
+ import createStyleSheet from '../../styles/createStyleSheet';
8
+ import useUIKitTheme from '../../theme/useUIKitTheme';
9
+ import MessageContainer from './MessageContainer';
10
+
11
+ const VideoFileMessage = props => {
12
+ const {
13
+ colors,
14
+ palette
15
+ } = useUIKitTheme();
16
+ const {
17
+ onPress,
18
+ onLongPress,
19
+ ...rest
20
+ } = props;
21
+ const uri = getAvailableUriFromFileMessage(props.message);
22
+ const {
23
+ thumbnail,
24
+ loading
25
+ } = useRetry(() => props.fetchThumbnailFromVideoSource(uri));
26
+ return /*#__PURE__*/React.createElement(MessageContainer, rest, /*#__PURE__*/React.createElement(PressBox, {
27
+ style: styles.container,
28
+ activeOpacity: 0.8,
29
+ onPress: onPress,
30
+ onLongPress: onLongPress
31
+ }, /*#__PURE__*/React.createElement(Box, {
32
+ borderRadius: 8,
33
+ overflow: 'hidden',
34
+ style: styles.container
35
+ }, loading ? /*#__PURE__*/React.createElement(Box, {
36
+ backgroundColor: colors.onBackground04,
37
+ style: {
38
+ width: '100%',
39
+ height: '100%'
40
+ }
41
+ }) : /*#__PURE__*/React.createElement(ImageWithPlaceholder, {
42
+ source: {
43
+ uri: thumbnail ?? 'invalid-image'
44
+ },
45
+ width: '100%',
46
+ height: '100%'
47
+ }), (loading || thumbnail !== null) && /*#__PURE__*/React.createElement(Box, {
48
+ style: styles.iconContainer,
49
+ alignItems: 'center',
50
+ justifyContent: 'center'
51
+ }, /*#__PURE__*/React.createElement(Icon, {
52
+ icon: 'play',
53
+ size: 28,
54
+ color: palette.onBackgroundLight02,
55
+ containerStyle: [styles.playIcon, {
56
+ backgroundColor: palette.onBackgroundDark01
57
+ }]
58
+ })))));
59
+ };
60
+
61
+ const useRetry = function (fetch) {
62
+ let retryCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;
63
+ const [state, setState] = useState({
64
+ thumbnail: null,
65
+ loading: true
66
+ });
67
+ const retryCountRef = useRef(0);
68
+ const retryTimeoutRef = useRef();
69
+ const fetchThumbnail = useRef(fetch);
70
+ fetchThumbnail.current = fetch;
71
+ useEffect(() => {
72
+ if (!state.thumbnail) {
73
+ const reloadReservation = () => {
74
+ if (retryCountRef.current < retryCount) {
75
+ retryTimeoutRef.current = setTimeout(() => {
76
+ retryCountRef.current++;
77
+ reloadReservation();
78
+ fetchThumbnail.current().then(result => {
79
+ setState({
80
+ loading: false,
81
+ thumbnail: (result === null || result === void 0 ? void 0 : result.path) ?? null
82
+ });
83
+ });
84
+ }, retryCountRef.current * 5000);
85
+ }
86
+ };
87
+
88
+ return reloadReservation();
89
+ } else {
90
+ return clearTimeout(retryTimeoutRef.current);
91
+ }
92
+ }, [state.thumbnail]);
93
+ return state;
94
+ };
95
+
96
+ const styles = createStyleSheet({
97
+ container: {
98
+ maxWidth: 296,
99
+ height: 196
100
+ },
101
+ iconContainer: {
102
+ position: 'absolute',
103
+ width: '100%',
104
+ height: '100%'
105
+ },
106
+ playIcon: {
107
+ padding: 10,
108
+ borderRadius: 50
109
+ }
110
+ });
111
+ export default VideoFileMessage;
112
+ //# sourceMappingURL=Message.file.video.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","useRef","useState","getAvailableUriFromFileMessage","Box","Icon","ImageWithPlaceholder","PressBox","createStyleSheet","useUIKitTheme","MessageContainer","VideoFileMessage","props","colors","palette","onPress","onLongPress","rest","uri","message","thumbnail","loading","useRetry","fetchThumbnailFromVideoSource","styles","container","onBackground04","width","height","iconContainer","onBackgroundLight02","playIcon","backgroundColor","onBackgroundDark01","fetch","retryCount","state","setState","retryCountRef","retryTimeoutRef","fetchThumbnail","current","reloadReservation","setTimeout","then","result","path","clearTimeout","maxWidth","position","padding","borderRadius"],"sources":["Message.file.video.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\n\nimport type { SendbirdFileMessage } from '@sendbird/uikit-utils';\nimport { getAvailableUriFromFileMessage } from '@sendbird/uikit-utils';\n\nimport Box from '../../components/Box';\nimport Icon from '../../components/Icon';\nimport ImageWithPlaceholder from '../../components/ImageWithPlaceholder';\nimport PressBox from '../../components/PressBox';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport MessageContainer from './MessageContainer';\nimport type { OpenChannelMessageProps } from './index';\n\ntype Props = {\n fetchThumbnailFromVideoSource: (uri: string) => Promise<{ path: string } | null>;\n};\nconst VideoFileMessage = (props: OpenChannelMessageProps<SendbirdFileMessage, Props>) => {\n const { colors, palette } = useUIKitTheme();\n const { onPress, onLongPress, ...rest } = props;\n const uri = getAvailableUriFromFileMessage(props.message);\n const { thumbnail, loading } = useRetry(() => props.fetchThumbnailFromVideoSource(uri));\n\n return (\n <MessageContainer {...rest}>\n <PressBox style={styles.container} activeOpacity={0.8} onPress={onPress} onLongPress={onLongPress}>\n <Box borderRadius={8} overflow={'hidden'} style={styles.container}>\n {loading ? (\n <Box backgroundColor={colors.onBackground04} style={{ width: '100%', height: '100%' }} />\n ) : (\n <ImageWithPlaceholder source={{ uri: thumbnail ?? 'invalid-image' }} width={'100%'} height={'100%'} />\n )}\n\n {(loading || thumbnail !== null) && (\n <Box style={styles.iconContainer} alignItems={'center'} justifyContent={'center'}>\n <Icon\n icon={'play'}\n size={28}\n color={palette.onBackgroundLight02}\n containerStyle={[styles.playIcon, { backgroundColor: palette.onBackgroundDark01 }]}\n />\n </Box>\n )}\n </Box>\n </PressBox>\n </MessageContainer>\n );\n};\nconst useRetry = (fetch: () => Promise<{ path: string } | null>, retryCount = 5) => {\n const [state, setState] = useState({ thumbnail: null as null | string, loading: true });\n const retryCountRef = useRef(0);\n const retryTimeoutRef = useRef<NodeJS.Timeout>();\n const fetchThumbnail = useRef(fetch);\n fetchThumbnail.current = fetch;\n\n useEffect(() => {\n if (!state.thumbnail) {\n const reloadReservation = () => {\n if (retryCountRef.current < retryCount) {\n retryTimeoutRef.current = setTimeout(() => {\n retryCountRef.current++;\n reloadReservation();\n fetchThumbnail.current().then((result) => {\n setState({ loading: false, thumbnail: result?.path ?? null });\n });\n }, retryCountRef.current * 5000);\n }\n };\n\n return reloadReservation();\n } else {\n return clearTimeout(retryTimeoutRef.current);\n }\n }, [state.thumbnail]);\n\n return state;\n};\nconst styles = createStyleSheet({\n container: {\n maxWidth: 296,\n height: 196,\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":"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"}
@@ -0,0 +1,41 @@
1
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
3
+ import React from 'react';
4
+ import PressBox from '../../components/PressBox';
5
+ import Text from '../../components/Text';
6
+ import useUIKitTheme from '../../theme/useUIKitTheme';
7
+ import MessageContainer from './MessageContainer';
8
+
9
+ const UnknownMessage = props => {
10
+ const {
11
+ colors
12
+ } = useUIKitTheme();
13
+ const {
14
+ onPress,
15
+ onLongPress,
16
+ ...rest
17
+ } = props;
18
+ const color = colors.ui.openChannelMessage.default;
19
+ return /*#__PURE__*/React.createElement(PressBox, {
20
+ onPress: onPress,
21
+ onLongPress: onLongPress
22
+ }, _ref => {
23
+ var _props$strings, _props$strings2;
24
+
25
+ let {
26
+ pressed
27
+ } = _ref;
28
+ return /*#__PURE__*/React.createElement(MessageContainer, _extends({
29
+ pressed: pressed
30
+ }, rest), /*#__PURE__*/React.createElement(Text, {
31
+ body3: true,
32
+ color: color.enabled.textMsg
33
+ }, ((_props$strings = props.strings) === null || _props$strings === void 0 ? void 0 : _props$strings.unknownTitle) ?? '(Unknown message type)'), /*#__PURE__*/React.createElement(Text, {
34
+ body3: true,
35
+ color: color.enabled.textMsgPostfix
36
+ }, ((_props$strings2 = props.strings) === null || _props$strings2 === void 0 ? void 0 : _props$strings2.unknownDescription) ?? 'Cannot read this message.'));
37
+ });
38
+ };
39
+
40
+ export default UnknownMessage;
41
+ //# sourceMappingURL=Message.unknown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","PressBox","Text","useUIKitTheme","MessageContainer","UnknownMessage","props","colors","onPress","onLongPress","rest","color","ui","openChannelMessage","default","pressed","enabled","textMsg","strings","unknownTitle","textMsgPostfix","unknownDescription"],"sources":["Message.unknown.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { SendbirdMessage } from '@sendbird/uikit-utils';\n\nimport PressBox from '../../components/PressBox';\nimport Text from '../../components/Text';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport MessageContainer from './MessageContainer';\nimport type { OpenChannelMessageProps } from './index';\n\nconst UnknownMessage = (props: OpenChannelMessageProps<SendbirdMessage>) => {\n const { colors } = useUIKitTheme();\n const { onPress, onLongPress, ...rest } = props;\n const color = colors.ui.openChannelMessage.default;\n return (\n <PressBox onPress={onPress} onLongPress={onLongPress}>\n {({ pressed }) => (\n <MessageContainer pressed={pressed} {...rest}>\n <Text body3 color={color.enabled.textMsg}>\n {props.strings?.unknownTitle ?? '(Unknown message type)'}\n </Text>\n <Text body3 color={color.enabled.textMsgPostfix}>\n {props.strings?.unknownDescription ?? 'Cannot read this message.'}\n </Text>\n </MessageContainer>\n )}\n </PressBox>\n );\n};\n\nexport default UnknownMessage;\n"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAIA,OAAOC,QAAP,MAAqB,2BAArB;AACA,OAAOC,IAAP,MAAiB,uBAAjB;AACA,OAAOC,aAAP,MAA0B,2BAA1B;AACA,OAAOC,gBAAP,MAA6B,oBAA7B;;AAGA,MAAMC,cAAc,GAAIC,KAAD,IAAqD;EAC1E,MAAM;IAAEC;EAAF,IAAaJ,aAAa,EAAhC;EACA,MAAM;IAAEK,OAAF;IAAWC,WAAX;IAAwB,GAAGC;EAA3B,IAAoCJ,KAA1C;EACA,MAAMK,KAAK,GAAGJ,MAAM,CAACK,EAAP,CAAUC,kBAAV,CAA6BC,OAA3C;EACA,oBACE,oBAAC,QAAD;IAAU,OAAO,EAAEN,OAAnB;IAA4B,WAAW,EAAEC;EAAzC,GACG;IAAA;;IAAA,IAAC;MAAEM;IAAF,CAAD;IAAA,oBACC,oBAAC,gBAAD;MAAkB,OAAO,EAAEA;IAA3B,GAAwCL,IAAxC,gBACE,oBAAC,IAAD;MAAM,KAAK,MAAX;MAAY,KAAK,EAAEC,KAAK,CAACK,OAAN,CAAcC;IAAjC,GACG,mBAAAX,KAAK,CAACY,OAAN,kEAAeC,YAAf,KAA+B,wBADlC,CADF,eAIE,oBAAC,IAAD;MAAM,KAAK,MAAX;MAAY,KAAK,EAAER,KAAK,CAACK,OAAN,CAAcI;IAAjC,GACG,oBAAAd,KAAK,CAACY,OAAN,oEAAeG,kBAAf,KAAqC,2BADxC,CAJF,CADD;EAAA,CADH,CADF;AAcD,CAlBD;;AAoBA,eAAehB,cAAf"}
@@ -0,0 +1,67 @@
1
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
3
+ import React from 'react';
4
+ import { urlRegexStrict } from '@sendbird/uikit-utils';
5
+ import PressBox from '../../components/PressBox';
6
+ import RegexText from '../../components/RegexText';
7
+ import Text from '../../components/Text';
8
+ import useUIKitTheme from '../../theme/useUIKitTheme';
9
+ import MessageContainer from './MessageContainer';
10
+
11
+ const UserMessage = props => {
12
+ const {
13
+ colors
14
+ } = useUIKitTheme();
15
+ const {
16
+ onPress,
17
+ onLongPress,
18
+ onPressURL,
19
+ ...rest
20
+ } = props;
21
+ const color = colors.ui.openChannelMessage.default;
22
+ return /*#__PURE__*/React.createElement(PressBox, {
23
+ onPress: onPress,
24
+ onLongPress: onLongPress
25
+ }, _ref => {
26
+ var _props$strings;
27
+
28
+ let {
29
+ pressed
30
+ } = _ref;
31
+ return /*#__PURE__*/React.createElement(MessageContainer, _extends({
32
+ pressed: pressed
33
+ }, rest), /*#__PURE__*/React.createElement(Text, {
34
+ body3: true,
35
+ color: color.enabled.textMsg
36
+ }, /*#__PURE__*/React.createElement(RegexText, {
37
+ body3: true,
38
+ color: color.enabled.textMsg,
39
+ patterns: [{
40
+ regex: urlRegexStrict,
41
+
42
+ replacer(_ref2) {
43
+ let {
44
+ match,
45
+ parentProps,
46
+ keyPrefix,
47
+ index
48
+ } = _ref2;
49
+ return /*#__PURE__*/React.createElement(Text, _extends({}, parentProps, {
50
+ key: `${keyPrefix}-${index}`,
51
+ onPress: onPressURL,
52
+ onLongPress: onLongPress,
53
+ color: colors.primary,
54
+ style: parentProps === null || parentProps === void 0 ? void 0 : parentProps.style
55
+ }), match);
56
+ }
57
+
58
+ }]
59
+ }, props.message.message), Boolean(props.message.updatedAt) && /*#__PURE__*/React.createElement(Text, {
60
+ body3: true,
61
+ color: color.enabled.textMsgPostfix
62
+ }, ((_props$strings = props.strings) === null || _props$strings === void 0 ? void 0 : _props$strings.edited) ?? ' (edited)')));
63
+ });
64
+ };
65
+
66
+ export default UserMessage;
67
+ //# sourceMappingURL=Message.user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","urlRegexStrict","PressBox","RegexText","Text","useUIKitTheme","MessageContainer","UserMessage","props","colors","onPress","onLongPress","onPressURL","rest","color","ui","openChannelMessage","default","pressed","enabled","textMsg","regex","replacer","match","parentProps","keyPrefix","index","primary","style","message","Boolean","updatedAt","textMsgPostfix","strings","edited"],"sources":["Message.user.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { SendbirdUserMessage } from '@sendbird/uikit-utils';\nimport { urlRegexStrict } from '@sendbird/uikit-utils';\n\nimport PressBox from '../../components/PressBox';\nimport RegexText from '../../components/RegexText';\nimport Text from '../../components/Text';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport MessageContainer from './MessageContainer';\nimport type { OpenChannelMessageProps } from './index';\n\ntype Props = {};\nconst UserMessage = (props: OpenChannelMessageProps<SendbirdUserMessage, Props>) => {\n const { colors } = useUIKitTheme();\n const { onPress, onLongPress, onPressURL, ...rest } = props;\n const color = colors.ui.openChannelMessage.default;\n\n return (\n <PressBox onPress={onPress} onLongPress={onLongPress}>\n {({ pressed }) => (\n <MessageContainer pressed={pressed} {...rest}>\n <Text body3 color={color.enabled.textMsg}>\n <RegexText\n body3\n color={color.enabled.textMsg}\n patterns={[\n {\n regex: urlRegexStrict,\n replacer({ match, parentProps, keyPrefix, index }) {\n return (\n <Text\n {...parentProps}\n key={`${keyPrefix}-${index}`}\n onPress={onPressURL}\n onLongPress={onLongPress}\n color={colors.primary}\n style={parentProps?.style}\n >\n {match}\n </Text>\n );\n },\n },\n ]}\n >\n {props.message.message}\n </RegexText>\n {Boolean(props.message.updatedAt) && (\n <Text body3 color={color.enabled.textMsgPostfix}>\n {props.strings?.edited ?? ' (edited)'}\n </Text>\n )}\n </Text>\n </MessageContainer>\n )}\n </PressBox>\n );\n};\n\nexport default UserMessage;\n"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAGA,SAASC,cAAT,QAA+B,uBAA/B;AAEA,OAAOC,QAAP,MAAqB,2BAArB;AACA,OAAOC,SAAP,MAAsB,4BAAtB;AACA,OAAOC,IAAP,MAAiB,uBAAjB;AACA,OAAOC,aAAP,MAA0B,2BAA1B;AACA,OAAOC,gBAAP,MAA6B,oBAA7B;;AAIA,MAAMC,WAAW,GAAIC,KAAD,IAAgE;EAClF,MAAM;IAAEC;EAAF,IAAaJ,aAAa,EAAhC;EACA,MAAM;IAAEK,OAAF;IAAWC,WAAX;IAAwBC,UAAxB;IAAoC,GAAGC;EAAvC,IAAgDL,KAAtD;EACA,MAAMM,KAAK,GAAGL,MAAM,CAACM,EAAP,CAAUC,kBAAV,CAA6BC,OAA3C;EAEA,oBACE,oBAAC,QAAD;IAAU,OAAO,EAAEP,OAAnB;IAA4B,WAAW,EAAEC;EAAzC,GACG;IAAA;;IAAA,IAAC;MAAEO;IAAF,CAAD;IAAA,oBACC,oBAAC,gBAAD;MAAkB,OAAO,EAAEA;IAA3B,GAAwCL,IAAxC,gBACE,oBAAC,IAAD;MAAM,KAAK,MAAX;MAAY,KAAK,EAAEC,KAAK,CAACK,OAAN,CAAcC;IAAjC,gBACE,oBAAC,SAAD;MACE,KAAK,MADP;MAEE,KAAK,EAAEN,KAAK,CAACK,OAAN,CAAcC,OAFvB;MAGE,QAAQ,EAAE,CACR;QACEC,KAAK,EAAEpB,cADT;;QAEEqB,QAAQ,QAA2C;UAAA,IAA1C;YAAEC,KAAF;YAASC,WAAT;YAAsBC,SAAtB;YAAiCC;UAAjC,CAA0C;UACjD,oBACE,oBAAC,IAAD,eACMF,WADN;YAEE,GAAG,EAAG,GAAEC,SAAU,IAAGC,KAAM,EAF7B;YAGE,OAAO,EAAEd,UAHX;YAIE,WAAW,EAAED,WAJf;YAKE,KAAK,EAAEF,MAAM,CAACkB,OALhB;YAME,KAAK,EAAEH,WAAF,aAAEA,WAAF,uBAAEA,WAAW,CAAEI;UANtB,IAQGL,KARH,CADF;QAYD;;MAfH,CADQ;IAHZ,GAuBGf,KAAK,CAACqB,OAAN,CAAcA,OAvBjB,CADF,EA0BGC,OAAO,CAACtB,KAAK,CAACqB,OAAN,CAAcE,SAAf,CAAP,iBACC,oBAAC,IAAD;MAAM,KAAK,MAAX;MAAY,KAAK,EAAEjB,KAAK,CAACK,OAAN,CAAca;IAAjC,GACG,mBAAAxB,KAAK,CAACyB,OAAN,kEAAeC,MAAf,KAAyB,WAD5B,CA3BJ,CADF,CADD;EAAA,CADH,CADF;AAwCD,CA7CD;;AA+CA,eAAe3B,WAAf"}
@@ -0,0 +1,121 @@
1
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
3
+ import React from 'react';
4
+ import { urlRegexRough } from '@sendbird/uikit-utils';
5
+ import Box from '../../components/Box';
6
+ import ImageWithPlaceholder from '../../components/ImageWithPlaceholder';
7
+ import PressBox from '../../components/PressBox';
8
+ import RegexText from '../../components/RegexText';
9
+ import Text from '../../components/Text';
10
+ import createStyleSheet from '../../styles/createStyleSheet';
11
+ import useUIKitTheme from '../../theme/useUIKitTheme';
12
+ import MessageContainer from './MessageContainer';
13
+
14
+ const OpenGraphUserMessage = props => {
15
+ const {
16
+ colors
17
+ } = useUIKitTheme();
18
+ const {
19
+ onPress,
20
+ onLongPress,
21
+ onPressURL,
22
+ ...rest
23
+ } = props;
24
+ const color = colors.ui.openChannelMessage.default;
25
+ return /*#__PURE__*/React.createElement(Box, null, /*#__PURE__*/React.createElement(PressBox, {
26
+ onPress: onPress,
27
+ onLongPress: onLongPress
28
+ }, _ref => {
29
+ var _props$strings;
30
+
31
+ let {
32
+ pressed
33
+ } = _ref;
34
+ return /*#__PURE__*/React.createElement(MessageContainer, _extends({
35
+ pressed: pressed
36
+ }, rest), /*#__PURE__*/React.createElement(Text, {
37
+ body3: true,
38
+ color: color.enabled.textMsg
39
+ }, /*#__PURE__*/React.createElement(RegexText, {
40
+ body3: true,
41
+ color: color.enabled.textMsg,
42
+ patterns: [{
43
+ regex: urlRegexRough,
44
+
45
+ replacer(_ref2) {
46
+ let {
47
+ match,
48
+ parentProps,
49
+ keyPrefix,
50
+ index
51
+ } = _ref2;
52
+ return /*#__PURE__*/React.createElement(Text, _extends({}, parentProps, {
53
+ key: `${keyPrefix}-${index}`,
54
+ onPress: onPressURL,
55
+ onLongPress: onLongPress,
56
+ color: colors.primary,
57
+ style: parentProps === null || parentProps === void 0 ? void 0 : parentProps.style
58
+ }), match);
59
+ }
60
+
61
+ }]
62
+ }, props.message.message), Boolean(props.message.updatedAt) && /*#__PURE__*/React.createElement(Text, {
63
+ body3: true,
64
+ color: color.enabled.textMsgPostfix
65
+ }, ((_props$strings = props.strings) === null || _props$strings === void 0 ? void 0 : _props$strings.edited) ?? ' (edited)')));
66
+ }), props.message.ogMetaData && /*#__PURE__*/React.createElement(MessageContainer, _extends({}, rest, {
67
+ grouped: true
68
+ }), /*#__PURE__*/React.createElement(PressBox, {
69
+ style: styles.ogContainer,
70
+ onPress: onPressURL,
71
+ onLongPress: onLongPress
72
+ }, _ref3 => {
73
+ let {
74
+ pressed
75
+ } = _ref3;
76
+ return props.message.ogMetaData && /*#__PURE__*/React.createElement(Box, {
77
+ padding: 8,
78
+ borderRadius: 8,
79
+ style: styles.ogContainer,
80
+ backgroundColor: pressed ? color.pressed.bubbleBackground : color.enabled.bubbleBackground
81
+ }, /*#__PURE__*/React.createElement(Text, {
82
+ numberOfLines: 1,
83
+ caption2: true,
84
+ color: colors.onBackground02,
85
+ style: styles.ogUrl
86
+ }, props.message.ogMetaData.url), /*#__PURE__*/React.createElement(Text, {
87
+ numberOfLines: 2,
88
+ body2: true,
89
+ color: colors.primary,
90
+ style: styles.ogTitle
91
+ }, props.message.ogMetaData.title), Boolean(props.message.ogMetaData.description) && /*#__PURE__*/React.createElement(Text, {
92
+ numberOfLines: 2,
93
+ caption2: true,
94
+ color: colors.onBackground01
95
+ }, props.message.ogMetaData.description), Boolean(props.message.ogMetaData.defaultImage) && /*#__PURE__*/React.createElement(ImageWithPlaceholder, {
96
+ style: styles.ogImage,
97
+ source: {
98
+ uri: props.message.ogMetaData.defaultImage.url
99
+ }
100
+ }));
101
+ })));
102
+ };
103
+
104
+ const styles = createStyleSheet({
105
+ ogContainer: {
106
+ maxWidth: 296
107
+ },
108
+ ogUrl: {
109
+ marginBottom: 4
110
+ },
111
+ ogTitle: {
112
+ marginBottom: 8
113
+ },
114
+ ogImage: {
115
+ width: '100%',
116
+ height: 156,
117
+ marginTop: 12
118
+ }
119
+ });
120
+ export default OpenGraphUserMessage;
121
+ //# sourceMappingURL=Message.user.og.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","urlRegexRough","Box","ImageWithPlaceholder","PressBox","RegexText","Text","createStyleSheet","useUIKitTheme","MessageContainer","OpenGraphUserMessage","props","colors","onPress","onLongPress","onPressURL","rest","color","ui","openChannelMessage","default","pressed","enabled","textMsg","regex","replacer","match","parentProps","keyPrefix","index","primary","style","message","Boolean","updatedAt","textMsgPostfix","strings","edited","ogMetaData","styles","ogContainer","bubbleBackground","onBackground02","ogUrl","url","ogTitle","title","description","onBackground01","defaultImage","ogImage","uri","maxWidth","marginBottom","width","height","marginTop"],"sources":["Message.user.og.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { SendbirdUserMessage } from '@sendbird/uikit-utils';\nimport { urlRegexRough } from '@sendbird/uikit-utils';\n\nimport Box from '../../components/Box';\nimport ImageWithPlaceholder from '../../components/ImageWithPlaceholder';\nimport PressBox from '../../components/PressBox';\nimport RegexText from '../../components/RegexText';\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 OpenGraphUserMessage = (props: OpenChannelMessageProps<SendbirdUserMessage, Props>) => {\n const { colors } = useUIKitTheme();\n const { onPress, onLongPress, onPressURL, ...rest } = props;\n const color = colors.ui.openChannelMessage.default;\n\n return (\n <Box>\n <PressBox onPress={onPress} onLongPress={onLongPress}>\n {({ pressed }) => (\n <MessageContainer pressed={pressed} {...rest}>\n <Text body3 color={color.enabled.textMsg}>\n <RegexText\n body3\n color={color.enabled.textMsg}\n patterns={[\n {\n regex: urlRegexRough,\n replacer({ match, parentProps, keyPrefix, index }) {\n return (\n <Text\n {...parentProps}\n key={`${keyPrefix}-${index}`}\n onPress={onPressURL}\n onLongPress={onLongPress}\n color={colors.primary}\n style={parentProps?.style}\n >\n {match}\n </Text>\n );\n },\n },\n ]}\n >\n {props.message.message}\n </RegexText>\n {Boolean(props.message.updatedAt) && (\n <Text body3 color={color.enabled.textMsgPostfix}>\n {props.strings?.edited ?? ' (edited)'}\n </Text>\n )}\n </Text>\n </MessageContainer>\n )}\n </PressBox>\n {props.message.ogMetaData && (\n <MessageContainer {...rest} grouped>\n <PressBox style={styles.ogContainer} onPress={onPressURL} onLongPress={onLongPress}>\n {({ pressed }) =>\n props.message.ogMetaData && (\n <Box\n padding={8}\n borderRadius={8}\n style={styles.ogContainer}\n backgroundColor={pressed ? color.pressed.bubbleBackground : color.enabled.bubbleBackground}\n >\n <Text numberOfLines={1} caption2 color={colors.onBackground02} style={styles.ogUrl}>\n {props.message.ogMetaData.url}\n </Text>\n\n <Text numberOfLines={2} body2 color={colors.primary} style={styles.ogTitle}>\n {props.message.ogMetaData.title}\n </Text>\n\n {Boolean(props.message.ogMetaData.description) && (\n <Text numberOfLines={2} caption2 color={colors.onBackground01}>\n {props.message.ogMetaData.description}\n </Text>\n )}\n\n {Boolean(props.message.ogMetaData.defaultImage) && (\n <ImageWithPlaceholder\n style={styles.ogImage}\n source={{ uri: props.message.ogMetaData.defaultImage.url }}\n />\n )}\n </Box>\n )\n }\n </PressBox>\n </MessageContainer>\n )}\n </Box>\n );\n};\n\nconst styles = createStyleSheet({\n ogContainer: {\n maxWidth: 296,\n },\n ogUrl: {\n marginBottom: 4,\n },\n ogTitle: {\n marginBottom: 8,\n },\n ogImage: {\n width: '100%',\n height: 156,\n marginTop: 12,\n },\n});\n\nexport default OpenGraphUserMessage;\n"],"mappings":"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"}