@selfcommunity/react-ui 0.7.0-alpha.25 → 0.7.0-alpha.26

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 (122) hide show
  1. package/lib/cjs/components/CategoriesFollowed/CategoriesFollowed.d.ts.map +1 -1
  2. package/lib/cjs/components/CategoriesFollowed/CategoriesFollowed.js +41 -29
  3. package/lib/cjs/components/CategoriesFollowed/CategoriesFollowed.js.map +1 -1
  4. package/lib/cjs/components/CategoriesFollowed/Skeleton.d.ts.map +1 -1
  5. package/lib/cjs/components/CategoriesFollowed/Skeleton.js +3 -1
  6. package/lib/cjs/components/CategoriesFollowed/Skeleton.js.map +1 -1
  7. package/lib/cjs/components/CategoriesPopular/CategoriesPopular.d.ts.map +1 -1
  8. package/lib/cjs/components/CategoriesPopular/CategoriesPopular.js +37 -26
  9. package/lib/cjs/components/CategoriesPopular/CategoriesPopular.js.map +1 -1
  10. package/lib/cjs/components/CategoriesPopular/Skeleton.d.ts.map +1 -1
  11. package/lib/cjs/components/CategoriesPopular/Skeleton.js +3 -1
  12. package/lib/cjs/components/CategoriesPopular/Skeleton.js.map +1 -1
  13. package/lib/cjs/components/CategoriesSuggestion/CategoriesSuggestion.d.ts +6 -0
  14. package/lib/cjs/components/CategoriesSuggestion/CategoriesSuggestion.d.ts.map +1 -1
  15. package/lib/cjs/components/CategoriesSuggestion/CategoriesSuggestion.js +31 -25
  16. package/lib/cjs/components/CategoriesSuggestion/CategoriesSuggestion.js.map +1 -1
  17. package/lib/cjs/components/CategoriesSuggestion/Skeleton.d.ts.map +1 -1
  18. package/lib/cjs/components/CategoriesSuggestion/Skeleton.js +3 -1
  19. package/lib/cjs/components/CategoriesSuggestion/Skeleton.js.map +1 -1
  20. package/lib/cjs/components/IncubatorSuggestion/IncubatorSuggestion.d.ts +6 -0
  21. package/lib/cjs/components/IncubatorSuggestion/IncubatorSuggestion.d.ts.map +1 -1
  22. package/lib/cjs/components/IncubatorSuggestion/IncubatorSuggestion.js +33 -25
  23. package/lib/cjs/components/IncubatorSuggestion/IncubatorSuggestion.js.map +1 -1
  24. package/lib/cjs/components/IncubatorsList/IncubatorsList.d.ts +7 -1
  25. package/lib/cjs/components/IncubatorsList/IncubatorsList.d.ts.map +1 -1
  26. package/lib/cjs/components/IncubatorsList/IncubatorsList.js +45 -27
  27. package/lib/cjs/components/IncubatorsList/IncubatorsList.js.map +1 -1
  28. package/lib/cjs/components/PeopleSuggestion/PeopleSuggestion.d.ts +6 -0
  29. package/lib/cjs/components/PeopleSuggestion/PeopleSuggestion.d.ts.map +1 -1
  30. package/lib/cjs/components/PeopleSuggestion/PeopleSuggestion.js +34 -38
  31. package/lib/cjs/components/PeopleSuggestion/PeopleSuggestion.js.map +1 -1
  32. package/lib/cjs/components/PollSuggestion/PollSuggestion.d.ts +7 -1
  33. package/lib/cjs/components/PollSuggestion/PollSuggestion.d.ts.map +1 -1
  34. package/lib/cjs/components/PollSuggestion/PollSuggestion.js +32 -24
  35. package/lib/cjs/components/PollSuggestion/PollSuggestion.js.map +1 -1
  36. package/lib/cjs/components/RelatedFeedObjects/RelatedFeedObjects.d.ts +7 -1
  37. package/lib/cjs/components/RelatedFeedObjects/RelatedFeedObjects.d.ts.map +1 -1
  38. package/lib/cjs/components/RelatedFeedObjects/RelatedFeedObjects.js +37 -27
  39. package/lib/cjs/components/RelatedFeedObjects/RelatedFeedObjects.js.map +1 -1
  40. package/lib/cjs/components/TrendingFeed/TrendingFeed.d.ts +6 -0
  41. package/lib/cjs/components/TrendingFeed/TrendingFeed.d.ts.map +1 -1
  42. package/lib/cjs/components/TrendingFeed/TrendingFeed.js +31 -24
  43. package/lib/cjs/components/TrendingFeed/TrendingFeed.js.map +1 -1
  44. package/lib/cjs/components/TrendingPeople/TrendingPeople.d.ts +6 -0
  45. package/lib/cjs/components/TrendingPeople/TrendingPeople.d.ts.map +1 -1
  46. package/lib/cjs/components/TrendingPeople/TrendingPeople.js +39 -28
  47. package/lib/cjs/components/TrendingPeople/TrendingPeople.js.map +1 -1
  48. package/lib/cjs/components/UserFollowers/UserFollowers.d.ts +6 -0
  49. package/lib/cjs/components/UserFollowers/UserFollowers.d.ts.map +1 -1
  50. package/lib/cjs/components/UserFollowers/UserFollowers.js +67 -41
  51. package/lib/cjs/components/UserFollowers/UserFollowers.js.map +1 -1
  52. package/lib/cjs/components/UsersFollowed/UsersFollowed.d.ts +6 -0
  53. package/lib/cjs/components/UsersFollowed/UsersFollowed.d.ts.map +1 -1
  54. package/lib/cjs/components/UsersFollowed/UsersFollowed.js +46 -32
  55. package/lib/cjs/components/UsersFollowed/UsersFollowed.js.map +1 -1
  56. package/lib/cjs/utils/tools.d.ts +29 -0
  57. package/lib/cjs/utils/tools.d.ts.map +1 -0
  58. package/lib/cjs/utils/tools.js +81 -0
  59. package/lib/cjs/utils/tools.js.map +1 -0
  60. package/lib/esm/components/CategoriesFollowed/CategoriesFollowed.d.ts.map +1 -1
  61. package/lib/esm/components/CategoriesFollowed/CategoriesFollowed.js +46 -34
  62. package/lib/esm/components/CategoriesFollowed/CategoriesFollowed.js.map +1 -1
  63. package/lib/esm/components/CategoriesFollowed/Skeleton.d.ts.map +1 -1
  64. package/lib/esm/components/CategoriesFollowed/Skeleton.js +3 -1
  65. package/lib/esm/components/CategoriesFollowed/Skeleton.js.map +1 -1
  66. package/lib/esm/components/CategoriesPopular/CategoriesPopular.d.ts.map +1 -1
  67. package/lib/esm/components/CategoriesPopular/CategoriesPopular.js +40 -29
  68. package/lib/esm/components/CategoriesPopular/CategoriesPopular.js.map +1 -1
  69. package/lib/esm/components/CategoriesPopular/Skeleton.d.ts.map +1 -1
  70. package/lib/esm/components/CategoriesPopular/Skeleton.js +3 -1
  71. package/lib/esm/components/CategoriesPopular/Skeleton.js.map +1 -1
  72. package/lib/esm/components/CategoriesSuggestion/CategoriesSuggestion.d.ts +6 -0
  73. package/lib/esm/components/CategoriesSuggestion/CategoriesSuggestion.d.ts.map +1 -1
  74. package/lib/esm/components/CategoriesSuggestion/CategoriesSuggestion.js +35 -29
  75. package/lib/esm/components/CategoriesSuggestion/CategoriesSuggestion.js.map +1 -1
  76. package/lib/esm/components/CategoriesSuggestion/Skeleton.d.ts.map +1 -1
  77. package/lib/esm/components/CategoriesSuggestion/Skeleton.js +3 -1
  78. package/lib/esm/components/CategoriesSuggestion/Skeleton.js.map +1 -1
  79. package/lib/esm/components/IncubatorSuggestion/IncubatorSuggestion.d.ts +6 -0
  80. package/lib/esm/components/IncubatorSuggestion/IncubatorSuggestion.d.ts.map +1 -1
  81. package/lib/esm/components/IncubatorSuggestion/IncubatorSuggestion.js +36 -28
  82. package/lib/esm/components/IncubatorSuggestion/IncubatorSuggestion.js.map +1 -1
  83. package/lib/esm/components/IncubatorsList/IncubatorsList.d.ts +7 -1
  84. package/lib/esm/components/IncubatorsList/IncubatorsList.d.ts.map +1 -1
  85. package/lib/esm/components/IncubatorsList/IncubatorsList.js +47 -29
  86. package/lib/esm/components/IncubatorsList/IncubatorsList.js.map +1 -1
  87. package/lib/esm/components/PeopleSuggestion/PeopleSuggestion.d.ts +6 -0
  88. package/lib/esm/components/PeopleSuggestion/PeopleSuggestion.d.ts.map +1 -1
  89. package/lib/esm/components/PeopleSuggestion/PeopleSuggestion.js +36 -40
  90. package/lib/esm/components/PeopleSuggestion/PeopleSuggestion.js.map +1 -1
  91. package/lib/esm/components/PollSuggestion/PollSuggestion.d.ts +7 -1
  92. package/lib/esm/components/PollSuggestion/PollSuggestion.d.ts.map +1 -1
  93. package/lib/esm/components/PollSuggestion/PollSuggestion.js +35 -27
  94. package/lib/esm/components/PollSuggestion/PollSuggestion.js.map +1 -1
  95. package/lib/esm/components/RelatedFeedObjects/RelatedFeedObjects.d.ts +7 -1
  96. package/lib/esm/components/RelatedFeedObjects/RelatedFeedObjects.d.ts.map +1 -1
  97. package/lib/esm/components/RelatedFeedObjects/RelatedFeedObjects.js +40 -30
  98. package/lib/esm/components/RelatedFeedObjects/RelatedFeedObjects.js.map +1 -1
  99. package/lib/esm/components/TrendingFeed/TrendingFeed.d.ts +6 -0
  100. package/lib/esm/components/TrendingFeed/TrendingFeed.d.ts.map +1 -1
  101. package/lib/esm/components/TrendingFeed/TrendingFeed.js +34 -27
  102. package/lib/esm/components/TrendingFeed/TrendingFeed.js.map +1 -1
  103. package/lib/esm/components/TrendingPeople/TrendingPeople.d.ts +6 -0
  104. package/lib/esm/components/TrendingPeople/TrendingPeople.d.ts.map +1 -1
  105. package/lib/esm/components/TrendingPeople/TrendingPeople.js +41 -30
  106. package/lib/esm/components/TrendingPeople/TrendingPeople.js.map +1 -1
  107. package/lib/esm/components/UserFollowers/UserFollowers.d.ts +6 -0
  108. package/lib/esm/components/UserFollowers/UserFollowers.d.ts.map +1 -1
  109. package/lib/esm/components/UserFollowers/UserFollowers.js +70 -44
  110. package/lib/esm/components/UserFollowers/UserFollowers.js.map +1 -1
  111. package/lib/esm/components/UsersFollowed/UsersFollowed.d.ts +6 -0
  112. package/lib/esm/components/UsersFollowed/UsersFollowed.d.ts.map +1 -1
  113. package/lib/esm/components/UsersFollowed/UsersFollowed.js +49 -35
  114. package/lib/esm/components/UsersFollowed/UsersFollowed.js.map +1 -1
  115. package/lib/esm/utils/tools.d.ts +29 -0
  116. package/lib/esm/utils/tools.d.ts.map +1 -0
  117. package/lib/esm/utils/tools.js +76 -0
  118. package/lib/esm/utils/tools.js.map +1 -0
  119. package/lib/umd/react-ui.js +11 -11
  120. package/lib/umd/react-ui.js.LICENSE.txt +1 -1
  121. package/lib/umd/react-ui.js.map +1 -1
  122. package/package.json +3 -3
@@ -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,39 +108,42 @@ function TrendingFeed(inProps) {
107
108
  props: inProps,
108
109
  name: PREFIX
109
110
  });
110
- const { className = null, categoryId = null, template = null, autoHide = null, onHeightChange, onStateChange, pageUrl = null } = props, rest = __rest(props, ["className", "categoryId", "template", "autoHide", "onHeightChange", "onStateChange", "pageUrl"]);
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
125
  function fetchTrendingPost() {
125
- if (next) {
126
+ if (state.next) {
127
+ dispatch({ type: tools_1.actionToolsTypes.LOADING_NEXT });
126
128
  api_services_1.http
127
129
  .request({
128
- url: next,
130
+ url: state.next,
129
131
  method: api_services_1.Endpoints.CategoryTrendingFeed.method
130
132
  })
131
133
  .then((res) => {
132
134
  if (isMountedRef.current) {
133
- 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']);
135
+ const data = res.data.results;
136
+ dispatch({
137
+ type: tools_1.actionToolsTypes.LOAD_NEXT_SUCCESS,
138
+ payload: {
139
+ results: data,
140
+ count: data.length
141
+ }
142
+ });
139
143
  }
140
144
  })
141
145
  .catch((error) => {
142
- setLoading(false);
146
+ dispatch({ type: tools_1.actionToolsTypes.LOAD_NEXT_FAILURE, payload: { errorLoadNext: error } });
143
147
  utils_1.Logger.error(Errors_1.SCOPE_SC_UI, error);
144
148
  });
145
149
  }
@@ -151,32 +155,35 @@ function TrendingFeed(inProps) {
151
155
  * On mount, fetches trending posts list
152
156
  */
153
157
  (0, react_1.useEffect)(() => {
154
- fetchTrendingPost();
158
+ if (cacheStrategy === utils_1.CacheStrategies.NETWORK_ONLY) {
159
+ fetchTrendingPost();
160
+ onStateChange && onStateChange({ cacheStrategy: utils_1.CacheStrategies.CACHE_FIRST });
161
+ }
155
162
  }, []);
156
163
  /**
157
164
  * Renders the list
158
165
  */
159
- if (loading) {
166
+ if (state.isLoadingNext) {
160
167
  return react_1.default.createElement(Skeleton_1.default, null);
161
168
  }
162
169
  const f = (react_1.default.createElement(material_1.CardContent, null,
163
170
  react_1.default.createElement(material_1.Typography, { className: classes.title, variant: "h5" },
164
171
  react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.trendingFeed.title", defaultMessage: "ui.trendingFeed.title" })),
165
- !total ? (react_1.default.createElement(material_1.Typography, { className: classes.noResults, variant: "body2" },
172
+ !state.count ? (react_1.default.createElement(material_1.Typography, { className: classes.noResults, variant: "body2" },
166
173
  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,
167
- react_1.default.createElement(List_1.default, null, posts.slice(0, visible).map((obj, index) => (react_1.default.createElement(material_1.ListItem, { key: index },
174
+ 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 },
168
175
  react_1.default.createElement(FeedObject_1.default, { elevation: 0, feedObject: obj[obj.type], template: template, className: classes.trendingItem }))))),
169
- hasMore && (react_1.default.createElement(material_1.Button, { size: "small", className: classes.showMore, onClick: pageUrl !== null && pageUrl !== void 0 ? pageUrl : handleDialogOpening },
176
+ limit < state.count && (react_1.default.createElement(material_1.Button, { size: "small", className: classes.showMore, onClick: pageUrl !== null && pageUrl !== void 0 ? pageUrl : handleDialogOpening },
170
177
  react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.trendingFeed.button.showMore", defaultMessage: "ui.trendingFeed.button.showMore" }))))),
171
- 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' } },
178
+ 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' } },
172
179
  react_1.default.createElement("b", null,
173
180
  react_1.default.createElement(react_intl_1.FormattedMessage, { id: "ui.trendingFeed.noMoreResults", defaultMessage: "ui.trendingFeed.noMoreResults" }))) },
174
- react_1.default.createElement(List_1.default, null, posts.map((obj, index) => (react_1.default.createElement(material_1.ListItem, { key: index },
181
+ react_1.default.createElement(List_1.default, null, state.results.map((obj, index) => (react_1.default.createElement(material_1.ListItem, { key: index },
175
182
  react_1.default.createElement(FeedObject_1.default, { elevation: 0, feedObject: obj[obj.type], template: template, className: classes.trendingItem })))))))))));
176
183
  /**
177
184
  * Renders root object (if results and autoHide prop is set to false, otherwise component is hidden)
178
185
  */
179
- if (autoHide && !total) {
186
+ if (autoHide && !state.count) {
180
187
  return react_1.default.createElement(HiddenPlaceholder_1.default, null);
181
188
  }
182
189
  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,CAwMhF"}
@@ -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 = {}, onHeightChange, onStateChange } = props, rest = __rest(props, ["categoryId", "autoHide", "className", "UserProps", "onHeightChange", "onStateChange"]);
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);
@@ -127,26 +130,28 @@ function TrendingPeople(inProps) {
127
130
  * Fetches trending people list
128
131
  */
129
132
  function fetchTrendingPeople() {
130
- setLoading(true);
131
- if (next) {
133
+ if (state.next) {
134
+ dispatch({ type: tools_1.actionToolsTypes.LOADING_NEXT });
132
135
  api_services_1.http
133
136
  .request({
134
- url: next,
137
+ url: state.next,
135
138
  method: api_services_1.Endpoints.CategoryTrendingPeople.method
136
139
  })
137
140
  .then((res) => {
138
141
  if (isMountedRef.current) {
139
- 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);
142
+ const data = res.data.results;
143
+ dispatch({
144
+ type: tools_1.actionToolsTypes.LOAD_NEXT_SUCCESS,
145
+ payload: {
146
+ results: data,
147
+ count: data.length
148
+ }
149
+ });
145
150
  }
146
151
  })
147
152
  .catch((error) => {
148
- setLoading(false);
149
- console.log(error);
153
+ dispatch({ type: tools_1.actionToolsTypes.LOAD_NEXT_FAILURE, payload: { errorLoadNext: error } });
154
+ utils_1.Logger.error(Errors_1.SCOPE_SC_UI, error);
150
155
  });
151
156
  }
152
157
  }
@@ -154,14 +159,17 @@ function TrendingPeople(inProps) {
154
159
  * On mount, fetches trending people list
155
160
  */
156
161
  (0, react_1.useEffect)(() => {
157
- fetchTrendingPeople();
162
+ if (cacheStrategy === utils_1.CacheStrategies.NETWORK_ONLY) {
163
+ fetchTrendingPeople();
164
+ onStateChange && onStateChange({ cacheStrategy: utils_1.CacheStrategies.CACHE_FIRST });
165
+ }
158
166
  }, []);
159
167
  /**
160
168
  * Handles followers counter update on follow/unfollow action.
161
169
  * @param user
162
170
  */
163
171
  function handleFollowersUpdate(user) {
164
- const newUsers = [...people];
172
+ const newUsers = [...state.results];
165
173
  const index = newUsers.findIndex((u) => u.id === user.id);
166
174
  if (index !== -1) {
167
175
  if (user.connection_status === 'followed') {
@@ -172,37 +180,40 @@ function TrendingPeople(inProps) {
172
180
  newUsers[index].followers_counter = user.followers_counter + 1;
173
181
  newUsers[index].connection_status = 'followed';
174
182
  }
175
- setPeople(newUsers);
183
+ dispatch({
184
+ type: tools_1.actionToolsTypes.SET_RESULTS,
185
+ payload: { results: newUsers }
186
+ });
176
187
  }
177
188
  }
178
189
  /**
179
190
  * Renders trending people list
180
191
  */
181
- if (loading) {
192
+ if (state.isLoadingNext) {
182
193
  return react_1.default.createElement(Skeleton_1.default, null);
183
194
  }
184
195
  const p = (react_1.default.createElement(material_1.CardContent, null,
185
196
  react_1.default.createElement(material_1.Typography, { className: classes.title, variant: "h5" },
186
197
  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" },
198
+ !state.count ? (react_1.default.createElement(material_1.Typography, { className: classes.noResults, variant: "body2" },
188
199
  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 },
200
+ 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
201
  react_1.default.createElement(User_1.default, Object.assign({ elevation: 0, user: user, className: classes.trendingUserItem }, (followEnabled
191
202
  ? { followConnectUserButtonProps: { onFollow: handleFollowersUpdate } }
192
203
  : { followConnectUserButtonProps: { onChangeConnectionStatus: handleFollowersUpdate } }), UserProps)))))))),
193
- hasMore && (react_1.default.createElement(material_1.Button, { size: "small", className: classes.showMore, onClick: () => setOpenTrendingPeopleDialog(true) },
204
+ limit < state.count && (react_1.default.createElement(material_1.Button, { size: "small", className: classes.showMore, onClick: () => setOpenTrendingPeopleDialog(true) },
194
205
  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' } },
206
+ 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
207
  react_1.default.createElement("b", null,
197
208
  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 },
209
+ react_1.default.createElement(List_1.default, null, state.results.map((p) => (react_1.default.createElement(material_1.ListItem, { key: p.id },
199
210
  react_1.default.createElement(User_1.default, Object.assign({ elevation: 0, user: p, className: classes.trendingUserItem }, (followEnabled
200
211
  ? { followConnectUserButtonProps: { onFollow: handleFollowersUpdate } }
201
212
  : { followConnectUserButtonProps: { onChangeConnectionStatus: handleFollowersUpdate } }), UserProps))))))))))));
202
213
  /**
203
214
  * Renders root object (if results and autoHide prop is set to false, otherwise component is hidden)
204
215
  */
205
- if (autoHide && !total) {
216
+ if (autoHide && !state.count) {
206
217
  return react_1.default.createElement(HiddenPlaceholder_1.default, null);
207
218
  }
208
219
  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,CAwO9E"}
@@ -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,41 +116,46 @@ 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
137
  function fetchFollowers() {
135
- if (next) {
138
+ if (state.next) {
139
+ dispatch({ type: tools_1.actionToolsTypes.LOADING_NEXT });
136
140
  api_services_1.http
137
141
  .request({
138
- url: next,
142
+ url: state.next,
139
143
  method: api_services_1.Endpoints.UserFollowers.method
140
144
  })
141
145
  .then((res) => {
142
146
  if (isMountedRef.current) {
143
- 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);
147
+ const data = res.data.results;
148
+ dispatch({
149
+ type: tools_1.actionToolsTypes.LOAD_NEXT_SUCCESS,
150
+ payload: {
151
+ results: data,
152
+ count: data.length
153
+ }
154
+ });
149
155
  }
150
156
  })
151
157
  .catch((error) => {
152
- setLoading(false);
158
+ dispatch({ type: tools_1.actionToolsTypes.LOAD_NEXT_FAILURE, payload: { errorLoadNext: error } });
153
159
  utils_1.Logger.error(Errors_1.SCOPE_SC_UI, error);
154
160
  });
155
161
  }
@@ -158,65 +164,85 @@ function UserFollowers(inProps) {
158
164
  * On mount, fetches the list of users followers
159
165
  */
160
166
  (0, react_1.useEffect)(() => {
161
- if (!contentAvailability && !scUserContext.user) {
167
+ if (!userId) {
162
168
  return;
163
169
  }
164
- if (!userId) {
170
+ else if (cacheStrategy === utils_1.CacheStrategies.NETWORK_ONLY) {
171
+ fetchFollowers();
172
+ onStateChange && onStateChange({ cacheStrategy: utils_1.CacheStrategies.CACHE_FIRST });
173
+ }
174
+ else if (!contentAvailability && !authUserId) {
165
175
  return;
166
176
  }
167
- fetchFollowers();
168
- }, [scUserContext.user]);
177
+ }, [authUserId]);
178
+ /**
179
+ * Virtual feed update
180
+ */
181
+ (0, react_1.useEffect)(() => {
182
+ onHeightChange && onHeightChange();
183
+ }, [state.results.length]);
169
184
  /**
170
185
  * Handles followers counter update on follow/unfollow action.
171
186
  * @param user
172
187
  */
173
188
  function handleFollowersUpdate(user) {
174
- const newUsers = [...followers];
175
- const index = newUsers.findIndex((u) => u.id === user.id);
176
- if (index !== -1) {
177
- if (user.connection_status === 'followed') {
178
- newUsers[index].followers_counter = user.followers_counter - 1;
179
- newUsers[index].connection_status = null;
180
- }
181
- else {
182
- newUsers[index].followers_counter = user.followers_counter + 1;
183
- newUsers[index].connection_status = 'followed';
189
+ if (scUserContext.user['id'] === userId) {
190
+ dispatch({
191
+ type: tools_1.actionToolsTypes.SET_RESULTS,
192
+ payload: { results: state.results.filter((u) => u.id !== user.id), count: state.count - 1 }
193
+ });
194
+ }
195
+ else {
196
+ const newUsers = [...state.results];
197
+ const index = newUsers.findIndex((u) => u.id === user.id);
198
+ if (index !== -1) {
199
+ if (user.connection_status === 'followed') {
200
+ newUsers[index].followers_counter = user.followers_counter - 1;
201
+ newUsers[index].connection_status = null;
202
+ }
203
+ else {
204
+ newUsers[index].followers_counter = user.followers_counter + 1;
205
+ newUsers[index].connection_status = 'followed';
206
+ }
207
+ dispatch({
208
+ type: tools_1.actionToolsTypes.SET_RESULTS,
209
+ payload: { results: newUsers }
210
+ });
184
211
  }
185
- setFollowers(newUsers);
186
212
  }
187
213
  }
188
214
  /**
189
215
  * Renders the list of users followers
190
216
  */
191
- if (loading) {
192
- react_1.default.createElement(Skeleton_1.default, null);
217
+ if (state.isLoadingNext) {
218
+ return react_1.default.createElement(Skeleton_1.default, null);
193
219
  }
194
220
  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 },
221
+ react_1.default.createElement(material_1.Typography, { className: classes.title, variant: "h5" }, `${intl.formatMessage(messages.title, { total: state.count })}`),
222
+ !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,
223
+ 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
224
  react_1.default.createElement(User_1.default, Object.assign({ elevation: 0, user: user, className: classes.followersItem }, (followEnabled
199
225
  ? { followConnectUserButtonProps: { onFollow: handleFollowersUpdate } }
200
226
  : { followConnectUserButtonProps: { onChangeConnectionStatus: handleFollowersUpdate } }), UserProps)))))),
201
- hasMore && (react_1.default.createElement(material_1.Button, { size: "small", className: classes.showMore, onClick: () => setOpenUserFollowersDialog(true) },
227
+ limit < state.count && (react_1.default.createElement(material_1.Button, { size: "small", className: classes.showMore, onClick: () => setOpenUserFollowersDialog(true) },
202
228
  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' } },
229
+ 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
230
  react_1.default.createElement("b", null,
205
231
  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 },
232
+ react_1.default.createElement(List_1.default, null, state.results.map((f) => (react_1.default.createElement(material_1.ListItem, { key: f.id },
207
233
  react_1.default.createElement(User_1.default, Object.assign({ elevation: 0, user: f, className: classes.followersItem }, (followEnabled
208
234
  ? { followConnectUserButtonProps: { onFollow: handleFollowersUpdate } }
209
235
  : { followConnectUserButtonProps: { onChangeConnectionStatus: handleFollowersUpdate } }), UserProps))))))))))))));
210
236
  /**
211
237
  * if there are no results and autoHide prop is set to true ,component is hidden
212
238
  */
213
- if (autoHide && !total) {
239
+ if (autoHide && !state.count) {
214
240
  return react_1.default.createElement(HiddenPlaceholder_1.default, null);
215
241
  }
216
242
  /**
217
243
  * If content availability community option is false and user is anonymous , component is hidden.
218
244
  */
219
- if (!contentAvailability && !scUserContext.user) {
245
+ if (!contentAvailability && !authUserId) {
220
246
  return react_1.default.createElement(HiddenPlaceholder_1.default, null);
221
247
  }
222
248
  /**