diff --git a/app/javascript/flavours/glitch/features/home_timeline/components/column_settings.tsx b/app/javascript/flavours/glitch/features/home_timeline/components/column_settings.tsx index 021eae0a98..f20189a8db 100644 --- a/app/javascript/flavours/glitch/features/home_timeline/components/column_settings.tsx +++ b/app/javascript/flavours/glitch/features/home_timeline/components/column_settings.tsx @@ -51,6 +51,19 @@ export const ColumnSettings: React.FC = () => { } /> + + } + /> + createSelector([ if (id === null || id === 'inline-follow-suggestions') return true; const statusForId = statuses.get(id); - let showStatus = true; if (statusForId.get('account') === me) return true; - if (columnSettings.getIn(['shows', 'reblog']) === false) { - showStatus = showStatus && statusForId.get('reblog') === null; + if (columnSettings.getIn(['shows', 'reblog']) === false && statusForId.get('reblog') !== null) { + return false; } - if (columnSettings.getIn(['shows', 'reply']) === false) { - showStatus = showStatus && (statusForId.get('in_reply_to_id') === null || statusForId.get('in_reply_to_account_id') === me); + if (columnSettings.getIn(['shows', 'reply']) === false && statusForId.get('in_reply_to_id') !== null && statusForId.get('in_reply_to_account_id') !== me) { + return false; } - if (columnSettings.getIn(['shows', 'direct']) === false) { - showStatus = showStatus && statusForId.get('visibility') !== 'direct'; + if (columnSettings.getIn(['shows', 'quote']) === false && statusForId.get('quote') !== null) { + return false; } - if (showStatus && regex) { - const searchIndex = statusForId.get('reblog') ? statuses.getIn([statusForId.get('reblog'), 'search_index']) : statusForId.get('search_index'); - showStatus = !regex.test(searchIndex); + if (columnSettings.getIn(['shows', 'direct']) === false && statusForId.get('visibility') === 'direct') { + return false; } - return showStatus; + const searchIndex = statusForId.get('reblog') ? statuses.getIn([statusForId.get('reblog'), 'search_index']) : statusForId.get('search_index'); + if (regex && !regex.test(searchIndex)) { + return false; + } + + return true; }); }); diff --git a/app/javascript/flavours/glitch/reducers/settings.js b/app/javascript/flavours/glitch/reducers/settings.js index bfea4abe44..65e086ff26 100644 --- a/app/javascript/flavours/glitch/reducers/settings.js +++ b/app/javascript/flavours/glitch/reducers/settings.js @@ -20,6 +20,7 @@ const initialState = ImmutableMap({ home: ImmutableMap({ shows: ImmutableMap({ + quote: true, reblog: true, reply: true, direct: true,