A browser and wallet for LBRY, the decentralized, user-controlled content marketplace.
Find a file
infinite-persistence b733215c5f
PublishFile: fix render function violation (#1518)
* PublishFile: fix render function violation

Per doc:
> A React component should not cause side effects in other components during rendering.

Even in own render function (allowed to call), it should be avoided as it could cause infinite loops.

* PublishFile: fix useEffect infinite loop due to bad dependency

## Issue
One of the effects was adding an internal wrapper function as a dependency. As this is a functional component, the wrapper is re-created on every render and would spark the effect. That effect also updates redux (depending on the code path), so we end up in a loop.

## Change 1
Two options to fix the dependency:
1. Just remove the wrappers from the list, since we "know" it is essentially the same function (i.e. it's not function-variable that could point to something else at runtime).
2. Peek into the wrapper and determine what are the actual dependencies (usually props or data derived from props).

Solution 2 is the norm.

Aside: wrappers are usually the root-cause of incorrect dependencies, because they mask away the actual code. Need to always peek into it.

## Change 2
Next, change the dispatch-to-props map from function version to object version so that we have stable references to the actions. The object version is also preferred when we don't need to make any customizations to the actions.
2022-05-19 10:41:32 -04:00
.github update videoplayer 2022-02-08 13:34:37 -05:00
.tx make "I Understand" acknowledgement work for i18n case 2019-10-13 12:42:55 -04:00
build working 2020-12-16 10:52:22 -05:00
custom initial PR for custom homepages - take 2 2020-11-10 12:08:19 -05:00
electron Remove use-zoom 2021-11-09 15:57:12 +08:00
extras rename field 2022-05-12 18:35:20 -04:00
flow-typed Support stream updates via claim_id parameter (#1465) 2022-05-19 08:13:48 -04:00
homepages Revert "Code-split homepages" 2021-10-28 01:33:46 +08:00
static Strings from grid update 2022-05-18 22:45:00 +08:00
ui PublishFile: fix render function violation (#1518) 2022-05-19 10:41:32 -04:00
web Support stream updates via claim_id parameter (#1465) 2022-05-19 08:13:48 -04:00
.env.defaults Support stream updates via claim_id parameter (#1465) 2022-05-19 08:13:48 -04:00
.eslintignore inline-attachment: move to local copy + handle xhr errors 2022-04-01 12:36:49 -04:00
.eslintrc Add pre-roll ads 2021-07-13 00:06:32 -04:00
.flowconfig Category: Hide "Repost" from ContentType filter, except for WildWest 2022-04-25 08:49:46 -04:00
.gitignore Ignore .vscode directory to allow disabling js typechecking. (#712) 2022-01-17 08:39:40 -05:00
.lintstagedrc.json Lint '/extras/*' + fixes 2021-10-19 20:40:08 +08:00
.prettierignore Use non-VHS link when "auto" matches non-VHS quality 2022-04-14 02:41:23 -04:00
.prettierrc.json redesign channel page 2019-05-06 23:29:50 -04:00
.sentryclirc update iframe type + sentry 2022-03-02 12:45:26 -05:00
babel.config.js use same code for handling open links on lbry.tv and desktop 2019-12-03 13:25:17 -05:00
config.js getHtml/routes/rss: fetch streaming_url instead of generating it. 2022-05-13 20:23:17 +08:00
CONTRIBUTING.md More cleanup 2022-01-31 11:39:03 -05:00
electron-builder.json remove 32 bit build 2021-01-25 14:24:57 -05:00
LICENSE Bump copyright year to 2021 2021-02-17 17:40:00 -05:00
package.json Preview image thumbnails (#1514) 2022-05-18 18:02:02 +02:00
postcss.config.js redesign channel page 2019-05-06 23:29:50 -04:00
README.md README: remove obsolete items + improve formatting 2022-02-26 21:19:01 +08:00
webpack.base.config.js Enable BundleAnalyzerPlugin + remove 'yarn analyze' 2021-11-11 00:07:18 +08:00
webpack.electron.config.js Initial commit for LBRY-First 2020-07-08 14:23:43 -04:00
yarn.lock Preview image thumbnails (#1514) 2022-05-18 18:02:02 +02:00

Odysee Frontend - Odysee.com

This repo contains the UI and front end code that powers Odysee.com.

npm chat on Discord

Table of Contents

  1. Usage
  2. Running from Source
  3. Contributing
  4. License
  5. Security
  6. Contact

Usage

Go to the website to interact on this frontend.

Running from Source

Prerequisites

  1. Clone (or fork) this repository: git clone https://github.com/OdyseeTeam/odysee-frontend
  2. Change directory into the cloned repository: cd odysee-frontend
  3. Install the dependencies: yarn

Run the web app for development

yarn dev:web

  • This uses webpack-dev-server and includes hot-reloading. If you want to debug the web server we use in production you can run yarn dev:web-server. This starts a server at localhost:1337 and does not include hot reloading.

Customize the web app

  • In root directory, duplicate the .env.default file as .env and make customizations there.
    cp .env.defaults .env
    nano .env
    
  • To specify your own OG-IMAGE:
    • Either place a png named v2-og.png in the /custom folder or specify the OG_IMAGE_URL in .env file.
  • To specify your own channels to be followed on first run:
    • AUTO_FOLLOW_URLS=lbry://@chan#123...a lbry://@chan2#456...a
  • To customize the homepage content:
    1. Add CUSTOM_HOMEPAGE=true to the .env file.
    2. Copy /custom/homepage.example.js to /custom/homepage.js and make desired changes to homepage.js.
  • Finally, run NODE_ENV=production yarn compile:web to rebuild.
    • Note: You do not need to edit the .env file in the /web folder - that is copied during compilation.

Deploy the web app (experimental)

  1. Create a server with a domain name and a reverse proxy https to port 1337.
  2. Install pm2, node v10, yarn
  3. Clone this repo
  4. Make any customizations as above
  5. Run yarn to install
  6. Run NODE_ENV=production yarn compile:web to build
  7. Set up pm2 to start ./web/index.js

Resetting your Packages

If the app isn't building, or yarn xxx commands aren't working you may need to just reset your node_modules. To do so you can run: rm -r node_modules && yarn or del /s /q node_modules && yarn on Windows.

If you really think something might have gone wrong, you can force your repo to clear everything that doesn't match the repo with git reset --hard HEAD && git clean -fxd && git pull -r

Contributing

We ❤️ contributions from everyone and contributions to this project are encouraged, and compensated. We welcome bug reports, bug fixes and feedback is always appreciated. For more details, see CONTRIBUTING.md.

contributions welcome GitHub contributors

License

This project is MIT licensed. For the full license, see LICENSE.

Security

For security issues, please reach out to security@odysee.com