[Glitch] Fallback to previous, more approximative hashtag RE on older browsers
Signed-off-by: Thibaut Girka <thib@sitedethib.com>pull/1397/head
parent
13501f7393
commit
a3806ec6ba
|
@ -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']),
|
||||||
|
|
Loading…
Reference in New Issue