Merge branch 'master' into css_patch
This commit is contained in:
commit
b66968d9f9
11 changed files with 40 additions and 49 deletions
|
@ -1,5 +1,5 @@
|
||||||
[bumpversion]
|
[bumpversion]
|
||||||
current_version = 0.16.0
|
current_version = 0.16.1rc1
|
||||||
commit = True
|
commit = True
|
||||||
tag = True
|
tag = True
|
||||||
parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)((?P<release>[a-z]+)(?P<candidate>\d+))?
|
parse = (?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)((?P<release>[a-z]+)(?P<candidate>\d+))?
|
||||||
|
|
13
CHANGELOG.md
13
CHANGELOG.md
|
@ -9,16 +9,17 @@ Web UI version numbers should always match the corresponding version of LBRY App
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
### Added
|
### Added
|
||||||
* Add setting to automatically purchase low-cost content without a confirmation dialog
|
* Add setting to automatically purchase low-cost content without a confirmation dialog
|
||||||
* New custom styled scrollbar [#574](https://github.com/lbryio/lbry-app/pull/574)
|
* New custom styled scrollbar (#574)
|
||||||
*
|
*
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
* Updated the daemon from 0.16.1 to [0.16.3](https://github.com/lbryio/lbry/releases/tag/v0.16.3) to improve download performance and download issue detection.
|
* Updated the daemon from 0.16.1 to [0.16.3](https://github.com/lbryio/lbry/releases/tag/v0.16.3) to improve download performance and download issue detection.
|
||||||
* Changed the File page to make it clearer how to to open the folder for a file.
|
* Changed the File page to make it clearer how to to open the folder for a file.
|
||||||
* Improved tabs styles with a nice animation. [#547](https://github.com/lbryio/lbry-app/pull/576)
|
* Improved tabs styles with a nice animation. (#547)
|
||||||
* Display search bar on discover page instead of title and remove duplicated icon.
|
* Display search bar on discover page instead of title and remove duplicated icon.
|
||||||
* Minor update for themes.
|
* Minor update for themes.
|
||||||
*
|
* There is no longer a minimum channel length (#645)
|
||||||
|
* Changed the File page to make it clearer how to to open the folder for a file
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
* Improve layout (and implementation) of the icon panel in file tiles and cards
|
* Improve layout (and implementation) of the icon panel in file tiles and cards
|
||||||
|
@ -26,10 +27,12 @@ Web UI version numbers should always match the corresponding version of LBRY App
|
||||||
* While editing a publish, the URL will no longer change if you select a new file. (#601)
|
* While editing a publish, the URL will no longer change if you select a new file. (#601)
|
||||||
* Fixed issues with opening the folder for a file (#606)
|
* Fixed issues with opening the folder for a file (#606)
|
||||||
* Be consistent with the step property on credit inputs (#604)
|
* Be consistent with the step property on credit inputs (#604)
|
||||||
* Fixed unresponsive header [#613](https://github.com/lbryio/lbry-app/issues/613)
|
* Fixed unresponsive header (#613)
|
||||||
* Fixed dark theme issues with text content.
|
* Fixed dark theme issues with text content.
|
||||||
* Minor css fixes.
|
* Minor css fixes.
|
||||||
*
|
* Fixed issue when file fails to download (#642)
|
||||||
|
* Fixed issue after accessing a video without enough credits (#605)
|
||||||
|
* Fixed channel fetching without claims (#634)
|
||||||
|
|
||||||
### Deprecated
|
### Deprecated
|
||||||
*
|
*
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "LBRY",
|
"name": "LBRY",
|
||||||
"version": "0.16.0",
|
"version": "0.16.1rc1",
|
||||||
"main": "main.js",
|
"main": "main.js",
|
||||||
"description": "A browser for the LBRY network, a digital marketplace controlled by its users.",
|
"description": "A browser for the LBRY network, a digital marketplace controlled by its users.",
|
||||||
"author": {
|
"author": {
|
||||||
|
|
|
@ -295,6 +295,7 @@ export function doLoadVideo(uri) {
|
||||||
streamInfo.error == "Timeout";
|
streamInfo.error == "Timeout";
|
||||||
|
|
||||||
if (timeout) {
|
if (timeout) {
|
||||||
|
dispatch(doSetPlayingUri(null));
|
||||||
dispatch({
|
dispatch({
|
||||||
type: types.LOADING_VIDEO_FAILED,
|
type: types.LOADING_VIDEO_FAILED,
|
||||||
data: { uri },
|
data: { uri },
|
||||||
|
@ -306,6 +307,7 @@ export function doLoadVideo(uri) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
|
dispatch(doSetPlayingUri(null));
|
||||||
dispatch({
|
dispatch({
|
||||||
type: types.LOADING_VIDEO_FAILED,
|
type: types.LOADING_VIDEO_FAILED,
|
||||||
data: { uri },
|
data: { uri },
|
||||||
|
@ -351,6 +353,7 @@ export function doPurchaseUri(uri) {
|
||||||
const { cost } = costInfo;
|
const { cost } = costInfo;
|
||||||
|
|
||||||
if (cost > balance) {
|
if (cost > balance) {
|
||||||
|
dispatch(doSetPlayingUri(null));
|
||||||
dispatch(doOpenModal(modals.INSUFFICIENT_CREDITS));
|
dispatch(doOpenModal(modals.INSUFFICIENT_CREDITS));
|
||||||
return Promise.resolve();
|
return Promise.resolve();
|
||||||
}
|
}
|
||||||
|
@ -384,16 +387,15 @@ export function doFetchClaimsByChannel(uri, page) {
|
||||||
});
|
});
|
||||||
|
|
||||||
lbry.claim_list_by_channel({ uri, page: page || 1 }).then(result => {
|
lbry.claim_list_by_channel({ uri, page: page || 1 }).then(result => {
|
||||||
const claimResult = result[uri],
|
const claimResult = result[uri] || {};
|
||||||
claims = claimResult ? claimResult.claims_in_channel : [],
|
const { claims_in_channel, returned_page } = claimResult;
|
||||||
currentPage = claimResult ? claimResult.returned_page : undefined;
|
|
||||||
|
|
||||||
dispatch({
|
dispatch({
|
||||||
type: types.FETCH_CHANNEL_CLAIMS_COMPLETED,
|
type: types.FETCH_CHANNEL_CLAIMS_COMPLETED,
|
||||||
data: {
|
data: {
|
||||||
uri,
|
uri,
|
||||||
claims,
|
claims: claims_in_channel || [],
|
||||||
page: currentPage,
|
page: returned_page || undefined,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -34,7 +34,7 @@ class FormFieldPrice extends React.PureComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { defaultValue, placeholder, min, step } = this.props;
|
const { defaultValue, placeholder, min } = this.props;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<span className="form-field">
|
<span className="form-field">
|
||||||
|
@ -43,7 +43,7 @@ class FormFieldPrice extends React.PureComponent {
|
||||||
name="amount"
|
name="amount"
|
||||||
min={min}
|
min={min}
|
||||||
placeholder={placeholder || null}
|
placeholder={placeholder || null}
|
||||||
step={step}
|
step="any" //Unfortunately, you cannot set a step without triggering validation that enforces a multiple of the step
|
||||||
onChange={event => this.handleFeeAmountChange(event)}
|
onChange={event => this.handleFeeAmountChange(event)}
|
||||||
defaultValue={
|
defaultValue={
|
||||||
defaultValue && defaultValue.amount ? defaultValue.amount : ""
|
defaultValue && defaultValue.amount ? defaultValue.amount : ""
|
||||||
|
|
|
@ -53,13 +53,6 @@ class ChannelSection extends React.PureComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
handleCreateChannelClick(event) {
|
handleCreateChannelClick(event) {
|
||||||
if (this.state.newChannelName.length < 5) {
|
|
||||||
this.refs.newChannelName.showError(
|
|
||||||
__("LBRY channel names must be at least 5 characters in length.")
|
|
||||||
);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
this.setState({
|
this.setState({
|
||||||
creatingChannel: true,
|
creatingChannel: true,
|
||||||
});
|
});
|
||||||
|
@ -148,7 +141,7 @@ class ChannelSection extends React.PureComponent {
|
||||||
<FormRow
|
<FormRow
|
||||||
label={__("Deposit")}
|
label={__("Deposit")}
|
||||||
postfix="LBC"
|
postfix="LBC"
|
||||||
step="0.1"
|
step="any"
|
||||||
min="0"
|
min="0"
|
||||||
type="number"
|
type="number"
|
||||||
helper={lbcInputHelp}
|
helper={lbcInputHelp}
|
||||||
|
|
|
@ -663,10 +663,8 @@ class PublishForm extends React.PureComponent {
|
||||||
checked={this.state.isFee}
|
checked={this.state.isFee}
|
||||||
/>
|
/>
|
||||||
<span className={!this.state.isFee ? "hidden" : ""}>
|
<span className={!this.state.isFee ? "hidden" : ""}>
|
||||||
{/*min=0.01 caused weird interactions with step (e.g. down from 5 equals 4.91 rather than 4.9) */}
|
|
||||||
<FormFieldPrice
|
<FormFieldPrice
|
||||||
min="0"
|
min="0"
|
||||||
step="0.1"
|
|
||||||
defaultValue={{ amount: 5.0, currency: "LBC" }}
|
defaultValue={{ amount: 5.0, currency: "LBC" }}
|
||||||
onChange={val => this.handleFeeChange(val)}
|
onChange={val => this.handleFeeChange(val)}
|
||||||
/>
|
/>
|
||||||
|
@ -823,7 +821,7 @@ class PublishForm extends React.PureComponent {
|
||||||
<FormRow
|
<FormRow
|
||||||
ref="bid"
|
ref="bid"
|
||||||
type="number"
|
type="number"
|
||||||
step="0.1"
|
step="any"
|
||||||
label={__("Deposit")}
|
label={__("Deposit")}
|
||||||
postfix="LBC"
|
postfix="LBC"
|
||||||
onChange={event => {
|
onChange={event => {
|
||||||
|
|
|
@ -33,7 +33,7 @@ class WalletSend extends React.PureComponent {
|
||||||
<FormRow
|
<FormRow
|
||||||
label={__("Amount")}
|
label={__("Amount")}
|
||||||
postfix={__("LBC")}
|
postfix={__("LBC")}
|
||||||
step="0.1"
|
step="any"
|
||||||
min="0"
|
min="0"
|
||||||
type="number"
|
type="number"
|
||||||
placeholder="1.23"
|
placeholder="1.23"
|
||||||
|
|
|
@ -37,7 +37,7 @@ class WalletSendTip extends React.PureComponent {
|
||||||
label={__("Amount")}
|
label={__("Amount")}
|
||||||
postfix={__("LBC")}
|
postfix={__("LBC")}
|
||||||
min="0"
|
min="0"
|
||||||
step="0.1"
|
step="any"
|
||||||
type="number"
|
type="number"
|
||||||
errorMessage={errorMessage}
|
errorMessage={errorMessage}
|
||||||
helper={
|
helper={
|
||||||
|
|
|
@ -13,8 +13,6 @@ class SettingsPage extends React.PureComponent {
|
||||||
super(props);
|
super(props);
|
||||||
|
|
||||||
this.state = {
|
this.state = {
|
||||||
instantPurchaseEnabled: props.instantPurchaseEnabled,
|
|
||||||
instantPurchaseMax: props.instantPurchaseMax,
|
|
||||||
clearingCache: false,
|
clearingCache: false,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -49,7 +47,14 @@ class SettingsPage extends React.PureComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
onKeyFeeChange(newValue) {
|
onKeyFeeChange(newValue) {
|
||||||
this.setDaemonSetting("max_key_fee", newValue);
|
let setting = newValue;
|
||||||
|
|
||||||
|
//this is stupid and should be fixed... somewhere
|
||||||
|
if (setting && (setting.amount === undefined || setting.amount === null)) {
|
||||||
|
setting.amount = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.setDaemonSetting("max_key_fee", setting);
|
||||||
}
|
}
|
||||||
|
|
||||||
onKeyFeeDisableChange(isDisabled) {
|
onKeyFeeDisableChange(isDisabled) {
|
||||||
|
@ -61,20 +66,12 @@ class SettingsPage extends React.PureComponent {
|
||||||
this.props.setClientSetting(settings.THEME, value);
|
this.props.setClientSetting(settings.THEME, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
oninstantPurchaseEnabledChange(enabled) {
|
onInstantPurchaseEnabledChange(enabled) {
|
||||||
this.props.setClientSetting(settings.INSTANT_PURCHASE_ENABLED, enabled);
|
this.props.setClientSetting(settings.INSTANT_PURCHASE_ENABLED, enabled);
|
||||||
|
|
||||||
this.setState({
|
|
||||||
instantPurchaseEnabled: enabled,
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onInstantPurchaseMaxChange(newValue) {
|
onInstantPurchaseMaxChange(newValue) {
|
||||||
this.props.setClientSetting(settings.INSTANT_PURCHASE_MAX, newValue);
|
this.props.setClientSetting(settings.INSTANT_PURCHASE_MAX, newValue);
|
||||||
|
|
||||||
this.setState({
|
|
||||||
instantPurchaseMax: newValue,
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// onMaxUploadPrefChange(isLimited) {
|
// onMaxUploadPrefChange(isLimited) {
|
||||||
|
@ -221,7 +218,6 @@ class SettingsPage extends React.PureComponent {
|
||||||
{!daemonSettings.disable_max_key_fee &&
|
{!daemonSettings.disable_max_key_fee &&
|
||||||
<FormFieldPrice
|
<FormFieldPrice
|
||||||
min="0"
|
min="0"
|
||||||
step="1"
|
|
||||||
onChange={this.onKeyFeeChange.bind(this)}
|
onChange={this.onKeyFeeChange.bind(this)}
|
||||||
defaultValue={
|
defaultValue={
|
||||||
daemonSettings.max_key_fee
|
daemonSettings.max_key_fee
|
||||||
|
@ -245,31 +241,30 @@ class SettingsPage extends React.PureComponent {
|
||||||
<FormRow
|
<FormRow
|
||||||
type="radio"
|
type="radio"
|
||||||
name="instant_purchase_max"
|
name="instant_purchase_max"
|
||||||
checked={!this.state.instantPurchaseEnabled}
|
checked={!instantPurchaseEnabled}
|
||||||
label={__("Ask for confirmation of all purchases")}
|
label={__("Ask for confirmation of all purchases")}
|
||||||
onClick={e => {
|
onClick={e => {
|
||||||
this.oninstantPurchaseEnabledChange(false);
|
this.onInstantPurchaseEnabledChange(false);
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
<div className="form-row">
|
<div className="form-row">
|
||||||
<FormField
|
<FormField
|
||||||
type="radio"
|
type="radio"
|
||||||
name="instant_purchase_max"
|
name="instant_purchase_max"
|
||||||
checked={this.state.instantPurchaseEnabled}
|
checked={instantPurchaseEnabled}
|
||||||
label={
|
label={
|
||||||
"Single-click purchasing of content less than" +
|
"Single-click purchasing of content less than" +
|
||||||
(this.state.instantPurchaseEnabled ? "" : "...")
|
(instantPurchaseEnabled ? "" : "...")
|
||||||
}
|
}
|
||||||
onClick={e => {
|
onClick={e => {
|
||||||
this.oninstantPurchaseEnabledChange(true);
|
this.onInstantPurchaseEnabledChange(true);
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
{this.state.instantPurchaseEnabled &&
|
{instantPurchaseEnabled &&
|
||||||
<FormFieldPrice
|
<FormFieldPrice
|
||||||
min="0.1"
|
min="0.1"
|
||||||
step="0.1"
|
|
||||||
onChange={val => this.onInstantPurchaseMaxChange(val)}
|
onChange={val => this.onInstantPurchaseMaxChange(val)}
|
||||||
defaultValue={this.state.instantPurchaseMax}
|
defaultValue={instantPurchaseMax}
|
||||||
/>}
|
/>}
|
||||||
</div>
|
</div>
|
||||||
<div className="form-field__helper">
|
<div className="form-field__helper">
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "lbry-web-ui",
|
"name": "lbry-web-ui",
|
||||||
"version": "0.16.0",
|
"version": "0.16.1rc1",
|
||||||
"description": "LBRY UI",
|
"description": "LBRY UI",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "echo \"Error: no test specified\" && exit 1",
|
"test": "echo \"Error: no test specified\" && exit 1",
|
||||||
|
|
Loading…
Add table
Reference in a new issue