@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.
- package/lib/cjs/components/Categories/Categories.js +2 -2
- package/lib/cjs/components/Categories/Categories.js.map +1 -1
- package/lib/cjs/components/CategoriesFollowed/CategoriesFollowed.d.ts.map +1 -1
- package/lib/cjs/components/CategoriesFollowed/CategoriesFollowed.js +59 -43
- package/lib/cjs/components/CategoriesFollowed/CategoriesFollowed.js.map +1 -1
- package/lib/cjs/components/CategoriesFollowed/Skeleton.d.ts.map +1 -1
- package/lib/cjs/components/CategoriesFollowed/Skeleton.js +3 -1
- package/lib/cjs/components/CategoriesFollowed/Skeleton.js.map +1 -1
- package/lib/cjs/components/CategoriesPopular/CategoriesPopular.d.ts.map +1 -1
- package/lib/cjs/components/CategoriesPopular/CategoriesPopular.js +53 -36
- package/lib/cjs/components/CategoriesPopular/CategoriesPopular.js.map +1 -1
- package/lib/cjs/components/CategoriesPopular/Skeleton.d.ts.map +1 -1
- package/lib/cjs/components/CategoriesPopular/Skeleton.js +3 -1
- package/lib/cjs/components/CategoriesPopular/Skeleton.js.map +1 -1
- package/lib/cjs/components/CategoriesSuggestion/CategoriesSuggestion.d.ts +6 -0
- package/lib/cjs/components/CategoriesSuggestion/CategoriesSuggestion.d.ts.map +1 -1
- package/lib/cjs/components/CategoriesSuggestion/CategoriesSuggestion.js +54 -40
- package/lib/cjs/components/CategoriesSuggestion/CategoriesSuggestion.js.map +1 -1
- package/lib/cjs/components/CategoriesSuggestion/Skeleton.d.ts.map +1 -1
- package/lib/cjs/components/CategoriesSuggestion/Skeleton.js +3 -1
- package/lib/cjs/components/CategoriesSuggestion/Skeleton.js.map +1 -1
- package/lib/cjs/components/CommentsFeedObject/CommentsFeedObject.js +1 -1
- package/lib/cjs/components/CommentsFeedObject/CommentsFeedObject.js.map +1 -1
- package/lib/cjs/components/CustomAdv/CustomAdv.d.ts.map +1 -1
- package/lib/cjs/components/CustomAdv/CustomAdv.js +30 -2
- package/lib/cjs/components/CustomAdv/CustomAdv.js.map +1 -1
- package/lib/cjs/components/Editor/Editor.d.ts.map +1 -1
- package/lib/cjs/components/Editor/Editor.js +14 -14
- package/lib/cjs/components/Editor/Editor.js.map +1 -1
- package/lib/cjs/components/Feed/Feed.d.ts +5 -0
- package/lib/cjs/components/Feed/Feed.d.ts.map +1 -1
- package/lib/cjs/components/Feed/Feed.js +56 -39
- package/lib/cjs/components/Feed/Feed.js.map +1 -1
- package/lib/cjs/components/FeedObject/Activities/Activities.js +1 -1
- package/lib/cjs/components/FeedObject/FeedObject.d.ts.map +1 -1
- package/lib/cjs/components/FeedObject/FeedObject.js +9 -6
- package/lib/cjs/components/FeedObject/FeedObject.js.map +1 -1
- package/lib/cjs/components/Footer/Footer.d.ts +0 -5
- package/lib/cjs/components/Footer/Footer.d.ts.map +1 -1
- package/lib/cjs/components/Footer/Footer.js +1 -26
- package/lib/cjs/components/Footer/Footer.js.map +1 -1
- package/lib/cjs/components/Header/Header.js +2 -2
- package/lib/cjs/components/Header/Header.js.map +1 -1
- package/lib/cjs/components/Header/MobileHeader/MobileHeader.d.ts.map +1 -1
- package/lib/cjs/components/Header/MobileHeader/MobileHeader.js +4 -3
- package/lib/cjs/components/Header/MobileHeader/MobileHeader.js.map +1 -1
- package/lib/cjs/components/Header/SearchBar.d.ts +4 -0
- package/lib/cjs/components/Header/SearchBar.d.ts.map +1 -1
- package/lib/cjs/components/Header/SearchBar.js +83 -35
- package/lib/cjs/components/Header/SearchBar.js.map +1 -1
- package/lib/cjs/components/IncubatorSuggestion/IncubatorSuggestion.d.ts +7 -1
- package/lib/cjs/components/IncubatorSuggestion/IncubatorSuggestion.d.ts.map +1 -1
- package/lib/cjs/components/IncubatorSuggestion/IncubatorSuggestion.js +50 -38
- package/lib/cjs/components/IncubatorSuggestion/IncubatorSuggestion.js.map +1 -1
- package/lib/cjs/components/IncubatorsList/IncubatorsList.d.ts +7 -1
- package/lib/cjs/components/IncubatorsList/IncubatorsList.d.ts.map +1 -1
- package/lib/cjs/components/IncubatorsList/IncubatorsList.js +61 -38
- package/lib/cjs/components/IncubatorsList/IncubatorsList.js.map +1 -1
- package/lib/cjs/components/Message/Message.d.ts +3 -18
- package/lib/cjs/components/Message/Message.d.ts.map +1 -1
- package/lib/cjs/components/Message/Message.js +20 -17
- package/lib/cjs/components/Message/Message.js.map +1 -1
- package/lib/cjs/components/MessageEditor/MessageEditor.d.ts +4 -13
- package/lib/cjs/components/MessageEditor/MessageEditor.d.ts.map +1 -1
- package/lib/cjs/components/MessageEditor/MessageEditor.js +61 -40
- package/lib/cjs/components/MessageEditor/MessageEditor.js.map +1 -1
- package/lib/cjs/components/PeopleSuggestion/PeopleSuggestion.d.ts +6 -0
- package/lib/cjs/components/PeopleSuggestion/PeopleSuggestion.d.ts.map +1 -1
- package/lib/cjs/components/PeopleSuggestion/PeopleSuggestion.js +56 -52
- package/lib/cjs/components/PeopleSuggestion/PeopleSuggestion.js.map +1 -1
- package/lib/cjs/components/Platform/Platform.d.ts +2 -1
- package/lib/cjs/components/Platform/Platform.d.ts.map +1 -1
- package/lib/cjs/components/Platform/Platform.js +1 -1
- package/lib/cjs/components/Platform/Platform.js.map +1 -1
- package/lib/cjs/components/PollSuggestion/PollSuggestion.d.ts +7 -1
- package/lib/cjs/components/PollSuggestion/PollSuggestion.d.ts.map +1 -1
- package/lib/cjs/components/PollSuggestion/PollSuggestion.js +49 -37
- package/lib/cjs/components/PollSuggestion/PollSuggestion.js.map +1 -1
- package/lib/cjs/components/RelatedFeedObjects/RelatedFeedObjects.d.ts +7 -1
- package/lib/cjs/components/RelatedFeedObjects/RelatedFeedObjects.d.ts.map +1 -1
- package/lib/cjs/components/RelatedFeedObjects/RelatedFeedObjects.js +58 -40
- package/lib/cjs/components/RelatedFeedObjects/RelatedFeedObjects.js.map +1 -1
- package/lib/cjs/components/Snippets/Snippets.d.ts.map +1 -1
- package/lib/cjs/components/Snippets/Snippets.js +5 -3
- package/lib/cjs/components/Snippets/Snippets.js.map +1 -1
- package/lib/cjs/components/Thread/Thread.d.ts.map +1 -1
- package/lib/cjs/components/Thread/Thread.js +18 -34
- package/lib/cjs/components/Thread/Thread.js.map +1 -1
- package/lib/cjs/components/TrendingFeed/TrendingFeed.d.ts +12 -1
- package/lib/cjs/components/TrendingFeed/TrendingFeed.d.ts.map +1 -1
- package/lib/cjs/components/TrendingFeed/TrendingFeed.js +50 -35
- package/lib/cjs/components/TrendingFeed/TrendingFeed.js.map +1 -1
- package/lib/cjs/components/TrendingPeople/TrendingPeople.d.ts +6 -0
- package/lib/cjs/components/TrendingPeople/TrendingPeople.d.ts.map +1 -1
- package/lib/cjs/components/TrendingPeople/TrendingPeople.js +55 -39
- package/lib/cjs/components/TrendingPeople/TrendingPeople.js.map +1 -1
- package/lib/cjs/components/UserFollowers/UserFollowers.d.ts +6 -0
- package/lib/cjs/components/UserFollowers/UserFollowers.d.ts.map +1 -1
- package/lib/cjs/components/UserFollowers/UserFollowers.js +66 -43
- package/lib/cjs/components/UserFollowers/UserFollowers.js.map +1 -1
- package/lib/cjs/components/UserProfileEdit/Section/PublicInfo.d.ts +11 -1
- package/lib/cjs/components/UserProfileEdit/Section/PublicInfo.d.ts.map +1 -1
- package/lib/cjs/components/UserProfileEdit/Section/PublicInfo.js +21 -8
- package/lib/cjs/components/UserProfileEdit/Section/PublicInfo.js.map +1 -1
- package/lib/cjs/components/UserProfileEdit/Section/SocialAccount.d.ts +24 -0
- package/lib/cjs/components/UserProfileEdit/Section/SocialAccount.d.ts.map +1 -0
- package/lib/cjs/components/UserProfileEdit/Section/SocialAccount.js +113 -0
- package/lib/cjs/components/UserProfileEdit/Section/SocialAccount.js.map +1 -0
- package/lib/cjs/components/UserProfileEdit/index.d.ts +2 -1
- package/lib/cjs/components/UserProfileEdit/index.d.ts.map +1 -1
- package/lib/cjs/components/UserProfileEdit/index.js +3 -1
- package/lib/cjs/components/UserProfileEdit/index.js.map +1 -1
- package/lib/cjs/components/UserProfileInfo/UserProfileInfo.d.ts +6 -0
- package/lib/cjs/components/UserProfileInfo/UserProfileInfo.d.ts.map +1 -1
- package/lib/cjs/components/UserProfileInfo/UserProfileInfo.js +77 -3
- package/lib/cjs/components/UserProfileInfo/UserProfileInfo.js.map +1 -1
- package/lib/cjs/components/UserSocialAssociation/UserSocialAssociation.d.ts +70 -0
- package/lib/cjs/components/UserSocialAssociation/UserSocialAssociation.d.ts.map +1 -0
- package/lib/cjs/components/UserSocialAssociation/UserSocialAssociation.js +195 -0
- package/lib/cjs/components/UserSocialAssociation/UserSocialAssociation.js.map +1 -0
- package/lib/cjs/components/UserSocialAssociation/index.d.ts +4 -0
- package/lib/cjs/components/UserSocialAssociation/index.d.ts.map +1 -0
- package/lib/cjs/components/UserSocialAssociation/index.js +8 -0
- package/lib/cjs/components/UserSocialAssociation/index.js.map +1 -0
- package/lib/cjs/components/UsersFollowed/UsersFollowed.d.ts +6 -0
- package/lib/cjs/components/UsersFollowed/UsersFollowed.d.ts.map +1 -1
- package/lib/cjs/components/UsersFollowed/UsersFollowed.js +66 -47
- package/lib/cjs/components/UsersFollowed/UsersFollowed.js.map +1 -1
- package/lib/cjs/constants/Pagination.d.ts +1 -1
- package/lib/cjs/constants/Pagination.d.ts.map +1 -1
- package/lib/cjs/constants/Pagination.js +1 -1
- package/lib/cjs/constants/Pagination.js.map +1 -1
- package/lib/cjs/constants/UserProfile.d.ts.map +1 -1
- package/lib/cjs/constants/UserProfile.js +2 -1
- package/lib/cjs/constants/UserProfile.js.map +1 -1
- package/lib/cjs/index.d.ts +5 -2
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +9 -2
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/shared/BaseDrawer/BaseDrawer.d.ts +1 -1
- package/lib/cjs/shared/BaseDrawer/BaseDrawer.d.ts.map +1 -1
- package/lib/cjs/shared/InfiniteScroll/index.js +1 -1
- package/lib/cjs/shared/InfiniteScroll/index.js.map +1 -1
- package/lib/cjs/shared/MetadataField/MetadataField.d.ts.map +1 -1
- package/lib/cjs/shared/MetadataField/MetadataField.js +6 -17
- package/lib/cjs/shared/MetadataField/MetadataField.js.map +1 -1
- package/lib/cjs/shared/Tags/index.d.ts.map +1 -1
- package/lib/cjs/shared/Tags/index.js +10 -7
- package/lib/cjs/shared/Tags/index.js.map +1 -1
- package/lib/cjs/types/index.d.ts +2 -2
- package/lib/cjs/types/index.d.ts.map +1 -1
- package/lib/cjs/types/index.js +2 -1
- package/lib/cjs/types/index.js.map +1 -1
- package/lib/cjs/types/user.d.ts +11 -1
- package/lib/cjs/types/user.d.ts.map +1 -1
- package/lib/cjs/types/user.js +12 -1
- package/lib/cjs/types/user.js.map +1 -1
- package/lib/cjs/utils/tools.d.ts +29 -0
- package/lib/cjs/utils/tools.d.ts.map +1 -0
- package/lib/cjs/utils/tools.js +81 -0
- package/lib/cjs/utils/tools.js.map +1 -0
- package/lib/esm/components/Categories/Categories.js +2 -2
- package/lib/esm/components/Categories/Categories.js.map +1 -1
- package/lib/esm/components/CategoriesFollowed/CategoriesFollowed.d.ts.map +1 -1
- package/lib/esm/components/CategoriesFollowed/CategoriesFollowed.js +64 -48
- package/lib/esm/components/CategoriesFollowed/CategoriesFollowed.js.map +1 -1
- package/lib/esm/components/CategoriesFollowed/Skeleton.d.ts.map +1 -1
- package/lib/esm/components/CategoriesFollowed/Skeleton.js +3 -1
- package/lib/esm/components/CategoriesFollowed/Skeleton.js.map +1 -1
- package/lib/esm/components/CategoriesPopular/CategoriesPopular.d.ts.map +1 -1
- package/lib/esm/components/CategoriesPopular/CategoriesPopular.js +56 -39
- package/lib/esm/components/CategoriesPopular/CategoriesPopular.js.map +1 -1
- package/lib/esm/components/CategoriesPopular/Skeleton.d.ts.map +1 -1
- package/lib/esm/components/CategoriesPopular/Skeleton.js +3 -1
- package/lib/esm/components/CategoriesPopular/Skeleton.js.map +1 -1
- package/lib/esm/components/CategoriesSuggestion/CategoriesSuggestion.d.ts +6 -0
- package/lib/esm/components/CategoriesSuggestion/CategoriesSuggestion.d.ts.map +1 -1
- package/lib/esm/components/CategoriesSuggestion/CategoriesSuggestion.js +58 -44
- package/lib/esm/components/CategoriesSuggestion/CategoriesSuggestion.js.map +1 -1
- package/lib/esm/components/CategoriesSuggestion/Skeleton.d.ts.map +1 -1
- package/lib/esm/components/CategoriesSuggestion/Skeleton.js +3 -1
- package/lib/esm/components/CategoriesSuggestion/Skeleton.js.map +1 -1
- package/lib/esm/components/CommentsFeedObject/CommentsFeedObject.js +1 -1
- package/lib/esm/components/CommentsFeedObject/CommentsFeedObject.js.map +1 -1
- package/lib/esm/components/CustomAdv/CustomAdv.d.ts.map +1 -1
- package/lib/esm/components/CustomAdv/CustomAdv.js +7 -2
- package/lib/esm/components/CustomAdv/CustomAdv.js.map +1 -1
- package/lib/esm/components/Editor/Editor.d.ts.map +1 -1
- package/lib/esm/components/Editor/Editor.js +14 -14
- package/lib/esm/components/Editor/Editor.js.map +1 -1
- package/lib/esm/components/Feed/Feed.d.ts +5 -0
- package/lib/esm/components/Feed/Feed.d.ts.map +1 -1
- package/lib/esm/components/Feed/Feed.js +57 -40
- package/lib/esm/components/Feed/Feed.js.map +1 -1
- package/lib/esm/components/FeedObject/Activities/Activities.js +1 -1
- package/lib/esm/components/FeedObject/FeedObject.d.ts.map +1 -1
- package/lib/esm/components/FeedObject/FeedObject.js +9 -6
- package/lib/esm/components/FeedObject/FeedObject.js.map +1 -1
- package/lib/esm/components/Footer/Footer.d.ts +0 -5
- package/lib/esm/components/Footer/Footer.d.ts.map +1 -1
- package/lib/esm/components/Footer/Footer.js +3 -28
- package/lib/esm/components/Footer/Footer.js.map +1 -1
- package/lib/esm/components/Header/Header.js +2 -2
- package/lib/esm/components/Header/Header.js.map +1 -1
- package/lib/esm/components/Header/MobileHeader/MobileHeader.d.ts.map +1 -1
- package/lib/esm/components/Header/MobileHeader/MobileHeader.js +4 -3
- package/lib/esm/components/Header/MobileHeader/MobileHeader.js.map +1 -1
- package/lib/esm/components/Header/SearchBar.d.ts +4 -0
- package/lib/esm/components/Header/SearchBar.d.ts.map +1 -1
- package/lib/esm/components/Header/SearchBar.js +86 -38
- package/lib/esm/components/Header/SearchBar.js.map +1 -1
- package/lib/esm/components/IncubatorSuggestion/IncubatorSuggestion.d.ts +7 -1
- package/lib/esm/components/IncubatorSuggestion/IncubatorSuggestion.d.ts.map +1 -1
- package/lib/esm/components/IncubatorSuggestion/IncubatorSuggestion.js +53 -41
- package/lib/esm/components/IncubatorSuggestion/IncubatorSuggestion.js.map +1 -1
- package/lib/esm/components/IncubatorsList/IncubatorsList.d.ts +7 -1
- package/lib/esm/components/IncubatorsList/IncubatorsList.d.ts.map +1 -1
- package/lib/esm/components/IncubatorsList/IncubatorsList.js +63 -40
- package/lib/esm/components/IncubatorsList/IncubatorsList.js.map +1 -1
- package/lib/esm/components/Message/Message.d.ts +3 -18
- package/lib/esm/components/Message/Message.d.ts.map +1 -1
- package/lib/esm/components/Message/Message.js +20 -17
- package/lib/esm/components/Message/Message.js.map +1 -1
- package/lib/esm/components/MessageEditor/MessageEditor.d.ts +4 -13
- package/lib/esm/components/MessageEditor/MessageEditor.d.ts.map +1 -1
- package/lib/esm/components/MessageEditor/MessageEditor.js +63 -42
- package/lib/esm/components/MessageEditor/MessageEditor.js.map +1 -1
- package/lib/esm/components/PeopleSuggestion/PeopleSuggestion.d.ts +6 -0
- package/lib/esm/components/PeopleSuggestion/PeopleSuggestion.d.ts.map +1 -1
- package/lib/esm/components/PeopleSuggestion/PeopleSuggestion.js +58 -54
- package/lib/esm/components/PeopleSuggestion/PeopleSuggestion.js.map +1 -1
- package/lib/esm/components/Platform/Platform.d.ts +2 -1
- package/lib/esm/components/Platform/Platform.d.ts.map +1 -1
- package/lib/esm/components/Platform/Platform.js +1 -1
- package/lib/esm/components/Platform/Platform.js.map +1 -1
- package/lib/esm/components/PollSuggestion/PollSuggestion.d.ts +7 -1
- package/lib/esm/components/PollSuggestion/PollSuggestion.d.ts.map +1 -1
- package/lib/esm/components/PollSuggestion/PollSuggestion.js +52 -40
- package/lib/esm/components/PollSuggestion/PollSuggestion.js.map +1 -1
- package/lib/esm/components/RelatedFeedObjects/RelatedFeedObjects.d.ts +7 -1
- package/lib/esm/components/RelatedFeedObjects/RelatedFeedObjects.d.ts.map +1 -1
- package/lib/esm/components/RelatedFeedObjects/RelatedFeedObjects.js +61 -43
- package/lib/esm/components/RelatedFeedObjects/RelatedFeedObjects.js.map +1 -1
- package/lib/esm/components/Snippets/Snippets.d.ts.map +1 -1
- package/lib/esm/components/Snippets/Snippets.js +6 -4
- package/lib/esm/components/Snippets/Snippets.js.map +1 -1
- package/lib/esm/components/Thread/Thread.d.ts.map +1 -1
- package/lib/esm/components/Thread/Thread.js +18 -34
- package/lib/esm/components/Thread/Thread.js.map +1 -1
- package/lib/esm/components/TrendingFeed/TrendingFeed.d.ts +12 -1
- package/lib/esm/components/TrendingFeed/TrendingFeed.d.ts.map +1 -1
- package/lib/esm/components/TrendingFeed/TrendingFeed.js +53 -38
- package/lib/esm/components/TrendingFeed/TrendingFeed.js.map +1 -1
- package/lib/esm/components/TrendingPeople/TrendingPeople.d.ts +6 -0
- package/lib/esm/components/TrendingPeople/TrendingPeople.d.ts.map +1 -1
- package/lib/esm/components/TrendingPeople/TrendingPeople.js +57 -41
- package/lib/esm/components/TrendingPeople/TrendingPeople.js.map +1 -1
- package/lib/esm/components/UserFollowers/UserFollowers.d.ts +6 -0
- package/lib/esm/components/UserFollowers/UserFollowers.d.ts.map +1 -1
- package/lib/esm/components/UserFollowers/UserFollowers.js +69 -46
- package/lib/esm/components/UserFollowers/UserFollowers.js.map +1 -1
- package/lib/esm/components/UserProfileEdit/Section/PublicInfo.d.ts +11 -1
- package/lib/esm/components/UserProfileEdit/Section/PublicInfo.d.ts.map +1 -1
- package/lib/esm/components/UserProfileEdit/Section/PublicInfo.js +22 -9
- package/lib/esm/components/UserProfileEdit/Section/PublicInfo.js.map +1 -1
- package/lib/esm/components/UserProfileEdit/Section/SocialAccount.d.ts +24 -0
- package/lib/esm/components/UserProfileEdit/Section/SocialAccount.d.ts.map +1 -0
- package/lib/esm/components/UserProfileEdit/Section/SocialAccount.js +84 -0
- package/lib/esm/components/UserProfileEdit/Section/SocialAccount.js.map +1 -0
- package/lib/esm/components/UserProfileEdit/index.d.ts +2 -1
- package/lib/esm/components/UserProfileEdit/index.d.ts.map +1 -1
- package/lib/esm/components/UserProfileEdit/index.js +2 -1
- package/lib/esm/components/UserProfileEdit/index.js.map +1 -1
- package/lib/esm/components/UserProfileInfo/UserProfileInfo.d.ts +6 -0
- package/lib/esm/components/UserProfileInfo/UserProfileInfo.d.ts.map +1 -1
- package/lib/esm/components/UserProfileInfo/UserProfileInfo.js +81 -7
- package/lib/esm/components/UserProfileInfo/UserProfileInfo.js.map +1 -1
- package/lib/esm/components/UserSocialAssociation/UserSocialAssociation.d.ts +70 -0
- package/lib/esm/components/UserSocialAssociation/UserSocialAssociation.d.ts.map +1 -0
- package/lib/esm/components/UserSocialAssociation/UserSocialAssociation.js +166 -0
- package/lib/esm/components/UserSocialAssociation/UserSocialAssociation.js.map +1 -0
- package/lib/esm/components/UserSocialAssociation/index.d.ts +4 -0
- package/lib/esm/components/UserSocialAssociation/index.d.ts.map +1 -0
- package/lib/esm/components/UserSocialAssociation/index.js +3 -0
- package/lib/esm/components/UserSocialAssociation/index.js.map +1 -0
- package/lib/esm/components/UsersFollowed/UsersFollowed.d.ts +6 -0
- package/lib/esm/components/UsersFollowed/UsersFollowed.d.ts.map +1 -1
- package/lib/esm/components/UsersFollowed/UsersFollowed.js +69 -50
- package/lib/esm/components/UsersFollowed/UsersFollowed.js.map +1 -1
- package/lib/esm/constants/Pagination.d.ts +1 -1
- package/lib/esm/constants/Pagination.d.ts.map +1 -1
- package/lib/esm/constants/Pagination.js +1 -1
- package/lib/esm/constants/Pagination.js.map +1 -1
- package/lib/esm/constants/UserProfile.d.ts.map +1 -1
- package/lib/esm/constants/UserProfile.js +2 -1
- package/lib/esm/constants/UserProfile.js.map +1 -1
- package/lib/esm/index.d.ts +5 -2
- package/lib/esm/index.d.ts.map +1 -1
- package/lib/esm/index.js +7 -4
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/shared/BaseDrawer/BaseDrawer.d.ts +1 -1
- package/lib/esm/shared/BaseDrawer/BaseDrawer.d.ts.map +1 -1
- package/lib/esm/shared/InfiniteScroll/index.js +1 -1
- package/lib/esm/shared/InfiniteScroll/index.js.map +1 -1
- package/lib/esm/shared/MetadataField/MetadataField.d.ts.map +1 -1
- package/lib/esm/shared/MetadataField/MetadataField.js +6 -17
- package/lib/esm/shared/MetadataField/MetadataField.js.map +1 -1
- package/lib/esm/shared/Tags/index.d.ts.map +1 -1
- package/lib/esm/shared/Tags/index.js +10 -7
- package/lib/esm/shared/Tags/index.js.map +1 -1
- package/lib/esm/types/index.d.ts +2 -2
- package/lib/esm/types/index.d.ts.map +1 -1
- package/lib/esm/types/index.js +2 -2
- package/lib/esm/types/index.js.map +1 -1
- package/lib/esm/types/user.d.ts +11 -1
- package/lib/esm/types/user.d.ts.map +1 -1
- package/lib/esm/types/user.js +11 -0
- package/lib/esm/types/user.js.map +1 -1
- package/lib/esm/utils/tools.d.ts +29 -0
- package/lib/esm/utils/tools.d.ts.map +1 -0
- package/lib/esm/utils/tools.js +76 -0
- package/lib/esm/utils/tools.js.map +1 -0
- package/lib/umd/react-ui.js +11 -11
- package/lib/umd/react-ui.js.LICENSE.txt +3 -3
- package/lib/umd/react-ui.js.map +1 -1
- 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 [
|
|
115
|
-
|
|
116
|
-
|
|
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
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
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
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
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
|
-
|
|
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 (
|
|
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
|
-
!
|
|
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,
|
|
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
|
-
|
|
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 },
|
|
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,
|
|
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 && !
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+
|
|
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":"
|
|
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 [
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
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
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
api_services_1.
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
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
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
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
|
-
|
|
149
|
-
|
|
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 = [...
|
|
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
|
-
|
|
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 (
|
|
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
|
-
!
|
|
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,
|
|
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
|
-
|
|
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 },
|
|
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,
|
|
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 && !
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+
|
|
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":"
|
|
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 [
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
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
|
-
|
|
132
|
+
// CONST
|
|
133
|
+
const authUserId = scUserContext.user ? scUserContext.user.id : null;
|
|
131
134
|
/**
|
|
132
135
|
* Fetches the list of users followers
|
|
133
136
|
*/
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
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
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
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
|
-
|
|
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
|
-
*
|
|
184
|
+
* Virtual feed update
|
|
159
185
|
*/
|
|
160
186
|
(0, react_1.useEffect)(() => {
|
|
161
|
-
|
|
162
|
-
|
|
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 = [...
|
|
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
|
-
|
|
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 (
|
|
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:
|
|
196
|
-
!
|
|
197
|
-
react_1.default.createElement(List_1.default, null,
|
|
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
|
-
|
|
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:
|
|
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,
|
|
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 && !
|
|
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 && !
|
|
242
|
+
if (!contentAvailability && !authUserId) {
|
|
220
243
|
return react_1.default.createElement(HiddenPlaceholder_1.default, null);
|
|
221
244
|
}
|
|
222
245
|
/**
|