Merge branch 'master' into master
This commit is contained in:
commit
b8af474375
16 changed files with 56 additions and 27 deletions
|
@ -1,5 +1,5 @@
|
||||||
[bumpversion]
|
[bumpversion]
|
||||||
current_version = 0.12.2rc5
|
current_version = 0.12.2rc6
|
||||||
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+))?
|
||||||
|
|
23
.travis.yml
23
.travis.yml
|
@ -1,7 +1,28 @@
|
||||||
|
env:
|
||||||
|
global:
|
||||||
|
- TRANSIFEX_USER: api
|
||||||
|
- secure: u6gwnZlPGJLnvpoPPCpUZ+jBPajQuIW1+aq6UGW57z54AUjTAECxaYpqcGTGtDBjYark/yeiso887wP/EmJva7hMHeNMf6uLqwzP3YFsIv/Iv+9c1f4MXbJNgOrEKN834o/BdkD4ifi9CCiH9uPPVYGPx1bvfaxGpcHmQXdW4F4S0uj+jePB257mt+afGiNlz9wET6kWJKNNZf/4BNmefldVNq7h6oTSLsyO1TBhDcvSjatpKIwmXUNQfSUTFWvrtpWUB/m/IzitGuUtrt82vU2fPl7tuH6BHNrNp58MINjFzXXJLC+mMybb2UBDIAuc3+k7vj4J0U2rkcTloxDNCKNmYa1jBogOKBRgGp98Ct7E0V2vuLGAPniUbvBcCGK1wwed7uwDjsz3YNCGxUEcyyWc3OVDgN/up4+gXHxkh9FTpZy8Q3rSZx4Lwj700impBUQIVh/5p7Vgv+bSUdOeVRAMlcP9yT83jX50w9LkJMfICFPNv1tOZ3/SOnnB+JdW/ahpplFI4Z68/fBLttZTeaNcU4f28oJvPer8Wll+Elx5kxwLqLbwVUFNlxTxY1LYnPB7SPjGxrFNy3mVTRq5Pxp1hMiTZF4TlapkfHgR+gEzk2wpcJGmub70tW2baZaJF0jDBWIh7GXV+EGve53BKDhpX2Z6jTK0gkhrSUW1MT8=
|
||||||
|
- secure: h1r9Qzv2xHRQl7nDHcscB4qDv7KlF/ncgHko1YuoY4oLZipBV8mzQXDmn3nlMKwaKOe1/Tty/bjoZexkWict4cwKBzU7/1HtJeMa6nxRICuS6DiVhLUNGZEddK6jQLxeEZFxkFPSCZyjybPWtasF8f8jd0lqqLIL4/FcIVV56aRCKAsUwCbedxi8Vnc19l74xjaQIK82xBFYOQPK078OBovk9DDOnicTjMulUo3/pKEZD1njSdcEhfSRv+MFE+31B/a6lpoLo7twPlyzLMfpo30NlEzIN0TeMAk44e4PV6DYg0wntC2GJ21p4BqMnDGocwnZwm7gpjflzUZdW6hF0esGLcqOdbyJLUb3rNX9AzQmn0p9KwDC3S80peZFxSiuLJGL8eivceVDUK/jwWinu3OHDJ/eO5iMDm9odm2ALemPtrDTSlRNT8HzNCY9PQTU9Dhdm4Q/dGDsRPWibFJSJ/qGKhVgadk2CUEAPua0hB1zZ556PkTGx4R1JDscgFDAkgemzgKl4Z/4qK3xGDoEtz1HmBlvQtn+B/PuhA2essADj0iTDiItxb7AYTA7EzsHEcRMmrbYarZ3Eh2onWy2GOpAGRN5Xl9cBIDbibcSC6BLI1m2PcLABpP7DhUX4bJbsVNSiGesHEU7o9Dgn8Ig09eHW/8F9i0VVoGUZXxKMJ8=
|
||||||
|
|
||||||
os: linux
|
os: linux
|
||||||
dist: xenial
|
dist: xenial
|
||||||
|
|
||||||
|
#branches:
|
||||||
|
# only:
|
||||||
|
# - "/^v\\d+\\.\\d+\\.\\d+$/"
|
||||||
|
|
||||||
install:
|
install:
|
||||||
- rvm install 2.3.1
|
- rvm install 2.3.1
|
||||||
|
|
||||||
|
script:
|
||||||
- rvm use 2.3.1 && gem install danger --version '~> 4.0' && danger
|
- rvm use 2.3.1 && gem install danger --version '~> 4.0' && danger
|
||||||
# - FULL_BUILD=true ./build.sh
|
- FULL_BUILD=true ./build.sh
|
||||||
|
|
||||||
|
sudo: required
|
||||||
|
after_success:
|
||||||
|
- pip install virtualenv
|
||||||
|
- virtualenv ~/env
|
||||||
|
- source ~/env/bin/activate
|
||||||
|
- pip install transifex-client
|
||||||
|
- sudo echo $'[https://www.transifex.com]\nhostname = https://www.transifex.com\nusername= '"$TRANSIFEX_USER"$'\npassword = '"$TRANSIFEX_PASSWORD"$'\ntoken = '"$TRANSIFEX_API_TOKEN"$'\n' > ~/.transifexrc
|
||||||
|
- tx push -s
|
||||||
|
|
|
@ -6,4 +6,3 @@ file_filter = app/dist/locales/<lang>.json
|
||||||
source_file = app/dist/locales/en.json
|
source_file = app/dist/locales/en.json
|
||||||
source_lang = en
|
source_lang = en
|
||||||
type = KEYVALUEJSON
|
type = KEYVALUEJSON
|
||||||
|
|
||||||
|
|
2
app/package-lock.json
generated
2
app/package-lock.json
generated
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "LBRY",
|
"name": "LBRY",
|
||||||
"version": "0.12.2rc5",
|
"version": "0.12.2rc6",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"commander": {
|
"commander": {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "LBRY",
|
"name": "LBRY",
|
||||||
"version": "0.12.2rc5",
|
"version": "0.12.2rc6",
|
||||||
"main": "main.js",
|
"main": "main.js",
|
||||||
"description": "LBRY is a fully decentralized, open-source protocol facilitating the discovery, access, and (sometimes) purchase of data.",
|
"description": "LBRY is a fully decentralized, open-source protocol facilitating the discovery, access, and (sometimes) purchase of data.",
|
||||||
"author": {
|
"author": {
|
||||||
|
|
|
@ -12,7 +12,6 @@ import {
|
||||||
import { doSearch } from "actions/search";
|
import { doSearch } from "actions/search";
|
||||||
import { doFetchDaemonSettings } from "actions/settings";
|
import { doFetchDaemonSettings } from "actions/settings";
|
||||||
import { doAuthenticate } from "actions/user";
|
import { doAuthenticate } from "actions/user";
|
||||||
import { doRewardList } from "actions/rewards";
|
|
||||||
import { doFileList } from "actions/file_info";
|
import { doFileList } from "actions/file_info";
|
||||||
|
|
||||||
const { remote, ipcRenderer, shell } = require("electron");
|
const { remote, ipcRenderer, shell } = require("electron");
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
import * as types from "constants/action_types";
|
import * as types from "constants/action_types";
|
||||||
import lbry from "lbry";
|
|
||||||
import lbryio from "lbryio";
|
import lbryio from "lbryio";
|
||||||
import rewards from "rewards";
|
import rewards from "rewards";
|
||||||
import { selectRewards, selectRewardsByType } from "selectors/rewards";
|
import { selectRewardsByType } from "selectors/rewards";
|
||||||
|
|
||||||
export function doRewardList() {
|
export function doRewardList() {
|
||||||
return function(dispatch, getState) {
|
return function(dispatch, getState) {
|
||||||
|
@ -77,7 +76,7 @@ export function doClaimReward(reward, saveError = false) {
|
||||||
|
|
||||||
export function doClaimEligiblePurchaseRewards() {
|
export function doClaimEligiblePurchaseRewards() {
|
||||||
return function(dispatch, getState) {
|
return function(dispatch, getState) {
|
||||||
if (!lbryio.enabled || !lbryio.getAccessToken()) {
|
if (!lbryio.enabled) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,8 +16,6 @@ export function doAuthenticate() {
|
||||||
type: types.AUTHENTICATION_SUCCESS,
|
type: types.AUTHENTICATION_SUCCESS,
|
||||||
data: { user },
|
data: { user },
|
||||||
});
|
});
|
||||||
|
|
||||||
dispatch(doRewardList()); //FIXME - where should this happen?
|
|
||||||
})
|
})
|
||||||
.catch(error => {
|
.catch(error => {
|
||||||
dispatch({
|
dispatch({
|
||||||
|
@ -36,6 +34,8 @@ export function doUserFetch() {
|
||||||
lbryio
|
lbryio
|
||||||
.getCurrentUser()
|
.getCurrentUser()
|
||||||
.then(user => {
|
.then(user => {
|
||||||
|
dispatch(doRewardList());
|
||||||
|
|
||||||
dispatch({
|
dispatch({
|
||||||
type: types.USER_FETCH_SUCCESS,
|
type: types.USER_FETCH_SUCCESS,
|
||||||
data: { user },
|
data: { user },
|
||||||
|
|
|
@ -3,6 +3,7 @@ import lbryio from "lbryio.js";
|
||||||
import ModalPage from "component/modal-page.js";
|
import ModalPage from "component/modal-page.js";
|
||||||
import Auth from "component/auth";
|
import Auth from "component/auth";
|
||||||
import Link from "component/link";
|
import Link from "component/link";
|
||||||
|
import { getLocal, setLocal } from "utils";
|
||||||
|
|
||||||
export class AuthOverlay extends React.PureComponent {
|
export class AuthOverlay extends React.PureComponent {
|
||||||
constructor(props) {
|
constructor(props) {
|
||||||
|
@ -14,7 +15,12 @@ export class AuthOverlay extends React.PureComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillReceiveProps(nextProps) {
|
componentWillReceiveProps(nextProps) {
|
||||||
if (this.props.isShowing && !this.props.isPending && !nextProps.isShowing) {
|
if (
|
||||||
|
this.props.isShowing &&
|
||||||
|
!this.props.isPending &&
|
||||||
|
!nextProps.isShowing /* && !getLocal("welcome_screen_shown")*/
|
||||||
|
) {
|
||||||
|
setLocal("welcome_screen_shown", true);
|
||||||
setTimeout(() => this.props.openWelcomeModal(), 1);
|
setTimeout(() => this.props.openWelcomeModal(), 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -202,7 +202,7 @@ lbryio.authenticate = function() {
|
||||||
return lbryio.setAuthToken(response.auth_token);
|
return lbryio.setAuthToken(response.auth_token);
|
||||||
});
|
});
|
||||||
})
|
})
|
||||||
.then(lbryio.getCurrentUser())
|
.then(lbryio.getCurrentUser)
|
||||||
.then(resolve, reject);
|
.then(resolve, reject);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -93,7 +93,7 @@ rewards.TYPE_FEATURED_DOWNLOAD = "featured_download";
|
||||||
|
|
||||||
rewards.claimReward = function(type) {
|
rewards.claimReward = function(type) {
|
||||||
function requestReward(resolve, reject, params) {
|
function requestReward(resolve, reject, params) {
|
||||||
if (!lbryio.enabled || !lbryio.getAccessToken()) {
|
if (!lbryio.enabled) {
|
||||||
reject(new Error(__("Rewards are not enabled.")));
|
reject(new Error(__("Rewards are not enabled.")));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,17 +31,25 @@ export const selectPageTitle = createSelector(
|
||||||
(page, params) => {
|
(page, params) => {
|
||||||
switch (page) {
|
switch (page) {
|
||||||
case "settings":
|
case "settings":
|
||||||
case "help":
|
return __("Settings");
|
||||||
case "report":
|
case "report":
|
||||||
|
return __("Report");
|
||||||
case "wallet":
|
case "wallet":
|
||||||
|
return __("Wallet");
|
||||||
case "send":
|
case "send":
|
||||||
|
return __("Send");
|
||||||
case "receive":
|
case "receive":
|
||||||
|
return __("Receive");
|
||||||
case "rewards":
|
case "rewards":
|
||||||
|
return __("Rewards");
|
||||||
case "start":
|
case "start":
|
||||||
|
return __("Start");
|
||||||
case "publish":
|
case "publish":
|
||||||
|
return __("Publish");
|
||||||
case "help":
|
case "help":
|
||||||
|
return __("Help");
|
||||||
case "developer":
|
case "developer":
|
||||||
return __(page.charAt(0).toUpperCase() + page.slice(1));
|
return __("Developer");
|
||||||
case "search":
|
case "search":
|
||||||
return params.query
|
return params.query
|
||||||
? __("Search results for %s", params.query)
|
? __("Search results for %s", params.query)
|
||||||
|
|
|
@ -25,7 +25,7 @@ export const selectEmailToVerify = createSelector(
|
||||||
export const selectUserHasEmail = createSelector(
|
export const selectUserHasEmail = createSelector(
|
||||||
selectUser,
|
selectUser,
|
||||||
selectEmailToVerify,
|
selectEmailToVerify,
|
||||||
(user, email) => (user && user.has_email) || email
|
(user, email) => (user && user.has_email) || !!email
|
||||||
);
|
);
|
||||||
|
|
||||||
export const selectUserIsRewardEligible = createSelector(
|
export const selectUserIsRewardEligible = createSelector(
|
||||||
|
@ -64,11 +64,8 @@ export const selectEmailVerifyErrorMessage = createSelector(
|
||||||
);
|
);
|
||||||
|
|
||||||
export const selectUserIsVerificationCandidate = createSelector(
|
export const selectUserIsVerificationCandidate = createSelector(
|
||||||
selectUserIsRewardEligible,
|
|
||||||
selectUserIsRewardApproved,
|
|
||||||
selectEmailToVerify,
|
|
||||||
selectUser,
|
selectUser,
|
||||||
(isEligible, isApproved, emailToVerify, user) => emailToVerify && user
|
user => user && !user.has_verified_email
|
||||||
);
|
);
|
||||||
|
|
||||||
export const selectUserIsAuthRequested = createSelector(
|
export const selectUserIsAuthRequested = createSelector(
|
||||||
|
|
|
@ -77,7 +77,7 @@ if (env === "development") {
|
||||||
middleware.push(logger);
|
middleware.push(logger);
|
||||||
}
|
}
|
||||||
|
|
||||||
middleware.push(createActionBuffer(REHYDRATE));
|
// middleware.push(createActionBuffer(REHYDRATE)); // was causing issues with authentication reducers not firing
|
||||||
|
|
||||||
const createStoreWithMiddleware = redux.compose(
|
const createStoreWithMiddleware = redux.compose(
|
||||||
autoRehydrate(),
|
autoRehydrate(),
|
||||||
|
|
2
ui/package-lock.json
generated
2
ui/package-lock.json
generated
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "lbry-web-ui",
|
"name": "lbry-web-ui",
|
||||||
"version": "0.12.2rc5",
|
"version": "0.12.2rc6",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"abbrev": {
|
"abbrev": {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "lbry-web-ui",
|
"name": "lbry-web-ui",
|
||||||
"version": "0.12.2rc5",
|
"version": "0.12.2rc6",
|
||||||
"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…
Reference in a new issue