From 3c24f19afedc2169a7a343c5af4a8f892d863f0b Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 30 Jun 2022 09:51:55 +0200 Subject: Fix reblogged statuses being erroneously shown as filtered (#18744) --- app/javascript/mastodon/components/status.js | 2 +- app/javascript/mastodon/selectors/index.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'app/javascript') diff --git a/app/javascript/mastodon/components/status.js b/app/javascript/mastodon/components/status.js index 4ca392824..238a0d734 100644 --- a/app/javascript/mastodon/components/status.js +++ b/app/javascript/mastodon/components/status.js @@ -338,7 +338,7 @@ class Status extends ImmutablePureComponent { ); } - const matchedFilters = status.get('filtered') || status.getIn(['reblog', 'filtered']); + const matchedFilters = status.get('matched_filters'); if (this.state.forceFilter === undefined ? matchedFilters : this.state.forceFilter) { const minHandlers = this.props.muted ? {} : { moveUp: this.handleHotkeyMoveUp, diff --git a/app/javascript/mastodon/selectors/index.js b/app/javascript/mastodon/selectors/index.js index 6aeb8b7bd..bf1db4bb4 100644 --- a/app/javascript/mastodon/selectors/index.js +++ b/app/javascript/mastodon/selectors/index.js @@ -106,7 +106,7 @@ export const makeGetStatus = () => { return statusBase.withMutations(map => { map.set('reblog', statusReblog); map.set('account', accountBase); - map.set('filtered', filtered); + map.set('matched_filters', filtered); }); }, ); -- cgit From a233a9bfb5f384e89bdaef6e519fa20db2a99ae5 Mon Sep 17 00:00:00 2001 From: Claire Date: Thu, 30 Jun 2022 10:39:29 +0200 Subject: Remove dead code in WebUI filtering code (#18745) --- app/javascript/mastodon/selectors/index.js | 27 +-------------------------- 1 file changed, 1 insertion(+), 26 deletions(-) (limited to 'app/javascript') diff --git a/app/javascript/mastodon/selectors/index.js b/app/javascript/mastodon/selectors/index.js index bf1db4bb4..187e3306d 100644 --- a/app/javascript/mastodon/selectors/index.js +++ b/app/javascript/mastodon/selectors/index.js @@ -1,5 +1,5 @@ import { createSelector } from 'reselect'; -import { List as ImmutableList, Map as ImmutableMap, is } from 'immutable'; +import { List as ImmutableList, Map as ImmutableMap } from 'immutable'; import { me } from '../initial_state'; const getAccountBase = (state, id) => state.getIn(['accounts', id], null); @@ -37,31 +37,6 @@ const toServerSideType = columnType => { } }; -const escapeRegExp = string => - string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string - -const regexFromKeywords = keywords => { - if (keywords.size === 0) { - return null; - } - - return new RegExp(keywords.map(keyword_filter => { - let expr = escapeRegExp(keyword_filter.get('keyword')); - - if (keyword_filter.get('whole_word')) { - if (/^[\w]/.test(expr)) { - expr = `\\b${expr}`; - } - - if (/[\w]$/.test(expr)) { - expr = `${expr}\\b`; - } - } - - return expr; - }).join('|'), 'i'); -}; - const getFilters = (state, { contextType }) => { if (!contextType) return null; -- cgit