From c0115c9c84aff3fc053e5e5fc56bbd9345f80096 Mon Sep 17 00:00:00 2001
From: Evelyn Eastmond <evhan55@gmail.com>
Date: Fri, 2 Nov 2018 12:01:31 -0400
Subject: [PATCH] Made onReconnect not required, and added showReconnect
 boolean to optionally show reconnect button.

---
 src/components/alerts/alert.jsx  | 28 ++++++++++++++++------------
 src/components/alerts/alerts.jsx |  1 +
 src/containers/alert.jsx         |  7 +++++--
 src/reducers/alerts.js           |  2 ++
 4 files changed, 24 insertions(+), 14 deletions(-)

diff --git a/src/components/alerts/alert.jsx b/src/components/alerts/alert.jsx
index 4831b78f0..2ec848984 100644
--- a/src/components/alerts/alert.jsx
+++ b/src/components/alerts/alert.jsx
@@ -11,7 +11,8 @@ const AlertComponent = ({
     iconURL,
     message,
     onCloseAlert,
-    onReconnect
+    onReconnect,
+    showReconnect
 }) => (
     <Box
         className={styles.alert}
@@ -25,16 +26,18 @@ const AlertComponent = ({
             ) : null}
             {message}
         </div>
-        <button
-            className={styles.connectionButton}
-            onClick={onReconnect}
-        >
-            <FormattedMessage
-                defaultMessage="Reconnect"
-                description="Button to reconnect the device"
-                id="gui.connection.reconnect"
-            />
-        </button>
+        {showReconnect ? (
+            <button
+                className={styles.connectionButton}
+                onClick={onReconnect}
+            >
+                <FormattedMessage
+                    defaultMessage="Reconnect"
+                    description="Button to reconnect the device"
+                    id="gui.connection.reconnect"
+                />
+            </button>
+        ) : null}
         <Box
             className={styles.alertCloseButtonContainer}
         >
@@ -52,7 +55,8 @@ AlertComponent.propTypes = {
     iconURL: PropTypes.string,
     message: PropTypes.string,
     onCloseAlert: PropTypes.func.isRequired,
-    onReconnect: PropTypes.func.isRequired
+    onReconnect: PropTypes.func,
+    showReconnect: PropTypes.bool.isRequired
 };
 
 export default AlertComponent;
diff --git a/src/components/alerts/alerts.jsx b/src/components/alerts/alerts.jsx
index 31d7b22c1..9a87f766c 100644
--- a/src/components/alerts/alerts.jsx
+++ b/src/components/alerts/alerts.jsx
@@ -20,6 +20,7 @@ const AlertsComponent = ({
                 index={index}
                 key={index}
                 message={a.message}
+                showReconnect={a.showReconnect}
                 onCloseAlert={onCloseAlert}
             />
         ))}
diff --git a/src/containers/alert.jsx b/src/containers/alert.jsx
index 3005f478f..62ff58448 100644
--- a/src/containers/alert.jsx
+++ b/src/containers/alert.jsx
@@ -26,12 +26,14 @@ class Alert extends React.Component {
         const {
             index, // eslint-disable-line no-unused-vars
             iconURL,
-            message
+            message,
+            showReconnect
         } = this.props;
         return (
             <AlertComponent
                 iconURL={iconURL}
                 message={message}
+                showReconnect={showReconnect}
                 onCloseAlert={this.handleOnCloseAlert}
                 onReconnect={this.handleOnReconnect}
             />
@@ -56,7 +58,8 @@ Alert.propTypes = {
     index: PropTypes.number,
     message: PropTypes.string,
     onCloseAlert: PropTypes.func.isRequired,
-    onOpenConnectionModal: PropTypes.func
+    onOpenConnectionModal: PropTypes.func,
+    showReconnect: PropTypes.bool.isRequired
 };
 
 export default connect(
diff --git a/src/reducers/alerts.js b/src/reducers/alerts.js
index fc4a2653d..ee5ef0931 100644
--- a/src/reducers/alerts.js
+++ b/src/reducers/alerts.js
@@ -15,12 +15,14 @@ const reducer = function (state, action) {
         const newList = state.alertsList.slice();
         const newAlert = {message: action.data.message};
         const extensionId = action.data.extensionId;
+        newAlert.showReconnect = false;
         if (extensionId) { // if it's an extension
             const extension = extensionData.find(ext => ext.extensionId === extensionId);
             if (extension && extension.name) {
                 // TODO: is this the right place to assemble this message?
                 newAlert.extensionId = extensionId;
                 newAlert.message = `${newAlert.message} ${extension.name}.`;
+                newAlert.showReconnect = true;
             }
             if (extension && extension.smallPeripheralImage) {
                 newAlert.iconURL = extension.smallPeripheralImage;
-- 
GitLab