Add option to show only local toots in timeline preview (#6292)
* Add option to show only local toots in timeline preview Right know, toots from all the known fediverse are shown in the main page of an instance. That however doesn't reflect the instance itself. With this option the admin may choose to display only local toots so that users checking the instance get a better idea of internal conversations. * Fix issues pointed by codeclimate and eslint * Add default message for community timeline * Update pl.ymlmaster
parent
26f21fd5a0
commit
4e4f1b0dcb
@ -0,0 +1,74 @@ |
||||
import React from 'react'; |
||||
import { connect } from 'react-redux'; |
||||
import PropTypes from 'prop-types'; |
||||
import StatusListContainer from '../../ui/containers/status_list_container'; |
||||
import { |
||||
refreshCommunityTimeline, |
||||
expandCommunityTimeline, |
||||
} from '../../../actions/timelines'; |
||||
import Column from '../../../components/column'; |
||||
import ColumnHeader from '../../../components/column_header'; |
||||
import { defineMessages, injectIntl } from 'react-intl'; |
||||
import { connectCommunityStream } from '../../../actions/streaming'; |
||||
|
||||
const messages = defineMessages({ |
||||
title: { id: 'standalone.public_title', defaultMessage: 'A look inside...' }, |
||||
}); |
||||
|
||||
@connect() |
||||
@injectIntl |
||||
export default class CommunityTimeline extends React.PureComponent { |
||||
|
||||
static propTypes = { |
||||
dispatch: PropTypes.func.isRequired, |
||||
intl: PropTypes.object.isRequired, |
||||
}; |
||||
|
||||
handleHeaderClick = () => { |
||||
this.column.scrollTop(); |
||||
} |
||||
|
||||
setRef = c => { |
||||
this.column = c; |
||||
} |
||||
|
||||
componentDidMount () { |
||||
const { dispatch } = this.props; |
||||
|
||||
dispatch(refreshCommunityTimeline()); |
||||
this.disconnect = dispatch(connectCommunityStream()); |
||||
} |
||||
|
||||
componentWillUnmount () { |
||||
if (this.disconnect) { |
||||
this.disconnect(); |
||||
this.disconnect = null; |
||||
} |
||||
} |
||||
|
||||
handleLoadMore = () => { |
||||
this.props.dispatch(expandCommunityTimeline()); |
||||
} |
||||
|
||||
render () { |
||||
const { intl } = this.props; |
||||
|
||||
return ( |
||||
<Column ref={this.setRef}> |
||||
<ColumnHeader |
||||
icon='users' |
||||
title={intl.formatMessage(messages.title)} |
||||
onClick={this.handleHeaderClick} |
||||
/> |
||||
|
||||
<StatusListContainer |
||||
timelineId='community' |
||||
loadMore={this.handleLoadMore} |
||||
scrollKey='standalone_public_timeline' |
||||
trackScroll={false} |
||||
/> |
||||
</Column> |
||||
); |
||||
} |
||||
|
||||
} |
Loading…
Reference in new issue