var App = React.createClass({
  getInitialState: function() {
    // For now, routes are in format ?page or ?page=args
    var match, param, val;
    [match, param, val] = window.location.search.match(/\??([^=]*)(?:=(.*))?/);

    if (['settings', 'help', 'start', 'watch', 'report', 'files', 'claim', 'show', 'wallet'].indexOf(param) != -1) {
      var viewingPage = param;
    } else {
      var viewingPage = 'home';
    }

    return {
      viewingPage: viewingPage,
      pageArgs: val,
    };
  },
  componentWillMount: function() {
    lbry.checkNewVersionAvailable(function(isAvailable) {
      if (!isAvailable) {
        return;
      }

      var message = 'The version of LBRY you\'re using is not up to date.\n\n' +
                    'Would you like to visit lbry.io now to get the latest version?';

      lbry.getVersionInfo(function(versionInfo) {
        var maj, min, patch;
        [maj, min, patch] = versionInfo.lbrynet_version.split('.');

        if (versionInfo.os_system == 'Darwin' && maj == 0 && min <= 2 && patch <= 2) {
          // On OS X with version <= 0.2.2, we need to notify user to close manually close LBRY
          message += '\n\nBefore installing the new version, make sure to exit LBRY, if you started the app ' +
                     'click that LBRY icon in your status bar and choose "Quit."';
        }

        if (window.confirm(message)) {
          lbry.stop();
          window.location = 'https://github.com/lbryio/lbry/releases';
        };
      });
    });
  },
  render: function() {
    if (this.state.viewingPage == 'home') {
      return <HomePage />;
    } else if (this.state.viewingPage == 'settings') {
      return <SettingsPage />;
    } else if (this.state.viewingPage == 'help') {
      return <HelpPage />;
    } else if (this.state.viewingPage == 'watch') {
      return <WatchPage name={this.state.pageArgs}/>;
    } else if (this.state.viewingPage == 'report') {
      return <ReportPage />;
    } else if (this.state.viewingPage == 'files') {
      return <MyFilesPage />;
    } else if (this.state.viewingPage == 'start') {
      return <StartPage />;
    } else if (this.state.viewingPage == 'claim') {
      return <ClaimCodePage />;
    } else if (this.state.viewingPage == 'wallet') {
      return <WalletPage />;
    } else if (this.state.viewingPage == 'show') {
      return <DetailPage name={this.state.pageArgs}/>;
    } else if (this.state.viewingPage == 'wallet') {
      return <WalletPage />;
    }
  }
});

@@ -748,50 +748,31 @@
    '
-Would you like to visit lbry.io now to get
+Choose %22OK%22 to download
  the
@@ -786,17 +786,18 @@
  version
-?
+.%22
 ';%0A%0A    
@@ -838,24 +838,134 @@
 sionInfo) %7B%0A
+        if (versionInfo.os_system == 'Darwin') %7B%0A          var updateUrl = 'https://lbry.io/get/lbry.dmg';%0A%0A  
         var 
@@ -981,16 +981,18 @@
  patch;%0A
+  
         
@@ -1051,17 +1051,18 @@
 t('.');%0A
-%0A
+  
         
@@ -1069,45 +1069,8 @@
 if (
-versionInfo.os_system == 'Darwin' && 
 maj 
@@ -1099,24 +1099,26 @@
 tch %3C= 2) %7B%0A
+  
           //
@@ -1211,16 +1211,18 @@
         
+  
 message 
@@ -1336,16 +1336,18 @@
         
+  
 'click t
@@ -1400,16 +1400,103 @@
 uit.%22';%0A
+          %7D%0A        %7D else %7B%0A          var updateUrl = 'https://lbry.io/get/lbry.deb';%0A
         
@@ -1592,49 +1592,17 @@
 n = 
-'https://github.com/lbryio/lbry/releases'
+updateUrl
 ;%0A  

Make update redirect go directly to dmg or deb