@sendbird/uikit-react-native-foundation 2.3.0 → 2.4.1

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 @@
1
+ {"version":3,"names":["OpenGraphUserMessage","props","colors","useUIKitTheme","onPress","onLongPress","onPressURL","rest","color","ui","openChannelMessage","default","pressed","enabled","textMsg","regex","urlRegexRough","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","createStyleSheet","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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"}
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _message = require("@sendbird/chat/message");
11
+
12
+ var _uikitUtils = require("@sendbird/uikit-utils");
13
+
14
+ var _Box = _interopRequireDefault(require("../../components/Box"));
15
+
16
+ var _Icon = _interopRequireDefault(require("../../components/Icon"));
17
+
18
+ var _PressBox = _interopRequireDefault(require("../../components/PressBox"));
19
+
20
+ var _Text = _interopRequireDefault(require("../../components/Text"));
21
+
22
+ var _createStyleSheet = _interopRequireDefault(require("../../styles/createStyleSheet"));
23
+
24
+ var _useUIKitTheme = _interopRequireDefault(require("../../theme/useUIKitTheme"));
25
+
26
+ var _Avatar = _interopRequireDefault(require("../Avatar"));
27
+
28
+ var _LoadingSpinner = _interopRequireDefault(require("../LoadingSpinner"));
29
+
30
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
+
32
+ const MessageContainer = _ref => {
33
+ var _props$strings, _props$strings2;
34
+
35
+ let {
36
+ children,
37
+ channel,
38
+ grouped,
39
+ pressed,
40
+ ...props
41
+ } = _ref;
42
+ const {
43
+ colors
44
+ } = (0, _useUIKitTheme.default)();
45
+ const color = colors.ui.openChannelMessage.default;
46
+
47
+ const renderSendingStatus = () => {
48
+ if (!('sendingStatus' in props.message)) return null;
49
+
50
+ switch (props.message.sendingStatus) {
51
+ case _message.SendingStatus.PENDING:
52
+ {
53
+ return /*#__PURE__*/_react.default.createElement(SendingStatusContainer, null, /*#__PURE__*/_react.default.createElement(_LoadingSpinner.default, {
54
+ color: colors.primary,
55
+ size: 16
56
+ }));
57
+ }
58
+
59
+ case _message.SendingStatus.FAILED:
60
+ {
61
+ return /*#__PURE__*/_react.default.createElement(SendingStatusContainer, null, /*#__PURE__*/_react.default.createElement(_Icon.default, {
62
+ icon: 'error',
63
+ color: colors.error,
64
+ size: 16
65
+ }));
66
+ }
67
+
68
+ default:
69
+ {
70
+ return null;
71
+ }
72
+ }
73
+ };
74
+
75
+ return /*#__PURE__*/_react.default.createElement(_Box.default, {
76
+ flexDirection: 'row',
77
+ paddingVertical: grouped ? 5 : 6,
78
+ paddingLeft: 12,
79
+ paddingRight: 12,
80
+ backgroundColor: pressed ? color.pressed.background : color.enabled.background
81
+ }, /*#__PURE__*/_react.default.createElement(_Box.default, {
82
+ marginRight: 12
83
+ }, !grouped && 'sender' in props.message ? /*#__PURE__*/_react.default.createElement(_PressBox.default, {
84
+ onPress: props.onPressAvatar
85
+ }, /*#__PURE__*/_react.default.createElement(_Avatar.default, {
86
+ size: styles.avatar.width,
87
+ uri: props.message.sender.profileUrl
88
+ })) : /*#__PURE__*/_react.default.createElement(_Box.default, {
89
+ style: styles.avatar
90
+ })), /*#__PURE__*/_react.default.createElement(_Box.default, {
91
+ flexShrink: 1,
92
+ flex: 1,
93
+ flexDirection: 'column',
94
+ alignItems: 'flex-start'
95
+ }, !grouped && 'sender' in props.message && /*#__PURE__*/_react.default.createElement(_Box.default, {
96
+ flexDirection: 'row',
97
+ alignItems: 'center',
98
+ marginBottom: 2
99
+ }, /*#__PURE__*/_react.default.createElement(_Box.default, {
100
+ marginRight: 4,
101
+ flexShrink: 1
102
+ }, /*#__PURE__*/_react.default.createElement(_Text.default, {
103
+ caption1: true,
104
+ ellipsizeMode: 'middle',
105
+ numberOfLines: 1,
106
+ color: channel.isOperator(props.message.sender.userId) ? color.enabled.textOperator : color.enabled.textSenderName
107
+ }, ((_props$strings = props.strings) === null || _props$strings === void 0 ? void 0 : _props$strings.senderName) ?? props.message.sender.nickname)), /*#__PURE__*/_react.default.createElement(_Box.default, null, /*#__PURE__*/_react.default.createElement(_Text.default, {
108
+ caption4: true,
109
+ color: color.enabled.textTime
110
+ }, ((_props$strings2 = props.strings) === null || _props$strings2 === void 0 ? void 0 : _props$strings2.sentDate) ?? (0, _uikitUtils.getMessageTimeFormat)(new Date(props.message.createdAt))))), /*#__PURE__*/_react.default.createElement(_Box.default, {
111
+ style: styles.message
112
+ }, children), renderSendingStatus()));
113
+ };
114
+
115
+ const SendingStatusContainer = _ref2 => {
116
+ let {
117
+ children
118
+ } = _ref2;
119
+ return /*#__PURE__*/_react.default.createElement(_Box.default, {
120
+ flexDirection: 'row'
121
+ }, /*#__PURE__*/_react.default.createElement(_Box.default, {
122
+ marginTop: 2
123
+ }, children));
124
+ };
125
+
126
+ const styles = (0, _createStyleSheet.default)({
127
+ avatar: {
128
+ width: 28
129
+ },
130
+ message: {
131
+ width: '100%'
132
+ }
133
+ });
134
+ var _default = MessageContainer;
135
+ exports.default = _default;
136
+ //# sourceMappingURL=MessageContainer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["MessageContainer","children","channel","grouped","pressed","props","colors","useUIKitTheme","color","ui","openChannelMessage","default","renderSendingStatus","message","sendingStatus","SendingStatus","PENDING","primary","FAILED","error","background","enabled","onPressAvatar","styles","avatar","width","sender","profileUrl","isOperator","userId","textOperator","textSenderName","strings","senderName","nickname","textTime","sentDate","getMessageTimeFormat","Date","createdAt","SendingStatusContainer","createStyleSheet"],"sources":["MessageContainer.tsx"],"sourcesContent":["import React from 'react';\n\nimport { SendingStatus } from '@sendbird/chat/message';\nimport type { SendbirdMessage } from '@sendbird/uikit-utils';\nimport { getMessageTimeFormat } 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 Avatar from '../Avatar';\nimport LoadingSpinner from '../LoadingSpinner';\nimport type { OpenChannelMessageProps } from './index';\n\ntype Props = {\n pressed?: boolean;\n};\n\nconst MessageContainer = ({\n children,\n channel,\n grouped,\n pressed,\n ...props\n}: OpenChannelMessageProps<SendbirdMessage, Props>) => {\n const { colors } = useUIKitTheme();\n const color = colors.ui.openChannelMessage.default;\n\n const renderSendingStatus = () => {\n if (!('sendingStatus' in props.message)) return null;\n\n switch (props.message.sendingStatus) {\n case SendingStatus.PENDING: {\n return (\n <SendingStatusContainer>\n <LoadingSpinner color={colors.primary} size={16} />\n </SendingStatusContainer>\n );\n }\n case SendingStatus.FAILED: {\n return (\n <SendingStatusContainer>\n <Icon icon={'error'} color={colors.error} size={16} />\n </SendingStatusContainer>\n );\n }\n default: {\n return null;\n }\n }\n };\n\n return (\n <Box\n flexDirection={'row'}\n paddingVertical={grouped ? 5 : 6}\n paddingLeft={12}\n paddingRight={12}\n backgroundColor={pressed ? color.pressed.background : color.enabled.background}\n >\n <Box marginRight={12}>\n {!grouped && 'sender' in props.message ? (\n <PressBox onPress={props.onPressAvatar}>\n <Avatar size={styles.avatar.width} uri={props.message.sender.profileUrl} />\n </PressBox>\n ) : (\n <Box style={styles.avatar} />\n )}\n </Box>\n <Box flexShrink={1} flex={1} flexDirection={'column'} alignItems={'flex-start'}>\n {!grouped && 'sender' in props.message && (\n <Box flexDirection={'row'} alignItems={'center'} marginBottom={2}>\n <Box marginRight={4} flexShrink={1}>\n <Text\n caption1\n ellipsizeMode={'middle'}\n numberOfLines={1}\n color={\n channel.isOperator(props.message.sender.userId)\n ? color.enabled.textOperator\n : color.enabled.textSenderName\n }\n >\n {props.strings?.senderName ?? props.message.sender.nickname}\n </Text>\n </Box>\n <Box>\n <Text caption4 color={color.enabled.textTime}>\n {props.strings?.sentDate ?? getMessageTimeFormat(new Date(props.message.createdAt))}\n </Text>\n </Box>\n </Box>\n )}\n <Box style={styles.message}>{children}</Box>\n\n {renderSendingStatus()}\n </Box>\n </Box>\n );\n};\n\nconst SendingStatusContainer = ({ children }: { children: React.ReactElement }) => {\n return (\n <Box flexDirection={'row'}>\n <Box marginTop={2}>{children}</Box>\n </Box>\n );\n};\n\nconst styles = createStyleSheet({\n avatar: {\n width: 28,\n },\n message: {\n width: '100%',\n },\n});\n\nexport default MessageContainer;\n"],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _Message = _interopRequireDefault(require("./Message.admin"));
9
+
10
+ var _Message2 = _interopRequireDefault(require("./Message.file"));
11
+
12
+ var _MessageFile = _interopRequireDefault(require("./Message.file.image"));
13
+
14
+ var _MessageFile2 = _interopRequireDefault(require("./Message.file.video"));
15
+
16
+ var _Message3 = _interopRequireDefault(require("./Message.unknown"));
17
+
18
+ var _Message4 = _interopRequireDefault(require("./Message.user"));
19
+
20
+ var _MessageUser = _interopRequireDefault(require("./Message.user.og"));
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+
24
+ const OpenChannelMessage = {
25
+ User: _Message4.default,
26
+ OpenGraphUser: _MessageUser.default,
27
+ File: _Message2.default,
28
+ ImageFile: _MessageFile.default,
29
+ VideoFile: _MessageFile2.default,
30
+ Admin: _Message.default,
31
+ Unknown: _Message3.default
32
+ };
33
+ var _default = OpenChannelMessage;
34
+ exports.default = _default;
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["OpenChannelMessage","User","UserMessage","OpenGraphUser","OpenGraphUserMessage","File","FileMessage","ImageFile","ImageFileMessage","VideoFile","VideoFileMessage","Admin","AdminMessage","Unknown","UnknownMessage"],"sources":["index.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { SendbirdMessage, SendbirdOpenChannel } 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 OpenGraphUserMessage from './Message.user.og';\n\nexport type OpenChannelMessageProps<T extends SendbirdMessage, AdditionalProps = unknown> = {\n channel: SendbirdOpenChannel;\n message: T;\n strings?: {\n senderName?: string;\n sentDate?: string;\n edited?: string;\n fileName?: string;\n unknownTitle?: string;\n unknownDescription?: string;\n };\n children?: React.ReactNode;\n grouped?: boolean;\n onPress?: () => void;\n onLongPress?: () => void;\n onPressAvatar?: () => void;\n onPressURL?: () => void;\n} & AdditionalProps;\n\nconst OpenChannelMessage = {\n User: UserMessage,\n OpenGraphUser: OpenGraphUserMessage,\n File: FileMessage,\n ImageFile: ImageFileMessage,\n VideoFile: VideoFileMessage,\n Admin: AdminMessage,\n Unknown: UnknownMessage,\n};\n\nexport default OpenChannelMessage;\n"],"mappings":";;;;;;;AAIA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAqBA,MAAMA,kBAAkB,GAAG;EACzBC,IAAI,EAAEC,iBADmB;EAEzBC,aAAa,EAAEC,oBAFU;EAGzBC,IAAI,EAAEC,iBAHmB;EAIzBC,SAAS,EAAEC,oBAJc;EAKzBC,SAAS,EAAEC,qBALc;EAMzBC,KAAK,EAAEC,gBANkB;EAOzBC,OAAO,EAAEC;AAPgB,CAA3B;eAUed,kB"}
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _uikitUtils = require("@sendbird/uikit-utils");
11
+
12
+ var _Box = _interopRequireDefault(require("../../components/Box"));
13
+
14
+ var _Icon = _interopRequireDefault(require("../../components/Icon"));
15
+
16
+ var _Image = _interopRequireDefault(require("../../components/Image"));
17
+
18
+ var _Text = _interopRequireDefault(require("../../components/Text"));
19
+
20
+ var _createStyleSheet = _interopRequireDefault(require("../../styles/createStyleSheet"));
21
+
22
+ var _useUIKitTheme = _interopRequireDefault(require("../../theme/useUIKitTheme"));
23
+
24
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
+
26
+ const OpenChannelPreview = _ref => {
27
+ let {
28
+ customCover,
29
+ coverUrl,
30
+ participantsCount = 0,
31
+ title,
32
+ frozen
33
+ } = _ref;
34
+ const {
35
+ colors
36
+ } = (0, _useUIKitTheme.default)();
37
+ const color = colors.ui.openChannelPreview.default.none;
38
+ return /*#__PURE__*/_react.default.createElement(_Box.default, {
39
+ backgroundColor: color.background,
40
+ width: '100%',
41
+ height: 62,
42
+ flexDirection: 'row',
43
+ alignItems: 'center',
44
+ paddingHorizontal: 16
45
+ }, /*#__PURE__*/_react.default.createElement(_Box.default, {
46
+ width: styles.channelCover.width,
47
+ height: styles.channelCover.height,
48
+ borderRadius: styles.channelCover.width,
49
+ overflow: 'hidden',
50
+ marginRight: 16
51
+ }, (0, _uikitUtils.conditionChaining)([Boolean(customCover)], [customCover, /*#__PURE__*/_react.default.createElement(_Image.default, {
52
+ resizeMode: 'cover',
53
+ style: [styles.channelCover, {
54
+ backgroundColor: color.coverBackground
55
+ }],
56
+ source: {
57
+ uri: coverUrl
58
+ }
59
+ })])), /*#__PURE__*/_react.default.createElement(_Box.default, {
60
+ flex: 1,
61
+ height: '100%',
62
+ justifyContent: 'center'
63
+ }, /*#__PURE__*/_react.default.createElement(_Box.default, {
64
+ flexDirection: 'row',
65
+ flexShrink: 1,
66
+ marginBottom: 4,
67
+ alignItems: 'center'
68
+ }, /*#__PURE__*/_react.default.createElement(_Text.default, {
69
+ subtitle1: true,
70
+ style: styles.channelInfoTitle,
71
+ numberOfLines: 1,
72
+ color: color.textTitle
73
+ }, title), frozen && /*#__PURE__*/_react.default.createElement(_Icon.default, {
74
+ size: 16,
75
+ icon: 'freeze',
76
+ color: color.frozenIcon,
77
+ containerStyle: styles.marginLeft
78
+ })), /*#__PURE__*/_react.default.createElement(_Box.default, {
79
+ flexDirection: 'row',
80
+ flexShrink: 1,
81
+ alignItems: 'center',
82
+ justifyContent: 'flex-start'
83
+ }, /*#__PURE__*/_react.default.createElement(_Box.default, {
84
+ flexDirection: 'row',
85
+ alignItems: 'center'
86
+ }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
87
+ size: 16,
88
+ icon: 'members',
89
+ color: color.participantsIcon,
90
+ containerStyle: styles.marginRight
91
+ }), /*#__PURE__*/_react.default.createElement(_Text.default, {
92
+ caption2: true,
93
+ color: color.textParticipants
94
+ }, (0, _uikitUtils.truncatedCount)(participantsCount, 999)))), /*#__PURE__*/_react.default.createElement(Separator, {
95
+ color: color.separator
96
+ })));
97
+ };
98
+
99
+ const Separator = _ref2 => {
100
+ let {
101
+ color
102
+ } = _ref2;
103
+ return /*#__PURE__*/_react.default.createElement(_Box.default, {
104
+ style: [styles.separator, {
105
+ backgroundColor: color
106
+ }]
107
+ });
108
+ };
109
+
110
+ const styles = (0, _createStyleSheet.default)({
111
+ channelCover: {
112
+ width: 32,
113
+ height: 32
114
+ },
115
+ channelInfoTitle: {
116
+ flexShrink: 1
117
+ },
118
+ marginRight: {
119
+ marginRight: 4
120
+ },
121
+ marginLeft: {
122
+ marginLeft: 4
123
+ },
124
+ separator: {
125
+ position: 'absolute',
126
+ left: 0,
127
+ right: -16,
128
+ bottom: 0,
129
+ height: 1
130
+ }
131
+ });
132
+ var _default = OpenChannelPreview;
133
+ exports.default = _default;
134
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["OpenChannelPreview","customCover","coverUrl","participantsCount","title","frozen","colors","useUIKitTheme","color","ui","openChannelPreview","default","none","background","styles","channelCover","width","height","conditionChaining","Boolean","backgroundColor","coverBackground","uri","channelInfoTitle","textTitle","frozenIcon","marginLeft","participantsIcon","marginRight","textParticipants","truncatedCount","separator","Separator","createStyleSheet","flexShrink","position","left","right","bottom"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\n\nimport { conditionChaining, truncatedCount } from '@sendbird/uikit-utils';\n\nimport Box from '../../components/Box';\nimport Icon from '../../components/Icon';\nimport Image from '../../components/Image';\nimport Text from '../../components/Text';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\n\ntype Props = {\n customCover?: React.ReactElement;\n coverUrl: string;\n title: string;\n participantsCount?: number;\n frozen?: boolean;\n};\nconst OpenChannelPreview = ({ customCover, coverUrl, participantsCount = 0, title, frozen }: Props) => {\n const { colors } = useUIKitTheme();\n const color = colors.ui.openChannelPreview.default.none;\n\n return (\n <Box\n backgroundColor={color.background}\n width={'100%'}\n height={62}\n flexDirection={'row'}\n alignItems={'center'}\n paddingHorizontal={16}\n >\n <Box\n width={styles.channelCover.width}\n height={styles.channelCover.height}\n borderRadius={styles.channelCover.width}\n overflow={'hidden'}\n marginRight={16}\n >\n {conditionChaining(\n [Boolean(customCover)],\n [\n customCover,\n <Image\n resizeMode={'cover'}\n style={[styles.channelCover, { backgroundColor: color.coverBackground }]}\n source={{ uri: coverUrl }}\n />,\n ],\n )}\n </Box>\n <Box flex={1} height={'100%'} justifyContent={'center'}>\n <Box flexDirection={'row'} flexShrink={1} marginBottom={4} alignItems={'center'}>\n <Text subtitle1 style={styles.channelInfoTitle} numberOfLines={1} color={color.textTitle}>\n {title}\n </Text>\n {frozen && <Icon size={16} icon={'freeze'} color={color.frozenIcon} containerStyle={styles.marginLeft} />}\n </Box>\n <Box flexDirection={'row'} flexShrink={1} alignItems={'center'} justifyContent={'flex-start'}>\n <Box flexDirection={'row'} alignItems={'center'}>\n <Icon size={16} icon={'members'} color={color.participantsIcon} containerStyle={styles.marginRight} />\n <Text caption2 color={color.textParticipants}>\n {truncatedCount(participantsCount, 999)}\n </Text>\n </Box>\n </Box>\n <Separator color={color.separator} />\n </Box>\n </Box>\n );\n};\n\nconst Separator = ({ color }: { color: string }) => <Box style={[styles.separator, { backgroundColor: color }]} />;\n\nconst styles = createStyleSheet({\n channelCover: {\n width: 32,\n height: 32,\n },\n channelInfoTitle: {\n flexShrink: 1,\n },\n marginRight: {\n marginRight: 4,\n },\n marginLeft: {\n marginLeft: 4,\n },\n separator: {\n position: 'absolute',\n left: 0,\n right: -16,\n bottom: 0,\n height: 1,\n },\n});\n\nexport default OpenChannelPreview;\n"],"mappings":"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"}
@@ -0,0 +1,33 @@
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 { View } from 'react-native';
5
+ import { isFunction } from '@sendbird/uikit-utils';
6
+ import useUIKitTheme from '../../theme/useUIKitTheme';
7
+
8
+ const Box = _ref => {
9
+ let {
10
+ style,
11
+ children,
12
+ ...props
13
+ } = _ref;
14
+ const boxStyle = useBoxStyle(props);
15
+ return /*#__PURE__*/React.createElement(View, _extends({
16
+ style: [boxStyle, style]
17
+ }, props), children);
18
+ };
19
+
20
+ const useBoxStyle = props => {
21
+ const theme = useUIKitTheme();
22
+ const {
23
+ backgroundColor,
24
+ ...rest
25
+ } = props;
26
+ return {
27
+ backgroundColor: isFunction(backgroundColor) ? backgroundColor(theme) : backgroundColor,
28
+ ...rest
29
+ };
30
+ };
31
+
32
+ export default Box;
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","isFunction","useUIKitTheme","Box","style","children","props","boxStyle","useBoxStyle","theme","backgroundColor","rest"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleProp, View, ViewProps, ViewStyle } from 'react-native';\n\nimport { isFunction } from '@sendbird/uikit-utils';\n\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport type { UIKitColors, UIKitPalette } from '../../types';\n\ntype BaseBoxProps = Pick<\n ViewStyle,\n | 'flex'\n | 'flexShrink'\n | 'flexGrow'\n | 'flexDirection'\n | 'alignItems'\n | 'justifyContent'\n | 'borderRadius'\n | 'borderWidth'\n | 'borderColor'\n | 'borderBottomColor'\n | 'borderBottomWidth'\n | 'margin'\n | 'marginHorizontal'\n | 'marginVertical'\n | 'marginLeft'\n | 'marginRight'\n | 'marginTop'\n | 'marginBottom'\n | 'padding'\n | 'paddingHorizontal'\n | 'paddingVertical'\n | 'paddingLeft'\n | 'paddingRight'\n | 'paddingTop'\n | 'paddingBottom'\n | 'overflow'\n | 'width'\n | 'height'\n> & {\n backgroundColor?: string | ((theme: { colors: UIKitColors; palette: UIKitPalette }) => string);\n};\n\ntype BoxProps = BaseBoxProps & ViewProps;\nconst Box = ({ style, children, ...props }: BoxProps) => {\n const boxStyle = useBoxStyle(props);\n\n return (\n <View style={[boxStyle, style]} {...props}>\n {children}\n </View>\n );\n};\n\nconst useBoxStyle = (props: BaseBoxProps): StyleProp<ViewStyle> => {\n const theme = useUIKitTheme();\n\n const { backgroundColor, ...rest } = props;\n\n return {\n backgroundColor: isFunction(backgroundColor) ? backgroundColor(theme) : backgroundColor,\n ...rest,\n };\n};\n\nexport default Box;\n"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAAoBC,IAApB,QAAsD,cAAtD;AAEA,SAASC,UAAT,QAA2B,uBAA3B;AAEA,OAAOC,aAAP,MAA0B,2BAA1B;;AAsCA,MAAMC,GAAG,GAAG,QAA6C;EAAA,IAA5C;IAAEC,KAAF;IAASC,QAAT;IAAmB,GAAGC;EAAtB,CAA4C;EACvD,MAAMC,QAAQ,GAAGC,WAAW,CAACF,KAAD,CAA5B;EAEA,oBACE,oBAAC,IAAD;IAAM,KAAK,EAAE,CAACC,QAAD,EAAWH,KAAX;EAAb,GAAoCE,KAApC,GACGD,QADH,CADF;AAKD,CARD;;AAUA,MAAMG,WAAW,GAAIF,KAAD,IAA+C;EACjE,MAAMG,KAAK,GAAGP,aAAa,EAA3B;EAEA,MAAM;IAAEQ,eAAF;IAAmB,GAAGC;EAAtB,IAA+BL,KAArC;EAEA,OAAO;IACLI,eAAe,EAAET,UAAU,CAACS,eAAD,CAAV,GAA8BA,eAAe,CAACD,KAAD,CAA7C,GAAuDC,eADnE;IAEL,GAAGC;EAFE,CAAP;AAID,CATD;;AAWA,eAAeR,GAAf"}
@@ -0,0 +1,71 @@
1
+ import React, { useEffect, useRef, useState } from 'react';
2
+ import { Platform, StyleSheet } from 'react-native';
3
+ import { useForceUpdate } from '@sendbird/uikit-utils';
4
+ import createStyleSheet from '../../styles/createStyleSheet';
5
+ import useUIKitTheme from '../../theme/useUIKitTheme';
6
+ import Box from '../Box';
7
+ import Icon from '../Icon';
8
+ import Image from '../Image';
9
+
10
+ const useRetry = function (hasError) {
11
+ let retryCount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;
12
+ if (Platform.OS === 'android') return '';
13
+ const forceUpdate = useForceUpdate();
14
+ const retryCountRef = useRef(1);
15
+ const retryTimeoutRef = useRef();
16
+ useEffect(() => {
17
+ if (hasError) {
18
+ const reloadReservation = () => {
19
+ if (retryCountRef.current < retryCount) {
20
+ retryTimeoutRef.current = setTimeout(() => {
21
+ retryCountRef.current++;
22
+ reloadReservation();
23
+ forceUpdate();
24
+ }, retryCountRef.current * 5000);
25
+ }
26
+ };
27
+
28
+ return reloadReservation();
29
+ } else {
30
+ return clearTimeout(retryTimeoutRef.current);
31
+ }
32
+ }, [hasError]);
33
+ return retryCountRef.current;
34
+ };
35
+
36
+ const ImageWithPlaceholder = props => {
37
+ const {
38
+ colors
39
+ } = useUIKitTheme();
40
+ const [imageNotFound, setImageNotFound] = useState(false);
41
+ const key = useRetry(imageNotFound);
42
+ return /*#__PURE__*/React.createElement(Box, {
43
+ style: [{
44
+ overflow: 'hidden',
45
+ width: props.width,
46
+ height: props.height
47
+ }, props.style],
48
+ backgroundColor: colors.onBackground04
49
+ }, /*#__PURE__*/React.createElement(Image, {
50
+ key: key,
51
+ source: props.source,
52
+ style: [StyleSheet.absoluteFill, imageNotFound && styles.hide],
53
+ resizeMode: 'cover',
54
+ resizeMethod: 'resize',
55
+ onError: () => setImageNotFound(true),
56
+ onLoad: () => setImageNotFound(false)
57
+ }), imageNotFound && /*#__PURE__*/React.createElement(Icon, {
58
+ containerStyle: StyleSheet.absoluteFill,
59
+ icon: 'thumbnail-none',
60
+ size: 48,
61
+ color: colors.onBackground02
62
+ }));
63
+ };
64
+
65
+ const styles = createStyleSheet({
66
+ hide: {
67
+ display: 'none'
68
+ }
69
+ });
70
+ export default ImageWithPlaceholder;
71
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","useRef","useState","Platform","StyleSheet","useForceUpdate","createStyleSheet","useUIKitTheme","Box","Icon","Image","useRetry","hasError","retryCount","OS","forceUpdate","retryCountRef","retryTimeoutRef","reloadReservation","current","setTimeout","clearTimeout","ImageWithPlaceholder","props","colors","imageNotFound","setImageNotFound","key","overflow","width","height","style","onBackground04","source","absoluteFill","styles","hide","onBackground02","display"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { Platform, StyleProp, StyleSheet, ViewStyle } from 'react-native';\n\nimport { useForceUpdate } from '@sendbird/uikit-utils';\n\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport Box from '../Box';\nimport Icon from '../Icon';\nimport Image from '../Image';\n\nconst useRetry = (hasError: boolean, retryCount = 5) => {\n if (Platform.OS === 'android') return '';\n\n const forceUpdate = useForceUpdate();\n const retryCountRef = useRef(1);\n const retryTimeoutRef = useRef<NodeJS.Timeout>();\n\n useEffect(() => {\n if (hasError) {\n const reloadReservation = () => {\n if (retryCountRef.current < retryCount) {\n retryTimeoutRef.current = setTimeout(() => {\n retryCountRef.current++;\n reloadReservation();\n forceUpdate();\n }, retryCountRef.current * 5000);\n }\n };\n\n return reloadReservation();\n } else {\n return clearTimeout(retryTimeoutRef.current);\n }\n }, [hasError]);\n\n return retryCountRef.current;\n};\n\ntype Props = {\n source: number | { uri: string };\n width?: number | string;\n height?: number | string;\n style?: StyleProp<ViewStyle>;\n};\nconst ImageWithPlaceholder = (props: Props) => {\n const { colors } = useUIKitTheme();\n const [imageNotFound, setImageNotFound] = useState(false);\n\n const key = useRetry(imageNotFound);\n return (\n <Box\n style={[{ overflow: 'hidden', width: props.width, height: props.height }, props.style]}\n backgroundColor={colors.onBackground04}\n >\n <Image\n key={key}\n source={props.source}\n style={[StyleSheet.absoluteFill, imageNotFound && styles.hide]}\n resizeMode={'cover'}\n resizeMethod={'resize'}\n onError={() => setImageNotFound(true)}\n onLoad={() => setImageNotFound(false)}\n />\n {imageNotFound && (\n <Icon\n containerStyle={StyleSheet.absoluteFill}\n icon={'thumbnail-none'}\n size={48}\n color={colors.onBackground02}\n />\n )}\n </Box>\n );\n};\n\nconst styles = createStyleSheet({\n hide: {\n display: 'none',\n },\n});\n\nexport default ImageWithPlaceholder;\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,SAAhB,EAA2BC,MAA3B,EAAmCC,QAAnC,QAAmD,OAAnD;AACA,SAASC,QAAT,EAA8BC,UAA9B,QAA2D,cAA3D;AAEA,SAASC,cAAT,QAA+B,uBAA/B;AAEA,OAAOC,gBAAP,MAA6B,+BAA7B;AACA,OAAOC,aAAP,MAA0B,2BAA1B;AACA,OAAOC,GAAP,MAAgB,QAAhB;AACA,OAAOC,IAAP,MAAiB,SAAjB;AACA,OAAOC,KAAP,MAAkB,UAAlB;;AAEA,MAAMC,QAAQ,GAAG,UAACC,QAAD,EAAuC;EAAA,IAAnBC,UAAmB,uEAAN,CAAM;EACtD,IAAIV,QAAQ,CAACW,EAAT,KAAgB,SAApB,EAA+B,OAAO,EAAP;EAE/B,MAAMC,WAAW,GAAGV,cAAc,EAAlC;EACA,MAAMW,aAAa,GAAGf,MAAM,CAAC,CAAD,CAA5B;EACA,MAAMgB,eAAe,GAAGhB,MAAM,EAA9B;EAEAD,SAAS,CAAC,MAAM;IACd,IAAIY,QAAJ,EAAc;MACZ,MAAMM,iBAAiB,GAAG,MAAM;QAC9B,IAAIF,aAAa,CAACG,OAAd,GAAwBN,UAA5B,EAAwC;UACtCI,eAAe,CAACE,OAAhB,GAA0BC,UAAU,CAAC,MAAM;YACzCJ,aAAa,CAACG,OAAd;YACAD,iBAAiB;YACjBH,WAAW;UACZ,CAJmC,EAIjCC,aAAa,CAACG,OAAd,GAAwB,IAJS,CAApC;QAKD;MACF,CARD;;MAUA,OAAOD,iBAAiB,EAAxB;IACD,CAZD,MAYO;MACL,OAAOG,YAAY,CAACJ,eAAe,CAACE,OAAjB,CAAnB;IACD;EACF,CAhBQ,EAgBN,CAACP,QAAD,CAhBM,CAAT;EAkBA,OAAOI,aAAa,CAACG,OAArB;AACD,CA1BD;;AAkCA,MAAMG,oBAAoB,GAAIC,KAAD,IAAkB;EAC7C,MAAM;IAAEC;EAAF,IAAajB,aAAa,EAAhC;EACA,MAAM,CAACkB,aAAD,EAAgBC,gBAAhB,IAAoCxB,QAAQ,CAAC,KAAD,CAAlD;EAEA,MAAMyB,GAAG,GAAGhB,QAAQ,CAACc,aAAD,CAApB;EACA,oBACE,oBAAC,GAAD;IACE,KAAK,EAAE,CAAC;MAAEG,QAAQ,EAAE,QAAZ;MAAsBC,KAAK,EAAEN,KAAK,CAACM,KAAnC;MAA0CC,MAAM,EAAEP,KAAK,CAACO;IAAxD,CAAD,EAAmEP,KAAK,CAACQ,KAAzE,CADT;IAEE,eAAe,EAAEP,MAAM,CAACQ;EAF1B,gBAIE,oBAAC,KAAD;IACE,GAAG,EAAEL,GADP;IAEE,MAAM,EAAEJ,KAAK,CAACU,MAFhB;IAGE,KAAK,EAAE,CAAC7B,UAAU,CAAC8B,YAAZ,EAA0BT,aAAa,IAAIU,MAAM,CAACC,IAAlD,CAHT;IAIE,UAAU,EAAE,OAJd;IAKE,YAAY,EAAE,QALhB;IAME,OAAO,EAAE,MAAMV,gBAAgB,CAAC,IAAD,CANjC;IAOE,MAAM,EAAE,MAAMA,gBAAgB,CAAC,KAAD;EAPhC,EAJF,EAaGD,aAAa,iBACZ,oBAAC,IAAD;IACE,cAAc,EAAErB,UAAU,CAAC8B,YAD7B;IAEE,IAAI,EAAE,gBAFR;IAGE,IAAI,EAAE,EAHR;IAIE,KAAK,EAAEV,MAAM,CAACa;EAJhB,EAdJ,CADF;AAwBD,CA7BD;;AA+BA,MAAMF,MAAM,GAAG7B,gBAAgB,CAAC;EAC9B8B,IAAI,EAAE;IACJE,OAAO,EAAE;EADL;AADwB,CAAD,CAA/B;AAMA,eAAehB,oBAAf"}
@@ -0,0 +1,45 @@
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 * as React from 'react';
4
+ import { useState } from 'react';
5
+ import { Pressable, TouchableOpacity } from 'react-native';
6
+ import { isFunction } from '@sendbird/uikit-utils';
7
+ export const DEFAULT_LONG_PRESS_DELAY = 350;
8
+
9
+ const PressBox = props => {
10
+ if (props.activeOpacity && props.activeOpacity < 1) return /*#__PURE__*/React.createElement(PressBoxWithTouchableOpacity, props);
11
+ return /*#__PURE__*/React.createElement(PressBoxWithPressable, props);
12
+ };
13
+
14
+ const PressBoxWithPressable = _ref => {
15
+ let {
16
+ children,
17
+ ...props
18
+ } = _ref;
19
+ return /*#__PURE__*/React.createElement(Pressable, _extends({
20
+ disabled: !props.onPress && !props.onLongPress,
21
+ delayLongPress: DEFAULT_LONG_PRESS_DELAY
22
+ }, props), state => isFunction(children) ? children(state) : children);
23
+ };
24
+
25
+ const PressBoxWithTouchableOpacity = _ref2 => {
26
+ let {
27
+ children,
28
+ style,
29
+ ...props
30
+ } = _ref2;
31
+ const [pressed, setPressed] = useState(false);
32
+ const state = {
33
+ pressed
34
+ };
35
+ return /*#__PURE__*/React.createElement(TouchableOpacity, _extends({
36
+ disabled: !props.onPress && !props.onLongPress,
37
+ delayLongPress: DEFAULT_LONG_PRESS_DELAY,
38
+ style: isFunction(style) ? style(state) : style,
39
+ onPressIn: () => setPressed(true),
40
+ onPressOut: () => setPressed(false)
41
+ }, props), isFunction(children) ? children(state) : children);
42
+ };
43
+
44
+ export default PressBox;
45
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useState","Pressable","TouchableOpacity","isFunction","DEFAULT_LONG_PRESS_DELAY","PressBox","props","activeOpacity","PressBoxWithPressable","children","onPress","onLongPress","state","PressBoxWithTouchableOpacity","style","pressed","setPressed"],"sources":["index.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useState } from 'react';\nimport type { GestureResponderEvent, StyleProp, ViewStyle } from 'react-native';\nimport { Pressable, TouchableOpacity } from 'react-native';\n\nimport { isFunction } from '@sendbird/uikit-utils';\n\ntype PressBoxStateParams = {\n pressed: boolean;\n};\n\ntype Props = {\n onPress?: (event: GestureResponderEvent) => void;\n onLongPress?: (event: GestureResponderEvent) => void;\n delayLongPress?: number;\n activeOpacity?: number;\n style?: StyleProp<ViewStyle> | ((state: PressBoxStateParams) => StyleProp<ViewStyle>);\n children?: React.ReactNode | ((params: PressBoxStateParams) => React.ReactNode);\n};\n\nexport const DEFAULT_LONG_PRESS_DELAY = 350;\n\nconst PressBox = (props: Props) => {\n if (props.activeOpacity && props.activeOpacity < 1) return <PressBoxWithTouchableOpacity {...props} />;\n return <PressBoxWithPressable {...props} />;\n};\n\nconst PressBoxWithPressable = ({ children, ...props }: Props) => {\n return (\n <Pressable disabled={!props.onPress && !props.onLongPress} delayLongPress={DEFAULT_LONG_PRESS_DELAY} {...props}>\n {(state) => (isFunction(children) ? children(state) : children)}\n </Pressable>\n );\n};\n\nconst PressBoxWithTouchableOpacity = ({ children, style, ...props }: Props) => {\n const [pressed, setPressed] = useState(false);\n const state: PressBoxStateParams = { pressed };\n return (\n <TouchableOpacity\n disabled={!props.onPress && !props.onLongPress}\n delayLongPress={DEFAULT_LONG_PRESS_DELAY}\n style={isFunction(style) ? style(state) : style}\n onPressIn={() => setPressed(true)}\n onPressOut={() => setPressed(false)}\n {...props}\n >\n {isFunction(children) ? children(state) : children}\n </TouchableOpacity>\n );\n};\n\nexport default PressBox;\n"],"mappings":";;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,SAASC,QAAT,QAAyB,OAAzB;AAEA,SAASC,SAAT,EAAoBC,gBAApB,QAA4C,cAA5C;AAEA,SAASC,UAAT,QAA2B,uBAA3B;AAeA,OAAO,MAAMC,wBAAwB,GAAG,GAAjC;;AAEP,MAAMC,QAAQ,GAAIC,KAAD,IAAkB;EACjC,IAAIA,KAAK,CAACC,aAAN,IAAuBD,KAAK,CAACC,aAAN,GAAsB,CAAjD,EAAoD,oBAAO,oBAAC,4BAAD,EAAkCD,KAAlC,CAAP;EACpD,oBAAO,oBAAC,qBAAD,EAA2BA,KAA3B,CAAP;AACD,CAHD;;AAKA,MAAME,qBAAqB,GAAG,QAAmC;EAAA,IAAlC;IAAEC,QAAF;IAAY,GAAGH;EAAf,CAAkC;EAC/D,oBACE,oBAAC,SAAD;IAAW,QAAQ,EAAE,CAACA,KAAK,CAACI,OAAP,IAAkB,CAACJ,KAAK,CAACK,WAA9C;IAA2D,cAAc,EAAEP;EAA3E,GAAyGE,KAAzG,GACIM,KAAD,IAAYT,UAAU,CAACM,QAAD,CAAV,GAAuBA,QAAQ,CAACG,KAAD,CAA/B,GAAyCH,QADxD,CADF;AAKD,CAND;;AAQA,MAAMI,4BAA4B,GAAG,SAA0C;EAAA,IAAzC;IAAEJ,QAAF;IAAYK,KAAZ;IAAmB,GAAGR;EAAtB,CAAyC;EAC7E,MAAM,CAACS,OAAD,EAAUC,UAAV,IAAwBhB,QAAQ,CAAC,KAAD,CAAtC;EACA,MAAMY,KAA0B,GAAG;IAAEG;EAAF,CAAnC;EACA,oBACE,oBAAC,gBAAD;IACE,QAAQ,EAAE,CAACT,KAAK,CAACI,OAAP,IAAkB,CAACJ,KAAK,CAACK,WADrC;IAEE,cAAc,EAAEP,wBAFlB;IAGE,KAAK,EAAED,UAAU,CAACW,KAAD,CAAV,GAAoBA,KAAK,CAACF,KAAD,CAAzB,GAAmCE,KAH5C;IAIE,SAAS,EAAE,MAAME,UAAU,CAAC,IAAD,CAJ7B;IAKE,UAAU,EAAE,MAAMA,UAAU,CAAC,KAAD;EAL9B,GAMMV,KANN,GAQGH,UAAU,CAACM,QAAD,CAAV,GAAuBA,QAAQ,CAACG,KAAD,CAA/B,GAAyCH,QAR5C,CADF;AAYD,CAfD;;AAiBA,eAAeJ,QAAf"}
@@ -2,10 +2,13 @@
2
2
  export { default as IconAssets } from './assets/icon';
3
3
  /** Component **/
4
4
 
5
+ export { default as Box } from './components/Box';
5
6
  export { default as Divider } from './components/Divider';
6
7
  export { default as Icon } from './components/Icon';
7
8
  export { default as Image } from './components/Image';
9
+ export { default as ImageWithPlaceholder } from './components/ImageWithPlaceholder';
8
10
  export { default as Modal } from './components/Modal';
11
+ export { default as PressBox } from './components/PressBox';
9
12
  export { default as RegexText } from './components/RegexText';
10
13
  export { default as Switch } from './components/Switch';
11
14
  export { default as Text } from './components/Text';
@@ -24,7 +27,9 @@ export { DialogProvider, useActionMenu, useAlert, usePrompt, useBottomSheet } fr
24
27
  export { default as GroupChannelPreview } from './ui/GroupChannelPreview';
25
28
  export { default as Header } from './ui/Header';
26
29
  export { default as LoadingSpinner } from './ui/LoadingSpinner';
27
- export { default as MenuBar, MenuBarProps } from './ui/MenuBar';
30
+ export { default as MenuBar } from './ui/MenuBar';
31
+ export { default as OpenChannelMessage } from './ui/OpenChannelMessage';
32
+ export { default as OpenChannelPreview } from './ui/OpenChannelPreview';
28
33
  export { default as OutlinedButton } from './ui/OutlinedButton';
29
34
  export { default as Placeholder } from './ui/Placeholder';
30
35
  export { default as ProfileCard } from './ui/ProfileCard';
@@ -1 +1 @@
1
- {"version":3,"names":["default","IconAssets","Divider","Icon","Image","Modal","RegexText","Switch","Text","TextInput","URLParsedText","ActionMenu","Alert","Avatar","Badge","BottomSheet","Button","ChannelFrozenBanner","DialogProvider","useActionMenu","useAlert","usePrompt","useBottomSheet","GroupChannelPreview","Header","LoadingSpinner","MenuBar","MenuBarProps","OutlinedButton","Placeholder","ProfileCard","Prompt","Toast","useToast","ToastProvider","createSelectByColorScheme","createScaleFactor","createStyleSheet","createTypography","getDefaultHeaderHeight","HeaderStyleContext","HeaderStyleProvider","useHeaderStyle","createTheme","DarkUIKitTheme","LightUIKitTheme","Palette","UIKitThemeContext","UIKitThemeProvider","useUIKitTheme"],"sources":["index.ts"],"sourcesContent":["/** Assets **/\nexport { default as IconAssets } from './assets/icon';\n\n/** Component **/\nexport { default as Divider } from './components/Divider';\nexport { default as Icon } from './components/Icon';\nexport { default as Image } from './components/Image';\nexport { default as Modal } from './components/Modal';\nexport { default as RegexText } from './components/RegexText';\nexport { default as Switch } from './components/Switch';\nexport { default as Text } from './components/Text';\nexport { default as TextInput } from './components/TextInput';\nexport { default as URLParsedText } from './components/URLParsedText';\n\n/** UI **/\nexport { default as ActionMenu } from './ui/ActionMenu';\nexport { default as Alert } from './ui/Alert';\nexport { default as Avatar } from './ui/Avatar';\nexport { default as Badge } from './ui/Badge';\nexport { default as BottomSheet } from './ui/BottomSheet';\nexport { default as Button } from './ui/Button';\nexport { default as ChannelFrozenBanner } from './ui/ChannelFrozenBanner';\nexport { DialogProvider, useActionMenu, useAlert, usePrompt, useBottomSheet } from './ui/Dialog';\nexport { default as GroupChannelPreview } from './ui/GroupChannelPreview';\nexport { default as Header } from './ui/Header';\nexport { default as LoadingSpinner } from './ui/LoadingSpinner';\nexport { default as MenuBar, MenuBarProps } from './ui/MenuBar';\nexport { default as OutlinedButton } from './ui/OutlinedButton';\nexport { default as Placeholder } from './ui/Placeholder';\nexport { default as ProfileCard } from './ui/ProfileCard';\nexport { default as Prompt } from './ui/Prompt';\nexport { default as Toast, useToast, ToastProvider } from './ui/Toast';\n\n/** Styles **/\nexport { default as createSelectByColorScheme } from './styles/createSelectByColorScheme';\nexport { default as createScaleFactor } from './styles/createScaleFactor';\nexport { default as createStyleSheet } from './styles/createStyleSheet';\nexport { default as createTypography } from './styles/createTypography';\nexport { default as getDefaultHeaderHeight } from './styles/getDefaultHeaderHeight';\nexport { HeaderStyleContext, HeaderStyleProvider } from './styles/HeaderStyleContext';\nexport { default as useHeaderStyle } from './styles/useHeaderStyle';\n\n/** Theme **/\nexport { default as createTheme } from './theme/createTheme';\nexport { default as DarkUIKitTheme } from './theme/DarkUIKitTheme';\nexport { default as LightUIKitTheme } from './theme/LightUIKitTheme';\nexport { default as Palette } from './theme/Palette';\nexport { default as UIKitThemeContext } from './theme/UIKitThemeContext';\nexport { default as UIKitThemeProvider } from './theme/UIKitThemeProvider';\nexport { default as useUIKitTheme } from './theme/useUIKitTheme';\n\n/** Types **/\nexport type {\n TypoName,\n UIKitTheme,\n UIKitTypography,\n FontAttributes,\n BaseHeaderProps,\n UIKitColorScheme,\n UIKitColors,\n ComponentColorTree,\n UIKitPalette,\n HeaderElement,\n HeaderPartProps,\n ComponentColors,\n Component,\n GetColorTree,\n} from './types';\nexport type { ActionMenuItem } from './ui/ActionMenu';\nexport type { BottomSheetItem } from './ui/BottomSheet';\nexport type { UIKitTypographyOverrides } from './styles/createTypography';\nexport type { HeaderStyleContextType } from './styles/HeaderStyleContext';\n"],"mappings":"AAAA;AACA,SAASA,OAAO,IAAIC,UAApB,QAAsC,eAAtC;AAEA;;AACA,SAASD,OAAO,IAAIE,OAApB,QAAmC,sBAAnC;AACA,SAASF,OAAO,IAAIG,IAApB,QAAgC,mBAAhC;AACA,SAASH,OAAO,IAAII,KAApB,QAAiC,oBAAjC;AACA,SAASJ,OAAO,IAAIK,KAApB,QAAiC,oBAAjC;AACA,SAASL,OAAO,IAAIM,SAApB,QAAqC,wBAArC;AACA,SAASN,OAAO,IAAIO,MAApB,QAAkC,qBAAlC;AACA,SAASP,OAAO,IAAIQ,IAApB,QAAgC,mBAAhC;AACA,SAASR,OAAO,IAAIS,SAApB,QAAqC,wBAArC;AACA,SAAST,OAAO,IAAIU,aAApB,QAAyC,4BAAzC;AAEA;;AACA,SAASV,OAAO,IAAIW,UAApB,QAAsC,iBAAtC;AACA,SAASX,OAAO,IAAIY,KAApB,QAAiC,YAAjC;AACA,SAASZ,OAAO,IAAIa,MAApB,QAAkC,aAAlC;AACA,SAASb,OAAO,IAAIc,KAApB,QAAiC,YAAjC;AACA,SAASd,OAAO,IAAIe,WAApB,QAAuC,kBAAvC;AACA,SAASf,OAAO,IAAIgB,MAApB,QAAkC,aAAlC;AACA,SAAShB,OAAO,IAAIiB,mBAApB,QAA+C,0BAA/C;AACA,SAASC,cAAT,EAAyBC,aAAzB,EAAwCC,QAAxC,EAAkDC,SAAlD,EAA6DC,cAA7D,QAAmF,aAAnF;AACA,SAAStB,OAAO,IAAIuB,mBAApB,QAA+C,0BAA/C;AACA,SAASvB,OAAO,IAAIwB,MAApB,QAAkC,aAAlC;AACA,SAASxB,OAAO,IAAIyB,cAApB,QAA0C,qBAA1C;AACA,SAASzB,OAAO,IAAI0B,OAApB,EAA6BC,YAA7B,QAAiD,cAAjD;AACA,SAAS3B,OAAO,IAAI4B,cAApB,QAA0C,qBAA1C;AACA,SAAS5B,OAAO,IAAI6B,WAApB,QAAuC,kBAAvC;AACA,SAAS7B,OAAO,IAAI8B,WAApB,QAAuC,kBAAvC;AACA,SAAS9B,OAAO,IAAI+B,MAApB,QAAkC,aAAlC;AACA,SAAS/B,OAAO,IAAIgC,KAApB,EAA2BC,QAA3B,EAAqCC,aAArC,QAA0D,YAA1D;AAEA;;AACA,SAASlC,OAAO,IAAImC,yBAApB,QAAqD,oCAArD;AACA,SAASnC,OAAO,IAAIoC,iBAApB,QAA6C,4BAA7C;AACA,SAASpC,OAAO,IAAIqC,gBAApB,QAA4C,2BAA5C;AACA,SAASrC,OAAO,IAAIsC,gBAApB,QAA4C,2BAA5C;AACA,SAAStC,OAAO,IAAIuC,sBAApB,QAAkD,iCAAlD;AACA,SAASC,kBAAT,EAA6BC,mBAA7B,QAAwD,6BAAxD;AACA,SAASzC,OAAO,IAAI0C,cAApB,QAA0C,yBAA1C;AAEA;;AACA,SAAS1C,OAAO,IAAI2C,WAApB,QAAuC,qBAAvC;AACA,SAAS3C,OAAO,IAAI4C,cAApB,QAA0C,wBAA1C;AACA,SAAS5C,OAAO,IAAI6C,eAApB,QAA2C,yBAA3C;AACA,SAAS7C,OAAO,IAAI8C,OAApB,QAAmC,iBAAnC;AACA,SAAS9C,OAAO,IAAI+C,iBAApB,QAA6C,2BAA7C;AACA,SAAS/C,OAAO,IAAIgD,kBAApB,QAA8C,4BAA9C;AACA,SAAShD,OAAO,IAAIiD,aAApB,QAAyC,uBAAzC;AAEA"}
1
+ {"version":3,"names":["default","IconAssets","Box","Divider","Icon","Image","ImageWithPlaceholder","Modal","PressBox","RegexText","Switch","Text","TextInput","URLParsedText","ActionMenu","Alert","Avatar","Badge","BottomSheet","Button","ChannelFrozenBanner","DialogProvider","useActionMenu","useAlert","usePrompt","useBottomSheet","GroupChannelPreview","Header","LoadingSpinner","MenuBar","OpenChannelMessage","OpenChannelPreview","OutlinedButton","Placeholder","ProfileCard","Prompt","Toast","useToast","ToastProvider","createSelectByColorScheme","createScaleFactor","createStyleSheet","createTypography","getDefaultHeaderHeight","HeaderStyleContext","HeaderStyleProvider","useHeaderStyle","createTheme","DarkUIKitTheme","LightUIKitTheme","Palette","UIKitThemeContext","UIKitThemeProvider","useUIKitTheme"],"sources":["index.ts"],"sourcesContent":["/** Assets **/\nexport { default as IconAssets } from './assets/icon';\n\n/** Component **/\nexport { default as Box } from './components/Box';\nexport { default as Divider } from './components/Divider';\nexport { default as Icon } from './components/Icon';\nexport { default as Image } from './components/Image';\nexport { default as ImageWithPlaceholder } from './components/ImageWithPlaceholder';\nexport { default as Modal } from './components/Modal';\nexport { default as PressBox } from './components/PressBox';\nexport { default as RegexText } from './components/RegexText';\nexport { default as Switch } from './components/Switch';\nexport { default as Text } from './components/Text';\nexport { default as TextInput } from './components/TextInput';\nexport { default as URLParsedText } from './components/URLParsedText';\n\n/** UI **/\nexport { default as ActionMenu } from './ui/ActionMenu';\nexport { default as Alert } from './ui/Alert';\nexport { default as Avatar } from './ui/Avatar';\nexport { default as Badge } from './ui/Badge';\nexport { default as BottomSheet } from './ui/BottomSheet';\nexport { default as Button } from './ui/Button';\nexport { default as ChannelFrozenBanner } from './ui/ChannelFrozenBanner';\nexport { DialogProvider, useActionMenu, useAlert, usePrompt, useBottomSheet } from './ui/Dialog';\nexport { default as GroupChannelPreview } from './ui/GroupChannelPreview';\nexport { default as Header } from './ui/Header';\nexport { default as LoadingSpinner } from './ui/LoadingSpinner';\nexport { default as MenuBar } from './ui/MenuBar';\nexport type { MenuBarProps } from './ui/MenuBar';\nexport { default as OpenChannelMessage } from './ui/OpenChannelMessage';\nexport type { OpenChannelMessageProps } from './ui/OpenChannelMessage';\nexport { default as OpenChannelPreview } from './ui/OpenChannelPreview';\nexport { default as OutlinedButton } from './ui/OutlinedButton';\nexport { default as Placeholder } from './ui/Placeholder';\nexport { default as ProfileCard } from './ui/ProfileCard';\nexport { default as Prompt } from './ui/Prompt';\nexport { default as Toast, useToast, ToastProvider } from './ui/Toast';\n\n/** Styles **/\nexport { default as createSelectByColorScheme } from './styles/createSelectByColorScheme';\nexport { default as createScaleFactor } from './styles/createScaleFactor';\nexport { default as createStyleSheet } from './styles/createStyleSheet';\nexport { default as createTypography } from './styles/createTypography';\nexport { default as getDefaultHeaderHeight } from './styles/getDefaultHeaderHeight';\nexport { HeaderStyleContext, HeaderStyleProvider } from './styles/HeaderStyleContext';\nexport { default as useHeaderStyle } from './styles/useHeaderStyle';\n\n/** Theme **/\nexport { default as createTheme } from './theme/createTheme';\nexport { default as DarkUIKitTheme } from './theme/DarkUIKitTheme';\nexport { default as LightUIKitTheme } from './theme/LightUIKitTheme';\nexport { default as Palette } from './theme/Palette';\nexport { default as UIKitThemeContext } from './theme/UIKitThemeContext';\nexport { default as UIKitThemeProvider } from './theme/UIKitThemeProvider';\nexport { default as useUIKitTheme } from './theme/useUIKitTheme';\n\n/** Types **/\nexport type {\n TypoName,\n UIKitTheme,\n UIKitTypography,\n FontAttributes,\n BaseHeaderProps,\n UIKitColorScheme,\n UIKitColors,\n ComponentColorTree,\n UIKitPalette,\n HeaderElement,\n HeaderPartProps,\n ComponentColors,\n Component,\n GetColorTree,\n} from './types';\nexport type { ActionMenuItem } from './ui/ActionMenu';\nexport type { BottomSheetItem } from './ui/BottomSheet';\nexport type { UIKitTypographyOverrides } from './styles/createTypography';\nexport type { HeaderStyleContextType } from './styles/HeaderStyleContext';\n"],"mappings":"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"}