Merge branch 'master' into master

This commit is contained in:
Jeremy Kauffman 2017-06-22 08:50:36 -04:00 committed by GitHub
commit b8af474375
16 changed files with 56 additions and 27 deletions

View file

@ -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+))?

View file

@ -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

View file

@ -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
View file

@ -1,6 +1,6 @@
{ {
"name": "LBRY", "name": "LBRY",
"version": "0.12.2rc5", "version": "0.12.2rc6",
"lockfileVersion": 1, "lockfileVersion": 1,
"dependencies": { "dependencies": {
"commander": { "commander": {

View file

@ -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": {

View file

@ -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");

View file

@ -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;
} }

View file

@ -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 },

View file

@ -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);
} }
} }

View file

@ -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);
}); });
} }

View file

@ -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;
} }

View file

@ -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)

View file

@ -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(

View file

@ -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
View file

@ -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": {

View file

@ -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",