flow fixes
This commit is contained in:
parent
124f5ad331
commit
0cc3af28a3
30 changed files with 210 additions and 1070 deletions
1
.eslintignore
Normal file
1
.eslintignore
Normal file
|
@ -0,0 +1 @@
|
||||||
|
./web/node_modules/*
|
|
@ -14,6 +14,11 @@
|
||||||
"IS_WEB": true,
|
"IS_WEB": true,
|
||||||
"WEBPACK_PORT": true
|
"WEBPACK_PORT": true
|
||||||
},
|
},
|
||||||
|
"settings": {
|
||||||
|
"react": {
|
||||||
|
"version": "detect"
|
||||||
|
}
|
||||||
|
},
|
||||||
"rules": {
|
"rules": {
|
||||||
"brace-style": 0,
|
"brace-style": 0,
|
||||||
"camelcase": 0,
|
"camelcase": 0,
|
21
.github/workflows/deploy.yml
vendored
21
.github/workflows/deploy.yml
vendored
|
@ -10,21 +10,26 @@ on:
|
||||||
branches: [master]
|
branches: [master]
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
lint:
|
||||||
|
name: 'lint'
|
||||||
|
runs-on: 'ubuntu-latest'
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: Borales/actions-yarn@v2.3.0
|
||||||
|
- run: yarn lint
|
||||||
|
|
||||||
|
build:
|
||||||
|
needs: ['lint']
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
node-version: [10.x, 12.x, 14.x]
|
node-version: [12.x]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Use Node.js ${{ matrix.node-version }}
|
- uses: actions/setup-node@v2-beta
|
||||||
uses: actions/setup-node@v1
|
|
||||||
with:
|
with:
|
||||||
node-version: ${{ matrix.node-version }}
|
node-version: ${{ matrix.node-version }}
|
||||||
- name: GitHub Action for Yarn
|
- run: |
|
||||||
uses: Borales/actions-yarn@v2.3.0
|
NODE_ENV=production yarn compile:web
|
||||||
- run: yarn
|
|
||||||
- run: NODE_ENV=production yarn compile:web
|
|
||||||
|
|
80
.travis.yml
80
.travis.yml
|
@ -1,80 +0,0 @@
|
||||||
matrix:
|
|
||||||
include:
|
|
||||||
- os: osx
|
|
||||||
env: TARGET=mac
|
|
||||||
osx_image: xcode10
|
|
||||||
language: node_js
|
|
||||||
node_js: '10'
|
|
||||||
- os: linux
|
|
||||||
env: TARGET=windows
|
|
||||||
services: docker
|
|
||||||
language: node_js
|
|
||||||
node_js: '10'
|
|
||||||
- os: linux
|
|
||||||
env: TARGET=linux
|
|
||||||
language: node_js
|
|
||||||
node_js: '10'
|
|
||||||
cache: false
|
|
||||||
before_install:
|
|
||||||
- |
|
|
||||||
unset TRAVIS_COMMIT_MESSAGE;
|
|
||||||
if [ "$TRAVIS_OS_NAME" == "osx" ]; then
|
|
||||||
mkdir -p /tmp/git-lfs && curl -L https://github.com/github/git-lfs/releases/download/v2.3.1/git-lfs-$([ "$TRAVIS_OS_NAME" == "linux" ] && echo "linux" || echo "darwin")-amd64-2.3.1.tar.gz | tar -xz -C /tmp/git-lfs --strip-components 1
|
|
||||||
export PATH="/tmp/git-lfs:$PATH"
|
|
||||||
else
|
|
||||||
sudo apt-get -qq update
|
|
||||||
sudo apt-get install --no-install-recommends -y gcc-multilib g++-multilib wget
|
|
||||||
curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version 1.6.0
|
|
||||||
export PATH="$HOME/.yarn/bin:$PATH"
|
|
||||||
fi
|
|
||||||
before_script:
|
|
||||||
- git lfs pull
|
|
||||||
- if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then unset WIN_CSC_LINK; unset CSC_LINK; fi
|
|
||||||
- wget https://headers.lbry.io/blockchain_headers_latest -O $TRAVIS_BUILD_DIR/static/daemon/headers
|
|
||||||
script:
|
|
||||||
- travis_wait 30
|
|
||||||
- |
|
|
||||||
if [ "$TARGET" == "windows" ]; then
|
|
||||||
# Remove any special characters before adding to our list of ENVs
|
|
||||||
# https://github.com/electron-userland/electron-builder/issues/2450#issuecomment-421788155
|
|
||||||
ENVS=`env | grep -iE '(DEBUG|NODE_|ELECTRON_|YARN_|NPM_|CI|CIRCLE|TRAVIS|APPVEYOR_|CSC_|_TOKEN|_KEY|AWS_|STRIP|BUILD_|TARGET)([A-Z]|_)*=' | sed -n '/^[^\t]/s/=.*//p' | sed '/^$/d' | sed 's/^/-e /g' | tr '\n' ' '`
|
|
||||||
docker run $ENVS --rm \
|
|
||||||
-v ${PWD}:/project \
|
|
||||||
electronuserland/builder:wine \
|
|
||||||
/bin/bash -c "env | grep -v '\r' | grep -iE 'DEBUG|TARGET|NODE_|ELECTRON_|YARN_|NPM_|CI|CIRCLE|TRAVIS|APPVEYOR_|CSC_|GH_|GITHUB_|BT_|AWS_|STRIP|BUILD_|WIN_' && yarn --link-duplicates --pure-lockfile && yarn build --win --publish onTag";
|
|
||||||
fi
|
|
||||||
- if [ "$TARGET" == "mac" ]; then yarn build --publish onTag; fi
|
|
||||||
- if [ "$TARGET" == "linux" ]; then yarn --link-duplicates --pure-lockfile && yarn
|
|
||||||
build --linux --publish onTag; fi
|
|
||||||
addons:
|
|
||||||
artifacts:
|
|
||||||
working_dir: dist
|
|
||||||
paths:
|
|
||||||
- $(git ls-files -o dist/{*.dmg,*.exe,*.deb,*.AppImage} | tr "\n" ":")
|
|
||||||
target_paths:
|
|
||||||
- '/app/build-${TRAVIS_BUILD_NUMBER}_commit-${TRAVIS_COMMIT:0:7}$([ ! -z ${TRAVIS_TAG}
|
|
||||||
] && echo _tag-${TRAVIS_TAG})'
|
|
||||||
env:
|
|
||||||
global:
|
|
||||||
- ENABLE_COMMENT_REACTIONS=true
|
|
||||||
- SHARE_DOMAIN_URL=https://open.lbry.com
|
|
||||||
- ARTIFACTS_REGION=us-east-1
|
|
||||||
- ARTIFACTS_BUCKET=build.lbry.io
|
|
||||||
- DANGER_GITHUB_API_TOKEN=f8b612049cbda985c251e18ae36c7a2b9c6c92df
|
|
||||||
- ARTIFACTS_DEBUG=1
|
|
||||||
- WIN_CSC_LINK=https://s3.amazonaws.com/files.lbry.io/cert/win-csc-2020-2021-08.p12
|
|
||||||
- CSC_LINK=https://s3.amazonaws.com/files.lbry.io/cert/osx-cert.p12
|
|
||||||
#AWS_SECRET_ACCESS_KEY
|
|
||||||
- secure: aF0dZ1ub0r6X5SaTH7YYRpV8cl2gkU2tA7y2tkvGZQL0+Vv2FvkhwaXREa9IM9djm7r3W7I8vEekk6Skn300kIBwQ04COxgu+Oeqjsc2a529wmF9AN5EwKExKkVQFIjMjpMBmd/fE05PD29C0vULdtIMX8uhDe5zFE+tGD1QmwKVZ+55oCxJmt7vsQwQr46s/BsPODrZhvSUPWTUG4HSsc5DJwe/XYY+35vWQsnpCkBVabAZg+lnOpqLioRNzTsBX1oSkqTX9uvOC6fN+NlpbJWetzXsBciFcMHQCx9UHxu+Ibn3W3V8FVYRuFLAinhIg+JoVQHU8mH60ggjizATpgx12riP9e/Uwho5x5bgIYmnIBf4AHqupPv40iC/THMvsS08hCQHicu+/WiAvvN8wNQ1sqpj0+RTreB+4/qdRdwTs70t4jNV83cP+nAuekMCC7uYQ08GLmFNaa+x8NgDZa3JQv7EmXU0ALWVPeJ9UEV+dhEs5iI+7bLEhTUOuvBBWo17F4pst3pfS1j7md1x4wKFRWyP7IFmjK+L1KiAH94c/LIz2Nlp5yCDfbcwU5W/wCHYAxu5c8qnAlkxeub0GpxtZ66j6oOehk1lsHYxaZcBxyn7XhM1A6Mjxgy9OG0WGyYun8iH3aa4WcY0BO21l7je75s7l0qNSRS80st8kUE=
|
|
||||||
#AWS_ACCESS_KEY_ID
|
|
||||||
- secure: HHlUGaEjk0qsW9qb/93jdFhJypiDuJ0e6Z4UClW3ciMfdZ22Ur4D0oL0mgVguigTjdkf1Yy4Z1kWtWvtvQ8DBI+mdOl5GTMpX5nMattcuK/4gFXmqz30S3c07IPkilGKkAT64JqRGT7AvQTaV/tXqNNN9BbWCTAJSnhfzYJFvZQjnSmAAQvbqzMWEEein53244fWbDio462T7vzfbEHJD1pVUSrAMrKDgFSrIKJf4GQHceUk+fqWBjAsWN8USboo88JSLXn5qhD3ZczsgtZ2gi2KTvdfrHfZ5SpOzwc2AGr8U1laQzzW8c8xsPJPmM/3dCri/clcXassa4t/+2INYTPhKbmaD9hvjFRRMpoNjMCmPRJOmojxit8tqzCrw4nSGdr3/Bt0JjpLq90mfyL83YYU4gJXF97KzTl0lCy/DFXjBiHA9riRJVaXn3CI6L0i1RLCJI+C/rT9ErFB767t0aQtXlIWSZQ+IqWaoUdp57t0e2EtbRcjK7IYIXLNgZSbR0bY/TS005D/xZkexCpAtcV9F6iqDYP3HbGyiQqC75se0MqpNrZAx1a7WsSnumOcmtuU6LRriwjM0GXEACfGLCp4w4LBzKPwrOOg4QOhewHKgxpUff8KMlfTZ+Z8B7NBNjKSPbxiMedmpsiWpPRy6VeyvwNz32PUpjdsF3tIYMk=
|
|
||||||
#GH_TOKEN
|
|
||||||
- secure: g0gSiOmCKFzxLFV//oogmex+MkumCcGJ8CtvLzojAw1qhI1P6dGRH06yuCgBNW4PQGbbrYR2tntGEeq66LZ1bU7BJ2bdkv5lBi15JPH4POpA3OSc88YebitKIyIBI2WHA3VNCkF1JEFvrfTUX+4PjP+9h6vZ9tdfzezNTpc70SrGkWMhaoe+F8u6jCL63VBpnncf0foz3WlqUFNoIdinQLYxI6S2QmHz1p1HToC+MOosBgWDufX2+6B/Efq7JDFZgx/zItFzR1OCafKx8rScUd4woAqK+8mt862IzzEbztTv6IPSdhx/hsbO7rHMcjDFk/MuDeC9TaaXqMvvKmLuvWKH+dy4BvIiJJ/WuDfzumrw+8BvTbcnXFXkEXTlkQnZD0otBZsmI4/OPH5vIGUmVIwBFXjPBcNq/Xwig8hRCxrdioEZPO4C17fMCdOn3gAx+GcMddfAIKnrlG/XK2jL8kCylL7++OEkedzYiHWA7p9eaJDjxYmIxKcfYTyF4VIMYS/wAC5W1zi1AjM5BiUhBGp/Vd+f3UUTOsqWOmS4A8cqhK/rbx4xgdwUuv2DoljeQtWd2xdZFr10L2ErmEIdfdtZBVyauaGOhhXUqpSAB5PAwSRNNWkZFCJXmqMHemih4jlfN/KS+rujh5dbyXz81BPjyxrDAziO4Q19rz7hmVI=
|
|
||||||
#ARTIFACTS_KEY
|
|
||||||
- secure: giJRkODdgvMpaLh58c3UKTy6j3IjUVQ2wVvLmECN8caVLuBnEp3U56rUT7sQPzeMoaF9goOLKXD1o+qKdGsLz2Dedi/3vFr3IXTgpYwO03eMkylYUDUwKXV1Fv14ME+wknw/Fshmty1XAc/RwlTaCks9usIRT9OE75HvV8ILVfLdSwwRR/TKFEdEDjAY/3ROVFsleDKBIe1AG/AHeN37Mwqfo39zpN5Zidm3HUegujsMsHtPQtUUCvCxiaiBtqIz79WQuiXjelLWrV53k+ulpptz4T6M8FO5jxBCL5HQMbYy4J8BhukAPHUcTVzarsDe1XEmP6xtClcAydMiHmzUBh9VbvRF8AKwGGO41g6OasgMaJ/eUlACGWTIS2AsqgkXCEgWRtswwI4edLgT/F74fKxGV82zRYLcmjWceGc9H6m2YfIIQZ2PNsDloFgTWa63oZ1sT20fWmNohD3IgVK21rjrCnMbp5/RfBdihR1+GsS8wMA15nhUW3SHfSHKV0009FZdDjxgmigjjmFt1/SM8YGZDijQc7DoUsrScR9n2JR+KVqEED3BYOviw0M0blb6b2dqK0A3+N5C1RGt8Uu8AAuAzdPDviL38m4n1UOdI1Tij1boSfr1USvfipPfQXrqSWHIY3RITMmjPREmcdj2dbhjoUEFaFfp/b3sJxUI3I4=
|
|
||||||
#ARTIFACTS_SECRET
|
|
||||||
- secure: RtPES82DBisaCkernDm10u8mzNc8K4EyyTJUCopcFFJHfFpleuJOoXNFZGXixjHXWTxqc5+IjLThBZFG6krTpD4ocftfkBNeVDXL91JsGRW6X4VBpKaJp1UJZZiYjpPZRJDwVuIb570WcX3xXmsvAwwdODkeXgBZoOw+LZIz4HV3OACi5iaWCx4+2WvQiaz/6mRkLlw9iY1m9gCGQXXUSWyY+bGWsOdGWpfp/VfzpX7mBJbcIYjvRYSnBtVUFkEzxHlaR/CFc7Jio45EUImhBKqKV8QGAiv9AowcWqQn8y2SuW8J66bkaZGbGpyEdsRQDJKUU5naRIFJ/002e4XjI2moBfSHHnFTMH/AawA4b+gCjein8jDiRugJw8AqC4KpG660SFJwC4A8IxfPcXWcykahrL6kJhs+NFbyxQEJIMUqP6UAAiPAuUr/Whq1F8x5b39pEibRZ3Vv0Bix/lUj4cWZYRBL1ckoUgSCeG7llkAdnxLuQKfDvTw+HFcWGq7yg/ye7H7CwpBJkSSOlnQ61nuucC82hVqBGoPGbFW3vjS0BqesLcaO7kwW/fdBnIxwLiWWHDWol0aLfQLEzjUzpS+tA1YYKvrG+yNMEeYtHEK9ZcltQD52uEtjK26DIY8tQU8PxMlXha6/XTOlt8MIcl8IPULmVWKT9k8LPTFQiXc=
|
|
||||||
#CSC_KEY_PASSWORD
|
|
||||||
- secure: TDKeF7/WGwR+di+JhNp29x7NPzVMO/q+72n58zB5goI1NUKaeKgjeWbfVYx9f+4G9a9/pdDVUfORt8i6OW8ZhhqYS4E8G5F56q+oX3nrjNqM8NqoK09ehZS/wdYGbenG9oTfXYenDdwusZV4Fq0BRRLjqAIXPQCKg3//MKseh/1fHDGVGXpYUimHRSCkwspbbfB/9Qw9KEBjweeXiAwB+5F+E7fPlVtqsIvtkkED1hKe0Z8HdECC6JTZ0ZHPDDFGV3aondXQDgUlfchnZ6HDdNDO5y/hPEj0laiZQ7BssenJ8Z7qjHc5O9AKXfG+6WFICHvtgjQ0+x6rk6gpvJcyI1x2+Kck/s0EcSkFY+Yz81BxdehIeKPn9U8LpGaFbtxsp01661yeaIpAqT/PqFsdj/kFXFT6gwZlGGPMBm2WgQR4A61qkOO1jokqz/z6CnY+MNeE8E1Fh4bFoZ0JwUJFJugoyDahHpVlLw5lZaSipJO6RZ1xjoZ3XGmxvtkM4dQ16xQ++Q8EgD878uCWn2jZ5YTQdKANfXYTKSiQfoEjLeX0T6I6GSdim4ZURjcolmGNMH/3jhISOXj+e2UkLc6jwO4Ek084o6ciJ2JjqEhXvXOCeRJ2I9cf2dEk7CvtbitiDly6XATo2FP4hqNdcNNWyj/jFvuTwFT6hzBqLk1BCBc=
|
|
||||||
#WIN_CSC_KEY_PASSWORD
|
|
||||||
- secure: 'mNq+gElkt2fRFdttUK8JhLl0+tk8qUOO25J/h1hDx3juEkE4gnSGWAWbEchc1abqODH+bHLOdARdexrdNmAD7ZXbvbcZdaZt8kk9azVnV7+61sPheA5/qaln1mxps+jiI2wmfERmNsis1NAFLeMioVF9H6rRCbgRf8Vth2JHDqzygW6c9KEDhTCJqV9QV3FYL7onLGLChKvtddRqYSBEqnJxpyY+Tf6fP8DykCzWvhV9Pur2yioF/10FC0fdnzgmkA3iTMwaXkVNuVcIK9u+pN10w5t6eyriORgDpWhE4LZWBoCraSA0Pv4X6ZAnhSXND/b2acVzdKJRKEO3/ajS9LCokwW/lk7/OS5+A3JBJh+aIepG1yZFhyPEnQX+BnOAzdH20QxQXZmCYEbc0XrL3NVgNBfrp7nE/B04/cRj19PQTjRV71+KB2Rvz4kNqnWist8Lr3V4uql7q8DKl4v/XzzjZw9LYIGtXmGXzoA6jveFX3UkiBHy1Sa+ESqkN9rNBZcPwhoOogxGDk01rLkBguQKmh/flTqfOvt2TJqUmyeJg3ymsGgLq6jkwinTzWa5u1enL6TmKDOHkgLtzGj9fqDcC+Wo6kxo97lKWt8uhYssMXdsUSHF5IfJOvO4sTPVkn2bYXDTtyWovmY4jt6Quthu60o+QlMp9x/AT1GvDZc='
|
|
13
Dockerfile
13
Dockerfile
|
@ -1,13 +0,0 @@
|
||||||
FROM node:10
|
|
||||||
EXPOSE 1337
|
|
||||||
|
|
||||||
RUN yarn -v && npm -v
|
|
||||||
RUN apt-get update -y && apt-get upgrade -y
|
|
||||||
|
|
||||||
WORKDIR /app
|
|
||||||
ENV PATH="/app/node_modules/.bin:${PATH}"
|
|
||||||
|
|
||||||
COPY ./ ./
|
|
||||||
|
|
||||||
RUN rm -rf node_modules && APP_ENV=web yarn && SDK_API_URL='https://api.lbry.tv/api/proxy' NODE_ENV=production yarn compile:web --display errors-only
|
|
||||||
CMD node ./dist/web/server.js
|
|
|
@ -1,2 +0,0 @@
|
||||||
- name: Danger JS Action
|
|
||||||
uses: danger/danger-js@9.1.8
|
|
|
@ -1,9 +0,0 @@
|
||||||
import { danger, warn } from 'danger';
|
|
||||||
|
|
||||||
// Check for a CHANGELOG entry
|
|
||||||
const hasChangelog = danger.git.modified_files.some(f => f === 'CHANGELOG.md');
|
|
||||||
if (!hasChangelog) {
|
|
||||||
const title = ':page_facing_up: Changelog Entry Missing';
|
|
||||||
const idea = 'Please add a changelog entry for your changes.';
|
|
||||||
warn(`${title} - <i>${idea}</i>`);
|
|
||||||
}
|
|
|
@ -1,5 +1,5 @@
|
||||||
import { app, Menu, shell } from 'electron';
|
import { app, Menu, shell } from 'electron';
|
||||||
import { changeZoomFactor, ZOOM } from 'util/zoomWindow';
|
import { ZOOM } from 'util/zoomWindow';
|
||||||
|
|
||||||
export default () => {
|
export default () => {
|
||||||
const template = [
|
const template = [
|
||||||
|
|
270
flow-typed/npm/node-sass_vx.x.x.js
vendored
270
flow-typed/npm/node-sass_vx.x.x.js
vendored
|
@ -1,270 +0,0 @@
|
||||||
// flow-typed signature: ffdd57cb6a0c6f4b1d0b68538d77fd53
|
|
||||||
// flow-typed version: <<STUB>>/node-sass_v^4.11.0/flow_v0.94.0
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This is an autogenerated libdef stub for:
|
|
||||||
*
|
|
||||||
* 'node-sass'
|
|
||||||
*
|
|
||||||
* Fill this stub out by replacing all the `any` types.
|
|
||||||
*
|
|
||||||
* Once filled out, we encourage you to share your work with the
|
|
||||||
* community by sending a pull request to:
|
|
||||||
* https://github.com/flowtype/flow-typed
|
|
||||||
*/
|
|
||||||
|
|
||||||
declare module 'node-sass' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* We include stubs for each file inside this npm package in case you need to
|
|
||||||
* require those files directly. Feel free to delete any files that aren't
|
|
||||||
* needed.
|
|
||||||
*/
|
|
||||||
declare module 'node-sass/lib/binding' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'node-sass/lib/errors' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'node-sass/lib/extensions' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'node-sass/lib/index' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'node-sass/lib/render' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'node-sass/lib/watcher' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'node-sass/scripts/build' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'node-sass/scripts/coverage' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'node-sass/scripts/install' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'node-sass/scripts/prepublish' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'node-sass/scripts/util/downloadoptions' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'node-sass/scripts/util/proxy' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'node-sass/scripts/util/useragent' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'node-sass/test/api' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'node-sass/test/binding' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'node-sass/test/cli' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'node-sass/test/downloadoptions' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'node-sass/test/errors' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'node-sass/test/fixtures/extras/my_custom_arrays_of_importers' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'node-sass/test/fixtures/extras/my_custom_functions_setter' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'node-sass/test/fixtures/extras/my_custom_functions_string_conversion' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'node-sass/test/fixtures/extras/my_custom_importer_data_cb' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'node-sass/test/fixtures/extras/my_custom_importer_data' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'node-sass/test/fixtures/extras/my_custom_importer_error' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'node-sass/test/fixtures/extras/my_custom_importer_file_and_data_cb' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'node-sass/test/fixtures/extras/my_custom_importer_file_and_data' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'node-sass/test/fixtures/extras/my_custom_importer_file_cb' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'node-sass/test/fixtures/extras/my_custom_importer_file' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'node-sass/test/lowlevel' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'node-sass/test/runtime' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'node-sass/test/scripts/util/proxy' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'node-sass/test/spec' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'node-sass/test/types' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'node-sass/test/useragent' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'node-sass/test/watcher' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Filename aliases
|
|
||||||
declare module 'node-sass/lib/binding.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/lib/binding'>;
|
|
||||||
}
|
|
||||||
declare module 'node-sass/lib/errors.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/lib/errors'>;
|
|
||||||
}
|
|
||||||
declare module 'node-sass/lib/extensions.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/lib/extensions'>;
|
|
||||||
}
|
|
||||||
declare module 'node-sass/lib/index.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/lib/index'>;
|
|
||||||
}
|
|
||||||
declare module 'node-sass/lib/render.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/lib/render'>;
|
|
||||||
}
|
|
||||||
declare module 'node-sass/lib/watcher.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/lib/watcher'>;
|
|
||||||
}
|
|
||||||
declare module 'node-sass/scripts/build.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/scripts/build'>;
|
|
||||||
}
|
|
||||||
declare module 'node-sass/scripts/coverage.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/scripts/coverage'>;
|
|
||||||
}
|
|
||||||
declare module 'node-sass/scripts/install.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/scripts/install'>;
|
|
||||||
}
|
|
||||||
declare module 'node-sass/scripts/prepublish.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/scripts/prepublish'>;
|
|
||||||
}
|
|
||||||
declare module 'node-sass/scripts/util/downloadoptions.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/scripts/util/downloadoptions'>;
|
|
||||||
}
|
|
||||||
declare module 'node-sass/scripts/util/proxy.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/scripts/util/proxy'>;
|
|
||||||
}
|
|
||||||
declare module 'node-sass/scripts/util/useragent.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/scripts/util/useragent'>;
|
|
||||||
}
|
|
||||||
declare module 'node-sass/test/api.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/test/api'>;
|
|
||||||
}
|
|
||||||
declare module 'node-sass/test/binding.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/test/binding'>;
|
|
||||||
}
|
|
||||||
declare module 'node-sass/test/cli.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/test/cli'>;
|
|
||||||
}
|
|
||||||
declare module 'node-sass/test/downloadoptions.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/test/downloadoptions'>;
|
|
||||||
}
|
|
||||||
declare module 'node-sass/test/errors.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/test/errors'>;
|
|
||||||
}
|
|
||||||
declare module 'node-sass/test/fixtures/extras/my_custom_arrays_of_importers.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/test/fixtures/extras/my_custom_arrays_of_importers'>;
|
|
||||||
}
|
|
||||||
declare module 'node-sass/test/fixtures/extras/my_custom_functions_setter.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/test/fixtures/extras/my_custom_functions_setter'>;
|
|
||||||
}
|
|
||||||
declare module 'node-sass/test/fixtures/extras/my_custom_functions_string_conversion.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/test/fixtures/extras/my_custom_functions_string_conversion'>;
|
|
||||||
}
|
|
||||||
declare module 'node-sass/test/fixtures/extras/my_custom_importer_data_cb.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/test/fixtures/extras/my_custom_importer_data_cb'>;
|
|
||||||
}
|
|
||||||
declare module 'node-sass/test/fixtures/extras/my_custom_importer_data.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/test/fixtures/extras/my_custom_importer_data'>;
|
|
||||||
}
|
|
||||||
declare module 'node-sass/test/fixtures/extras/my_custom_importer_error.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/test/fixtures/extras/my_custom_importer_error'>;
|
|
||||||
}
|
|
||||||
declare module 'node-sass/test/fixtures/extras/my_custom_importer_file_and_data_cb.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/test/fixtures/extras/my_custom_importer_file_and_data_cb'>;
|
|
||||||
}
|
|
||||||
declare module 'node-sass/test/fixtures/extras/my_custom_importer_file_and_data.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/test/fixtures/extras/my_custom_importer_file_and_data'>;
|
|
||||||
}
|
|
||||||
declare module 'node-sass/test/fixtures/extras/my_custom_importer_file_cb.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/test/fixtures/extras/my_custom_importer_file_cb'>;
|
|
||||||
}
|
|
||||||
declare module 'node-sass/test/fixtures/extras/my_custom_importer_file.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/test/fixtures/extras/my_custom_importer_file'>;
|
|
||||||
}
|
|
||||||
declare module 'node-sass/test/lowlevel.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/test/lowlevel'>;
|
|
||||||
}
|
|
||||||
declare module 'node-sass/test/runtime.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/test/runtime'>;
|
|
||||||
}
|
|
||||||
declare module 'node-sass/test/scripts/util/proxy.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/test/scripts/util/proxy'>;
|
|
||||||
}
|
|
||||||
declare module 'node-sass/test/spec.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/test/spec'>;
|
|
||||||
}
|
|
||||||
declare module 'node-sass/test/types.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/test/types'>;
|
|
||||||
}
|
|
||||||
declare module 'node-sass/test/useragent.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/test/useragent'>;
|
|
||||||
}
|
|
||||||
declare module 'node-sass/test/watcher.js' {
|
|
||||||
declare module.exports: $Exports<'node-sass/test/watcher'>;
|
|
||||||
}
|
|
|
@ -35,8 +35,7 @@
|
||||||
"dist": "electron-builder",
|
"dist": "electron-builder",
|
||||||
"build": "cross-env NODE_ENV=production yarn compile:electron && electron-builder build",
|
"build": "cross-env NODE_ENV=production yarn compile:electron && electron-builder build",
|
||||||
"build:dir": "yarn build -- --dir -c.compression=store -c.mac.identity=null",
|
"build:dir": "yarn build -- --dir -c.compression=store -c.mac.identity=null",
|
||||||
"lint": "eslint 'src/**/*.{js,jsx}' --fix && flow",
|
"lint": "eslint ui/**/*.{js,jsx} && eslint web/{component,effects,middleware,page,setup,src} && eslint electron/**/*.js && flow",
|
||||||
"format": "prettier 'src/**/*.{js,jsx,scss,json}' --write",
|
|
||||||
"flow-defs": "flow-typed install",
|
"flow-defs": "flow-typed install",
|
||||||
"precommit": "lint-staged",
|
"precommit": "lint-staged",
|
||||||
"preinstall": "yarn cache clean lbry-redux && yarn cache clean lbryinc",
|
"preinstall": "yarn cache clean lbry-redux && yarn cache clean lbryinc",
|
||||||
|
@ -150,7 +149,6 @@
|
||||||
"node-fetch": "^2.6.1",
|
"node-fetch": "^2.6.1",
|
||||||
"node-libs-browser": "^2.1.0",
|
"node-libs-browser": "^2.1.0",
|
||||||
"node-loader": "^0.6.0",
|
"node-loader": "^0.6.0",
|
||||||
"node-sass": "^4.11.0",
|
|
||||||
"nodemon": "^1.19.1",
|
"nodemon": "^1.19.1",
|
||||||
"postcss-import": "^12.0.1",
|
"postcss-import": "^12.0.1",
|
||||||
"postcss-loader": "^3.0.0",
|
"postcss-loader": "^3.0.0",
|
||||||
|
@ -185,6 +183,7 @@
|
||||||
"remark-emoji": "^2.0.1",
|
"remark-emoji": "^2.0.1",
|
||||||
"remark-react": "^4.0.3",
|
"remark-react": "^4.0.3",
|
||||||
"reselect": "^3.0.0",
|
"reselect": "^3.0.0",
|
||||||
|
"sass": "^1.29.0",
|
||||||
"sass-loader": "^7.1.0",
|
"sass-loader": "^7.1.0",
|
||||||
"semver": "^5.3.0",
|
"semver": "^5.3.0",
|
||||||
"stream-to-blob-url": "^2.1.1",
|
"stream-to-blob-url": "^2.1.1",
|
||||||
|
|
|
@ -44,8 +44,6 @@ const MOUSE_BACK_BTN = 3;
|
||||||
const MOUSE_FORWARD_BTN = 4;
|
const MOUSE_FORWARD_BTN = 4;
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
alertError: (string | {}) => void,
|
|
||||||
pageTitle: ?string,
|
|
||||||
language: string,
|
language: string,
|
||||||
languages: Array<string>,
|
languages: Array<string>,
|
||||||
theme: string,
|
theme: string,
|
||||||
|
|
|
@ -59,7 +59,7 @@ function AutoplayCountdown(props: Props) {
|
||||||
doPlayUri(nextRecommendedUri);
|
doPlayUri(nextRecommendedUri);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, [navigateUrl, nextRecommendedUri, isFloating, doSetPlayingUri, doPlayUri]);
|
}, [navigateUrl, nextRecommendedUri, isFloating, doSetPlayingUri, doPlayUri, push]);
|
||||||
|
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
const handleScroll = debounce(e => {
|
const handleScroll = debounce(e => {
|
||||||
|
|
|
@ -152,10 +152,12 @@ function ClaimListDiscover(props: Props) {
|
||||||
const feeAmountParam = urlParams.get('fee_amount') || feeAmount;
|
const feeAmountParam = urlParams.get('fee_amount') || feeAmount;
|
||||||
const originalPageSize = pageSize || CS.PAGE_SIZE;
|
const originalPageSize = pageSize || CS.PAGE_SIZE;
|
||||||
const dynamicPageSize = isLargeScreen ? Math.ceil(originalPageSize * (3 / 2)) : originalPageSize;
|
const dynamicPageSize = isLargeScreen ? Math.ceil(originalPageSize * (3 / 2)) : originalPageSize;
|
||||||
|
const historyAction = history.action;
|
||||||
|
|
||||||
let orderParam = orderBy || urlParams.get(CS.ORDER_BY_KEY) || defaultOrderBy;
|
let orderParam = orderBy || urlParams.get(CS.ORDER_BY_KEY) || defaultOrderBy;
|
||||||
|
|
||||||
if (!orderParam) {
|
if (!orderParam) {
|
||||||
if (history.action === 'POP') {
|
if (historyAction === 'POP') {
|
||||||
// Reaching here means user have popped back to the page's entry point (e.g. '/$/tags' without any '?order=').
|
// Reaching here means user have popped back to the page's entry point (e.g. '/$/tags' without any '?order=').
|
||||||
orderParam = orderParamEntry;
|
orderParam = orderParamEntry;
|
||||||
} else {
|
} else {
|
||||||
|
@ -166,14 +168,15 @@ function ClaimListDiscover(props: Props) {
|
||||||
|
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
setOrderParamUser(orderParam);
|
setOrderParamUser(orderParam);
|
||||||
}, [orderParam]);
|
}, [orderParam, setOrderParamUser]);
|
||||||
|
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
// One-time update to stash the finalized 'orderParam' at entry.
|
// One-time update to stash the finalized 'orderParam' at entry.
|
||||||
if (history.action !== 'POP') {
|
if (historyAction !== 'POP') {
|
||||||
setOrderParamEntry(orderParam);
|
setOrderParamEntry(orderParam);
|
||||||
}
|
}
|
||||||
}, []);
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
|
}, [historyAction, setOrderParamEntry]);
|
||||||
|
|
||||||
let options: {
|
let options: {
|
||||||
page_size: number,
|
page_size: number,
|
||||||
|
|
|
@ -117,13 +117,14 @@ function ClaimListHeader(props: Props) {
|
||||||
|
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
setOrderParamUser(orderParam);
|
setOrderParamUser(orderParam);
|
||||||
}, [orderParam]);
|
}, [orderParam, setOrderParamUser]);
|
||||||
|
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
// One-time update to stash the finalized 'orderParam' at entry.
|
// One-time update to stash the finalized 'orderParam' at entry.
|
||||||
if (action !== 'POP') {
|
if (action !== 'POP') {
|
||||||
setOrderParamEntry(orderParam);
|
setOrderParamEntry(orderParam);
|
||||||
}
|
}
|
||||||
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
function handleChange(change) {
|
function handleChange(change) {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
// @flow
|
// @flow
|
||||||
import React, { Suspense } from 'react';
|
import React from 'react';
|
||||||
import classnames from 'classnames';
|
import classnames from 'classnames';
|
||||||
import ReactQrCode from 'qrcode.react';
|
import ReactQrCode from 'qrcode.react';
|
||||||
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
/* eslint react/display-name: 0 */
|
|
||||||
|
|
||||||
import React from 'react';
|
|
||||||
|
|
||||||
export default ({ rule = '' }) => <css-doodle use="var(--rule)">{rule}</css-doodle>;
|
|
|
@ -58,7 +58,7 @@ function FileDownloadLink(props: Props) {
|
||||||
|
|
||||||
setDidClickDownloadButton(false);
|
setDidClickDownloadButton(false);
|
||||||
}
|
}
|
||||||
}, [streamingUrl, didClickDownloadButton]);
|
}, [streamingUrl, didClickDownloadButton, fileName]);
|
||||||
// @endif
|
// @endif
|
||||||
|
|
||||||
function handleDownload(e) {
|
function handleDownload(e) {
|
||||||
|
|
|
@ -104,15 +104,17 @@ export default function FileRenderFloating(props: Props) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Updated 'relativePos' based on persisted 'position':
|
// Updated 'relativePos' based on persisted 'position':
|
||||||
|
const stringifiedPosition = JSON.stringify(position);
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
const jsonPosition = JSON.parse(stringifiedPosition);
|
||||||
|
|
||||||
setRelativePos({
|
setRelativePos({
|
||||||
x: position.x / getScreenWidth(),
|
x: jsonPosition.x / getScreenWidth(),
|
||||||
y: position.y / getScreenHeight(),
|
y: jsonPosition.y / getScreenHeight(),
|
||||||
});
|
});
|
||||||
}, []);
|
}, [stringifiedPosition]);
|
||||||
|
|
||||||
// Ensure player is within screen when 'isFloating' changes.
|
// Ensure player is within screen when 'isFloating' changes.
|
||||||
const stringifiedPosition = JSON.stringify(position);
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const jsonPosition = JSON.parse(stringifiedPosition);
|
const jsonPosition = JSON.parse(stringifiedPosition);
|
||||||
|
|
||||||
|
|
|
@ -36,14 +36,17 @@ function InviteNew(props: Props) {
|
||||||
// Referral link
|
// Referral link
|
||||||
const [referralSource, setReferralSource] = useState(referralCode);
|
const [referralSource, setReferralSource] = useState(referralCode);
|
||||||
|
|
||||||
function handleReferralChange(code) {
|
const handleReferralChange = React.useCallback(
|
||||||
|
code => {
|
||||||
setReferralSource(code);
|
setReferralSource(code);
|
||||||
// TODO: keep track of this in an array?
|
// TODO: keep track of this in an array?
|
||||||
const matchingChannel = channels && channels.find(ch => ch.name === code);
|
const matchingChannel = channels && channels.find(ch => ch.name === code);
|
||||||
if (matchingChannel) {
|
if (matchingChannel) {
|
||||||
analytics.apiLogPublish(matchingChannel);
|
analytics.apiLogPublish(matchingChannel);
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
[setReferralSource]
|
||||||
|
);
|
||||||
|
|
||||||
const topChannel =
|
const topChannel =
|
||||||
channels &&
|
channels &&
|
||||||
|
@ -64,7 +67,7 @@ function InviteNew(props: Props) {
|
||||||
if (topChannel) {
|
if (topChannel) {
|
||||||
handleReferralChange(topChannel.name);
|
handleReferralChange(topChannel.name);
|
||||||
}
|
}
|
||||||
}, [topChannel]);
|
}, [topChannel, handleReferralChange]);
|
||||||
|
|
||||||
function lookupUrlByClaimName(name, channels) {
|
function lookupUrlByClaimName(name, channels) {
|
||||||
const claim = channels.find(channel => channel.name === name);
|
const claim = channels.find(channel => channel.name === name);
|
||||||
|
|
|
@ -63,19 +63,19 @@ function Invited(props: Props) {
|
||||||
uri: fullUri,
|
uri: fullUri,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}, [fullUri, isSubscribed]);
|
}, [fullUri, isSubscribed, channelSubscribe]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!referrerSetPending && hasVerifiedEmail) {
|
if (!referrerSetPending && hasVerifiedEmail) {
|
||||||
claimReward();
|
claimReward();
|
||||||
}
|
}
|
||||||
}, [referrerSetPending, hasVerifiedEmail]);
|
}, [referrerSetPending, hasVerifiedEmail, claimReward]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (referrer) {
|
if (referrer) {
|
||||||
setReferrer(referrer.replace(':', '#'));
|
setReferrer(referrer.replace(':', '#'));
|
||||||
}
|
}
|
||||||
}, [referrer]);
|
}, [referrer, setReferrer]);
|
||||||
|
|
||||||
function handleDone() {
|
function handleDone() {
|
||||||
history.push(redirect);
|
history.push(redirect);
|
||||||
|
|
|
@ -68,7 +68,7 @@ function Page(props: Props) {
|
||||||
if (isOnFilePage || isMediumScreen) {
|
if (isOnFilePage || isMediumScreen) {
|
||||||
setSidebarOpen(false);
|
setSidebarOpen(false);
|
||||||
}
|
}
|
||||||
}, [isOnFilePage, isMediumScreen]);
|
}, [isOnFilePage, isMediumScreen, setSidebarOpen]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Fragment>
|
<Fragment>
|
||||||
|
|
|
@ -43,7 +43,7 @@ function PostEditor(props: Props) {
|
||||||
if (editing && uri) {
|
if (editing && uri) {
|
||||||
fetchStreamingUrl(uri);
|
fetchStreamingUrl(uri);
|
||||||
}
|
}
|
||||||
}, [uri, editing]);
|
}, [uri, editing, fetchStreamingUrl]);
|
||||||
|
|
||||||
// Ready to edit content
|
// Ready to edit content
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
@ -75,7 +75,7 @@ function PostEditor(props: Props) {
|
||||||
updatePublishForm({ fileText: text });
|
updatePublishForm({ fileText: text });
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error);
|
console.error(error); // eslint-disable-line
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -26,18 +26,22 @@ export default function RecommendedContent(props: Props) {
|
||||||
const isMobile = useIsMobile();
|
const isMobile = useIsMobile();
|
||||||
const isMedium = useIsMediumScreen();
|
const isMedium = useIsMediumScreen();
|
||||||
|
|
||||||
function getRecommendedContent() {
|
const stringifiedClaim = JSON.stringify(claim);
|
||||||
if (claim && claim.value && claim.claim_id) {
|
const getRecommendedContent = React.useCallback(() => {
|
||||||
const options: Options = { size: 20, related_to: claim.claim_id, isBackgroundSearch: true };
|
if (stringifiedClaim) {
|
||||||
if (claim && !mature) {
|
const jsonClaim = JSON.parse(stringifiedClaim);
|
||||||
|
if (jsonClaim && jsonClaim.value && jsonClaim.claim_id) {
|
||||||
|
const options: Options = { size: 20, related_to: jsonClaim.claim_id, isBackgroundSearch: true };
|
||||||
|
if (jsonClaim && !mature) {
|
||||||
options['nsfw'] = false;
|
options['nsfw'] = false;
|
||||||
}
|
}
|
||||||
const { title } = claim.value;
|
const { title } = jsonClaim.value;
|
||||||
if (title && options) {
|
if (title && options) {
|
||||||
search(title, options);
|
search(title, options);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}, [stringifiedClaim, mature]);
|
||||||
|
|
||||||
React.useEffect(() => {
|
React.useEffect(() => {
|
||||||
getRecommendedContent();
|
getRecommendedContent();
|
||||||
|
|
|
@ -1,6 +1,11 @@
|
||||||
|
// @flow
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
|
||||||
const Theme = props => {
|
type Props = {
|
||||||
|
themePath: ?string,
|
||||||
|
};
|
||||||
|
|
||||||
|
const Theme = (props: Props) => {
|
||||||
const { themePath } = props;
|
const { themePath } = props;
|
||||||
|
|
||||||
if (!themePath) {
|
if (!themePath) {
|
||||||
|
|
|
@ -32,7 +32,6 @@ export default function useStream(url) {
|
||||||
if (isMounted.current) {
|
if (isMounted.current) {
|
||||||
const buffer = Buffer.concat(chunks);
|
const buffer = Buffer.concat(chunks);
|
||||||
const blob = new Blob([buffer]);
|
const blob = new Blob([buffer]);
|
||||||
console.info(response);
|
|
||||||
setState({ content: blob, loading: false });
|
setState({ content: blob, loading: false });
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -45,12 +45,15 @@ function saveMessage(message) {
|
||||||
but this seems better than silently having this limitation and future devs not knowing.
|
but this seems better than silently having this limitation and future devs not knowing.
|
||||||
*/
|
*/
|
||||||
// @if TARGET='web'
|
// @if TARGET='web'
|
||||||
|
// $FlowFixMe
|
||||||
|
// eslint-disable
|
||||||
function saveMessage(message) {
|
function saveMessage(message) {
|
||||||
if (!isProduction && knownMessages === null) {
|
if (!isProduction && knownMessages === null) {
|
||||||
console.log('Note that i18n messages are not saved in web dev mode.');
|
console.log('Note that i18n messages are not saved in web dev mode.');
|
||||||
knownMessages = {};
|
knownMessages = {};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// eslint-enable
|
||||||
// @endif
|
// @endif
|
||||||
|
|
||||||
function removeContextMetadata(message) {
|
function removeContextMetadata(message) {
|
||||||
|
|
|
@ -5,7 +5,7 @@ const protocol = 'lbry://';
|
||||||
const uriRegex = /(lbry:\/\/)[^\s"]*[^)]/g;
|
const uriRegex = /(lbry:\/\/)[^\s"]*[^)]/g;
|
||||||
|
|
||||||
const mentionToken = '@';
|
const mentionToken = '@';
|
||||||
const mentionTokenCode = 64; // @
|
// const mentionTokenCode = 64; // @
|
||||||
const mentionRegex = /@[^\s()"]*/gm;
|
const mentionRegex = /@[^\s()"]*/gm;
|
||||||
|
|
||||||
const invalidRegex = /[-_.+=?!@#$%^&*:;,{}<>\w/\\]/;
|
const invalidRegex = /[-_.+=?!@#$%^&*:;,{}<>\w/\\]/;
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
// @if TARGET='app'
|
|
||||||
import { remote } from 'electron';
|
|
||||||
|
|
||||||
const win = remote.getCurrentWindow();
|
|
||||||
|
|
||||||
const setProgressBar = progress => {
|
|
||||||
win.setProgressBar(progress);
|
|
||||||
};
|
|
||||||
// @endif
|
|
||||||
|
|
||||||
// @if TARGET='web'
|
|
||||||
const setProgressBar = progress => {};
|
|
||||||
// @endif
|
|
||||||
|
|
||||||
export default setProgressBar;
|
|
|
@ -12,7 +12,7 @@ function queryPool(sql, params) {
|
||||||
return new Promise(resolve => {
|
return new Promise(resolve => {
|
||||||
pool.query(sql, params, (error, rows) => {
|
pool.query(sql, params, (error, rows) => {
|
||||||
if (error) {
|
if (error) {
|
||||||
console.log('error', error);
|
console.log('error', error); // eslint-disable-line
|
||||||
resolve();
|
resolve();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue