diff --git a/packages/desktop/package.json b/packages/desktop/package.json
index 4daab63..29ebdb9 100644
--- a/packages/desktop/package.json
+++ b/packages/desktop/package.json
@@ -109,6 +109,7 @@
"mongodb": "^4.4.1",
"react": "^17.0.2",
"react-dom": "^17.0.2",
+ "react-hotkeys": "^2.0.0",
"react-icons": "^4.3.1",
"react-query": "^3.34.16",
"recoil": "^0.6.1"
diff --git a/packages/desktop/src/pages/Home/selectedConversation/index.tsx b/packages/desktop/src/pages/Home/selectedConversation/index.tsx
index 2b6f733..38d4f1a 100644
--- a/packages/desktop/src/pages/Home/selectedConversation/index.tsx
+++ b/packages/desktop/src/pages/Home/selectedConversation/index.tsx
@@ -9,6 +9,7 @@ import {
import { $selectedConversation } from "../../../controller/recoil";
import { Dimensions } from "../../../electron/constants";
import { FaWindowClose } from "react-icons/fa";
+import { GlobalHotKeys } from "react-hotkeys";
import { RelationshipState } from "@nirvana/core/models/relationship.model";
import UpdateRelationshipStateRequest from "@nirvana/core/requests/updateRelationshipState.request";
import moment from "moment";
@@ -124,34 +125,48 @@ export default function SelectedConversation() {
}
};
+ // hot keys for closing this window
+ const handleClose = () => {
+ setSelectedConvo(null);
+ };
+ const keyMap = { CLOSE_SELECTED_CONVO: "esc" };
+ const handlers = { CLOSE_SELECTED_CONVO: handleClose };
+
return (
-
- {/* close marker */}
-
+ <>
+
- {/* top header/profile information */}
-
-
+ {/* close marker */}
+
-
-
-
- {convoDetailsResponse.contactUser.name}
-
-
- {convoDetailsResponse.contactUser.status}
+
+ {/* top header/profile information */}
+
+
+
+
+
+ {convoDetailsResponse.contactUser.name}
+
+
+ {convoDetailsResponse.contactUser.status}
+
+
+ {`joined ${moment(
+ convoDetailsResponse.contactUser.createdDate
+ ).fromNow()}`}
-
- {`joined ${moment(
- convoDetailsResponse.contactUser.createdDate
- ).fromNow()}`}
-
- {renderMainContent()}
-
+ {renderMainContent()}
+
+ >
);
}
diff --git a/yarn.lock b/yarn.lock
index f1d4395..598d010 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -6113,7 +6113,7 @@ promise-retry@^2.0.1:
err-code "^2.0.2"
retry "^0.12.0"
-prop-types@^15.6.2, prop-types@^15.7.2:
+prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2:
version "15.8.1"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
@@ -6603,6 +6603,13 @@ react-dom@^17.0.2:
object-assign "^4.1.1"
scheduler "^0.20.2"
+react-hotkeys@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/react-hotkeys/-/react-hotkeys-2.0.0.tgz#a7719c7340cbba888b0e9184f806a9ec0ac2c53f"
+ integrity sha512-3n3OU8vLX/pfcJrR3xJ1zlww6KS1kEJt0Whxc4FiGV+MJrQ1mYSYI3qS/11d2MJDFm8IhOXMTFQirfu6AVOF6Q==
+ dependencies:
+ prop-types "^15.6.1"
+
react-icons@^4.3.1:
version "4.3.1"
resolved "https://registry.yarnpkg.com/react-icons/-/react-icons-4.3.1.tgz#2fa92aebbbc71f43d2db2ed1aed07361124e91ca"