diff --git a/app/soapbox/actions/settings.js b/app/soapbox/actions/settings.js index 3eb6c00e5..e9b3a0c85 100644 --- a/app/soapbox/actions/settings.js +++ b/app/soapbox/actions/settings.js @@ -33,6 +33,7 @@ const defaultSettings = ImmutableMap({ shows: ImmutableMap({ reblog: true, reply: true, + direct: false, }), regex: ImmutableMap({ diff --git a/app/soapbox/features/home_timeline/components/column_settings.js b/app/soapbox/features/home_timeline/components/column_settings.js index 53409b215..da553e779 100644 --- a/app/soapbox/features/home_timeline/components/column_settings.js +++ b/app/soapbox/features/home_timeline/components/column_settings.js @@ -25,6 +25,10 @@ class ColumnSettings extends React.PureComponent {
} />
+ +
+ } /> +
); } diff --git a/app/soapbox/features/ui/containers/status_list_container.js b/app/soapbox/features/ui/containers/status_list_container.js index d014f22ee..f54cd2eee 100644 --- a/app/soapbox/features/ui/containers/status_list_container.js +++ b/app/soapbox/features/ui/containers/status_list_container.js @@ -5,9 +5,10 @@ import { createSelector } from 'reselect'; import { debounce } from 'lodash'; import { dequeueTimeline } from 'soapbox/actions/timelines'; import { scrollTopTimeline } from '../../../actions/timelines'; +import { getSettings } from 'soapbox/actions/settings'; 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) => state.get('statuses'), (state) => state.get('me'), @@ -26,6 +27,10 @@ const makeGetStatusIds = () => createSelector([ showStatus = showStatus && (statusForId.get('in_reply_to_id') === null); } + if (columnSettings.getIn(['shows', 'direct']) === false) { + showStatus = showStatus && (statusForId.get('visibility') !== 'direct'); + } + return showStatus; }); });