@selfcommunity/react-ui 0.7.0-alpha.4 → 0.7.0-alpha.41

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 (326) hide show
  1. package/lib/cjs/components/Categories/Categories.js +2 -2
  2. package/lib/cjs/components/Categories/Categories.js.map +1 -1
  3. package/lib/cjs/components/CategoriesFollowed/CategoriesFollowed.d.ts.map +1 -1
  4. package/lib/cjs/components/CategoriesFollowed/CategoriesFollowed.js +59 -43
  5. package/lib/cjs/components/CategoriesFollowed/CategoriesFollowed.js.map +1 -1
  6. package/lib/cjs/components/CategoriesFollowed/Skeleton.d.ts.map +1 -1
  7. package/lib/cjs/components/CategoriesFollowed/Skeleton.js +3 -1
  8. package/lib/cjs/components/CategoriesFollowed/Skeleton.js.map +1 -1
  9. package/lib/cjs/components/CategoriesPopular/CategoriesPopular.d.ts.map +1 -1
  10. package/lib/cjs/components/CategoriesPopular/CategoriesPopular.js +53 -36
  11. package/lib/cjs/components/CategoriesPopular/CategoriesPopular.js.map +1 -1
  12. package/lib/cjs/components/CategoriesPopular/Skeleton.d.ts.map +1 -1
  13. package/lib/cjs/components/CategoriesPopular/Skeleton.js +3 -1
  14. package/lib/cjs/components/CategoriesPopular/Skeleton.js.map +1 -1
  15. package/lib/cjs/components/CategoriesSuggestion/CategoriesSuggestion.d.ts +6 -0
  16. package/lib/cjs/components/CategoriesSuggestion/CategoriesSuggestion.d.ts.map +1 -1
  17. package/lib/cjs/components/CategoriesSuggestion/CategoriesSuggestion.js +54 -40
  18. package/lib/cjs/components/CategoriesSuggestion/CategoriesSuggestion.js.map +1 -1
  19. package/lib/cjs/components/CategoriesSuggestion/Skeleton.d.ts.map +1 -1
  20. package/lib/cjs/components/CategoriesSuggestion/Skeleton.js +3 -1
  21. package/lib/cjs/components/CategoriesSuggestion/Skeleton.js.map +1 -1
  22. package/lib/cjs/components/CommentsFeedObject/CommentsFeedObject.js +1 -1
  23. package/lib/cjs/components/CommentsFeedObject/CommentsFeedObject.js.map +1 -1
  24. package/lib/cjs/components/CustomAdv/CustomAdv.d.ts.map +1 -1
  25. package/lib/cjs/components/CustomAdv/CustomAdv.js +30 -2
  26. package/lib/cjs/components/CustomAdv/CustomAdv.js.map +1 -1
  27. package/lib/cjs/components/Editor/Editor.d.ts.map +1 -1
  28. package/lib/cjs/components/Editor/Editor.js +14 -14
  29. package/lib/cjs/components/Editor/Editor.js.map +1 -1
  30. package/lib/cjs/components/Feed/Feed.d.ts +5 -0
  31. package/lib/cjs/components/Feed/Feed.d.ts.map +1 -1
  32. package/lib/cjs/components/Feed/Feed.js +56 -39
  33. package/lib/cjs/components/Feed/Feed.js.map +1 -1
  34. package/lib/cjs/components/FeedObject/Activities/Activities.js +1 -1
  35. package/lib/cjs/components/FeedObject/FeedObject.d.ts.map +1 -1
  36. package/lib/cjs/components/FeedObject/FeedObject.js +9 -6
  37. package/lib/cjs/components/FeedObject/FeedObject.js.map +1 -1
  38. package/lib/cjs/components/Footer/Footer.d.ts +0 -5
  39. package/lib/cjs/components/Footer/Footer.d.ts.map +1 -1
  40. package/lib/cjs/components/Footer/Footer.js +1 -26
  41. package/lib/cjs/components/Footer/Footer.js.map +1 -1
  42. package/lib/cjs/components/Header/Header.js +2 -2
  43. package/lib/cjs/components/Header/Header.js.map +1 -1
  44. package/lib/cjs/components/Header/MobileHeader/MobileHeader.d.ts.map +1 -1
  45. package/lib/cjs/components/Header/MobileHeader/MobileHeader.js +4 -3
  46. package/lib/cjs/components/Header/MobileHeader/MobileHeader.js.map +1 -1
  47. package/lib/cjs/components/Header/SearchBar.d.ts +4 -0
  48. package/lib/cjs/components/Header/SearchBar.d.ts.map +1 -1
  49. package/lib/cjs/components/Header/SearchBar.js +83 -35
  50. package/lib/cjs/components/Header/SearchBar.js.map +1 -1
  51. package/lib/cjs/components/IncubatorSuggestion/IncubatorSuggestion.d.ts +7 -1
  52. package/lib/cjs/components/IncubatorSuggestion/IncubatorSuggestion.d.ts.map +1 -1
  53. package/lib/cjs/components/IncubatorSuggestion/IncubatorSuggestion.js +50 -38
  54. package/lib/cjs/components/IncubatorSuggestion/IncubatorSuggestion.js.map +1 -1
  55. package/lib/cjs/components/IncubatorsList/IncubatorsList.d.ts +7 -1
  56. package/lib/cjs/components/IncubatorsList/IncubatorsList.d.ts.map +1 -1
  57. package/lib/cjs/components/IncubatorsList/IncubatorsList.js +61 -38
  58. package/lib/cjs/components/IncubatorsList/IncubatorsList.js.map +1 -1
  59. package/lib/cjs/components/Message/Message.d.ts +3 -18
  60. package/lib/cjs/components/Message/Message.d.ts.map +1 -1
  61. package/lib/cjs/components/Message/Message.js +20 -17
  62. package/lib/cjs/components/Message/Message.js.map +1 -1
  63. package/lib/cjs/components/MessageEditor/MessageEditor.d.ts +4 -13
  64. package/lib/cjs/components/MessageEditor/MessageEditor.d.ts.map +1 -1
  65. package/lib/cjs/components/MessageEditor/MessageEditor.js +61 -40
  66. package/lib/cjs/components/MessageEditor/MessageEditor.js.map +1 -1
  67. package/lib/cjs/components/PeopleSuggestion/PeopleSuggestion.d.ts +6 -0
  68. package/lib/cjs/components/PeopleSuggestion/PeopleSuggestion.d.ts.map +1 -1
  69. package/lib/cjs/components/PeopleSuggestion/PeopleSuggestion.js +56 -52
  70. package/lib/cjs/components/PeopleSuggestion/PeopleSuggestion.js.map +1 -1
  71. package/lib/cjs/components/Platform/Platform.d.ts +2 -1
  72. package/lib/cjs/components/Platform/Platform.d.ts.map +1 -1
  73. package/lib/cjs/components/Platform/Platform.js +1 -1
  74. package/lib/cjs/components/Platform/Platform.js.map +1 -1
  75. package/lib/cjs/components/PollSuggestion/PollSuggestion.d.ts +7 -1
  76. package/lib/cjs/components/PollSuggestion/PollSuggestion.d.ts.map +1 -1
  77. package/lib/cjs/components/PollSuggestion/PollSuggestion.js +49 -37
  78. package/lib/cjs/components/PollSuggestion/PollSuggestion.js.map +1 -1
  79. package/lib/cjs/components/RelatedFeedObjects/RelatedFeedObjects.d.ts +7 -1
  80. package/lib/cjs/components/RelatedFeedObjects/RelatedFeedObjects.d.ts.map +1 -1
  81. package/lib/cjs/components/RelatedFeedObjects/RelatedFeedObjects.js +58 -40
  82. package/lib/cjs/components/RelatedFeedObjects/RelatedFeedObjects.js.map +1 -1
  83. package/lib/cjs/components/Snippets/Snippets.d.ts.map +1 -1
  84. package/lib/cjs/components/Snippets/Snippets.js +5 -3
  85. package/lib/cjs/components/Snippets/Snippets.js.map +1 -1
  86. package/lib/cjs/components/Thread/Thread.d.ts.map +1 -1
  87. package/lib/cjs/components/Thread/Thread.js +18 -34
  88. package/lib/cjs/components/Thread/Thread.js.map +1 -1
  89. package/lib/cjs/components/TrendingFeed/TrendingFeed.d.ts +12 -1
  90. package/lib/cjs/components/TrendingFeed/TrendingFeed.d.ts.map +1 -1
  91. package/lib/cjs/components/TrendingFeed/TrendingFeed.js +50 -35
  92. package/lib/cjs/components/TrendingFeed/TrendingFeed.js.map +1 -1
  93. package/lib/cjs/components/TrendingPeople/TrendingPeople.d.ts +6 -0
  94. package/lib/cjs/components/TrendingPeople/TrendingPeople.d.ts.map +1 -1
  95. package/lib/cjs/components/TrendingPeople/TrendingPeople.js +55 -39
  96. package/lib/cjs/components/TrendingPeople/TrendingPeople.js.map +1 -1
  97. package/lib/cjs/components/UserFollowers/UserFollowers.d.ts +6 -0
  98. package/lib/cjs/components/UserFollowers/UserFollowers.d.ts.map +1 -1
  99. package/lib/cjs/components/UserFollowers/UserFollowers.js +66 -43
  100. package/lib/cjs/components/UserFollowers/UserFollowers.js.map +1 -1
  101. package/lib/cjs/components/UserProfileEdit/Section/PublicInfo.d.ts +11 -1
  102. package/lib/cjs/components/UserProfileEdit/Section/PublicInfo.d.ts.map +1 -1
  103. package/lib/cjs/components/UserProfileEdit/Section/PublicInfo.js +21 -8
  104. package/lib/cjs/components/UserProfileEdit/Section/PublicInfo.js.map +1 -1
  105. package/lib/cjs/components/UserProfileEdit/Section/SocialAccount.d.ts +24 -0
  106. package/lib/cjs/components/UserProfileEdit/Section/SocialAccount.d.ts.map +1 -0
  107. package/lib/cjs/components/UserProfileEdit/Section/SocialAccount.js +113 -0
  108. package/lib/cjs/components/UserProfileEdit/Section/SocialAccount.js.map +1 -0
  109. package/lib/cjs/components/UserProfileEdit/index.d.ts +2 -1
  110. package/lib/cjs/components/UserProfileEdit/index.d.ts.map +1 -1
  111. package/lib/cjs/components/UserProfileEdit/index.js +3 -1
  112. package/lib/cjs/components/UserProfileEdit/index.js.map +1 -1
  113. package/lib/cjs/components/UserProfileInfo/UserProfileInfo.d.ts +6 -0
  114. package/lib/cjs/components/UserProfileInfo/UserProfileInfo.d.ts.map +1 -1
  115. package/lib/cjs/components/UserProfileInfo/UserProfileInfo.js +77 -3
  116. package/lib/cjs/components/UserProfileInfo/UserProfileInfo.js.map +1 -1
  117. package/lib/cjs/components/UserSocialAssociation/UserSocialAssociation.d.ts +70 -0
  118. package/lib/cjs/components/UserSocialAssociation/UserSocialAssociation.d.ts.map +1 -0
  119. package/lib/cjs/components/UserSocialAssociation/UserSocialAssociation.js +195 -0
  120. package/lib/cjs/components/UserSocialAssociation/UserSocialAssociation.js.map +1 -0
  121. package/lib/cjs/components/UserSocialAssociation/index.d.ts +4 -0
  122. package/lib/cjs/components/UserSocialAssociation/index.d.ts.map +1 -0
  123. package/lib/cjs/components/UserSocialAssociation/index.js +8 -0
  124. package/lib/cjs/components/UserSocialAssociation/index.js.map +1 -0
  125. package/lib/cjs/components/UsersFollowed/UsersFollowed.d.ts +6 -0
  126. package/lib/cjs/components/UsersFollowed/UsersFollowed.d.ts.map +1 -1
  127. package/lib/cjs/components/UsersFollowed/UsersFollowed.js +66 -47
  128. package/lib/cjs/components/UsersFollowed/UsersFollowed.js.map +1 -1
  129. package/lib/cjs/constants/Pagination.d.ts +1 -1
  130. package/lib/cjs/constants/Pagination.d.ts.map +1 -1
  131. package/lib/cjs/constants/Pagination.js +1 -1
  132. package/lib/cjs/constants/Pagination.js.map +1 -1
  133. package/lib/cjs/constants/UserProfile.d.ts.map +1 -1
  134. package/lib/cjs/constants/UserProfile.js +2 -1
  135. package/lib/cjs/constants/UserProfile.js.map +1 -1
  136. package/lib/cjs/index.d.ts +5 -2
  137. package/lib/cjs/index.d.ts.map +1 -1
  138. package/lib/cjs/index.js +9 -2
  139. package/lib/cjs/index.js.map +1 -1
  140. package/lib/cjs/shared/BaseDrawer/BaseDrawer.d.ts +1 -1
  141. package/lib/cjs/shared/BaseDrawer/BaseDrawer.d.ts.map +1 -1
  142. package/lib/cjs/shared/InfiniteScroll/index.js +1 -1
  143. package/lib/cjs/shared/InfiniteScroll/index.js.map +1 -1
  144. package/lib/cjs/shared/MetadataField/MetadataField.d.ts.map +1 -1
  145. package/lib/cjs/shared/MetadataField/MetadataField.js +6 -17
  146. package/lib/cjs/shared/MetadataField/MetadataField.js.map +1 -1
  147. package/lib/cjs/shared/Tags/index.d.ts.map +1 -1
  148. package/lib/cjs/shared/Tags/index.js +10 -7
  149. package/lib/cjs/shared/Tags/index.js.map +1 -1
  150. package/lib/cjs/types/index.d.ts +2 -2
  151. package/lib/cjs/types/index.d.ts.map +1 -1
  152. package/lib/cjs/types/index.js +2 -1
  153. package/lib/cjs/types/index.js.map +1 -1
  154. package/lib/cjs/types/user.d.ts +11 -1
  155. package/lib/cjs/types/user.d.ts.map +1 -1
  156. package/lib/cjs/types/user.js +12 -1
  157. package/lib/cjs/types/user.js.map +1 -1
  158. package/lib/cjs/utils/tools.d.ts +29 -0
  159. package/lib/cjs/utils/tools.d.ts.map +1 -0
  160. package/lib/cjs/utils/tools.js +81 -0
  161. package/lib/cjs/utils/tools.js.map +1 -0
  162. package/lib/esm/components/Categories/Categories.js +2 -2
  163. package/lib/esm/components/Categories/Categories.js.map +1 -1
  164. package/lib/esm/components/CategoriesFollowed/CategoriesFollowed.d.ts.map +1 -1
  165. package/lib/esm/components/CategoriesFollowed/CategoriesFollowed.js +64 -48
  166. package/lib/esm/components/CategoriesFollowed/CategoriesFollowed.js.map +1 -1
  167. package/lib/esm/components/CategoriesFollowed/Skeleton.d.ts.map +1 -1
  168. package/lib/esm/components/CategoriesFollowed/Skeleton.js +3 -1
  169. package/lib/esm/components/CategoriesFollowed/Skeleton.js.map +1 -1
  170. package/lib/esm/components/CategoriesPopular/CategoriesPopular.d.ts.map +1 -1
  171. package/lib/esm/components/CategoriesPopular/CategoriesPopular.js +56 -39
  172. package/lib/esm/components/CategoriesPopular/CategoriesPopular.js.map +1 -1
  173. package/lib/esm/components/CategoriesPopular/Skeleton.d.ts.map +1 -1
  174. package/lib/esm/components/CategoriesPopular/Skeleton.js +3 -1
  175. package/lib/esm/components/CategoriesPopular/Skeleton.js.map +1 -1
  176. package/lib/esm/components/CategoriesSuggestion/CategoriesSuggestion.d.ts +6 -0
  177. package/lib/esm/components/CategoriesSuggestion/CategoriesSuggestion.d.ts.map +1 -1
  178. package/lib/esm/components/CategoriesSuggestion/CategoriesSuggestion.js +58 -44
  179. package/lib/esm/components/CategoriesSuggestion/CategoriesSuggestion.js.map +1 -1
  180. package/lib/esm/components/CategoriesSuggestion/Skeleton.d.ts.map +1 -1
  181. package/lib/esm/components/CategoriesSuggestion/Skeleton.js +3 -1
  182. package/lib/esm/components/CategoriesSuggestion/Skeleton.js.map +1 -1
  183. package/lib/esm/components/CommentsFeedObject/CommentsFeedObject.js +1 -1
  184. package/lib/esm/components/CommentsFeedObject/CommentsFeedObject.js.map +1 -1
  185. package/lib/esm/components/CustomAdv/CustomAdv.d.ts.map +1 -1
  186. package/lib/esm/components/CustomAdv/CustomAdv.js +7 -2
  187. package/lib/esm/components/CustomAdv/CustomAdv.js.map +1 -1
  188. package/lib/esm/components/Editor/Editor.d.ts.map +1 -1
  189. package/lib/esm/components/Editor/Editor.js +14 -14
  190. package/lib/esm/components/Editor/Editor.js.map +1 -1
  191. package/lib/esm/components/Feed/Feed.d.ts +5 -0
  192. package/lib/esm/components/Feed/Feed.d.ts.map +1 -1
  193. package/lib/esm/components/Feed/Feed.js +57 -40
  194. package/lib/esm/components/Feed/Feed.js.map +1 -1
  195. package/lib/esm/components/FeedObject/Activities/Activities.js +1 -1
  196. package/lib/esm/components/FeedObject/FeedObject.d.ts.map +1 -1
  197. package/lib/esm/components/FeedObject/FeedObject.js +9 -6
  198. package/lib/esm/components/FeedObject/FeedObject.js.map +1 -1
  199. package/lib/esm/components/Footer/Footer.d.ts +0 -5
  200. package/lib/esm/components/Footer/Footer.d.ts.map +1 -1
  201. package/lib/esm/components/Footer/Footer.js +3 -28
  202. package/lib/esm/components/Footer/Footer.js.map +1 -1
  203. package/lib/esm/components/Header/Header.js +2 -2
  204. package/lib/esm/components/Header/Header.js.map +1 -1
  205. package/lib/esm/components/Header/MobileHeader/MobileHeader.d.ts.map +1 -1
  206. package/lib/esm/components/Header/MobileHeader/MobileHeader.js +4 -3
  207. package/lib/esm/components/Header/MobileHeader/MobileHeader.js.map +1 -1
  208. package/lib/esm/components/Header/SearchBar.d.ts +4 -0
  209. package/lib/esm/components/Header/SearchBar.d.ts.map +1 -1
  210. package/lib/esm/components/Header/SearchBar.js +86 -38
  211. package/lib/esm/components/Header/SearchBar.js.map +1 -1
  212. package/lib/esm/components/IncubatorSuggestion/IncubatorSuggestion.d.ts +7 -1
  213. package/lib/esm/components/IncubatorSuggestion/IncubatorSuggestion.d.ts.map +1 -1
  214. package/lib/esm/components/IncubatorSuggestion/IncubatorSuggestion.js +53 -41
  215. package/lib/esm/components/IncubatorSuggestion/IncubatorSuggestion.js.map +1 -1
  216. package/lib/esm/components/IncubatorsList/IncubatorsList.d.ts +7 -1
  217. package/lib/esm/components/IncubatorsList/IncubatorsList.d.ts.map +1 -1
  218. package/lib/esm/components/IncubatorsList/IncubatorsList.js +63 -40
  219. package/lib/esm/components/IncubatorsList/IncubatorsList.js.map +1 -1
  220. package/lib/esm/components/Message/Message.d.ts +3 -18
  221. package/lib/esm/components/Message/Message.d.ts.map +1 -1
  222. package/lib/esm/components/Message/Message.js +20 -17
  223. package/lib/esm/components/Message/Message.js.map +1 -1
  224. package/lib/esm/components/MessageEditor/MessageEditor.d.ts +4 -13
  225. package/lib/esm/components/MessageEditor/MessageEditor.d.ts.map +1 -1
  226. package/lib/esm/components/MessageEditor/MessageEditor.js +63 -42
  227. package/lib/esm/components/MessageEditor/MessageEditor.js.map +1 -1
  228. package/lib/esm/components/PeopleSuggestion/PeopleSuggestion.d.ts +6 -0
  229. package/lib/esm/components/PeopleSuggestion/PeopleSuggestion.d.ts.map +1 -1
  230. package/lib/esm/components/PeopleSuggestion/PeopleSuggestion.js +58 -54
  231. package/lib/esm/components/PeopleSuggestion/PeopleSuggestion.js.map +1 -1
  232. package/lib/esm/components/Platform/Platform.d.ts +2 -1
  233. package/lib/esm/components/Platform/Platform.d.ts.map +1 -1
  234. package/lib/esm/components/Platform/Platform.js +1 -1
  235. package/lib/esm/components/Platform/Platform.js.map +1 -1
  236. package/lib/esm/components/PollSuggestion/PollSuggestion.d.ts +7 -1
  237. package/lib/esm/components/PollSuggestion/PollSuggestion.d.ts.map +1 -1
  238. package/lib/esm/components/PollSuggestion/PollSuggestion.js +52 -40
  239. package/lib/esm/components/PollSuggestion/PollSuggestion.js.map +1 -1
  240. package/lib/esm/components/RelatedFeedObjects/RelatedFeedObjects.d.ts +7 -1
  241. package/lib/esm/components/RelatedFeedObjects/RelatedFeedObjects.d.ts.map +1 -1
  242. package/lib/esm/components/RelatedFeedObjects/RelatedFeedObjects.js +61 -43
  243. package/lib/esm/components/RelatedFeedObjects/RelatedFeedObjects.js.map +1 -1
  244. package/lib/esm/components/Snippets/Snippets.d.ts.map +1 -1
  245. package/lib/esm/components/Snippets/Snippets.js +6 -4
  246. package/lib/esm/components/Snippets/Snippets.js.map +1 -1
  247. package/lib/esm/components/Thread/Thread.d.ts.map +1 -1
  248. package/lib/esm/components/Thread/Thread.js +18 -34
  249. package/lib/esm/components/Thread/Thread.js.map +1 -1
  250. package/lib/esm/components/TrendingFeed/TrendingFeed.d.ts +12 -1
  251. package/lib/esm/components/TrendingFeed/TrendingFeed.d.ts.map +1 -1
  252. package/lib/esm/components/TrendingFeed/TrendingFeed.js +53 -38
  253. package/lib/esm/components/TrendingFeed/TrendingFeed.js.map +1 -1
  254. package/lib/esm/components/TrendingPeople/TrendingPeople.d.ts +6 -0
  255. package/lib/esm/components/TrendingPeople/TrendingPeople.d.ts.map +1 -1
  256. package/lib/esm/components/TrendingPeople/TrendingPeople.js +57 -41
  257. package/lib/esm/components/TrendingPeople/TrendingPeople.js.map +1 -1
  258. package/lib/esm/components/UserFollowers/UserFollowers.d.ts +6 -0
  259. package/lib/esm/components/UserFollowers/UserFollowers.d.ts.map +1 -1
  260. package/lib/esm/components/UserFollowers/UserFollowers.js +69 -46
  261. package/lib/esm/components/UserFollowers/UserFollowers.js.map +1 -1
  262. package/lib/esm/components/UserProfileEdit/Section/PublicInfo.d.ts +11 -1
  263. package/lib/esm/components/UserProfileEdit/Section/PublicInfo.d.ts.map +1 -1
  264. package/lib/esm/components/UserProfileEdit/Section/PublicInfo.js +22 -9
  265. package/lib/esm/components/UserProfileEdit/Section/PublicInfo.js.map +1 -1
  266. package/lib/esm/components/UserProfileEdit/Section/SocialAccount.d.ts +24 -0
  267. package/lib/esm/components/UserProfileEdit/Section/SocialAccount.d.ts.map +1 -0
  268. package/lib/esm/components/UserProfileEdit/Section/SocialAccount.js +84 -0
  269. package/lib/esm/components/UserProfileEdit/Section/SocialAccount.js.map +1 -0
  270. package/lib/esm/components/UserProfileEdit/index.d.ts +2 -1
  271. package/lib/esm/components/UserProfileEdit/index.d.ts.map +1 -1
  272. package/lib/esm/components/UserProfileEdit/index.js +2 -1
  273. package/lib/esm/components/UserProfileEdit/index.js.map +1 -1
  274. package/lib/esm/components/UserProfileInfo/UserProfileInfo.d.ts +6 -0
  275. package/lib/esm/components/UserProfileInfo/UserProfileInfo.d.ts.map +1 -1
  276. package/lib/esm/components/UserProfileInfo/UserProfileInfo.js +81 -7
  277. package/lib/esm/components/UserProfileInfo/UserProfileInfo.js.map +1 -1
  278. package/lib/esm/components/UserSocialAssociation/UserSocialAssociation.d.ts +70 -0
  279. package/lib/esm/components/UserSocialAssociation/UserSocialAssociation.d.ts.map +1 -0
  280. package/lib/esm/components/UserSocialAssociation/UserSocialAssociation.js +166 -0
  281. package/lib/esm/components/UserSocialAssociation/UserSocialAssociation.js.map +1 -0
  282. package/lib/esm/components/UserSocialAssociation/index.d.ts +4 -0
  283. package/lib/esm/components/UserSocialAssociation/index.d.ts.map +1 -0
  284. package/lib/esm/components/UserSocialAssociation/index.js +3 -0
  285. package/lib/esm/components/UserSocialAssociation/index.js.map +1 -0
  286. package/lib/esm/components/UsersFollowed/UsersFollowed.d.ts +6 -0
  287. package/lib/esm/components/UsersFollowed/UsersFollowed.d.ts.map +1 -1
  288. package/lib/esm/components/UsersFollowed/UsersFollowed.js +69 -50
  289. package/lib/esm/components/UsersFollowed/UsersFollowed.js.map +1 -1
  290. package/lib/esm/constants/Pagination.d.ts +1 -1
  291. package/lib/esm/constants/Pagination.d.ts.map +1 -1
  292. package/lib/esm/constants/Pagination.js +1 -1
  293. package/lib/esm/constants/Pagination.js.map +1 -1
  294. package/lib/esm/constants/UserProfile.d.ts.map +1 -1
  295. package/lib/esm/constants/UserProfile.js +2 -1
  296. package/lib/esm/constants/UserProfile.js.map +1 -1
  297. package/lib/esm/index.d.ts +5 -2
  298. package/lib/esm/index.d.ts.map +1 -1
  299. package/lib/esm/index.js +7 -4
  300. package/lib/esm/index.js.map +1 -1
  301. package/lib/esm/shared/BaseDrawer/BaseDrawer.d.ts +1 -1
  302. package/lib/esm/shared/BaseDrawer/BaseDrawer.d.ts.map +1 -1
  303. package/lib/esm/shared/InfiniteScroll/index.js +1 -1
  304. package/lib/esm/shared/InfiniteScroll/index.js.map +1 -1
  305. package/lib/esm/shared/MetadataField/MetadataField.d.ts.map +1 -1
  306. package/lib/esm/shared/MetadataField/MetadataField.js +6 -17
  307. package/lib/esm/shared/MetadataField/MetadataField.js.map +1 -1
  308. package/lib/esm/shared/Tags/index.d.ts.map +1 -1
  309. package/lib/esm/shared/Tags/index.js +10 -7
  310. package/lib/esm/shared/Tags/index.js.map +1 -1
  311. package/lib/esm/types/index.d.ts +2 -2
  312. package/lib/esm/types/index.d.ts.map +1 -1
  313. package/lib/esm/types/index.js +2 -2
  314. package/lib/esm/types/index.js.map +1 -1
  315. package/lib/esm/types/user.d.ts +11 -1
  316. package/lib/esm/types/user.d.ts.map +1 -1
  317. package/lib/esm/types/user.js +11 -0
  318. package/lib/esm/types/user.js.map +1 -1
  319. package/lib/esm/utils/tools.d.ts +29 -0
  320. package/lib/esm/utils/tools.d.ts.map +1 -0
  321. package/lib/esm/utils/tools.js +76 -0
  322. package/lib/esm/utils/tools.js.map +1 -0
  323. package/lib/umd/react-ui.js +11 -11
  324. package/lib/umd/react-ui.js.LICENSE.txt +3 -3
  325. package/lib/umd/react-ui.js.map +1 -1
  326. package/package.json +15 -15
@@ -55,6 +55,7 @@ const Skeleton_1 = __importDefault(require("./Skeleton"));
55
55
  const system_1 = require("@mui/system");
56
56
  const HiddenPlaceholder_1 = __importDefault(require("../../shared/HiddenPlaceholder"));
57
57
  const react_core_1 = require("@selfcommunity/react-core");
58
+ const tools_1 = require("../../utils/tools");
58
59
  const PREFIX = 'SCTrendingFeed';
59
60
  const classes = {
60
61
  root: `${PREFIX}-root`,
@@ -107,73 +108,87 @@ function TrendingFeed(inProps) {
107
108
  props: inProps,
108
109
  name: PREFIX
109
110
  });
110
- const { className = null, categoryId = null, template = null, autoHide = null } = props, rest = __rest(props, ["className", "categoryId", "template", "autoHide"]);
111
+ const { className = null, categoryId = null, template = null, autoHide = null, cacheStrategy = utils_1.CacheStrategies.NETWORK_ONLY, onHeightChange, onStateChange, pageUrl = null } = props, rest = __rest(props, ["className", "categoryId", "template", "autoHide", "cacheStrategy", "onHeightChange", "onStateChange", "pageUrl"]);
111
112
  // REFS
112
113
  const isMountedRef = (0, react_core_1.useIsComponentMountedRef)();
113
114
  // STATE
114
- const [posts, setPosts] = (0, react_1.useState)([]);
115
- const [loading, setLoading] = (0, react_1.useState)(true);
116
- const [hasMore, setHasMore] = (0, react_1.useState)(false);
115
+ const [state, dispatch] = (0, react_1.useReducer)(tools_1.dataToolsReducer, {
116
+ isLoadingNext: true,
117
+ next: `${api_services_1.Endpoints.CategoryTrendingFeed.url({ id: categoryId })}?limit=10`,
118
+ cacheKey: react_core_1.SCCache.getToolsStateCacheKey(react_core_1.SCCache.TRENDING_FEED_TOOLS_STATE_CACHE_PREFIX_KEY, categoryId),
119
+ cacheStrategy
120
+ }, tools_1.stateToolsInitializer);
117
121
  const [openTrendingPostDialog, setOpenTrendingPostDialog] = (0, react_1.useState)(false);
118
- const [total, setTotal] = (0, react_1.useState)(0);
119
- const [visible, setVisible] = (0, react_1.useState)(limit);
120
- const [next, setNext] = (0, react_1.useState)(`${api_services_1.Endpoints.CategoryTrendingFeed.url({ id: categoryId })}?limit=10`);
121
122
  /**
122
123
  * Fetches a list of trending posts
123
124
  */
124
- function fetchTrendingPost() {
125
- if (next) {
126
- api_services_1.http
127
- .request({
128
- url: next,
129
- method: api_services_1.Endpoints.CategoryTrendingFeed.method
130
- })
125
+ const fetchTrendingPost = (0, react_1.useMemo)(() => () => {
126
+ return api_services_1.http.request({
127
+ url: state.next,
128
+ method: api_services_1.Endpoints.CategoryTrendingFeed.method
129
+ });
130
+ }, [dispatch, state.next, state.isLoadingNext]);
131
+ const handleDialogOpening = () => {
132
+ setOpenTrendingPostDialog(true);
133
+ };
134
+ (0, react_1.useEffect)(() => {
135
+ if (cacheStrategy === utils_1.CacheStrategies.NETWORK_ONLY) {
136
+ onStateChange && onStateChange({ cacheStrategy: utils_1.CacheStrategies.CACHE_FIRST });
137
+ }
138
+ }, []);
139
+ /**
140
+ * On mount, fetches trending posts list
141
+ */
142
+ (0, react_1.useEffect)(() => {
143
+ let ignore = false;
144
+ if (state.next) {
145
+ fetchTrendingPost()
131
146
  .then((res) => {
132
- if (isMountedRef.current) {
147
+ if (res.status < 300 && isMountedRef.current && !ignore) {
133
148
  const data = res.data;
134
- setPosts([...posts, ...data.results]);
135
- setHasMore(data.count > visible);
136
- setLoading(false);
137
- setTotal(data.count);
138
- setNext(data['next']);
149
+ dispatch({
150
+ type: tools_1.actionToolsTypes.LOAD_NEXT_SUCCESS,
151
+ payload: {
152
+ results: data.results,
153
+ count: data.count,
154
+ next: data.next
155
+ }
156
+ });
139
157
  }
140
158
  })
141
159
  .catch((error) => {
142
- setLoading(false);
160
+ dispatch({ type: tools_1.actionToolsTypes.LOAD_NEXT_FAILURE, payload: { errorLoadNext: error } });
143
161
  utils_1.Logger.error(Errors_1.SCOPE_SC_UI, error);
144
162
  });
163
+ return () => {
164
+ ignore = true;
165
+ };
145
166
  }
146
- }
147
- /**
148
- * On mount, fetches trending posts list
149
- */
150
- (0, react_1.useEffect)(() => {
151
- fetchTrendingPost();
152
- }, []);
167
+ }, [state.next]);
153
168
  /**
154
169
  * Renders the list
155
170
  */
156
- if (loading) {
171
+ if (state.isLoadingNext) {
157
172
  return react_1.default.createElement(Skeleton_1.default, null);
158
173
  }
159
174
  const f = (react_1.default.createElement(material_1.CardContent, null,
160
175
  react_1.default.createElement(material_1.Typography, { className: classes.title, variant: "h5" },
161
176
  react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.trendingFeed.title", defaultMessage: "ui.trendingFeed.title" })),
162
- !total ? (react_1.default.createElement(material_1.Typography, { className: classes.noResults, variant: "body2" },
177
+ !state.count ? (react_1.default.createElement(material_1.Typography, { className: classes.noResults, variant: "body2" },
163
178
  react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.trendingFeed.noResults", defaultMessage: "ui.trendingFeed.noResults" }))) : (react_1.default.createElement(react_1.default.Fragment, null,
164
- react_1.default.createElement(List_1.default, null, posts.slice(0, visible).map((obj, index) => (react_1.default.createElement(material_1.ListItem, { key: index },
179
+ react_1.default.createElement(List_1.default, null, state.results.slice(0, limit).map((obj, index) => (react_1.default.createElement(material_1.ListItem, { key: index },
165
180
  react_1.default.createElement(FeedObject_1.default, { elevation: 0, feedObject: obj[obj.type], template: template, className: classes.trendingItem }))))),
166
- hasMore && (react_1.default.createElement(material_1.Button, { size: "small", className: classes.showMore, onClick: () => setOpenTrendingPostDialog(true) },
181
+ limit < state.count && (react_1.default.createElement(material_1.Button, { size: "small", className: classes.showMore, onClick: pageUrl !== null && pageUrl !== void 0 ? pageUrl : handleDialogOpening },
167
182
  react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.trendingFeed.button.showMore", defaultMessage: "ui.trendingFeed.button.showMore" }))))),
168
- openTrendingPostDialog && (react_1.default.createElement(BaseDialog_1.default, { title: react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.trendingFeed.title", defaultMessage: "ui.trendingFeed.title" }), onClose: () => setOpenTrendingPostDialog(false), open: openTrendingPostDialog }, loading ? (react_1.default.createElement(CentralProgress_1.default, { size: 50 })) : (react_1.default.createElement(InfiniteScroll_1.default, { dataLength: posts.length, next: fetchTrendingPost, hasMoreNext: Boolean(next), loaderNext: react_1.default.createElement(CentralProgress_1.default, { size: 30 }), height: 400, endMessage: react_1.default.createElement("p", { style: { textAlign: 'center' } },
183
+ openTrendingPostDialog && (react_1.default.createElement(BaseDialog_1.default, { title: react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.trendingFeed.title", defaultMessage: "ui.trendingFeed.title" }), onClose: () => setOpenTrendingPostDialog(false), open: openTrendingPostDialog }, state.isLoadingNext ? (react_1.default.createElement(CentralProgress_1.default, { size: 50 })) : (react_1.default.createElement(InfiniteScroll_1.default, { dataLength: state.results.length, next: fetchTrendingPost, hasMoreNext: Boolean(state.next), loaderNext: react_1.default.createElement(CentralProgress_1.default, { size: 30 }), height: 400, endMessage: react_1.default.createElement("p", { style: { textAlign: 'center' } },
169
184
  react_1.default.createElement("b", null,
170
185
  react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.trendingFeed.noMoreResults", defaultMessage: "ui.trendingFeed.noMoreResults" }))) },
171
- react_1.default.createElement(List_1.default, null, posts.map((obj, index) => (react_1.default.createElement(material_1.ListItem, { key: index },
186
+ react_1.default.createElement(List_1.default, null, state.results.map((obj, index) => (react_1.default.createElement(material_1.ListItem, { key: index },
172
187
  react_1.default.createElement(FeedObject_1.default, { elevation: 0, feedObject: obj[obj.type], template: template, className: classes.trendingItem })))))))))));
173
188
  /**
174
189
  * Renders root object (if results and autoHide prop is set to false, otherwise component is hidden)
175
190
  */
176
- if (autoHide && !total) {
191
+ if (autoHide && !state.count) {
177
192
  return react_1.default.createElement(HiddenPlaceholder_1.default, null);
178
193
  }
179
194
  return (react_1.default.createElement(Root, Object.assign({ className: (0, classnames_1.default)(classes.root, className) }, rest), f));
@@ -1 +1 @@
1
- {"version":3,"file":"TrendingFeed.js","sourceRoot":"","sources":["../../../../src/components/TrendingFeed/TrendingFeed.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TrendingFeed.js","sourceRoot":"","sources":["../../../../src/components/TrendingFeed/TrendingFeed.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { UserProps } from '../User';
2
2
  import { VirtualScrollerItemProps } from '../../types/virtualScroller';
3
+ import { CacheStrategies } from '@selfcommunity/utils';
3
4
  export interface TrendingPeopleProps extends VirtualScrollerItemProps {
4
5
  /**
5
6
  * Category id
@@ -21,6 +22,11 @@ export interface TrendingPeopleProps extends VirtualScrollerItemProps {
21
22
  * @default empty object
22
23
  */
23
24
  UserProps?: UserProps;
25
+ /**
26
+ * Caching strategies
27
+ * @default CacheStrategies.CACHE_FIRST
28
+ */
29
+ cacheStrategy?: CacheStrategies;
24
30
  /**
25
31
  * Other props
26
32
  */
@@ -1 +1 @@
1
- {"version":3,"file":"TrendingPeople.d.ts","sourceRoot":"","sources":["../../../../src/components/TrendingPeople/TrendingPeople.tsx"],"names":[],"mappings":"AAeA,OAAa,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;AAQxC,OAAO,EAAC,wBAAwB,EAAC,MAAM,6BAA6B,CAAC;AAuBrE,MAAM,WAAW,mBAAoB,SAAQ,wBAAwB;IACnE;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB;;OAEG;IACH,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,OAAO,EAAE,mBAAmB,GAAG,GAAG,CAAC,OAAO,CAmLhF"}
1
+ {"version":3,"file":"TrendingPeople.d.ts","sourceRoot":"","sources":["../../../../src/components/TrendingPeople/TrendingPeople.tsx"],"names":[],"mappings":"AAgBA,OAAa,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;AAQxC,OAAO,EAAC,wBAAwB,EAAC,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAC,eAAe,EAAS,MAAM,sBAAsB,CAAC;AAyB7D,MAAM,WAAW,mBAAoB,SAAQ,wBAAwB;IACnE;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;OAGG;IACH,aAAa,CAAC,EAAE,eAAe,CAAC;IAChC;;OAEG;IACH,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,OAAO,EAAE,mBAAmB,GAAG,GAAG,CAAC,OAAO,CA+MhF"}
@@ -53,6 +53,9 @@ const InfiniteScroll_1 = __importDefault(require("../../shared/InfiniteScroll"))
53
53
  const Skeleton_1 = __importDefault(require("./Skeleton"));
54
54
  const system_1 = require("@mui/system");
55
55
  const HiddenPlaceholder_1 = __importDefault(require("../../shared/HiddenPlaceholder"));
56
+ const utils_1 = require("@selfcommunity/utils");
57
+ const tools_1 = require("../../utils/tools");
58
+ const Errors_1 = require("../../constants/Errors");
56
59
  const PREFIX = 'SCTrendingPeople';
57
60
  const classes = {
58
61
  root: `${PREFIX}-root`,
@@ -105,19 +108,19 @@ function TrendingPeople(inProps) {
105
108
  props: inProps,
106
109
  name: PREFIX
107
110
  });
108
- const { categoryId, autoHide, className, UserProps = {} } = props, rest = __rest(props, ["categoryId", "autoHide", "className", "UserProps"]);
111
+ const { categoryId, autoHide, className, UserProps = {}, cacheStrategy = utils_1.CacheStrategies.NETWORK_ONLY, onHeightChange, onStateChange } = props, rest = __rest(props, ["categoryId", "autoHide", "className", "UserProps", "cacheStrategy", "onHeightChange", "onStateChange"]);
109
112
  // REFS
110
113
  const isMountedRef = (0, react_core_1.useIsComponentMountedRef)();
111
114
  // STATE
112
115
  const theme = (0, material_1.useTheme)();
113
116
  const isMobile = (0, material_1.useMediaQuery)(theme.breakpoints.down('md'));
114
- const [people, setPeople] = (0, react_1.useState)([]);
115
- const [visiblePeople, setVisiblePeople] = (0, react_1.useState)(limit);
116
- const [loading, setLoading] = (0, react_1.useState)(true);
117
- const [hasMore, setHasMore] = (0, react_1.useState)(false);
117
+ const [state, dispatch] = (0, react_1.useReducer)(tools_1.dataToolsReducer, {
118
+ isLoadingNext: true,
119
+ next: `${api_services_1.Endpoints.CategoryTrendingPeople.url({ id: categoryId })}?limit=10`,
120
+ cacheKey: react_core_1.SCCache.getToolsStateCacheKey(react_core_1.SCCache.TRENDING_PEOPLE_TOOLS_STATE_CACHE_PREFIX_KEY, categoryId),
121
+ cacheStrategy
122
+ }, tools_1.stateToolsInitializer);
118
123
  const [openTrendingPeopleDialog, setOpenTrendingPeopleDialog] = (0, react_1.useState)(false);
119
- const [total, setTotal] = (0, react_1.useState)(0);
120
- const [next, setNext] = (0, react_1.useState)(`${api_services_1.Endpoints.CategoryTrendingPeople.url({ id: categoryId })}?limit=10`);
121
124
  // CONTEXT
122
125
  const scUserContext = (0, react_1.useContext)(react_core_1.SCUserContext);
123
126
  const scPreferencesContext = (0, react_1.useContext)(react_core_1.SCPreferencesContext);
@@ -126,42 +129,52 @@ function TrendingPeople(inProps) {
126
129
  /**
127
130
  * Fetches trending people list
128
131
  */
129
- function fetchTrendingPeople() {
130
- setLoading(true);
131
- if (next) {
132
- api_services_1.http
133
- .request({
134
- url: next,
135
- method: api_services_1.Endpoints.CategoryTrendingPeople.method
136
- })
132
+ const fetchTrendingPeople = (0, react_1.useMemo)(() => () => {
133
+ return api_services_1.http.request({
134
+ url: state.next,
135
+ method: api_services_1.Endpoints.CategoryTrendingPeople.method
136
+ });
137
+ }, [dispatch, state.next, state.isLoadingNext]);
138
+ (0, react_1.useEffect)(() => {
139
+ if (cacheStrategy === utils_1.CacheStrategies.NETWORK_ONLY) {
140
+ onStateChange && onStateChange({ cacheStrategy: utils_1.CacheStrategies.CACHE_FIRST });
141
+ }
142
+ }, []);
143
+ /**
144
+ * On mount, fetches trending people list
145
+ */
146
+ (0, react_1.useEffect)(() => {
147
+ let ignore = false;
148
+ if (state.next) {
149
+ fetchTrendingPeople()
137
150
  .then((res) => {
138
- if (isMountedRef.current) {
151
+ if (res.status < 300 && isMountedRef.current && !ignore) {
139
152
  const data = res.data;
140
- setPeople([...people, ...data.results]);
141
- setHasMore(data.count > visiblePeople);
142
- setNext(data['next']);
143
- setLoading(false);
144
- setTotal(data.count);
153
+ dispatch({
154
+ type: tools_1.actionToolsTypes.LOAD_NEXT_SUCCESS,
155
+ payload: {
156
+ results: data.results,
157
+ count: data.count,
158
+ next: data.next
159
+ }
160
+ });
145
161
  }
146
162
  })
147
163
  .catch((error) => {
148
- setLoading(false);
149
- console.log(error);
164
+ dispatch({ type: tools_1.actionToolsTypes.LOAD_NEXT_FAILURE, payload: { errorLoadNext: error } });
165
+ utils_1.Logger.error(Errors_1.SCOPE_SC_UI, error);
150
166
  });
167
+ return () => {
168
+ ignore = true;
169
+ };
151
170
  }
152
- }
153
- /**
154
- * On mount, fetches trending people list
155
- */
156
- (0, react_1.useEffect)(() => {
157
- fetchTrendingPeople();
158
- }, []);
171
+ }, [state.next]);
159
172
  /**
160
173
  * Handles followers counter update on follow/unfollow action.
161
174
  * @param user
162
175
  */
163
176
  function handleFollowersUpdate(user) {
164
- const newUsers = [...people];
177
+ const newUsers = [...state.results];
165
178
  const index = newUsers.findIndex((u) => u.id === user.id);
166
179
  if (index !== -1) {
167
180
  if (user.connection_status === 'followed') {
@@ -172,37 +185,40 @@ function TrendingPeople(inProps) {
172
185
  newUsers[index].followers_counter = user.followers_counter + 1;
173
186
  newUsers[index].connection_status = 'followed';
174
187
  }
175
- setPeople(newUsers);
188
+ dispatch({
189
+ type: tools_1.actionToolsTypes.SET_RESULTS,
190
+ payload: { results: newUsers }
191
+ });
176
192
  }
177
193
  }
178
194
  /**
179
195
  * Renders trending people list
180
196
  */
181
- if (loading) {
197
+ if (state.isLoadingNext) {
182
198
  return react_1.default.createElement(Skeleton_1.default, null);
183
199
  }
184
200
  const p = (react_1.default.createElement(material_1.CardContent, null,
185
201
  react_1.default.createElement(material_1.Typography, { className: classes.title, variant: "h5" },
186
202
  react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.trendingPeople.title", defaultMessage: "ui.trendingPeople.title" })),
187
- !total ? (react_1.default.createElement(material_1.Typography, { className: classes.noResults, variant: "body2" },
203
+ !state.count ? (react_1.default.createElement(material_1.Typography, { className: classes.noResults, variant: "body2" },
188
204
  react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.trendingPeople.noResults", defaultMessage: "ui.trendingPeople.noResults" }))) : (react_1.default.createElement(react_1.default.Fragment, null,
189
- react_1.default.createElement(List_1.default, null, people.slice(0, visiblePeople).map((user) => (react_1.default.createElement(material_1.ListItem, { key: user.id },
205
+ react_1.default.createElement(List_1.default, null, state.results.slice(0, limit).map((user) => (react_1.default.createElement(material_1.ListItem, { key: user.id },
190
206
  react_1.default.createElement(User_1.default, Object.assign({ elevation: 0, user: user, className: classes.trendingUserItem }, (followEnabled
191
207
  ? { followConnectUserButtonProps: { onFollow: handleFollowersUpdate } }
192
208
  : { followConnectUserButtonProps: { onChangeConnectionStatus: handleFollowersUpdate } }), UserProps)))))))),
193
- hasMore && (react_1.default.createElement(material_1.Button, { size: "small", className: classes.showMore, onClick: () => setOpenTrendingPeopleDialog(true) },
209
+ limit < state.count && (react_1.default.createElement(material_1.Button, { size: "small", className: classes.showMore, onClick: () => setOpenTrendingPeopleDialog(true) },
194
210
  react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.trendingPeople.button.showAll", defaultMessage: "ui.trendingPeople.button.showAll" }))),
195
- openTrendingPeopleDialog && (react_1.default.createElement(BaseDialog_1.default, { title: react_1.default.createElement(react_intl_1.FormattedMessage, { defaultMessage: "ui.trendingPeople.title", id: "ui.trendingPeople.title" }), onClose: () => setOpenTrendingPeopleDialog(false), open: openTrendingPeopleDialog }, loading ? (react_1.default.createElement(CentralProgress_1.default, { size: 50 })) : (react_1.default.createElement(InfiniteScroll_1.default, { dataLength: people.length, next: fetchTrendingPeople, hasMoreNext: Boolean(next), loaderNext: react_1.default.createElement(CentralProgress_1.default, { size: 30 }), height: isMobile ? '100vh' : 400, endMessage: react_1.default.createElement("p", { style: { textAlign: 'center' } },
211
+ openTrendingPeopleDialog && (react_1.default.createElement(BaseDialog_1.default, { title: react_1.default.createElement(react_intl_1.FormattedMessage, { defaultMessage: "ui.trendingPeople.title", id: "ui.trendingPeople.title" }), onClose: () => setOpenTrendingPeopleDialog(false), open: openTrendingPeopleDialog }, state.isLoadingNext ? (react_1.default.createElement(CentralProgress_1.default, { size: 50 })) : (react_1.default.createElement(InfiniteScroll_1.default, { dataLength: state.results.length, next: fetchTrendingPeople, hasMoreNext: Boolean(state.next), loaderNext: react_1.default.createElement(CentralProgress_1.default, { size: 30 }), height: isMobile ? '100vh' : 400, endMessage: react_1.default.createElement("p", { style: { textAlign: 'center' } },
196
212
  react_1.default.createElement("b", null,
197
213
  react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.trendingPeople.noMoreResults", defaultMessage: "ui.trendingPeople.noMoreResults" }))) },
198
- react_1.default.createElement(List_1.default, null, people.map((p, index) => (react_1.default.createElement(material_1.ListItem, { key: p.id },
214
+ react_1.default.createElement(List_1.default, null, state.results.map((p) => (react_1.default.createElement(material_1.ListItem, { key: p.id },
199
215
  react_1.default.createElement(User_1.default, Object.assign({ elevation: 0, user: p, className: classes.trendingUserItem }, (followEnabled
200
216
  ? { followConnectUserButtonProps: { onFollow: handleFollowersUpdate } }
201
217
  : { followConnectUserButtonProps: { onChangeConnectionStatus: handleFollowersUpdate } }), UserProps))))))))))));
202
218
  /**
203
219
  * Renders root object (if results and autoHide prop is set to false, otherwise component is hidden)
204
220
  */
205
- if (autoHide && !total) {
221
+ if (autoHide && !state.count) {
206
222
  return react_1.default.createElement(HiddenPlaceholder_1.default, null);
207
223
  }
208
224
  return (react_1.default.createElement(Root, Object.assign({ className: (0, classnames_1.default)(classes.root, className) }, rest), p));
@@ -1 +1 @@
1
- {"version":3,"file":"TrendingPeople.js","sourceRoot":"","sources":["../../../../src/components/TrendingPeople/TrendingPeople.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TrendingPeople.js","sourceRoot":"","sources":["../../../../src/components/TrendingPeople/TrendingPeople.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { CacheStrategies } from '@selfcommunity/utils';
1
2
  import { UserProps } from '../User';
2
3
  import { VirtualScrollerItemProps } from '../../types/virtualScroller';
3
4
  export interface UserFollowersProps extends VirtualScrollerItemProps {
@@ -21,6 +22,11 @@ export interface UserFollowersProps extends VirtualScrollerItemProps {
21
22
  * @default empty object
22
23
  */
23
24
  UserProps?: UserProps;
25
+ /**
26
+ * Caching strategies
27
+ * @default CacheStrategies.CACHE_FIRST
28
+ */
29
+ cacheStrategy?: CacheStrategies;
24
30
  }
25
31
  /**
26
32
  * > API documentation for the Community-JS User Followers component. Learn about the available props and the CSS API.
@@ -1 +1 @@
1
- {"version":3,"file":"UserFollowers.d.ts","sourceRoot":"","sources":["../../../../src/components/UserFollowers/UserFollowers.tsx"],"names":[],"mappings":"AAiBA,OAAa,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;AASxC,OAAO,EAAC,wBAAwB,EAAC,MAAM,6BAA6B,CAAC;AAkCrE,MAAM,WAAW,kBAAmB,SAAQ,wBAAwB;IAClE;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,OAAO,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,CA2M9E"}
1
+ {"version":3,"file":"UserFollowers.d.ts","sourceRoot":"","sources":["../../../../src/components/UserFollowers/UserFollowers.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAC,eAAe,EAAS,MAAM,sBAAsB,CAAC;AAY7D,OAAa,EAAC,SAAS,EAAC,MAAM,SAAS,CAAC;AASxC,OAAO,EAAC,wBAAwB,EAAC,MAAM,6BAA6B,CAAC;AAkCrE,MAAM,WAAW,kBAAmB,SAAQ,wBAAwB;IAClE;;;OAGG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;OAGG;IACH,aAAa,CAAC,EAAE,eAAe,CAAC;CACjC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,OAAO,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,CAyO9E"}
@@ -34,6 +34,7 @@ const Widget_1 = __importDefault(require("../Widget"));
34
34
  const api_services_1 = require("@selfcommunity/api-services");
35
35
  const utils_1 = require("@selfcommunity/utils");
36
36
  const react_core_1 = require("@selfcommunity/react-core");
37
+ const tools_1 = require("../../utils/tools");
37
38
  const Skeleton_1 = __importDefault(require("./Skeleton"));
38
39
  const User_1 = __importDefault(require("../User"));
39
40
  const react_intl_1 = require("react-intl");
@@ -115,63 +116,82 @@ function UserFollowers(inProps) {
115
116
  props: inProps,
116
117
  name: PREFIX
117
118
  });
118
- const { userId, autoHide, className, UserProps = {} } = props;
119
+ const { userId, autoHide, className, UserProps = {}, cacheStrategy = utils_1.CacheStrategies.NETWORK_ONLY, onHeightChange, onStateChange } = props;
119
120
  // REFS
120
121
  const isMountedRef = (0, react_core_1.useIsComponentMountedRef)();
121
122
  // STATE
122
123
  const theme = (0, material_1.useTheme)();
123
124
  const isMobile = (0, material_1.useMediaQuery)(theme.breakpoints.down('md'));
124
- const [followers, setFollowers] = (0, react_1.useState)([]);
125
- const [visibleUsers, setVisibleUsers] = (0, react_1.useState)(limit);
126
- const [loading, setLoading] = (0, react_1.useState)(true);
127
- const [hasMore, setHasMore] = (0, react_1.useState)(false);
128
- const [total, setTotal] = (0, react_1.useState)(0);
125
+ const [state, dispatch] = (0, react_1.useReducer)(tools_1.dataToolsReducer, {
126
+ isLoadingNext: true,
127
+ next: `${api_services_1.Endpoints.UserFollowers.url({ id: userId })}?limit=10`,
128
+ cacheKey: react_core_1.SCCache.getToolsStateCacheKey(react_core_1.SCCache.USER_FOLLOWERS_TOOLS_STATE_CACHE_PREFIX_KEY, userId),
129
+ cacheStrategy
130
+ }, tools_1.stateToolsInitializer);
129
131
  const [openUserFollowersDialog, setOpenUserFollowersDialog] = (0, react_1.useState)(false);
130
- const [next, setNext] = (0, react_1.useState)(`${api_services_1.Endpoints.UserFollowers.url({ id: userId })}?limit=10`);
132
+ // CONST
133
+ const authUserId = scUserContext.user ? scUserContext.user.id : null;
131
134
  /**
132
135
  * Fetches the list of users followers
133
136
  */
134
- function fetchFollowers() {
135
- if (next) {
136
- api_services_1.http
137
- .request({
138
- url: next,
139
- method: api_services_1.Endpoints.UserFollowers.method
140
- })
137
+ const fetchFollowers = (0, react_1.useMemo)(() => () => {
138
+ return api_services_1.http.request({
139
+ url: state.next,
140
+ method: api_services_1.Endpoints.UserFollowers.method
141
+ });
142
+ }, [dispatch, state.next, state.isLoadingNext]);
143
+ (0, react_1.useEffect)(() => {
144
+ if (!userId) {
145
+ return;
146
+ }
147
+ else if (!contentAvailability && !authUserId) {
148
+ return;
149
+ }
150
+ else if (cacheStrategy === utils_1.CacheStrategies.NETWORK_ONLY) {
151
+ onStateChange && onStateChange({ cacheStrategy: utils_1.CacheStrategies.CACHE_FIRST });
152
+ }
153
+ }, [authUserId]);
154
+ /**
155
+ * On mount, fetches the list of users followers
156
+ */
157
+ (0, react_1.useEffect)(() => {
158
+ let ignore = false;
159
+ if (state.next) {
160
+ fetchFollowers()
141
161
  .then((res) => {
142
- if (isMountedRef.current) {
162
+ if (res.status < 300 && isMountedRef.current && !ignore) {
143
163
  const data = res.data;
144
- setFollowers([...followers, ...data.results]);
145
- setHasMore(data.count > visibleUsers);
146
- setNext(data['next']);
147
- setLoading(false);
148
- setTotal(data.count);
164
+ dispatch({
165
+ type: tools_1.actionToolsTypes.LOAD_NEXT_SUCCESS,
166
+ payload: {
167
+ results: data.results,
168
+ count: data.count,
169
+ next: data.next
170
+ }
171
+ });
149
172
  }
150
173
  })
151
174
  .catch((error) => {
152
- setLoading(false);
175
+ dispatch({ type: tools_1.actionToolsTypes.LOAD_NEXT_FAILURE, payload: { errorLoadNext: error } });
153
176
  utils_1.Logger.error(Errors_1.SCOPE_SC_UI, error);
154
177
  });
178
+ return () => {
179
+ ignore = true;
180
+ };
155
181
  }
156
- }
182
+ }, [state.next]);
157
183
  /**
158
- * On mount, fetches the list of users followers
184
+ * Virtual feed update
159
185
  */
160
186
  (0, react_1.useEffect)(() => {
161
- if (!contentAvailability && !scUserContext.user) {
162
- return;
163
- }
164
- if (!userId) {
165
- return;
166
- }
167
- fetchFollowers();
168
- }, [scUserContext.user]);
187
+ onHeightChange && onHeightChange();
188
+ }, [state.results.length]);
169
189
  /**
170
190
  * Handles followers counter update on follow/unfollow action.
171
191
  * @param user
172
192
  */
173
193
  function handleFollowersUpdate(user) {
174
- const newUsers = [...followers];
194
+ const newUsers = [...state.results];
175
195
  const index = newUsers.findIndex((u) => u.id === user.id);
176
196
  if (index !== -1) {
177
197
  if (user.connection_status === 'followed') {
@@ -182,41 +202,44 @@ function UserFollowers(inProps) {
182
202
  newUsers[index].followers_counter = user.followers_counter + 1;
183
203
  newUsers[index].connection_status = 'followed';
184
204
  }
185
- setFollowers(newUsers);
205
+ dispatch({
206
+ type: tools_1.actionToolsTypes.SET_RESULTS,
207
+ payload: { results: newUsers }
208
+ });
186
209
  }
187
210
  }
188
211
  /**
189
212
  * Renders the list of users followers
190
213
  */
191
- if (loading) {
192
- react_1.default.createElement(Skeleton_1.default, null);
214
+ if (state.isLoadingNext) {
215
+ return react_1.default.createElement(Skeleton_1.default, null);
193
216
  }
194
217
  const u = (react_1.default.createElement(material_1.CardContent, null,
195
- react_1.default.createElement(material_1.Typography, { className: classes.title, variant: "h5" }, `${intl.formatMessage(messages.title, { total: total })}`),
196
- !total ? (react_1.default.createElement(material_1.Typography, { className: classes.noResults, variant: "body2" }, `${intl.formatMessage(messages.noFollowers)}`)) : (react_1.default.createElement(react_1.default.Fragment, null,
197
- react_1.default.createElement(List_1.default, null, followers.slice(0, visibleUsers).map((user) => (react_1.default.createElement(material_1.ListItem, { key: user.id },
218
+ react_1.default.createElement(material_1.Typography, { className: classes.title, variant: "h5" }, `${intl.formatMessage(messages.title, { total: state.count })}`),
219
+ !state.count ? (react_1.default.createElement(material_1.Typography, { className: classes.noResults, variant: "body2" }, `${intl.formatMessage(messages.noFollowers)}`)) : (react_1.default.createElement(react_1.default.Fragment, null,
220
+ react_1.default.createElement(List_1.default, null, state.results.slice(0, limit).map((user) => (react_1.default.createElement(material_1.ListItem, { key: user.id },
198
221
  react_1.default.createElement(User_1.default, Object.assign({ elevation: 0, user: user, className: classes.followersItem }, (followEnabled
199
222
  ? { followConnectUserButtonProps: { onFollow: handleFollowersUpdate } }
200
223
  : { followConnectUserButtonProps: { onChangeConnectionStatus: handleFollowersUpdate } }), UserProps)))))),
201
- hasMore && (react_1.default.createElement(material_1.Button, { size: "small", className: classes.showMore, onClick: () => setOpenUserFollowersDialog(true) },
224
+ limit < state.count && (react_1.default.createElement(material_1.Button, { size: "small", className: classes.showMore, onClick: () => setOpenUserFollowersDialog(true) },
202
225
  react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.userFollowers.button.showAll", defaultMessage: "ui.userFollowers.button.showAll" }))),
203
- openUserFollowersDialog && (react_1.default.createElement(BaseDialog_1.default, { title: isMobile ? (react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.userFollowers.modal.title", defaultMessage: "ui.userFollowers.modal.title" })) : (`${intl.formatMessage(messages.title, { total: total })}`), onClose: () => setOpenUserFollowersDialog(false), open: openUserFollowersDialog }, loading ? (react_1.default.createElement(CentralProgress_1.default, { size: 50 })) : (react_1.default.createElement(InfiniteScroll_1.default, { dataLength: followers.length, next: fetchFollowers, hasMoreNext: Boolean(next), loaderNext: react_1.default.createElement(CentralProgress_1.default, { size: 30 }), height: isMobile ? '100vh' : 400, endMessage: react_1.default.createElement("p", { style: { textAlign: 'center' } },
226
+ openUserFollowersDialog && (react_1.default.createElement(BaseDialog_1.default, { title: isMobile ? (react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.userFollowers.modal.title", defaultMessage: "ui.userFollowers.modal.title" })) : (`${intl.formatMessage(messages.title, { total: state.count })}`), onClose: () => setOpenUserFollowersDialog(false), open: openUserFollowersDialog }, state.isLoadingNext ? (react_1.default.createElement(CentralProgress_1.default, { size: 50 })) : (react_1.default.createElement(InfiniteScroll_1.default, { dataLength: state.results.length, next: fetchFollowers, hasMoreNext: Boolean(state.next), loaderNext: react_1.default.createElement(CentralProgress_1.default, { size: 30 }), height: isMobile ? '100vh' : 400, endMessage: react_1.default.createElement("p", { style: { textAlign: 'center' } },
204
227
  react_1.default.createElement("b", null,
205
228
  react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.userFollowers.noMoreResults", defaultMessage: "ui.userFollowers.noMoreResults" }))) },
206
- react_1.default.createElement(List_1.default, null, followers.map((f) => (react_1.default.createElement(material_1.ListItem, { key: f.id },
229
+ react_1.default.createElement(List_1.default, null, state.results.map((f) => (react_1.default.createElement(material_1.ListItem, { key: f.id },
207
230
  react_1.default.createElement(User_1.default, Object.assign({ elevation: 0, user: f, className: classes.followersItem }, (followEnabled
208
231
  ? { followConnectUserButtonProps: { onFollow: handleFollowersUpdate } }
209
232
  : { followConnectUserButtonProps: { onChangeConnectionStatus: handleFollowersUpdate } }), UserProps))))))))))))));
210
233
  /**
211
234
  * if there are no results and autoHide prop is set to true ,component is hidden
212
235
  */
213
- if (autoHide && !total) {
236
+ if (autoHide && !state.count) {
214
237
  return react_1.default.createElement(HiddenPlaceholder_1.default, null);
215
238
  }
216
239
  /**
217
240
  * If content availability community option is false and user is anonymous , component is hidden.
218
241
  */
219
- if (!contentAvailability && !scUserContext.user) {
242
+ if (!contentAvailability && !authUserId) {
220
243
  return react_1.default.createElement(HiddenPlaceholder_1.default, null);
221
244
  }
222
245
  /**