From 05ae9b46dded61ec29673ab7893ff568b55f0716 Mon Sep 17 00:00:00 2001
From: Paul Kaplan <pkaplan@media.mit.edu>
Date: Wed, 18 Jul 2018 10:37:06 -0400
Subject: [PATCH] Add per-extension help link and wire up help button

---
 src/containers/blocks.jsx              | 4 +++-
 src/containers/connection-modal.jsx    | 6 ++++--
 src/lib/libraries/extensions/index.jsx | 6 ++++--
 3 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/src/containers/blocks.jsx b/src/containers/blocks.jsx
index 243dc1ea4..56f2fa5d5 100644
--- a/src/containers/blocks.jsx
+++ b/src/containers/blocks.jsx
@@ -356,7 +356,8 @@ class Blocks extends React.Component {
                 deviceImage: extension.deviceImage,
                 smallDeviceImage: extension.smallDeviceImage,
                 name: extension.name,
-                connectingMessage: extension.connectingMessage
+                connectingMessage: extension.connectingMessage,
+                helpLink: extension.helpLink
             }});
         }
     }
@@ -423,6 +424,7 @@ class Blocks extends React.Component {
                         connectingMessage={this.state.connectionModal.connectingMessage}
                         deviceImage={this.state.connectionModal.deviceImage}
                         extensionId={this.state.connectionModal.extensionId}
+                        helpLink={this.state.connectionModal.helpLink}
                         name={this.state.connectionModal.name}
                         smallDeviceImage={this.state.connectionModal.smallDeviceImage}
                         vm={vm}
diff --git a/src/containers/connection-modal.jsx b/src/containers/connection-modal.jsx
index 4a285b1db..50862fbd2 100644
--- a/src/containers/connection-modal.jsx
+++ b/src/containers/connection-modal.jsx
@@ -12,7 +12,8 @@ class ConnectionModal extends React.Component {
             'handleConnected',
             'handleConnecting',
             'handleDisconnect',
-            'handleError'
+            'handleError',
+            'handleHelp'
         ]);
         this.state = {
             phase: PHASES.scanning
@@ -76,7 +77,7 @@ class ConnectionModal extends React.Component {
         });
     }
     handleHelp () {
-        // @todo: implement the help button
+        window.open(this.props.helpLink, '_blank');
     }
     render () {
         return (
@@ -104,6 +105,7 @@ ConnectionModal.propTypes = {
     connectingMessage: PropTypes.node.isRequired,
     deviceImage: PropTypes.string.isRequired,
     extensionId: PropTypes.string.isRequired,
+    helpLink: PropTypes.string.isRequired,
     name: PropTypes.node.isRequired,
     onCancel: PropTypes.func.isRequired,
     onStatusButtonUpdate: PropTypes.func.isRequired,
diff --git a/src/lib/libraries/extensions/index.jsx b/src/lib/libraries/extensions/index.jsx
index f81f9e46f..a45f35dcd 100644
--- a/src/lib/libraries/extensions/index.jsx
+++ b/src/lib/libraries/extensions/index.jsx
@@ -136,7 +136,8 @@ export default [
                 description="Message to help people connect to their micro:bit."
                 id="gui.extension.microbit.connectingMessage"
             />
-        )
+        ),
+        helpLink: 'https://scratch.mit.edu/microbit'
     },
     {
         name: 'LEGO WeDo 2.0',
@@ -174,7 +175,8 @@ export default [
                 description="Message to help people connect to their EV3. Must note the PIN should be 1234."
                 id="gui.extension.ev3.connectingMessage"
             />
-        )
+        ),
+        helpLink: 'https://scratch.mit.edu/ev3'
     },
     {
         name: 'LEGO Boost',
-- 
GitLab