about summary refs log tree commit diff
path: root/app/javascript/mastodon/features/home_timeline/index.js
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2017-05-04 23:41:34 +0200
committerGitHub <noreply@github.com>2017-05-04 23:41:34 +0200
commiteddb95b0126e523faeafbde544ff5df3a64e5b25 (patch)
treebc24f9595b33c9b621886a7d6ab1a3233ac69b3e /app/javascript/mastodon/features/home_timeline/index.js
parent84eb425f385c5fc66dc67973b2869b9f31e9a2bb (diff)
When streaming API is disconnected, poll home/notifications (#2776)
* When streaming API is disconnected, poll home/notifications
Display slightly different empty home timeline message if user is following others
Cull notifications to 20 items when over 40 get added in real-time
Run manage:translations

* Optimize <HomeTimeline /> a little
Diffstat (limited to 'app/javascript/mastodon/features/home_timeline/index.js')
-rw-r--r--app/javascript/mastodon/features/home_timeline/index.js24
1 files changed, 20 insertions, 4 deletions
diff --git a/app/javascript/mastodon/features/home_timeline/index.js b/app/javascript/mastodon/features/home_timeline/index.js
index d7c438122..d6bfef8cd 100644
--- a/app/javascript/mastodon/features/home_timeline/index.js
+++ b/app/javascript/mastodon/features/home_timeline/index.js
@@ -12,18 +12,33 @@ const messages = defineMessages({
 });
 
 const mapStateToProps = state => ({
-  hasUnread: state.getIn(['timelines', 'home', 'unread']) > 0
+  hasUnread: state.getIn(['timelines', 'home', 'unread']) > 0,
+  hasFollows: state.getIn(['accounts_counters', state.getIn(['meta', 'me']), 'following_count']) > 0
 });
 
 class HomeTimeline extends React.PureComponent {
 
   render () {
-    const { intl, hasUnread } = this.props;
+    const { intl, hasUnread, hasFollows } = this.props;
+
+    let emptyMessage;
+
+    if (hasFollows) {
+      emptyMessage = <FormattedMessage id='empty_column.home.inactivity' defaultMessage="Your home feed is empty. If you have been inactive for a while, it will be regenerated for you soon." />
+    } else {
+      emptyMessage = <FormattedMessage id='empty_column.home' defaultMessage="You aren't following anyone yet. Visit {public} or use search to get started and meet other users." values={{ public: <Link to='/timelines/public'><FormattedMessage id='empty_column.home.public_timeline' defaultMessage='the public timeline' /></Link> }} />;
+    }
 
     return (
       <Column icon='home' active={hasUnread} heading={intl.formatMessage(messages.title)}>
         <ColumnSettingsContainer />
-        <StatusListContainer {...this.props} scrollKey='home_timeline' type='home' emptyMessage={<FormattedMessage id='empty_column.home' defaultMessage="You aren't following anyone yet. Visit {public} or use search to get started and meet other users." values={{ public: <Link to='/timelines/public'><FormattedMessage id='empty_column.home.public_timeline' defaultMessage='the public timeline' /></Link> }} />} />
+
+        <StatusListContainer
+          {...this.props}
+          scrollKey='home_timeline'
+          type='home'
+          emptyMessage={emptyMessage}
+        />
       </Column>
     );
   }
@@ -32,7 +47,8 @@ class HomeTimeline extends React.PureComponent {
 
 HomeTimeline.propTypes = {
   intl: PropTypes.object.isRequired,
-  hasUnread: PropTypes.bool
+  hasUnread: PropTypes.bool,
+  hasFollows: PropTypes.bool
 };
 
 export default connect(mapStateToProps)(injectIntl(HomeTimeline));