|
|
|
@ -17,39 +17,9 @@ interface ChatItemMessageProps extends IMessage {
@@ -17,39 +17,9 @@ interface ChatItemMessageProps extends IMessage {
|
|
|
|
|
|
|
|
|
|
const regexToMatch = /@\[([^[]*)]\(([^(^)]*)\)/g; |
|
|
|
|
|
|
|
|
|
// interface IMentionData {
|
|
|
|
|
// id: number;
|
|
|
|
|
// name: string;
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// const parseMentions = (message: string) => {
|
|
|
|
|
// if (message.charAt(0) === "@") message = " " + message;
|
|
|
|
|
|
|
|
|
|
// const array = message.split(" @");
|
|
|
|
|
|
|
|
|
|
// let returnArr: IMentionData[] = [];
|
|
|
|
|
|
|
|
|
|
// for (const item of array) {
|
|
|
|
|
// if (!_.isEmpty(item)) {
|
|
|
|
|
// const name = item.substring(
|
|
|
|
|
// item.lastIndexOf("[") + 1,
|
|
|
|
|
// item.lastIndexOf("]")
|
|
|
|
|
// );
|
|
|
|
|
|
|
|
|
|
// const id = item.substring(
|
|
|
|
|
// item.lastIndexOf("(") + 1,
|
|
|
|
|
// item.lastIndexOf(")")
|
|
|
|
|
// );
|
|
|
|
|
|
|
|
|
|
// returnArr = [...returnArr, { name: name, id: Number(id) }];
|
|
|
|
|
// }
|
|
|
|
|
// returnArr = [...returnArr, { name: "", id: 0 }];
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
// return returnArr;
|
|
|
|
|
// };
|
|
|
|
|
|
|
|
|
|
const parseMessage = (message: string, regex: RegExp): string => { |
|
|
|
|
if (!message) return '' |
|
|
|
|
const subst = ` @$1($2) `; |
|
|
|
|
const result = message.replace(regex, subst); |
|
|
|
|
return result.replace(/\n{3,}\s*/g, "\n\n"); |
|
|
|
@ -69,6 +39,8 @@ const findMentionId = (user: string): number => {
@@ -69,6 +39,8 @@ const findMentionId = (user: string): number => {
|
|
|
|
|
const _ChatItemMessage: FC<ChatItemMessageProps> = (props) => { |
|
|
|
|
const resultMessage = parseMessage(props.content?.message, regexToMatch); |
|
|
|
|
|
|
|
|
|
if (!resultMessage) return null |
|
|
|
|
|
|
|
|
|
return ( |
|
|
|
|
<ChatItem {...props}> |
|
|
|
|
<div className="chat-item-message-container"> |
|
|
|
|