let path = timeline;
let skipLoading = false;
- if (newestId !== null && getState().getIn(['timelines', timeline, 'loaded'])) {
+ if (newestId !== null && getState().getIn(['timelines', timeline, 'loaded']) && (id === null || getState().getIn(['timelines', timeline, 'id']) === id)) {
params = `?since_id=${newestId}`;
skipLoading = true;
}
return;
}
- dispatch(expandTimelineRequest(timeline));
+ dispatch(expandTimelineRequest(timeline, id));
let path = timeline;
};
};
-export function expandTimelineRequest(timeline) {
+export function expandTimelineRequest(timeline, id) {
return {
type: TIMELINE_EXPAND_REQUEST,
- timeline
+ timeline,
+ id
};
};
import Column from '../ui/components/column';
import HeaderContainer from './containers/header_container';
import ColumnBackButton from '../../components/column_back_button';
+import Immutable from 'immutable';
const mapStateToProps = (state, props) => ({
- statusIds: state.getIn(['timelines', 'accounts_timelines', Number(props.params.accountId), 'items']),
+ statusIds: state.getIn(['timelines', 'accounts_timelines', Number(props.params.accountId), 'items'], Immutable.List()),
isLoading: state.getIn(['timelines', 'accounts_timelines', Number(props.params.accountId), 'isLoading']),
me: state.getIn(['meta', 'me'])
});
render () {
const { statusIds, isLoading, me } = this.props;
- if (!statusIds) {
+ if (!statusIds && isLoading) {
return (
<Column>
<LoadingIndicator />
return (
<Column>
<ColumnBackButton />
+
<ScrollContainer scrollKey='followers'>
<div className='scrollable' onScroll={this.handleScroll}>
<div>
return (
<Column>
<ColumnBackButton />
+
<ScrollContainer scrollKey='following'>
<div className='scrollable' onScroll={this.handleScroll}>
<div>
query = tag.statuses
.joins('LEFT OUTER JOIN accounts ON statuses.account_id = accounts.id')
.where(visibility: :public)
- .where('(statuses.in_reply_to_id IS NULL OR statuses.in_reply_to_account_id = statuses.account_id)')
.where('statuses.reblog_of_id IS NULL')
account.nil? ? filter_timeline_default(query) : filter_timeline_default(filter_timeline(query, account))
deliver_to_followers(status)
deliver_to_mentioned(status)
- return if status.account.silenced? || !status.public_visibility? || status.reblog? || (status.reply? && status.in_reply_to_account_id != status.account_id)
+ return if status.account.silenced? || !status.public_visibility? || status.reblog?
deliver_to_hashtags(status)
+
+ return if status.reply? && status.in_reply_to_account_id != status.account_id
+
deliver_to_public(status)
end