@amityco/react-native-social-uikit 4.0.0-RC7 → 4.0.0-b295c41.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 (215) hide show
  1. package/README.md +14 -14
  2. package/lib/commonjs/screens/CategorytList/index.js.map +1 -1
  3. package/lib/commonjs/snippet/AmityCommunitySearchResultComponent.js +3 -3
  4. package/lib/commonjs/snippet/AmityCommunitySearchResultComponent.js.map +1 -1
  5. package/lib/commonjs/snippet/AmityCreatePostMenuComponent.js +3 -3
  6. package/lib/commonjs/snippet/AmityCreatePostMenuComponent.js.map +1 -1
  7. package/lib/commonjs/snippet/AmityDetailedMediaAttachmentComponent.js +4 -4
  8. package/lib/commonjs/snippet/AmityDetailedMediaAttachmentComponent.js.map +1 -1
  9. package/lib/commonjs/snippet/AmityEmptyNewsFeedComponent.js +3 -3
  10. package/lib/commonjs/snippet/AmityEmptyNewsFeedComponent.js.map +1 -1
  11. package/lib/commonjs/snippet/AmityGlobalFeedComponent.js +3 -3
  12. package/lib/commonjs/snippet/AmityGlobalFeedComponent.js.map +1 -1
  13. package/lib/commonjs/snippet/AmityMediaAttachmentComponent.js +4 -4
  14. package/lib/commonjs/snippet/AmityMediaAttachmentComponent.js.map +1 -1
  15. package/lib/commonjs/snippet/AmityMyCommunitiesComponent.js +3 -3
  16. package/lib/commonjs/snippet/AmityMyCommunitiesComponent.js.map +1 -1
  17. package/lib/commonjs/snippet/AmityMyCommunitiesSearchPage.js +3 -3
  18. package/lib/commonjs/snippet/AmityMyCommunitiesSearchPage.js.map +1 -1
  19. package/lib/commonjs/snippet/AmityNewsFeedComponent.js +3 -3
  20. package/lib/commonjs/snippet/AmityNewsFeedComponent.js.map +1 -1
  21. package/lib/commonjs/snippet/AmityPostComposerPage.js +4 -4
  22. package/lib/commonjs/snippet/AmityPostComposerPage.js.map +1 -1
  23. package/lib/commonjs/snippet/AmityPostContentComponent.js +3 -3
  24. package/lib/commonjs/snippet/AmityPostContentComponent.js.map +1 -1
  25. package/lib/commonjs/snippet/AmityPostDetailPage.js +3 -3
  26. package/lib/commonjs/snippet/AmityPostDetailPage.js.map +1 -1
  27. package/lib/commonjs/snippet/AmityPostTargetSelectionPage.js +4 -4
  28. package/lib/commonjs/snippet/AmityPostTargetSelectionPage.js.map +1 -1
  29. package/lib/commonjs/snippet/AmityReactionListComponent.js +3 -3
  30. package/lib/commonjs/snippet/AmityReactionListComponent.js.map +1 -1
  31. package/lib/commonjs/snippet/AmitySocialGlobalSearchPage.js +3 -3
  32. package/lib/commonjs/snippet/AmitySocialGlobalSearchPage.js.map +1 -1
  33. package/lib/commonjs/snippet/AmitySocialHomePage.js +3 -3
  34. package/lib/commonjs/snippet/AmitySocialHomePage.js.map +1 -1
  35. package/lib/commonjs/snippet/AmitySocialHomeTopNavigationComponent.js +3 -3
  36. package/lib/commonjs/snippet/AmitySocialHomeTopNavigationComponent.js.map +1 -1
  37. package/lib/commonjs/snippet/AmityStoryTargetSelectionPage.js +3 -3
  38. package/lib/commonjs/snippet/AmityStoryTargetSelectionPage.js.map +1 -1
  39. package/lib/commonjs/snippet/AmityTopSearchBarComponent.js +3 -3
  40. package/lib/commonjs/snippet/AmityTopSearchBarComponent.js.map +1 -1
  41. package/lib/commonjs/snippet/AmityUserSearchResultComponent.js +3 -3
  42. package/lib/commonjs/snippet/AmityUserSearchResultComponent.js.map +1 -1
  43. package/lib/commonjs/v4/PublicApi/Components/AmityCommunityFeedComponent/AmityCommunityFeedComponent.js.map +1 -1
  44. package/lib/commonjs/v4/PublicApi/Components/AmityCommunityProfileTabComponent/AmityCommunityProfileTabComponent.js.map +1 -1
  45. package/lib/commonjs/v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent.js +4 -3
  46. package/lib/commonjs/v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent.js.map +1 -1
  47. package/lib/commonjs/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.js +0 -1
  48. package/lib/commonjs/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.js.map +1 -1
  49. package/lib/commonjs/v4/PublicApi/Components/AmityReactionListComponent/AmityReactionListComponent.js.map +1 -1
  50. package/lib/commonjs/v4/PublicApi/Pages/AmityLivestreamPostTargetSelectionPage/AmityLivestreamPostTargetSelectionPage.js +7 -1
  51. package/lib/commonjs/v4/PublicApi/Pages/AmityLivestreamPostTargetSelectionPage/AmityLivestreamPostTargetSelectionPage.js.map +1 -1
  52. package/lib/commonjs/v4/PublicApi/Pages/AmityPollTargetSelectionPage/AmityPollTargetSelectionPage.js +7 -1
  53. package/lib/commonjs/v4/PublicApi/Pages/AmityPollTargetSelectionPage/AmityPollTargetSelectionPage.js.map +1 -1
  54. package/lib/commonjs/v4/PublicApi/Pages/AmityPostComposerPage/AmityPostComposerPage.js +9 -2
  55. package/lib/commonjs/v4/PublicApi/Pages/AmityPostComposerPage/AmityPostComposerPage.js.map +1 -1
  56. package/lib/commonjs/v4/PublicApi/Pages/AmityPostTargetSelectionPage/AmityPostTargetSelectionPage.js +7 -1
  57. package/lib/commonjs/v4/PublicApi/Pages/AmityPostTargetSelectionPage/AmityPostTargetSelectionPage.js.map +1 -1
  58. package/lib/commonjs/v4/PublicApi/Pages/AmitySocialHomePage/AmitySocialHomePage.js.map +1 -1
  59. package/lib/commonjs/v4/PublicApi/Pages/AmityStoryTargetSelectionPage/AmityStoryTargetSelectionPage.js +7 -1
  60. package/lib/commonjs/v4/PublicApi/Pages/AmityStoryTargetSelectionPage/AmityStoryTargetSelectionPage.js.map +1 -1
  61. package/lib/commonjs/v4/component/MyStories/StoryCircleItem.js.map +1 -1
  62. package/lib/commonjs/v4/component/PreviewLink/LinkPreview.js +3 -3
  63. package/lib/commonjs/v4/component/PreviewLink/LinkPreview.js.map +1 -1
  64. package/lib/commonjs/v4/component/PreviewLink/utils.js +9 -73
  65. package/lib/commonjs/v4/component/PreviewLink/utils.js.map +1 -1
  66. package/lib/commonjs/v4/component/TargetSelectionPage/TargetSelectionPage.js +10 -4
  67. package/lib/commonjs/v4/component/TargetSelectionPage/TargetSelectionPage.js.map +1 -1
  68. package/lib/commonjs/v4/elements/ActionButton/ActionButton.js.map +1 -1
  69. package/lib/commonjs/v4/elements/ImageViewer/ImageViewer.js.map +1 -1
  70. package/lib/commonjs/v4/elements/VideoViewer/VideoViewer.js.map +1 -1
  71. package/lib/commonjs/v4/features/community/Membership/components/MemberItem/MemberItem.js.map +1 -1
  72. package/lib/commonjs/v4/features/community/shared/components/Privacy/index.js.map +1 -1
  73. package/lib/commonjs/v4/hook/useImagePicker.js.map +1 -1
  74. package/lib/commonjs/v4/providers/BehaviourProvider.js +2 -1
  75. package/lib/commonjs/v4/providers/BehaviourProvider.js.map +1 -1
  76. package/lib/module/screens/CategorytList/index.js.map +1 -1
  77. package/lib/module/snippet/AmityCommunitySearchResultComponent.js +1 -1
  78. package/lib/module/snippet/AmityCommunitySearchResultComponent.js.map +1 -1
  79. package/lib/module/snippet/AmityCreatePostMenuComponent.js +1 -1
  80. package/lib/module/snippet/AmityCreatePostMenuComponent.js.map +1 -1
  81. package/lib/module/snippet/AmityDetailedMediaAttachmentComponent.js +1 -1
  82. package/lib/module/snippet/AmityDetailedMediaAttachmentComponent.js.map +1 -1
  83. package/lib/module/snippet/AmityEmptyNewsFeedComponent.js +1 -1
  84. package/lib/module/snippet/AmityEmptyNewsFeedComponent.js.map +1 -1
  85. package/lib/module/snippet/AmityGlobalFeedComponent.js +1 -1
  86. package/lib/module/snippet/AmityGlobalFeedComponent.js.map +1 -1
  87. package/lib/module/snippet/AmityMediaAttachmentComponent.js +1 -1
  88. package/lib/module/snippet/AmityMediaAttachmentComponent.js.map +1 -1
  89. package/lib/module/snippet/AmityMyCommunitiesComponent.js +1 -1
  90. package/lib/module/snippet/AmityMyCommunitiesComponent.js.map +1 -1
  91. package/lib/module/snippet/AmityMyCommunitiesSearchPage.js +1 -1
  92. package/lib/module/snippet/AmityMyCommunitiesSearchPage.js.map +1 -1
  93. package/lib/module/snippet/AmityNewsFeedComponent.js +1 -1
  94. package/lib/module/snippet/AmityNewsFeedComponent.js.map +1 -1
  95. package/lib/module/snippet/AmityPostComposerPage.js +1 -1
  96. package/lib/module/snippet/AmityPostComposerPage.js.map +1 -1
  97. package/lib/module/snippet/AmityPostContentComponent.js +1 -1
  98. package/lib/module/snippet/AmityPostContentComponent.js.map +1 -1
  99. package/lib/module/snippet/AmityPostDetailPage.js +1 -1
  100. package/lib/module/snippet/AmityPostDetailPage.js.map +1 -1
  101. package/lib/module/snippet/AmityPostTargetSelectionPage.js +1 -1
  102. package/lib/module/snippet/AmityPostTargetSelectionPage.js.map +1 -1
  103. package/lib/module/snippet/AmityReactionListComponent.js +1 -1
  104. package/lib/module/snippet/AmityReactionListComponent.js.map +1 -1
  105. package/lib/module/snippet/AmitySocialGlobalSearchPage.js +1 -1
  106. package/lib/module/snippet/AmitySocialGlobalSearchPage.js.map +1 -1
  107. package/lib/module/snippet/AmitySocialHomePage.js +1 -1
  108. package/lib/module/snippet/AmitySocialHomePage.js.map +1 -1
  109. package/lib/module/snippet/AmitySocialHomeTopNavigationComponent.js +1 -1
  110. package/lib/module/snippet/AmitySocialHomeTopNavigationComponent.js.map +1 -1
  111. package/lib/module/snippet/AmityStoryTargetSelectionPage.js +1 -1
  112. package/lib/module/snippet/AmityStoryTargetSelectionPage.js.map +1 -1
  113. package/lib/module/snippet/AmityTopSearchBarComponent.js +1 -1
  114. package/lib/module/snippet/AmityTopSearchBarComponent.js.map +1 -1
  115. package/lib/module/snippet/AmityUserSearchResultComponent.js +1 -1
  116. package/lib/module/snippet/AmityUserSearchResultComponent.js.map +1 -1
  117. package/lib/module/v4/PublicApi/Components/AmityCommunityFeedComponent/AmityCommunityFeedComponent.js.map +1 -1
  118. package/lib/module/v4/PublicApi/Components/AmityCommunityProfileTabComponent/AmityCommunityProfileTabComponent.js.map +1 -1
  119. package/lib/module/v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent.js +5 -4
  120. package/lib/module/v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent.js.map +1 -1
  121. package/lib/module/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.js +0 -1
  122. package/lib/module/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.js.map +1 -1
  123. package/lib/module/v4/PublicApi/Components/AmityReactionListComponent/AmityReactionListComponent.js.map +1 -1
  124. package/lib/module/v4/PublicApi/Pages/AmityLivestreamPostTargetSelectionPage/AmityLivestreamPostTargetSelectionPage.js +7 -1
  125. package/lib/module/v4/PublicApi/Pages/AmityLivestreamPostTargetSelectionPage/AmityLivestreamPostTargetSelectionPage.js.map +1 -1
  126. package/lib/module/v4/PublicApi/Pages/AmityPollTargetSelectionPage/AmityPollTargetSelectionPage.js +7 -1
  127. package/lib/module/v4/PublicApi/Pages/AmityPollTargetSelectionPage/AmityPollTargetSelectionPage.js.map +1 -1
  128. package/lib/module/v4/PublicApi/Pages/AmityPostComposerPage/AmityPostComposerPage.js +9 -2
  129. package/lib/module/v4/PublicApi/Pages/AmityPostComposerPage/AmityPostComposerPage.js.map +1 -1
  130. package/lib/module/v4/PublicApi/Pages/AmityPostTargetSelectionPage/AmityPostTargetSelectionPage.js +7 -1
  131. package/lib/module/v4/PublicApi/Pages/AmityPostTargetSelectionPage/AmityPostTargetSelectionPage.js.map +1 -1
  132. package/lib/module/v4/PublicApi/Pages/AmitySocialHomePage/AmitySocialHomePage.js.map +1 -1
  133. package/lib/module/v4/PublicApi/Pages/AmityStoryTargetSelectionPage/AmityStoryTargetSelectionPage.js +7 -1
  134. package/lib/module/v4/PublicApi/Pages/AmityStoryTargetSelectionPage/AmityStoryTargetSelectionPage.js.map +1 -1
  135. package/lib/module/v4/component/MyStories/StoryCircleItem.js.map +1 -1
  136. package/lib/module/v4/component/PreviewLink/LinkPreview.js +3 -3
  137. package/lib/module/v4/component/PreviewLink/LinkPreview.js.map +1 -1
  138. package/lib/module/v4/component/PreviewLink/utils.js +9 -73
  139. package/lib/module/v4/component/PreviewLink/utils.js.map +1 -1
  140. package/lib/module/v4/component/TargetSelectionPage/TargetSelectionPage.js +10 -4
  141. package/lib/module/v4/component/TargetSelectionPage/TargetSelectionPage.js.map +1 -1
  142. package/lib/module/v4/elements/ActionButton/ActionButton.js.map +1 -1
  143. package/lib/module/v4/elements/ImageViewer/ImageViewer.js.map +1 -1
  144. package/lib/module/v4/elements/VideoViewer/VideoViewer.js.map +1 -1
  145. package/lib/module/v4/features/community/Membership/components/MemberItem/MemberItem.js.map +1 -1
  146. package/lib/module/v4/features/community/shared/components/Privacy/index.js.map +1 -1
  147. package/lib/module/v4/hook/useImagePicker.js.map +1 -1
  148. package/lib/module/v4/providers/BehaviourProvider.js +2 -1
  149. package/lib/module/v4/providers/BehaviourProvider.js.map +1 -1
  150. package/lib/typescript/src/screens/CategorytList/index.d.ts.map +1 -1
  151. package/lib/typescript/src/v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent.d.ts +1 -0
  152. package/lib/typescript/src/v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent.d.ts.map +1 -1
  153. package/lib/typescript/src/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.d.ts.map +1 -1
  154. package/lib/typescript/src/v4/PublicApi/Pages/AmityLivestreamPostTargetSelectionPage/AmityLivestreamPostTargetSelectionPage.d.ts.map +1 -1
  155. package/lib/typescript/src/v4/PublicApi/Pages/AmityPollTargetSelectionPage/AmityPollTargetSelectionPage.d.ts.map +1 -1
  156. package/lib/typescript/src/v4/PublicApi/Pages/AmityPostComposerPage/AmityPostComposerPage.d.ts.map +1 -1
  157. package/lib/typescript/src/v4/PublicApi/Pages/AmityPostTargetSelectionPage/AmityPostTargetSelectionPage.d.ts.map +1 -1
  158. package/lib/typescript/src/v4/PublicApi/Pages/AmitySocialHomePage/AmitySocialHomePage.d.ts.map +1 -1
  159. package/lib/typescript/src/v4/PublicApi/Pages/AmityStoryTargetSelectionPage/AmityStoryTargetSelectionPage.d.ts.map +1 -1
  160. package/lib/typescript/src/v4/component/PreviewLink/utils.d.ts +6 -1
  161. package/lib/typescript/src/v4/component/PreviewLink/utils.d.ts.map +1 -1
  162. package/lib/typescript/src/v4/component/TargetSelectionPage/TargetSelectionPage.d.ts +2 -1
  163. package/lib/typescript/src/v4/component/TargetSelectionPage/TargetSelectionPage.d.ts.map +1 -1
  164. package/lib/typescript/src/v4/elements/ActionButton/ActionButton.d.ts.map +1 -1
  165. package/lib/typescript/src/v4/features/community/Membership/components/MemberItem/MemberItem.d.ts.map +1 -1
  166. package/lib/typescript/src/v4/features/community/shared/components/Privacy/index.d.ts.map +1 -1
  167. package/lib/typescript/src/v4/hook/useImagePicker.d.ts.map +1 -1
  168. package/lib/typescript/src/v4/providers/BehaviourProvider.d.ts.map +1 -1
  169. package/lib/typescript/src/v4/types/behaviour.interface.d.ts +7 -0
  170. package/lib/typescript/src/v4/types/behaviour.interface.d.ts.map +1 -1
  171. package/package.json +1 -1
  172. package/src/screens/CategorytList/index.tsx +7 -14
  173. package/src/snippet/AmityCommunitySearchResultComponent.tsx +1 -1
  174. package/src/snippet/AmityCreatePostMenuComponent.tsx +1 -1
  175. package/src/snippet/AmityDetailedMediaAttachmentComponent.tsx +1 -1
  176. package/src/snippet/AmityEmptyNewsFeedComponent.tsx +1 -1
  177. package/src/snippet/AmityGlobalFeedComponent.tsx +1 -1
  178. package/src/snippet/AmityMediaAttachmentComponent.tsx +1 -1
  179. package/src/snippet/AmityMyCommunitiesComponent.tsx +1 -1
  180. package/src/snippet/AmityMyCommunitiesSearchPage.tsx +1 -1
  181. package/src/snippet/AmityNewsFeedComponent.tsx +1 -1
  182. package/src/snippet/AmityPostComposerPage.tsx +1 -1
  183. package/src/snippet/AmityPostContentComponent.tsx +1 -1
  184. package/src/snippet/AmityPostDetailPage.tsx +1 -1
  185. package/src/snippet/AmityPostTargetSelectionPage.tsx +1 -1
  186. package/src/snippet/AmityReactionListComponent.tsx +1 -1
  187. package/src/snippet/AmitySocialGlobalSearchPage.tsx +1 -1
  188. package/src/snippet/AmitySocialHomePage.tsx +1 -1
  189. package/src/snippet/AmitySocialHomeTopNavigationComponent.tsx +1 -1
  190. package/src/snippet/AmityStoryTargetSelectionPage.tsx +1 -1
  191. package/src/snippet/AmityTopSearchBarComponent.tsx +1 -1
  192. package/src/snippet/AmityUserSearchResultComponent.tsx +1 -1
  193. package/src/v4/PublicApi/Components/AmityCommunityFeedComponent/AmityCommunityFeedComponent.tsx +2 -2
  194. package/src/v4/PublicApi/Components/AmityCommunityProfileTabComponent/AmityCommunityProfileTabComponent.tsx +97 -97
  195. package/src/v4/PublicApi/Components/AmityGlobalFeedComponent/AmityGlobalFeedComponent.tsx +12 -7
  196. package/src/v4/PublicApi/Components/AmityPostContentComponent/AmityPostContentComponent.tsx +0 -2
  197. package/src/v4/PublicApi/Components/AmityReactionListComponent/AmityReactionListComponent.tsx +9 -9
  198. package/src/v4/PublicApi/Pages/AmityLivestreamPostTargetSelectionPage/AmityLivestreamPostTargetSelectionPage.tsx +6 -0
  199. package/src/v4/PublicApi/Pages/AmityPollTargetSelectionPage/AmityPollTargetSelectionPage.tsx +6 -1
  200. package/src/v4/PublicApi/Pages/AmityPostComposerPage/AmityPostComposerPage.tsx +7 -2
  201. package/src/v4/PublicApi/Pages/AmityPostTargetSelectionPage/AmityPostTargetSelectionPage.tsx +7 -0
  202. package/src/v4/PublicApi/Pages/AmitySocialHomePage/AmitySocialHomePage.tsx +5 -1
  203. package/src/v4/PublicApi/Pages/AmityStoryTargetSelectionPage/AmityStoryTargetSelectionPage.tsx +7 -0
  204. package/src/v4/component/MyStories/StoryCircleItem.tsx +8 -8
  205. package/src/v4/component/PreviewLink/LinkPreview.tsx +3 -3
  206. package/src/v4/component/PreviewLink/utils.ts +9 -108
  207. package/src/v4/component/TargetSelectionPage/TargetSelectionPage.tsx +12 -4
  208. package/src/v4/elements/ActionButton/ActionButton.tsx +4 -1
  209. package/src/v4/elements/ImageViewer/ImageViewer.tsx +1 -1
  210. package/src/v4/elements/VideoViewer/VideoViewer.tsx +1 -1
  211. package/src/v4/features/community/Membership/components/MemberItem/MemberItem.tsx +11 -2
  212. package/src/v4/features/community/shared/components/Privacy/index.tsx +4 -1
  213. package/src/v4/hook/useImagePicker.ts +4 -1
  214. package/src/v4/providers/BehaviourProvider.tsx +1 -0
  215. package/src/v4/types/behaviour.interface.ts +7 -0
@@ -28,107 +28,107 @@ const AmityCommunityProfileTabComponent: FC<
28
28
  currentTab,
29
29
  onTabChange,
30
30
  }) => {
31
- const elementId = ElementID.community_profile_tab;
31
+ const elementId = ElementID.community_profile_tab;
32
32
 
33
- const { themeStyles, accessibilityId } = useAmityElement({
34
- pageId,
35
- componentId,
36
- elementId,
37
- });
33
+ const { themeStyles, accessibilityId } = useAmityElement({
34
+ pageId,
35
+ componentId,
36
+ elementId,
37
+ });
38
38
 
39
- const styles = StyleSheet.create({
40
- container: {
41
- backgroundColor: themeStyles?.colors.background,
42
- flexDirection: 'row',
43
- width: '100%',
44
- paddingHorizontal: 16,
45
- justifyContent: 'space-between',
46
- borderBottomColor: themeStyles?.colors.baseShade4,
47
- borderBottomWidth: 1,
48
- },
49
- });
39
+ const styles = StyleSheet.create({
40
+ container: {
41
+ backgroundColor: themeStyles?.colors.background,
42
+ flexDirection: 'row',
43
+ width: '100%',
44
+ paddingHorizontal: 16,
45
+ justifyContent: 'space-between',
46
+ borderBottomColor: themeStyles?.colors.baseShade4,
47
+ borderBottomWidth: 1,
48
+ },
49
+ });
50
50
 
51
- const getActiveColor = useCallback(
52
- (isActive: boolean) => {
53
- return isActive
54
- ? themeStyles?.colors.base
55
- : themeStyles?.colors.baseShade2;
56
- },
57
- [themeStyles]
58
- );
51
+ const getActiveColor = useCallback(
52
+ (isActive: boolean) => {
53
+ return isActive
54
+ ? themeStyles?.colors.base
55
+ : themeStyles?.colors.baseShade2;
56
+ },
57
+ [themeStyles]
58
+ );
59
59
 
60
- return (
61
- <View
62
- style={styles.container}
63
- testID={accessibilityId}
64
- accessibilityLabel={accessibilityId}
60
+ return (
61
+ <View
62
+ style={styles.container}
63
+ testID={accessibilityId}
64
+ accessibilityLabel={accessibilityId}
65
+ >
66
+ <Pressable
67
+ onPress={() => onTabChange(CommunityProfileTab.community_feed)}
65
68
  >
66
- <Pressable
67
- onPress={() => onTabChange(CommunityProfileTab.community_feed)}
68
- >
69
- <IconTab
70
- themeStyles={themeStyles}
71
- icon={
72
- <SvgXml
73
- xml={feed(
74
- getActiveColor(
75
- currentTab === CommunityProfileTab.community_feed
76
- )
77
- )}
78
- />
79
- }
80
- isActive={currentTab === CommunityProfileTab.community_feed}
81
- />
82
- </Pressable>
83
- <Pressable onPress={() => onTabChange(CommunityProfileTab.community_pin)}>
84
- <IconTab
85
- themeStyles={themeStyles}
86
- icon={
87
- <SvgXml
88
- xml={pin(
89
- getActiveColor(currentTab === CommunityProfileTab.community_pin)
90
- )}
91
- />
92
- }
93
- isActive={currentTab === CommunityProfileTab.community_pin}
94
- />
95
- </Pressable>
96
- <Pressable
97
- onPress={() => onTabChange(CommunityProfileTab.community_image_feed)}
98
- >
99
- <IconTab
100
- themeStyles={themeStyles}
101
- icon={
102
- <SvgXml
103
- xml={image(
104
- getActiveColor(
105
- currentTab === CommunityProfileTab.community_image_feed
106
- )
107
- )}
108
- />
109
- }
110
- isActive={currentTab === CommunityProfileTab.community_image_feed}
111
- />
112
- </Pressable>
113
- <Pressable
114
- onPress={() => onTabChange(CommunityProfileTab.community_video_feed)}
115
- >
116
- <IconTab
117
- themeStyles={themeStyles}
118
- icon={
119
- <SvgXml
120
- xml={video(
121
- getActiveColor(
122
- currentTab === CommunityProfileTab.community_video_feed
123
- )
124
- )}
125
- />
126
- }
127
- isActive={currentTab === CommunityProfileTab.community_video_feed}
128
- />
129
- </Pressable>
130
- </View>
131
- );
132
- };
69
+ <IconTab
70
+ themeStyles={themeStyles}
71
+ icon={
72
+ <SvgXml
73
+ xml={feed(
74
+ getActiveColor(
75
+ currentTab === CommunityProfileTab.community_feed
76
+ )
77
+ )}
78
+ />
79
+ }
80
+ isActive={currentTab === CommunityProfileTab.community_feed}
81
+ />
82
+ </Pressable>
83
+ <Pressable onPress={() => onTabChange(CommunityProfileTab.community_pin)}>
84
+ <IconTab
85
+ themeStyles={themeStyles}
86
+ icon={
87
+ <SvgXml
88
+ xml={pin(
89
+ getActiveColor(currentTab === CommunityProfileTab.community_pin)
90
+ )}
91
+ />
92
+ }
93
+ isActive={currentTab === CommunityProfileTab.community_pin}
94
+ />
95
+ </Pressable>
96
+ <Pressable
97
+ onPress={() => onTabChange(CommunityProfileTab.community_image_feed)}
98
+ >
99
+ <IconTab
100
+ themeStyles={themeStyles}
101
+ icon={
102
+ <SvgXml
103
+ xml={image(
104
+ getActiveColor(
105
+ currentTab === CommunityProfileTab.community_image_feed
106
+ )
107
+ )}
108
+ />
109
+ }
110
+ isActive={currentTab === CommunityProfileTab.community_image_feed}
111
+ />
112
+ </Pressable>
113
+ <Pressable
114
+ onPress={() => onTabChange(CommunityProfileTab.community_video_feed)}
115
+ >
116
+ <IconTab
117
+ themeStyles={themeStyles}
118
+ icon={
119
+ <SvgXml
120
+ xml={video(
121
+ getActiveColor(
122
+ currentTab === CommunityProfileTab.community_video_feed
123
+ )
124
+ )}
125
+ />
126
+ }
127
+ isActive={currentTab === CommunityProfileTab.community_video_feed}
128
+ />
129
+ </Pressable>
130
+ </View>
131
+ );
132
+ };
133
133
 
134
134
  export default memo(AmityCommunityProfileTabComponent);
@@ -1,5 +1,5 @@
1
1
  import React, { FC, memo, useCallback, useRef, useState } from 'react';
2
- import { FlatList } from 'react-native';
2
+ import { FlatList, View } from 'react-native';
3
3
 
4
4
  import { RefreshControl } from 'react-native';
5
5
  import AmityPostContentComponent from '../AmityPostContentComponent/AmityPostContentComponent';
@@ -20,6 +20,7 @@ import Divider from '../../../component/Divider';
20
20
  type AmityGlobalFeedComponentType = {
21
21
  pageId?: PageID;
22
22
  isShowStoryTab?: boolean;
23
+ GlobalFeedHeaderComponent?: React.ReactElement;
23
24
  };
24
25
 
25
26
  export const globalFeedPageLimit = 20;
@@ -27,6 +28,7 @@ export const globalFeedPageLimit = 20;
27
28
  const AmityGlobalFeedComponent: FC<AmityGlobalFeedComponentType> = ({
28
29
  pageId,
29
30
  isShowStoryTab = true,
31
+ GlobalFeedHeaderComponent,
30
32
  }) => {
31
33
  const { itemWithAds, refresh, loading, onNextPage } =
32
34
  useCustomRankingGlobalFeed();
@@ -100,12 +102,15 @@ const AmityGlobalFeedComponent: FC<AmityGlobalFeedComponentType> = ({
100
102
  }
101
103
  keyboardShouldPersistTaps="handled"
102
104
  ListHeaderComponent={
103
- !refreshing &&
104
- !loading &&
105
- isShowStoryTab && (
106
- <AmityStoryTabComponent
107
- type={AmityStoryTabComponentEnum.globalFeed}
108
- />
105
+ !refreshing && !loading && isShowStoryTab ? (
106
+ <View>
107
+ {GlobalFeedHeaderComponent}
108
+ <AmityStoryTabComponent
109
+ type={AmityStoryTabComponentEnum.globalFeed}
110
+ />
111
+ </View>
112
+ ) : (
113
+ GlobalFeedHeaderComponent
109
114
  )
110
115
  }
111
116
  viewabilityConfig={{ viewAreaCoveragePercentThreshold: 60 }}
@@ -158,8 +158,6 @@ const AmityPostContentComponent: FC<AmityPostContentComponentProps> = ({
158
158
  });
159
159
  };
160
160
 
161
- if (post?.structureType === 'liveStream') return null;
162
-
163
161
  return (
164
162
  <View>
165
163
  {(category === AmityPostCategory.ANNOUNCEMENT ||
@@ -74,10 +74,10 @@ const AmityReactionListComponent: FC<AmityReactionListComponentType> = ({
74
74
  selectedReactionIndex === 0
75
75
  ? allReactionList
76
76
  : selectedReactionIndex === 1
77
- ? likeReactionList
78
- : selectedReactionIndex === 2
79
- ? loveReactionList
80
- : null;
77
+ ? likeReactionList
78
+ : selectedReactionIndex === 2
79
+ ? loveReactionList
80
+ : null;
81
81
  if (currentUsers?.length > 0) {
82
82
  const userList = currentUsers.map((item) => item.userId);
83
83
  try {
@@ -95,7 +95,7 @@ const AmityReactionListComponent: FC<AmityReactionListComponentType> = ({
95
95
  }
96
96
  })();
97
97
 
98
- return () => { };
98
+ return () => {};
99
99
  }, [
100
100
  allReactionList,
101
101
  likeReactionList,
@@ -231,10 +231,10 @@ const AmityReactionListComponent: FC<AmityReactionListComponentType> = ({
231
231
  {loading
232
232
  ? renderContentLoading()
233
233
  : hasError
234
- ? errorContent()
235
- : reactors
236
- ? renderReactionList()
237
- : null}
234
+ ? errorContent()
235
+ : reactors
236
+ ? renderReactionList()
237
+ : null}
238
238
  </View>
239
239
  </Modal>
240
240
  );
@@ -37,10 +37,16 @@ const AmityLivestreamPostTargetSelectionPage = () => {
37
37
  navigation.navigate('CreateLivestream', context);
38
38
  };
39
39
 
40
+ const onClickClose = () => {
41
+ if (AmityLivestreamPostTargetSelectionPageBehavior?.onClickClose) {
42
+ AmityLivestreamPostTargetSelectionPageBehavior.onClickClose();
43
+ }
44
+ };
40
45
  return (
41
46
  <TargetSelectionPage
42
47
  onSelectFeed={onSelectFeed}
43
48
  pageId={PageID.livestream_post_target_selection_page}
49
+ onClickClose={onClickClose}
44
50
  />
45
51
  );
46
52
  };
@@ -28,11 +28,16 @@ const AmityPollTargetSelectionPage = () => {
28
28
  }
29
29
  navigation.navigate('PollPostComposer', context);
30
30
  };
31
-
31
+ const onClickClose = () => {
32
+ if (AmityPollTargetSelectionPageBehavior?.onClickClose) {
33
+ AmityPollTargetSelectionPageBehavior.onClickClose();
34
+ }
35
+ };
32
36
  return (
33
37
  <TargetSelectionPage
34
38
  onSelectFeed={onSelectFeed}
35
39
  pageId={PageID.select_poll_target_page}
40
+ onClickClose={onClickClose}
36
41
  />
37
42
  );
38
43
  };
@@ -60,6 +60,7 @@ import { getPostErrorMessage } from '../../../utils/errors';
60
60
  import { MAXIMUM_POST_CHARACTERS } from '../../../constants';
61
61
  import { replaceTriggerValues } from 'react-native-controlled-mentions';
62
62
  import { useUIKitDispatch } from '../../../../redux/store';
63
+ import { useBehaviour } from '../../../../v4/providers/BehaviourProvider';
63
64
 
64
65
  const AmityPostComposerPage: FC<AmityPostComposerPageType> = ({
65
66
  mode,
@@ -75,6 +76,7 @@ const AmityPostComposerPage: FC<AmityPostComposerPageType> = ({
75
76
  shouldCall: true,
76
77
  });
77
78
  const pageId = PageID.post_composer_page;
79
+ const { AmityPostComposerPageBehavior } = useBehaviour();
78
80
  const { isExcluded, themeStyles, accessibilityId } = useAmityPage({ pageId });
79
81
  const styles = useStyles(themeStyles);
80
82
  const { getImage } = useFile();
@@ -286,17 +288,20 @@ const AmityPostComposerPage: FC<AmityPostComposerPageType> = ({
286
288
 
287
289
  const onPressClose = useCallback(() => {
288
290
  const routes = navigation.getState().routes;
291
+ if (AmityPostComposerPageBehavior?.onPressPost) {
292
+ AmityPostComposerPageBehavior.onPressPost();
293
+ }
289
294
  if (routes[routes.length - 2].name === 'PostTargetSelection') {
290
295
  navigation.pop(2);
291
296
  } else navigation.pop();
292
- }, [navigation]);
297
+ }, [navigation, AmityPostComposerPageBehavior]);
293
298
 
294
299
  const onClose = useCallback(() => {
295
300
  Alert.alert(
296
301
  'Discard this post',
297
302
  'The post will be permanently deleted. It cannot be undone',
298
303
  [
299
- { text: 'Keey Editing', style: 'cancel' },
304
+ { text: 'Keep Editing', style: 'cancel' },
300
305
  {
301
306
  text: 'Discard',
302
307
  style: 'destructive',
@@ -81,10 +81,17 @@ const AmityPostTargetSelectionPage = ({
81
81
  }
82
82
  };
83
83
 
84
+ const onClickClose = () => {
85
+ if (AmityPostTargetSelectionPageBehavior?.onClickClose) {
86
+ AmityPostTargetSelectionPageBehavior.onClickClose();
87
+ }
88
+ };
89
+
84
90
  return (
85
91
  <TargetSelectionPage
86
92
  pageId={PageID.select_post_target_page}
87
93
  onSelectFeed={onSelectFeed}
94
+ onClickClose={onClickClose}
88
95
  />
89
96
  );
90
97
  };
@@ -3,7 +3,11 @@ import { useCallback, useState } from 'react';
3
3
  import { LogBox, SafeAreaView, StyleSheet } from 'react-native';
4
4
  import CustomSocialTab from '../../../../v4/component/CustomSocialTab/CustomSocialTab';
5
5
  import { useUiKitConfig } from '../../../../v4/hook';
6
- import { ComponentID, ElementID, PageID } from '../../../../v4/enum/enumUIKitID';
6
+ import {
7
+ ComponentID,
8
+ ElementID,
9
+ PageID,
10
+ } from '../../../../v4/enum/enumUIKitID';
7
11
 
8
12
  import { useTheme } from 'react-native-paper';
9
13
  import { useBehaviour } from '../../../../v4/providers/BehaviourProvider';
@@ -24,11 +24,18 @@ const AmityStoryTargetSelectionPage = () => {
24
24
  });
25
25
  };
26
26
 
27
+ const onClickClose = () => {
28
+ if (AmityStoryTargetSelectionPageBehavior?.onClickClose) {
29
+ AmityStoryTargetSelectionPageBehavior.onClickClose();
30
+ }
31
+ };
32
+
27
33
  return (
28
34
  <TargetSelectionPage
29
35
  pageId={PageID.select_story_target_page}
30
36
  onSelectFeed={onSelectFeed}
31
37
  hideMyTimelineTarget={true}
38
+ onClickClose={onClickClose}
32
39
  />
33
40
  );
34
41
  };
@@ -31,13 +31,13 @@ const StoryCircleItem: FC<IStoryCircleItem> = ({
31
31
  const styles = useStyles();
32
32
  const storyRingColor: string[] = storyTarget?.hasUnseen
33
33
  ? (getUiKitConfig({
34
- page: PageID.StoryPage,
35
- component: ComponentID.StoryTab,
36
- element: ElementID.StoryRing,
37
- })?.progress_color as string[]) ?? ['#e2e2e2', '#e2e2e2']
34
+ page: PageID.StoryPage,
35
+ component: ComponentID.StoryTab,
36
+ element: ElementID.StoryRing,
37
+ })?.progress_color as string[]) ?? ['#e2e2e2', '#e2e2e2']
38
38
  : storyTarget?.failedStoriesCount > 0
39
- ? ['#DE1029', '#DE1029']
40
- : ['#e2e2e2', '#e2e2e2'];
39
+ ? ['#DE1029', '#DE1029']
40
+ : ['#e2e2e2', '#e2e2e2'];
41
41
 
42
42
  useEffect(() => {
43
43
  if (storyTarget.targetType !== 'community') return;
@@ -68,8 +68,8 @@ const StoryCircleItem: FC<IStoryCircleItem> = ({
68
68
  source={
69
69
  avatarUrl
70
70
  ? {
71
- uri: avatarUrl,
72
- }
71
+ uri: avatarUrl,
72
+ }
73
73
  : require('../../assets/images/userAvatar.png')
74
74
  }
75
75
  style={styles.communityAvatar}
@@ -21,7 +21,7 @@ export const LinkPreview = React.memo(
21
21
 
22
22
  const fetchData = async () => {
23
23
  setData(undefined);
24
- const newData = await getPreviewData(text, 5000);
24
+ const newData = await getPreviewData(text);
25
25
  if (!isCancelled) {
26
26
  setData(newData);
27
27
  }
@@ -37,8 +37,8 @@ export const LinkPreview = React.memo(
37
37
 
38
38
  const renderImageNode = React.useCallback(
39
39
  (image: PreviewDataImage) => {
40
- const imageUrl = image?.url
41
- ? { uri: image.url }
40
+ const imageUrl = image
41
+ ? { uri: image }
42
42
  : require('../../assets/images/previewLinkDefaultBackground.png');
43
43
 
44
44
  return (
@@ -2,6 +2,7 @@ import { decode } from 'html-entities';
2
2
  import { Image } from 'react-native';
3
3
 
4
4
  import { PreviewData, PreviewDataImage, Size } from './types';
5
+ import { Client } from '@amityco/ts-sdk-react-native';
5
6
 
6
7
  export const getActualImageUrl = (baseUrl: string, imageUrl?: string) => {
7
8
  let actualImageUrl = imageUrl?.trim();
@@ -54,7 +55,7 @@ export const getImageSize = (url: string) => {
54
55
 
55
56
  // Functions below use functions from the same file and mocks are not working
56
57
  /* istanbul ignore next */
57
- export const getPreviewData = async (text: string, requestTimeout = 5000) => {
58
+ export const getPreviewData = async (text: string) => {
58
59
  const previewData: PreviewData = {
59
60
  description: undefined,
60
61
  image: undefined,
@@ -77,114 +78,14 @@ export const getPreviewData = async (text: string, requestTimeout = 5000) => {
77
78
  url = 'https://' + url;
78
79
  }
79
80
 
80
- let abortControllerTimeout: number;
81
- const abortController = new AbortController();
81
+ const request = await Client.fetchLinkPreview(url);
82
82
 
83
- const request = fetch(url, {
84
- headers: {
85
- 'User-Agent':
86
- 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36',
87
- },
88
- signal: abortController.signal,
89
- });
90
-
91
- abortControllerTimeout = setTimeout(() => {
92
- abortController.abort();
93
- }, requestTimeout);
94
-
95
- const response = await request;
96
-
97
- clearTimeout(abortControllerTimeout);
98
-
99
- previewData.link = url;
100
-
101
- const contentType = response.headers.get('content-type') ?? '';
102
-
103
- if (REGEX_IMAGE_CONTENT_TYPE.test(contentType)) {
104
- const image = await getPreviewDataImage(url);
105
- previewData.image = image;
106
- return previewData;
107
- }
108
-
109
- const html = await response.text();
110
-
111
- // Some pages return undefined
112
- if (!html) return previewData;
113
-
114
- const head = html.substring(0, html.indexOf('<body'));
115
-
116
- // Get page title
117
- const title = REGEX_TITLE.exec(head);
118
- previewData.title = getHtmlEntitiesDecodedText(title?.[1]);
119
-
120
- let matches: RegExpMatchArray | null;
121
- const meta: RegExpMatchArray[] = [];
122
- while ((matches = REGEX_META.exec(head)) !== null) {
123
- // @ts-ignore
124
- meta.push([...matches]);
125
- }
126
-
127
- const metaPreviewData = meta.reduce<{
128
- description?: string;
129
- imageUrl?: string;
130
- title?: string;
131
- }>(
132
- (acc, curr) => {
133
- // Verify that we have property/name and content
134
- // Note that if a page will specify property, name and content in the same meta, regex will fail
135
- if (!curr[2] || !curr[3]) return acc;
136
-
137
- // Only take the first occurrence
138
- // For description take the meta description tag into consideration
139
- const description =
140
- !acc.description &&
141
- (getContent(curr[2], curr[3], 'og:description') ||
142
- getContent(curr[2], curr[3], 'description'));
143
- const ogImage =
144
- !acc.imageUrl && getContent(curr[2], curr[3], 'og:image');
145
- const ogTitle = !acc.title && getContent(curr[2], curr[3], 'og:title');
146
-
147
- return {
148
- description: description
149
- ? getHtmlEntitiesDecodedText(description)
150
- : acc.description,
151
- imageUrl: ogImage ? getActualImageUrl(url, ogImage) : acc.imageUrl,
152
- title: ogTitle ? getHtmlEntitiesDecodedText(ogTitle) : acc.title,
153
- };
154
- },
155
- { title: previewData.title }
156
- );
157
-
158
- previewData.description = metaPreviewData.description;
159
- previewData.image = await getPreviewDataImage(metaPreviewData.imageUrl);
160
- previewData.title = metaPreviewData.title;
161
-
162
- if (!previewData.image) {
163
- let imageMatches: RegExpMatchArray | null;
164
- const tags: RegExpMatchArray[] = [];
165
- while ((imageMatches = REGEX_IMAGE_TAG.exec(html)) !== null) {
166
- // @ts-ignore
167
- tags.push([...imageMatches]);
168
- }
169
-
170
- let images: PreviewDataImage[] = [];
171
-
172
- for (const tag of tags
173
- .filter((t) => !t[1].startsWith('data'))
174
- .slice(0, 5)) {
175
- const image = await getPreviewDataImage(getActualImageUrl(url, tag[1]));
176
-
177
- if (!image) continue;
178
-
179
- images = [...images, image];
180
- }
181
-
182
- previewData.image = images.sort(
183
- (a, b) => b.height * b.width - a.height * a.width
184
- )[0];
185
- }
186
-
187
- return previewData;
83
+ return {
84
+ description: request.description || undefined,
85
+ image: request.image || undefined,
86
+ link: url,
87
+ title: request.title || undefined,
88
+ };
188
89
  } catch {
189
90
  return previewData;
190
91
  }
@@ -13,11 +13,12 @@ import type { MyMD3Theme } from '../../../providers/amity-ui-kit-provider';
13
13
  import CloseButtonIconElement from '../../PublicApi/Elements/CloseButtonIconElement/CloseButtonIconElement';
14
14
  import { PageID, ComponentID, ElementID } from '../../enum';
15
15
  import { SafeAreaView } from 'react-native-safe-area-context';
16
- import { useNavigation } from '@react-navigation/native';
17
16
  import TextKeyElement from '../../PublicApi/Elements/TextKeyElement/TextKeyElement';
18
17
  import { Typography } from '../Typography/Typography';
19
18
  import { useStyles } from './styles';
20
19
  import { Illustration } from '../../../v4/PublicApi/Components/AmityEmptyNewsFeedComponent/Elements';
20
+ import { useNavigation } from '@react-navigation/native';
21
+ import { NativeStackNavigationProp } from '@react-navigation/native-stack';
21
22
 
22
23
  export type FeedParams = {
23
24
  targetId: string;
@@ -48,21 +49,23 @@ interface ITargetSelectionPage {
48
49
  postSetting,
49
50
  needApprovalOnPostCreation,
50
51
  }: FeedParams) => void;
52
+ onClickClose?: () => void;
51
53
  }
52
54
 
53
55
  const TargetSelectionPage = ({
54
56
  pageId,
55
57
  hideMyTimelineTarget = false,
56
58
  onSelectFeed,
59
+ onClickClose,
57
60
  }: ITargetSelectionPage) => {
58
61
  const { client } = useAuth();
59
- const navigation = useNavigation();
62
+
60
63
  const defaultTheme = useTheme() as MyMD3Theme;
61
64
 
62
65
  const user = useUser((client as Amity.Client).userId);
63
66
  const { communities, onNextCommunityPage, loading } = useCommunities();
64
67
  const { themeStyles, accessibilityId } = useAmityPage({ pageId });
65
-
68
+ const navigation = useNavigation<NativeStackNavigationProp<any>>();
66
69
  const theme = themeStyles || defaultTheme;
67
70
  const styles = useStyles(theme);
68
71
 
@@ -102,7 +105,12 @@ const TargetSelectionPage = ({
102
105
  <View style={styles.header}>
103
106
  <TouchableOpacity
104
107
  style={styles.closeButton}
105
- onPress={() => navigation.goBack()}
108
+ onPress={() => {
109
+ onClickClose?.();
110
+ if (navigation.canGoBack()) {
111
+ navigation.goBack();
112
+ }
113
+ }}
106
114
  >
107
115
  <CloseButtonIconElement style={styles.closeIcon} pageID={pageId} />
108
116
  </TouchableOpacity>