From 3f6e8a62fddb2b5640c2a0d203db29ebaa6e793d Mon Sep 17 00:00:00 2001 From: Fosco Marotto Date: Sun, 24 Jan 2021 15:21:09 -0500 Subject: [PATCH] [groups] Change default sorts for groups and groups collection --- .../features/group_collection_timeline.js | 17 ++++++++++------- .../gabsocial/features/group_timeline.js | 19 ++++++++++++------- 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/app/javascript/gabsocial/features/group_collection_timeline.js b/app/javascript/gabsocial/features/group_collection_timeline.js index e574a758..3adc91d2 100644 --- a/app/javascript/gabsocial/features/group_collection_timeline.js +++ b/app/javascript/gabsocial/features/group_collection_timeline.js @@ -25,7 +25,7 @@ import GroupsCollection from './groups_collection' class GroupCollectionTimeline extends React.PureComponent { state = { - //keep track of page loads for if no user, + //keep track of page loads for if no user, //only allow MIN_UNAUTHENTICATED_PAGES page loads before showing sign up msg page: 1, } @@ -39,8 +39,8 @@ class GroupCollectionTimeline extends React.PureComponent { if (this.props.collectionType === 'featured' && sortByValue !== GROUP_TIMELINE_SORTING_TYPE_HOT) { this.props.setFeaturedTop() - } else if (!!me && this.props.collectionType === 'member' && sortByValue !== GROUP_TIMELINE_SORTING_TYPE_NEWEST) { - this.props.setMemberNewest() + } else if (!!me && this.props.collectionType === 'member' && sortByValue !== GROUP_TIMELINE_SORTING_TYPE_HOT) { + this.props.setMemberHot() } else { const sortBy = getSortBy(sortByValue, sortByTopValue) this.props.onExpandGroupCollectionTimeline(collectionType, { sortBy }) @@ -48,7 +48,7 @@ class GroupCollectionTimeline extends React.PureComponent { } componentDidUpdate(prevProps) { - if (prevProps.sortByValue !== this.props.sortByValue || + if (prevProps.sortByValue !== this.props.sortByValue || prevProps.sortByTopValue !== this.props.sortByTopValue || prevProps.collectionType !== this.props.collectionType) { this.props.onClearTimeline(`group_collection:${prevProps.collectionType}`) @@ -63,7 +63,7 @@ class GroupCollectionTimeline extends React.PureComponent { sortByTopValue, } = this.props const { page } = this.state - + const newPage = !!maxId ? this.state.page + 1 : 1 if (!!maxId && !me && page >= MIN_UNAUTHENTICATED_PAGES) return false this.setState({ page: newPage }) @@ -73,7 +73,7 @@ class GroupCollectionTimeline extends React.PureComponent { this.props.onExpandGroupCollectionTimeline(collectionType, options) } - + render() { const { collectionType, @@ -141,6 +141,9 @@ const mapDispatchToProps = (dispatch) => ({ setMemberNewest() { dispatch(setGroupTimelineSort(GROUP_TIMELINE_SORTING_TYPE_NEWEST)) }, + setMemberHot() { + dispatch(setGroupTimelineSort(GROUP_TIMELINE_SORTING_TYPE_HOT)) + }, }) GroupCollectionTimeline.propTypes = { @@ -156,4 +159,4 @@ GroupCollectionTimeline.propTypes = { hasStatuses: PropTypes.bool.isRequired, } -export default injectIntl(connect(mapStateToProps, mapDispatchToProps)(GroupCollectionTimeline)) \ No newline at end of file +export default injectIntl(connect(mapStateToProps, mapDispatchToProps)(GroupCollectionTimeline)) diff --git a/app/javascript/gabsocial/features/group_timeline.js b/app/javascript/gabsocial/features/group_timeline.js index efa48931..3e5ff355 100644 --- a/app/javascript/gabsocial/features/group_timeline.js +++ b/app/javascript/gabsocial/features/group_timeline.js @@ -14,10 +14,12 @@ import { } from '../actions/timelines' import { setGroupTimelineSort, + setGroupTimelineTopSort, } from '../actions/groups' import { MIN_UNAUTHENTICATED_PAGES, GROUP_TIMELINE_SORTING_TYPE_NEWEST, + GROUP_TIMELINE_SORTING_TYPE_TOP_OPTION_WEEKLY, } from '../constants' import StatusList from '../components/status_list' import ColumnIndicator from '../components/column_indicator' @@ -26,11 +28,11 @@ import GroupSortBlock from '../components/group_sort_block' class GroupTimeline extends ImmutablePureComponent { state = { - //keep track of page loads for if no user, + //keep track of page loads for if no user, //only allow MIN_UNAUTHENTICATED_PAGES page loads before showing sign up msg page: 1, } - + componentDidMount() { const { groupId, @@ -40,8 +42,8 @@ class GroupTimeline extends ImmutablePureComponent { isDeckConnected, } = this.props - if (sortByValue !== GROUP_TIMELINE_SORTING_TYPE_NEWEST) { - this.props.setMemberNewest() + if (sortByValue !== GROUP_TIMELINE_SORTING_TYPE_TOP_OPTION_WEEKLY) { + this.props.setMemberTopWeekly() } else { const sortBy = getSortBy(sortByValue, sortByTopValue, onlyMedia) @@ -74,11 +76,11 @@ class GroupTimeline extends ImmutablePureComponent { onlyMedia, } = this.props const { page } = this.state - + const newPage = !!maxId ? this.state.page + 1 : 1 if (!!maxId && !me && page >= MIN_UNAUTHENTICATED_PAGES) return false this.setState({ page: newPage }) - + const sortBy = getSortBy(sortByValue, sortByTopValue) this.props.onExpandGroupTimeline(groupId, { sortBy, @@ -146,6 +148,9 @@ const mapDispatchToProps = (dispatch) => ({ setMemberNewest() { dispatch(setGroupTimelineSort(GROUP_TIMELINE_SORTING_TYPE_NEWEST)) }, + setMemberTopWeekly() { + dispatch(setGroupTimelineTopSort(GROUP_TIMELINE_SORTING_TYPE_TOP_OPTION_WEEKLY)) + }, onExpandGroupFeaturedTimeline(groupId) { dispatch(expandGroupFeaturedTimeline(groupId)) }, @@ -168,4 +173,4 @@ GroupTimeline.propTypes = { onlyMedia: PropTypes.bool, } -export default injectIntl(connect(mapStateToProps, mapDispatchToProps)(GroupTimeline)) \ No newline at end of file +export default injectIntl(connect(mapStateToProps, mapDispatchToProps)(GroupTimeline))