From 867803e7c4afe844ffc291ee9294190f31341287 Mon Sep 17 00:00:00 2001
From: Sean Yesmunt <sean.yesmunt@gmail.com>
Date: Tue, 28 Nov 2017 14:28:34 -0500
Subject: [PATCH 1/7] add start script

---
 package.json | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/package.json b/package.json
index 3c3bc5a0a..0946afe2c 100644
--- a/package.json
+++ b/package.json
@@ -66,6 +66,9 @@
       "perMachine": true
     }
   },
+  "scripts": {
+    "start": "./node_modules/.bin/electron src/main"
+  },
   "devDependencies": {
     "devtron": "^1.4.0",
     "electron": "^1.7.9",
-- 
2.45.3


From c3eaa8c34dea74dc979fa88ec8d3bc6c57a36e50 Mon Sep 17 00:00:00 2001
From: Sean Yesmunt <sean.yesmunt@gmail.com>
Date: Tue, 28 Nov 2017 23:26:07 -0500
Subject: [PATCH 2/7] check users balance before creating channel/publishing

---
 src/renderer/js/component/publishForm/index.js      |  7 ++++++-
 .../publishForm/internal/channelSection.jsx         | 13 ++++++++++++-
 src/renderer/js/component/publishForm/view.jsx      |  9 +++++++++
 3 files changed, 27 insertions(+), 2 deletions(-)

diff --git a/src/renderer/js/component/publishForm/index.js b/src/renderer/js/component/publishForm/index.js
index a55cf9187..df41581d9 100644
--- a/src/renderer/js/component/publishForm/index.js
+++ b/src/renderer/js/component/publishForm/index.js
@@ -1,5 +1,10 @@
 import React from "react";
 import { connect } from "react-redux";
 import PublishForm from "./view";
+import { selectBalance } from "redux/selectors/wallet";
 
-export default connect(null, null)(PublishForm);
+const select = state => ({
+  balance: selectBalance(state),
+});
+
+export default connect(select, null)(PublishForm);
diff --git a/src/renderer/js/component/publishForm/internal/channelSection.jsx b/src/renderer/js/component/publishForm/internal/channelSection.jsx
index 203e90e74..49c560f65 100644
--- a/src/renderer/js/component/publishForm/internal/channelSection.jsx
+++ b/src/renderer/js/component/publishForm/internal/channelSection.jsx
@@ -48,11 +48,22 @@ class ChannelSection extends React.PureComponent {
 
   handleNewChannelBidChange(event) {
     this.setState({
-      newChannelBid: event.target.value,
+      newChannelBid: parseFloat(event.target.value),
     });
   }
 
   handleCreateChannelClick(event) {
+    const { balance } = this.props;
+    const { newChannelBid } = this.state;
+
+    if (newChannelBid > balance) {
+      this.refs.newChannelName.showError(
+        __("Unable to create channel due to insufficient funds.")
+      );
+
+      return;
+    }
+
     this.setState({
       creatingChannel: true,
     });
diff --git a/src/renderer/js/component/publishForm/view.jsx b/src/renderer/js/component/publishForm/view.jsx
index 75ac22d2b..deb16e248 100644
--- a/src/renderer/js/component/publishForm/view.jsx
+++ b/src/renderer/js/component/publishForm/view.jsx
@@ -61,6 +61,15 @@ class PublishForm extends React.PureComponent {
   }
 
   handleSubmit() {
+    const { balance } = this.props;
+    const { bid } = this.state;
+
+    if (bid > balance) {
+      this.handlePublishError({ message: "insufficient funds" });
+
+      return;
+    }
+
     this.setState({
       submitting: true,
     });
-- 
2.45.3


From 25fb5737b9a351672d77681b5bc8042a630d2b25 Mon Sep 17 00:00:00 2001
From: Sean Yesmunt <sean.yesmunt@gmail.com>
Date: Wed, 29 Nov 2017 11:16:11 -0500
Subject: [PATCH 3/7] update deps so no react@16 peer dependencie warnings

---
 src/renderer/package.json |  4 ++--
 src/renderer/yarn.lock    | 48 ++++++++++++---------------------------
 2 files changed, 16 insertions(+), 36 deletions(-)

diff --git a/src/renderer/package.json b/src/renderer/package.json
index 06b7abd69..0525dafd2 100644
--- a/src/renderer/package.json
+++ b/src/renderer/package.json
@@ -30,8 +30,8 @@
     "react": "^16.2.0",
     "react-dom": "^16.2.0",
     "react-markdown": "^2.5.0",
-    "react-modal": "^1.5.2",
-    "react-paginate": "^4.4.3",
+    "react-modal": "^3.1.5",
+    "react-paginate": "^5.0.0",
     "react-redux": "^5.0.3",
     "react-simplemde-editor": "^3.6.11",
     "redux": "^3.6.0",
diff --git a/src/renderer/yarn.lock b/src/renderer/yarn.lock
index 93e81559f..aa1863634 100644
--- a/src/renderer/yarn.lock
+++ b/src/renderer/yarn.lock
@@ -1576,14 +1576,6 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
     safe-buffer "^5.0.1"
     sha.js "^2.4.8"
 
-create-react-class@^15.5.2:
-  version "15.6.2"
-  resolved "https://registry.yarnpkg.com/create-react-class/-/create-react-class-15.6.2.tgz#cf1ed15f12aad7f14ef5f2dfe05e6c42f91ef02a"
-  dependencies:
-    fbjs "^0.8.9"
-    loose-envify "^1.3.1"
-    object-assign "^4.1.1"
-
 cross-spawn@^3.0.0:
   version "3.0.1"
   resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982"
@@ -1930,10 +1922,6 @@ elegant-spinner@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e"
 
-element-class@^0.2.0:
-  version "0.2.2"
-  resolved "https://registry.yarnpkg.com/element-class/-/element-class-0.2.2.tgz#9d3bbd0767f9013ef8e1c8ebe722c1402a60050e"
-
 elliptic@^6.0.0:
   version "6.4.0"
   resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df"
@@ -2312,9 +2300,9 @@ execa@^0.7.0:
     signal-exit "^3.0.0"
     strip-eof "^1.0.0"
 
-exenv@1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.0.tgz#3835f127abf075bfe082d0aed4484057c78e3c89"
+exenv@^1.2.0:
+  version "1.2.2"
+  resolved "https://registry.yarnpkg.com/exenv/-/exenv-1.2.2.tgz#2ae78e85d9894158670b03d47bec1f03bd91bb9d"
 
 exit-hook@^1.0.0:
   version "1.1.1"
@@ -2428,7 +2416,7 @@ fbjs@^0.6.1:
     ua-parser-js "^0.7.9"
     whatwg-fetch "^0.9.0"
 
-fbjs@^0.8.16, fbjs@^0.8.4, fbjs@^0.8.9:
+fbjs@^0.8.16, fbjs@^0.8.4:
   version "0.8.16"
   resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.16.tgz#5e67432f550dc41b572bf55847b8aca64e5337db"
   dependencies:
@@ -4873,7 +4861,7 @@ promise@^7.0.3, promise@^7.1.1:
   dependencies:
     asap "~2.0.3"
 
-prop-types@^15.5.1, prop-types@^15.5.10, prop-types@^15.5.7, prop-types@^15.5.8, prop-types@^15.6.0:
+prop-types@^15.5.1, prop-types@^15.5.10, prop-types@^15.5.8, prop-types@^15.6.0:
   version "15.6.0"
   resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.6.0.tgz#ceaf083022fc46b4a35f69e13ef75aed0d639856"
   dependencies:
@@ -5024,10 +5012,6 @@ react-addons-create-fragment@^15.0.0:
     loose-envify "^1.3.1"
     object-assign "^4.1.0"
 
-react-dom-factories@^1.0.0:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/react-dom-factories/-/react-dom-factories-1.0.2.tgz#eb7705c4db36fb501b3aa38ff759616aa0ff96e0"
-
 react-dom@^16.2.0:
   version "16.2.0"
   resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.2.0.tgz#69003178601c0ca19b709b33a83369fe6124c044"
@@ -5045,23 +5029,19 @@ react-markdown@^2.5.0:
     commonmark-react-renderer "^4.3.4"
     prop-types "^15.5.1"
 
-react-modal@^1.5.2:
-  version "1.9.7"
-  resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-1.9.7.tgz#07ef56790b953e3b98ef1e2989e347983c72871d"
+react-modal@^3.1.5:
+  version "3.1.5"
+  resolved "https://registry.yarnpkg.com/react-modal/-/react-modal-3.1.5.tgz#9cfdb7634b5003148ffb7c8ead13a36f671d744e"
   dependencies:
-    create-react-class "^15.5.2"
-    element-class "^0.2.0"
-    exenv "1.2.0"
-    lodash.assign "^4.2.0"
-    prop-types "^15.5.7"
-    react-dom-factories "^1.0.0"
+    exenv "^1.2.0"
+    prop-types "^15.5.10"
 
-react-paginate@^4.4.3:
-  version "4.4.4"
-  resolved "https://registry.yarnpkg.com/react-paginate/-/react-paginate-4.4.4.tgz#0126110e8b8438b08a2c97b59e8391d72ae0b0f3"
+react-paginate@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/react-paginate/-/react-paginate-5.0.0.tgz#b5c12191ea81adc6d4d1b339b805e81841eaa8ea"
   dependencies:
     classnames "^2.2.5"
-    prop-types "^15.5.7"
+    prop-types "^15.6.0"
     react-addons-create-fragment "^15.0.0"
 
 react-redux@^5.0.3:
-- 
2.45.3


From e70a56c0d2b642bb7ab1cbc58e6a7486b8c04231 Mon Sep 17 00:00:00 2001
From: Sean Yesmunt <sean.yesmunt@gmail.com>
Date: Wed, 29 Nov 2017 14:53:24 -0500
Subject: [PATCH 4/7] fix typo

---
 src/renderer/js/component/form.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/renderer/js/component/form.js b/src/renderer/js/component/form.js
index 15585a39f..f5b4ee173 100644
--- a/src/renderer/js/component/form.js
+++ b/src/renderer/js/component/form.js
@@ -35,7 +35,7 @@ export class Form extends React.PureComponent {
 }
 
 export class FormRow extends React.PureComponent {
-  spropTypes = {
+  propTypes = {
     label: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
     errorMessage: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),
     // helper: PropTypes.html,
-- 
2.45.3


From f86690c81a198e9a9738bf275c8ed7d3d0723f9c Mon Sep 17 00:00:00 2001
From: Sean Yesmunt <sean.yesmunt@gmail.com>
Date: Wed, 29 Nov 2017 20:13:36 -0500
Subject: [PATCH 5/7] need to use static

---
 src/renderer/js/component/form.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/renderer/js/component/form.js b/src/renderer/js/component/form.js
index f5b4ee173..820ae251c 100644
--- a/src/renderer/js/component/form.js
+++ b/src/renderer/js/component/form.js
@@ -35,7 +35,7 @@ export class Form extends React.PureComponent {
 }
 
 export class FormRow extends React.PureComponent {
-  propTypes = {
+  static propTypes = {
     label: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
     errorMessage: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),
     // helper: PropTypes.html,
-- 
2.45.3


From 4ce4da37b916b15e906fcf4cc914d082c689e093 Mon Sep 17 00:00:00 2001
From: Thomas Zarebczan <tzarebczan@users.noreply.github.com>
Date: Wed, 29 Nov 2017 22:04:07 -0500
Subject: [PATCH 6/7] add referral message type

Also fixed many downloads text
---
 src/renderer/js/rewards.js | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/renderer/js/rewards.js b/src/renderer/js/rewards.js
index 2a30be2d3..1482fc1ca 100644
--- a/src/renderer/js/rewards.js
+++ b/src/renderer/js/rewards.js
@@ -22,7 +22,7 @@ function rewardMessage(type, amount) {
       amount
     ),
     many_downloads: __(
-      "You earned %s LBC for downloading some of the things.",
+      "You earned %s LBC for downloading a bunch of things.",
       amount
     ),
     first_publish: __(
@@ -33,6 +33,10 @@ function rewardMessage(type, amount) {
       "You earned %s LBC for watching a featured download.",
       amount
     ),
+     referral: __(
+      "You earned %s LBC for referring someone.",
+      amount
+    ),
   }[type];
 }
 
-- 
2.45.3


From f9018aec60134d272cc161edf842384c5cb1b200 Mon Sep 17 00:00:00 2001
From: Liam Cardenas <me@liamcardenas.com>
Date: Thu, 30 Nov 2017 19:29:22 -0800
Subject: [PATCH 7/7] Added missing file

---
 src/renderer/.flowconfig            | 1 +
 src/renderer/flow-typed/electron.js | 3 +++
 2 files changed, 4 insertions(+)
 create mode 100644 src/renderer/flow-typed/electron.js

diff --git a/src/renderer/.flowconfig b/src/renderer/.flowconfig
index 8d8e22131..18e154135 100644
--- a/src/renderer/.flowconfig
+++ b/src/renderer/.flowconfig
@@ -12,5 +12,6 @@ flow-typed
 suppress_comment=\\(.\\|\n\\)*\\$FlowFixMe
 suppress_comment=\\(.\\|\n\\)*\\$FlowIssue
 module.name_mapper='^constants\(.*\)$' -> '<PROJECT_ROOT>/js/constants\1'
+module.name_mapper='^redux\(.*\)$' -> '<PROJECT_ROOT>/js/redux\1'
 
 [strict]
diff --git a/src/renderer/flow-typed/electron.js b/src/renderer/flow-typed/electron.js
new file mode 100644
index 000000000..4c575c618
--- /dev/null
+++ b/src/renderer/flow-typed/electron.js
@@ -0,0 +1,3 @@
+declare module 'electron' {
+  declare module.exports: any;
+}
-- 
2.45.3