]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-9504 Support ESC key in onboarding tutorial
authorGrégoire Aubert <gregoire.aubert@sonarsource.com>
Mon, 2 Oct 2017 07:19:23 +0000 (09:19 +0200)
committerGrégoire Aubert <gregoire.aubert@sonarsource.com>
Wed, 4 Oct 2017 09:19:53 +0000 (11:19 +0200)
server/sonar-web/src/main/js/apps/tutorials/onboarding/Onboarding.js

index 03dd358299a0e5f9139506e48308fb2f07a5cf6d..f14988a2ddb1866a9f0ba887709dc673bde7b4e5 100644 (file)
@@ -21,6 +21,7 @@
 import React from 'react';
 import PropTypes from 'prop-types';
 import Helmet from 'react-helmet';
+import key from 'keymaster';
 import TokenStep from './TokenStep';
 import OrganizationStep from './OrganizationStep';
 import AnalysisStep from './AnalysisStep';
@@ -71,6 +72,7 @@ export default class Onboarding extends React.PureComponent {
 
   componentDidMount() {
     this.mounted = true;
+    this.attachShortcuts();
     if (!this.props.currentUser.isLoggedIn) {
       handleRequiredAuthentication();
     }
@@ -78,6 +80,19 @@ export default class Onboarding extends React.PureComponent {
 
   componentWillUnmount() {
     this.mounted = false;
+    this.detachShortcuts();
+  }
+
+  attachShortcuts() {
+    key.setScope('onboarding');
+    key('esc', 'onboarding', () => {
+      this.finishOnboarding();
+      return false;
+    });
+  }
+
+  detachShortcuts() {
+    key.deleteScope('onboarding');
   }
 
   finishOnboarding = () => {