Skip to content
Snippets Groups Projects
Commit fbdb3bcf authored by Eugen Rochko's avatar Eugen Rochko
Browse files

Revert infinite scroll in timelines back to looking at ID of oldest

loaded status; do not preload submitted statuses into community/public
timelines, unless those timelines have already been loaded; do not
close streaming API connections for community/public timelines, once
they have been established (most users navigate back to them eventually)
parent e1b00757
No related branches found
No related tags found
No related merge requests found
......@@ -85,8 +85,13 @@ export function submitCompose() {
dispatch(updateTimeline('home', { ...response.data }));
if (response.data.in_reply_to_id === null && response.data.visibility === 'public') {
dispatch(updateTimeline('community', { ...response.data }));
dispatch(updateTimeline('public', { ...response.data }));
if (getState.getIn(['timelines', 'community', 'loaded'])) {
dispatch(updateTimeline('community', { ...response.data }));
}
if (getState.getIn(['timelines', 'public', 'loaded'])) {
dispatch(updateTimeline('public', { ...response.data }));
}
}
}).catch(function (error) {
dispatch(submitComposeFail(error));
......
......@@ -106,18 +106,20 @@ export function expandTimeline(timeline) {
return;
}
const next = getState().getIn(['timelines', timeline, 'next']);
const params = getState().getIn(['timelines', timeline, 'params'], {});
if (next === null) {
if (getState().getIn(['timelines', timeline, 'items']).size === 0) {
return;
}
const path = getState().getIn(['timelines', timeline, 'path'])(getState().getIn(['timelines', timeline, 'id']));
const params = getState().getIn(['timelines', timeline, 'params'], {});
const lastId = getState().getIn(['timelines', timeline, 'items']).last();
dispatch(expandTimelineRequest(timeline));
api(getState).get(next, {
api(getState).get(path, {
params: {
...params,
max_id: lastId,
limit: 10
}
}).then(response => {
......
......@@ -20,6 +20,8 @@ const mapStateToProps = state => ({
accessToken: state.getIn(['meta', 'access_token'])
});
let subscription;
const CommunityTimeline = React.createClass({
propTypes: {
......@@ -36,7 +38,11 @@ const CommunityTimeline = React.createClass({
dispatch(refreshTimeline('community'));
this.subscription = createStream(accessToken, 'public:local', {
if (typeof subscription !== 'undefined') {
return;
}
subscription = createStream(accessToken, 'public:local', {
received (data) {
switch(data.event) {
......@@ -53,10 +59,10 @@ const CommunityTimeline = React.createClass({
},
componentWillUnmount () {
if (typeof this.subscription !== 'undefined') {
this.subscription.close();
this.subscription = null;
}
// if (typeof subscription !== 'undefined') {
// subscription.close();
// subscription = null;
// }
},
render () {
......
......@@ -20,6 +20,8 @@ const mapStateToProps = state => ({
accessToken: state.getIn(['meta', 'access_token'])
});
let subscription;
const PublicTimeline = React.createClass({
propTypes: {
......@@ -36,7 +38,11 @@ const PublicTimeline = React.createClass({
dispatch(refreshTimeline('public'));
this.subscription = createStream(accessToken, 'public', {
if (typeof subscription !== 'undefined') {
return;
}
subscription = createStream(accessToken, 'public', {
received (data) {
switch(data.event) {
......@@ -53,10 +59,10 @@ const PublicTimeline = React.createClass({
},
componentWillUnmount () {
if (typeof this.subscription !== 'undefined') {
this.subscription.close();
this.subscription = null;
}
// if (typeof subscription !== 'undefined') {
// subscription.close();
// subscription = null;
// }
},
render () {
......
......@@ -576,6 +576,7 @@ a.status__content__spoiler-link {
color: $color1;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
&:focus {
outline: none;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment