lbry-desktop/js/app.js

66 lines
2 KiB
JavaScript
Raw Normal View History

2016-04-10 02:00:56 +02:00
var appStyles = {
width: '800px',
marginLeft: 'auto',
marginRight: 'auto',
};
var App = React.createClass({
getInitialState: function() {
2016-04-20 12:28:13 +02:00
var query = window.location.search.slice(1);
if (['settings', 'help', 'start'].indexOf(query) != -1) {
2016-04-20 12:28:13 +02:00
var viewingPage = query;
} else {
var viewingPage = 'home';
2016-04-10 02:00:56 +02:00
}
2016-04-20 12:28:13 +02:00
return {
viewingPage: viewingPage
};
2016-04-10 02:00:56 +02:00
},
componentWillMount: function() {
lbry.checkNewVersionAvailable(function(isAvailable) {
if (isAvailable) {
var message = "The version of LBRY you're using is not up to date.\n\n" +
"You'll now be taken to lbry.io, where you can download 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
2016-04-20 21:25:39 +02:00
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.\"";
} else {
lbry.stop();
}
alert(message);
window.location = "http://www.lbry.io/" + (versionInfo.os_system == 'Darwin' ? 'osx' : 'linux');
});
}
});
},
2016-04-10 02:00:56 +02:00
componentDidMount: function() {
lbry.getStartNotice(function(notice) {
if (notice) {
alert(notice);
}
});
},
render: function() {
if (this.state.viewingPage == 'home') {
2016-04-10 02:03:23 +02:00
var content = <HomePage />;
2016-04-10 02:00:56 +02:00
} else if (this.state.viewingPage == 'settings') {
2016-04-10 02:03:23 +02:00
var content = <SettingsPage />;
2016-04-20 12:28:13 +02:00
} else if (this.state.viewingPage == 'help') {
var content = <HelpPage />;
} else if (this.state.viewingPage == 'start') {
var content = <StartPage />;
2016-04-10 02:00:56 +02:00
}
return (
<div style={appStyles}>
{content}
</div>
);
}
});