[Glitch] Fallback to previous, more approximative hashtag RE on older browsers

Signed-off-by: Thibaut Girka <thib@sitedethib.com>
pull/1397/head
Thibaut Girka 2020-08-04 21:22:05 +02:00 committed by ThibG
parent 13501f7393
commit a3806ec6ba
1 changed files with 24 additions and 16 deletions

View File

@ -6,22 +6,30 @@ import { FormattedMessage } from 'react-intl';
import { me } from 'flavours/glitch/util/initial_state'; import { me } from 'flavours/glitch/util/initial_state';
import { profileLink, termsLink } from 'flavours/glitch/util/backend_links'; import { profileLink, termsLink } from 'flavours/glitch/util/backend_links';
const HASHTAG_SEPARATORS = "_\\u00b7\\u200c"; const buildHashtagRE = () => {
const ALPHA = '\\p{L}\\p{M}'; try {
const WORD = '\\p{L}\\p{M}\\p{N}\\p{Pc}'; const HASHTAG_SEPARATORS = "_\\u00b7\\u200c";
const APPROX_HASHTAG_RE = new RegExp( const ALPHA = '\\p{L}\\p{M}';
'(?:^|[^\\/\\)\\w])#((' + const WORD = '\\p{L}\\p{M}\\p{N}\\p{Pc}';
'[' + WORD + '_]' + return new RegExp(
'[' + WORD + HASHTAG_SEPARATORS + ']*' + '(?:^|[^\\/\\)\\w])#((' +
'[' + ALPHA + HASHTAG_SEPARATORS + ']' + '[' + WORD + '_]' +
'[' + WORD + HASHTAG_SEPARATORS +']*' + '[' + WORD + HASHTAG_SEPARATORS + ']*' +
'[' + WORD + '_]' + '[' + ALPHA + HASHTAG_SEPARATORS + ']' +
')|(' + '[' + WORD + HASHTAG_SEPARATORS +']*' +
'[' + WORD + '_]*' + '[' + WORD + '_]' +
'[' + ALPHA + ']' + ')|(' +
'[' + WORD + '_]*' + '[' + WORD + '_]*' +
'))', 'iu' '[' + ALPHA + ']' +
); '[' + WORD + '_]*' +
'))', 'iu'
);
} catch {
return /(?:^|[^\/\)\w])#(\w*[a-zA-Z·]\w*)/i;
}
};
const APPROX_HASHTAG_RE = buildHashtagRE();
const mapStateToProps = state => ({ const mapStateToProps = state => ({
needsLockWarning: state.getIn(['compose', 'privacy']) === 'private' && !state.getIn(['accounts', me, 'locked']), needsLockWarning: state.getIn(['compose', 'privacy']) === 'private' && !state.getIn(['accounts', me, 'locked']),