fix: direct message problem
This commit is contained in:
parent
fc596d372c
commit
0c646f7104
@ -164,7 +164,7 @@ class AccountTimeline extends ImmutablePureComponent {
|
||||
<ColumnBackButton />
|
||||
<StatusList
|
||||
append={remoteMessage}
|
||||
scrollKey='account_timeline'
|
||||
scrollKey='account_direct'
|
||||
statusIds={forceEmptyState ? emptyList : statusIds}
|
||||
featuredStatusIds={featuredStatusIds}
|
||||
isLoading={isLoading}
|
||||
|
70
app/javascript/mastodon/features/direct_messages/index.jsx
Normal file
70
app/javascript/mastodon/features/direct_messages/index.jsx
Normal file
@ -0,0 +1,70 @@
|
||||
import PropTypes from 'prop-types';
|
||||
|
||||
import { defineMessages, injectIntl } from 'react-intl';
|
||||
|
||||
import { Helmet } from 'react-helmet';
|
||||
|
||||
import ImmutablePropTypes from 'react-immutable-proptypes';
|
||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||
import { connect } from 'react-redux';
|
||||
|
||||
import { getStatusList } from 'mastodon/selectors';
|
||||
|
||||
import { fetchDirectStatuses } from '../../actions/direct_statuses';
|
||||
import { ColumnBackButton } from '../../components/column_back_button';
|
||||
import StatusList from '../../components/status_list';
|
||||
import Column from '../ui/components/column';
|
||||
|
||||
const messages = defineMessages({
|
||||
heading: { id: 'column.pins', defaultMessage: 'Pinned post' },
|
||||
});
|
||||
|
||||
const mapStateToProps = state => ({
|
||||
statusIds: getStatusList(state, 'direct'),
|
||||
hasMore: !!state.getIn(['status_lists', 'direct', 'next']),
|
||||
});
|
||||
|
||||
class PinnedStatuses extends ImmutablePureComponent {
|
||||
|
||||
static propTypes = {
|
||||
dispatch: PropTypes.func.isRequired,
|
||||
statusIds: ImmutablePropTypes.list.isRequired,
|
||||
intl: PropTypes.object.isRequired,
|
||||
hasMore: PropTypes.bool.isRequired,
|
||||
multiColumn: PropTypes.bool,
|
||||
};
|
||||
|
||||
UNSAFE_componentWillMount () {
|
||||
this.props.dispatch(fetchDirectStatuses());
|
||||
}
|
||||
|
||||
handleHeaderClick = () => {
|
||||
this.column.scrollTop();
|
||||
};
|
||||
|
||||
setRef = c => {
|
||||
this.column = c;
|
||||
};
|
||||
|
||||
render () {
|
||||
const { intl, statusIds, hasMore, multiColumn } = this.props;
|
||||
|
||||
return (
|
||||
<Column bindToDocument={!multiColumn} icon='thumb-tack' heading={intl.formatMessage(messages.heading)} ref={this.setRef}>
|
||||
<ColumnBackButton />
|
||||
<StatusList
|
||||
statusIds={statusIds}
|
||||
scrollKey='direct_messages'
|
||||
hasMore={hasMore}
|
||||
bindToDocument={!multiColumn}
|
||||
/>
|
||||
<Helmet>
|
||||
<meta name='robots' content='noindex' />
|
||||
</Helmet>
|
||||
</Column>
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export default connect(mapStateToProps)(injectIntl(PinnedStatuses));
|
@ -58,8 +58,12 @@ export function PinnedStatuses () {
|
||||
return import(/* webpackChunkName: "features/pinned_statuses" */'../../pinned_statuses');
|
||||
}
|
||||
|
||||
export function SendDirectMessagesStatuses () {
|
||||
return import(/* webpackChunkName: "features/direct_messages" */'../../direct_messages');
|
||||
}
|
||||
|
||||
export function AccountDirectMessages () {
|
||||
return import(/* webpackChunkName: "features/pinned_statuses" */'../../account_direct');
|
||||
return import(/* webpackChunkName: "features/account_direct" */'../../account_direct');
|
||||
}
|
||||
|
||||
export function AccountTimeline () {
|
||||
|
@ -108,6 +108,9 @@ class Status < ApplicationRecord
|
||||
scope :with_accounts, ->(ids) { where(id: ids).includes(:account) }
|
||||
scope :without_replies, -> { where('statuses.reply = FALSE OR statuses.in_reply_to_account_id = statuses.account_id') }
|
||||
scope :without_reblogs, -> { where(statuses: { reblog_of_id: nil }) }
|
||||
scope :with_public_visibility, -> { where(visibility: :public) }
|
||||
scope :with_unlisted_visibility, -> { where(visibility: :unlisted) }
|
||||
scope :with
|
||||
scope :tagged_with, ->(tag_ids) { joins(:statuses_tags).where(statuses_tags: { tag_id: tag_ids }) }
|
||||
scope :not_excluded_by_account, ->(account) { where.not(account_id: account.excluded_from_timeline_account_ids) }
|
||||
scope :not_domain_blocked_by_account, ->(account) { account.excluded_from_timeline_domains.blank? ? left_outer_joins(:account) : left_outer_joins(:account).merge(Account.not_domain_blocked_by_account(account)) }
|
||||
|
Loading…
Reference in New Issue
Block a user