import React from 'react'
import PropTypes from 'prop-types'
import { connect } from 'react-redux'
import ImmutablePropTypes from 'react-immutable-proptypes'
import ImmutablePureComponent from 'react-immutable-pure-component'
import { FormattedMessage } from 'react-intl'
import { connectLinkStream } from '../actions/streaming'
import { expandLinkTimeline } from '../actions/timelines'
import { fetchLinkCard } from '../actions/links'
import { openModal } from '../actions/modal'
import StatusList from '../components/status_list'
import ColumnIndicator from '../components/column_indicator'
import Button from '../components/button'
import Text from '../components/text'
import PreviewCardItem from '../components/preview_card_item'
import ResponsiveClassesComponent from './ui/util/responsive_classes_component'
class LinkTimeline extends ImmutablePureComponent {
static contextTypes = {
router: PropTypes.object,
}
componentDidMount() {
this.handleConnect(this.props.params.id)
}
componentWillUnmount() {
this.handleDisconnect()
}
componentWillReceiveProps(nextProps) {
if (nextProps.params.id !== this.props.params.id) {
this.handleDisconnect()
this.handleConnect(nextProps.params.id)
}
}
handleConnect(id) {
const { dispatch } = this.props
dispatch(fetchLinkCard(id))
dispatch(expandLinkTimeline(id))
this.disconnect = dispatch(connectLinkStream(id))
}
handleDisconnect() {
if (this.disconnect) {
this.disconnect()
this.disconnect = null
}
}
handleLoadMore = (maxId) => {
const { id } = this.props.params
this.props.dispatch(expandLinkTimeline(id, { maxId }))
}
render() {
const {
link,
items,
isFetched,
isLoading,
} = this.props
const { id } = this.props.params
if (typeof link === 'undefined' && isLoading) {
return