From 7a9aaf377bbd269fa9338695263e193bde8a944f Mon Sep 17 00:00:00 2001 From: Jeremy Kauffman Date: Fri, 10 Nov 2017 09:55:30 -0500 Subject: [PATCH 01/26] fix API error propegation --- ui/js/actions/user.js | 2 +- ui/js/jsonrpc.js | 25 +++++++++++++------------ ui/js/lbryio.js | 25 +++++++++++++------------ 3 files changed, 27 insertions(+), 25 deletions(-) diff --git a/ui/js/actions/user.js b/ui/js/actions/user.js index 360707a43..05f361f4a 100644 --- a/ui/js/actions/user.js +++ b/ui/js/actions/user.js @@ -69,7 +69,7 @@ export function doUserEmailNew(email) { "post" ) .catch(error => { - if (error.xhr && error.xhr.status == 409) { + if (error.response && error.response.status == 409) { return lbryio.call( "user_email", "resend_token", diff --git a/ui/js/jsonrpc.js b/ui/js/jsonrpc.js index f6c638083..d3cebcfda 100644 --- a/ui/js/jsonrpc.js +++ b/ui/js/jsonrpc.js @@ -9,26 +9,28 @@ jsonrpc.call = function( connectFailedCallback, timeout ) { - function checkStatus(response) { + function checkAndParse(response) { if (response.status >= 200 && response.status < 300) { - return response; + return response.json(); } else { - var error = new Error(response.statusText); - error.response = response; - throw error; + return response.json().then(json => { + let error; + if (json.error) { + error = new Error(json.error); + } else { + error = new Error("Protocol error with unknown response signature"); + } + return Promise.reject(error); + }); } } - function parseJSON(response) { - return response.json(); - } - function makeRequest(url, options) { return new Promise((resolve, reject) => { fetch(url, options).then(resolve).catch(reject); if (timeout) { - const e = new Error(__("XMLHttpRequest connection timed out")); + const e = new Error(__("Protocol request timed out")); setTimeout(() => { return reject(e); }, timeout); @@ -51,8 +53,7 @@ jsonrpc.call = function( sessionStorage.setItem("JSONRPCCounter", counter + 1); return fetch(url, options) - .then(checkStatus) - .then(parseJSON) + .then(checkAndParse) .then(response => { const error = response.error || (response.result && response.result.error); diff --git a/ui/js/lbryio.js b/ui/js/lbryio.js index ece653546..ba7a105cd 100644 --- a/ui/js/lbryio.js +++ b/ui/js/lbryio.js @@ -45,24 +45,25 @@ lbryio.call = function(resource, action, params = {}, method = "get") { return Promise.reject(new Error(__("Invalid method"))); } - function checkStatus(response) { + function checkAndParse(response) { if (response.status >= 200 && response.status < 300) { - return response; + return response.json(); } else { - var error = new Error(response.statusText); - error.response = response; - throw error; + return response.json().then(json => { + let error; + if (json.error) { + error = new Error(json.error); + } else { + error = new Error("Unknown API error signature"); + } + error.response = response; //this is primarily a hack used in actions/user.js + return Promise.reject(error); + }); } } - function parseJSON(response) { - return response.json(); - } - function makeRequest(url, options) { - return fetch(url, options).then(checkStatus).then(parseJSON).catch(e => { - throw e; - }); + return fetch(url, options).then(checkAndParse); } return lbryio.getAuthToken().then(token => { From c2a18d6f1b4a355793037f7ee7d789697916caf0 Mon Sep 17 00:00:00 2001 From: Jeremy Kauffman Date: Fri, 10 Nov 2017 09:56:24 -0500 Subject: [PATCH 02/26] =?UTF-8?q?Bump=20version:=200.18.0rc2=20=E2=86=92?= =?UTF-8?q?=200.18.0rc3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .bumpversion.cfg | 2 +- app/package.json | 2 +- ui/package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 2f28d45da..2be62003a 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.18.0rc2 +current_version = 0.18.0rc3 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+)((?P[a-z]+)(?P\d+))? diff --git a/app/package.json b/app/package.json index 3d3da32ab..8fd0779aa 100644 --- a/app/package.json +++ b/app/package.json @@ -1,6 +1,6 @@ { "name": "LBRY", - "version": "0.18.0rc2", + "version": "0.18.0rc3", "main": "main.js", "description": "A browser for the LBRY network, a digital marketplace controlled by its users.", "author": { diff --git a/ui/package.json b/ui/package.json index 1d1709986..58475deaa 100644 --- a/ui/package.json +++ b/ui/package.json @@ -1,6 +1,6 @@ { "name": "lbry-web-ui", - "version": "0.18.0rc2", + "version": "0.18.0rc3", "description": "LBRY UI", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", From 3209d813f2b270efcba4276be924daba575d4242 Mon Sep 17 00:00:00 2001 From: Jeremy Kauffman Date: Fri, 10 Nov 2017 10:41:22 -0500 Subject: [PATCH 03/26] placeholder value should match default value on publish #701 --- ui/js/component/publishForm/view.jsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/ui/js/component/publishForm/view.jsx b/ui/js/component/publishForm/view.jsx index 1ab63a294..fa3aacec4 100644 --- a/ui/js/component/publishForm/view.jsx +++ b/ui/js/component/publishForm/view.jsx @@ -661,7 +661,10 @@ class PublishForm extends React.PureComponent { this.handleFeeChange(val)} /> From 85f391e8a1de174e2c12a15fe4601d719ddb72ec Mon Sep 17 00:00:00 2001 From: Jeremy Kauffman Date: Fri, 10 Nov 2017 10:41:58 -0500 Subject: [PATCH 04/26] =?UTF-8?q?Bump=20version:=200.18.0rc3=20=E2=86=92?= =?UTF-8?q?=200.18.0rc4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .bumpversion.cfg | 2 +- app/package.json | 2 +- ui/package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 2be62003a..6c9bfacc1 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.18.0rc3 +current_version = 0.18.0rc4 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+)((?P[a-z]+)(?P\d+))? diff --git a/app/package.json b/app/package.json index 8fd0779aa..d02fc93bd 100644 --- a/app/package.json +++ b/app/package.json @@ -1,6 +1,6 @@ { "name": "LBRY", - "version": "0.18.0rc3", + "version": "0.18.0rc4", "main": "main.js", "description": "A browser for the LBRY network, a digital marketplace controlled by its users.", "author": { diff --git a/ui/package.json b/ui/package.json index 58475deaa..a7b4eab52 100644 --- a/ui/package.json +++ b/ui/package.json @@ -1,6 +1,6 @@ { "name": "lbry-web-ui", - "version": "0.18.0rc3", + "version": "0.18.0rc4", "description": "LBRY UI", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", From cb88b306ab3cab89fbaaa114007b1cccc23281e8 Mon Sep 17 00:00:00 2001 From: Alex Liebowitz Date: Thu, 26 Oct 2017 23:30:48 -0400 Subject: [PATCH 05/26] Fix build script to permit paths with spaces - Quote dynamic command names - Use "python pip" instead of "pip" when in virtualenv (pip can't handle paths with spaces inside of a virtualenv, may be fixed in pip 10). --- README.md | 12 +++++------- app/package.json | 1 + build.sh | 2 +- build/build.sh | 18 ++++++++++++------ build/prebuild.sh | 11 +++++------ 5 files changed, 24 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 179c7abdd..654778429 100644 --- a/README.md +++ b/README.md @@ -18,16 +18,14 @@ Our [releases page](https://github.com/lbryio/lbry-app/releases/latest) also con To install from source or make changes to the application, continue reading below. -## Development +## Development on Linux and macOS ### One-time Setup -1. Install npm and node (v6 and above required, use [nvm](https://github.com/creationix/nvm/blob/master/README.md) if having trouble) -2. Install keytar and libsecret (see [keytar repository](https://github.com/atom/node-keytar) ) -3. Install yarn by running: npm install -g yarn (may require elevated permissions) -4. Check out this repo. -5. Set up a Python virtual environment, or live on the wild side. -6. Run `./build.sh`. This builds the UI assets and puts them into `app/dist`. It also downloads [lbry daemon](https://github.com/lbryio/lbry/releases). +1. Clone this repo +2. `INSTALL_DEPENDENCIES=true ./build.sh` + +This will download and install the LBRY app and its dependencies, including [the LBRY daemon](https://github.com/lbryio/lbry) and command line utilities like `node` and `yarn`. The LBRY app requires Node >= 6; if you have an earlier version of Node installed and want to keep it, you can use [nvm](https://github.com/creationix/nvm) to switch back and forth. ### Running diff --git a/app/package.json b/app/package.json index d02fc93bd..8ba5df0b5 100644 --- a/app/package.json +++ b/app/package.json @@ -3,6 +3,7 @@ "version": "0.18.0rc4", "main": "main.js", "description": "A browser for the LBRY network, a digital marketplace controlled by its users.", + "homepage": "https://github.com/lbryio/lbry-app", "author": { "name": "LBRY Inc.", "email": "hello@lbry.io" diff --git a/build.sh b/build.sh index 6dc7044f1..ec3e6d703 100755 --- a/build.sh +++ b/build.sh @@ -1,4 +1,4 @@ #!/bin/bash # this is here because teamcity runs /build.sh to build the project DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -$DIR/build/build.sh +"$DIR/build/build.sh" diff --git a/build/build.sh b/build/build.sh index 310fbcfd8..8cf38ca20 100755 --- a/build/build.sh +++ b/build/build.sh @@ -29,14 +29,19 @@ FULL_BUILD="${FULL_BUILD:-false}" if [ -n "${TEAMCITY_VERSION:-}" -o -n "${APPVEYOR:-}" ]; then FULL_BUILD="true" fi -if [ "$FULL_BUILD" != "true" ]; then - echo -e "\033[1;36mDependencies will NOT be installed. Run with 'FULL_BUILD=true' to install dependencies.\x1b[m" -fi if [ "$FULL_BUILD" == "true" ]; then + INSTALL_DEPENDENCIES="true" +else + INSTALL_DEPENDENCIES="${INSTALL_DEPENDENCIES:-false}" +fi + +if [ "$INSTALL_DEPENDENCIES" != "true" ]; then + echo -e "\033[1;36mDependencies will NOT be installed. Run with \"INSTALL_DEPENDENCIES=true\" to install dependencies, or \"FULL_BUILD=true\" to install dependencies and build a complete app.\x1b[m" +else # install dependencies echo -e "\033[0;32mInstalling Dependencies\x1b[m" - $BUILD_DIR/prebuild.sh + "$BUILD_DIR/prebuild.sh" VENV="$BUILD_DIR/venv" if [ -d "$VENV" ]; then @@ -46,7 +51,8 @@ if [ "$FULL_BUILD" == "true" ]; then set +u source "$VENV/bin/activate" set -u - pip install -r "$BUILD_DIR/requirements.txt" + # "python pip install" required to support path names with spaces (may be fixed in pip 10) + python "`which pip`" install -r "$BUILD_DIR/requirements.txt" python "$BUILD_DIR/set_version.py" fi @@ -90,7 +96,7 @@ DAEMON_URL=$(echo ${DAEMON_URL_TEMPLATE//DAEMONVER/$DAEMON_VER} | sed "s/OSNAME/ DAEMON_VER_PATH="$BUILD_DIR/daemon.ver" echo "$DAEMON_VER_PATH" if [[ ! -f $DAEMON_VER_PATH || ! -f $ROOT/app/dist/lbrynet-daemon || "$(< "$DAEMON_VER_PATH")" != "$DAEMON_VER" ]]; then - wget --quiet "$DAEMON_URL" -O "$BUILD_DIR/daemon.zip" + curl -sL -o "$BUILD_DIR/daemon.zip" "$DAEMON_URL" unzip "$BUILD_DIR/daemon.zip" -d "$ROOT/app/dist/" rm "$BUILD_DIR/daemon.zip" echo "$DAEMON_VER" > "$DAEMON_VER_PATH" diff --git a/build/prebuild.sh b/build/prebuild.sh index 16f4e4d19..fb6d041c3 100755 --- a/build/prebuild.sh +++ b/build/prebuild.sh @@ -18,7 +18,7 @@ fi SUDO='' -if $LINUX && (( $EUID != 0 )); then +if (( $EUID != 0 )); then SUDO='sudo' fi @@ -41,7 +41,7 @@ set -eu if $LINUX; then INSTALL="$SUDO apt-get install --no-install-recommends -y" - $INSTALL build-essential libssl-dev libffi-dev libgmp3-dev python2.7-dev libsecret-1-dev wget + $INSTALL build-essential libssl-dev libffi-dev libgmp3-dev python2.7-dev libsecret-1-dev curl elif $OSX && ! cmd_exists brew ; then /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" fi @@ -64,11 +64,10 @@ fi if ! cmd_exists pip; then if $LINUX; then $INSTALL python-pip - $SUDO pip install --upgrade pip - else - echo "Pip required" - exit 1 + elif $OSX; then + $SUDO easy_install pip fi + $SUDO pip install --upgrade pip fi if $LINUX && [ "$(pip list --format=columns | grep setuptools | wc -l)" -ge 1 ]; then From 597be05199474a5600817d7b2ec07db5f7dc78d0 Mon Sep 17 00:00:00 2001 From: Alex Grintsvayg Date: Fri, 10 Nov 2017 10:47:51 -0500 Subject: [PATCH 06/26] simplify build, almost remove python --- README.md | 5 ++-- build/build.sh | 33 ++++++++------------------ build/{prebuild.sh => install_deps.sh} | 18 ++++++++++---- build/set_version.py | 21 ---------------- 4 files changed, 26 insertions(+), 51 deletions(-) rename build/{prebuild.sh => install_deps.sh} (92%) delete mode 100644 build/set_version.py diff --git a/README.md b/README.md index 654778429..8bb0595e9 100644 --- a/README.md +++ b/README.md @@ -23,9 +23,10 @@ To install from source or make changes to the application, continue reading belo ### One-time Setup 1. Clone this repo -2. `INSTALL_DEPENDENCIES=true ./build.sh` +2. `DEPS=true ./build.sh` -This will download and install the LBRY app and its dependencies, including [the LBRY daemon](https://github.com/lbryio/lbry) and command line utilities like `node` and `yarn`. The LBRY app requires Node >= 6; if you have an earlier version of Node installed and want to keep it, you can use [nvm](https://github.com/creationix/nvm) to switch back and forth. +This will download and install the LBRY app and its dependencies, including [the LBRY daemon](https://github.com/lbryio/lbry) and command line utilities like `node` and `yarn`. \ +The LBRY app requires Node >= 6; if you have an earlier version of Node installed and want to keep it, you can use [nvm](https://github.com/creationix/nvm) to switch back and forth. ### Running diff --git a/build/build.sh b/build/build.sh index 8cf38ca20..2a6fa1d4e 100755 --- a/build/build.sh +++ b/build/build.sh @@ -30,30 +30,13 @@ if [ -n "${TEAMCITY_VERSION:-}" -o -n "${APPVEYOR:-}" ]; then FULL_BUILD="true" fi -if [ "$FULL_BUILD" == "true" ]; then - INSTALL_DEPENDENCIES="true" -else - INSTALL_DEPENDENCIES="${INSTALL_DEPENDENCIES:-false}" -fi - -if [ "$INSTALL_DEPENDENCIES" != "true" ]; then +DEPS="${DEPS:-$FULL_BUILD}" +if [ "$DEPS" != "true" ]; then echo -e "\033[1;36mDependencies will NOT be installed. Run with \"INSTALL_DEPENDENCIES=true\" to install dependencies, or \"FULL_BUILD=true\" to install dependencies and build a complete app.\x1b[m" else # install dependencies echo -e "\033[0;32mInstalling Dependencies\x1b[m" - "$BUILD_DIR/prebuild.sh" - - VENV="$BUILD_DIR/venv" - if [ -d "$VENV" ]; then - rm -rf "$VENV" - fi - virtualenv "$VENV" - set +u - source "$VENV/bin/activate" - set -u - # "python pip install" required to support path names with spaces (may be fixed in pip 10) - python "`which pip`" install -r "$BUILD_DIR/requirements.txt" - python "$BUILD_DIR/set_version.py" + "$BUILD_DIR/install_deps.sh" fi [ -d "$ROOT/dist" ] && rm -rf "$ROOT/dist" @@ -140,9 +123,13 @@ if [ "$FULL_BUILD" == "true" ]; then # electron-build has a publish feature, but I had a hard time getting # it to reliably work and it also seemed difficult to configure. Not proud of # this, but it seemed better to write my own. - python "$BUILD_DIR/upload_assets.py" - - deactivate + VENV="$BUILD_DIR/venv" + if [ -d "$VENV" ]; then + rm -rf "$VENV" + fi + virtualenv "$VENV" + "$VENV/bin/pip" install -r "$BUILD_DIR/requirements.txt" + "$VENV/bin/python" "$BUILD_DIR/upload_assets.py" echo -e '\033[0;32mBuild and packaging complete.\x1b[m' else diff --git a/build/prebuild.sh b/build/install_deps.sh similarity index 92% rename from build/prebuild.sh rename to build/install_deps.sh index fb6d041c3..34a212dfe 100755 --- a/build/prebuild.sh +++ b/build/install_deps.sh @@ -1,8 +1,6 @@ #!/bin/bash set -euo pipefail -set -x - LINUX=false OSX=false @@ -52,6 +50,9 @@ if ! cmd_exists python; then $INSTALL python2.7 elif $OSX; then brew install python + else + echo "python2.7 required" + exit 1 fi fi @@ -66,6 +67,9 @@ if ! cmd_exists pip; then $INSTALL python-pip elif $OSX; then $SUDO easy_install pip + else + echo "pip required" + exit 1 fi $SUDO pip install --upgrade pip fi @@ -84,6 +88,9 @@ if ! cmd_exists node; then $INSTALL nodejs elif $OSX; then brew install node + else + echo "node required" + exit 1 fi fi @@ -95,16 +102,17 @@ if ! cmd_exists yarn; then $SUDO apt-get install yarn elif $OSX; then brew install yarn + else + echo "yarn required" + exit 1 fi fi if ! cmd_exists unzip; then if $LINUX; then $INSTALL unzip - elif $OSX; then + else echo "unzip required" exit 1 - # not sure this works, but OSX should come with unzip - # brew install unzip fi fi diff --git a/build/set_version.py b/build/set_version.py deleted file mode 100644 index 313cf6c93..000000000 --- a/build/set_version.py +++ /dev/null @@ -1,21 +0,0 @@ -"""Set the package version to the output of `git describe`""" - -from __future__ import print_function - -import os.path -import sys -import fileinput - - -def main(): - filename = os.path.abspath( - os.path.join(os.path.abspath(__file__), '..', '..', 'ui', 'js', 'lbryio.js')) - for line in fileinput.input(filename, inplace=True): - if line.startswith(' enabled: false'): - print(' enabled: true') - else: - print(line, end='') - - -if __name__ == '__main__': - sys.exit(main()) From 0a818fa5837d6f2d93cb58d67e0eff67b624eb99 Mon Sep 17 00:00:00 2001 From: Alex Grin Date: Fri, 10 Nov 2017 11:49:22 -0500 Subject: [PATCH 07/26] Update README.md --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 8bb0595e9..27d426584 100644 --- a/README.md +++ b/README.md @@ -25,8 +25,7 @@ To install from source or make changes to the application, continue reading belo 1. Clone this repo 2. `DEPS=true ./build.sh` -This will download and install the LBRY app and its dependencies, including [the LBRY daemon](https://github.com/lbryio/lbry) and command line utilities like `node` and `yarn`. \ -The LBRY app requires Node >= 6; if you have an earlier version of Node installed and want to keep it, you can use [nvm](https://github.com/creationix/nvm) to switch back and forth. +This will download and install the LBRY app and its dependencies, including [the LBRY daemon](https://github.com/lbryio/lbry) and command line utilities like `node` and `yarn`. The LBRY app requires Node >= 6; if you have an earlier version of Node installed and want to keep it, you can use [nvm](https://github.com/creationix/nvm) to switch back and forth. ### Running From 440128d2c311871297c238b84a92eada4b61fe2d Mon Sep 17 00:00:00 2001 From: Jeremy Kauffman Date: Fri, 10 Nov 2017 11:54:52 -0500 Subject: [PATCH 08/26] add changelog related to build improvements --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2fa973171..7e74c34dc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ Web UI version numbers should always match the corresponding version of LBRY App ### Changed * Daemon updated to [v0.18.0](https://github.com/lbryio/lbry/releases/tag/v0.18.0). The largest changes here are several more network improvements and fixes as well as functionality and improvements related to concurrent heavier usage (bugs and issues largely discoverd by spee.ch). + * Improved build and first-run process for new developers. * Replaced all instances of `XMLHttpRequest` with native `Fetch` API (#676). * From 74db2ab40a75a2bb814cdfa38492f51b4622c323 Mon Sep 17 00:00:00 2001 From: Alex Grintsvayg Date: Mon, 13 Nov 2017 10:22:21 -0500 Subject: [PATCH 09/26] webpack on windows --- build/build.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/build.ps1 b/build/build.ps1 index ac0951d81..17e1373d5 100644 --- a/build/build.ps1 +++ b/build/build.ps1 @@ -23,7 +23,7 @@ cd ui yarn install npm rebuild node-sass node_modules\.bin\node-sass --output dist\css --sourcemap=none scss\ -node_modules\.bin\webpack +node_modules\.bin\webpack --config webpack.prod.js Copy-Item dist ..\app\ -recurse cd .. From b7b81b080c8f10b00c022a5461edb2dfc7df4a49 Mon Sep 17 00:00:00 2001 From: Jeremy Kauffman Date: Mon, 13 Nov 2017 10:29:13 -0500 Subject: [PATCH 10/26] =?UTF-8?q?Bump=20version:=200.18.0rc4=20=E2=86=92?= =?UTF-8?q?=200.18.0rc5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .bumpversion.cfg | 2 +- app/package.json | 2 +- ui/package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 6c9bfacc1..435ef0a6a 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.18.0rc4 +current_version = 0.18.0rc5 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+)((?P[a-z]+)(?P\d+))? diff --git a/app/package.json b/app/package.json index 8ba5df0b5..5255f9c87 100644 --- a/app/package.json +++ b/app/package.json @@ -1,6 +1,6 @@ { "name": "LBRY", - "version": "0.18.0rc4", + "version": "0.18.0rc5", "main": "main.js", "description": "A browser for the LBRY network, a digital marketplace controlled by its users.", "homepage": "https://github.com/lbryio/lbry-app", diff --git a/ui/package.json b/ui/package.json index a7b4eab52..31db24142 100644 --- a/ui/package.json +++ b/ui/package.json @@ -1,6 +1,6 @@ { "name": "lbry-web-ui", - "version": "0.18.0rc4", + "version": "0.18.0rc5", "description": "LBRY UI", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", From 7bdfa65ba1ba315280789cf9bb5e43c81796ea68 Mon Sep 17 00:00:00 2001 From: Sean Yesmunt Date: Mon, 13 Nov 2017 10:50:41 -0500 Subject: [PATCH 11/26] Fix windows ui build --- build/build.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/build.ps1 b/build/build.ps1 index ac0951d81..17e1373d5 100644 --- a/build/build.ps1 +++ b/build/build.ps1 @@ -23,7 +23,7 @@ cd ui yarn install npm rebuild node-sass node_modules\.bin\node-sass --output dist\css --sourcemap=none scss\ -node_modules\.bin\webpack +node_modules\.bin\webpack --config webpack.prod.js Copy-Item dist ..\app\ -recurse cd .. From cdbfd73893c095814a3b2fd32181bd6644ec6008 Mon Sep 17 00:00:00 2001 From: Jeremy Kauffman Date: Mon, 13 Nov 2017 13:42:04 -0500 Subject: [PATCH 12/26] =?UTF-8?q?Bump=20version:=200.18.0rc5=20=E2=86=92?= =?UTF-8?q?=200.18.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .bumpversion.cfg | 2 +- CHANGELOG.md | 40 ++++++++++++++++++++++++++++------------ app/package.json | 2 +- ui/package.json | 2 +- 4 files changed, 31 insertions(+), 15 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 435ef0a6a..bd37e853e 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.18.0rc5 +current_version = 0.18.0 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+)((?P[a-z]+)(?P\d+))? diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e74c34dc..f096ace72 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,24 +8,16 @@ Web UI version numbers should always match the corresponding version of LBRY App ## [Unreleased] ### Added - * Trending! The landing page of the app now features content that is surging in popularity relative to past interest. - * The app now closes to the system tray. This will help improve publish seeding and network performance. Directing the app to quit or exit will close it entirely. (#374) - * You can now revoke past publishes to receive your credits. (#581) - * You can now unlock tips sent to you so you can send them elsewhere or spend them. (#581) - * Added new window menu options for reloading and help. - * Rewards are now marked in transaction history (#660) + * * ### Changed - * Daemon updated to [v0.18.0](https://github.com/lbryio/lbry/releases/tag/v0.18.0). The largest changes here are several more network improvements and fixes as well as functionality and improvements related to concurrent heavier usage (bugs and issues largely discoverd by spee.ch). - * Improved build and first-run process for new developers. - * Replaced all instances of `XMLHttpRequest` with native `Fetch` API (#676). + * * ### Fixed - * Fixed console errors on settings page related to improper React input properties. - * Fixed modals being too narrow after font change (#709) - * Fixed bug that prevented new channel and first publish rewards from being claimed (#290) + * + * ### Deprecated * @@ -35,6 +27,30 @@ Web UI version numbers should always match the corresponding version of LBRY App * * +## [0.18.0] - 2017-11-13 + +### Added + * Trending! The landing page of the app now features content that is surging in popularity relative to past interest. + * The app now closes to the system tray. This will help improve publish seeding and network performance. Directing the app to quit or exit will close it entirely. (#374) + * You can now revoke past publishes to receive your credits. (#581) + * You can now unlock tips sent to you so you can send them elsewhere or spend them. (#581) + * Added new window menu options for reloading and help. + * Rewards are now marked in transaction history (#660) + + +### Changed + * Daemon updated to [v0.18.0](https://github.com/lbryio/lbry/releases/tag/v0.18.0). The largest changes here are several more network improvements and fixes as well as functionality and improvements related to concurrent heavier usage (bugs and issues largely discoverd by spee.ch). + * Improved build and first-run process for new developers. + * Replaced all instances of `XMLHttpRequest` with native `Fetch` API (#676). + + +### Fixed + * Fixed console errors on settings page related to improper React input properties. + * Fixed modals being too narrow after font change (#709) + * Fixed bug that prevented new channel and first publish rewards from being claimed (#290) + + + ## [0.17.1] - 2017-10-25 ### Changed diff --git a/app/package.json b/app/package.json index 5255f9c87..edf2f2e9d 100644 --- a/app/package.json +++ b/app/package.json @@ -1,6 +1,6 @@ { "name": "LBRY", - "version": "0.18.0rc5", + "version": "0.18.0", "main": "main.js", "description": "A browser for the LBRY network, a digital marketplace controlled by its users.", "homepage": "https://github.com/lbryio/lbry-app", diff --git a/ui/package.json b/ui/package.json index 31db24142..6b24baefb 100644 --- a/ui/package.json +++ b/ui/package.json @@ -1,6 +1,6 @@ { "name": "lbry-web-ui", - "version": "0.18.0rc5", + "version": "0.18.0", "description": "LBRY UI", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", From 6d39d22ac7d9160f4788fe78acf994e6770490c0 Mon Sep 17 00:00:00 2001 From: Sean Yesmunt Date: Mon, 13 Nov 2017 15:47:10 -0500 Subject: [PATCH 13/26] move redux code into /redux --- ui/js/{ => redux}/actions/app.js | 0 ui/js/{ => redux}/actions/availability.js | 0 ui/js/{ => redux}/actions/content.js | 0 ui/js/{ => redux}/actions/cost_info.js | 0 ui/js/{ => redux}/actions/file_info.js | 0 ui/js/{ => redux}/actions/navigation.js | 0 ui/js/{ => redux}/actions/rewards.js | 0 ui/js/{ => redux}/actions/search.js | 0 ui/js/{ => redux}/actions/settings.js | 0 ui/js/{ => redux}/actions/user.js | 0 ui/js/{ => redux}/actions/wallet.js | 0 ui/js/{ => redux}/reducers/app.js | 0 ui/js/{ => redux}/reducers/availability.js | 0 ui/js/{ => redux}/reducers/claims.js | 0 ui/js/{ => redux}/reducers/content.js | 0 ui/js/{ => redux}/reducers/cost_info.js | 0 ui/js/{ => redux}/reducers/file_info.js | 0 ui/js/{ => redux}/reducers/navigation.js | 0 ui/js/{ => redux}/reducers/rewards.js | 0 ui/js/{ => redux}/reducers/search.js | 0 ui/js/{ => redux}/reducers/settings.js | 0 ui/js/{ => redux}/reducers/user.js | 0 ui/js/{ => redux}/reducers/wallet.js | 0 ui/js/{ => redux}/selectors/app.js | 0 ui/js/{ => redux}/selectors/availability.js | 0 ui/js/{ => redux}/selectors/claims.js | 0 ui/js/{ => redux}/selectors/content.js | 0 ui/js/{ => redux}/selectors/cost_info.js | 0 ui/js/{ => redux}/selectors/file_info.js | 0 ui/js/{ => redux}/selectors/navigation.js | 2 +- ui/js/{ => redux}/selectors/rewards.js | 0 ui/js/{ => redux}/selectors/search.js | 0 ui/js/{ => redux}/selectors/settings.js | 0 ui/js/{ => redux}/selectors/user.js | 0 ui/js/{ => redux}/selectors/wallet.js | 0 35 files changed, 1 insertion(+), 1 deletion(-) rename ui/js/{ => redux}/actions/app.js (100%) rename ui/js/{ => redux}/actions/availability.js (100%) rename ui/js/{ => redux}/actions/content.js (100%) rename ui/js/{ => redux}/actions/cost_info.js (100%) rename ui/js/{ => redux}/actions/file_info.js (100%) rename ui/js/{ => redux}/actions/navigation.js (100%) rename ui/js/{ => redux}/actions/rewards.js (100%) rename ui/js/{ => redux}/actions/search.js (100%) rename ui/js/{ => redux}/actions/settings.js (100%) rename ui/js/{ => redux}/actions/user.js (100%) rename ui/js/{ => redux}/actions/wallet.js (100%) rename ui/js/{ => redux}/reducers/app.js (100%) rename ui/js/{ => redux}/reducers/availability.js (100%) rename ui/js/{ => redux}/reducers/claims.js (100%) rename ui/js/{ => redux}/reducers/content.js (100%) rename ui/js/{ => redux}/reducers/cost_info.js (100%) rename ui/js/{ => redux}/reducers/file_info.js (100%) rename ui/js/{ => redux}/reducers/navigation.js (100%) rename ui/js/{ => redux}/reducers/rewards.js (100%) rename ui/js/{ => redux}/reducers/search.js (100%) rename ui/js/{ => redux}/reducers/settings.js (100%) rename ui/js/{ => redux}/reducers/user.js (100%) rename ui/js/{ => redux}/reducers/wallet.js (100%) rename ui/js/{ => redux}/selectors/app.js (100%) rename ui/js/{ => redux}/selectors/availability.js (100%) rename ui/js/{ => redux}/selectors/claims.js (100%) rename ui/js/{ => redux}/selectors/content.js (100%) rename ui/js/{ => redux}/selectors/cost_info.js (100%) rename ui/js/{ => redux}/selectors/file_info.js (100%) rename ui/js/{ => redux}/selectors/navigation.js (99%) rename ui/js/{ => redux}/selectors/rewards.js (100%) rename ui/js/{ => redux}/selectors/search.js (100%) rename ui/js/{ => redux}/selectors/settings.js (100%) rename ui/js/{ => redux}/selectors/user.js (100%) rename ui/js/{ => redux}/selectors/wallet.js (100%) diff --git a/ui/js/actions/app.js b/ui/js/redux/actions/app.js similarity index 100% rename from ui/js/actions/app.js rename to ui/js/redux/actions/app.js diff --git a/ui/js/actions/availability.js b/ui/js/redux/actions/availability.js similarity index 100% rename from ui/js/actions/availability.js rename to ui/js/redux/actions/availability.js diff --git a/ui/js/actions/content.js b/ui/js/redux/actions/content.js similarity index 100% rename from ui/js/actions/content.js rename to ui/js/redux/actions/content.js diff --git a/ui/js/actions/cost_info.js b/ui/js/redux/actions/cost_info.js similarity index 100% rename from ui/js/actions/cost_info.js rename to ui/js/redux/actions/cost_info.js diff --git a/ui/js/actions/file_info.js b/ui/js/redux/actions/file_info.js similarity index 100% rename from ui/js/actions/file_info.js rename to ui/js/redux/actions/file_info.js diff --git a/ui/js/actions/navigation.js b/ui/js/redux/actions/navigation.js similarity index 100% rename from ui/js/actions/navigation.js rename to ui/js/redux/actions/navigation.js diff --git a/ui/js/actions/rewards.js b/ui/js/redux/actions/rewards.js similarity index 100% rename from ui/js/actions/rewards.js rename to ui/js/redux/actions/rewards.js diff --git a/ui/js/actions/search.js b/ui/js/redux/actions/search.js similarity index 100% rename from ui/js/actions/search.js rename to ui/js/redux/actions/search.js diff --git a/ui/js/actions/settings.js b/ui/js/redux/actions/settings.js similarity index 100% rename from ui/js/actions/settings.js rename to ui/js/redux/actions/settings.js diff --git a/ui/js/actions/user.js b/ui/js/redux/actions/user.js similarity index 100% rename from ui/js/actions/user.js rename to ui/js/redux/actions/user.js diff --git a/ui/js/actions/wallet.js b/ui/js/redux/actions/wallet.js similarity index 100% rename from ui/js/actions/wallet.js rename to ui/js/redux/actions/wallet.js diff --git a/ui/js/reducers/app.js b/ui/js/redux/reducers/app.js similarity index 100% rename from ui/js/reducers/app.js rename to ui/js/redux/reducers/app.js diff --git a/ui/js/reducers/availability.js b/ui/js/redux/reducers/availability.js similarity index 100% rename from ui/js/reducers/availability.js rename to ui/js/redux/reducers/availability.js diff --git a/ui/js/reducers/claims.js b/ui/js/redux/reducers/claims.js similarity index 100% rename from ui/js/reducers/claims.js rename to ui/js/redux/reducers/claims.js diff --git a/ui/js/reducers/content.js b/ui/js/redux/reducers/content.js similarity index 100% rename from ui/js/reducers/content.js rename to ui/js/redux/reducers/content.js diff --git a/ui/js/reducers/cost_info.js b/ui/js/redux/reducers/cost_info.js similarity index 100% rename from ui/js/reducers/cost_info.js rename to ui/js/redux/reducers/cost_info.js diff --git a/ui/js/reducers/file_info.js b/ui/js/redux/reducers/file_info.js similarity index 100% rename from ui/js/reducers/file_info.js rename to ui/js/redux/reducers/file_info.js diff --git a/ui/js/reducers/navigation.js b/ui/js/redux/reducers/navigation.js similarity index 100% rename from ui/js/reducers/navigation.js rename to ui/js/redux/reducers/navigation.js diff --git a/ui/js/reducers/rewards.js b/ui/js/redux/reducers/rewards.js similarity index 100% rename from ui/js/reducers/rewards.js rename to ui/js/redux/reducers/rewards.js diff --git a/ui/js/reducers/search.js b/ui/js/redux/reducers/search.js similarity index 100% rename from ui/js/reducers/search.js rename to ui/js/redux/reducers/search.js diff --git a/ui/js/reducers/settings.js b/ui/js/redux/reducers/settings.js similarity index 100% rename from ui/js/reducers/settings.js rename to ui/js/redux/reducers/settings.js diff --git a/ui/js/reducers/user.js b/ui/js/redux/reducers/user.js similarity index 100% rename from ui/js/reducers/user.js rename to ui/js/redux/reducers/user.js diff --git a/ui/js/reducers/wallet.js b/ui/js/redux/reducers/wallet.js similarity index 100% rename from ui/js/reducers/wallet.js rename to ui/js/redux/reducers/wallet.js diff --git a/ui/js/selectors/app.js b/ui/js/redux/selectors/app.js similarity index 100% rename from ui/js/selectors/app.js rename to ui/js/redux/selectors/app.js diff --git a/ui/js/selectors/availability.js b/ui/js/redux/selectors/availability.js similarity index 100% rename from ui/js/selectors/availability.js rename to ui/js/redux/selectors/availability.js diff --git a/ui/js/selectors/claims.js b/ui/js/redux/selectors/claims.js similarity index 100% rename from ui/js/selectors/claims.js rename to ui/js/redux/selectors/claims.js diff --git a/ui/js/selectors/content.js b/ui/js/redux/selectors/content.js similarity index 100% rename from ui/js/selectors/content.js rename to ui/js/redux/selectors/content.js diff --git a/ui/js/selectors/cost_info.js b/ui/js/redux/selectors/cost_info.js similarity index 100% rename from ui/js/selectors/cost_info.js rename to ui/js/redux/selectors/cost_info.js diff --git a/ui/js/selectors/file_info.js b/ui/js/redux/selectors/file_info.js similarity index 100% rename from ui/js/selectors/file_info.js rename to ui/js/redux/selectors/file_info.js diff --git a/ui/js/selectors/navigation.js b/ui/js/redux/selectors/navigation.js similarity index 99% rename from ui/js/selectors/navigation.js rename to ui/js/redux/selectors/navigation.js index 0d3965f3c..04d5b4856 100644 --- a/ui/js/selectors/navigation.js +++ b/ui/js/redux/selectors/navigation.js @@ -111,7 +111,7 @@ export const selectPageTitle = createSelector( return params.query ? __("Search results for %s", params.query) : __("Search"); - case "discover": + case "discover": case false: case null: case "": diff --git a/ui/js/selectors/rewards.js b/ui/js/redux/selectors/rewards.js similarity index 100% rename from ui/js/selectors/rewards.js rename to ui/js/redux/selectors/rewards.js diff --git a/ui/js/selectors/search.js b/ui/js/redux/selectors/search.js similarity index 100% rename from ui/js/selectors/search.js rename to ui/js/redux/selectors/search.js diff --git a/ui/js/selectors/settings.js b/ui/js/redux/selectors/settings.js similarity index 100% rename from ui/js/selectors/settings.js rename to ui/js/redux/selectors/settings.js diff --git a/ui/js/selectors/user.js b/ui/js/redux/selectors/user.js similarity index 100% rename from ui/js/selectors/user.js rename to ui/js/redux/selectors/user.js diff --git a/ui/js/selectors/wallet.js b/ui/js/redux/selectors/wallet.js similarity index 100% rename from ui/js/selectors/wallet.js rename to ui/js/redux/selectors/wallet.js From 8993c9524ed21a237ffba9254cd1efc6b15625ae Mon Sep 17 00:00:00 2001 From: Sean Yesmunt Date: Mon, 13 Nov 2017 16:02:23 -0500 Subject: [PATCH 14/26] update imports --- ui/js/component/app/index.js | 10 ++++---- ui/js/component/cardVerify/index.js | 2 +- ui/js/component/channelTile/index.js | 10 ++++---- ui/js/component/dateTime/index.js | 4 ++-- ui/js/component/fileActions/index.js | 8 +++---- ui/js/component/fileCard/index.js | 12 +++++----- ui/js/component/fileDetails/index.js | 6 ++--- ui/js/component/fileDownloadLink/index.js | 10 ++++---- ui/js/component/fileListSearch/index.js | 7 ++++-- ui/js/component/filePrice/index.js | 6 ++--- ui/js/component/fileTile/index.js | 12 +++++----- ui/js/component/header/index.js | 6 ++--- ui/js/component/inviteList/index.js | 2 +- ui/js/component/inviteNew/index.js | 6 ++--- ui/js/component/link/index.js | 2 +- ui/js/component/nsfwOverlay/index.js | 2 +- ui/js/component/rewardLink/index.js | 9 ++++--- ui/js/component/rewardListClaimed/index.js | 2 +- ui/js/component/rewardSummary/index.js | 2 +- ui/js/component/router/index.js | 2 +- ui/js/component/snackBar/index.js | 4 ++-- ui/js/component/splash/index.js | 7 ++++-- ui/js/component/subHeader/index.js | 7 ++++-- ui/js/component/theme/index.js | 2 +- ui/js/component/transactionList/index.js | 8 +++---- .../component/transactionListRecent/index.js | 4 ++-- ui/js/component/uriIndicator/index.js | 6 ++--- ui/js/component/userEmailNew/index.js | 4 ++-- ui/js/component/userEmailVerify/index.js | 4 ++-- ui/js/component/userVerify/index.js | 8 +++---- ui/js/component/video/index.js | 16 ++++++------- ui/js/component/walletAddress/index.js | 4 ++-- ui/js/component/walletBalance/index.js | 2 +- ui/js/component/walletSend/index.js | 4 ++-- ui/js/component/walletSendTip/index.js | 6 ++--- ui/js/component/wunderbar/index.js | 7 ++++-- ui/js/main.js | 6 ++--- ui/js/modal/modalAffirmPurchase/index.js | 6 ++--- ui/js/modal/modalAuthFailure/index.js | 2 +- ui/js/modal/modalCreditIntro/index.js | 12 +++++----- ui/js/modal/modalDownloading/index.js | 7 ++++-- ui/js/modal/modalError/index.js | 2 +- ui/js/modal/modalFileTimeout/index.js | 4 ++-- ui/js/modal/modalFirstReward/index.js | 4 ++-- ui/js/modal/modalIncompatibleDaemon/index.js | 2 +- ui/js/modal/modalInsufficientBalance/index.js | 4 ++-- ui/js/modal/modalInsufficientCredits/index.js | 4 ++-- ui/js/modal/modalRemoveFile/index.js | 11 +++++---- ui/js/modal/modalRevokeClaim/index.js | 6 ++--- .../modalRewardApprovalRequired/index.js | 4 ++-- ui/js/modal/modalRouter/index.js | 14 +++++------ ui/js/modal/modalTransactionFailed/index.js | 2 +- ui/js/modal/modalUpgrade/index.js | 2 +- ui/js/modal/modalWelcome/index.js | 4 ++-- ui/js/page/auth/index.js | 6 ++--- ui/js/page/backup/index.js | 2 +- ui/js/page/channel/index.js | 10 ++++---- ui/js/page/discover/index.js | 4 ++-- ui/js/page/file/index.js | 18 +++++++------- ui/js/page/fileListDownloaded/index.js | 10 ++++---- ui/js/page/fileListPublished/index.js | 8 +++---- ui/js/page/help/index.js | 6 ++--- ui/js/page/invite/index.js | 4 ++-- ui/js/page/publish/index.js | 12 +++++----- ui/js/page/report.js | 2 +- ui/js/page/rewards/index.js | 8 +++---- ui/js/page/search/index.js | 4 ++-- ui/js/page/settings/index.js | 8 +++---- ui/js/page/show/index.js | 6 ++--- ui/js/page/transactionHistory/index.js | 4 ++-- ui/js/redux/actions/app.js | 10 ++++---- ui/js/redux/actions/availability.js | 2 +- ui/js/redux/actions/content.js | 18 +++++++------- ui/js/redux/actions/cost_info.js | 8 +++---- ui/js/redux/actions/file_info.js | 10 ++++---- ui/js/redux/actions/navigation.js | 4 ++-- ui/js/redux/actions/rewards.js | 4 ++-- ui/js/redux/actions/search.js | 6 ++--- ui/js/redux/actions/settings.js | 2 +- ui/js/redux/actions/user.js | 6 ++--- ui/js/redux/actions/wallet.js | 6 ++--- ui/js/redux/selectors/claims.js | 2 +- ui/js/redux/selectors/cost_info.js | 2 +- ui/js/redux/selectors/file_info.js | 2 +- ui/js/redux/selectors/rewards.js | 2 +- ui/js/redux/selectors/search.js | 2 +- ui/js/rewards.js | 2 +- ui/js/store.js | 24 +++++++++---------- 88 files changed, 277 insertions(+), 256 deletions(-) diff --git a/ui/js/component/app/index.js b/ui/js/component/app/index.js index 06ff45f18..e178a0c75 100644 --- a/ui/js/component/app/index.js +++ b/ui/js/component/app/index.js @@ -1,10 +1,10 @@ import React from "react"; import { connect } from "react-redux"; -import { selectPageTitle } from "selectors/navigation"; -import { selectUser } from "selectors/user"; -import { doCheckUpgradeAvailable, doAlertError } from "actions/app"; -import { doRecordScroll } from "actions/navigation"; -import { doFetchRewardedContent } from "actions/content"; +import { selectPageTitle } from "redux/selectors/navigation"; +import { selectUser } from "redux/selectors/user"; +import { doCheckUpgradeAvailable, doAlertError } from "redux/actions/app"; +import { doRecordScroll } from "redux/actions/navigation"; +import { doFetchRewardedContent } from "redux/actions/content"; import App from "./view"; const select = (state, props) => ({ diff --git a/ui/js/component/cardVerify/index.js b/ui/js/component/cardVerify/index.js index 32cd22aef..53bdf05b9 100644 --- a/ui/js/component/cardVerify/index.js +++ b/ui/js/component/cardVerify/index.js @@ -1,6 +1,6 @@ import React from "react"; import { connect } from "react-redux"; -import { selectUserEmail } from "selectors/user"; +import { selectUserEmail } from "redux/selectors/user"; import CardVerify from "./view"; const select = state => ({ diff --git a/ui/js/component/channelTile/index.js b/ui/js/component/channelTile/index.js index 6cc68149f..4c86e8b14 100644 --- a/ui/js/component/channelTile/index.js +++ b/ui/js/component/channelTile/index.js @@ -1,10 +1,10 @@ import React from "react"; import { connect } from "react-redux"; -import { makeSelectClaimForUri } from "selectors/claims"; -import { doNavigate } from "actions/navigation"; -import { doResolveUri } from "actions/content"; -import { makeSelectTotalItemsForChannel } from "selectors/content"; -import { makeSelectIsUriResolving } from "selectors/content"; +import { makeSelectClaimForUri } from "redux/selectors/claims"; +import { doNavigate } from "redux/actions/navigation"; +import { doResolveUri } from "redux/actions/content"; +import { makeSelectTotalItemsForChannel } from "redux/selectors/content"; +import { makeSelectIsUriResolving } from "redux/selectors/content"; import ChannelTile from "./view"; const select = (state, props) => ({ diff --git a/ui/js/component/dateTime/index.js b/ui/js/component/dateTime/index.js index 81ef4b165..106de7126 100644 --- a/ui/js/component/dateTime/index.js +++ b/ui/js/component/dateTime/index.js @@ -1,7 +1,7 @@ import React from "react"; import { connect } from "react-redux"; -import { makeSelectBlockDate } from "selectors/wallet"; -import { doFetchBlock } from "actions/wallet"; +import { makeSelectBlockDate } from "redux/selectors/wallet"; +import { doFetchBlock } from "redux/actions/wallet"; import DateTime from "./view"; const select = (state, props) => ({ diff --git a/ui/js/component/fileActions/index.js b/ui/js/component/fileActions/index.js index 68597a571..53030756f 100644 --- a/ui/js/component/fileActions/index.js +++ b/ui/js/component/fileActions/index.js @@ -1,9 +1,9 @@ import React from "react"; import { connect } from "react-redux"; -import { makeSelectFileInfoForUri } from "selectors/file_info"; -import { makeSelectCostInfoForUri } from "selectors/cost_info"; -import { doOpenModal } from "actions/app"; -import { makeSelectClaimIsMine } from "selectors/claims"; +import { makeSelectFileInfoForUri } from "redux/selectors/file_info"; +import { makeSelectCostInfoForUri } from "redux/selectors/cost_info"; +import { doOpenModal } from "redux/actions/app"; +import { makeSelectClaimIsMine } from "redux/selectors/claims"; import FileActions from "./view"; const select = (state, props) => ({ diff --git a/ui/js/component/fileCard/index.js b/ui/js/component/fileCard/index.js index a0de51640..49edc94d8 100644 --- a/ui/js/component/fileCard/index.js +++ b/ui/js/component/fileCard/index.js @@ -1,17 +1,17 @@ import React from "react"; import { connect } from "react-redux"; -import { doNavigate } from "actions/navigation"; -import { doResolveUri } from "actions/content"; -import { selectShowNsfw } from "selectors/settings"; +import { doNavigate } from "redux/actions/navigation"; +import { doResolveUri } from "redux/actions/content"; +import { selectShowNsfw } from "redux/selectors/settings"; import { makeSelectClaimForUri, makeSelectMetadataForUri, -} from "selectors/claims"; -import { makeSelectFileInfoForUri } from "selectors/file_info"; +} from "redux/selectors/claims"; +import { makeSelectFileInfoForUri } from "redux/selectors/file_info"; import { makeSelectIsUriResolving, selectRewardContentClaimIds, -} from "selectors/content"; +} from "redux/selectors/content"; import FileCard from "./view"; const select = (state, props) => ({ diff --git a/ui/js/component/fileDetails/index.js b/ui/js/component/fileDetails/index.js index 738746d0a..fb29fe042 100644 --- a/ui/js/component/fileDetails/index.js +++ b/ui/js/component/fileDetails/index.js @@ -4,10 +4,10 @@ import { makeSelectClaimForUri, makeSelectContentTypeForUri, makeSelectMetadataForUri, -} from "selectors/claims"; +} from "redux/selectors/claims"; import FileDetails from "./view"; -import { doOpenFileInFolder } from "actions/file_info"; -import { makeSelectFileInfoForUri } from "selectors/file_info"; +import { doOpenFileInFolder } from "redux/actions/file_info"; +import { makeSelectFileInfoForUri } from "redux/selectors/file_info"; const select = (state, props) => ({ claim: makeSelectClaimForUri(props.uri)(state), diff --git a/ui/js/component/fileDownloadLink/index.js b/ui/js/component/fileDownloadLink/index.js index 2131b5f78..d7988c067 100644 --- a/ui/js/component/fileDownloadLink/index.js +++ b/ui/js/component/fileDownloadLink/index.js @@ -4,11 +4,11 @@ import { makeSelectFileInfoForUri, makeSelectDownloadingForUri, makeSelectLoadingForUri, -} from "selectors/file_info"; -import { makeSelectCostInfoForUri } from "selectors/cost_info"; -import { doFetchAvailability } from "actions/availability"; -import { doOpenFileInShell } from "actions/file_info"; -import { doPurchaseUri, doStartDownload } from "actions/content"; +} from "redux/selectors/file_info"; +import { makeSelectCostInfoForUri } from "redux/selectors/cost_info"; +import { doFetchAvailability } from "redux/actions/availability"; +import { doOpenFileInShell } from "redux/actions/file_info"; +import { doPurchaseUri, doStartDownload } from "redux/actions/content"; import FileDownloadLink from "./view"; const select = (state, props) => ({ diff --git a/ui/js/component/fileListSearch/index.js b/ui/js/component/fileListSearch/index.js index 6d70fe190..cd6e087f6 100644 --- a/ui/js/component/fileListSearch/index.js +++ b/ui/js/component/fileListSearch/index.js @@ -1,7 +1,10 @@ import React from "react"; import { connect } from "react-redux"; -import { doSearch } from "actions/search"; -import { selectIsSearching, makeSelectSearchUris } from "selectors/search"; +import { doSearch } from "redux/actions/search"; +import { + selectIsSearching, + makeSelectSearchUris, +} from "redux/selectors/search"; import FileListSearch from "./view"; const select = (state, props) => ({ diff --git a/ui/js/component/filePrice/index.js b/ui/js/component/filePrice/index.js index bac5cafe2..7460b0a4e 100644 --- a/ui/js/component/filePrice/index.js +++ b/ui/js/component/filePrice/index.js @@ -1,11 +1,11 @@ import React from "react"; import { connect } from "react-redux"; -import { doFetchCostInfoForUri } from "actions/cost_info"; +import { doFetchCostInfoForUri } from "redux/actions/cost_info"; import { makeSelectCostInfoForUri, makeSelectFetchingCostInfoForUri, -} from "selectors/cost_info"; -import { makeSelectClaimForUri } from "selectors/claims"; +} from "redux/selectors/cost_info"; +import { makeSelectClaimForUri } from "redux/selectors/claims"; import FilePrice from "./view"; const select = (state, props) => ({ diff --git a/ui/js/component/fileTile/index.js b/ui/js/component/fileTile/index.js index 75b6ce62b..f352b1633 100644 --- a/ui/js/component/fileTile/index.js +++ b/ui/js/component/fileTile/index.js @@ -1,17 +1,17 @@ import React from "react"; import { connect } from "react-redux"; -import { doNavigate } from "actions/navigation"; -import { doResolveUri } from "actions/content"; +import { doNavigate } from "redux/actions/navigation"; +import { doResolveUri } from "redux/actions/content"; import { makeSelectClaimForUri, makeSelectMetadataForUri, -} from "selectors/claims"; -import { makeSelectFileInfoForUri } from "selectors/file_info"; -import { selectShowNsfw } from "selectors/settings"; +} from "redux/selectors/claims"; +import { makeSelectFileInfoForUri } from "redux/selectors/file_info"; +import { selectShowNsfw } from "redux/selectors/settings"; import { makeSelectIsUriResolving, selectRewardContentClaimIds, -} from "selectors/content"; +} from "redux/selectors/content"; import FileTile from "./view"; const select = (state, props) => ({ diff --git a/ui/js/component/header/index.js b/ui/js/component/header/index.js index 08d5bb9cb..e461f4efa 100644 --- a/ui/js/component/header/index.js +++ b/ui/js/component/header/index.js @@ -4,13 +4,13 @@ import { connect } from "react-redux"; import { selectIsBackDisabled, selectIsForwardDisabled, -} from "selectors/navigation"; -import { selectBalance } from "selectors/wallet"; +} from "redux/selectors/navigation"; +import { selectBalance } from "redux/selectors/wallet"; import { doNavigate, doHistoryBack, doHistoryForward, -} from "actions/navigation"; +} from "redux/actions/navigation"; import Header from "./view"; const select = state => ({ diff --git a/ui/js/component/inviteList/index.js b/ui/js/component/inviteList/index.js index 3f7361454..638ce63f5 100644 --- a/ui/js/component/inviteList/index.js +++ b/ui/js/component/inviteList/index.js @@ -3,7 +3,7 @@ import { connect } from "react-redux"; import { selectUserInvitees, selectUserInviteStatusIsPending, -} from "selectors/user"; +} from "redux/selectors/user"; import InviteList from "./view"; const select = state => ({ diff --git a/ui/js/component/inviteNew/index.js b/ui/js/component/inviteNew/index.js index b31213b3f..c2d4e66ec 100644 --- a/ui/js/component/inviteNew/index.js +++ b/ui/js/component/inviteNew/index.js @@ -5,11 +5,11 @@ import { selectUserInvitesRemaining, selectUserInviteNewIsPending, selectUserInviteNewErrorMessage, -} from "selectors/user"; +} from "redux/selectors/user"; import rewards from "rewards"; -import { makeSelectRewardAmountByType } from "selectors/rewards"; +import { makeSelectRewardAmountByType } from "redux/selectors/rewards"; -import { doUserInviteNew } from "actions/user"; +import { doUserInviteNew } from "redux/actions/user"; const select = state => { const selectReward = makeSelectRewardAmountByType(); diff --git a/ui/js/component/link/index.js b/ui/js/component/link/index.js index 37340987a..d7c8b6a18 100644 --- a/ui/js/component/link/index.js +++ b/ui/js/component/link/index.js @@ -1,6 +1,6 @@ import React from "react"; import { connect } from "react-redux"; -import { doNavigate } from "actions/navigation"; +import { doNavigate } from "redux/actions/navigation"; import Link from "./view"; const perform = dispatch => ({ diff --git a/ui/js/component/nsfwOverlay/index.js b/ui/js/component/nsfwOverlay/index.js index 8395df0ac..aa847f16f 100644 --- a/ui/js/component/nsfwOverlay/index.js +++ b/ui/js/component/nsfwOverlay/index.js @@ -1,6 +1,6 @@ import React from "react"; import { connect } from "react-redux"; -import { doNavigate } from "actions/navigation"; +import { doNavigate } from "redux/actions/navigation"; import NsfwOverlay from "./view"; const perform = dispatch => ({ diff --git a/ui/js/component/rewardLink/index.js b/ui/js/component/rewardLink/index.js index aa2034835..04eb383af 100644 --- a/ui/js/component/rewardLink/index.js +++ b/ui/js/component/rewardLink/index.js @@ -4,9 +4,12 @@ import { makeSelectClaimRewardError, makeSelectRewardByType, makeSelectIsRewardClaimPending, -} from "selectors/rewards"; -import { doNavigate } from "actions/navigation"; -import { doClaimRewardType, doClaimRewardClearError } from "actions/rewards"; +} from "redux/selectors/rewards"; +import { doNavigate } from "redux/actions/navigation"; +import { + doClaimRewardType, + doClaimRewardClearError, +} from "redux/actions/rewards"; import RewardLink from "./view"; const makeSelect = () => { diff --git a/ui/js/component/rewardListClaimed/index.js b/ui/js/component/rewardListClaimed/index.js index 095121cad..45f98bdc5 100644 --- a/ui/js/component/rewardListClaimed/index.js +++ b/ui/js/component/rewardListClaimed/index.js @@ -1,6 +1,6 @@ import React from "react"; import { connect } from "react-redux"; -import { selectClaimedRewards } from "selectors/rewards"; +import { selectClaimedRewards } from "redux/selectors/rewards"; import RewardListClaimed from "./view"; const select = state => ({ diff --git a/ui/js/component/rewardSummary/index.js b/ui/js/component/rewardSummary/index.js index dac44f34f..a2b64dfbb 100644 --- a/ui/js/component/rewardSummary/index.js +++ b/ui/js/component/rewardSummary/index.js @@ -1,6 +1,6 @@ import React from "react"; import { connect } from "react-redux"; -import { selectUnclaimedRewardValue } from "selectors/rewards"; +import { selectUnclaimedRewardValue } from "redux/selectors/rewards"; import RewardSummary from "./view"; const select = state => ({ diff --git a/ui/js/component/router/index.js b/ui/js/component/router/index.js index a5c0e9e63..ed413c66f 100644 --- a/ui/js/component/router/index.js +++ b/ui/js/component/router/index.js @@ -4,7 +4,7 @@ import Router from "./view.jsx"; import { selectCurrentPage, selectCurrentParams, -} from "selectors/navigation.js"; +} from "redux/selectors/navigation.js"; const select = state => ({ params: selectCurrentParams(state), diff --git a/ui/js/component/snackBar/index.js b/ui/js/component/snackBar/index.js index ff083c3d3..64dc70196 100644 --- a/ui/js/component/snackBar/index.js +++ b/ui/js/component/snackBar/index.js @@ -1,7 +1,7 @@ import React from "react"; import { connect } from "react-redux"; -import { doRemoveSnackBarSnack } from "actions/app"; -import { selectSnackBarSnacks } from "selectors/app"; +import { doRemoveSnackBarSnack } from "redux/actions/app"; +import { selectSnackBarSnacks } from "redux/selectors/app"; import SnackBar from "./view"; const perform = dispatch => ({ diff --git a/ui/js/component/splash/index.js b/ui/js/component/splash/index.js index 1a87f476b..82712fa15 100644 --- a/ui/js/component/splash/index.js +++ b/ui/js/component/splash/index.js @@ -1,8 +1,11 @@ import React from "react"; import { connect } from "react-redux"; -import { selectCurrentModal, selectDaemonVersionMatched } from "selectors/app"; -import { doCheckDaemonVersion } from "actions/app"; +import { + selectCurrentModal, + selectDaemonVersionMatched, +} from "redux/selectors/app"; +import { doCheckDaemonVersion } from "redux/actions/app"; import SplashScreen from "./view"; const select = state => { diff --git a/ui/js/component/subHeader/index.js b/ui/js/component/subHeader/index.js index 2806828ae..d74d46306 100644 --- a/ui/js/component/subHeader/index.js +++ b/ui/js/component/subHeader/index.js @@ -1,7 +1,10 @@ import React from "react"; import { connect } from "react-redux"; -import { selectCurrentPage, selectHeaderLinks } from "selectors/navigation"; -import { doNavigate } from "actions/navigation"; +import { + selectCurrentPage, + selectHeaderLinks, +} from "redux/selectors/navigation"; +import { doNavigate } from "redux/actions/navigation"; import SubHeader from "./view"; const select = (state, props) => ({ diff --git a/ui/js/component/theme/index.js b/ui/js/component/theme/index.js index ad95b5297..c6940828f 100644 --- a/ui/js/component/theme/index.js +++ b/ui/js/component/theme/index.js @@ -1,6 +1,6 @@ import React from "react"; import { connect } from "react-redux"; -import { selectThemePath } from "selectors/settings.js"; +import { selectThemePath } from "redux/selectors/settings.js"; import Theme from "./view"; const select = state => ({ diff --git a/ui/js/component/transactionList/index.js b/ui/js/component/transactionList/index.js index 48ea3bc05..12d5ea42f 100644 --- a/ui/js/component/transactionList/index.js +++ b/ui/js/component/transactionList/index.js @@ -1,9 +1,9 @@ import React from "react"; import { connect } from "react-redux"; -import { doNavigate } from "actions/navigation"; -import { doOpenModal } from "actions/app"; -import { selectClaimedRewardsByTransactionId } from "selectors/rewards"; -import { selectAllMyClaimsByOutpoint } from "selectors/claims"; +import { doNavigate } from "redux/actions/navigation"; +import { doOpenModal } from "redux/actions/app"; +import { selectClaimedRewardsByTransactionId } from "redux/selectors/rewards"; +import { selectAllMyClaimsByOutpoint } from "redux/selectors/claims"; import TransactionList from "./view"; const select = state => ({ diff --git a/ui/js/component/transactionListRecent/index.js b/ui/js/component/transactionListRecent/index.js index bea2fdac1..1813cf00e 100644 --- a/ui/js/component/transactionListRecent/index.js +++ b/ui/js/component/transactionListRecent/index.js @@ -1,12 +1,12 @@ import React from "react"; import { connect } from "react-redux"; -import { doFetchTransactions } from "actions/wallet"; +import { doFetchTransactions } from "redux/actions/wallet"; import { selectBalance, selectRecentTransactions, selectHasTransactions, selectIsFetchingTransactions, -} from "selectors/wallet"; +} from "redux/selectors/wallet"; import TransactionListRecent from "./view"; diff --git a/ui/js/component/uriIndicator/index.js b/ui/js/component/uriIndicator/index.js index a57c33b15..1b3ddabec 100644 --- a/ui/js/component/uriIndicator/index.js +++ b/ui/js/component/uriIndicator/index.js @@ -1,9 +1,9 @@ import React from "react"; import lbryuri from "lbryuri"; import { connect } from "react-redux"; -import { doResolveUri } from "actions/content"; -import { makeSelectIsUriResolving } from "selectors/content"; -import { makeSelectClaimForUri } from "selectors/claims"; +import { doResolveUri } from "redux/actions/content"; +import { makeSelectIsUriResolving } from "redux/selectors/content"; +import { makeSelectClaimForUri } from "redux/selectors/claims"; import UriIndicator from "./view"; const select = (state, props) => ({ diff --git a/ui/js/component/userEmailNew/index.js b/ui/js/component/userEmailNew/index.js index 699f794ec..2efc29794 100644 --- a/ui/js/component/userEmailNew/index.js +++ b/ui/js/component/userEmailNew/index.js @@ -1,10 +1,10 @@ import React from "react"; import { connect } from "react-redux"; -import { doUserEmailNew, doUserInviteNew } from "actions/user"; +import { doUserEmailNew, doUserInviteNew } from "redux/actions/user"; import { selectEmailNewIsPending, selectEmailNewErrorMessage, -} from "selectors/user"; +} from "redux/selectors/user"; import UserEmailNew from "./view"; const select = state => ({ diff --git a/ui/js/component/userEmailVerify/index.js b/ui/js/component/userEmailVerify/index.js index f2ae56c86..d267c1c89 100644 --- a/ui/js/component/userEmailVerify/index.js +++ b/ui/js/component/userEmailVerify/index.js @@ -1,11 +1,11 @@ import React from "react"; import { connect } from "react-redux"; -import { doUserEmailVerify } from "actions/user"; +import { doUserEmailVerify } from "redux/actions/user"; import { selectEmailVerifyIsPending, selectEmailToVerify, selectEmailVerifyErrorMessage, -} from "selectors/user"; +} from "redux/selectors/user"; import UserEmailVerify from "./view"; const select = state => ({ diff --git a/ui/js/component/userVerify/index.js b/ui/js/component/userVerify/index.js index b90719084..046bafdb0 100644 --- a/ui/js/component/userVerify/index.js +++ b/ui/js/component/userVerify/index.js @@ -1,13 +1,13 @@ import React from "react"; import { connect } from "react-redux"; -import { doNavigate } from "actions/navigation"; -import { doUserIdentityVerify } from "actions/user"; +import { doNavigate } from "redux/actions/navigation"; +import { doUserIdentityVerify } from "redux/actions/user"; import rewards from "rewards"; -import { makeSelectRewardByType } from "selectors/rewards"; +import { makeSelectRewardByType } from "redux/selectors/rewards"; import { selectIdentityVerifyIsPending, selectIdentityVerifyErrorMessage, -} from "selectors/user"; +} from "redux/selectors/user"; import UserVerify from "./view"; const select = (state, props) => { diff --git a/ui/js/component/video/index.js b/ui/js/component/video/index.js index 3c80869dc..a9b0ed62d 100644 --- a/ui/js/component/video/index.js +++ b/ui/js/component/video/index.js @@ -1,21 +1,21 @@ import React from "react"; import { connect } from "react-redux"; -import { doChangeVolume } from "actions/app"; -import { selectVolume } from "selectors/app"; -import { doPlayUri, doSetPlayingUri } from "actions/content"; +import { doChangeVolume } from "redux/actions/app"; +import { selectVolume } from "redux/selectors/app"; +import { doPlayUri, doSetPlayingUri } from "redux/actions/content"; import { makeSelectMetadataForUri, makeSelectContentTypeForUri, -} from "selectors/claims"; +} from "redux/selectors/claims"; import { makeSelectFileInfoForUri, makeSelectLoadingForUri, makeSelectDownloadingForUri, -} from "selectors/file_info"; -import { makeSelectCostInfoForUri } from "selectors/cost_info"; -import { selectShowNsfw } from "selectors/settings"; +} from "redux/selectors/file_info"; +import { makeSelectCostInfoForUri } from "redux/selectors/cost_info"; +import { selectShowNsfw } from "redux/selectors/settings"; import Video from "./view"; -import { selectPlayingUri } from "selectors/content"; +import { selectPlayingUri } from "redux/selectors/content"; const select = (state, props) => ({ costInfo: makeSelectCostInfoForUri(props.uri)(state), diff --git a/ui/js/component/walletAddress/index.js b/ui/js/component/walletAddress/index.js index d5a8d7696..f335249f8 100644 --- a/ui/js/component/walletAddress/index.js +++ b/ui/js/component/walletAddress/index.js @@ -1,10 +1,10 @@ import React from "react"; import { connect } from "react-redux"; -import { doCheckAddressIsMine, doGetNewAddress } from "actions/wallet"; +import { doCheckAddressIsMine, doGetNewAddress } from "redux/actions/wallet"; import { selectReceiveAddress, selectGettingNewAddress, -} from "selectors/wallet"; +} from "redux/selectors/wallet"; import WalletAddress from "./view"; const select = state => ({ diff --git a/ui/js/component/walletBalance/index.js b/ui/js/component/walletBalance/index.js index 1121cc463..e67f90acc 100644 --- a/ui/js/component/walletBalance/index.js +++ b/ui/js/component/walletBalance/index.js @@ -1,6 +1,6 @@ import React from "react"; import { connect } from "react-redux"; -import { selectBalance } from "selectors/wallet"; +import { selectBalance } from "redux/selectors/wallet"; import WalletBalance from "./view"; const select = state => ({ diff --git a/ui/js/component/walletSend/index.js b/ui/js/component/walletSend/index.js index d396dc92c..87344fa37 100644 --- a/ui/js/component/walletSend/index.js +++ b/ui/js/component/walletSend/index.js @@ -4,12 +4,12 @@ import { doSendDraftTransaction, doSetDraftTransactionAmount, doSetDraftTransactionAddress, -} from "actions/wallet"; +} from "redux/actions/wallet"; import { selectDraftTransactionAmount, selectDraftTransactionAddress, selectDraftTransactionError, -} from "selectors/wallet"; +} from "redux/selectors/wallet"; import WalletSend from "./view"; diff --git a/ui/js/component/walletSendTip/index.js b/ui/js/component/walletSendTip/index.js index 6d3275321..109eec9c1 100644 --- a/ui/js/component/walletSendTip/index.js +++ b/ui/js/component/walletSendTip/index.js @@ -1,9 +1,9 @@ import React from "react"; import { connect } from "react-redux"; -import { doSendSupport } from "actions/wallet"; +import { doSendSupport } from "redux/actions/wallet"; import WalletSendTip from "./view"; -import { makeSelectTitleForUri } from "selectors/claims"; -import { selectIsSendingSupport } from "selectors/wallet"; +import { makeSelectTitleForUri } from "redux/selectors/claims"; +import { selectIsSendingSupport } from "redux/selectors/wallet"; const select = (state, props) => ({ isPending: selectIsSendingSupport(state), diff --git a/ui/js/component/wunderbar/index.js b/ui/js/component/wunderbar/index.js index bd327fd92..81bab941d 100644 --- a/ui/js/component/wunderbar/index.js +++ b/ui/js/component/wunderbar/index.js @@ -1,8 +1,11 @@ import React from "react"; import { connect } from "react-redux"; import lbryuri from "lbryuri.js"; -import { selectWunderBarAddress, selectWunderBarIcon } from "selectors/search"; -import { doNavigate } from "actions/navigation"; +import { + selectWunderBarAddress, + selectWunderBarIcon, +} from "redux/selectors/search"; +import { doNavigate } from "redux/actions/navigation"; import Wunderbar from "./view"; const select = state => ({ diff --git a/ui/js/main.js b/ui/js/main.js index b074f4b6d..2b55421ba 100644 --- a/ui/js/main.js +++ b/ui/js/main.js @@ -5,9 +5,9 @@ import SnackBar from "component/snackBar"; import { Provider } from "react-redux"; import store from "store.js"; import SplashScreen from "component/splash"; -import { doDaemonReady } from "actions/app"; -import { doNavigate } from "actions/navigation"; -import { doDownloadLanguages } from "actions/settings"; +import { doDaemonReady } from "redux/actions/app"; +import { doNavigate } from "redux/actions/navigation"; +import { doDownloadLanguages } from "redux/actions/settings"; import * as types from "constants/action_types"; const env = ENV; diff --git a/ui/js/modal/modalAffirmPurchase/index.js b/ui/js/modal/modalAffirmPurchase/index.js index d0f4affa2..d128e31b1 100644 --- a/ui/js/modal/modalAffirmPurchase/index.js +++ b/ui/js/modal/modalAffirmPurchase/index.js @@ -1,8 +1,8 @@ import React from "react"; import { connect } from "react-redux"; -import { doCloseModal } from "actions/app"; -import { doLoadVideo, doSetPlayingUri } from "actions/content"; -import { makeSelectMetadataForUri } from "selectors/claims"; +import { doCloseModal } from "redux/actions/app"; +import { doLoadVideo, doSetPlayingUri } from "redux/actions/content"; +import { makeSelectMetadataForUri } from "redux/selectors/claims"; import ModalAffirmPurchase from "./view"; const select = (state, props) => ({ diff --git a/ui/js/modal/modalAuthFailure/index.js b/ui/js/modal/modalAuthFailure/index.js index 1a7fbfa3a..6e1aa708d 100644 --- a/ui/js/modal/modalAuthFailure/index.js +++ b/ui/js/modal/modalAuthFailure/index.js @@ -1,6 +1,6 @@ import React from "react"; import { connect } from "react-redux"; -import { doCloseModal } from "actions/app"; +import { doCloseModal } from "redux/actions/app"; import ModalAuthFailure from "./view"; const select = state => ({}); diff --git a/ui/js/modal/modalCreditIntro/index.js b/ui/js/modal/modalCreditIntro/index.js index c793ec22a..b07a868b7 100644 --- a/ui/js/modal/modalCreditIntro/index.js +++ b/ui/js/modal/modalCreditIntro/index.js @@ -1,15 +1,15 @@ import React from "react"; import { connect } from "react-redux"; -import { doCloseModal } from "actions/app"; -import { doAuthNavigate } from "actions/navigation"; -import { doSetClientSetting } from "actions/settings"; -import { selectUserIsRewardApproved } from "selectors/user"; -import { selectBalance } from "selectors/wallet"; +import { doCloseModal } from "redux/actions/app"; +import { doAuthNavigate } from "redux/actions/navigation"; +import { doSetClientSetting } from "redux/actions/settings"; +import { selectUserIsRewardApproved } from "redux/selectors/user"; +import { selectBalance } from "redux/selectors/wallet"; import { makeSelectHasClaimedReward, makeSelectRewardByType, selectUnclaimedRewardValue, -} from "selectors/rewards"; +} from "redux/selectors/rewards"; import * as settings from "constants/settings"; import ModalCreditIntro from "./view"; diff --git a/ui/js/modal/modalDownloading/index.js b/ui/js/modal/modalDownloading/index.js index a8a316658..56b385a2d 100644 --- a/ui/js/modal/modalDownloading/index.js +++ b/ui/js/modal/modalDownloading/index.js @@ -1,7 +1,10 @@ import React from "react"; import { connect } from "react-redux"; -import { doStartUpgrade, doCancelUpgrade } from "actions/app"; -import { selectDownloadProgress, selectDownloadComplete } from "selectors/app"; +import { doStartUpgrade, doCancelUpgrade } from "redux/actions/app"; +import { + selectDownloadProgress, + selectDownloadComplete, +} from "redux/selectors/app"; import ModalDownloading from "./view"; const select = state => ({ diff --git a/ui/js/modal/modalError/index.js b/ui/js/modal/modalError/index.js index b1cb30f1b..b9ce5c21e 100644 --- a/ui/js/modal/modalError/index.js +++ b/ui/js/modal/modalError/index.js @@ -1,6 +1,6 @@ import React from "react"; import { connect } from "react-redux"; -import { doCloseModal } from "actions/app"; +import { doCloseModal } from "redux/actions/app"; import ModalError from "./view"; const perform = dispatch => ({ diff --git a/ui/js/modal/modalFileTimeout/index.js b/ui/js/modal/modalFileTimeout/index.js index 9410bcf34..a204b8149 100644 --- a/ui/js/modal/modalFileTimeout/index.js +++ b/ui/js/modal/modalFileTimeout/index.js @@ -1,7 +1,7 @@ import React from "react"; import { connect } from "react-redux"; -import { doCloseModal } from "actions/app"; -import { makeSelectMetadataForUri } from "selectors/claims"; +import { doCloseModal } from "redux/actions/app"; +import { makeSelectMetadataForUri } from "redux/selectors/claims"; import ModalFileTimeout from "./view"; const select = state => ({ diff --git a/ui/js/modal/modalFirstReward/index.js b/ui/js/modal/modalFirstReward/index.js index 5993a990e..6993f938c 100644 --- a/ui/js/modal/modalFirstReward/index.js +++ b/ui/js/modal/modalFirstReward/index.js @@ -1,8 +1,8 @@ import React from "react"; import rewards from "rewards"; import { connect } from "react-redux"; -import { doCloseModal } from "actions/app"; -import { makeSelectRewardByType } from "selectors/rewards"; +import { doCloseModal } from "redux/actions/app"; +import { makeSelectRewardByType } from "redux/selectors/rewards"; import ModalFirstReward from "./view"; const select = (state, props) => { diff --git a/ui/js/modal/modalIncompatibleDaemon/index.js b/ui/js/modal/modalIncompatibleDaemon/index.js index 669e67316..f8e45c9d4 100644 --- a/ui/js/modal/modalIncompatibleDaemon/index.js +++ b/ui/js/modal/modalIncompatibleDaemon/index.js @@ -1,6 +1,6 @@ import React from "react"; import { connect } from "react-redux"; -import { doQuit, doSkipWrongDaemonNotice } from "actions/app"; +import { doQuit, doSkipWrongDaemonNotice } from "redux/actions/app"; import ModalIncompatibleDaemon from "./view"; const select = state => ({}); diff --git a/ui/js/modal/modalInsufficientBalance/index.js b/ui/js/modal/modalInsufficientBalance/index.js index 5e94a9f9e..9ffcc3342 100644 --- a/ui/js/modal/modalInsufficientBalance/index.js +++ b/ui/js/modal/modalInsufficientBalance/index.js @@ -1,7 +1,7 @@ import React from "react"; import { connect } from "react-redux"; -import { doCloseModal } from "actions/app"; -import { doNavigate } from "actions/navigation"; +import { doCloseModal } from "redux/actions/app"; +import { doNavigate } from "redux/actions/navigation"; import ModalInsufficientBalance from "./view"; const select = state => ({}); diff --git a/ui/js/modal/modalInsufficientCredits/index.js b/ui/js/modal/modalInsufficientCredits/index.js index c50d34d44..aea41dd13 100644 --- a/ui/js/modal/modalInsufficientCredits/index.js +++ b/ui/js/modal/modalInsufficientCredits/index.js @@ -1,7 +1,7 @@ import React from "react"; import { connect } from "react-redux"; -import { doCloseModal } from "actions/app"; -import { doNavigate } from "actions/navigation"; +import { doCloseModal } from "redux/actions/app"; +import { doNavigate } from "redux/actions/navigation"; import ModalInsufficientCredits from "./view"; const select = state => ({}); diff --git a/ui/js/modal/modalRemoveFile/index.js b/ui/js/modal/modalRemoveFile/index.js index 39ae89ceb..e49bbc7aa 100644 --- a/ui/js/modal/modalRemoveFile/index.js +++ b/ui/js/modal/modalRemoveFile/index.js @@ -1,9 +1,12 @@ import React from "react"; import { connect } from "react-redux"; -import { doCloseModal } from "actions/app"; -import { doDeleteFileAndGoBack } from "actions/file_info"; -import { makeSelectTitleForUri, makeSelectClaimIsMine } from "selectors/claims"; -import { makeSelectFileInfoForUri } from "selectors/file_info"; +import { doCloseModal } from "redux/actions/app"; +import { doDeleteFileAndGoBack } from "redux/actions/file_info"; +import { + makeSelectTitleForUri, + makeSelectClaimIsMine, +} from "redux/selectors/claims"; +import { makeSelectFileInfoForUri } from "redux/selectors/file_info"; import ModalRemoveFile from "./view"; const select = (state, props) => ({ diff --git a/ui/js/modal/modalRevokeClaim/index.js b/ui/js/modal/modalRevokeClaim/index.js index 766095b64..1d09b4daa 100644 --- a/ui/js/modal/modalRevokeClaim/index.js +++ b/ui/js/modal/modalRevokeClaim/index.js @@ -1,8 +1,8 @@ import React from "react"; import { connect } from "react-redux"; -import { doCloseModal } from "actions/app"; -import { doAbandonClaim } from "actions/content"; -import { selectTransactionItems } from "selectors/wallet"; +import { doCloseModal } from "redux/actions/app"; +import { doAbandonClaim } from "redux/actions/content"; +import { selectTransactionItems } from "redux/selectors/wallet"; import ModalRevokeClaim from "./view"; const select = state => ({ diff --git a/ui/js/modal/modalRewardApprovalRequired/index.js b/ui/js/modal/modalRewardApprovalRequired/index.js index 15413b6e3..d85b70a28 100644 --- a/ui/js/modal/modalRewardApprovalRequired/index.js +++ b/ui/js/modal/modalRewardApprovalRequired/index.js @@ -1,7 +1,7 @@ import React from "react"; import { connect } from "react-redux"; -import { doCloseModal } from "actions/app"; -import { doAuthNavigate } from "actions/navigation"; +import { doCloseModal } from "redux/actions/app"; +import { doAuthNavigate } from "redux/actions/navigation"; import ModalRewardApprovalRequired from "./view"; const perform = dispatch => ({ diff --git a/ui/js/modal/modalRouter/index.js b/ui/js/modal/modalRouter/index.js index c0c637167..9b4f4d00d 100644 --- a/ui/js/modal/modalRouter/index.js +++ b/ui/js/modal/modalRouter/index.js @@ -1,13 +1,13 @@ import React from "react"; import { connect } from "react-redux"; -import { doOpenModal } from "actions/app"; +import { doOpenModal } from "redux/actions/app"; import * as settings from "constants/settings"; -import { selectCurrentModal, selectModalProps } from "selectors/app"; -import { selectCurrentPage } from "selectors/navigation"; -import { selectCostForCurrentPageUri } from "selectors/cost_info"; -import { makeSelectClientSetting } from "selectors/settings"; -import { selectUser } from "selectors/user"; -import { selectBalance } from "selectors/wallet"; +import { selectCurrentModal, selectModalProps } from "redux/selectors/app"; +import { selectCurrentPage } from "redux/selectors/navigation"; +import { selectCostForCurrentPageUri } from "redux/selectors/cost_info"; +import { makeSelectClientSetting } from "redux/selectors/settings"; +import { selectUser } from "redux/selectors/user"; +import { selectBalance } from "redux/selectors/wallet"; import ModalRouter from "./view"; const select = (state, props) => ({ diff --git a/ui/js/modal/modalTransactionFailed/index.js b/ui/js/modal/modalTransactionFailed/index.js index 4b370a7c8..5274a2467 100644 --- a/ui/js/modal/modalTransactionFailed/index.js +++ b/ui/js/modal/modalTransactionFailed/index.js @@ -1,6 +1,6 @@ import React from "react"; import { connect } from "react-redux"; -import { doCloseModal } from "actions/app"; +import { doCloseModal } from "redux/actions/app"; import ModalTransactionFailed from "./view"; const select = state => ({}); diff --git a/ui/js/modal/modalUpgrade/index.js b/ui/js/modal/modalUpgrade/index.js index ae4d815c7..1ba5a5dc1 100644 --- a/ui/js/modal/modalUpgrade/index.js +++ b/ui/js/modal/modalUpgrade/index.js @@ -1,6 +1,6 @@ import React from "react"; import { connect } from "react-redux"; -import { doDownloadUpgrade, doSkipUpgrade } from "actions/app"; +import { doDownloadUpgrade, doSkipUpgrade } from "redux/actions/app"; import ModalUpgrade from "./view"; const select = state => ({}); diff --git a/ui/js/modal/modalWelcome/index.js b/ui/js/modal/modalWelcome/index.js index dd2cc0f29..e093ce883 100644 --- a/ui/js/modal/modalWelcome/index.js +++ b/ui/js/modal/modalWelcome/index.js @@ -2,8 +2,8 @@ import React from "react"; import * as settings from "constants/settings"; import * as modals from "constants/modal_types"; import { connect } from "react-redux"; -import { doCloseModal, doOpenModal } from "actions/app"; -import { doSetClientSetting } from "actions/settings"; +import { doCloseModal, doOpenModal } from "redux/actions/app"; +import { doSetClientSetting } from "redux/actions/settings"; import ModalWelcome from "./view"; const perform = dispatch => () => ({ diff --git a/ui/js/page/auth/index.js b/ui/js/page/auth/index.js index 205400088..aa8edf48d 100644 --- a/ui/js/page/auth/index.js +++ b/ui/js/page/auth/index.js @@ -1,7 +1,7 @@ import React from "react"; -import { doNavigate } from "actions/navigation"; +import { doNavigate } from "redux/actions/navigation"; import { connect } from "react-redux"; -import { selectPathAfterAuth } from "selectors/navigation"; +import { selectPathAfterAuth } from "redux/selectors/navigation"; import { selectAuthenticationIsPending, selectEmailToVerify, @@ -9,7 +9,7 @@ import { selectUser, selectUserIsPending, selectIdentityVerifyIsPending, -} from "selectors/user"; +} from "redux/selectors/user"; import AuthPage from "./view"; const select = state => ({ diff --git a/ui/js/page/backup/index.js b/ui/js/page/backup/index.js index fd83a400f..0766083c9 100644 --- a/ui/js/page/backup/index.js +++ b/ui/js/page/backup/index.js @@ -1,6 +1,6 @@ import React from "react"; import { connect } from "react-redux"; -import { selectDaemonSettings } from "selectors/settings"; +import { selectDaemonSettings } from "redux/selectors/settings"; import BackupPage from "./view"; const select = state => ({ diff --git a/ui/js/page/channel/index.js b/ui/js/page/channel/index.js index f69d5b15e..4597fd573 100644 --- a/ui/js/page/channel/index.js +++ b/ui/js/page/channel/index.js @@ -3,18 +3,18 @@ import { connect } from "react-redux"; import { doFetchClaimsByChannel, doFetchClaimCountByChannel, -} from "actions/content"; +} from "redux/actions/content"; import { makeSelectClaimForUri, makeSelectClaimsInChannelForCurrentPage, makeSelectFetchingChannelClaims, -} from "selectors/claims"; +} from "redux/selectors/claims"; import { makeSelectCurrentParam, selectCurrentParams, -} from "selectors/navigation"; -import { doNavigate } from "actions/navigation"; -import { makeSelectTotalPagesForChannel } from "selectors/content"; +} from "redux/selectors/navigation"; +import { doNavigate } from "redux/actions/navigation"; +import { makeSelectTotalPagesForChannel } from "redux/selectors/content"; import ChannelPage from "./view"; const select = (state, props) => ({ diff --git a/ui/js/page/discover/index.js b/ui/js/page/discover/index.js index 01f9add5e..396351025 100644 --- a/ui/js/page/discover/index.js +++ b/ui/js/page/discover/index.js @@ -1,10 +1,10 @@ import React from "react"; import { connect } from "react-redux"; -import { doFetchFeaturedUris } from "actions/content"; +import { doFetchFeaturedUris } from "redux/actions/content"; import { selectFeaturedUris, selectFetchingFeaturedUris, -} from "selectors/content"; +} from "redux/selectors/content"; import DiscoverPage from "./view"; const select = state => ({ diff --git a/ui/js/page/file/index.js b/ui/js/page/file/index.js index e56391051..2e5373c25 100644 --- a/ui/js/page/file/index.js +++ b/ui/js/page/file/index.js @@ -1,19 +1,19 @@ import React from "react"; import { connect } from "react-redux"; -import { doNavigate } from "actions/navigation"; -import { doFetchFileInfo } from "actions/file_info"; -import { makeSelectFileInfoForUri } from "selectors/file_info"; -import { selectRewardContentClaimIds } from "selectors/content"; -import { doFetchCostInfoForUri } from "actions/cost_info"; +import { doNavigate } from "redux/actions/navigation"; +import { doFetchFileInfo } from "redux/actions/file_info"; +import { makeSelectFileInfoForUri } from "redux/selectors/file_info"; +import { selectRewardContentClaimIds } from "redux/selectors/content"; +import { doFetchCostInfoForUri } from "redux/actions/cost_info"; import { makeSelectClaimForUri, makeSelectContentTypeForUri, makeSelectMetadataForUri, -} from "selectors/claims"; -import { makeSelectCostInfoForUri } from "selectors/cost_info"; -import { selectShowNsfw } from "selectors/settings"; +} from "redux/selectors/claims"; +import { makeSelectCostInfoForUri } from "redux/selectors/cost_info"; +import { selectShowNsfw } from "redux/selectors/settings"; import FilePage from "./view"; -import { makeSelectCurrentParam } from "selectors/navigation"; +import { makeSelectCurrentParam } from "redux/selectors/navigation"; const select = (state, props) => ({ claim: makeSelectClaimForUri(props.uri)(state), diff --git a/ui/js/page/fileListDownloaded/index.js b/ui/js/page/fileListDownloaded/index.js index 2da37ca9c..ec68d1014 100644 --- a/ui/js/page/fileListDownloaded/index.js +++ b/ui/js/page/fileListDownloaded/index.js @@ -1,16 +1,16 @@ import React from "react"; import { connect } from "react-redux"; -import { doFetchFileInfosAndPublishedClaims } from "actions/file_info"; +import { doFetchFileInfosAndPublishedClaims } from "redux/actions/file_info"; import { selectFileInfosDownloaded, selectIsFetchingFileListDownloadedOrPublished, -} from "selectors/file_info"; +} from "redux/selectors/file_info"; import { selectMyClaimsWithoutChannels, selectIsFetchingClaimListMine, -} from "selectors/claims"; -import { doFetchClaimListMine } from "actions/content"; -import { doNavigate } from "actions/navigation"; +} from "redux/selectors/claims"; +import { doFetchClaimListMine } from "redux/actions/content"; +import { doNavigate } from "redux/actions/navigation"; import FileListDownloaded from "./view"; const select = state => ({ diff --git a/ui/js/page/fileListPublished/index.js b/ui/js/page/fileListPublished/index.js index 5b04e101e..bf93aa71b 100644 --- a/ui/js/page/fileListPublished/index.js +++ b/ui/js/page/fileListPublished/index.js @@ -1,13 +1,13 @@ import React from "react"; import rewards from "rewards"; import { connect } from "react-redux"; -import { doFetchClaimListMine } from "actions/content"; +import { doFetchClaimListMine } from "redux/actions/content"; import { selectMyClaimsWithoutChannels, selectIsFetchingClaimListMine, -} from "selectors/claims"; -import { doClaimRewardType } from "actions/rewards"; -import { doNavigate } from "actions/navigation"; +} from "redux/selectors/claims"; +import { doClaimRewardType } from "redux/actions/rewards"; +import { doNavigate } from "redux/actions/navigation"; import FileListPublished from "./view"; const select = state => ({ diff --git a/ui/js/page/help/index.js b/ui/js/page/help/index.js index 601cdb8a7..746fd4d65 100644 --- a/ui/js/page/help/index.js +++ b/ui/js/page/help/index.js @@ -1,8 +1,8 @@ import React from "react"; -import { doAuthNavigate } from "actions/navigation"; +import { doAuthNavigate } from "redux/actions/navigation"; import { connect } from "react-redux"; -import { doFetchAccessToken } from "actions/user"; -import { selectAccessToken, selectUser } from "selectors/user"; +import { doFetchAccessToken } from "redux/actions/user"; +import { selectAccessToken, selectUser } from "redux/selectors/user"; import HelpPage from "./view"; const select = state => ({ diff --git a/ui/js/page/invite/index.js b/ui/js/page/invite/index.js index c97cd1b29..596526eee 100644 --- a/ui/js/page/invite/index.js +++ b/ui/js/page/invite/index.js @@ -1,11 +1,11 @@ import React from "react"; import { connect } from "react-redux"; import InvitePage from "./view"; -import { doFetchInviteStatus } from "actions/user"; +import { doFetchInviteStatus } from "redux/actions/user"; import { selectUserInviteStatusFailed, selectUserInviteStatusIsPending, -} from "selectors/user"; +} from "redux/selectors/user"; const select = state => ({ isFailed: selectUserInviteStatusFailed(state), diff --git a/ui/js/page/publish/index.js b/ui/js/page/publish/index.js index f0547941d..f8ec16c23 100644 --- a/ui/js/page/publish/index.js +++ b/ui/js/page/publish/index.js @@ -1,22 +1,22 @@ import React from "react"; import { connect } from "react-redux"; -import { doNavigate, doHistoryBack } from "actions/navigation"; -import { doClaimRewardType } from "actions/rewards"; +import { doNavigate, doHistoryBack } from "redux/actions/navigation"; +import { doClaimRewardType } from "redux/actions/rewards"; import { selectMyClaims, selectFetchingMyChannels, selectMyChannelClaims, selectClaimsByUri, -} from "selectors/claims"; -import { selectResolvingUris } from "selectors/content"; +} from "redux/selectors/claims"; +import { selectResolvingUris } from "redux/selectors/content"; import { doFetchClaimListMine, doFetchChannelListMine, doResolveUri, doCreateChannel, doPublish, -} from "actions/content"; -import { selectBalance } from "selectors/wallet"; +} from "redux/actions/content"; +import { selectBalance } from "redux/selectors/wallet"; import rewards from "rewards"; import PublishPage from "./view"; diff --git a/ui/js/page/report.js b/ui/js/page/report.js index c24d367d9..321cc723e 100644 --- a/ui/js/page/report.js +++ b/ui/js/page/report.js @@ -1,7 +1,7 @@ import React from "react"; import Link from "component/link"; import { FormRow } from "component/form"; -import { doShowSnackBar } from "actions/app"; +import { doShowSnackBar } from "redux/actions/app"; import lbry from "../lbry.js"; class ReportPage extends React.Component { diff --git a/ui/js/page/rewards/index.js b/ui/js/page/rewards/index.js index e9dca47f9..84262e7c2 100644 --- a/ui/js/page/rewards/index.js +++ b/ui/js/page/rewards/index.js @@ -3,10 +3,10 @@ import { connect } from "react-redux"; import { selectFetchingRewards, selectUnclaimedRewards, -} from "selectors/rewards"; -import { selectUser } from "selectors/user"; -import { doAuthNavigate, doNavigate } from "actions/navigation"; -import { doRewardList } from "actions/rewards"; +} from "redux/selectors/rewards"; +import { selectUser } from "redux/selectors/user"; +import { doAuthNavigate, doNavigate } from "redux/actions/navigation"; +import { doRewardList } from "redux/actions/rewards"; import RewardsPage from "./view"; const select = (state, props) => { diff --git a/ui/js/page/search/index.js b/ui/js/page/search/index.js index 8426f3637..b184768a9 100644 --- a/ui/js/page/search/index.js +++ b/ui/js/page/search/index.js @@ -1,7 +1,7 @@ import React from "react"; import { connect } from "react-redux"; -import { selectIsSearching, selectSearchQuery } from "selectors/search"; -import { doNavigate } from "actions/navigation"; +import { selectIsSearching, selectSearchQuery } from "redux/selectors/search"; +import { doNavigate } from "redux/actions/navigation"; import SearchPage from "./view"; const select = state => ({ diff --git a/ui/js/page/settings/index.js b/ui/js/page/settings/index.js index c22cbdbe7..ad76676b4 100644 --- a/ui/js/page/settings/index.js +++ b/ui/js/page/settings/index.js @@ -1,20 +1,20 @@ import React from "react"; import { connect } from "react-redux"; import * as settings from "constants/settings"; -import { doClearCache } from "actions/app"; +import { doClearCache } from "redux/actions/app"; import { doSetDaemonSetting, doSetClientSetting, doGetThemes, doSetTheme, doChangeLanguage, -} from "actions/settings"; +} from "redux/actions/settings"; import { makeSelectClientSetting, selectDaemonSettings, selectLanguages, -} from "selectors/settings"; -import { selectCurrentLanguage } from "selectors/app"; +} from "redux/selectors/settings"; +import { selectCurrentLanguage } from "redux/selectors/app"; import SettingsPage from "./view"; const select = state => ({ diff --git a/ui/js/page/show/index.js b/ui/js/page/show/index.js index 94b380381..d8c628387 100644 --- a/ui/js/page/show/index.js +++ b/ui/js/page/show/index.js @@ -1,8 +1,8 @@ import React from "react"; import { connect } from "react-redux"; -import { doResolveUri } from "actions/content"; -import { makeSelectClaimForUri } from "selectors/claims"; -import { makeSelectIsUriResolving } from "selectors/content"; +import { doResolveUri } from "redux/actions/content"; +import { makeSelectClaimForUri } from "redux/selectors/claims"; +import { makeSelectIsUriResolving } from "redux/selectors/content"; import ShowPage from "./view"; const select = (state, props) => ({ diff --git a/ui/js/page/transactionHistory/index.js b/ui/js/page/transactionHistory/index.js index 12acf47ad..bea2b4976 100644 --- a/ui/js/page/transactionHistory/index.js +++ b/ui/js/page/transactionHistory/index.js @@ -1,10 +1,10 @@ import React from "react"; import { connect } from "react-redux"; -import { doFetchTransactions } from "actions/wallet"; +import { doFetchTransactions } from "redux/actions/wallet"; import { selectTransactionItems, selectIsFetchingTransactions, -} from "selectors/wallet"; +} from "redux/selectors/wallet"; import TransactionHistoryPage from "./view"; const select = state => ({ diff --git a/ui/js/redux/actions/app.js b/ui/js/redux/actions/app.js index 0ccc6a977..e4c60cddf 100644 --- a/ui/js/redux/actions/app.js +++ b/ui/js/redux/actions/app.js @@ -5,11 +5,11 @@ import { selectUpgradeDownloadPath, selectUpgradeDownloadItem, selectUpgradeFilename, -} from "selectors/app"; -import { doFetchDaemonSettings } from "actions/settings"; -import { doBalanceSubscribe } from "actions/wallet"; -import { doAuthenticate } from "actions/user"; -import { doFetchFileInfosAndPublishedClaims } from "actions/file_info"; +} from "redux/selectors/app"; +import { doFetchDaemonSettings } from "redux/actions/settings"; +import { doBalanceSubscribe } from "redux/actions/wallet"; +import { doAuthenticate } from "redux/actions/user"; +import { doFetchFileInfosAndPublishedClaims } from "redux/actions/file_info"; import * as modals from "constants/modal_types"; const { remote, ipcRenderer, shell } = require("electron"); diff --git a/ui/js/redux/actions/availability.js b/ui/js/redux/actions/availability.js index 4cde9d2ed..5be5eb760 100644 --- a/ui/js/redux/actions/availability.js +++ b/ui/js/redux/actions/availability.js @@ -1,6 +1,6 @@ import * as types from "constants/action_types"; import lbry from "lbry"; -import { selectFetchingAvailability } from "selectors/availability"; +import { selectFetchingAvailability } from "redux/selectors/availability"; export function doFetchAvailability(uri) { return function(dispatch, getState) { diff --git a/ui/js/redux/actions/content.js b/ui/js/redux/actions/content.js index 6347536c0..886fb28d3 100644 --- a/ui/js/redux/actions/content.js +++ b/ui/js/redux/actions/content.js @@ -3,18 +3,18 @@ import * as settings from "constants/settings"; import lbry from "lbry"; import lbryio from "lbryio"; import lbryuri from "lbryuri"; -import { makeSelectClientSetting } from "selectors/settings"; -import { selectBalance, selectTransactionItems } from "selectors/wallet"; +import { makeSelectClientSetting } from "redux/selectors/settings"; +import { selectBalance, selectTransactionItems } from "redux/selectors/wallet"; import { makeSelectFileInfoForUri, selectDownloadingByOutpoint, -} from "selectors/file_info"; -import { selectResolvingUris } from "selectors/content"; -import { makeSelectCostInfoForUri } from "selectors/cost_info"; -import { doAlertError, doOpenModal } from "actions/app"; -import { doClaimEligiblePurchaseRewards } from "actions/rewards"; -import { selectBadgeNumber } from "selectors/app"; -import { selectTotalDownloadProgress } from "selectors/file_info"; +} from "redux/selectors/file_info"; +import { selectResolvingUris } from "redux/selectors/content"; +import { makeSelectCostInfoForUri } from "redux/selectors/cost_info"; +import { doAlertError, doOpenModal } from "redux/actions/app"; +import { doClaimEligiblePurchaseRewards } from "redux/actions/rewards"; +import { selectBadgeNumber } from "redux/selectors/app"; +import { selectTotalDownloadProgress } from "redux/selectors/file_info"; import setBadge from "util/setBadge"; import setProgressBar from "util/setProgressBar"; import batchActions from "util/batchActions"; diff --git a/ui/js/redux/actions/cost_info.js b/ui/js/redux/actions/cost_info.js index 001c4ae56..70a1a5a36 100644 --- a/ui/js/redux/actions/cost_info.js +++ b/ui/js/redux/actions/cost_info.js @@ -1,10 +1,10 @@ import * as types from "constants/action_types"; import lbry from "lbry"; import lbryio from "lbryio"; -import { doResolveUri } from "actions/content"; -import { selectResolvingUris } from "selectors/content"; -import { selectClaimsByUri } from "selectors/claims"; -import { selectSettingsIsGenerous } from "selectors/settings"; +import { doResolveUri } from "redux/actions/content"; +import { selectResolvingUris } from "redux/selectors/content"; +import { selectClaimsByUri } from "redux/selectors/claims"; +import { selectSettingsIsGenerous } from "redux/selectors/settings"; export function doFetchCostInfoForUri(uri) { return function(dispatch, getState) { diff --git a/ui/js/redux/actions/file_info.js b/ui/js/redux/actions/file_info.js index ef9a742d5..84062ee23 100644 --- a/ui/js/redux/actions/file_info.js +++ b/ui/js/redux/actions/file_info.js @@ -1,19 +1,19 @@ import * as types from "constants/action_types"; import lbry from "lbry"; -import { doFetchClaimListMine, doAbandonClaim } from "actions/content"; +import { doFetchClaimListMine, doAbandonClaim } from "redux/actions/content"; import { selectClaimsByUri, selectIsFetchingClaimListMine, selectMyClaimsOutpoints, -} from "selectors/claims"; +} from "redux/selectors/claims"; import { selectIsFetchingFileList, selectFileInfosByOutpoint, selectUrisLoading, selectTotalDownloadProgress, -} from "selectors/file_info"; -import { doCloseModal } from "actions/app"; -import { doNavigate, doHistoryBack } from "actions/navigation"; +} from "redux/selectors/file_info"; +import { doCloseModal } from "redux/actions/app"; +import { doNavigate, doHistoryBack } from "redux/actions/navigation"; import setProgressBar from "util/setProgressBar"; import batchActions from "util/batchActions"; diff --git a/ui/js/redux/actions/navigation.js b/ui/js/redux/actions/navigation.js index 0ab3a22eb..c236c3fcb 100644 --- a/ui/js/redux/actions/navigation.js +++ b/ui/js/redux/actions/navigation.js @@ -6,8 +6,8 @@ import { selectCurrentParams, selectHistoryStack, selectHistoryIndex, -} from "selectors/navigation"; -import { doSearch } from "actions/search"; +} from "redux/selectors/navigation"; +import { doSearch } from "redux/actions/search"; import { toQueryString } from "util/query_params"; export function doNavigate(path, params = {}, options = {}) { diff --git a/ui/js/redux/actions/rewards.js b/ui/js/redux/actions/rewards.js index 274298d48..9ebc3d715 100644 --- a/ui/js/redux/actions/rewards.js +++ b/ui/js/redux/actions/rewards.js @@ -2,8 +2,8 @@ import * as types from "constants/action_types"; import * as modals from "constants/modal_types"; import lbryio from "lbryio"; import rewards from "rewards"; -import { selectUnclaimedRewardsByType } from "selectors/rewards"; -import { selectUserIsRewardApproved } from "selectors/user"; +import { selectUnclaimedRewardsByType } from "redux/selectors/rewards"; +import { selectUserIsRewardApproved } from "redux/selectors/user"; export function doRewardList() { return function(dispatch, getState) { diff --git a/ui/js/redux/actions/search.js b/ui/js/redux/actions/search.js index 80b014b73..80c269882 100644 --- a/ui/js/redux/actions/search.js +++ b/ui/js/redux/actions/search.js @@ -1,8 +1,8 @@ import * as types from "constants/action_types"; import lbryuri from "lbryuri"; -import { doResolveUri } from "actions/content"; -import { doNavigate } from "actions/navigation"; -import { selectCurrentPage } from "selectors/navigation"; +import { doResolveUri } from "redux/actions/content"; +import { doNavigate } from "redux/actions/navigation"; +import { selectCurrentPage } from "redux/selectors/navigation"; import batchActions from "util/batchActions"; export function doSearch(rawQuery) { diff --git a/ui/js/redux/actions/settings.js b/ui/js/redux/actions/settings.js index 6a2455bf9..8d7e45a55 100644 --- a/ui/js/redux/actions/settings.js +++ b/ui/js/redux/actions/settings.js @@ -1,6 +1,6 @@ import * as types from "constants/action_types"; import * as settings from "constants/settings"; -import { doAlertError } from "actions/app"; +import { doAlertError } from "redux/actions/app"; import batchActions from "util/batchActions"; import lbry from "lbry"; diff --git a/ui/js/redux/actions/user.js b/ui/js/redux/actions/user.js index 05f361f4a..5f1acf595 100644 --- a/ui/js/redux/actions/user.js +++ b/ui/js/redux/actions/user.js @@ -1,9 +1,9 @@ import * as types from "constants/action_types"; import * as modals from "constants/modal_types"; import lbryio from "lbryio"; -import { doOpenModal, doShowSnackBar } from "actions/app"; -import { doRewardList, doClaimRewardType } from "actions/rewards"; -import { selectEmailToVerify, selectUser } from "selectors/user"; +import { doOpenModal, doShowSnackBar } from "redux/actions/app"; +import { doRewardList, doClaimRewardType } from "redux/actions/rewards"; +import { selectEmailToVerify, selectUser } from "redux/selectors/user"; import rewards from "rewards"; export function doAuthenticate() { diff --git a/ui/js/redux/actions/wallet.js b/ui/js/redux/actions/wallet.js index e7b36597a..fbd744ecb 100644 --- a/ui/js/redux/actions/wallet.js +++ b/ui/js/redux/actions/wallet.js @@ -4,9 +4,9 @@ import { selectDraftTransaction, selectDraftTransactionAmount, selectBalance, -} from "selectors/wallet"; -import { doOpenModal, doShowSnackBar } from "actions/app"; -import { doNavigate } from "actions/navigation"; +} from "redux/selectors/wallet"; +import { doOpenModal, doShowSnackBar } from "redux/actions/app"; +import { doNavigate } from "redux/actions/navigation"; import * as modals from "constants/modal_types"; export function doUpdateBalance() { diff --git a/ui/js/redux/selectors/claims.js b/ui/js/redux/selectors/claims.js index c29522dcf..fead14b85 100644 --- a/ui/js/redux/selectors/claims.js +++ b/ui/js/redux/selectors/claims.js @@ -1,5 +1,5 @@ import { createSelector } from "reselect"; -import { selectCurrentParams } from "selectors/navigation"; +import { selectCurrentParams } from "redux/selectors/navigation"; import lbryuri from "lbryuri"; import { makeSelectCurrentParam } from "./navigation"; diff --git a/ui/js/redux/selectors/cost_info.js b/ui/js/redux/selectors/cost_info.js index d7c17cefa..1bf6c1fe7 100644 --- a/ui/js/redux/selectors/cost_info.js +++ b/ui/js/redux/selectors/cost_info.js @@ -1,5 +1,5 @@ import { createSelector } from "reselect"; -import { selectCurrentParams } from "selectors/navigation"; +import { selectCurrentParams } from "redux/selectors/navigation"; export const _selectState = state => state.costInfo || {}; diff --git a/ui/js/redux/selectors/file_info.js b/ui/js/redux/selectors/file_info.js index 431454dfc..0bf76ef2f 100644 --- a/ui/js/redux/selectors/file_info.js +++ b/ui/js/redux/selectors/file_info.js @@ -5,7 +5,7 @@ import { selectIsFetchingClaimListMine, selectMyClaims, selectMyClaimsOutpoints, -} from "selectors/claims"; +} from "redux/selectors/claims"; export const _selectState = state => state.fileInfo || {}; diff --git a/ui/js/redux/selectors/rewards.js b/ui/js/redux/selectors/rewards.js index f9fbc4fe4..c481a1977 100644 --- a/ui/js/redux/selectors/rewards.js +++ b/ui/js/redux/selectors/rewards.js @@ -1,5 +1,5 @@ import { createSelector } from "reselect"; -import { selectUser } from "selectors/user"; +import { selectUser } from "redux/selectors/user"; import rewards from "rewards"; const _selectState = state => state.rewards || {}; diff --git a/ui/js/redux/selectors/search.js b/ui/js/redux/selectors/search.js index aa77d7ec3..d64289d78 100644 --- a/ui/js/redux/selectors/search.js +++ b/ui/js/redux/selectors/search.js @@ -3,7 +3,7 @@ import { selectPageTitle, selectCurrentPage, selectCurrentParams, -} from "selectors/navigation"; +} from "redux/selectors/navigation"; export const _selectState = state => state.search || {}; diff --git a/ui/js/rewards.js b/ui/js/rewards.js index 2c8eae8a2..2a30be2d3 100644 --- a/ui/js/rewards.js +++ b/ui/js/rewards.js @@ -1,6 +1,6 @@ import lbry from "lbry"; import lbryio from "lbryio"; -import { doShowSnackBar } from "actions/app"; +import { doShowSnackBar } from "redux/actions/app"; function rewardMessage(type, amount) { return { diff --git a/ui/js/store.js b/ui/js/store.js index af1e68c3a..85fea7348 100644 --- a/ui/js/store.js +++ b/ui/js/store.js @@ -1,16 +1,16 @@ import { createLogger } from "redux-logger"; -import appReducer from "reducers/app"; -import availabilityReducer from "reducers/availability"; -import claimsReducer from "reducers/claims"; -import contentReducer from "reducers/content"; -import costInfoReducer from "reducers/cost_info"; -import fileInfoReducer from "reducers/file_info"; -import navigationReducer from "reducers/navigation"; -import rewardsReducer from "reducers/rewards"; -import searchReducer from "reducers/search"; -import settingsReducer from "reducers/settings"; -import userReducer from "reducers/user"; -import walletReducer from "reducers/wallet"; +import appReducer from "redux/reducers/app"; +import availabilityReducer from "redux/reducers/availability"; +import claimsReducer from "redux/reducers/claims"; +import contentReducer from "redux/reducers/content"; +import costInfoReducer from "redux/reducers/cost_info"; +import fileInfoReducer from "redux/reducers/file_info"; +import navigationReducer from "redux/reducers/navigation"; +import rewardsReducer from "redux/reducers/rewards"; +import searchReducer from "redux/reducers/search"; +import settingsReducer from "redux/reducers/settings"; +import userReducer from "redux/reducers/user"; +import walletReducer from "redux/reducers/wallet"; import { persistStore, autoRehydrate } from "redux-persist"; import createCompressor from "redux-persist-transform-compress"; import createFilter from "redux-persist-transform-filter"; From a131bcf1988d2383ba21c92da8c676cfc679aaa3 Mon Sep 17 00:00:00 2001 From: Sean Yesmunt Date: Mon, 13 Nov 2017 16:04:09 -0500 Subject: [PATCH 15/26] update app import --- ui/js/redux/actions/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/js/redux/actions/app.js b/ui/js/redux/actions/app.js index e4c60cddf..b8b6a2241 100644 --- a/ui/js/redux/actions/app.js +++ b/ui/js/redux/actions/app.js @@ -16,7 +16,7 @@ const { remote, ipcRenderer, shell } = require("electron"); const path = require("path"); const { download } = remote.require("electron-dl"); const fs = remote.require("fs"); -const { lbrySettings: config } = require("../../../app/package.json"); +const { lbrySettings: config } = require("../../../../app/package.json"); export function doOpenModal(modal, modalProps = {}) { return { From 8733f3a5904645e4d8639583ed119f5b265fba70 Mon Sep 17 00:00:00 2001 From: Jeremy Kauffman Date: Mon, 13 Nov 2017 16:06:09 -0500 Subject: [PATCH 16/26] state transaction failure in transaction modal --- ui/js/modal/modalTransactionFailed/view.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/js/modal/modalTransactionFailed/view.jsx b/ui/js/modal/modalTransactionFailed/view.jsx index b2d4a3558..776d5d387 100644 --- a/ui/js/modal/modalTransactionFailed/view.jsx +++ b/ui/js/modal/modalTransactionFailed/view.jsx @@ -11,7 +11,7 @@ class ModalTransactionFailed extends React.PureComponent { contentLabel={__("Transaction failed")} onConfirmed={closeModal} > - {__("Something went wrong")}: + {__("Transaction failed.")}: ); } From ff133a03df8aedda960ee751b80c7bd176008bf9 Mon Sep 17 00:00:00 2001 From: Akinwale Ariwodola Date: Tue, 14 Nov 2017 12:56:24 -0500 Subject: [PATCH 17/26] Issue #721 fix - Inconsistent thumbnail sizes --- CHANGELOG.md | 2 +- ui/js/component/uriIndicator/view.jsx | 2 +- ui/scss/component/_channel-indicator.scss | 8 ++++++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f096ace72..4d3c33a0e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,7 +16,7 @@ Web UI version numbers should always match the corresponding version of LBRY App * ### Fixed - * + * Long channel names causing inconsistent thumbnail sizes (#721) * ### Deprecated diff --git a/ui/js/component/uriIndicator/view.jsx b/ui/js/component/uriIndicator/view.jsx index f9c9dc779..bff2cbf97 100644 --- a/ui/js/component/uriIndicator/view.jsx +++ b/ui/js/component/uriIndicator/view.jsx @@ -60,7 +60,7 @@ class UriIndicator extends React.PureComponent { const inner = ( - {channelName} {" "} + {channelName} {" "} {!signatureIsValid ? Date: Wed, 15 Nov 2017 10:40:48 -0500 Subject: [PATCH 18/26] Added currentBalance to props in modal credit intro --- ui/js/modal/modalCreditIntro/view.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/js/modal/modalCreditIntro/view.jsx b/ui/js/modal/modalCreditIntro/view.jsx index 73604985d..1b48f87b4 100644 --- a/ui/js/modal/modalCreditIntro/view.jsx +++ b/ui/js/modal/modalCreditIntro/view.jsx @@ -4,7 +4,7 @@ import { CreditAmount, CurrencySymbol } from "component/common"; import Link from "component/link/index"; const ModalCreditIntro = props => { - const { closeModal, totalRewardValue, verifyAccount } = props; + const { closeModal, totalRewardValue, currentBalance, verifyAccount } = props; const totalRewardRounded = Math.round(totalRewardValue / 10) * 10; return ( From 06b2a94c80187298cba6e5a6256fd25d77591b98 Mon Sep 17 00:00:00 2001 From: Liam Cardenas Date: Wed, 15 Nov 2017 11:46:40 -0500 Subject: [PATCH 19/26] =?UTF-8?q?Bump=20version:=200.18.0=20=E2=86=92=200.?= =?UTF-8?q?18.1rc1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .bumpversion.cfg | 2 +- app/package.json | 2 +- ui/package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index bd37e853e..55692c66c 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.18.0 +current_version = 0.18.1rc1 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+)((?P[a-z]+)(?P\d+))? diff --git a/app/package.json b/app/package.json index edf2f2e9d..9acb92a65 100644 --- a/app/package.json +++ b/app/package.json @@ -1,6 +1,6 @@ { "name": "LBRY", - "version": "0.18.0", + "version": "0.18.1rc1", "main": "main.js", "description": "A browser for the LBRY network, a digital marketplace controlled by its users.", "homepage": "https://github.com/lbryio/lbry-app", diff --git a/ui/package.json b/ui/package.json index 6b24baefb..b8dd77e73 100644 --- a/ui/package.json +++ b/ui/package.json @@ -1,6 +1,6 @@ { "name": "lbry-web-ui", - "version": "0.18.0", + "version": "0.18.1rc1", "description": "LBRY UI", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", From d8a20a5cba6a00d8974d4d2518afac3dff9d7089 Mon Sep 17 00:00:00 2001 From: Liam Cardenas Date: Wed, 15 Nov 2017 13:25:20 -0500 Subject: [PATCH 20/26] =?UTF-8?q?Bump=20version:=200.18.1rc1=20=E2=86=92?= =?UTF-8?q?=200.18.2rc1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .bumpversion.cfg | 2 +- app/package.json | 2 +- ui/package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index 55692c66c..e72012fca 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.18.1rc1 +current_version = 0.18.2rc1 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+)((?P[a-z]+)(?P\d+))? diff --git a/app/package.json b/app/package.json index 9acb92a65..2e47a9e9f 100644 --- a/app/package.json +++ b/app/package.json @@ -1,6 +1,6 @@ { "name": "LBRY", - "version": "0.18.1rc1", + "version": "0.18.2rc1", "main": "main.js", "description": "A browser for the LBRY network, a digital marketplace controlled by its users.", "homepage": "https://github.com/lbryio/lbry-app", diff --git a/ui/package.json b/ui/package.json index b8dd77e73..c7bd2e013 100644 --- a/ui/package.json +++ b/ui/package.json @@ -1,6 +1,6 @@ { "name": "lbry-web-ui", - "version": "0.18.1rc1", + "version": "0.18.2rc1", "description": "LBRY UI", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", From 1304182fbc70ac45508661751742db591128fffe Mon Sep 17 00:00:00 2001 From: Liam Cardenas Date: Wed, 15 Nov 2017 14:38:25 -0500 Subject: [PATCH 21/26] Added to changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f096ace72..7f80727ad 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,7 +16,7 @@ Web UI version numbers should always match the corresponding version of LBRY App * ### Fixed - * + * Email verification is fixed. (#746) * ### Deprecated From 654edc9885232f7cc49717be813cfd47b332b520 Mon Sep 17 00:00:00 2001 From: Liam Cardenas Date: Wed, 15 Nov 2017 14:39:09 -0500 Subject: [PATCH 22/26] =?UTF-8?q?Bump=20version:=200.18.2rc1=20=E2=86=92?= =?UTF-8?q?=200.18.2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .bumpversion.cfg | 2 +- CHANGELOG.md | 9 ++++++++- app/package.json | 2 +- ui/package.json | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/.bumpversion.cfg b/.bumpversion.cfg index e72012fca..5a3a3ab63 100644 --- a/.bumpversion.cfg +++ b/.bumpversion.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 0.18.2rc1 +current_version = 0.18.2 commit = True tag = True parse = (?P\d+)\.(?P\d+)\.(?P\d+)((?P[a-z]+)(?P\d+))? diff --git a/CHANGELOG.md b/CHANGELOG.md index 7f80727ad..7214e34bc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,7 +16,7 @@ Web UI version numbers should always match the corresponding version of LBRY App * ### Fixed - * Email verification is fixed. (#746) + * * ### Deprecated @@ -27,6 +27,13 @@ Web UI version numbers should always match the corresponding version of LBRY App * * +## [0.18.2] - 2017-11-15 + +### Fixed + * Email verification is fixed. (#746) + + + ## [0.18.0] - 2017-11-13 ### Added diff --git a/app/package.json b/app/package.json index 2e47a9e9f..acbc64462 100644 --- a/app/package.json +++ b/app/package.json @@ -1,6 +1,6 @@ { "name": "LBRY", - "version": "0.18.2rc1", + "version": "0.18.2", "main": "main.js", "description": "A browser for the LBRY network, a digital marketplace controlled by its users.", "homepage": "https://github.com/lbryio/lbry-app", diff --git a/ui/package.json b/ui/package.json index c7bd2e013..bd0fbdbf4 100644 --- a/ui/package.json +++ b/ui/package.json @@ -1,6 +1,6 @@ { "name": "lbry-web-ui", - "version": "0.18.2rc1", + "version": "0.18.2", "description": "LBRY UI", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", From d78112658f9ef8fcf0340e4b9b7a014d2ba36e06 Mon Sep 17 00:00:00 2001 From: Sean Yesmunt Date: Fri, 17 Nov 2017 16:27:35 -0500 Subject: [PATCH 23/26] refactor scroll navigation/restore --- ui/js/component/app/index.js | 8 ++++- ui/js/component/app/view.jsx | 31 +++++++++++++--- ui/js/redux/actions/navigation.js | 14 ++------ ui/js/redux/reducers/navigation.js | 7 ++-- ui/js/redux/selectors/navigation.js | 6 ++++ ui/js/util/throttle.js | 56 +++++++++++++++++++++++++++++ 6 files changed, 100 insertions(+), 22 deletions(-) create mode 100644 ui/js/util/throttle.js diff --git a/ui/js/component/app/index.js b/ui/js/component/app/index.js index e178a0c75..b917c04f7 100644 --- a/ui/js/component/app/index.js +++ b/ui/js/component/app/index.js @@ -1,6 +1,10 @@ import React from "react"; import { connect } from "react-redux"; -import { selectPageTitle } from "redux/selectors/navigation"; +import { + selectPageTitle, + selectHistoryIndex, + selectActiveHistoryEntry, +} from "redux/selectors/navigation"; import { selectUser } from "redux/selectors/user"; import { doCheckUpgradeAvailable, doAlertError } from "redux/actions/app"; import { doRecordScroll } from "redux/actions/navigation"; @@ -10,6 +14,8 @@ import App from "./view"; const select = (state, props) => ({ pageTitle: selectPageTitle(state), user: selectUser(state), + currentStackIndex: selectHistoryIndex(state), + currentPageAttributes: selectActiveHistoryEntry(state), }); const perform = dispatch => ({ diff --git a/ui/js/component/app/view.jsx b/ui/js/component/app/view.jsx index 17e0ec030..7a54b0de0 100644 --- a/ui/js/component/app/view.jsx +++ b/ui/js/component/app/view.jsx @@ -4,8 +4,14 @@ import Header from "component/header"; import Theme from "component/theme"; import ModalRouter from "modal/modalRouter"; import lbry from "lbry"; +import throttle from "util/throttle"; class App extends React.PureComponent { + constructor() { + super(); + this.mainContent = undefined; + } + componentWillMount() { const { alertError, @@ -23,21 +29,36 @@ class App extends React.PureComponent { fetchRewardedContent(); - this.scrollListener = () => this.props.recordScroll(window.scrollY); - - window.addEventListener("scroll", this.scrollListener); - this.setTitleFromProps(this.props); } + componentDidMount() { + const { recordScroll } = this.props; + const mainContent = document.getElementById("main-content"); + this.mainContent = mainContent; + + const scrollListener = () => recordScroll(this.mainContent.scrollTop); + + this.mainContent.addEventListener("scroll", throttle(scrollListener, 750)); + } + componentWillUnmount() { - window.removeEventListener("scroll", this.scrollListener); + this.mainContent.removeEventListener("scroll", this.scrollListener); } componentWillReceiveProps(props) { this.setTitleFromProps(props); } + componentDidUpdate(prevProps) { + const { currentStackIndex: prevStackIndex } = prevProps; + const { currentStackIndex, currentPageAttributes } = this.props; + + if (currentStackIndex !== prevStackIndex) { + this.mainContent.scrollTop = currentPageAttributes.scrollY || 0; + } + } + setTitleFromProps(props) { window.document.title = props.pageTitle || "LBRY"; } diff --git a/ui/js/redux/actions/navigation.js b/ui/js/redux/actions/navigation.js index c236c3fcb..b718936aa 100644 --- a/ui/js/redux/actions/navigation.js +++ b/ui/js/redux/actions/navigation.js @@ -21,21 +21,11 @@ export function doNavigate(path, params = {}, options = {}) { url += "?" + toQueryString(params); } - const state = getState(), - currentPage = selectCurrentPage(state), - nextPage = computePageFromPath(path), - scrollY = options.scrollY; - - if (currentPage != nextPage) { - //I wasn't seeing it scroll to the proper position without this -- possibly because the page isn't fully rendered? Not sure - Jeremy - setTimeout(() => { - window.scrollTo(0, scrollY ? scrollY : 0); - }, 100); - } + const scrollY = options.scrollY; dispatch({ type: types.HISTORY_NAVIGATE, - data: { url, index: options.index }, + data: { url, index: options.index, scrollY }, }); }; } diff --git a/ui/js/redux/reducers/navigation.js b/ui/js/redux/reducers/navigation.js index 1ebcab2c9..00453f9de 100644 --- a/ui/js/redux/reducers/navigation.js +++ b/ui/js/redux/reducers/navigation.js @@ -32,14 +32,14 @@ reducers[types.CHANGE_AFTER_AUTH_PATH] = function(state, action) { reducers[types.HISTORY_NAVIGATE] = (state, action) => { const { stack, index } = state; - const path = action.data.url; + const { url: path, index: newIndex, scrollY } = action.data; let newState = { currentPath: path, }; - if (action.data.index >= 0) { - newState.index = action.data.index; + if (newIndex >= 0) { + newState.index = newIndex; } else if (!stack[index] || stack[index].path !== path) { // ^ Check for duplicated newState.stack = [...stack.slice(0, index + 1), { path, scrollY: 0 }]; @@ -47,7 +47,6 @@ reducers[types.HISTORY_NAVIGATE] = (state, action) => { } history.replaceState(null, null, "#" + path); //this allows currentPath() to retain the URL on reload - return Object.assign({}, state, newState); }; diff --git a/ui/js/redux/selectors/navigation.js b/ui/js/redux/selectors/navigation.js index 04d5b4856..4f91467eb 100644 --- a/ui/js/redux/selectors/navigation.js +++ b/ui/js/redux/selectors/navigation.js @@ -146,3 +146,9 @@ export const selectHistoryStack = createSelector( _selectState, state => state.stack ); + +// returns current page attributes (scrollY, path) +export const selectActiveHistoryEntry = createSelector( + _selectState, + state => state.stack[state.index] +); diff --git a/ui/js/util/throttle.js b/ui/js/util/throttle.js new file mode 100644 index 000000000..bbb5e316c --- /dev/null +++ b/ui/js/util/throttle.js @@ -0,0 +1,56 @@ +// Taken from underscore.js (slightly modified to add the getNow function and use const/let over var) +// https://github.com/jashkenas/underscore/blob/master/underscore.js#L830-L874 + +// Returns a function, that, when invoked, will only be triggered at most once +// during a given window of time. Normally, the throttled function will run +// as much as it can, without ever going more than once per `wait` duration; +// but if you'd like to disable the execution on the leading edge, pass +// `{leading: false}`. To disable execution on the trailing edge, ditto. +export default function throttle(func, wait, options) { + let timeout, context, args, result; + let previous = 0; + const getNow = () => new Date().getTime(); + + if (!options) options = {}; + + const later = function() { + previous = options.leading === false ? 0 : getNow(); + timeout = null; + result = func.apply(context, args); + if (!timeout) context = args = null; + }; + + const throttled = function() { + const now = getNow(); + + if (!previous && options.leading === false) previous = now; + + const remaining = wait - (now - previous); + + context = this; + args = arguments; + + if (remaining <= 0 || remaining > wait) { + if (timeout) { + clearTimeout(timeout); + timeout = null; + } + + previous = now; + result = func.apply(context, args); + + if (!timeout) context = args = null; + } else if (!timeout && options.trailing !== false) { + timeout = setTimeout(later, remaining); + } + return result; + }; + + throttled.cancel = function() { + clearTimeout(timeout); + previous = 0; + timeout = context = args = null; + }; + + return throttled; +} From 9d0205bc8e18764240bcbabb76db6b44d8fe3792 Mon Sep 17 00:00:00 2001 From: Sean Yesmunt Date: Fri, 17 Nov 2017 16:29:38 -0500 Subject: [PATCH 24/26] update changelog --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a1baf8403..e38d8ff41 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,12 +12,12 @@ Web UI version numbers should always match the corresponding version of LBRY App * ### Changed - * + * Moved all redux code into /redux folder * ### Fixed * Long channel names causing inconsistent thumbnail sizes (#721) - * + * Fixed scriolling restore/reset/set (#729) ### Deprecated * From 3c9410439b26d6187def8dc23ff1db919ef6dd9e Mon Sep 17 00:00:00 2001 From: Jeremy Kauffman Date: Mon, 20 Nov 2017 17:16:57 -0500 Subject: [PATCH 25/26] fix empty claims breaking transaction screens #755 --- CHANGELOG.md | 1 + ui/js/redux/selectors/claims.js | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e38d8ff41..f25911503 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ Web UI version numbers should always match the corresponding version of LBRY App ### Fixed * Long channel names causing inconsistent thumbnail sizes (#721) + * Fixed regression in #697 causing transaction screen to not load for new users (#755) * Fixed scriolling restore/reset/set (#729) ### Deprecated diff --git a/ui/js/redux/selectors/claims.js b/ui/js/redux/selectors/claims.js index fead14b85..5b1c7bbc0 100644 --- a/ui/js/redux/selectors/claims.js +++ b/ui/js/redux/selectors/claims.js @@ -1,5 +1,4 @@ import { createSelector } from "reselect"; -import { selectCurrentParams } from "redux/selectors/navigation"; import lbryuri from "lbryuri"; import { makeSelectCurrentParam } from "./navigation"; @@ -171,7 +170,12 @@ export const selectMyClaimsWithoutChannels = createSelector( export const selectAllMyClaimsByOutpoint = createSelector( selectMyClaimsRaw, - claims => new Set(claims.map(claim => `${claim.txid}:${claim.nout}`)) + claims => + new Set( + claims && claims.length + ? claims.map(claim => `${claim.txid}:${claim.nout}`) + : null + ) ); export const selectMyClaimsOutpoints = createSelector( From 61dac01de6b66fc9b3a3ca81d31ddbc2664f24bd Mon Sep 17 00:00:00 2001 From: Sean Yesmunt Date: Tue, 21 Nov 2017 01:12:09 -0500 Subject: [PATCH 26/26] fix menu bar icon for macOS --- app/main.js | 10 +++++++++- ui/dist/img/fav/macTemplate@2x.png | Bin 0 -> 1992 bytes 2 files changed, 9 insertions(+), 1 deletion(-) create mode 100644 ui/dist/img/fav/macTemplate@2x.png diff --git a/app/main.js b/app/main.js index 0774c081a..af84b1ba2 100644 --- a/app/main.js +++ b/app/main.js @@ -226,7 +226,15 @@ function createWindow () { function createTray () { // Minimize to tray logic follows: // Set the tray icon - const iconPath = path.join(app.getAppPath(), "/dist/img/fav/32x32.png"); + let iconPath; + if (process.platform === 'darwin') { + // Using @2x for mac retina screens so the icon isn't blurry + // file name needs to include "Template" at the end for dark menu bar + iconPath = path.join(app.getAppPath(), "/dist/img/fav/macTemplate@2x.png"); + } else { + iconPath = path.join(app.getAppPath(), "/dist/img/fav/32x32.png"); + } + tray = new Tray(iconPath); tray.setToolTip("LBRY App"); tray.setTitle("LBRY"); diff --git a/ui/dist/img/fav/macTemplate@2x.png b/ui/dist/img/fav/macTemplate@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..99cc33006a9253ec24b54a2335a70679884e6baa GIT binary patch literal 1992 zcmV;(2RHbMP)Px+f=NU{R9FekSPO8J)fGPH{{NP&4GqceYDH?bRqm0SWFd@-PBMVXCb?Q zq*NISia?8Fs0dV2n9i6GY8|CjP$Zj&;|s|?NNKcctF5imGPYX#n7*cF^Cx0(NV5Ci z+wTW%y5R06AzAUC*|~S`NEpKL~9#&MB zjKp5dCfL~v0vAa^-&RaPCiOS8P1eVg&(Y4;QrXszG&XJko>0Z5MB)cvbcJGdU#~|z zNI!}Wj>H(weZDY_Wy~B_lHLLE9mSIdp8EUlu7Q#EX3n2BfT`8hXAKsoR)N^w>gH<8?6 zHOHSB4YPb}Cc}SRG_(XDZoz2`DdGoZD%ITA-g!9RzA*vt*36wsG_+AMJC67W82oS~ z2Kkt0o0~GPe2U>N3PU-|F>k_8emY14kM&2oda|t_9e`laC^L>M5klP!&HR~dS=ZAV zM@TH(=L?n>+lG5S3tB;nJ^_X87Abxt+1~NrOs*pW@YMunNK)HC=wih4`rg#!-Qx{? znF5T|zo53f=*VEvjfhsOU|whAZfRCh?(A(z{L|T+6M&NfAWEzw=A{UW`=#K`y?dko z8i`@S=9evVd5-*}8nUcXM4twq4OS%fcvb-3P@o!4x&;dn4%K=%X=lL%I}O4JB99|@ z3|f)+x6I7_C5tOAG;L#xQmPzwcfV=M9k@x~&s=k+`<@#Ab~H|X7VqqsrZy2u~7-CBE>&RrR^qX-Yg6IE1CM&p+5~ydS_pA zv?X)n8Sif@H@$DUm%^0qf>pc;5LL-Y$Lm@y#94k8j*u8s=GFa?eOY6zUi@LVo^a)t z=`FDpCha)wW@~zE4{ajo`Tw6u3Wp;2*Zs{O9pNY6e4WRYc0uF32%3LVq{YHh7bM#fFPy{|{(4T)VV4dr zCq<#*g~i2bQvK)RHMP$h4jfdH8?Ba(f&wX97`Tk3te3=>3l{e!JqlTE;saT&&-MOg zwr$+&3Hb+*75pJP06a1*qLtp7s$EEt*WgZg8nO39rR+xBfG-aNoq&#$GDy>X2T8Sp zSacaSeXYB-BWG5N)Z2v7dvQWn!n}?i2jG}dmanI!<2M*ycr2Y@S}lZl0zh6t%G=P_ z68}Y(En^yTA|Nzg&q}$RL#MrS

Ql_N6zycDSL+%N&G1nV?FNJD~=q=6;yr2#Q7z}jK6JpJ z7@E9B3H2RPVg_RFeloZTiQ5~w2gKRTP%V3516D=sQ|OB zP}Ed}?(ZWJ+na5jLwj2AD))d{avO-OhIp?+LEp7NW$1_QpdOVuf-QbDLxm~xA*RAeJ} z?6pUPH?}GPy^Xz*cw4r0dh8?sdayL)zZycU#s68*Kn(AJrhG@O_mu=IE;L+X1#b8G zP{Nxes1wIuix}bf&0XDla~HN?meYi!dl2!yAr(EEK1*$T@8Ni_rk$(J3P3MDaqJF| zuRtT6f@Nc}`M_`Z5e_jB3ho`1$77Kd~%wRTz>SSAOAJvl*H+oLNLEN*@KNBal6+(Olzxw2V z1|FrZuC(Smns!tGG$CAUR}f3oI_Vl*Bwd6XdMw(~bk0Mra}>D_Ol>iO#?zc0y4Pwy z_-{QwmUc`4G-1?ozNBnkga6l}1o8r$tr4%bSM_|pR#)(FlJCMd*7r2Wf1YpsNOPwJ zKodor{-RU{LLFTXLN7_l4ZW?=U+MYGR_8kKiJ1W1fGXSrW39qv($oEM0nkJcwZ4FA zG=Qi|M6F*M%5LaBkuweFI;>XWLEgn_bx*QA{a-1YmdPOBXbav9=QmKr=s