add DM filter option for Home timeline, fixes #254

merge-requests/155/head
Mary Kate 4 years ago
parent e116745e83
commit ae608388a0

@ -33,6 +33,7 @@ const defaultSettings = ImmutableMap({
shows: ImmutableMap({ shows: ImmutableMap({
reblog: true, reblog: true,
reply: true, reply: true,
direct: false,
}), }),
regex: ImmutableMap({ regex: ImmutableMap({

@ -25,6 +25,10 @@ class ColumnSettings extends React.PureComponent {
<div className='column-settings__row'> <div className='column-settings__row'>
<SettingToggle prefix='home_timeline' settings={settings} settingPath={['shows', 'reply']} onChange={onChange} label={<FormattedMessage id='home.column_settings.show_replies' defaultMessage='Show replies' />} /> <SettingToggle prefix='home_timeline' settings={settings} settingPath={['shows', 'reply']} onChange={onChange} label={<FormattedMessage id='home.column_settings.show_replies' defaultMessage='Show replies' />} />
</div> </div>
<div className='column-settings__row'>
<SettingToggle prefix='home_timeline' settings={settings} settingPath={['shows', 'direct']} onChange={onChange} label={<FormattedMessage id='home.column_settings.show_direct' defaultMessage='Show direct messages' />} />
</div>
</div> </div>
); );
} }

@ -5,9 +5,10 @@ import { createSelector } from 'reselect';
import { debounce } from 'lodash'; import { debounce } from 'lodash';
import { dequeueTimeline } from 'soapbox/actions/timelines'; import { dequeueTimeline } from 'soapbox/actions/timelines';
import { scrollTopTimeline } from '../../../actions/timelines'; import { scrollTopTimeline } from '../../../actions/timelines';
import { getSettings } from 'soapbox/actions/settings';
const makeGetStatusIds = () => createSelector([ const makeGetStatusIds = () => createSelector([
(state, { type }) => state.getIn(['settings', type], ImmutableMap()), (state, { type }) => getSettings(state).get(type, ImmutableMap()),
(state, { type }) => state.getIn(['timelines', type, 'items'], ImmutableList()), (state, { type }) => state.getIn(['timelines', type, 'items'], ImmutableList()),
(state) => state.get('statuses'), (state) => state.get('statuses'),
(state) => state.get('me'), (state) => state.get('me'),
@ -26,6 +27,10 @@ const makeGetStatusIds = () => createSelector([
showStatus = showStatus && (statusForId.get('in_reply_to_id') === null); showStatus = showStatus && (statusForId.get('in_reply_to_id') === null);
} }
if (columnSettings.getIn(['shows', 'direct']) === false) {
showStatus = showStatus && (statusForId.get('visibility') !== 'direct');
}
return showStatus; return showStatus;
}); });
}); });

Loading…
Cancel
Save