b733215c5f
* 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. |
||
---|---|---|
.github | ||
.tx | ||
build | ||
custom | ||
electron | ||
extras | ||
flow-typed | ||
homepages | ||
static | ||
ui | ||
web | ||
.env.defaults | ||
.eslintignore | ||
.eslintrc | ||
.flowconfig | ||
.gitignore | ||
.lintstagedrc.json | ||
.prettierignore | ||
.prettierrc.json | ||
.sentryclirc | ||
babel.config.js | ||
config.js | ||
CONTRIBUTING.md | ||
electron-builder.json | ||
LICENSE | ||
package.json | ||
postcss.config.js | ||
README.md | ||
webpack.base.config.js | ||
webpack.electron.config.js | ||
yarn.lock |
Odysee Frontend - Odysee.com
This repo contains the UI and front end code that powers Odysee.com.
Table of Contents
Usage
Go to the website to interact on this frontend.
Running from Source
Prerequisites
- Clone (or fork) this repository:
git clone https://github.com/OdyseeTeam/odysee-frontend
- Change directory into the cloned repository:
cd odysee-frontend
- 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 runyarn dev:web-server
. This starts a server atlocalhost: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 theOG_IMAGE_URL
in .env file.
- Either place a png named
- 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:
- Add
CUSTOM_HOMEPAGE=true
to the .env file. - Copy
/custom/homepage.example.js
to/custom/homepage.js
and make desired changes tohomepage.js
.
- Add
- 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.
- Note: You do not need to edit the
Deploy the web app (experimental)
- Create a server with a domain name and a reverse proxy https to port 1337.
- Install pm2, node v10, yarn
- Clone this repo
- Make any customizations as above
- Run
yarn
to install - Run
NODE_ENV=production yarn compile:web
to build - 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.
License
This project is MIT licensed. For the full license, see LICENSE.
Security
For security issues, please reach out to security@odysee.com