store upgrade skip in session
This commit is contained in:
parent
98ebf02ca6
commit
640001c597
8 changed files with 71 additions and 95 deletions
|
@ -18,7 +18,8 @@ var App = React.createClass({
|
||||||
},
|
},
|
||||||
componentWillMount: function() {
|
componentWillMount: function() {
|
||||||
lbry.checkNewVersionAvailable(function(isAvailable) {
|
lbry.checkNewVersionAvailable(function(isAvailable) {
|
||||||
if (!isAvailable) {
|
|
||||||
|
if (!isAvailable || sessionStorage.getItem('upgradeSkipped')) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,9 +41,12 @@ var App = React.createClass({
|
||||||
var updateUrl = 'https://lbry.io/get/lbry.deb';
|
var updateUrl = 'https://lbry.io/get/lbry.deb';
|
||||||
}
|
}
|
||||||
|
|
||||||
if (window.confirm(message)) {
|
if (window.confirm(message))
|
||||||
|
{
|
||||||
lbry.stop();
|
lbry.stop();
|
||||||
window.location = updateUrl;
|
window.location = updateUrl;
|
||||||
|
} else {
|
||||||
|
sessionStorage.setItem('upgradeSkipped', true);
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,3 +1,13 @@
|
||||||
|
var DrawerItem = React.createClass({
|
||||||
|
render: function() {
|
||||||
|
return <Link {...this.props} className="drawer-item" />
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
var drawerImageStyle = { //@TODO: remove this, img should be properly scaled once size is settled
|
||||||
|
height: '36px'
|
||||||
|
};
|
||||||
|
|
||||||
var Drawer = React.createClass({
|
var Drawer = React.createClass({
|
||||||
getInitialState: function() {
|
getInitialState: function() {
|
||||||
return {
|
return {
|
||||||
|
@ -16,15 +26,16 @@ var Drawer = React.createClass({
|
||||||
return (
|
return (
|
||||||
<nav id="drawer">
|
<nav id="drawer">
|
||||||
<div id="drawer-handle">
|
<div id="drawer-handle">
|
||||||
<Link title="Close" onClick={this.props.onCloseDrawer} icon="icon-bars" />
|
<Link title="Close" onClick={this.props.onCloseDrawer} icon="icon-bars" className="button-text close-drawer-link"/>
|
||||||
|
<a href="/"><img src="./img/lbry-dark-1600x528.png" style={drawerImageStyle}/></a>
|
||||||
</div>
|
</div>
|
||||||
<Link href='/?home' label="Discover" icon="icon-search" />
|
<DrawerItem href='/?home' label="Discover" icon="icon-search" />
|
||||||
<Link icon="icon-bank" href="/?wallet" label={<CreditAmount amount={this.state.balance}/>} />
|
<DrawerItem href='/?publish' label="Publish" icon="icon-upload" />
|
||||||
<Link href='/?publish' label="Publish" icon="icon-upload" />
|
<DrawerItem href='/?files' label="My Files" icon='icon-cloud-download' />
|
||||||
<Link href='/?files' label="My Files" icon='icon-cloud-download' />
|
<DrawerItem href="/?wallet" label={ lbry.formatCredits(this.state.balance) } icon="icon-bank" />
|
||||||
<Link href='/?settings' label="Settings" icon='icon-gear' />
|
<DrawerItem href='/?settings' label="Settings" icon='icon-gear' />
|
||||||
<Link href='/?help' label="Help" icon='icon-question-circle' />
|
<DrawerItem href='/?help' label="Help" icon='icon-question-circle' />
|
||||||
{isLinux ? <Link href="/?start" label="Exit LBRY" icon="icon-close" /> : null}
|
{isLinux ? <DrawerItem href="/?start" label="Exit LBRY" icon="icon-close" /> : null}
|
||||||
</nav>
|
</nav>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,83 +1,9 @@
|
||||||
var topBarStyle = {
|
|
||||||
'float': 'right',
|
|
||||||
'position': 'absolute',
|
|
||||||
'right': 0,
|
|
||||||
'top': 0
|
|
||||||
},
|
|
||||||
balanceStyle = {
|
|
||||||
'marginRight': '5px',
|
|
||||||
'position': 'relative',
|
|
||||||
'top': '1px',
|
|
||||||
},
|
|
||||||
menuDropdownStyle = {
|
|
||||||
position: 'absolute',
|
|
||||||
top: '26px',
|
|
||||||
right: '0px',
|
|
||||||
};
|
|
||||||
|
|
||||||
var TopBar = React.createClass({
|
|
||||||
getInitialState: function() {
|
|
||||||
return {
|
|
||||||
balance: 0,
|
|
||||||
};
|
|
||||||
},
|
|
||||||
componentDidMount: function() {
|
|
||||||
lbry.getBalance(function(balance) {
|
|
||||||
this.setState({
|
|
||||||
balance: balance
|
|
||||||
});
|
|
||||||
}.bind(this));
|
|
||||||
},
|
|
||||||
onClose: function() {
|
|
||||||
window.location.href = "?start";
|
|
||||||
},
|
|
||||||
render: function() {
|
|
||||||
var isLinux = /linux/i.test(navigator.userAgent); // @TODO: find a way to use getVersionInfo() here without messy state management
|
|
||||||
return (
|
|
||||||
<span className='top-bar' style={topBarStyle}>
|
|
||||||
<Link icon="icon-bank" href="/?wallet" label={<CreditAmount amount={this.state.balance}/>} style={balanceStyle} />
|
|
||||||
<Link href='/?publish' label="Publish" icon="icon-upload" button="text" />
|
|
||||||
<Link ref="menuButton" title="LBRY Menu" icon="icon-bars" />
|
|
||||||
<div style={menuDropdownStyle}>
|
|
||||||
<Menu toggleButton={this.refs.menuButton} >
|
|
||||||
<MenuItem href='/?files' label="My Files" icon='icon-cloud-download' />
|
|
||||||
<MenuItem href='/?settings' label="Settings" icon='icon-gear' />
|
|
||||||
<MenuItem href='/?help' label="Help" icon='icon-question-circle' />
|
|
||||||
{isLinux ? <MenuItem href="/?start" label="Exit LBRY" icon="icon-close" />
|
|
||||||
: null}
|
|
||||||
</Menu>
|
|
||||||
</div>
|
|
||||||
</span>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
var subPageLogoStyle = {
|
|
||||||
maxWidth: '150px',
|
|
||||||
display: 'block',
|
|
||||||
marginTop: '36px',
|
|
||||||
};
|
|
||||||
|
|
||||||
var SubPageLogo = React.createClass({
|
|
||||||
render: function() {
|
|
||||||
return <a href="/"><img src="img/lbry-dark-1600x528.png" style={subPageLogoStyle} /></a>;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
var headerStyle = {
|
|
||||||
padding: '12px 12px 36px',
|
|
||||||
position: 'relative'
|
|
||||||
},
|
|
||||||
headerImageStyle = { //@TODO: remove this, img should be properly scaled once size is settled
|
|
||||||
height: '48px'
|
|
||||||
};
|
|
||||||
|
|
||||||
var Header = React.createClass({
|
var Header = React.createClass({
|
||||||
render: function() {
|
render: function() {
|
||||||
return (
|
return (
|
||||||
<header style={headerStyle}>
|
<header id="header">
|
||||||
|
<h1>{ document.title ? document.title : 'LBRY' }</h1>
|
||||||
<Link onClick={this.props.onOpenDrawer} icon="icon-bars" className="open-drawer-link" />
|
<Link onClick={this.props.onOpenDrawer} icon="icon-bars" className="open-drawer-link" />
|
||||||
<a href="/"><img src="./img/lbry-dark-1600x528.png" style={headerImageStyle}/></a>
|
|
||||||
</header>
|
</header>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,12 +6,14 @@ var Link = React.createClass({
|
||||||
},
|
},
|
||||||
render: function() {
|
render: function() {
|
||||||
var href = this.props.href ? this.props.href : 'javascript:;',
|
var href = this.props.href ? this.props.href : 'javascript:;',
|
||||||
icon = this.props.icon ? <Icon icon={this.props.icon} /> : '',
|
icon = this.props.icon ? <Icon icon={this.props.icon} fixed={true} /> : '',
|
||||||
className = (this.props.button ? 'button-block button-' + this.props.button : 'button-text') +
|
className = (this.props.className ? this.props.className : '') +
|
||||||
(this.props.hidden ? ' hidden' : '') + (this.props.disabled ? ' disabled' : '') + ' ' + this.props.className;
|
(this.props.button ? ' button-block button-' + this.props.button : '') +
|
||||||
|
(this.props.hidden ? ' hidden' : '') +
|
||||||
|
(this.props.disabled ? ' disabled' : '');
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<a className={className} href={href} style={this.props.style ? this.props.style : {}}
|
<a className={className ? className : 'button-text'} href={href} style={this.props.style ? this.props.style : {}}
|
||||||
title={this.props.title} onClick={this.handleClick}>
|
title={this.props.title} onClick={this.handleClick}>
|
||||||
{this.props.icon ? icon : '' }
|
{this.props.icon ? icon : '' }
|
||||||
{this.props.label}
|
{this.props.label}
|
||||||
|
@ -48,13 +50,14 @@ var ToolTipLink = React.createClass({
|
||||||
render: function() {
|
render: function() {
|
||||||
var href = this.props.href ? this.props.href : 'javascript:;',
|
var href = this.props.href ? this.props.href : 'javascript:;',
|
||||||
icon = this.props.icon ? <Icon icon={this.props.icon} /> : '',
|
icon = this.props.icon ? <Icon icon={this.props.icon} /> : '',
|
||||||
className = (this.props.button ? 'button-block button-' + this.props.button : 'button-text') +
|
className = this.props.className +
|
||||||
(this.props.hidden ? ' hidden' : '') + (this.props.disabled ? ' disabled' : '') + ' ' + this.props.className;
|
(this.props.button ? ' button-block button-' + this.props.button : '') +
|
||||||
|
(this.props.hidden ? ' hidden' : '') +
|
||||||
|
(this.props.disabled ? ' disabled' : '');
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<span style={linkContainerStyle}>
|
<span style={linkContainerStyle}>
|
||||||
<a className={className} href={href} style={this.props.style ? this.props.style : {}}
|
<a className={className ? className : 'button-text'} href={href} style={this.props.style ? this.props.style : {}}
|
||||||
title={this.props.title} onClick={this.handleClick}>
|
title={this.props.title} onClick={this.handleClick}>
|
||||||
{this.props.icon ? icon : '' }
|
{this.props.icon ? icon : '' }
|
||||||
{this.props.label}
|
{this.props.label}
|
||||||
|
|
|
@ -335,6 +335,7 @@ var Discover = React.createClass({
|
||||||
|
|
||||||
var HomePage = React.createClass({
|
var HomePage = React.createClass({
|
||||||
componentDidMount: function() {
|
componentDidMount: function() {
|
||||||
|
document.title = "Discover";
|
||||||
lbry.getStartNotice(function(notice) {
|
lbry.getStartNotice(function(notice) {
|
||||||
if (notice) {
|
if (notice) {
|
||||||
alert(notice);
|
alert(notice);
|
||||||
|
|
|
@ -58,6 +58,9 @@ var SettingsPage = React.createClass({
|
||||||
settings: null
|
settings: null
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
componentDidMount: function() {
|
||||||
|
document.title = "Settings";
|
||||||
|
},
|
||||||
componentWillMount: function() {
|
componentWillMount: function() {
|
||||||
lbry.getSettings(function(settings) {
|
lbry.getSettings(function(settings) {
|
||||||
this.setState({
|
this.setState({
|
||||||
|
|
|
@ -25,10 +25,21 @@ body
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
left: 0;
|
left: 0;
|
||||||
top: 0;
|
top: 0;
|
||||||
.button-text
|
.drawer-item
|
||||||
{
|
{
|
||||||
display: block;
|
display: block;
|
||||||
|
padding: $spacing-vertical / 2;
|
||||||
|
font-size: 1.2em;
|
||||||
|
.icon
|
||||||
|
{
|
||||||
|
margin-right: 6px;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#drawer-handle
|
||||||
|
{
|
||||||
|
padding: $spacing-vertical / 2;
|
||||||
|
max-height: $header-height;
|
||||||
}
|
}
|
||||||
|
|
||||||
#window.drawer-closed
|
#window.drawer-closed
|
||||||
|
@ -41,6 +52,21 @@ body
|
||||||
.open-drawer-link { display: none; }
|
.open-drawer-link { display: none; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#header
|
||||||
|
{
|
||||||
|
background: $color-primary;
|
||||||
|
color: white;
|
||||||
|
height: $header-height;
|
||||||
|
padding: $spacing-vertical / 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.open-drawer-link, .close-drawer-link
|
||||||
|
{
|
||||||
|
display: inline-block;
|
||||||
|
font-size: 1.5em;
|
||||||
|
padding: 0 18px 0 6px;
|
||||||
|
}
|
||||||
|
|
||||||
.page {
|
.page {
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
margin-right: auto;
|
margin-right: auto;
|
||||||
|
|
|
@ -15,6 +15,8 @@ $mobile-width-threshold: 801px;
|
||||||
$max-content-width: 1000px;
|
$max-content-width: 1000px;
|
||||||
$max-text-width: 660px;
|
$max-text-width: 660px;
|
||||||
|
|
||||||
|
$header-height: $spacing-vertical * 1.5;
|
||||||
|
|
||||||
|
|
||||||
@mixin clearfix()
|
@mixin clearfix()
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue