mirror of
https://github.com/funamitech/mastodon
synced 2024-12-30 06:28:36 +09:00
cf845fed38
Hide some components rather than unmounting them to allow to show again quickly and keep the view state such as the scrolled offset.
38 lines
1.4 KiB
JavaScript
38 lines
1.4 KiB
JavaScript
import { connect } from 'react-redux';
|
|
import PropTypes from 'prop-types';
|
|
import StatusListContainer from '../ui/containers/status_list_container';
|
|
import Column from '../ui/components/column';
|
|
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
|
|
import ColumnSettingsContainer from './containers/column_settings_container';
|
|
import { Link } from 'react-router';
|
|
|
|
const messages = defineMessages({
|
|
title: { id: 'column.home', defaultMessage: 'Home' }
|
|
});
|
|
|
|
const mapStateToProps = state => ({
|
|
hasUnread: state.getIn(['timelines', 'home', 'unread']) > 0
|
|
});
|
|
|
|
class HomeTimeline extends React.PureComponent {
|
|
|
|
render () {
|
|
const { intl, hasUnread } = this.props;
|
|
|
|
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> }} />} />
|
|
</Column>
|
|
);
|
|
}
|
|
|
|
}
|
|
|
|
HomeTimeline.propTypes = {
|
|
intl: PropTypes.object.isRequired,
|
|
hasUnread: PropTypes.bool
|
|
};
|
|
|
|
export default connect(mapStateToProps)(injectIntl(HomeTimeline));
|