@sendbird/uikit-react-native-foundation 3.1.2 → 3.3.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 (254) hide show
  1. package/lib/commonjs/assets/icon/icon-audio-off-filled.png +0 -0
  2. package/lib/commonjs/assets/icon/icon-audio-off-filled@2x.png +0 -0
  3. package/lib/commonjs/assets/icon/icon-audio-off-filled@3x.png +0 -0
  4. package/lib/commonjs/assets/icon/icon-audio-off.png +0 -0
  5. package/lib/commonjs/assets/icon/icon-audio-off@2x.png +0 -0
  6. package/lib/commonjs/assets/icon/icon-audio-off@3x.png +0 -0
  7. package/lib/commonjs/assets/icon/icon-audio-on-filled.png +0 -0
  8. package/lib/commonjs/assets/icon/icon-audio-on-filled@2x.png +0 -0
  9. package/lib/commonjs/assets/icon/icon-audio-on-filled@3x.png +0 -0
  10. package/lib/commonjs/assets/icon/icon-audio-on.png +0 -0
  11. package/lib/commonjs/assets/icon/icon-audio-on@2x.png +0 -0
  12. package/lib/commonjs/assets/icon/icon-audio-on@3x.png +0 -0
  13. package/lib/commonjs/assets/icon/icon-pause.png +0 -0
  14. package/lib/commonjs/assets/icon/icon-pause@2x.png +0 -0
  15. package/lib/commonjs/assets/icon/icon-pause@3x.png +0 -0
  16. package/lib/commonjs/assets/icon/icon-recording.png +0 -0
  17. package/lib/commonjs/assets/icon/icon-recording@2x.png +0 -0
  18. package/lib/commonjs/assets/icon/icon-recording@3x.png +0 -0
  19. package/lib/commonjs/assets/icon/icon-stop.png +0 -0
  20. package/lib/commonjs/assets/icon/icon-stop@2x.png +0 -0
  21. package/lib/commonjs/assets/icon/icon-stop@3x.png +0 -0
  22. package/lib/commonjs/assets/icon/index.js +7 -0
  23. package/lib/commonjs/assets/icon/index.js.map +1 -1
  24. package/lib/commonjs/components/Box/index.js +2 -2
  25. package/lib/commonjs/components/Box/index.js.map +1 -1
  26. package/lib/commonjs/components/Icon/index.js +4 -3
  27. package/lib/commonjs/components/Icon/index.js.map +1 -1
  28. package/lib/commonjs/components/Image/FastImageInternal.js.map +1 -1
  29. package/lib/commonjs/components/Image/index.js.map +1 -1
  30. package/lib/commonjs/components/Modal/index.js +1 -1
  31. package/lib/commonjs/components/Modal/index.js.map +1 -1
  32. package/lib/commonjs/components/PressBox/index.js.map +1 -1
  33. package/lib/commonjs/components/ProgressBar/index.js +72 -0
  34. package/lib/commonjs/components/ProgressBar/index.js.map +1 -0
  35. package/lib/commonjs/components/RegexText/index.js.map +1 -1
  36. package/lib/commonjs/components/TextInput/index.js +10 -3
  37. package/lib/commonjs/components/TextInput/index.js.map +1 -1
  38. package/lib/commonjs/index.js +16 -2
  39. package/lib/commonjs/index.js.map +1 -1
  40. package/lib/commonjs/styles/HeaderStyleContext.js.map +1 -1
  41. package/lib/commonjs/styles/createScaleFactor.js +5 -4
  42. package/lib/commonjs/styles/createScaleFactor.js.map +1 -1
  43. package/lib/commonjs/styles/createStyleSheet.js +4 -0
  44. package/lib/commonjs/styles/createStyleSheet.js.map +1 -1
  45. package/lib/commonjs/theme/DarkUIKitTheme.js +80 -36
  46. package/lib/commonjs/theme/DarkUIKitTheme.js.map +1 -1
  47. package/lib/commonjs/theme/LightUIKitTheme.js +80 -36
  48. package/lib/commonjs/theme/LightUIKitTheme.js.map +1 -1
  49. package/lib/commonjs/types.js.map +1 -1
  50. package/lib/commonjs/ui/Avatar/AvatarStack.js +96 -0
  51. package/lib/commonjs/ui/Avatar/AvatarStack.js.map +1 -0
  52. package/lib/commonjs/ui/Avatar/index.js +6 -3
  53. package/lib/commonjs/ui/Avatar/index.js.map +1 -1
  54. package/lib/commonjs/ui/BottomSheet/index.js.map +1 -1
  55. package/lib/commonjs/ui/Dialog/DialogSheet.js.map +1 -1
  56. package/lib/commonjs/ui/GroupChannelMessage/Message.file.voice.js +108 -0
  57. package/lib/commonjs/ui/GroupChannelMessage/Message.file.voice.js.map +1 -0
  58. package/lib/commonjs/ui/GroupChannelMessage/Message.unknown.js +1 -1
  59. package/lib/commonjs/ui/GroupChannelMessage/Message.unknown.js.map +1 -1
  60. package/lib/commonjs/ui/GroupChannelMessage/index.js +2 -0
  61. package/lib/commonjs/ui/GroupChannelMessage/index.js.map +1 -1
  62. package/lib/commonjs/ui/GroupChannelPreview/index.js.map +1 -1
  63. package/lib/commonjs/ui/Header/index.js +5 -4
  64. package/lib/commonjs/ui/Header/index.js.map +1 -1
  65. package/lib/commonjs/ui/OpenChannelMessage/MessageContainer.js.map +1 -1
  66. package/lib/commonjs/ui/OpenChannelPreview/index.js.map +1 -1
  67. package/lib/commonjs/ui/ProfileCard/index.js.map +1 -1
  68. package/lib/commonjs/ui/TypingIndicatorBubble/index.js +118 -0
  69. package/lib/commonjs/ui/TypingIndicatorBubble/index.js.map +1 -0
  70. package/lib/module/assets/icon/icon-audio-off-filled.png +0 -0
  71. package/lib/module/assets/icon/icon-audio-off-filled@2x.png +0 -0
  72. package/lib/module/assets/icon/icon-audio-off-filled@3x.png +0 -0
  73. package/lib/module/assets/icon/icon-audio-off.png +0 -0
  74. package/lib/module/assets/icon/icon-audio-off@2x.png +0 -0
  75. package/lib/module/assets/icon/icon-audio-off@3x.png +0 -0
  76. package/lib/module/assets/icon/icon-audio-on-filled.png +0 -0
  77. package/lib/module/assets/icon/icon-audio-on-filled@2x.png +0 -0
  78. package/lib/module/assets/icon/icon-audio-on-filled@3x.png +0 -0
  79. package/lib/module/assets/icon/icon-audio-on.png +0 -0
  80. package/lib/module/assets/icon/icon-audio-on@2x.png +0 -0
  81. package/lib/module/assets/icon/icon-audio-on@3x.png +0 -0
  82. package/lib/module/assets/icon/icon-pause.png +0 -0
  83. package/lib/module/assets/icon/icon-pause@2x.png +0 -0
  84. package/lib/module/assets/icon/icon-pause@3x.png +0 -0
  85. package/lib/module/assets/icon/icon-recording.png +0 -0
  86. package/lib/module/assets/icon/icon-recording@2x.png +0 -0
  87. package/lib/module/assets/icon/icon-recording@3x.png +0 -0
  88. package/lib/module/assets/icon/icon-stop.png +0 -0
  89. package/lib/module/assets/icon/icon-stop@2x.png +0 -0
  90. package/lib/module/assets/icon/icon-stop@3x.png +0 -0
  91. package/lib/module/assets/icon/index.js +7 -0
  92. package/lib/module/assets/icon/index.js.map +1 -1
  93. package/lib/module/components/Box/index.js +2 -2
  94. package/lib/module/components/Box/index.js.map +1 -1
  95. package/lib/module/components/Icon/index.js +4 -3
  96. package/lib/module/components/Icon/index.js.map +1 -1
  97. package/lib/module/components/Image/FastImageInternal.js.map +1 -1
  98. package/lib/module/components/Image/index.js.map +1 -1
  99. package/lib/module/components/Modal/index.js +1 -1
  100. package/lib/module/components/Modal/index.js.map +1 -1
  101. package/lib/module/components/PressBox/index.js.map +1 -1
  102. package/lib/module/components/ProgressBar/index.js +62 -0
  103. package/lib/module/components/ProgressBar/index.js.map +1 -0
  104. package/lib/module/components/RegexText/index.js.map +1 -1
  105. package/lib/module/components/TextInput/index.js +10 -3
  106. package/lib/module/components/TextInput/index.js.map +1 -1
  107. package/lib/module/index.js +4 -2
  108. package/lib/module/index.js.map +1 -1
  109. package/lib/module/styles/HeaderStyleContext.js.map +1 -1
  110. package/lib/module/styles/createScaleFactor.js +5 -4
  111. package/lib/module/styles/createScaleFactor.js.map +1 -1
  112. package/lib/module/styles/createStyleSheet.js +4 -0
  113. package/lib/module/styles/createStyleSheet.js.map +1 -1
  114. package/lib/module/theme/DarkUIKitTheme.js +80 -36
  115. package/lib/module/theme/DarkUIKitTheme.js.map +1 -1
  116. package/lib/module/theme/LightUIKitTheme.js +80 -36
  117. package/lib/module/theme/LightUIKitTheme.js.map +1 -1
  118. package/lib/module/types.js.map +1 -1
  119. package/lib/module/ui/Avatar/AvatarStack.js +88 -0
  120. package/lib/module/ui/Avatar/AvatarStack.js.map +1 -0
  121. package/lib/module/ui/Avatar/index.js +6 -3
  122. package/lib/module/ui/Avatar/index.js.map +1 -1
  123. package/lib/module/ui/BottomSheet/index.js.map +1 -1
  124. package/lib/module/ui/Dialog/DialogSheet.js.map +1 -1
  125. package/lib/module/ui/GroupChannelMessage/Message.file.voice.js +98 -0
  126. package/lib/module/ui/GroupChannelMessage/Message.file.voice.js.map +1 -0
  127. package/lib/module/ui/GroupChannelMessage/Message.unknown.js +1 -1
  128. package/lib/module/ui/GroupChannelMessage/Message.unknown.js.map +1 -1
  129. package/lib/module/ui/GroupChannelMessage/index.js +2 -0
  130. package/lib/module/ui/GroupChannelMessage/index.js.map +1 -1
  131. package/lib/module/ui/GroupChannelPreview/index.js.map +1 -1
  132. package/lib/module/ui/Header/index.js +5 -4
  133. package/lib/module/ui/Header/index.js.map +1 -1
  134. package/lib/module/ui/OpenChannelMessage/MessageContainer.js.map +1 -1
  135. package/lib/module/ui/OpenChannelPreview/index.js.map +1 -1
  136. package/lib/module/ui/ProfileCard/index.js.map +1 -1
  137. package/lib/module/ui/TypingIndicatorBubble/index.js +108 -0
  138. package/lib/module/ui/TypingIndicatorBubble/index.js.map +1 -0
  139. package/lib/typescript/src/assets/icon/index.d.ts +7 -0
  140. package/lib/typescript/src/components/Box/index.d.ts +2 -1
  141. package/lib/typescript/src/components/Divider/index.d.ts +2 -1
  142. package/lib/typescript/src/components/Icon/index.d.ts +76 -7
  143. package/lib/typescript/src/components/Image/FastImageInternal.d.ts +2 -1
  144. package/lib/typescript/src/components/Image/index.d.ts +2 -1
  145. package/lib/typescript/src/components/ImageWithPlaceholder/index.d.ts +2 -1
  146. package/lib/typescript/src/components/Modal/index.d.ts +2 -1
  147. package/lib/typescript/src/components/PressBox/index.d.ts +2 -1
  148. package/lib/typescript/src/components/ProgressBar/index.d.ts +12 -0
  149. package/lib/typescript/src/components/RegexText/index.d.ts +3 -2
  150. package/lib/typescript/src/components/Switch/index.d.ts +1 -1
  151. package/lib/typescript/src/components/Text/index.d.ts +2 -1
  152. package/lib/typescript/src/components/VideoThumbnail/index.d.ts +2 -1
  153. package/lib/typescript/src/index.d.ts +5 -3
  154. package/lib/typescript/src/styles/HeaderStyleContext.d.ts +2 -2
  155. package/lib/typescript/src/styles/createScaleFactor.d.ts +4 -5
  156. package/lib/typescript/src/theme/UIKitThemeProvider.d.ts +1 -1
  157. package/lib/typescript/src/types.d.ts +11 -7
  158. package/lib/typescript/src/ui/ActionMenu/index.d.ts +2 -1
  159. package/lib/typescript/src/ui/Alert/index.d.ts +2 -1
  160. package/lib/typescript/src/ui/Avatar/AvatarGroup.d.ts +1 -1
  161. package/lib/typescript/src/ui/Avatar/AvatarIcon.d.ts +2 -1
  162. package/lib/typescript/src/ui/Avatar/AvatarStack.d.ts +16 -0
  163. package/lib/typescript/src/ui/Avatar/index.d.ts +30 -8
  164. package/lib/typescript/src/ui/Badge/index.d.ts +2 -1
  165. package/lib/typescript/src/ui/BottomSheet/index.d.ts +3 -2
  166. package/lib/typescript/src/ui/Button/index.d.ts +1 -1
  167. package/lib/typescript/src/ui/ChannelFrozenBanner/index.d.ts +2 -1
  168. package/lib/typescript/src/ui/Dialog/DialogBox.d.ts +1 -1
  169. package/lib/typescript/src/ui/Dialog/DialogSheet.d.ts +3 -3
  170. package/lib/typescript/src/ui/Dialog/index.d.ts +1 -1
  171. package/lib/typescript/src/ui/GroupChannelMessage/Message.admin.d.ts +2 -1
  172. package/lib/typescript/src/ui/GroupChannelMessage/Message.file.d.ts +2 -1
  173. package/lib/typescript/src/ui/GroupChannelMessage/Message.file.image.d.ts +2 -1
  174. package/lib/typescript/src/ui/GroupChannelMessage/Message.file.video.d.ts +2 -1
  175. package/lib/typescript/src/ui/GroupChannelMessage/Message.file.voice.d.ts +14 -0
  176. package/lib/typescript/src/ui/GroupChannelMessage/Message.unknown.d.ts +2 -1
  177. package/lib/typescript/src/ui/GroupChannelMessage/Message.user.d.ts +2 -1
  178. package/lib/typescript/src/ui/GroupChannelMessage/Message.user.og.d.ts +2 -1
  179. package/lib/typescript/src/ui/GroupChannelMessage/MessageBubbleWithText.d.ts +2 -1
  180. package/lib/typescript/src/ui/GroupChannelMessage/MessageContainer.d.ts +4 -3
  181. package/lib/typescript/src/ui/GroupChannelMessage/MessageOpenGraph.d.ts +2 -1
  182. package/lib/typescript/src/ui/GroupChannelMessage/index.d.ts +43 -7
  183. package/lib/typescript/src/ui/GroupChannelPreview/index.d.ts +3 -3
  184. package/lib/typescript/src/ui/Header/index.d.ts +8 -12
  185. package/lib/typescript/src/ui/LoadingSpinner/index.d.ts +2 -1
  186. package/lib/typescript/src/ui/MenuBar/index.d.ts +1 -1
  187. package/lib/typescript/src/ui/OpenChannelMessage/Message.admin.d.ts +2 -1
  188. package/lib/typescript/src/ui/OpenChannelMessage/Message.file.d.ts +2 -1
  189. package/lib/typescript/src/ui/OpenChannelMessage/Message.file.image.d.ts +2 -1
  190. package/lib/typescript/src/ui/OpenChannelMessage/Message.file.video.d.ts +2 -1
  191. package/lib/typescript/src/ui/OpenChannelMessage/Message.unknown.d.ts +2 -1
  192. package/lib/typescript/src/ui/OpenChannelMessage/Message.user.d.ts +2 -1
  193. package/lib/typescript/src/ui/OpenChannelMessage/Message.user.og.d.ts +2 -1
  194. package/lib/typescript/src/ui/OpenChannelMessage/MessageContainer.d.ts +2 -1
  195. package/lib/typescript/src/ui/OpenChannelMessage/index.d.ts +7 -7
  196. package/lib/typescript/src/ui/OpenChannelPreview/index.d.ts +2 -2
  197. package/lib/typescript/src/ui/OutlinedButton/index.d.ts +2 -1
  198. package/lib/typescript/src/ui/Placeholder/index.d.ts +2 -1
  199. package/lib/typescript/src/ui/ProfileCard/index.d.ts +3 -2
  200. package/lib/typescript/src/ui/Prompt/index.d.ts +2 -1
  201. package/lib/typescript/src/ui/Toast/index.d.ts +2 -2
  202. package/lib/typescript/src/ui/TypingIndicatorBubble/index.d.ts +10 -0
  203. package/package.json +5 -9
  204. package/src/assets/icon/icon-audio-off-filled.png +0 -0
  205. package/src/assets/icon/icon-audio-off-filled@2x.png +0 -0
  206. package/src/assets/icon/icon-audio-off-filled@3x.png +0 -0
  207. package/src/assets/icon/icon-audio-off.png +0 -0
  208. package/src/assets/icon/icon-audio-off@2x.png +0 -0
  209. package/src/assets/icon/icon-audio-off@3x.png +0 -0
  210. package/src/assets/icon/icon-audio-on-filled.png +0 -0
  211. package/src/assets/icon/icon-audio-on-filled@2x.png +0 -0
  212. package/src/assets/icon/icon-audio-on-filled@3x.png +0 -0
  213. package/src/assets/icon/icon-audio-on.png +0 -0
  214. package/src/assets/icon/icon-audio-on@2x.png +0 -0
  215. package/src/assets/icon/icon-audio-on@3x.png +0 -0
  216. package/src/assets/icon/icon-pause.png +0 -0
  217. package/src/assets/icon/icon-pause@2x.png +0 -0
  218. package/src/assets/icon/icon-pause@3x.png +0 -0
  219. package/src/assets/icon/icon-recording.png +0 -0
  220. package/src/assets/icon/icon-recording@2x.png +0 -0
  221. package/src/assets/icon/icon-recording@3x.png +0 -0
  222. package/src/assets/icon/icon-stop.png +0 -0
  223. package/src/assets/icon/icon-stop@2x.png +0 -0
  224. package/src/assets/icon/icon-stop@3x.png +0 -0
  225. package/src/assets/icon/index.ts +7 -0
  226. package/src/components/Box/index.tsx +1 -1
  227. package/src/components/Icon/index.tsx +6 -7
  228. package/src/components/Image/FastImageInternal.tsx +3 -2
  229. package/src/components/Image/index.ts +2 -1
  230. package/src/components/Modal/index.tsx +1 -1
  231. package/src/components/PressBox/index.tsx +1 -0
  232. package/src/components/ProgressBar/index.tsx +72 -0
  233. package/src/components/RegexText/index.tsx +3 -3
  234. package/src/components/TextInput/index.tsx +10 -3
  235. package/src/index.ts +5 -4
  236. package/src/styles/HeaderStyleContext.tsx +1 -1
  237. package/src/styles/createScaleFactor.ts +5 -5
  238. package/src/styles/createStyleSheet.ts +4 -0
  239. package/src/theme/DarkUIKitTheme.ts +80 -37
  240. package/src/theme/LightUIKitTheme.ts +80 -37
  241. package/src/types.ts +31 -7
  242. package/src/ui/Avatar/AvatarStack.tsx +103 -0
  243. package/src/ui/Avatar/index.tsx +8 -14
  244. package/src/ui/BottomSheet/index.tsx +2 -2
  245. package/src/ui/Dialog/DialogSheet.tsx +2 -2
  246. package/src/ui/GroupChannelMessage/Message.file.voice.tsx +123 -0
  247. package/src/ui/GroupChannelMessage/Message.unknown.tsx +1 -1
  248. package/src/ui/GroupChannelMessage/index.ts +7 -0
  249. package/src/ui/GroupChannelPreview/index.tsx +2 -2
  250. package/src/ui/Header/index.tsx +8 -12
  251. package/src/ui/OpenChannelMessage/MessageContainer.tsx +1 -1
  252. package/src/ui/OpenChannelPreview/index.tsx +1 -1
  253. package/src/ui/ProfileCard/index.tsx +2 -2
  254. package/src/ui/TypingIndicatorBubble/index.tsx +120 -0
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { ReactElement, ReactNode } from 'react';\nimport type { TextStyle } from 'react-native';\n\nexport interface UIKitTypography {\n h1: FontAttributes;\n h2: FontAttributes;\n subtitle1: FontAttributes;\n subtitle2: FontAttributes;\n body1: FontAttributes;\n body2: FontAttributes;\n body3: FontAttributes;\n button: FontAttributes;\n caption1: FontAttributes;\n caption2: FontAttributes;\n caption3: FontAttributes;\n caption4: FontAttributes;\n}\nexport type TypoName = keyof UIKitTypography;\nexport type FontAttributes = Pick<TextStyle, 'fontFamily' | 'fontSize' | 'lineHeight' | 'letterSpacing' | 'fontWeight'>;\n\nexport type UIKitColorScheme = 'light' | 'dark';\nexport interface UIKitTheme {\n colorScheme: UIKitColorScheme;\n select<V>(options: { [key in UIKitColorScheme | 'default']?: V }): V;\n\n palette: UIKitPalette;\n colors: UIKitColors;\n\n typography: UIKitTypography;\n}\n\nexport type Component =\n | 'Header'\n | 'Button'\n | 'Dialog'\n | 'Input'\n | 'Badge'\n | 'Placeholder'\n | 'DateSeparator'\n | 'GroupChannelMessage'\n | 'GroupChannelPreview'\n | 'ProfileCard'\n | 'Reaction'\n | 'OpenChannelMessage'\n | 'OpenChannelPreview';\n\nexport type GetColorTree<\n Tree extends {\n Variant: {\n [key in Component]: string;\n };\n State: {\n [key in Component]: string;\n };\n ColorPart: {\n [key in Component]: string;\n };\n },\n> = Tree;\n\nexport type ComponentColorTree = GetColorTree<{\n Variant: {\n Header: 'nav';\n Button: 'contained' | 'text';\n Dialog: 'default';\n Input: 'default' | 'underline';\n Badge: 'default';\n Placeholder: 'default';\n DateSeparator: 'default';\n GroupChannelMessage: 'incoming' | 'outgoing';\n GroupChannelPreview: 'default';\n ProfileCard: 'default';\n Reaction: 'default' | 'rounded';\n OpenChannelMessage: 'default';\n OpenChannelPreview: 'default';\n };\n State: {\n Header: 'none';\n Button: 'enabled' | 'pressed' | 'disabled';\n Dialog: 'none';\n Input: 'active' | 'disabled';\n Badge: 'none';\n Placeholder: 'none';\n DateSeparator: 'none';\n GroupChannelMessage: 'enabled' | 'pressed';\n GroupChannelPreview: 'none';\n ProfileCard: 'none';\n Reaction: 'enabled' | 'selected';\n OpenChannelMessage: 'enabled' | 'pressed';\n OpenChannelPreview: 'none';\n };\n ColorPart: {\n Header: 'background' | 'borderBottom';\n Button: 'background' | 'content';\n Dialog: 'background' | 'text' | 'message' | 'highlight' | 'destructive' | 'blurred';\n Input: 'text' | 'placeholder' | 'background' | 'highlight';\n Badge: 'text' | 'background';\n Placeholder: 'content' | 'highlight';\n DateSeparator: 'text' | 'background';\n GroupChannelMessage: 'textMsg' | 'textEdited' | 'textSenderName' | 'textTime' | 'background';\n GroupChannelPreview:\n | 'textTitle'\n | 'textTitleCaption'\n | 'textBody'\n | 'memberCount'\n | 'bodyIcon'\n | 'background'\n | 'coverBackground'\n | 'bodyIconBackground'\n | 'separator';\n ProfileCard: 'textUsername' | 'textBodyLabel' | 'textBody' | 'background';\n Reaction: 'background' | 'highlight';\n OpenChannelMessage:\n | 'textMsg'\n | 'textMsgPostfix'\n | 'textSenderName'\n | 'textTime'\n | 'textOperator'\n | 'background'\n | 'bubbleBackground'\n | 'adminBackground';\n OpenChannelPreview:\n | 'textTitle'\n | 'textParticipants'\n | 'frozenIcon'\n | 'participantsIcon'\n | 'background'\n | 'coverBackground'\n | 'separator';\n };\n}>;\nexport type ComponentColors<T extends Component> = {\n [key in ComponentColorTree['Variant'][T]]: {\n [key in ComponentColorTree['State'][T]]: {\n [key in ComponentColorTree['ColorPart'][T]]: string;\n };\n };\n};\n\nexport interface UIKitColors {\n primary: string;\n secondary: string;\n error: string;\n background: string;\n text: string;\n onBackground01: string;\n onBackground02: string;\n onBackground03: string;\n onBackground04: string;\n onBackgroundReverse01: string;\n onBackgroundReverse02: string;\n onBackgroundReverse03: string;\n onBackgroundReverse04: string;\n /**\n * UI Colors has below structure\n * Component.{Variant}.{State}.{ColorPart}\n * @example\n * ```\n * const { colors } = useUIKitTheme();\n * colors.ui.button.contained.disabled.backgroundColor\n * ```\n * */\n ui: {\n header: ComponentColors<'Header'>;\n button: ComponentColors<'Button'>;\n dialog: ComponentColors<'Dialog'>;\n input: ComponentColors<'Input'>;\n badge: ComponentColors<'Badge'>;\n placeholder: ComponentColors<'Placeholder'>;\n dateSeparator: ComponentColors<'DateSeparator'>;\n groupChannelMessage: ComponentColors<'GroupChannelMessage'>;\n groupChannelPreview: ComponentColors<'GroupChannelPreview'>;\n profileCard: ComponentColors<'ProfileCard'>;\n reaction: ComponentColors<'Reaction'>;\n openChannelMessage: ComponentColors<'OpenChannelMessage'>;\n openChannelPreview: ComponentColors<'OpenChannelPreview'>;\n };\n}\n\nexport type HeaderElement = string | ReactElement | null;\nexport type HeaderPartProps = {\n title?: HeaderElement;\n right?: HeaderElement;\n left?: HeaderElement;\n onPressLeft?: (...params: any[]) => any;\n onPressRight?: (...params: any[]) => any;\n};\nexport type BaseHeaderProps<HeaderParts extends HeaderPartProps = {}, AdditionalProps = {}> = {\n titleAlign?: 'left' | 'center' | 'right';\n children?: ReactNode;\n} & HeaderParts &\n AdditionalProps;\nexport interface UIKitPalette {\n primary100: string;\n primary200: string;\n primary300: string;\n primary400: string;\n primary500: string;\n\n secondary100: string;\n secondary200: string;\n secondary300: string;\n secondary400: string;\n secondary500: string;\n\n error100: string;\n error200: string;\n error300: string;\n error400: string;\n error500: string;\n\n background50: string;\n background100: string;\n background200: string;\n background300: string;\n background400: string;\n background500: string;\n background600: string;\n background700: string;\n\n overlay01: string;\n overlay02: string;\n\n information: string;\n highlight: string;\n transparent: 'transparent';\n\n onBackgroundLight01: string;\n onBackgroundLight02: string;\n onBackgroundLight03: string;\n onBackgroundLight04: string;\n\n onBackgroundDark01: string;\n onBackgroundDark02: string;\n onBackgroundDark03: string;\n onBackgroundDark04: string;\n}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type { ReactNode } from 'react';\nimport type { TextStyle } from 'react-native';\n\nexport interface UIKitTypography {\n h1: FontAttributes;\n h2: FontAttributes;\n subtitle1: FontAttributes;\n subtitle2: FontAttributes;\n body1: FontAttributes;\n body2: FontAttributes;\n body3: FontAttributes;\n button: FontAttributes;\n caption1: FontAttributes;\n caption2: FontAttributes;\n caption3: FontAttributes;\n caption4: FontAttributes;\n}\nexport type TypoName = keyof UIKitTypography;\nexport type FontAttributes = Pick<TextStyle, 'fontFamily' | 'fontSize' | 'lineHeight' | 'letterSpacing' | 'fontWeight'>;\n\nexport type UIKitColorScheme = 'light' | 'dark';\nexport interface UIKitTheme {\n colorScheme: UIKitColorScheme;\n select<V>(options: { [key in UIKitColorScheme | 'default']?: V }): V;\n\n palette: UIKitPalette;\n colors: UIKitColors;\n\n typography: UIKitTypography;\n}\n\nexport type Component =\n | 'Header'\n | 'Button'\n | 'Dialog'\n | 'Input'\n | 'Badge'\n | 'Placeholder'\n | 'DateSeparator'\n | 'GroupChannelMessage'\n | 'GroupChannelPreview'\n | 'ProfileCard'\n | 'Reaction'\n | 'OpenChannelMessage'\n | 'OpenChannelPreview'\n | 'VoiceMessageInput';\n\nexport type GetColorTree<\n Tree extends {\n Variant: {\n [key in Component]: string;\n };\n State: {\n [key in Component]: string;\n };\n ColorPart: {\n [key in Component]: string;\n };\n },\n> = Tree;\n\nexport type ComponentColorTree = GetColorTree<{\n Variant: {\n Header: 'nav';\n Button: 'contained' | 'text';\n Dialog: 'default';\n Input: 'default' | 'underline';\n Badge: 'default';\n Placeholder: 'default';\n DateSeparator: 'default';\n GroupChannelMessage: 'incoming' | 'outgoing';\n GroupChannelPreview: 'default';\n ProfileCard: 'default';\n Reaction: 'default' | 'rounded';\n OpenChannelMessage: 'default';\n OpenChannelPreview: 'default';\n VoiceMessageInput: 'default';\n };\n State: {\n Header: 'none';\n Button: 'enabled' | 'pressed' | 'disabled';\n Dialog: 'none';\n Input: 'active' | 'disabled';\n Badge: 'none';\n Placeholder: 'none';\n DateSeparator: 'none';\n GroupChannelMessage: 'enabled' | 'pressed';\n GroupChannelPreview: 'none';\n ProfileCard: 'none';\n Reaction: 'enabled' | 'selected';\n OpenChannelMessage: 'enabled' | 'pressed';\n OpenChannelPreview: 'none';\n VoiceMessageInput: 'active' | 'inactive';\n };\n ColorPart: {\n Header: 'background' | 'borderBottom';\n Button: 'background' | 'content';\n Dialog: 'background' | 'text' | 'message' | 'highlight' | 'destructive' | 'blurred';\n Input: 'text' | 'placeholder' | 'background' | 'highlight';\n Badge: 'text' | 'background';\n Placeholder: 'content' | 'highlight';\n DateSeparator: 'text' | 'background';\n GroupChannelMessage:\n | 'textMsg'\n | 'textEdited'\n | 'textSenderName'\n | 'textTime'\n | 'textVoicePlaytime'\n | 'background'\n | 'voiceSpinner'\n | 'voiceProgressTrack'\n | 'voiceActionIcon'\n | 'voiceActionIconBackground';\n GroupChannelPreview:\n | 'textTitle'\n | 'textTitleCaption'\n | 'textBody'\n | 'memberCount'\n | 'bodyIcon'\n | 'background'\n | 'coverBackground'\n | 'bodyIconBackground'\n | 'separator';\n ProfileCard: 'textUsername' | 'textBodyLabel' | 'textBody' | 'background';\n Reaction: 'background' | 'highlight';\n OpenChannelMessage:\n | 'textMsg'\n | 'textMsgPostfix'\n | 'textSenderName'\n | 'textTime'\n | 'textOperator'\n | 'background'\n | 'bubbleBackground'\n | 'adminBackground';\n OpenChannelPreview:\n | 'textTitle'\n | 'textParticipants'\n | 'frozenIcon'\n | 'participantsIcon'\n | 'background'\n | 'coverBackground'\n | 'separator';\n VoiceMessageInput:\n | 'textCancel'\n | 'textTime'\n | 'background'\n | 'actionIcon'\n | 'actionIconBackground'\n | 'sendIcon'\n | 'sendIconBackground'\n | 'progressTrack'\n | 'recording';\n };\n}>;\nexport type ComponentColors<T extends Component> = {\n [key in ComponentColorTree['Variant'][T]]: {\n [key in ComponentColorTree['State'][T]]: {\n [key in ComponentColorTree['ColorPart'][T]]: string;\n };\n };\n};\n\nexport interface UIKitColors {\n primary: string;\n secondary: string;\n error: string;\n background: string;\n text: string;\n onBackground01: string;\n onBackground02: string;\n onBackground03: string;\n onBackground04: string;\n onBackgroundReverse01: string;\n onBackgroundReverse02: string;\n onBackgroundReverse03: string;\n onBackgroundReverse04: string;\n /**\n * UI Colors has below structure\n * Component.{Variant}.{State}.{ColorPart}\n * @example\n * ```\n * const { colors } = useUIKitTheme();\n * colors.ui.button.contained.disabled.backgroundColor\n * ```\n * */\n ui: {\n header: ComponentColors<'Header'>;\n button: ComponentColors<'Button'>;\n dialog: ComponentColors<'Dialog'>;\n input: ComponentColors<'Input'>;\n badge: ComponentColors<'Badge'>;\n placeholder: ComponentColors<'Placeholder'>;\n dateSeparator: ComponentColors<'DateSeparator'>;\n groupChannelMessage: ComponentColors<'GroupChannelMessage'>;\n groupChannelPreview: ComponentColors<'GroupChannelPreview'>;\n profileCard: ComponentColors<'ProfileCard'>;\n reaction: ComponentColors<'Reaction'>;\n openChannelMessage: ComponentColors<'OpenChannelMessage'>;\n openChannelPreview: ComponentColors<'OpenChannelPreview'>;\n voiceMessageInput: ComponentColors<'VoiceMessageInput'>;\n };\n}\n\nexport type HeaderElement = ReactNode;\nexport type HeaderPartProps = {\n title?: ReactNode;\n right?: ReactNode;\n left?: ReactNode;\n onPressLeft?: (...params: any[]) => any;\n onPressRight?: (...params: any[]) => any;\n};\nexport type BaseHeaderProps<HeaderParts extends HeaderPartProps = {}, AdditionalProps = {}> = {\n titleAlign?: 'left' | 'center' | 'right';\n children?: ReactNode;\n} & HeaderParts &\n AdditionalProps;\nexport interface UIKitPalette {\n primary100: string;\n primary200: string;\n primary300: string;\n primary400: string;\n primary500: string;\n\n secondary100: string;\n secondary200: string;\n secondary300: string;\n secondary400: string;\n secondary500: string;\n\n error100: string;\n error200: string;\n error300: string;\n error400: string;\n error500: string;\n\n background50: string;\n background100: string;\n background200: string;\n background300: string;\n background400: string;\n background500: string;\n background600: string;\n background700: string;\n\n overlay01: string;\n overlay02: string;\n\n information: string;\n highlight: string;\n transparent: 'transparent';\n\n onBackgroundLight01: string;\n onBackgroundLight02: string;\n onBackgroundLight03: string;\n onBackgroundLight04: string;\n\n onBackgroundDark01: string;\n onBackgroundDark02: string;\n onBackgroundDark03: string;\n onBackgroundDark04: string;\n}\n"],"mappings":""}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _Text = _interopRequireDefault(require("../../components/Text"));
10
+ var _useUIKitTheme = _interopRequireDefault(require("../../theme/useUIKitTheme"));
11
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
+ const DEFAULT_MAX = 3;
13
+ const DEFAULT_BORDER_WIDTH = 2;
14
+ const DEFAULT_AVATAR_GAP = -4;
15
+ const DEFAULT_AVATAR_SIZE = 26;
16
+ const DEFAULT_REMAINS_MAX = 99;
17
+ const AvatarStack = _ref => {
18
+ let {
19
+ children,
20
+ containerStyle,
21
+ styles,
22
+ maxAvatar = DEFAULT_MAX,
23
+ size = DEFAULT_AVATAR_SIZE,
24
+ avatarGap = DEFAULT_AVATAR_GAP
25
+ } = _ref;
26
+ const {
27
+ colors,
28
+ palette,
29
+ select
30
+ } = (0, _useUIKitTheme.default)();
31
+ const defaultStyles = {
32
+ borderWidth: DEFAULT_BORDER_WIDTH,
33
+ borderColor: colors.background,
34
+ remainsTextColor: colors.onBackground02,
35
+ remainsBackgroundColor: select({
36
+ light: palette.background100,
37
+ dark: palette.background600
38
+ })
39
+ };
40
+ const avatarStyles = {
41
+ ...defaultStyles,
42
+ ...styles
43
+ };
44
+ const childrenArray = _react.default.Children.toArray(children).filter(it => /*#__PURE__*/_react.default.isValidElement(it));
45
+ const remains = childrenArray.length - maxAvatar;
46
+ const shouldRenderRemains = remains > 0;
47
+ const actualSize = size + avatarStyles.borderWidth * 2;
48
+ const actualGap = avatarGap - avatarStyles.borderWidth;
49
+ const renderAvatars = () => {
50
+ return childrenArray.slice(0, maxAvatar).map((child, index) => /*#__PURE__*/_react.default.cloneElement(child, {
51
+ size: actualSize,
52
+ containerStyle: {
53
+ left: actualGap * index,
54
+ borderWidth: avatarStyles.borderWidth,
55
+ borderColor: avatarStyles.borderColor
56
+ }
57
+ }));
58
+ };
59
+ const renderRemainsCount = () => {
60
+ if (!shouldRenderRemains) return null;
61
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
62
+ style: [avatarStyles, {
63
+ left: actualGap * maxAvatar,
64
+ width: actualSize,
65
+ height: actualSize,
66
+ borderRadius: actualSize / 2,
67
+ alignItems: 'center',
68
+ justifyContent: 'center',
69
+ backgroundColor: avatarStyles.remainsBackgroundColor
70
+ }]
71
+ }, /*#__PURE__*/_react.default.createElement(_Text.default, {
72
+ style: {
73
+ color: avatarStyles.remainsTextColor,
74
+ fontSize: 8
75
+ },
76
+ caption4: true
77
+ }, `+${Math.min(remains, DEFAULT_REMAINS_MAX)}`));
78
+ };
79
+ const calculateWidth = () => {
80
+ const widthEach = actualSize + actualGap;
81
+ const avatarCountOffset = shouldRenderRemains ? 1 : 0;
82
+ const avatarCount = shouldRenderRemains ? maxAvatar : childrenArray.length;
83
+ const count = avatarCount + avatarCountOffset;
84
+ return widthEach * count + avatarStyles.borderWidth;
85
+ };
86
+ return /*#__PURE__*/_react.default.createElement(_reactNative.View, {
87
+ style: [containerStyle, {
88
+ left: -avatarStyles.borderWidth,
89
+ flexDirection: 'row',
90
+ width: calculateWidth()
91
+ }]
92
+ }, renderAvatars(), renderRemainsCount());
93
+ };
94
+ var _default = AvatarStack;
95
+ exports.default = _default;
96
+ //# sourceMappingURL=AvatarStack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_Text","_useUIKitTheme","obj","__esModule","default","DEFAULT_MAX","DEFAULT_BORDER_WIDTH","DEFAULT_AVATAR_GAP","DEFAULT_AVATAR_SIZE","DEFAULT_REMAINS_MAX","AvatarStack","_ref","children","containerStyle","styles","maxAvatar","size","avatarGap","colors","palette","select","useUIKitTheme","defaultStyles","borderWidth","borderColor","background","remainsTextColor","onBackground02","remainsBackgroundColor","light","background100","dark","background600","avatarStyles","childrenArray","React","Children","toArray","filter","it","isValidElement","remains","length","shouldRenderRemains","actualSize","actualGap","renderAvatars","slice","map","child","index","cloneElement","left","renderRemainsCount","createElement","View","style","width","height","borderRadius","alignItems","justifyContent","backgroundColor","color","fontSize","caption4","Math","min","calculateWidth","widthEach","avatarCountOffset","avatarCount","count","flexDirection","_default","exports"],"sources":["AvatarStack.tsx"],"sourcesContent":["import React, { ReactElement } from 'react';\nimport { StyleProp, View, ViewStyle } from 'react-native';\n\nimport Text from '../../components/Text';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\n\nconst DEFAULT_MAX = 3;\nconst DEFAULT_BORDER_WIDTH = 2;\nconst DEFAULT_AVATAR_GAP = -4;\nconst DEFAULT_AVATAR_SIZE = 26;\nconst DEFAULT_REMAINS_MAX = 99;\n\ntype Props = React.PropsWithChildren<{\n size?: number;\n containerStyle?: StyleProp<ViewStyle>;\n maxAvatar?: number;\n avatarGap?: number;\n styles?: {\n borderWidth?: number;\n borderColor?: string;\n remainsTextColor?: string;\n remainsBackgroundColor?: string;\n };\n}>;\n\nconst AvatarStack = ({\n children,\n containerStyle,\n styles,\n maxAvatar = DEFAULT_MAX,\n size = DEFAULT_AVATAR_SIZE,\n avatarGap = DEFAULT_AVATAR_GAP,\n}: Props) => {\n const { colors, palette, select } = useUIKitTheme();\n const defaultStyles = {\n borderWidth: DEFAULT_BORDER_WIDTH,\n borderColor: colors.background,\n remainsTextColor: colors.onBackground02,\n remainsBackgroundColor: select({ light: palette.background100, dark: palette.background600 }),\n };\n const avatarStyles = { ...defaultStyles, ...styles };\n\n const childrenArray = React.Children.toArray(children).filter((it) => React.isValidElement(it));\n const remains = childrenArray.length - maxAvatar;\n const shouldRenderRemains = remains > 0;\n\n const actualSize = size + avatarStyles.borderWidth * 2;\n const actualGap = avatarGap - avatarStyles.borderWidth;\n\n const renderAvatars = () => {\n return childrenArray.slice(0, maxAvatar).map((child, index) =>\n React.cloneElement(child as ReactElement, {\n size: actualSize,\n containerStyle: {\n left: actualGap * index,\n borderWidth: avatarStyles.borderWidth,\n borderColor: avatarStyles.borderColor,\n },\n }),\n );\n };\n\n const renderRemainsCount = () => {\n if (!shouldRenderRemains) return null;\n return (\n <View\n style={[\n avatarStyles,\n {\n left: actualGap * maxAvatar,\n width: actualSize,\n height: actualSize,\n borderRadius: actualSize / 2,\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: avatarStyles.remainsBackgroundColor,\n },\n ]}\n >\n <Text style={{ color: avatarStyles.remainsTextColor, fontSize: 8 }} caption4>\n {`+${Math.min(remains, DEFAULT_REMAINS_MAX)}`}\n </Text>\n </View>\n );\n };\n\n const calculateWidth = () => {\n const widthEach = actualSize + actualGap;\n const avatarCountOffset = shouldRenderRemains ? 1 : 0;\n const avatarCount = shouldRenderRemains ? maxAvatar : childrenArray.length;\n const count = avatarCount + avatarCountOffset;\n return widthEach * count + avatarStyles.borderWidth;\n };\n\n return (\n <View style={[containerStyle, { left: -avatarStyles.borderWidth, flexDirection: 'row', width: calculateWidth() }]}>\n {renderAvatars()}\n {renderRemainsCount()}\n </View>\n );\n};\n\nexport default AvatarStack;\n"],"mappings":"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"}
@@ -13,6 +13,7 @@ var _createStyleSheet = _interopRequireDefault(require("../../styles/createStyle
13
13
  var _useUIKitTheme = _interopRequireDefault(require("../../theme/useUIKitTheme"));
14
14
  var _AvatarGroup = _interopRequireDefault(require("./AvatarGroup"));
15
15
  var _AvatarIcon = _interopRequireDefault(require("./AvatarIcon"));
16
+ var _AvatarStack = _interopRequireDefault(require("./AvatarStack"));
16
17
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
18
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
18
19
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
@@ -78,8 +79,10 @@ const styles = (0, _createStyleSheet.default)({
78
79
  overflow: 'hidden'
79
80
  }
80
81
  });
81
- Avatar.Group = _AvatarGroup.default;
82
- Avatar.Icon = _AvatarIcon.default;
83
- var _default = Avatar;
82
+ var _default = Object.assign(Avatar, {
83
+ Group: _AvatarGroup.default,
84
+ Icon: _AvatarIcon.default,
85
+ Stack: _AvatarStack.default
86
+ });
84
87
  exports.default = _default;
85
88
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_uikitUtils","_Icon","_interopRequireDefault","_Image","_createStyleSheet","_useUIKitTheme","_AvatarGroup","_AvatarIcon","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Avatar","_ref","uri","square","muted","size","containerStyle","colors","palette","useUIKitTheme","loadFailure","setLoadFailure","useState","createElement","View","style","styles","container","width","height","borderRadius","backgroundColor","background300","conditionChaining","Boolean","onError","source","resizeMode","StyleSheet","absoluteFill","icon","color","onBackgroundReverse01","MutedOverlay","_ref2","primary300","opacity","onBackgroundDark01","createStyleSheet","alignItems","justifyContent","overflow","Group","AvatarGroup","Icon","AvatarIcon","_default","exports"],"sources":["index.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport { conditionChaining } from '@sendbird/uikit-utils';\n\nimport Icon from '../../components/Icon';\nimport Image from '../../components/Image';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport AvatarGroup from './AvatarGroup';\nimport AvatarIcon from './AvatarIcon';\n\ntype SubComponents = {\n Group: typeof AvatarGroup;\n Icon: typeof AvatarIcon;\n};\ntype Props = {\n uri?: string;\n size?: number;\n square?: boolean;\n muted?: boolean;\n containerStyle?: StyleProp<ViewStyle>;\n};\nconst Avatar: ((props: Props) => JSX.Element) & SubComponents = ({\n uri,\n square,\n muted = false,\n size = 56,\n containerStyle,\n}) => {\n const { colors, palette } = useUIKitTheme();\n const [loadFailure, setLoadFailure] = useState(false);\n\n return (\n <View\n style={[\n styles.container,\n { width: size, height: size, borderRadius: square ? 0 : size / 2, backgroundColor: palette.background300 },\n containerStyle,\n ]}\n >\n {conditionChaining(\n [Boolean(uri) && !loadFailure],\n [\n <Image\n onError={() => setLoadFailure(true)}\n source={{ uri }}\n resizeMode={'cover'}\n style={StyleSheet.absoluteFill}\n />,\n <Icon icon={'user'} size={size / 2} color={colors.onBackgroundReverse01} />,\n ],\n )}\n {muted && <MutedOverlay size={size} />}\n </View>\n );\n};\n\nconst MutedOverlay = ({ size }: { size: number }) => {\n const { palette } = useUIKitTheme();\n return (\n <View style={[styles.container, StyleSheet.absoluteFill]}>\n <View style={[StyleSheet.absoluteFill, { backgroundColor: palette.primary300, opacity: 0.5 }]} />\n <Icon color={palette.onBackgroundDark01} icon={'mute'} size={size * 0.72} />\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n alignItems: 'center',\n justifyContent: 'center',\n overflow: 'hidden',\n },\n});\n\nAvatar.Group = AvatarGroup;\nAvatar.Icon = AvatarIcon;\nexport default Avatar;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_uikitUtils","_Icon","_interopRequireDefault","_Image","_createStyleSheet","_useUIKitTheme","_AvatarGroup","_AvatarIcon","_AvatarStack","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","Avatar","_ref","uri","square","muted","size","containerStyle","colors","palette","useUIKitTheme","loadFailure","setLoadFailure","useState","createElement","View","style","styles","container","width","height","borderRadius","backgroundColor","background300","conditionChaining","Boolean","onError","source","resizeMode","StyleSheet","absoluteFill","icon","color","onBackgroundReverse01","MutedOverlay","_ref2","primary300","opacity","onBackgroundDark01","createStyleSheet","alignItems","justifyContent","overflow","_default","assign","Group","AvatarGroup","Icon","AvatarIcon","Stack","AvatarStack","exports"],"sources":["index.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\n\nimport { conditionChaining } from '@sendbird/uikit-utils';\n\nimport Icon from '../../components/Icon';\nimport Image from '../../components/Image';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport AvatarGroup from './AvatarGroup';\nimport AvatarIcon from './AvatarIcon';\nimport AvatarStack from './AvatarStack';\n\ntype Props = {\n uri?: string;\n size?: number;\n square?: boolean;\n muted?: boolean;\n containerStyle?: StyleProp<ViewStyle>;\n};\n\nconst Avatar = ({ uri, square, muted = false, size = 56, containerStyle }: Props) => {\n const { colors, palette } = useUIKitTheme();\n const [loadFailure, setLoadFailure] = useState(false);\n\n return (\n <View\n style={[\n styles.container,\n { width: size, height: size, borderRadius: square ? 0 : size / 2, backgroundColor: palette.background300 },\n containerStyle,\n ]}\n >\n {conditionChaining(\n [Boolean(uri) && !loadFailure],\n [\n <Image\n onError={() => setLoadFailure(true)}\n source={{ uri }}\n resizeMode={'cover'}\n style={StyleSheet.absoluteFill}\n />,\n <Icon icon={'user'} size={size / 2} color={colors.onBackgroundReverse01} />,\n ],\n )}\n {muted && <MutedOverlay size={size} />}\n </View>\n );\n};\n\nconst MutedOverlay = ({ size }: { size: number }) => {\n const { palette } = useUIKitTheme();\n return (\n <View style={[styles.container, StyleSheet.absoluteFill]}>\n <View style={[StyleSheet.absoluteFill, { backgroundColor: palette.primary300, opacity: 0.5 }]} />\n <Icon color={palette.onBackgroundDark01} icon={'mute'} size={size * 0.72} />\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n alignItems: 'center',\n justifyContent: 'center',\n overflow: 'hidden',\n },\n});\n\nexport default Object.assign(Avatar, {\n Group: AvatarGroup,\n Icon: AvatarIcon,\n Stack: AvatarStack,\n});\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeSafeAreaContext","_Modal","_useHeaderStyle","_DialogSheet","obj","__esModule","default","BottomSheet","_ref","onDismiss","onHide","visible","sheetItems","HeaderComponent","statusBarTranslucent","useHeaderStyle","width","useWindowDimensions","bottom","left","right","useSafeAreaInsets","createElement","type","onClose","backgroundStyle","alignItems","justifyContent","style","paddingBottom","map","_ref2","idx","onPress","props","TouchableOpacity","activeOpacity","key","title","paddingLeft","paddingRight","disabled","Item","_default","exports"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { TouchableOpacity, useWindowDimensions } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport type Icon from '../../components/Icon';\nimport Modal from '../../components/Modal';\nimport useHeaderStyle from '../../styles/useHeaderStyle';\nimport DialogSheet from '../Dialog/DialogSheet';\n\ntype HeaderProps = { onClose: () => Promise<void> };\nexport type BottomSheetItem = {\n sheetItems: {\n icon?: keyof typeof Icon.Assets;\n iconColor?: string;\n title: string;\n titleColor?: string;\n disabled?: boolean;\n onPress: () => void;\n }[];\n HeaderComponent?: (props: HeaderProps) => JSX.Element;\n};\ntype Props = {\n visible: boolean;\n onHide: () => Promise<void>;\n onError?: (error: unknown) => void;\n onDismiss?: () => void;\n} & BottomSheetItem;\nconst BottomSheet = ({ onDismiss, onHide, visible, sheetItems, HeaderComponent }: Props) => {\n const { statusBarTranslucent } = useHeaderStyle();\n const { width } = useWindowDimensions();\n const { bottom, left, right } = useSafeAreaInsets();\n return (\n <Modal\n type={'slide'}\n onClose={onHide}\n onDismiss={onDismiss}\n statusBarTranslucent={statusBarTranslucent}\n visible={visible}\n backgroundStyle={{ alignItems: 'center', justifyContent: 'flex-end' }}\n >\n <DialogSheet style={{ width, paddingBottom: bottom }}>\n {HeaderComponent && <HeaderComponent onClose={onHide} />}\n {sheetItems.map(({ onPress, ...props }, idx) => (\n <TouchableOpacity\n activeOpacity={0.75}\n key={props.title + idx}\n style={{ paddingLeft: left, paddingRight: right }}\n disabled={props.disabled}\n onPress={async () => {\n await onHide();\n try {\n onPress();\n } catch {}\n }}\n >\n <DialogSheet.Item {...props} />\n </TouchableOpacity>\n ))}\n </DialogSheet>\n </Modal>\n );\n};\n\nexport default BottomSheet;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,2BAAA,GAAAF,OAAA;AAGA,IAAAG,MAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,eAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,YAAA,GAAAN,sBAAA,CAAAC,OAAA;AAAgD,SAAAD,uBAAAO,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAoBhD,MAAMG,WAAW,GAAGC,IAAA,IAAwE;EAAA,IAAvE;IAAEC,SAAS;IAAEC,MAAM;IAAEC,OAAO;IAAEC,UAAU;IAAEC;EAAuB,CAAC,GAAAL,IAAA;EACrF,MAAM;IAAEM;EAAqB,CAAC,GAAG,IAAAC,uBAAc,GAAE;EACjD,MAAM;IAAEC;EAAM,CAAC,GAAG,IAAAC,gCAAmB,GAAE;EACvC,MAAM;IAAEC,MAAM;IAAEC,IAAI;IAAEC;EAAM,CAAC,GAAG,IAAAC,6CAAiB,GAAE;EACnD,oBACEzB,MAAA,CAAAU,OAAA,CAAAgB,aAAA,CAACrB,MAAA,CAAAK,OAAK;IACJiB,IAAI,EAAE,OAAQ;IACdC,OAAO,EAAEd,MAAO;IAChBD,SAAS,EAAEA,SAAU;IACrBK,oBAAoB,EAAEA,oBAAqB;IAC3CH,OAAO,EAAEA,OAAQ;IACjBc,eAAe,EAAE;MAAEC,UAAU,EAAE,QAAQ;MAAEC,cAAc,EAAE;IAAW;EAAE,gBAEtE/B,MAAA,CAAAU,OAAA,CAAAgB,aAAA,CAACnB,YAAA,CAAAG,OAAW;IAACsB,KAAK,EAAE;MAAEZ,KAAK;MAAEa,aAAa,EAAEX;IAAO;EAAE,GAClDL,eAAe,iBAAIjB,MAAA,CAAAU,OAAA,CAAAgB,aAAA,CAACT,eAAe;IAACW,OAAO,EAAEd;EAAO,EAAG,EACvDE,UAAU,CAACkB,GAAG,CAAC,CAAAC,KAAA,EAAwBC,GAAG;IAAA,IAA1B;MAAEC,OAAO;MAAE,GAAGC;IAAM,CAAC,GAAAH,KAAA;IAAA,oBACpCnC,MAAA,CAAAU,OAAA,CAAAgB,aAAA,CAACvB,YAAA,CAAAoC,gBAAgB;MACfC,aAAa,EAAE,IAAK;MACpBC,GAAG,EAAEH,KAAK,CAACI,KAAK,GAAGN,GAAI;MACvBJ,KAAK,EAAE;QAAEW,WAAW,EAAEpB,IAAI;QAAEqB,YAAY,EAAEpB;MAAM,CAAE;MAClDqB,QAAQ,EAAEP,KAAK,CAACO,QAAS;MACzBR,OAAO,EAAE,MAAAA,CAAA,KAAY;QACnB,MAAMvB,MAAM,EAAE;QACd,IAAI;UACFuB,OAAO,EAAE;QACX,CAAC,CAAC,MAAM,CAAC;MACX;IAAE,gBAEFrC,MAAA,CAAAU,OAAA,CAAAgB,aAAA,CAACnB,YAAA,CAAAG,OAAW,CAACoC,IAAI,EAAKR,KAAK,CAAI,CACd;EAAA,CACpB,CAAC,CACU,CACR;AAEZ,CAAC;AAAC,IAAAS,QAAA,GAEapC,WAAW;AAAAqC,OAAA,CAAAtC,OAAA,GAAAqC,QAAA"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeSafeAreaContext","_Modal","_useHeaderStyle","_DialogSheet","obj","__esModule","default","BottomSheet","_ref","onDismiss","onHide","visible","sheetItems","HeaderComponent","statusBarTranslucent","useHeaderStyle","width","useWindowDimensions","bottom","left","right","useSafeAreaInsets","createElement","type","onClose","backgroundStyle","alignItems","justifyContent","style","paddingBottom","map","_ref2","idx","onPress","props","TouchableOpacity","activeOpacity","key","title","paddingLeft","paddingRight","disabled","Item","_default","exports"],"sources":["index.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport { TouchableOpacity, useWindowDimensions } from 'react-native';\nimport { useSafeAreaInsets } from 'react-native-safe-area-context';\n\nimport type Icon from '../../components/Icon';\nimport Modal from '../../components/Modal';\nimport useHeaderStyle from '../../styles/useHeaderStyle';\nimport DialogSheet from '../Dialog/DialogSheet';\n\ntype HeaderProps = { onClose: () => Promise<void> };\nexport type BottomSheetItem = {\n sheetItems: {\n icon?: keyof typeof Icon.Assets;\n iconColor?: string;\n title: string;\n titleColor?: string;\n disabled?: boolean;\n onPress: () => void;\n }[];\n HeaderComponent?: (props: HeaderProps) => ReactNode;\n};\ntype Props = {\n visible: boolean;\n onHide: () => Promise<void>;\n onError?: (error: unknown) => void;\n onDismiss?: () => void;\n} & BottomSheetItem;\nconst BottomSheet = ({ onDismiss, onHide, visible, sheetItems, HeaderComponent }: Props) => {\n const { statusBarTranslucent } = useHeaderStyle();\n const { width } = useWindowDimensions();\n const { bottom, left, right } = useSafeAreaInsets();\n return (\n <Modal\n type={'slide'}\n onClose={onHide}\n onDismiss={onDismiss}\n statusBarTranslucent={statusBarTranslucent}\n visible={visible}\n backgroundStyle={{ alignItems: 'center', justifyContent: 'flex-end' }}\n >\n <DialogSheet style={{ width, paddingBottom: bottom }}>\n {HeaderComponent && <HeaderComponent onClose={onHide} />}\n {sheetItems.map(({ onPress, ...props }, idx) => (\n <TouchableOpacity\n activeOpacity={0.75}\n key={props.title + idx}\n style={{ paddingLeft: left, paddingRight: right }}\n disabled={props.disabled}\n onPress={async () => {\n await onHide();\n try {\n onPress();\n } catch {}\n }}\n >\n <DialogSheet.Item {...props} />\n </TouchableOpacity>\n ))}\n </DialogSheet>\n </Modal>\n );\n};\n\nexport default BottomSheet;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,2BAAA,GAAAF,OAAA;AAGA,IAAAG,MAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,eAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,YAAA,GAAAN,sBAAA,CAAAC,OAAA;AAAgD,SAAAD,uBAAAO,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAoBhD,MAAMG,WAAW,GAAGC,IAAA,IAAwE;EAAA,IAAvE;IAAEC,SAAS;IAAEC,MAAM;IAAEC,OAAO;IAAEC,UAAU;IAAEC;EAAuB,CAAC,GAAAL,IAAA;EACrF,MAAM;IAAEM;EAAqB,CAAC,GAAG,IAAAC,uBAAc,GAAE;EACjD,MAAM;IAAEC;EAAM,CAAC,GAAG,IAAAC,gCAAmB,GAAE;EACvC,MAAM;IAAEC,MAAM;IAAEC,IAAI;IAAEC;EAAM,CAAC,GAAG,IAAAC,6CAAiB,GAAE;EACnD,oBACEzB,MAAA,CAAAU,OAAA,CAAAgB,aAAA,CAACrB,MAAA,CAAAK,OAAK;IACJiB,IAAI,EAAE,OAAQ;IACdC,OAAO,EAAEd,MAAO;IAChBD,SAAS,EAAEA,SAAU;IACrBK,oBAAoB,EAAEA,oBAAqB;IAC3CH,OAAO,EAAEA,OAAQ;IACjBc,eAAe,EAAE;MAAEC,UAAU,EAAE,QAAQ;MAAEC,cAAc,EAAE;IAAW;EAAE,gBAEtE/B,MAAA,CAAAU,OAAA,CAAAgB,aAAA,CAACnB,YAAA,CAAAG,OAAW;IAACsB,KAAK,EAAE;MAAEZ,KAAK;MAAEa,aAAa,EAAEX;IAAO;EAAE,GAClDL,eAAe,iBAAIjB,MAAA,CAAAU,OAAA,CAAAgB,aAAA,CAACT,eAAe;IAACW,OAAO,EAAEd;EAAO,EAAG,EACvDE,UAAU,CAACkB,GAAG,CAAC,CAAAC,KAAA,EAAwBC,GAAG;IAAA,IAA1B;MAAEC,OAAO;MAAE,GAAGC;IAAM,CAAC,GAAAH,KAAA;IAAA,oBACpCnC,MAAA,CAAAU,OAAA,CAAAgB,aAAA,CAACvB,YAAA,CAAAoC,gBAAgB;MACfC,aAAa,EAAE,IAAK;MACpBC,GAAG,EAAEH,KAAK,CAACI,KAAK,GAAGN,GAAI;MACvBJ,KAAK,EAAE;QAAEW,WAAW,EAAEpB,IAAI;QAAEqB,YAAY,EAAEpB;MAAM,CAAE;MAClDqB,QAAQ,EAAEP,KAAK,CAACO,QAAS;MACzBR,OAAO,EAAE,MAAAA,CAAA,KAAY;QACnB,MAAMvB,MAAM,EAAE;QACd,IAAI;UACFuB,OAAO,EAAE;QACX,CAAC,CAAC,MAAM,CAAC;MACX;IAAE,gBAEFrC,MAAA,CAAAU,OAAA,CAAAgB,aAAA,CAACnB,YAAA,CAAAG,OAAW,CAACoC,IAAI,EAAKR,KAAK,CAAI,CACd;EAAA,CACpB,CAAC,CACU,CACR;AAEZ,CAAC;AAAC,IAAAS,QAAA,GAEapC,WAAW;AAAAqC,OAAA,CAAAtC,OAAA,GAAAqC,QAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_Icon","_Text","_createStyleSheet","_useUIKitTheme","obj","__esModule","default","DialogSheet","_ref","style","children","colors","useUIKitTheme","createElement","View","styles","container","backgroundColor","ui","dialog","none","background","SheetItem","_ref2","icon","title","iconColor","titleColor","disabled","sheetItemContainer","color","blurred","highlight","containerStyle","sheetItemIcon","subtitle1","numberOfLines","text","sheetItemText","createStyleSheet","overflow","flexDirection","width","borderTopLeftRadius","borderTopRightRadius","alignItems","height","marginLeft","flex","marginHorizontal","Item","_default","exports"],"sources":["DialogSheet.tsx"],"sourcesContent":["import React from 'react';\nimport { StyleProp, View, ViewStyle } from 'react-native';\n\nimport Icon from '../../components/Icon';\nimport Text from '../../components/Text';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\n\ntype Props = React.PropsWithChildren<{\n style?: StyleProp<ViewStyle>;\n}>;\nconst DialogSheet: ((props: Props) => JSX.Element) & { Item: typeof SheetItem } = ({ style, children }) => {\n const { colors } = useUIKitTheme();\n return (\n <View style={[styles.container, { backgroundColor: colors.ui.dialog.default.none.background }, style]}>\n {children}\n </View>\n );\n};\n\nexport type SheetItemProps = {\n icon?: keyof typeof Icon.Assets;\n iconColor?: string;\n title: string;\n titleColor?: string;\n disabled?: boolean;\n};\nconst SheetItem = ({ icon, title, iconColor, titleColor, disabled = false }: SheetItemProps) => {\n const { colors } = useUIKitTheme();\n return (\n <View style={[styles.sheetItemContainer, { backgroundColor: colors.ui.dialog.default.none.background }]}>\n {icon && (\n <Icon\n icon={icon}\n color={\n iconColor ?? (disabled ? colors.ui.dialog.default.none.blurred : colors.ui.dialog.default.none.highlight)\n }\n containerStyle={styles.sheetItemIcon}\n />\n )}\n <Text\n subtitle1\n numberOfLines={1}\n color={titleColor ?? (disabled ? colors.ui.dialog.default.none.blurred : colors.ui.dialog.default.none.text)}\n style={styles.sheetItemText}\n >\n {title}\n </Text>\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n overflow: 'hidden',\n flexDirection: 'column',\n width: '100%',\n borderTopLeftRadius: 8,\n borderTopRightRadius: 8,\n },\n sheetItemContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n height: 48,\n },\n sheetItemIcon: {\n marginLeft: 16,\n },\n sheetItemText: {\n flex: 1,\n marginHorizontal: 24,\n },\n});\n\nDialogSheet.Item = SheetItem;\nexport default DialogSheet;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_Icon","_Text","_createStyleSheet","_useUIKitTheme","obj","__esModule","default","DialogSheet","_ref","style","children","colors","useUIKitTheme","createElement","View","styles","container","backgroundColor","ui","dialog","none","background","SheetItem","_ref2","icon","title","iconColor","titleColor","disabled","sheetItemContainer","color","blurred","highlight","containerStyle","sheetItemIcon","subtitle1","numberOfLines","text","sheetItemText","createStyleSheet","overflow","flexDirection","width","borderTopLeftRadius","borderTopRightRadius","alignItems","height","marginLeft","flex","marginHorizontal","Item","_default","exports"],"sources":["DialogSheet.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport { StyleProp, View, ViewStyle } from 'react-native';\n\nimport Icon from '../../components/Icon';\nimport Text from '../../components/Text';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\n\ntype Props = React.PropsWithChildren<{\n style?: StyleProp<ViewStyle>;\n}>;\nconst DialogSheet: ((props: Props) => ReactNode) & { Item: typeof SheetItem } = ({ style, children }) => {\n const { colors } = useUIKitTheme();\n return (\n <View style={[styles.container, { backgroundColor: colors.ui.dialog.default.none.background }, style]}>\n {children}\n </View>\n );\n};\n\nexport type SheetItemProps = {\n icon?: keyof typeof Icon.Assets;\n iconColor?: string;\n title: string;\n titleColor?: string;\n disabled?: boolean;\n};\nconst SheetItem = ({ icon, title, iconColor, titleColor, disabled = false }: SheetItemProps) => {\n const { colors } = useUIKitTheme();\n return (\n <View style={[styles.sheetItemContainer, { backgroundColor: colors.ui.dialog.default.none.background }]}>\n {icon && (\n <Icon\n icon={icon}\n color={\n iconColor ?? (disabled ? colors.ui.dialog.default.none.blurred : colors.ui.dialog.default.none.highlight)\n }\n containerStyle={styles.sheetItemIcon}\n />\n )}\n <Text\n subtitle1\n numberOfLines={1}\n color={titleColor ?? (disabled ? colors.ui.dialog.default.none.blurred : colors.ui.dialog.default.none.text)}\n style={styles.sheetItemText}\n >\n {title}\n </Text>\n </View>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n overflow: 'hidden',\n flexDirection: 'column',\n width: '100%',\n borderTopLeftRadius: 8,\n borderTopRightRadius: 8,\n },\n sheetItemContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n height: 48,\n },\n sheetItemIcon: {\n marginLeft: 16,\n },\n sheetItemText: {\n flex: 1,\n marginHorizontal: 24,\n },\n});\n\nDialogSheet.Item = SheetItem;\nexport default DialogSheet;\n"],"mappings":"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"}
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _uikitUtils = require("@sendbird/uikit-utils");
9
+ var _Box = _interopRequireDefault(require("../../components/Box"));
10
+ var _Icon = _interopRequireDefault(require("../../components/Icon"));
11
+ var _PressBox = _interopRequireDefault(require("../../components/PressBox"));
12
+ var _ProgressBar = _interopRequireDefault(require("../../components/ProgressBar"));
13
+ var _Text = _interopRequireDefault(require("../../components/Text"));
14
+ var _createStyleSheet = _interopRequireDefault(require("../../styles/createStyleSheet"));
15
+ var _useUIKitTheme = _interopRequireDefault(require("../../theme/useUIKitTheme"));
16
+ var _LoadingSpinner = _interopRequireDefault(require("../LoadingSpinner"));
17
+ var _MessageContainer = _interopRequireDefault(require("./MessageContainer"));
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
20
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
+ const VoiceFileMessage = props => {
22
+ const {
23
+ onLongPress,
24
+ variant = 'incoming',
25
+ onToggleVoiceMessage,
26
+ message,
27
+ durationMetaArrayKey = 'KEY_VOICE_MESSAGE_DURATION',
28
+ onUnmount
29
+ } = props;
30
+ const {
31
+ colors
32
+ } = (0, _useUIKitTheme.default)();
33
+ const [state, setState] = (0, _react.useState)(() => {
34
+ var _meta$value;
35
+ const meta = message.metaArrays.find(it => it.key === durationMetaArrayKey);
36
+ const value = meta === null || meta === void 0 ? void 0 : (_meta$value = meta.value) === null || _meta$value === void 0 ? void 0 : _meta$value[0];
37
+ const initialDuration = value ? parseInt(value, 10) : 0;
38
+ return {
39
+ status: 'paused',
40
+ currentTime: 0,
41
+ duration: initialDuration
42
+ };
43
+ });
44
+ (0, _react.useEffect)(() => {
45
+ return () => {
46
+ onUnmount();
47
+ };
48
+ }, []);
49
+ const uiColors = colors.ui.groupChannelMessage[variant];
50
+ const remainingTime = state.duration - state.currentTime;
51
+ return /*#__PURE__*/_react.default.createElement(_MessageContainer.default, props, /*#__PURE__*/_react.default.createElement(_Box.default, {
52
+ style: styles.container,
53
+ backgroundColor: uiColors.enabled.background
54
+ }, /*#__PURE__*/_react.default.createElement(_PressBox.default, {
55
+ onPress: () => onToggleVoiceMessage === null || onToggleVoiceMessage === void 0 ? void 0 : onToggleVoiceMessage(state, setState),
56
+ onLongPress: onLongPress
57
+ }, /*#__PURE__*/_react.default.createElement(_ProgressBar.default, {
58
+ current: state.currentTime,
59
+ total: state.duration,
60
+ style: {
61
+ minWidth: 136,
62
+ height: 44
63
+ },
64
+ trackColor: uiColors.enabled.voiceProgressTrack,
65
+ overlay: /*#__PURE__*/_react.default.createElement(_Box.default, {
66
+ flex: 1,
67
+ flexDirection: 'row',
68
+ alignItems: 'center',
69
+ justifyContent: 'space-between',
70
+ paddingHorizontal: 12
71
+ }, state.status === 'preparing' ? /*#__PURE__*/_react.default.createElement(_LoadingSpinner.default, {
72
+ size: 24,
73
+ color: uiColors.enabled.voiceSpinner
74
+ }) : /*#__PURE__*/_react.default.createElement(_Icon.default, {
75
+ size: 16,
76
+ containerStyle: {
77
+ backgroundColor: uiColors.enabled.voiceActionIconBackground,
78
+ padding: 6,
79
+ borderRadius: 16
80
+ },
81
+ icon: state.status === 'paused' ? 'play' : 'pause'
82
+ }), /*#__PURE__*/_react.default.createElement(_Text.default, {
83
+ body3: true,
84
+ style: {
85
+ lineHeight: undefined,
86
+ marginLeft: 6,
87
+ opacity: 0.88
88
+ },
89
+ color: uiColors.enabled.textVoicePlaytime
90
+ }, (0, _uikitUtils.millsToMSS)(state.currentTime === 0 ? state.duration : remainingTime)))
91
+ })), props.children));
92
+ };
93
+ const styles = (0, _createStyleSheet.default)({
94
+ container: {
95
+ borderRadius: 16,
96
+ overflow: 'hidden'
97
+ },
98
+ image: {
99
+ maxWidth: 240,
100
+ width: 240,
101
+ height: 160,
102
+ borderRadius: 16,
103
+ overflow: 'hidden'
104
+ }
105
+ });
106
+ var _default = VoiceFileMessage;
107
+ exports.default = _default;
108
+ //# sourceMappingURL=Message.file.voice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_uikitUtils","_Box","_interopRequireDefault","_Icon","_PressBox","_ProgressBar","_Text","_createStyleSheet","_useUIKitTheme","_LoadingSpinner","_MessageContainer","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","VoiceFileMessage","props","onLongPress","variant","onToggleVoiceMessage","message","durationMetaArrayKey","onUnmount","colors","useUIKitTheme","state","setState","useState","_meta$value","meta","metaArrays","find","it","value","initialDuration","parseInt","status","currentTime","duration","useEffect","uiColors","ui","groupChannelMessage","remainingTime","createElement","style","styles","container","backgroundColor","enabled","background","onPress","current","total","minWidth","height","trackColor","voiceProgressTrack","overlay","flex","flexDirection","alignItems","justifyContent","paddingHorizontal","size","color","voiceSpinner","containerStyle","voiceActionIconBackground","padding","borderRadius","icon","body3","lineHeight","undefined","marginLeft","opacity","textVoicePlaytime","millsToMSS","children","createStyleSheet","overflow","image","maxWidth","width","_default","exports"],"sources":["Message.file.voice.tsx"],"sourcesContent":["import React, { useEffect, useState } from 'react';\n\nimport type { SendbirdFileMessage } from '@sendbird/uikit-utils';\nimport { millsToMSS } from '@sendbird/uikit-utils';\n\nimport Box from '../../components/Box';\nimport Icon from '../../components/Icon';\nimport PressBox from '../../components/PressBox';\nimport ProgressBar from '../../components/ProgressBar';\nimport Text from '../../components/Text';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport LoadingSpinner from '../LoadingSpinner';\nimport MessageContainer from './MessageContainer';\nimport type { GroupChannelMessageProps } from './index';\n\nexport type VoiceFileMessageState = {\n status: 'preparing' | 'playing' | 'paused';\n currentTime: number;\n duration: number;\n};\n\ntype Props = GroupChannelMessageProps<\n SendbirdFileMessage,\n {\n durationMetaArrayKey?: string;\n onUnmount: () => void;\n }\n>;\nconst VoiceFileMessage = (props: Props) => {\n const {\n onLongPress,\n variant = 'incoming',\n onToggleVoiceMessage,\n message,\n durationMetaArrayKey = 'KEY_VOICE_MESSAGE_DURATION',\n onUnmount,\n } = props;\n\n const { colors } = useUIKitTheme();\n\n const [state, setState] = useState<VoiceFileMessageState>(() => {\n const meta = message.metaArrays.find((it) => it.key === durationMetaArrayKey);\n const value = meta?.value?.[0];\n const initialDuration = value ? parseInt(value, 10) : 0;\n return {\n status: 'paused',\n currentTime: 0,\n duration: initialDuration,\n };\n });\n\n useEffect(() => {\n return () => {\n onUnmount();\n };\n }, []);\n\n const uiColors = colors.ui.groupChannelMessage[variant];\n const remainingTime = state.duration - state.currentTime;\n\n return (\n <MessageContainer {...props}>\n <Box style={styles.container} backgroundColor={uiColors.enabled.background}>\n <PressBox onPress={() => onToggleVoiceMessage?.(state, setState)} onLongPress={onLongPress}>\n <ProgressBar\n current={state.currentTime}\n total={state.duration}\n style={{ minWidth: 136, height: 44 }}\n trackColor={uiColors.enabled.voiceProgressTrack}\n overlay={\n <Box\n flex={1}\n flexDirection={'row'}\n alignItems={'center'}\n justifyContent={'space-between'}\n paddingHorizontal={12}\n >\n {state.status === 'preparing' ? (\n <LoadingSpinner size={24} color={uiColors.enabled.voiceSpinner} />\n ) : (\n <Icon\n size={16}\n containerStyle={{\n backgroundColor: uiColors.enabled.voiceActionIconBackground,\n padding: 6,\n borderRadius: 16,\n }}\n icon={state.status === 'paused' ? 'play' : 'pause'}\n />\n )}\n <Text\n body3\n style={{ lineHeight: undefined, marginLeft: 6, opacity: 0.88 }}\n color={uiColors.enabled.textVoicePlaytime}\n >\n {millsToMSS(state.currentTime === 0 ? state.duration : remainingTime)}\n </Text>\n </Box>\n }\n />\n </PressBox>\n {props.children}\n </Box>\n </MessageContainer>\n );\n};\n\nconst styles = createStyleSheet({\n container: {\n borderRadius: 16,\n overflow: 'hidden',\n },\n image: {\n maxWidth: 240,\n width: 240,\n height: 160,\n borderRadius: 16,\n overflow: 'hidden',\n },\n});\n\nexport default VoiceFileMessage;\n"],"mappings":"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"}
@@ -19,7 +19,7 @@ const UnknownMessage = props => {
19
19
  const {
20
20
  colors
21
21
  } = (0, _useUIKitTheme.default)();
22
- const color = colors.ui.groupChannelMessage['incoming'];
22
+ const color = colors.ui.groupChannelMessage[variant];
23
23
  const titleColor = variant === 'incoming' ? colors.onBackground01 : colors.onBackgroundReverse01;
24
24
  const descColor = variant === 'incoming' ? colors.onBackground02 : colors.onBackgroundReverse02;
25
25
  return /*#__PURE__*/_react.default.createElement(_MessageContainer.default, props, /*#__PURE__*/_react.default.createElement(_PressBox.default, {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_Box","_PressBox","_Text","_createStyleSheet","_useUIKitTheme","_MessageContainer","obj","__esModule","default","UnknownMessage","props","variant","colors","useUIKitTheme","color","ui","groupChannelMessage","titleColor","onBackground01","onBackgroundReverse01","descColor","onBackground02","onBackgroundReverse02","createElement","onPress","onLongPress","_ref","_props$strings","_props$strings2","pressed","style","styles","bubble","backgroundColor","background","enabled","body3","strings","unknownTitle","unknownDescription","createStyleSheet","paddingVertical","paddingHorizontal","borderRadius","_default","exports"],"sources":["Message.unknown.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { SendbirdMessage } from '@sendbird/uikit-utils';\n\nimport Box from '../../components/Box';\nimport PressBox from '../../components/PressBox';\nimport Text from '../../components/Text';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport MessageContainer from './MessageContainer';\nimport type { GroupChannelMessageProps } from './index';\n\nconst UnknownMessage = (props: GroupChannelMessageProps<SendbirdMessage>) => {\n const { variant = 'incoming' } = props;\n\n const { colors } = useUIKitTheme();\n const color = colors.ui.groupChannelMessage['incoming'];\n const titleColor = variant === 'incoming' ? colors.onBackground01 : colors.onBackgroundReverse01;\n const descColor = variant === 'incoming' ? colors.onBackground02 : colors.onBackgroundReverse02;\n\n return (\n <MessageContainer {...props}>\n <PressBox onPress={props.onPress} onLongPress={props.onLongPress}>\n {({ pressed }) => (\n <Box style={styles.bubble} backgroundColor={pressed ? color.pressed.background : color.enabled.background}>\n <Text body3 color={titleColor}>\n {props.strings?.unknownTitle ?? '(Unknown message type)'}\n </Text>\n <Text body3 color={descColor}>\n {props.strings?.unknownDescription ?? 'Cannot read this message.'}\n </Text>\n </Box>\n )}\n </PressBox>\n </MessageContainer>\n );\n};\n\nconst styles = createStyleSheet({\n bubble: {\n paddingVertical: 6,\n paddingHorizontal: 12,\n borderRadius: 16,\n },\n});\n\nexport default UnknownMessage;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAIA,IAAAC,IAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,SAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,KAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,iBAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,cAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,iBAAA,GAAAP,sBAAA,CAAAC,OAAA;AAAkD,SAAAD,uBAAAQ,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAGlD,MAAMG,cAAc,GAAIC,KAAgD,IAAK;EAC3E,MAAM;IAAEC,OAAO,GAAG;EAAW,CAAC,GAAGD,KAAK;EAEtC,MAAM;IAAEE;EAAO,CAAC,GAAG,IAAAC,sBAAa,GAAE;EAClC,MAAMC,KAAK,GAAGF,MAAM,CAACG,EAAE,CAACC,mBAAmB,CAAC,UAAU,CAAC;EACvD,MAAMC,UAAU,GAAGN,OAAO,KAAK,UAAU,GAAGC,MAAM,CAACM,cAAc,GAAGN,MAAM,CAACO,qBAAqB;EAChG,MAAMC,SAAS,GAAGT,OAAO,KAAK,UAAU,GAAGC,MAAM,CAACS,cAAc,GAAGT,MAAM,CAACU,qBAAqB;EAE/F,oBACEzB,MAAA,CAAAW,OAAA,CAAAe,aAAA,CAAClB,iBAAA,CAAAG,OAAgB,EAAKE,KAAK,eACzBb,MAAA,CAAAW,OAAA,CAAAe,aAAA,CAACtB,SAAA,CAAAO,OAAQ;IAACgB,OAAO,EAAEd,KAAK,CAACc,OAAQ;IAACC,WAAW,EAAEf,KAAK,CAACe;EAAY,GAC9DC,IAAA;IAAA,IAAAC,cAAA,EAAAC,eAAA;IAAA,IAAC;MAAEC;IAAQ,CAAC,GAAAH,IAAA;IAAA,oBACX7B,MAAA,CAAAW,OAAA,CAAAe,aAAA,CAACvB,IAAA,CAAAQ,OAAG;MAACsB,KAAK,EAAEC,MAAM,CAACC,MAAO;MAACC,eAAe,EAAEJ,OAAO,GAAGf,KAAK,CAACe,OAAO,CAACK,UAAU,GAAGpB,KAAK,CAACqB,OAAO,CAACD;IAAW,gBACxGrC,MAAA,CAAAW,OAAA,CAAAe,aAAA,CAACrB,KAAA,CAAAM,OAAI;MAAC4B,KAAK;MAACtB,KAAK,EAAEG;IAAW,GAC3B,EAAAU,cAAA,GAAAjB,KAAK,CAAC2B,OAAO,cAAAV,cAAA,uBAAbA,cAAA,CAAeW,YAAY,KAAI,wBAAwB,CACnD,eACPzC,MAAA,CAAAW,OAAA,CAAAe,aAAA,CAACrB,KAAA,CAAAM,OAAI;MAAC4B,KAAK;MAACtB,KAAK,EAAEM;IAAU,GAC1B,EAAAQ,eAAA,GAAAlB,KAAK,CAAC2B,OAAO,cAAAT,eAAA,uBAAbA,eAAA,CAAeW,kBAAkB,KAAI,2BAA2B,CAC5D,CACH;EAAA,CACP,CACQ,CACM;AAEvB,CAAC;AAED,MAAMR,MAAM,GAAG,IAAAS,yBAAgB,EAAC;EAC9BR,MAAM,EAAE;IACNS,eAAe,EAAE,CAAC;IAClBC,iBAAiB,EAAE,EAAE;IACrBC,YAAY,EAAE;EAChB;AACF,CAAC,CAAC;AAAC,IAAAC,QAAA,GAEYnC,cAAc;AAAAoC,OAAA,CAAArC,OAAA,GAAAoC,QAAA"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_Box","_PressBox","_Text","_createStyleSheet","_useUIKitTheme","_MessageContainer","obj","__esModule","default","UnknownMessage","props","variant","colors","useUIKitTheme","color","ui","groupChannelMessage","titleColor","onBackground01","onBackgroundReverse01","descColor","onBackground02","onBackgroundReverse02","createElement","onPress","onLongPress","_ref","_props$strings","_props$strings2","pressed","style","styles","bubble","backgroundColor","background","enabled","body3","strings","unknownTitle","unknownDescription","createStyleSheet","paddingVertical","paddingHorizontal","borderRadius","_default","exports"],"sources":["Message.unknown.tsx"],"sourcesContent":["import React from 'react';\n\nimport type { SendbirdMessage } from '@sendbird/uikit-utils';\n\nimport Box from '../../components/Box';\nimport PressBox from '../../components/PressBox';\nimport Text from '../../components/Text';\nimport createStyleSheet from '../../styles/createStyleSheet';\nimport useUIKitTheme from '../../theme/useUIKitTheme';\nimport MessageContainer from './MessageContainer';\nimport type { GroupChannelMessageProps } from './index';\n\nconst UnknownMessage = (props: GroupChannelMessageProps<SendbirdMessage>) => {\n const { variant = 'incoming' } = props;\n\n const { colors } = useUIKitTheme();\n const color = colors.ui.groupChannelMessage[variant];\n const titleColor = variant === 'incoming' ? colors.onBackground01 : colors.onBackgroundReverse01;\n const descColor = variant === 'incoming' ? colors.onBackground02 : colors.onBackgroundReverse02;\n\n return (\n <MessageContainer {...props}>\n <PressBox onPress={props.onPress} onLongPress={props.onLongPress}>\n {({ pressed }) => (\n <Box style={styles.bubble} backgroundColor={pressed ? color.pressed.background : color.enabled.background}>\n <Text body3 color={titleColor}>\n {props.strings?.unknownTitle ?? '(Unknown message type)'}\n </Text>\n <Text body3 color={descColor}>\n {props.strings?.unknownDescription ?? 'Cannot read this message.'}\n </Text>\n </Box>\n )}\n </PressBox>\n </MessageContainer>\n );\n};\n\nconst styles = createStyleSheet({\n bubble: {\n paddingVertical: 6,\n paddingHorizontal: 12,\n borderRadius: 16,\n },\n});\n\nexport default UnknownMessage;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AAIA,IAAAC,IAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,SAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,KAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,iBAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,cAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,iBAAA,GAAAP,sBAAA,CAAAC,OAAA;AAAkD,SAAAD,uBAAAQ,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAGlD,MAAMG,cAAc,GAAIC,KAAgD,IAAK;EAC3E,MAAM;IAAEC,OAAO,GAAG;EAAW,CAAC,GAAGD,KAAK;EAEtC,MAAM;IAAEE;EAAO,CAAC,GAAG,IAAAC,sBAAa,GAAE;EAClC,MAAMC,KAAK,GAAGF,MAAM,CAACG,EAAE,CAACC,mBAAmB,CAACL,OAAO,CAAC;EACpD,MAAMM,UAAU,GAAGN,OAAO,KAAK,UAAU,GAAGC,MAAM,CAACM,cAAc,GAAGN,MAAM,CAACO,qBAAqB;EAChG,MAAMC,SAAS,GAAGT,OAAO,KAAK,UAAU,GAAGC,MAAM,CAACS,cAAc,GAAGT,MAAM,CAACU,qBAAqB;EAE/F,oBACEzB,MAAA,CAAAW,OAAA,CAAAe,aAAA,CAAClB,iBAAA,CAAAG,OAAgB,EAAKE,KAAK,eACzBb,MAAA,CAAAW,OAAA,CAAAe,aAAA,CAACtB,SAAA,CAAAO,OAAQ;IAACgB,OAAO,EAAEd,KAAK,CAACc,OAAQ;IAACC,WAAW,EAAEf,KAAK,CAACe;EAAY,GAC9DC,IAAA;IAAA,IAAAC,cAAA,EAAAC,eAAA;IAAA,IAAC;MAAEC;IAAQ,CAAC,GAAAH,IAAA;IAAA,oBACX7B,MAAA,CAAAW,OAAA,CAAAe,aAAA,CAACvB,IAAA,CAAAQ,OAAG;MAACsB,KAAK,EAAEC,MAAM,CAACC,MAAO;MAACC,eAAe,EAAEJ,OAAO,GAAGf,KAAK,CAACe,OAAO,CAACK,UAAU,GAAGpB,KAAK,CAACqB,OAAO,CAACD;IAAW,gBACxGrC,MAAA,CAAAW,OAAA,CAAAe,aAAA,CAACrB,KAAA,CAAAM,OAAI;MAAC4B,KAAK;MAACtB,KAAK,EAAEG;IAAW,GAC3B,EAAAU,cAAA,GAAAjB,KAAK,CAAC2B,OAAO,cAAAV,cAAA,uBAAbA,cAAA,CAAeW,YAAY,KAAI,wBAAwB,CACnD,eACPzC,MAAA,CAAAW,OAAA,CAAAe,aAAA,CAACrB,KAAA,CAAAM,OAAI;MAAC4B,KAAK;MAACtB,KAAK,EAAEM;IAAU,GAC1B,EAAAQ,eAAA,GAAAlB,KAAK,CAAC2B,OAAO,cAAAT,eAAA,uBAAbA,eAAA,CAAeW,kBAAkB,KAAI,2BAA2B,CAC5D,CACH;EAAA,CACP,CACQ,CACM;AAEvB,CAAC;AAED,MAAMR,MAAM,GAAG,IAAAS,yBAAgB,EAAC;EAC9BR,MAAM,EAAE;IACNS,eAAe,EAAE,CAAC;IAClBC,iBAAiB,EAAE,EAAE;IACrBC,YAAY,EAAE;EAChB;AACF,CAAC,CAAC;AAAC,IAAAC,QAAA,GAEYnC,cAAc;AAAAoC,OAAA,CAAArC,OAAA,GAAAoC,QAAA"}
@@ -8,6 +8,7 @@ var _Message = _interopRequireDefault(require("./Message.admin"));
8
8
  var _Message2 = _interopRequireDefault(require("./Message.file"));
9
9
  var _MessageFile = _interopRequireDefault(require("./Message.file.image"));
10
10
  var _MessageFile2 = _interopRequireDefault(require("./Message.file.video"));
11
+ var _MessageFile3 = _interopRequireDefault(require("./Message.file.voice"));
11
12
  var _Message3 = _interopRequireDefault(require("./Message.unknown"));
12
13
  var _Message4 = _interopRequireDefault(require("./Message.user"));
13
14
  var _MessageUser = _interopRequireDefault(require("./Message.user.og"));
@@ -18,6 +19,7 @@ const GroupChannelMessage = {
18
19
  File: _Message2.default,
19
20
  ImageFile: _MessageFile.default,
20
21
  VideoFile: _MessageFile2.default,
22
+ VoiceFile: _MessageFile3.default,
21
23
  Admin: _Message.default,
22
24
  Unknown: _Message3.default
23
25
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_Message","_interopRequireDefault","require","_Message2","_MessageFile","_MessageFile2","_Message3","_Message4","_MessageUser","obj","__esModule","default","GroupChannelMessage","User","UserMessage","OpenGraphUser","File","FileMessage","ImageFile","ImageFileMessage","VideoFile","VideoFileMessage","Admin","AdminMessage","Unknown","UnknownMessage","_default","exports"],"sources":["index.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { SendbirdGroupChannel, SendbirdMessage, SendbirdUser } from '@sendbird/uikit-utils';\n\nimport AdminMessage from './Message.admin';\nimport FileMessage from './Message.file';\nimport ImageFileMessage from './Message.file.image';\nimport VideoFileMessage from './Message.file.video';\nimport UnknownMessage from './Message.unknown';\nimport UserMessage from './Message.user';\nimport OpenGraphUser from './Message.user.og';\n\nexport type GroupChannelMessageProps<T extends SendbirdMessage, AdditionalProps = unknown> = {\n channel: SendbirdGroupChannel;\n message: T;\n variant?: 'outgoing' | 'incoming';\n strings?: {\n senderName?: string;\n sentDate?: string;\n edited?: string;\n fileName?: string;\n unknownTitle?: string;\n unknownDescription?: string;\n };\n\n children?: React.ReactNode;\n sendingStatus?: React.ReactNode;\n parentMessage?: React.ReactNode;\n\n groupedWithPrev: boolean;\n groupedWithNext: boolean;\n onPress?: () => void;\n onLongPress?: () => void;\n onPressAvatar?: () => void;\n onPressURL?: (url: string) => void;\n onPressMentionedUser?: (mentionedUser?: SendbirdUser) => void;\n} & AdditionalProps;\n\nconst GroupChannelMessage = {\n User: UserMessage,\n OpenGraphUser: OpenGraphUser,\n File: FileMessage,\n ImageFile: ImageFileMessage,\n VideoFile: VideoFileMessage,\n Admin: AdminMessage,\n Unknown: UnknownMessage,\n};\n\nexport default GroupChannelMessage;\n"],"mappings":";;;;;;AAIA,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,YAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,aAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,SAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,SAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,YAAA,GAAAP,sBAAA,CAAAC,OAAA;AAA8C,SAAAD,uBAAAQ,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AA4B9C,MAAMG,mBAAmB,GAAG;EAC1BC,IAAI,EAAEC,iBAAW;EACjBC,aAAa,EAAEA,oBAAa;EAC5BC,IAAI,EAAEC,iBAAW;EACjBC,SAAS,EAAEC,oBAAgB;EAC3BC,SAAS,EAAEC,qBAAgB;EAC3BC,KAAK,EAAEC,gBAAY;EACnBC,OAAO,EAAEC;AACX,CAAC;AAAC,IAAAC,QAAA,GAEad,mBAAmB;AAAAe,OAAA,CAAAhB,OAAA,GAAAe,QAAA"}
1
+ {"version":3,"names":["_Message","_interopRequireDefault","require","_Message2","_MessageFile","_MessageFile2","_MessageFile3","_Message3","_Message4","_MessageUser","obj","__esModule","default","GroupChannelMessage","User","UserMessage","OpenGraphUser","File","FileMessage","ImageFile","ImageFileMessage","VideoFile","VideoFileMessage","VoiceFile","VoiceFileMessage","Admin","AdminMessage","Unknown","UnknownMessage","_default","exports"],"sources":["index.ts"],"sourcesContent":["import type React from 'react';\n\nimport type { SendbirdGroupChannel, SendbirdMessage, SendbirdUser } from '@sendbird/uikit-utils';\n\nimport AdminMessage from './Message.admin';\nimport FileMessage from './Message.file';\nimport ImageFileMessage from './Message.file.image';\nimport VideoFileMessage from './Message.file.video';\nimport VoiceFileMessage from './Message.file.voice';\nimport type { VoiceFileMessageState } from './Message.file.voice';\nimport UnknownMessage from './Message.unknown';\nimport UserMessage from './Message.user';\nimport OpenGraphUser from './Message.user.og';\n\nexport type GroupChannelMessageProps<T extends SendbirdMessage, AdditionalProps = unknown> = {\n channel: SendbirdGroupChannel;\n message: T;\n variant?: 'outgoing' | 'incoming';\n strings?: {\n senderName?: string;\n sentDate?: string;\n edited?: string;\n fileName?: string;\n unknownTitle?: string;\n unknownDescription?: string;\n };\n\n children?: React.ReactNode;\n sendingStatus?: React.ReactNode;\n parentMessage?: React.ReactNode;\n\n groupedWithPrev: boolean;\n groupedWithNext: boolean;\n onPress?: () => void;\n onLongPress?: () => void;\n onPressAvatar?: () => void;\n onPressURL?: (url: string) => void;\n onPressMentionedUser?: (mentionedUser?: SendbirdUser) => void;\n onToggleVoiceMessage?: (\n state: VoiceFileMessageState,\n setState: React.Dispatch<React.SetStateAction<VoiceFileMessageState>>,\n ) => Promise<void>;\n} & AdditionalProps;\n\nconst GroupChannelMessage = {\n User: UserMessage,\n OpenGraphUser: OpenGraphUser,\n File: FileMessage,\n ImageFile: ImageFileMessage,\n VideoFile: VideoFileMessage,\n VoiceFile: VoiceFileMessage,\n Admin: AdminMessage,\n Unknown: UnknownMessage,\n};\n\nexport default GroupChannelMessage;\n"],"mappings":";;;;;;AAIA,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,SAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,YAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,aAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,aAAA,GAAAL,sBAAA,CAAAC,OAAA;AAEA,IAAAK,SAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,SAAA,GAAAP,sBAAA,CAAAC,OAAA;AACA,IAAAO,YAAA,GAAAR,sBAAA,CAAAC,OAAA;AAA8C,SAAAD,uBAAAS,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAgC9C,MAAMG,mBAAmB,GAAG;EAC1BC,IAAI,EAAEC,iBAAW;EACjBC,aAAa,EAAEA,oBAAa;EAC5BC,IAAI,EAAEC,iBAAW;EACjBC,SAAS,EAAEC,oBAAgB;EAC3BC,SAAS,EAAEC,qBAAgB;EAC3BC,SAAS,EAAEC,qBAAgB;EAC3BC,KAAK,EAAEC,gBAAY;EACnBC,OAAO,EAAEC;AACX,CAAC;AAAC,IAAAC,QAAA,GAEahB,mBAAmB;AAAAiB,OAAA,CAAAlB,OAAA,GAAAiB,QAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_uikitUtils","_Icon","_Image","_Text","_createStyleSheet","_useUIKitTheme","_Badge","obj","__esModule","default","GroupChannelPreview","_ref","customCover","coverUrl","memberCount","badgeCount","maxBadgeCount","body","bodyIcon","title","titleCaption","titleCaptionLeft","frozen","notificationOff","broadcast","mentioned","mentionTrigger","colors","useUIKitTheme","color","ui","groupChannelPreview","createElement","View","style","styles","container","backgroundColor","none","background","coverContainer","conditionChaining","Boolean","resizeMode","channelCover","coverBackground","source","uri","rightSection","rightTopSection","channelInfoContainer","size","icon","secondary","containerStyle","channelInfoBroadcast","numberOfLines","subtitle1","channelInfoTitle","textTitle","caption1","channelInfoMemberCount","primary","channelInfoFrozen","onBackground03","titleCaptionContainer","caption2","textTitleCaption","titleCaptionText","rightBottomSection","bodyWrapper","bodyIconBackground","body3","ellipsizeMode","bodyText","textBody","unreadContainer","h2","badge","unreadMention","count","maxCount","Separator","separator","_ref2","createStyleSheet","height","width","flexDirection","alignItems","justifyContent","marginLeft","marginRight","borderRadius","flex","paddingTop","paddingRight","marginBottom","flexShrink","marginTop","position","left","right","bottom","_default","exports"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\n\nimport { conditionChaining } from '@sendbird/uikit-utils';\n\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';\nimport Badge from '../Badge';\n\ntype Props = {\n customCover?: React.ReactElement;\n coverUrl: string;\n\n title: string;\n\n titleCaption: string;\n titleCaptionLeft?: React.ReactElement;\n\n bodyIcon?: keyof typeof Icon.Assets;\n body: string;\n\n memberCount?: number;\n badgeCount: number;\n maxBadgeCount?: number;\n\n frozen?: boolean;\n notificationOff?: boolean;\n broadcast?: boolean;\n mentioned?: boolean;\n mentionTrigger?: string;\n};\n\nconst GroupChannelPreview = ({\n customCover,\n coverUrl,\n memberCount,\n badgeCount,\n maxBadgeCount,\n body,\n bodyIcon,\n title,\n titleCaption,\n titleCaptionLeft,\n frozen,\n notificationOff,\n broadcast,\n mentioned,\n mentionTrigger = '@',\n}: Props) => {\n const { colors } = useUIKitTheme();\n const color = colors.ui.groupChannelPreview;\n\n return (\n <View style={[styles.container, { backgroundColor: color.default.none.background }]}>\n <View style={styles.coverContainer}>\n {conditionChaining(\n [Boolean(customCover)],\n [\n customCover,\n <Image\n resizeMode={'cover'}\n style={[styles.channelCover, { backgroundColor: color.default.none.coverBackground }]}\n source={{ uri: coverUrl }}\n />,\n ],\n )}\n </View>\n <View style={styles.rightSection}>\n <View style={styles.rightTopSection}>\n <View style={styles.channelInfoContainer}>\n {broadcast && (\n <Icon\n size={16}\n icon={'broadcast'}\n color={colors.secondary}\n containerStyle={styles.channelInfoBroadcast}\n />\n )}\n <Text numberOfLines={1} subtitle1 style={styles.channelInfoTitle} color={color.default.none.textTitle}>\n {title}\n </Text>\n {Boolean(memberCount) && (\n <Text caption1 style={styles.channelInfoMemberCount} color={color.default.none.memberCount}>\n {memberCount}\n </Text>\n )}\n {frozen && (\n <Icon size={16} icon={'freeze'} color={colors.primary} containerStyle={styles.channelInfoFrozen} />\n )}\n {notificationOff && <Icon size={16} icon={'notifications-off-filled'} color={colors.onBackground03} />}\n </View>\n <View style={styles.titleCaptionContainer}>\n {titleCaptionLeft}\n <Text caption2 color={color.default.none.textTitleCaption} style={styles.titleCaptionText}>\n {titleCaption}\n </Text>\n </View>\n </View>\n\n <View style={styles.rightBottomSection}>\n <View style={styles.body}>\n <View style={styles.bodyWrapper}>\n {bodyIcon && (\n <Icon\n size={18}\n icon={bodyIcon}\n color={color.default.none.bodyIcon}\n containerStyle={[\n styles.bodyIcon,\n { backgroundColor: colors.ui.groupChannelPreview.default.none.bodyIconBackground },\n ]}\n />\n )}\n <Text\n body3\n numberOfLines={1}\n ellipsizeMode={bodyIcon ? 'middle' : 'tail'}\n style={styles.bodyText}\n color={color.default.none.textBody}\n >\n {body}\n </Text>\n </View>\n </View>\n <View style={styles.unreadContainer}>\n {mentioned && (\n <Text h2 color={colors.ui.badge.default.none.background} style={styles.unreadMention}>\n {mentionTrigger}\n </Text>\n )}\n {badgeCount > 0 && <Badge count={badgeCount} maxCount={maxBadgeCount} />}\n </View>\n </View>\n <Separator color={color.default.none.separator} />\n </View>\n </View>\n );\n};\n\ntype SeparatorProps = { color: string };\nconst Separator = ({ color }: SeparatorProps) => <View style={[styles.separator, { backgroundColor: color }]} />;\n\nconst styles = createStyleSheet({\n container: {\n height: 76,\n width: '100%',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n coverContainer: {\n marginLeft: 16,\n marginRight: 16,\n },\n channelCover: {\n width: 56,\n height: 56,\n borderRadius: 28,\n },\n rightSection: {\n flex: 1,\n paddingTop: 10,\n paddingRight: 16,\n },\n rightTopSection: {\n flexDirection: 'row',\n marginBottom: 4,\n },\n channelInfoContainer: {\n flex: 1,\n marginRight: 4,\n alignItems: 'center',\n flexDirection: 'row',\n },\n channelInfoBroadcast: {\n marginRight: 4,\n },\n channelInfoTitle: {\n flexShrink: 1,\n marginRight: 4,\n },\n channelInfoMemberCount: {\n paddingTop: 2,\n marginRight: 4,\n },\n channelInfoFrozen: {\n marginRight: 4,\n },\n titleCaptionContainer: {\n alignItems: 'flex-start',\n flexDirection: 'row',\n marginLeft: 4,\n },\n titleCaptionText: {\n marginTop: 2,\n },\n rightBottomSection: {\n flex: 1,\n height: '100%',\n flexDirection: 'row',\n },\n body: {\n marginRight: 4,\n flex: 1,\n flexDirection: 'row',\n alignItems: 'flex-start',\n },\n bodyWrapper: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n bodyText: {\n flex: 1,\n },\n bodyIcon: {\n borderRadius: 8,\n width: 26,\n height: 26,\n marginRight: 4,\n },\n unreadContainer: {\n flexDirection: 'row',\n alignItems: 'flex-start',\n },\n unreadMention: {\n marginRight: 4,\n },\n separator: {\n position: 'absolute',\n left: 0,\n right: -16,\n bottom: 0,\n height: 1,\n },\n});\n\nexport default GroupChannelPreview;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_uikitUtils","_Icon","_Image","_Text","_createStyleSheet","_useUIKitTheme","_Badge","obj","__esModule","default","GroupChannelPreview","_ref","customCover","coverUrl","memberCount","badgeCount","maxBadgeCount","body","bodyIcon","title","titleCaption","titleCaptionLeft","frozen","notificationOff","broadcast","mentioned","mentionTrigger","colors","useUIKitTheme","color","ui","groupChannelPreview","createElement","View","style","styles","container","backgroundColor","none","background","coverContainer","conditionChaining","Boolean","resizeMode","channelCover","coverBackground","source","uri","rightSection","rightTopSection","channelInfoContainer","size","icon","secondary","containerStyle","channelInfoBroadcast","numberOfLines","subtitle1","channelInfoTitle","textTitle","caption1","channelInfoMemberCount","primary","channelInfoFrozen","onBackground03","titleCaptionContainer","caption2","textTitleCaption","titleCaptionText","rightBottomSection","bodyWrapper","bodyIconBackground","body3","ellipsizeMode","bodyText","textBody","unreadContainer","h2","badge","unreadMention","count","maxCount","Separator","separator","_ref2","createStyleSheet","height","width","flexDirection","alignItems","justifyContent","marginLeft","marginRight","borderRadius","flex","paddingTop","paddingRight","marginBottom","flexShrink","marginTop","position","left","right","bottom","_default","exports"],"sources":["index.tsx"],"sourcesContent":["import React from 'react';\nimport { View } from 'react-native';\n\nimport { conditionChaining } from '@sendbird/uikit-utils';\n\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';\nimport Badge from '../Badge';\n\ntype Props = {\n customCover?: React.ReactNode;\n coverUrl: string;\n\n title: string;\n\n titleCaption: string;\n titleCaptionLeft?: React.ReactNode;\n\n bodyIcon?: keyof typeof Icon.Assets;\n body: string;\n\n memberCount?: number;\n badgeCount: number;\n maxBadgeCount?: number;\n\n frozen?: boolean;\n notificationOff?: boolean;\n broadcast?: boolean;\n mentioned?: boolean;\n mentionTrigger?: string;\n};\n\nconst GroupChannelPreview = ({\n customCover,\n coverUrl,\n memberCount,\n badgeCount,\n maxBadgeCount,\n body,\n bodyIcon,\n title,\n titleCaption,\n titleCaptionLeft,\n frozen,\n notificationOff,\n broadcast,\n mentioned,\n mentionTrigger = '@',\n}: Props) => {\n const { colors } = useUIKitTheme();\n const color = colors.ui.groupChannelPreview;\n\n return (\n <View style={[styles.container, { backgroundColor: color.default.none.background }]}>\n <View style={styles.coverContainer}>\n {conditionChaining(\n [Boolean(customCover)],\n [\n customCover,\n <Image\n resizeMode={'cover'}\n style={[styles.channelCover, { backgroundColor: color.default.none.coverBackground }]}\n source={{ uri: coverUrl }}\n />,\n ],\n )}\n </View>\n <View style={styles.rightSection}>\n <View style={styles.rightTopSection}>\n <View style={styles.channelInfoContainer}>\n {broadcast && (\n <Icon\n size={16}\n icon={'broadcast'}\n color={colors.secondary}\n containerStyle={styles.channelInfoBroadcast}\n />\n )}\n <Text numberOfLines={1} subtitle1 style={styles.channelInfoTitle} color={color.default.none.textTitle}>\n {title}\n </Text>\n {Boolean(memberCount) && (\n <Text caption1 style={styles.channelInfoMemberCount} color={color.default.none.memberCount}>\n {memberCount}\n </Text>\n )}\n {frozen && (\n <Icon size={16} icon={'freeze'} color={colors.primary} containerStyle={styles.channelInfoFrozen} />\n )}\n {notificationOff && <Icon size={16} icon={'notifications-off-filled'} color={colors.onBackground03} />}\n </View>\n <View style={styles.titleCaptionContainer}>\n {titleCaptionLeft}\n <Text caption2 color={color.default.none.textTitleCaption} style={styles.titleCaptionText}>\n {titleCaption}\n </Text>\n </View>\n </View>\n\n <View style={styles.rightBottomSection}>\n <View style={styles.body}>\n <View style={styles.bodyWrapper}>\n {bodyIcon && (\n <Icon\n size={18}\n icon={bodyIcon}\n color={color.default.none.bodyIcon}\n containerStyle={[\n styles.bodyIcon,\n { backgroundColor: colors.ui.groupChannelPreview.default.none.bodyIconBackground },\n ]}\n />\n )}\n <Text\n body3\n numberOfLines={1}\n ellipsizeMode={bodyIcon ? 'middle' : 'tail'}\n style={styles.bodyText}\n color={color.default.none.textBody}\n >\n {body}\n </Text>\n </View>\n </View>\n <View style={styles.unreadContainer}>\n {mentioned && (\n <Text h2 color={colors.ui.badge.default.none.background} style={styles.unreadMention}>\n {mentionTrigger}\n </Text>\n )}\n {badgeCount > 0 && <Badge count={badgeCount} maxCount={maxBadgeCount} />}\n </View>\n </View>\n <Separator color={color.default.none.separator} />\n </View>\n </View>\n );\n};\n\ntype SeparatorProps = { color: string };\nconst Separator = ({ color }: SeparatorProps) => <View style={[styles.separator, { backgroundColor: color }]} />;\n\nconst styles = createStyleSheet({\n container: {\n height: 76,\n width: '100%',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'center',\n },\n coverContainer: {\n marginLeft: 16,\n marginRight: 16,\n },\n channelCover: {\n width: 56,\n height: 56,\n borderRadius: 28,\n },\n rightSection: {\n flex: 1,\n paddingTop: 10,\n paddingRight: 16,\n },\n rightTopSection: {\n flexDirection: 'row',\n marginBottom: 4,\n },\n channelInfoContainer: {\n flex: 1,\n marginRight: 4,\n alignItems: 'center',\n flexDirection: 'row',\n },\n channelInfoBroadcast: {\n marginRight: 4,\n },\n channelInfoTitle: {\n flexShrink: 1,\n marginRight: 4,\n },\n channelInfoMemberCount: {\n paddingTop: 2,\n marginRight: 4,\n },\n channelInfoFrozen: {\n marginRight: 4,\n },\n titleCaptionContainer: {\n alignItems: 'flex-start',\n flexDirection: 'row',\n marginLeft: 4,\n },\n titleCaptionText: {\n marginTop: 2,\n },\n rightBottomSection: {\n flex: 1,\n height: '100%',\n flexDirection: 'row',\n },\n body: {\n marginRight: 4,\n flex: 1,\n flexDirection: 'row',\n alignItems: 'flex-start',\n },\n bodyWrapper: {\n flexDirection: 'row',\n alignItems: 'center',\n },\n bodyText: {\n flex: 1,\n },\n bodyIcon: {\n borderRadius: 8,\n width: 26,\n height: 26,\n marginRight: 4,\n },\n unreadContainer: {\n flexDirection: 'row',\n alignItems: 'flex-start',\n },\n unreadMention: {\n marginRight: 4,\n },\n separator: {\n position: 'absolute',\n left: 0,\n right: -16,\n bottom: 0,\n height: 1,\n },\n});\n\nexport default GroupChannelPreview;\n"],"mappings":"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"}
@@ -203,9 +203,10 @@ const styles = (0, _createStyleSheet.default)({
203
203
  padding: 4
204
204
  }
205
205
  });
206
- Header.Button = HeaderButton;
207
- Header.Title = HeaderTitle;
208
- Header.Subtitle = HeaderSubtitle;
209
- var _default = Header;
206
+ var _default = Object.assign(Header, {
207
+ Button: HeaderButton,
208
+ Title: HeaderTitle,
209
+ Subtitle: HeaderSubtitle
210
+ });
210
211
  exports.default = _default;
211
212
  //# sourceMappingURL=index.js.map