From ca333c9552bf2bdedfcab0123b35dced6b5e57de Mon Sep 17 00:00:00 2001 From: Alex Gleason Date: Sat, 15 Aug 2020 23:18:53 -0500 Subject: [PATCH] Start refactoring direct_timeline / conversations --- .../components/conversation.js | 0 .../components/conversations_list.js | 0 .../containers/conversation_container.js | 0 .../conversations_list_container.js | 0 app/soapbox/features/conversations/index.js | 63 +++++++++++++++++++ app/soapbox/features/direct_timeline/index.js | 2 +- 6 files changed, 64 insertions(+), 1 deletion(-) rename app/soapbox/features/{direct_timeline => conversations}/components/conversation.js (100%) rename app/soapbox/features/{direct_timeline => conversations}/components/conversations_list.js (100%) rename app/soapbox/features/{direct_timeline => conversations}/containers/conversation_container.js (100%) rename app/soapbox/features/{direct_timeline => conversations}/containers/conversations_list_container.js (100%) create mode 100644 app/soapbox/features/conversations/index.js diff --git a/app/soapbox/features/direct_timeline/components/conversation.js b/app/soapbox/features/conversations/components/conversation.js similarity index 100% rename from app/soapbox/features/direct_timeline/components/conversation.js rename to app/soapbox/features/conversations/components/conversation.js diff --git a/app/soapbox/features/direct_timeline/components/conversations_list.js b/app/soapbox/features/conversations/components/conversations_list.js similarity index 100% rename from app/soapbox/features/direct_timeline/components/conversations_list.js rename to app/soapbox/features/conversations/components/conversations_list.js diff --git a/app/soapbox/features/direct_timeline/containers/conversation_container.js b/app/soapbox/features/conversations/containers/conversation_container.js similarity index 100% rename from app/soapbox/features/direct_timeline/containers/conversation_container.js rename to app/soapbox/features/conversations/containers/conversation_container.js diff --git a/app/soapbox/features/direct_timeline/containers/conversations_list_container.js b/app/soapbox/features/conversations/containers/conversations_list_container.js similarity index 100% rename from app/soapbox/features/direct_timeline/containers/conversations_list_container.js rename to app/soapbox/features/conversations/containers/conversations_list_container.js diff --git a/app/soapbox/features/conversations/index.js b/app/soapbox/features/conversations/index.js new file mode 100644 index 000000000..238deebe9 --- /dev/null +++ b/app/soapbox/features/conversations/index.js @@ -0,0 +1,63 @@ +import React from 'react'; +import { connect } from 'react-redux'; +import PropTypes from 'prop-types'; +import Column from '../../components/column'; +import ColumnHeader from '../../components/column_header'; +import { mountConversations, unmountConversations, expandConversations } from '../../actions/conversations'; +import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; +import { connectDirectStream } from '../../actions/streaming'; +import ConversationsListContainer from './containers/conversations_list_container'; + +const messages = defineMessages({ + title: { id: 'column.direct', defaultMessage: 'Direct messages' }, +}); + +export default @connect() +@injectIntl +class ConversationsTimeline extends React.PureComponent { + + static propTypes = { + dispatch: PropTypes.func.isRequired, + intl: PropTypes.object.isRequired, + hasUnread: PropTypes.bool, + }; + + componentDidMount() { + const { dispatch } = this.props; + + dispatch(mountConversations()); + dispatch(expandConversations()); + this.disconnect = dispatch(connectDirectStream()); + } + + componentWillUnmount() { + this.props.dispatch(unmountConversations()); + + if (this.disconnect) { + this.disconnect(); + this.disconnect = null; + } + } + + handleLoadMore = maxId => { + this.props.dispatch(expandConversations({ maxId })); + } + + render() { + const { intl, hasUnread } = this.props; + + return ( + + + + } + /> + + ); + } + +} diff --git a/app/soapbox/features/direct_timeline/index.js b/app/soapbox/features/direct_timeline/index.js index f5e176a6f..996357433 100644 --- a/app/soapbox/features/direct_timeline/index.js +++ b/app/soapbox/features/direct_timeline/index.js @@ -6,7 +6,7 @@ import ColumnHeader from '../../components/column_header'; import { mountConversations, unmountConversations, expandConversations } from '../../actions/conversations'; import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; import { connectDirectStream } from '../../actions/streaming'; -import ConversationsListContainer from './containers/conversations_list_container'; +import ConversationsListContainer from '../conversations/containers/conversations_list_container'; const messages = defineMessages({ title: { id: 'column.direct', defaultMessage: 'Direct messages' },