Merge pull request #4273 from Ben0it-T/user-mentions

Fix user mentions
This commit is contained in:
Lauri Ojansivu 2022-01-03 07:52:02 +00:00 committed by GitHub
commit 65b7d3d50d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 20 additions and 11 deletions

View file

@ -336,7 +336,7 @@ BlazeComponent.extendComponent({
[
// User mentions
{
match: /\B@([\w.]*)$/,
match: /\B@([\w.-]*)$/,
search(term, callback) {
const currentBoard = Boards.findOne(Session.get('currentBoard'));
callback(
@ -347,6 +347,9 @@ BlazeComponent.extendComponent({
);
},
template(user) {
if (user.profile && user.profile.fullname) {
return (user.username + " (" + user.profile.fullname + ")");
}
return user.username;
},
replace(user) {

View file

@ -11,7 +11,7 @@ BlazeComponent.extendComponent({
const mentions = [
// User mentions
{
match: /\B@([\w.]*)$/,
match: /\B@([\w.-]*)$/,
search(term, callback) {
const currentBoard = Boards.findOne(Session.get('currentBoard'));
callback(
@ -21,17 +21,23 @@ BlazeComponent.extendComponent({
.map(member => {
const user = Users.findOne(member.userId);
const username = user.username;
const fullName = user.profile && user.profile !== undefined ? user.profile.fullname : "";
return username.includes(term) || fullName.includes(term) ? fullName + "(" + username + ")" : null;
const fullName = user.profile && user.profile !== undefined && user.profile.fullname ? user.profile.fullname : "";
return username.includes(term) || fullName.includes(term) ? user : null;
})
.filter(Boolean), [...specialHandleNames])
.filter(Boolean), [...specialHandles])
);
},
template(value) {
return value;
template(user) {
if (user.profile && user.profile.fullname) {
return (user.profile.fullname + " (" + user.username + ")");
}
return user.username;
},
replace(username) {
return `@${username} `;
replace(user) {
if (user.profile && user.profile.fullname) {
return `@${user.username} (${user.profile.fullname}) `;
}
return `@${user.username} `;
},
index: 1,
},
@ -355,7 +361,7 @@ Blaze.Template.registerHelper(
}
return member;
}), [...specialHandles]);
const mentionRegex = /\B@([\w.]*)/gi;
const mentionRegex = /\B@([\w.-]*)/gi;
let currentMention;
while ((currentMention = mentionRegex.exec(content)) !== null) {

View file

@ -202,7 +202,7 @@ if (Meteor.isServer) {
}
return member;
});
const mentionRegex = /\B@(?:(?:"([\w.\s]*)")|([\w.]+))/gi; // including space in username
const mentionRegex = /\B@(?:(?:"([\w.\s-]*)")|([\w.-]+))/gi; // including space in username
let currentMention;
while ((currentMention = mentionRegex.exec(comment)) !== null) {
/*eslint no-unused-vars: ["error", { "varsIgnorePattern": "[iI]gnored" }]*/