From d54cea54298041379738367ae2996de8643c3368 Mon Sep 17 00:00:00 2001
From: Michael Telatynski <7t3chguy@gmail.com>
Date: Sat, 7 Oct 2017 19:25:13 +0100
Subject: [PATCH 1/2] Add a way to jump to a user's Read Receipt from
 MemberInfo
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---
 src/components/views/rooms/MemberInfo.js | 35 +++++++++++++++++++++---
 1 file changed, 31 insertions(+), 4 deletions(-)
diff --git a/src/components/views/rooms/MemberInfo.js b/src/components/views/rooms/MemberInfo.js
index f705cf97d2..83f4f7e4c6 100644
--- a/src/components/views/rooms/MemberInfo.js
+++ b/src/components/views/rooms/MemberInfo.js
@@ -628,23 +628,50 @@ module.exports = withMatrixClient(React.createClass({
     },
 
     _renderUserOptions: function() {
-        // Only allow the user to ignore the user if its not ourselves
+        const cli = this.props.matrixClient;
+        const member = this.props.member;
+
         let ignoreButton = null;
-        if (this.props.member.userId !== this.props.matrixClient.getUserId()) {
+        let readReceiptButton = null;
+
+        // Only allow the user to ignore the user if its not ourselves
+        // same goes for jumping to read receipt
+        if (member.userId !== cli.getUserId()) {
             ignoreButton = (
                 
                     {this.state.isIgnoring ? _t("Unignore") : _t("Ignore")}
                 
             );
+
+            if (member.roomId) {
+                const room = cli.getRoom(member.roomId);
+                const eventId = room.getEventReadUpTo(member.userId);
+
+                const onReadReceiptButton = function() {
+                    dis.dispatch({
+                        action: 'view_room',
+                        highlighted: true,
+                        event_id: eventId,
+                        room_id: member.roomId,
+                    });
+                };
+
+                readReceiptButton = (
+                    
+                        Jump to read receipt
+                    
+                );
+            }
         }
 
-        if (!ignoreButton) return null;
+        if (!ignoreButton && !readReceiptButton) return null;
 
         return (
             
                 { _t("User Options") }
                 
-                    {ignoreButton}
+                    { readReceiptButton }
+                    { ignoreButton }
                 
              
         );
From dbb6f5a44d2cdc4b0531c245fcd0b5fa1575d11a Mon Sep 17 00:00:00 2001
From: Michael Telatynski <7t3chguy@gmail.com>
Date: Sat, 7 Oct 2017 19:27:49 +0100
Subject: [PATCH 2/2] i18n the Jump to Read Receipt in MemberInfo
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
---
 src/components/views/rooms/MemberInfo.js | 4 ++--
 src/i18n/strings/en_EN.json              | 1 +
 2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/components/views/rooms/MemberInfo.js b/src/components/views/rooms/MemberInfo.js
index 83f4f7e4c6..5dfdeb303b 100644
--- a/src/components/views/rooms/MemberInfo.js
+++ b/src/components/views/rooms/MemberInfo.js
@@ -639,7 +639,7 @@ module.exports = withMatrixClient(React.createClass({
         if (member.userId !== cli.getUserId()) {
             ignoreButton = (
                 
-                    {this.state.isIgnoring ? _t("Unignore") : _t("Ignore")}
+                    { this.state.isIgnoring ? _t("Unignore") : _t("Ignore") }
                 
             );
 
@@ -658,7 +658,7 @@ module.exports = withMatrixClient(React.createClass({
 
                 readReceiptButton = (
                     
-                        Jump to read receipt
+                        { _t('Jump to read receipt') }
                     
                 );
             }
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index 6acaba9fae..5ebf6116ee 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -249,6 +249,7 @@
     "%(targetName)s joined the room.": "%(targetName)s joined the room.",
     "Joins room with given alias": "Joins room with given alias",
     "Jump to first unread message.": "Jump to first unread message.",
+    "Jump to read receipt": "Jump to read receipt",
     "%(senderName)s kicked %(targetName)s.": "%(senderName)s kicked %(targetName)s.",
     "Kick": "Kick",
     "Kicks user with given id": "Kicks user with given id",