Fix j/k keyboard shortcuts on some status lists (#25554)
This commit is contained in:
		@@ -15,13 +15,14 @@ import { addColumn, removeColumn, moveColumn } from 'mastodon/actions/columns';
 | 
				
			|||||||
import ColumnHeader from 'mastodon/components/column_header';
 | 
					import ColumnHeader from 'mastodon/components/column_header';
 | 
				
			||||||
import StatusList from 'mastodon/components/status_list';
 | 
					import StatusList from 'mastodon/components/status_list';
 | 
				
			||||||
import Column from 'mastodon/features/ui/components/column';
 | 
					import Column from 'mastodon/features/ui/components/column';
 | 
				
			||||||
 | 
					import { getStatusList } from 'mastodon/selectors';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const messages = defineMessages({
 | 
					const messages = defineMessages({
 | 
				
			||||||
  heading: { id: 'column.bookmarks', defaultMessage: 'Bookmarks' },
 | 
					  heading: { id: 'column.bookmarks', defaultMessage: 'Bookmarks' },
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const mapStateToProps = state => ({
 | 
					const mapStateToProps = state => ({
 | 
				
			||||||
  statusIds: state.getIn(['status_lists', 'bookmarks', 'items']),
 | 
					  statusIds: getStatusList(state, 'bookmarks'),
 | 
				
			||||||
  isLoading: state.getIn(['status_lists', 'bookmarks', 'isLoading'], true),
 | 
					  isLoading: state.getIn(['status_lists', 'bookmarks', 'isLoading'], true),
 | 
				
			||||||
  hasMore: !!state.getIn(['status_lists', 'bookmarks', 'next']),
 | 
					  hasMore: !!state.getIn(['status_lists', 'bookmarks', 'next']),
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -11,9 +11,10 @@ import { debounce } from 'lodash';
 | 
				
			|||||||
import { fetchTrendingStatuses, expandTrendingStatuses } from 'mastodon/actions/trends';
 | 
					import { fetchTrendingStatuses, expandTrendingStatuses } from 'mastodon/actions/trends';
 | 
				
			||||||
import DismissableBanner from 'mastodon/components/dismissable_banner';
 | 
					import DismissableBanner from 'mastodon/components/dismissable_banner';
 | 
				
			||||||
import StatusList from 'mastodon/components/status_list';
 | 
					import StatusList from 'mastodon/components/status_list';
 | 
				
			||||||
 | 
					import { getStatusList } from 'mastodon/selectors';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const mapStateToProps = state => ({
 | 
					const mapStateToProps = state => ({
 | 
				
			||||||
  statusIds: state.getIn(['status_lists', 'trending', 'items']),
 | 
					  statusIds: getStatusList(state, 'trending'),
 | 
				
			||||||
  isLoading: state.getIn(['status_lists', 'trending', 'isLoading'], true),
 | 
					  isLoading: state.getIn(['status_lists', 'trending', 'isLoading'], true),
 | 
				
			||||||
  hasMore: !!state.getIn(['status_lists', 'trending', 'next']),
 | 
					  hasMore: !!state.getIn(['status_lists', 'trending', 'next']),
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,13 +15,14 @@ import { fetchFavouritedStatuses, expandFavouritedStatuses } from 'mastodon/acti
 | 
				
			|||||||
import ColumnHeader from 'mastodon/components/column_header';
 | 
					import ColumnHeader from 'mastodon/components/column_header';
 | 
				
			||||||
import StatusList from 'mastodon/components/status_list';
 | 
					import StatusList from 'mastodon/components/status_list';
 | 
				
			||||||
import Column from 'mastodon/features/ui/components/column';
 | 
					import Column from 'mastodon/features/ui/components/column';
 | 
				
			||||||
 | 
					import { getStatusList } from 'mastodon/selectors';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const messages = defineMessages({
 | 
					const messages = defineMessages({
 | 
				
			||||||
  heading: { id: 'column.favourites', defaultMessage: 'Favourites' },
 | 
					  heading: { id: 'column.favourites', defaultMessage: 'Favourites' },
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const mapStateToProps = state => ({
 | 
					const mapStateToProps = state => ({
 | 
				
			||||||
  statusIds: state.getIn(['status_lists', 'favourites', 'items']),
 | 
					  statusIds: getStatusList(state, 'favourites'),
 | 
				
			||||||
  isLoading: state.getIn(['status_lists', 'favourites', 'isLoading'], true),
 | 
					  isLoading: state.getIn(['status_lists', 'favourites', 'isLoading'], true),
 | 
				
			||||||
  hasMore: !!state.getIn(['status_lists', 'favourites', 'next']),
 | 
					  hasMore: !!state.getIn(['status_lists', 'favourites', 'next']),
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,6 +8,8 @@ import ImmutablePropTypes from 'react-immutable-proptypes';
 | 
				
			|||||||
import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
					import ImmutablePureComponent from 'react-immutable-pure-component';
 | 
				
			||||||
import { connect } from 'react-redux';
 | 
					import { connect } from 'react-redux';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import { getStatusList } from 'mastodon/selectors';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { fetchPinnedStatuses } from '../../actions/pin_statuses';
 | 
					import { fetchPinnedStatuses } from '../../actions/pin_statuses';
 | 
				
			||||||
import ColumnBackButtonSlim from '../../components/column_back_button_slim';
 | 
					import ColumnBackButtonSlim from '../../components/column_back_button_slim';
 | 
				
			||||||
import StatusList from '../../components/status_list';
 | 
					import StatusList from '../../components/status_list';
 | 
				
			||||||
@@ -18,7 +20,7 @@ const messages = defineMessages({
 | 
				
			|||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const mapStateToProps = state => ({
 | 
					const mapStateToProps = state => ({
 | 
				
			||||||
  statusIds: state.getIn(['status_lists', 'pins', 'items']),
 | 
					  statusIds: getStatusList(state, 'pins'),
 | 
				
			||||||
  hasMore: !!state.getIn(['status_lists', 'pins', 'next']),
 | 
					  hasMore: !!state.getIn(['status_lists', 'pins', 'next']),
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -137,3 +137,7 @@ export const getAccountHidden = createSelector([
 | 
				
			|||||||
], (hidden, followingOrRequested, isSelf) => {
 | 
					], (hidden, followingOrRequested, isSelf) => {
 | 
				
			||||||
  return hidden && !(isSelf || followingOrRequested);
 | 
					  return hidden && !(isSelf || followingOrRequested);
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export const getStatusList = createSelector([
 | 
				
			||||||
 | 
					  (state, type) => state.getIn(['status_lists', type, 'items']),
 | 
				
			||||||
 | 
					], (items) => items.toList());
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user