PLT-1752/PLT-3567/PLT-3998 Highlighting links in search, unit tests for autolinking (#3865)
* Added highlighting to links when their URL includes the search term * Decoupling UserStore from react-router to allow for unit tests involving it * PLT-3998 Added SiteURL as an option to be passed into the text formatting code * Removed reference to PreferenceStore and window from TextFormatting * Refactored TextFormatting to remove remaining browser-only code * Updated ChannelHeader and MessageWrapper to match the changes to TextFormatting * Increased max listeners for Preference and Emoji stores * PLT-3832 Added automated unit tests for autolinking * PLT-3567 Rerender posts when mention keywords change * Updated RHS and search to match the changes to TextFormatting * Broke TextFormatting's dependency on the UserStore
Этот коммит содержится в:
коммит произвёл
Christopher Speller
родитель
55342e8fe1
Коммит
167dd22eef
@@ -1344,3 +1344,27 @@ export function isValidPassword(password) {
|
||||
export function getSiteURL() {
|
||||
return global.mm_config.SiteURL || window.location.origin;
|
||||
}
|
||||
|
||||
export function handleFormattedTextClick(e) {
|
||||
const mentionAttribute = e.target.getAttributeNode('data-mention');
|
||||
const hashtagAttribute = e.target.getAttributeNode('data-hashtag');
|
||||
const linkAttribute = e.target.getAttributeNode('data-link');
|
||||
|
||||
if (mentionAttribute) {
|
||||
e.preventDefault();
|
||||
|
||||
searchForTerm(mentionAttribute.value);
|
||||
} else if (hashtagAttribute) {
|
||||
e.preventDefault();
|
||||
|
||||
searchForTerm(hashtagAttribute.value);
|
||||
} else if (linkAttribute) {
|
||||
const MIDDLE_MOUSE_BUTTON = 1;
|
||||
|
||||
if (!(e.button === MIDDLE_MOUSE_BUTTON || e.altKey || e.ctrlKey || e.metaKey || e.shiftKey)) {
|
||||
e.preventDefault();
|
||||
|
||||
browserHistory.push(linkAttribute.value);
|
||||
}
|
||||
}
|
||||
}
|
||||
Ссылка в новой задаче
Block a user