fixed bridge reply formatting
authorunknown <ajbura@gmail.com>
Wed, 18 Aug 2021 10:21:57 +0000 (15:51 +0530)
committerunknown <ajbura@gmail.com>
Wed, 18 Aug 2021 10:21:57 +0000 (15:51 +0530)
src/app/molecules/message/Message.jsx
src/app/organisms/channel/ChannelViewContent.jsx
src/app/organisms/channel/common.jsx

index 647b67284abfade646bc1a5a81981923b1b063a9..1b4b3b66f21b2aad47f8224a2cac75da29888e20 100644 (file)
@@ -86,9 +86,7 @@ MessageHeader.propTypes = {
   time: PropTypes.string.isRequired,
 };
 
-function MessageReply({
-  userId, name, color, content,
-}) {
+function MessageReply({ name, color, content }) {
   return (
     <div className="message__reply">
       <Text variant="b2">
@@ -101,7 +99,6 @@ function MessageReply({
 }
 
 MessageReply.propTypes = {
-  userId: PropTypes.string.isRequired,
   name: PropTypes.string.isRequired,
   color: PropTypes.string.isRequired,
   content: PropTypes.string.isRequired,
index fa21897dd77b6532948cfa308ca59df1fb813651..276f55ef5db606bd5295cc0b4a4b2aa688521e77 100644 (file)
@@ -205,13 +205,12 @@ function genMessage(roomId, prevMEvent, mEvent, roomTimeline, viewEvent) {
 
   if (isReply) {
     const parsedContent = parseReply(content);
-
     if (parsedContent !== null) {
-      const username = getUsername(parsedContent.userId);
+      const c = roomTimeline.room.currentState;
+      const ID = parsedContent.userId || c.getUserIdsWithDisplayName(parsedContent.displayName)[0];
       reply = {
-        userId: parsedContent.userId,
-        color: colorMXID(parsedContent.userId),
-        to: username,
+        color: colorMXID(ID || parsedContent.displayName),
+        to: parsedContent.displayName || getUsername(parsedContent.userId),
         content: parsedContent.replyContent,
       };
       content = parsedContent.content;
@@ -284,7 +283,6 @@ function genMessage(roomId, prevMEvent, mEvent, roomTimeline, viewEvent) {
   );
   const userReply = reply === null ? null : (
     <MessageReply
-      userId={reply.userId}
       name={reply.to}
       color={reply.color}
       content={reply.content}
index 183f2d82dcbbc46f7430b15fa3b7ba0c49f35cca..6c275189922e72b4db139e5ffca76d578dfcdd73 100644 (file)
@@ -161,17 +161,20 @@ function getUsersActionJsx(userIds, actionStr) {
 
 function parseReply(rawContent) {
   if (rawContent.indexOf('>') !== 0) return null;
-  let content = rawContent.slice(rawContent.indexOf('@'));
-  const userId = content.slice(0, content.indexOf('>'));
+  let content = rawContent.slice(rawContent.indexOf('<') + 1);
+  const user = content.slice(0, content.indexOf('>'));
 
   content = content.slice(content.indexOf('>') + 2);
   const replyContent = content.slice(0, content.indexOf('\n\n'));
   content = content.slice(content.indexOf('\n\n') + 2);
 
-  if (userId === '') return null;
+  if (user === '') return null;
+
+  const isUserId = user.match(/^@.+:.+/);
 
   return {
-    userId,
+    userId: isUserId ? user : null,
+    displayName: isUserId ? null : user,
     replyContent,
     content,
   };