Compare commits

...

3604 commits

Author SHA1 Message Date
Kenneth C
d14c9141db
Update readme (#7755)
Removed my name from the readme as I have no association with this project anymore, and have not touched the Flatpak in ages. 

RIP LBRY.
2023-04-10 12:17:11 -04:00
zeppi
06c350c4db v0.53.9 2023-02-08 15:29:43 -05:00
zeppi
c3a9d9d002 fix changelog 2023-02-08 15:28:26 -05:00
zeppi
aeada6dc74 v0.53.9 2023-02-08 14:38:35 -05:00
zeppi
6ba985fd28 lbrynet version 113, changelog 2023-02-08 14:32:16 -05:00
jessopb
2a0bc85738
bump lbrynet to 113 (#7747) 2023-02-08 10:36:14 -05:00
jessopb
523ea284a2
update signing certificate for 2023 (#7744) 2023-01-25 16:25:45 -05:00
jessopb
a66d7534c2
add csc 2023-01-25 16:05:39 -05:00
zeppi
89ec07622f v0.53.8 2022-11-18 14:15:03 -05:00
zeppi
7e6ad31392 Revert "v0.53.8"
Incorrect Changelog
This reverts commit 4ab23f03fc.
2022-11-18 14:12:52 -05:00
zeppi
4ab23f03fc v0.53.8 2022-11-18 14:05:00 -05:00
zeppi
29cea5cc07 changelog 2022-11-18 14:02:37 -05:00
jessopb
8dd7150d67
fix unfollowing unpublished channels (#7737) 2022-11-18 10:22:32 -05:00
zeppi
f1b1523017 v0.53.8-alpha.1 2022-11-17 13:26:53 -05:00
jessopb
88ac250fee
fix large file uploads (#7736)
* fix large file uploads

* changelog

* update github action xcode version

* update electronbuilder for macos

* try use_hard_links=false

* no USE_HARD_LINKS

* upgrate electron-builder 23_3_3

* revert to electron-builder 22_10_5
electron-builder/issues/6124 says regressions happen after this version.

* try mac install homebrew, python2

* typo and ln /usr/bin/python

* oops

* try sudo

* try PYTHON_PATH

* comment github action mac python hack
2022-11-17 13:20:01 -05:00
zeppi
0a5e9e87ed v0.53.7 2022-11-10 14:45:50 -05:00
zeppi
20413d79b6 changelog 2022-11-10 14:44:54 -05:00
zeppi
ff9011e6ac v0.53.7-alpha.1 2022-11-04 12:37:02 -04:00
jessopb
802139d0a4
upgrade lbrynet to 112 (#7717) 2022-11-04 12:31:44 -04:00
zeppi
68d307fa50 changelog 2022-11-04 10:47:56 -04:00
jessopb
d3900e39b6
fix comment area display (#7716) 2022-11-04 10:44:36 -04:00
jessopb
35769dede6
separate out advanced textarea, fix comment channel selector width, a… (#7634)
* separate out advanced textarea, fix comment channel selector width, add advanced text icon

* fix master conflicts

* fixes

* fix channel description edit
2022-11-04 08:42:36 -04:00
zeppi
ae1e20d131 changelog 2022-11-03 17:46:08 -04:00
jessopb
051af8b6ad
fix post publish erased when confirmation (#7715) 2022-11-03 17:17:56 -04:00
jessopb
5d77b115f9
fix thumbnails disabling publish (#7714) 2022-11-03 15:55:46 -04:00
Byron Eric Perez
7dbeeac112
Add 'Collections' into txo filter (#7711) 2022-10-28 18:31:56 -04:00
zeppi
de062c4aee yarn lock 2022-10-25 13:31:32 -04:00
dependabot[bot]
18a3336714
Bump @xmldom/xmldom from 0.7.5 to 0.7.6 (#7701)
Bumps [@xmldom/xmldom](https://github.com/xmldom/xmldom) from 0.7.5 to 0.7.6.
- [Release notes](https://github.com/xmldom/xmldom/releases)
- [Changelog](https://github.com/xmldom/xmldom/blob/master/CHANGELOG.md)
- [Commits](https://github.com/xmldom/xmldom/compare/0.7.5...0.7.6)

---
updated-dependencies:
- dependency-name: "@xmldom/xmldom"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-10-25 13:02:03 -04:00
jessopb
ebf35a1df8
remove watchman (and errors!) (#7710) 2022-10-25 12:56:38 -04:00
jm-morani
28e168d5e5
Minor layout fixes depending on window shape (#7709)
Disable theatre mode styles for medium screen (or lower)
Fix the width of the cover in theater mode
Fix conflicting styles when width is 1150px
Remove duplicate from CHANGELOG

Co-authored-by: Jean-Michel Morani <probono+lbry@morani.org>
2022-10-25 10:03:20 -04:00
Byron Eric Perez
7ad66b99e7
Swap comment servers without going to settings page (#7670)
work in progress

added input to select custom and default server when creating comment

the problem of synchronizing the two commentServer of the application was solved

btn moved to the correct component and syncs correctly

Fixed why it didn't show comments

Aligned input

size and location of the refresh btn changed, and added maximum and minimum width for the comment server

margin removed

change using overflow

refresh
2022-10-24 12:36:30 -04:00
jahway603
7eb7c1a5ff
Updated README.md (#7695)
Fixed Arch AUR package name and current maintainer
2022-10-22 15:16:05 -04:00
zeppi
b88e704e6b v0.53.6 2022-10-21 16:54:07 -04:00
zeppi
8d85af8064 changelog 2022-10-21 16:53:03 -04:00
zeppi
f9d7340729 v0.53.6-alpha.1 2022-10-21 12:21:45 -04:00
zeppi
d57300f785 changelog 2022-10-20 14:41:43 -04:00
jessopb
09baf1d9b9
fall back on contentType for extension on file view (#7704) 2022-10-20 14:17:43 -04:00
Franco Montenegro
ce692d38ea
Upgrade to Electron 17.2.0. (#7703) 2022-10-20 14:03:12 -04:00
zeppi
b1ca3b0183 bump electron 17.2 and lbrynet 0.111.0 2022-10-20 13:09:47 -04:00
Franco Montenegro
a4c34d89e2
Sanitize values for CSV. (#7697)
* Sanitize values for CSV.

* Remove unnecessary escape sequence.
2022-10-17 11:07:33 -04:00
Franco Montenegro
d7b9ca3391
7683 upgrade to electron 17 (#7691)
* Upgrade to electron 17.

* Remove unused dependencies.

* Update recommended node version in readme.

* Move all the dependencies back to devDependencies.

* Move dependencies back as they were.
2022-10-07 13:56:33 -04:00
jessopb
55a5c7b051
make thumbnail optional (#7690) 2022-09-19 18:39:45 -04:00
Franco Montenegro
0e2a9a1033
Better handling of uploaded files. (#7688)
* Better handling of uploaded files.

* Read file when uploading it so we can properly read metadata.
2022-09-19 16:42:16 -04:00
Franco Montenegro
3fd38be789
Sort downloads (show newest first) (#7684) 2022-09-05 16:21:01 -04:00
Franco Montenegro
329d434c83
Allow only images in modal image uploader. (#7672)
* Allow only images in modal image uploader.

* Set file path and mime in file selector.

* Refactor WebFile.

* Update get-file-from-path to work with folders; fix file-list component.

* Get rid of File | string for filePath property in components.

* Show instant preview while updating channel thumbnail.

* Fix publish.

* Add jpeg and svg to image filter.
2022-09-02 12:43:35 -04:00
zeppi
6a2939d9fc v0.53.5 2022-08-26 16:31:37 -04:00
zeppi
65781e33f7 sdk 110 release changelog 2022-08-26 16:21:34 -04:00
jessopb
608721c7ac
upgrade lbrynet sdk to 0.110.0 (#7680) 2022-08-26 16:12:08 -04:00
zeppi
2846dd926b changelog 2022-08-26 16:03:32 -04:00
jm-morani
7a8a16cd9c
Fix viewer position and shape in mobile mode (#7677)
Co-authored-by: Jean-Michel Morani <probono+lbry@morani.org>
2022-08-26 15:36:48 -04:00
jessopb
1c17ff5dd9
doFetchModBlockedList: don't block ui thread (#7674)
* doFetchModBlockedList: don't block ui thread

doFetchModBlockedList is blocking the ui thread.

Duplicate data in `doFetchModBlockedList::blockListsPerChannel` to about 1000. The tab is dead when function hits, about 4s after reload.

- Yield occasionally using the `setTimeout` method.
- Doing a chunk size of 1 for now so we don't have to yield the inner loop as well (seems good enough). This is just based on a relatively large blocklist size.

- Can't do `await` in a callback, so must change the `forEach` to a `for`.

* yield thread in storeList

Co-authored-by: infinite-persistence <inf.persistence@gmail.com>
2022-08-12 17:23:04 -04:00
jessopb
b9be8d9f3a
small fixes for blocked (#7669) 2022-08-09 13:13:57 -04:00
Franco Montenegro
6b1069f02a
Properly handle blacklisted claims. (#7665)
* Properly handle blacklisted claims.

* Identify blacklist cause and display the proper message.
2022-08-09 11:19:23 -04:00
jessopb
b92fb03856
Remove swap (#7659)
* remove requiresAuth

* remove centralized btcswap code
2022-08-02 17:17:00 -04:00
Franco Montenegro
1a9743e639
Properly handle decimals in supports liquidate component. (#7648) 2022-07-23 18:33:00 -04:00
Byron Eric Perez
2773cbbe6e
changed the color of the editor-toolbar_hover class (#7642)
* changed the color of the editor-toolbar_hover class

* Fixed hover, colors and spacing of editor-toolbar_hover class

* active editor-toolbar class modified

* var --color-editor-button-hover-bg and --color-editor-button-active-bg created

* --color-editor-button-hover-bg and --color-editor-button-active-bg
color corrected in light
2022-07-21 16:58:12 -04:00
zeppi
e11fb5d225 changelog 2022-07-16 18:24:46 -04:00
Franco Montenegro
38200b9912
Use image preview to display the cover image recently uploaded. (#7647) 2022-07-13 20:09:11 -04:00
zeppi
c69826a887 remove old scripts 2022-07-12 15:33:46 -04:00
zeppi
ce4fadbdf9 remove readme 'web' mention 2022-07-12 15:24:31 -04:00
jessopb
2895e93323
Sync pre cleanup (#7635)
* missing yarn lock

* rm modal youtube welcome

* prune some isAuthenticated

* remove invite components

* remove reward/verify components

* more odysee feature cleanup
2022-07-08 14:51:53 -04:00
jessopb
3859124c05
missing yarn lock (#7644) 2022-07-07 18:43:38 -04:00
dependabot[bot]
da5ec6edc1
Bump electron from 15.4.0 to 15.5.5 (#7614)
Bumps [electron](https://github.com/electron/electron) from 15.4.0 to 15.5.5.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/main/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v15.4.0...v15.5.5)

---
updated-dependencies:
- dependency-name: electron
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-07-07 17:34:07 -04:00
Byron Eric Perez
9825bccf4a
fix hover style for char count field (#7620)
* fix hover style for char count field

* vertically align character counter and emoji button

* add new comment icon class

* Revert "add new comment icon class"

This reverts commit 8a163e0f02.

* created and corrected the icon class

* button--comment-icons-active removed
2022-07-07 16:55:31 -04:00
Franco Montenegro
f065218ff4
Prevent .deb packages from being opened with archive manager. (#7502)
* Prevent .deb packages from being opened with archive manager.

* Allow to properly cancel download upgrade and prevent multiple downloads.

* Fix missing app-update.yml file for .deb builds.

* Small fix for allowPrerelease prop in autoUpdater.

* Use release/tags endpoint to get the release details.

* Handle error case for auto updater.

* Make install now button display the upgrade modal.

* Use GitHub as provider for manual update url.

* Small fixes in updater.

* Fix small lint errors.

* Properly handle auto download on/off.
2022-07-07 16:48:42 -04:00
Byron Eric Perez
f79c622edf
Added checkbox to enable/disable background (#7630)
* Added checkbox to enable/disable background

* bug fix in enable disable button

* small fix in translation

* rename background setting to be disable backgroud; add default value for background setting.
2022-06-28 16:01:19 -04:00
Byron Eric Perez
c7ab47f54d
use default path in windows when choosing a file (#7625)
* use default path in windows when choosing a file

* fix, changed var to let
2022-06-28 15:49:41 -04:00
Franco Montenegro
8c10617259
Use a retry counter/limit to fetch thumbnails. (#7618) 2022-06-28 11:25:20 -04:00
Franco Montenegro
2e565fd95b
Fix splash error message when the app can't initialize. (#7615) 2022-06-20 12:59:56 -04:00
zeppi
68718f32b2 v0.53.4 2022-06-10 13:58:49 -04:00
zeppi
f70bde0639 v0.53.4-alpha.8 2022-06-10 12:51:35 -04:00
jessopb
2be96a25b1
Disk space ipc fixes (#7610)
* delay get-disk-space until daemon ready

* get fresh diskspace when storage viz renders
2022-06-10 12:42:49 -04:00
zeppi
30cbc3f5c5 v0.53.4-alpha.7 2022-06-10 10:46:59 -04:00
zeppi
8d8c1fd58c bump lbrynet to 107.2 2022-06-10 10:44:36 -04:00
zeppi
d8600e286f v0.53.4-alpha.6 2022-06-09 10:47:41 -04:00
zeppi
7d08800836 revert sdk to 107.1 2022-06-09 10:45:50 -04:00
zeppi
27ede86996 v0.53.4-alpha.5 2022-06-08 17:49:17 -04:00
zeppi
60e5471f5e v0.53.4-alpha.4 2022-06-08 17:21:50 -04:00
zeppi
a1e52eea4a changelog 2022-06-08 17:20:46 -04:00
jessopb
5a99d9777f
bump sdk to 0.109.0 (#7607) 2022-06-08 17:11:15 -04:00
Franco Montenegro
fab69450c0
Hide watched progress if claim is being played. (#7606) 2022-06-08 17:11:05 -04:00
zeppi
5609b43fc7 v0.53.4-alpha.3 2022-06-05 15:07:13 -04:00
zeppi
cc9f2e62de v0.53.4-alpha.2 2022-06-05 12:16:53 -04:00
jessopb
dd6a156d7c
fix diskspace windows bytes (#7601) 2022-06-05 12:10:12 -04:00
jessopb
7b0d38eca7
Testing fixes 0.53.4 (#7600)
* view hosting setting backspace, and storage setting scroll to button

* fix duplicate settings_get call

* avoid unneccessary setDaemonSetting unlimited
2022-06-03 16:09:34 -04:00
jessopb
168ae17eb6
fix dragndrop publish (#7599) 2022-06-02 16:42:27 -04:00
zeppi
0067d5a411 v.53.4-alpha.1 2022-06-02 15:50:25 -04:00
jessopb
99ceaadf8b
add hosting to first run (#7598)
* add hosting to first run, enable auto hosting

* take welcomeVersion out of sync

* app strings fix

* recommended view hosting limit

* small changes

* fixes

* appstrings

* small fix
2022-06-02 15:24:11 -04:00
zeppi
743c75df16 changelog 2022-06-02 15:22:47 -04:00
Franco Montenegro
c5b018afc3 Reconnect to default server if custom server fails. 2022-06-01 17:39:46 -04:00
Franco Montenegro
c7511fc803 Add language category. 2022-06-01 17:06:00 -04:00
zeppi
17bd0eec30 fix status bar colors 2022-05-23 17:36:47 -04:00
zeppi
5c6f7a391b fix price key size 2022-05-23 17:21:27 -04:00
zeppi
d841835c9d fix disappearing checkbox on hover 2022-05-23 16:45:18 -04:00
Franco Montenegro
3c3635977e Implement makeSelectPrevPlayableUrlFromCollectionAndUrl and makeSelectNextPlayableUrlFromCollectionAndUrl 2022-05-21 16:41:52 -04:00
Franco Montenegro
d69eeaa589 Do not allow to add non playable items in playlists yet. 2022-05-21 16:41:52 -04:00
Franco Montenegro
8a9af7d354 Handle non playable items in playlists. 2022-05-21 16:41:52 -04:00
Franco Montenegro
6108860063 Do not show shuffle option for empty collections. 2022-05-06 12:43:29 -04:00
Franco Montenegro
63ce691b90 Disable play/suffle buttons from empty collections. 2022-05-06 12:43:29 -04:00
Franco Montenegro
de825fd4dc Do not throw error when trying to play empty collections. 2022-05-06 12:43:29 -04:00
Franco Montenegro
3671e855cb Add Intl.NumberFormat cache. 2022-05-06 11:24:26 -04:00
Franco Montenegro
efa682ef02 Use language stored in localStorage for formatting numbers. 2022-05-06 11:24:26 -04:00
Franco Montenegro
5319232918 Format numbers internationally. 2022-05-06 11:24:26 -04:00
zeppi
c5b7cc5ac4 fix bid reset 2022-05-02 16:14:21 -04:00
Franco Montenegro
02e4b651af Properly handle thumbnail field in publish/edit upload/collection. 2022-05-02 16:01:42 -04:00
Franco Montenegro
34ea712874 Do not reset description field while uploading thumbnail in playlist edit/publish form; use same upload thumbnail layout as file upload for playlist edit/publish. 2022-04-28 10:49:39 -04:00
zeppi
562e154675 v0.53.3 2022-04-27 18:32:11 -04:00
zeppi
5b4948891e changelog 2022-04-27 18:30:51 -04:00
jessopb
5ed13de5d6 Revert "more lbrytv removal"
This reverts commit 6acdfc9623.
2022-04-27 18:28:33 -04:00
jessopb
9e48d22d70 Revert "strip lbrytv"
This reverts commit befcf9fd55.
2022-04-27 18:27:56 -04:00
Franco Montenegro
9f40680b64 Add max length to fields in channel creation. 2022-04-26 16:30:53 -04:00
zeppi
addcd63794 v0.53.2 2022-04-26 15:59:37 -04:00
zeppi
c11235c70e v0.53.2-alpha.1 2022-04-26 15:13:49 -04:00
zeppi
d8bedba43d changelog 2022-04-26 15:02:37 -04:00
zeppi
befcf9fd55 strip lbrytv 2022-04-26 14:31:42 -04:00
jessopb
feb37a17a6 Revert "Update LBRY.tv to just LBRY."
This reverts commit 43c45c1f62.
2022-04-26 10:23:49 -04:00
jessopb
fcff90e78c Revert "some more lbry.tv to lbry changes"
This reverts commit 3980d0f51e.
2022-04-26 10:23:49 -04:00
zeppi
6acdfc9623 more lbrytv removal 2022-04-25 22:05:43 -04:00
zeppi
15ad30d509 fix 0.53.1 style issues 2022-04-25 21:13:07 -04:00
Kenneth C
3980d0f51e some more lbry.tv to lbry changes
Have changed some more lbry.tv instances into lbry.com so now the desktop app should no longer show the old LBRY.tv messages.
2022-04-25 20:50:36 -04:00
Kenneth C
43c45c1f62 Update LBRY.tv to just LBRY.
Noticed that quite a few files still reference the defunct LBRY.tv, so now they should be simply "LBRY" or a similar relevant string.
2022-04-25 20:50:36 -04:00
Franco Montenegro
673ab85bea Fix thumbnails missing while searching in side bar. 2022-04-25 12:38:19 -04:00
zeppi
3932ecf7c0 restore tags link 2022-04-25 10:39:12 -04:00
zeppi
9386cc678f fix collection link 2022-04-25 09:24:49 -04:00
zeppi
fe2af64b90 fix changelog 2022-04-24 10:35:14 -04:00
zeppi
7c2e4eb3e3 wip 2022-04-24 09:57:28 -04:00
zeppi
0c990ba276 fix ci
yarn lock

fix yarn3 warnings

node 16 on deploy

try deploy again

check in yarn/releases

rm lbry-format from lockfile

remove lbry-format yet again

fix flow
2022-04-24 09:57:28 -04:00
zeppi
f6fd061dd6 yarn lock 2022-04-24 09:57:28 -04:00
Daniele Basso
150f280c33 Update README.md 2022-04-24 09:57:28 -04:00
tiziodcaio
3bd97984c0 Update documentation 2022-04-24 09:57:28 -04:00
tiziodcaio
c31e40089c Enabling corepack 2022-04-24 09:57:28 -04:00
tiziodcaio
465d204e69 Update yarn to Berry
Adding changelog
2022-04-24 09:57:28 -04:00
tiziodcaio
6742bc373c Upgrade to yarn v3 2022-04-24 09:57:28 -04:00
jessopb
75d2464443
remove old lbrytv players (#7552) 2022-04-23 17:33:53 -04:00
zeppi
6a26771339 v0.53.1 2022-04-22 12:21:57 -04:00
zeppi
5a2e4ae49a changelog 2022-04-22 12:21:23 -04:00
zeppi
0d44213f78 v0.53.0 2022-04-22 11:45:37 -04:00
zeppi
0bb13331d5 changelog edit 2022-04-22 11:45:13 -04:00
zeppi
6bffc8a993 v0.53.1 2022-04-22 11:40:50 -04:00
zeppi
811bb0cf30 changelog 2022-04-22 11:38:23 -04:00
zeppi
d64da2a8b2 fix viewedBar bug 2022-04-22 11:34:55 -04:00
zeppi
a99f6d4bf2 v0.53.0 2022-04-22 10:25:46 -04:00
zeppi
0101bc0533 v0.53.0-alpha.6 2022-04-22 10:25:29 -04:00
zeppi
83faa7bba0 button tweaks 2022-04-22 10:21:15 -04:00
zeppi
a18aceed1f v0.53.0 2022-04-22 09:46:38 -04:00
zeppi
2eb0219ad1 v0.53.0-alpha.4 2022-04-22 09:46:27 -04:00
zeppi
c58b3c752e changelog 2022-04-22 09:44:57 -04:00
jessopb
ee98531c00
fix repost ribbon (#7549) 2022-04-21 23:02:26 -04:00
Franco Montenegro
ee754f0085
Add persistent watch time setting. (#7547)
* Add persistent watch time setting.

* floating bugfix --jessopb

* Improve how the persist watch time is being stored; add clear cache button.

* Add makeSelectContentWatchedPercentageForUri selector and give feedback when clearing cache.

* tweaks --jessopb

Co-authored-by: zeppi <jessopb@gmail.com>
2022-04-21 23:00:57 -04:00
zeppi
3854bf6fd4 v0.53.0 2022-04-21 11:38:49 -04:00
zeppi
3ca62704d5 v0.53.0-alpha.3 2022-04-21 11:38:03 -04:00
zeppi
34d9b05de0 changelog typo 2022-04-21 11:33:49 -04:00
zeppi
87835451f3 v0.53.0 2022-04-21 11:17:49 -04:00
zeppi
3b7b9e69c7 changelog 2022-04-21 11:12:59 -04:00
zeppi
febbb4f82e changelog 2022-04-21 11:12:26 -04:00
zeppi
e29e982ffb temp following style fix 2022-04-21 11:05:42 -04:00
zeppi
d84746d395 v0.53.0-alpha.1 2022-04-20 17:18:20 -04:00
jessopb
c133d5b53a
style fixes (#7548) 2022-04-20 17:17:47 -04:00
zeppi
845f33b4f2 v0.53.0-alpha.0 2022-04-18 08:55:19 -04:00
zeppi
9b26a65be4 changelog 2022-04-18 08:54:59 -04:00
zeppi
2193c61628 changelog 2022-04-18 08:53:57 -04:00
zeppi
aef3eccfbd changelog 2022-04-17 13:27:02 -04:00
jessopb
3034f4ce6c
bring in styles (#7542)
* bring in ody styles; modify; cleanup

* workflow

* workflow

* v0.52.6-alpha.teststyles.1

* fix hook

* v0.52.6-alpha.teststyles.2

* style fixes

* fix pagination styling

* v0.52.6-alpha.teststyles.3

* wallet icon was bad

* restore deploy script

* fixes

* fix player close button

* modal inputs

* cleanup

* cleanup

* fix staked indicator

* fix profile menu button skel delay

* fix view-all-playlists hover

* fix overlay buttons on collection page

* fix header buttons
2022-04-17 13:04:56 -04:00
Franco Montenegro
50ae6e2869
Add ability to search through publishes. (#7535)
* Add ability to search through publishes.

* Small fix in allClaimListMine type.

* Small fix for search claims in uploads page.

* Add search term in uri when filtering uploads.

* ui/ux touchup

* no appstrings for you

* resolve conflicts

Co-authored-by: jessopb <36554050+jessopb@users.noreply.github.com>
2022-04-14 23:05:59 -04:00
infinite-persistence
21204321c0
Remove abandoned claim from Uploads Page (#7534)
## Issue
In Uploads Page, Claim doesn't go away immediately when deleted, only after a refresh.

## Approach
- Also update `myClaimsPageResults` when abandoning.
- `abandonedUris` is an array because the uris come in various form, so had to check all.

(Cherry-pick of Odysee PR_1276)
2022-04-13 12:22:50 -04:00
infinite-persistence
daab8a28ed
Fix post-editor preview mode (#7532)
## Cause
It broke because lack of awareness that we can't use our components in preview mode. For some reason, we don't have redux access in SimpleMDE's preview mode.

## Change
- Restore the stub for iframes
- Fix preview for images, and apply a similar styling as in Posts.

Co-authored-by: jessopb <36554050+jessopb@users.noreply.github.com>
2022-04-13 12:22:05 -04:00
infinite-persistence
79f05a831f Uploads: show placeholder when loading 2022-04-13 12:08:04 -04:00
dependabot[bot]
243cd0dffd Bump plist from 3.0.4 to 3.0.5
Bumps [plist](https://github.com/TooTallNate/node-plist) from 3.0.4 to 3.0.5.
- [Release notes](https://github.com/TooTallNate/node-plist/releases)
- [Changelog](https://github.com/TooTallNate/plist.js/blob/master/History.md)
- [Commits](https://github.com/TooTallNate/node-plist/commits)

---
updated-dependencies:
- dependency-name: plist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-13 12:04:30 -04:00
dependabot[bot]
8e536e7020 Bump lodash-es from 4.17.15 to 4.17.21
Bumps [lodash-es](https://github.com/lodash/lodash) from 4.17.15 to 4.17.21.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.21)

---
updated-dependencies:
- dependency-name: lodash-es
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-13 12:04:11 -04:00
dependabot[bot]
b0ab2daf39 Bump moment from 2.24.0 to 2.29.2
Bumps [moment](https://github.com/moment/moment) from 2.24.0 to 2.29.2.
- [Release notes](https://github.com/moment/moment/releases)
- [Changelog](https://github.com/moment/moment/blob/develop/CHANGELOG.md)
- [Commits](https://github.com/moment/moment/compare/2.24.0...2.29.2)

---
updated-dependencies:
- dependency-name: moment
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-13 11:46:18 -04:00
Franco Montenegro
3fd3a548ec Add viewed bar in thumbnails. 2022-04-13 11:40:06 -04:00
zeppi
d1c82c9af0 fix send tip default 2022-04-05 16:47:21 -04:00
zeppi
5ef1baff3b v0.52.6 2022-04-04 17:35:27 -04:00
zeppi
da564452f7 fix duplicate plist key 2022-04-04 16:58:46 -04:00
zeppi
c3d836bca7 update mac plist 2022-04-04 16:41:27 -04:00
zeppi
745a3ca889 v0.52.6-alpha.8 2022-04-04 16:39:55 -04:00
zeppi
f5564086c4 v0.52.6 2022-04-04 06:27:05 -04:00
zeppi
0e6b2eae8b changelog 2022-04-04 06:16:08 -04:00
zeppi
23d61df410 v0.52.6-alpha.7 2022-04-03 11:02:05 -04:00
zeppi
c28c5219c1 do not increment welcome version 2022-04-03 11:01:40 -04:00
zeppi
1db943518d v0.52.6-alpha.6 2022-04-03 10:20:11 -04:00
zeppi
9f4ba9041b changelog 2022-04-03 10:19:54 -04:00
zeppi
b47bd7e8b6 cleaner 2022-04-03 10:17:54 -04:00
zeppi
ec600bb8c8 graphic redesign 2022-04-03 10:17:54 -04:00
zeppi
f055198b29 wip 2022-04-02 09:27:07 -04:00
zeppi
e1a66d389f prevent crash when deleting last reply (still needs work) 2022-04-02 09:27:07 -04:00
zeppi
1891107a80 v0.52.6-alpha.5 2022-04-01 10:20:40 -04:00
zeppi
cff40b338c changelog 2022-03-31 14:03:15 -04:00
zeppi
945b4b3992 changelog 2022-03-31 14:02:04 -04:00
zeppi
085929a92e v0.52.6-alpha.4 2022-03-31 12:48:18 -04:00
zeppi
7f83c68d82 bump lbrynet 2022-03-31 12:46:56 -04:00
zeppi
e0c2f03c16 edit input tweak height 2022-03-29 18:06:55 -04:00
zeppi
12b15a2549 edit input field background unset 2022-03-29 18:06:55 -04:00
zeppi
4d75922c8b edittext button style fix 2022-03-29 18:06:55 -04:00
zeppi
0de96358bd restyle collection rename 2022-03-29 18:06:55 -04:00
Franco Montenegro
5a24d6c570 Allow renaming collection in view playlist page. 2022-03-29 18:06:55 -04:00
Franco Montenegro
1369fbb064 Allow users to rename private/unpublished lists. 2022-03-29 18:06:55 -04:00
zeppi
2aeb419969 new token 2022-03-27 23:15:43 -04:00
zeppi
474115b398 v0.52.6-alpha.3 2022-03-27 21:57:24 -04:00
zeppi
d09e294797 v0.52.7-alpha.2 2022-03-27 10:48:41 -04:00
zeppi
1bfb843606 v0.52.7-alpha.1 2022-03-26 19:57:37 -04:00
zeppi
d302fbae09 v0.52.6-alpha.7 2022-03-26 17:45:10 -04:00
zeppi
52e15bbc96 try gh upload-artifact 2.2.4 2022-03-26 17:44:46 -04:00
zeppi
e0dc359241 v0.52.6-alpha.6 2022-03-26 17:20:40 -04:00
zeppi
8275ff1228 try upload-artifacts@v3 2022-03-26 17:20:08 -04:00
zeppi
31d896fb8d v0.52.6-alpha.5 2022-03-26 16:52:49 -04:00
zeppi
0c467ddc8d changelog 2022-03-26 16:52:27 -04:00
zeppi
37dbfcb40a v0.52.6-alpha.4 2022-03-26 15:12:46 -04:00
zeppi
f5b4aba9da v0.52.6-alpha.3 2022-03-26 13:59:02 -04:00
Tobias Speicher
21af8f4f28 refactor: replace deprecated String.prototype.substr()
.substr() is deprecated so we replace it with .slice() which works similarily but isn't deprecated

Signed-off-by: Tobias Speicher <rootcommander@gmail.com>
2022-03-23 12:12:44 -04:00
zeppi
cde52f4d35 fix mac builds 2022-03-22 16:14:15 -04:00
zeppi
7da8be67fe v0.52.6-alpha.2 2022-03-12 22:10:47 -05:00
zeppi
538aa3b42f workflow try continue-on-error 2022-03-12 22:06:57 -05:00
zeppi
fd02bb00b3 increase yarn timeout 2022-03-12 22:06:57 -05:00
zeppi
d5c79495ab v0.52.6-alpha.1 2022-03-12 15:55:47 -05:00
zeppi
702a3f8eb8 changelog 2022-03-11 12:57:29 -05:00
infinite-persistence
35276d5879
Fix comment count not incremented when it was previously 0 (#7510)
It was causing the nudge to add a comment to still appear after one has just entered a comment.

Ticket: Odysee 928
2022-03-11 01:07:41 -05:00
zeppi
a7e70e4d21 bump electron to 15.4.0 2022-03-08 22:09:27 -05:00
zeppi
6560ab6c7b bump electron to 15.3.7 2022-03-08 22:09:27 -05:00
Franco Montenegro
66bdd3fc87 Small refactor to get the last used collection. 2022-03-08 12:30:39 -05:00
Franco Montenegro
c843991378 Update last used collection when a collection is pending or published. 2022-03-08 12:30:39 -05:00
Franco Montenegro
aa008d8a61 Small fix for last used collection when it's a published collection. 2022-03-08 12:30:39 -05:00
Franco Montenegro
ca1d0e71b7 Add last used collection to right click menu. 2022-03-08 12:30:39 -05:00
zeppi
2ddf0a2cbd add medium duration video filter 2022-03-07 18:46:28 -05:00
zeppi
64e48c1eef update flow 2022-03-07 17:07:42 -05:00
zeppi
10381ef06a Revert "Bump shelljs from 0.8.3 to 0.8.5"
This reverts commit 33e5318a29.
2022-03-07 16:43:12 -05:00
infinite-persistence
cef9ade10e Render whole app on language change
## Issues
1. We were manually adding `selectLanguage(state)` as a prop to components used in Settings Page to trigger a render. Flaws:
    - Unclear that the unused prop is just to trigger a render.
    - Manually adding on a case-by-case basis will break over time (missed component).

2. The translation file fetching is delayed (at least in Odysee) and also takes time, so the GUI will end up having mixed strings on F5, depending on when the fetch completed.

## Approach
Make the app wrapper have a key that's tied to the language and translation data, so the entire app renders when language changes. Seems like a common design in most apps.

## Ticket
odysee 921
2022-03-07 09:40:09 -05:00
dependabot[bot]
33e5318a29 Bump shelljs from 0.8.3 to 0.8.5
Bumps [shelljs](https://github.com/shelljs/shelljs) from 0.8.3 to 0.8.5.
- [Release notes](https://github.com/shelljs/shelljs/releases)
- [Changelog](https://github.com/shelljs/shelljs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/shelljs/shelljs/compare/v0.8.3...v0.8.5)

---
updated-dependencies:
- dependency-name: shelljs
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-07 09:37:47 -05:00
dependabot[bot]
8ecdaab6d4 Bump url-parse from 1.5.3 to 1.5.10
Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.5.3 to 1.5.10.
- [Release notes](https://github.com/unshiftio/url-parse/releases)
- [Commits](https://github.com/unshiftio/url-parse/compare/1.5.3...1.5.10)

---
updated-dependencies:
- dependency-name: url-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-07 09:37:35 -05:00
dependabot[bot]
9de2465e21 Bump follow-redirects from 1.13.0 to 1.14.8
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.13.0 to 1.14.8.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.13.0...v1.14.8)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-07 09:36:36 -05:00
zeppi
bef46257bc depbump 2022-03-07 09:30:30 -05:00
Franco Montenegro
d410664d9a Fix small typo in actions/app.js 2022-03-04 10:58:19 -05:00
Franco Montenegro
1f8c9fd24d Display release notes and version for Linux installations using .deb packages. 2022-03-04 10:58:19 -05:00
Franco Montenegro
64a2e908ae Prevent multiple downloads when auto updater isn't supported. Hide upgrade nag when on progress modal is displayed. 2022-03-04 10:58:19 -05:00
Franco Montenegro
40e20dfc1b Small eslint warning fix. 2022-03-01 11:09:50 -05:00
Franco Montenegro
53425d8fe2 Add disk space functions for windows and mac. 2022-03-01 11:09:50 -05:00
zeppi
ca748fd16a fix random mac build failures 2022-02-27 09:07:20 -05:00
zeppi
ea7ed53bfe v0.52.5 2022-02-25 17:57:19 -05:00
zeppi
29c605de86 changelog 2022-02-25 17:56:59 -05:00
zeppi
b56746475b cleanup 2022-02-25 17:52:35 -05:00
zeppi
94f64f8d25 comment on mac disk space 2022-02-25 17:52:35 -05:00
zeppi
04a6c735ac finish view data hosting 2022-02-25 17:52:35 -05:00
zeppi
e9502410de refactor data hosting 2022-02-25 17:52:35 -05:00
zeppi
bf87ac08db reverts electron updates testing 2022-02-23 12:36:55 -05:00
zeppi
72310710af v0.52.5-alpha.2 2022-02-22 14:35:26 -05:00
zeppi
cce7cd43d8 v0.52.5-alpha.1 2022-02-22 13:14:59 -05:00
Franco Montenegro
080eee7d92 Display release changes from release notes instead of using GitHub's API. 2022-02-22 13:14:17 -05:00
Franco Montenegro
3058dbb4a6 Fix typos. 2022-02-22 13:14:17 -05:00
Franco Montenegro
b7d685b4ec Remove trailing spaces from comments. 2022-02-22 13:14:17 -05:00
Franco Montenegro
e1ecf87df7 Better way of handling autoUpdate and listen for update available event to display update nag. 2022-02-22 13:14:17 -05:00
Franco Montenegro
48c5f58a8e Multiple fixes in auto updates.
- Add "disable auto updates" setting (prevents downloading updates in the background but will still notify if there are newer versions)
- Prevent downloading multiple times the same update
- Hide nag when auto update modal is displayed
2022-02-22 13:14:17 -05:00
Franco Montenegro
aa40a44ce3 Only allow to window.open http and https protocols. 2022-02-17 15:09:43 -05:00
Franco Montenegro
8fb67d5980 Fix markdown guide button. 2022-02-17 15:09:43 -05:00
zeppi
67608dfc9c v0.52.4 2022-02-15 22:06:04 -05:00
zeppi
9fc600397c changelog 2022-02-15 22:05:39 -05:00
zeppi
3d85cff0ef Revert "v0.52.4"
This reverts commit 97fbc5e598.
2022-02-15 22:04:40 -05:00
zeppi
97fbc5e598 v0.52.4 2022-02-15 21:56:05 -05:00
zeppi
9375ada72a remove duplicate header search on mobile 2022-02-15 21:48:43 -05:00
zeppi
49c5180820 fix active channel for commenting etc 2022-02-15 20:58:13 -05:00
zeppi
12097dbbba v0.52.3 2022-02-15 14:59:44 -05:00
zeppi
870992a6e4 changelog 2022-02-15 14:59:02 -05:00
zeppi
eb1b412840 hide md preview help and restore mac header 2022-02-15 12:31:16 -05:00
zeppi
7c7c2aa053 fix comment pinning 2022-02-14 23:18:28 -05:00
Rafael
f6961f91fe fix comment editing 2022-02-14 23:18:28 -05:00
zeppi
154b20c6c8 fix embed play edge case 2022-02-14 20:56:47 -05:00
zeppi
43af7ddc5f more 2022-02-14 20:56:47 -05:00
zeppi
a574a5c1de markdown fixes - blockquotes and embedded videos 2022-02-14 20:56:47 -05:00
zeppi
c553ee46f6 v0.52.2 2022-02-11 12:54:47 -05:00
zeppi
71eedd20e1 changelog 2022-02-11 12:54:37 -05:00
zeppi
3a4ff9d35d creator reactions and file like stroke hack 2022-02-11 11:11:03 -05:00
zeppi
0106c1c361 v0.52.2-alpha.5 2022-02-09 17:11:50 -05:00
zeppi
830567b6ec changelog 2022-02-09 17:06:46 -05:00
zeppi
8bd38114dd fix channelsFollowingDiscover 2022-02-09 16:46:47 -05:00
zeppi
92ed44c0f2 refactor improve data hosting 2022-02-09 10:59:17 -05:00
zeppi
bbea2887f2 fix color override on icons 2022-02-07 16:56:35 -05:00
zeppi
ca2c6a6f8f v0.52.2-alpha.4 2022-02-06 22:59:26 -05:00
zeppi
ab87591501 changelog0.52.2-alpha.4 2022-02-06 22:56:20 -05:00
zeppi
24264a15b0 cleanup 2022-02-06 22:43:05 -05:00
zeppi
4f74ecfc47 bring in player refactor with seek ahead/back 2022-02-06 22:43:05 -05:00
zeppi
703d1afc06 add key to claimPreview to fix wrong thumbs 2022-02-06 22:06:48 -05:00
zeppi
629b928c80 disable keycode back in text area 2022-02-06 20:11:59 -05:00
zeppi
9a5f69f0eb prevent errant wallet servers error 2022-02-04 17:04:40 -05:00
zeppi
fe72dcfc2c move wallet server setting help 2022-02-04 15:54:32 -05:00
zeppi
fe1a2eac33 use radio buttons for comment server selection 2022-02-03 22:29:52 -05:00
zeppi
2e048dc225 comment server selector - create file for protocol regex 2022-02-03 10:59:10 -05:00
zeppi
cbc3624664 rename commentserver files 2022-02-03 10:59:10 -05:00
zeppi
6b37fd2eae comment server selector functional now, some cleanup 2022-02-03 10:59:10 -05:00
zeppi
d13397d4dd new custom comment servers ux 2022-02-03 10:59:10 -05:00
zeppi
f370aa8db1 v0.52.2-alpha.3 2022-01-29 20:44:20 -05:00
jessopb
0e134a02d7
Miko fixes 0.52.2 a2 (#7451)
* style, repost, and costinfo fixes

* fix anon collection publishing

* fix markdown images
2022-01-29 18:25:40 -05:00
zeppi
acbf262641 v0.52.2-alpha.2 2022-01-27 16:48:40 -05:00
zeppi
54b59dd946 remove useGetAds 2022-01-27 16:47:58 -05:00
zeppi
eb9bbd4c2c v0.52.2-alpha.1 2022-01-27 16:36:18 -05:00
jessopb
18b4f09bab
update some deps (#7447) 2022-01-27 16:35:30 -05:00
jessopb
98852e7eb4
changelog and hosting copy (#7445) 2022-01-27 14:45:48 -05:00
jessopb
5fdac4898f
Playlistorder (#7442)
* Add horizontal layout (#636)

* Test out a horizontal scroll for upcoming (tile only for now)

* - add support for list layout
- add following label on home page
- clan up css and naming conventions

* Update header type + show only if scheduled streams are showing

* [Playlist] Pull in sorting changes from desktop + Add Drag-n-Drop + Handle unavailable/deleted claims (#641)

* Add ordering Icons

* Refactor doCollectionEdit

- It required claims as parameter, when only uris are used to populate the collection, so that was changed to pass down the uris instead.
- There were unused and mostly unnecessary functions inside, for example the parameter claimIds was never used so it would never enter the claimSearch function which again would be used to generate uris, so it's better to just use uris as parameter

* Add List Reordering changes

* Add toggle button for list editing

* Add toggle on content page collection sidebar

* Enable drag-n-drop to re-order list items

https://www.youtube.com/watch?v=aYZRRyukuIw

* Allow removing all unavailable claims from a List

* Fix <g> on icons

* Fix section buttons positioning

* Move preventDefault and stopPropagation to buttons div instead of each button, preventing clicking even if disabled opening the claim

* Change dragging cursor

* Fix sizing

* Fix dragging component

* Restrict dragging to vertical axis

* Ignore shuffle state for ordering

* Fix console errors

* Mobile fixes

* Fix sidebar spacing

* Fix grey on mobile after click

* cleanup

Co-authored-by: Dan Peterson <dan@dan-peterson.ca>
Co-authored-by: saltrafael <76502841+saltrafael@users.noreply.github.com>
2022-01-27 10:20:21 -05:00
jessopb
618ab5e195
More header refactors (#7441)
* Refactor notificationHeaderButton

* Add Tooltips to header buttons and replace reach/ui

* Decrease --header-height by 20%

* more header cherry-pick

Co-authored-by: Rafael <rafael.saes@odysee.com>
2022-01-26 21:14:36 -05:00
jessopb
f095081c71
Header refactor (#7440)
* Refactor header Component, split into smaller components and remove what is unused

* fix upload menu

* better centering for backout title

* cleanup

Co-authored-by: Rafael <rafael.saes@odysee.com>
2022-01-26 14:54:58 -05:00
jessopb
3f0cc0bf2e
Compact follower counts (#7432)
* Factor out 'toCompactNotation'

* File page: use compact view count (w/ tooltip for full res)

Co-authored-by: infinite-persistence <inf.persistence@gmail.com>
2022-01-25 18:16:28 -05:00
jessopb
caf32736b5
fix floating player disappearing on small screens (#7439) 2022-01-25 15:35:51 -05:00
jessopb
0ab1aab4e7
make data hosting clearer (#7438) 2022-01-24 22:12:27 -05:00
jessopb
0b41fc041a
Bringing in emotes, stickers, and refactors from ody (#7435)
* [New Feature] Comment Emotes (#125)

* Refactor form-field

* Create new Emote Menu

* Add Emotes

* Add Emote Selector and Emote Comment creation ability

* Fix and Split CSS

* [New Feature] Stickers (#131)

* Refactor filePrice

* Refactor Wallet Tip Components

* Add backend sticker support for comments

* Add stickers

* Refactor commentCreate

* Add Sticker Selector and sticker comment creation

* Add stickers display to comments and hyperchats

* Fix wrong checks for total Super Chats

* Stickers/emojis fall out / improvements (#220)

* Fix error logs

* Improve LBC sticker flow/clarity

* Show inline error if custom sticker amount below min

* Sort emojis alphabetically

* Improve loading of Images

* Improve quality and display of emojis and fix CSS

* Display both USD and LBC prices

* Default to LBC tip if creator can't receive USD

* Don't clear text-field after sticker is sent

* Refactor notification component

* Handle notifications

* Don't show profile pic on sticker livestream comments

* Change Sticker icon

* Fix wording and number rounding

* Fix blurring emojis

* Disable non functional emote buttons

* new Stickers! (#248)

* Add new stickers (#347)

* Fix cancel sending sticker (#447)

* Refactor scrollbar CSS for portal components outside of main

Refactor channelMention suggestions into new textareaSuggestions component

Install @mui/material packages

Move channel mentioning to use @mui/Autocomplete combobox without search functionality

Add support for suggesting Emotes while typing ':'

Improve label to display matching term

Add back and improved support for searching while mentioning

Add support for suggesting emojis

Fix non concatenated strings

Add key to groups and options

Fix dispatch props

Fix Popper positioning to be consistent

Fix and Improve searching

Add back support for Winning Uri

Filter default emojis with the same name as emotes

Remove unused topSuggestion component

Fix text color on darkmode

Fix livestream updating state from both websocket and reducer and causing double of the same comments to appear

Fix blur and focus commentCreate events

Fix no name after @ error

* desktop tweaks

Co-authored-by: saltrafael <76502841+saltrafael@users.noreply.github.com>
Co-authored-by: Thomas Zarebczan <tzarebczan@users.noreply.github.com>
Co-authored-by: Rafael <rafael.saes@odysee.com>
2022-01-24 11:07:09 -05:00
jessopb
fe95db15b2
muted channels fix (#7436) 2022-01-23 13:59:39 -05:00
jessopb
c1a54f9707
Control tags (#7433)
* Add prefix to all internal tags

* Strip internal tag prefix from form labels

Co-authored-by: Dan Peterson <dan@dan-peterson.ca>
2022-01-21 20:43:45 -05:00
Rahul Rajan
f06b3bd877
add property overlay to ClaimPreview (#7420)
* add property overlay to ClaimPreview

* add to changelog

* moved changelog change
2022-01-21 14:44:48 -05:00
jessopb
11eed5c9eb
apply https://github.com/OdyseeTeam/odysee-frontend/pull/726 (#7421) 2022-01-21 12:55:17 -05:00
jessopb
18c3bbe6e3
Fix comment disabling on MD (#685) (#7431)
Also restore reactions
This is only an internal tag

Co-authored-by: Thomas Zarebczan <tzarebczan@users.noreply.github.com>
2022-01-21 12:54:43 -05:00
jessopb
fc3ddf01b1
apply ody pr 463 - move MAIN_CLASS constant (#7430) 2022-01-21 12:54:22 -05:00
jessopb
ca0cd2ca75
Use 'selectHasChannel' instead of the full 'selectMyChannelClaims' (#7427)
- selectMyChannelClaims depends on `byId`, which currently is always invalidated per update, so it is not memoized.

- Most of the use-cases just needs the ID or the length of the array anyways, so avoid generating a Claim array (in selectMyChannelClaims) unnecessarily -- the client need to reduce it back down to IDs again :/

- The simpler boolean also removes the need to memoize the selector, which saves a bit of memory.

Co-authored-by: infinite-persistence <inf.persistence@gmail.com>
2022-01-21 12:38:11 -05:00
jessopb
2f1fc941bb
ody pr 628 - more details in thumb errors (#7429) 2022-01-21 12:06:14 -05:00
jessopb
528a0f4d6e
apply ody pr #329 no blacklist check on claimLink (#7428) 2022-01-21 11:21:43 -05:00
infinite-persistence
cff17deb5d
Video: fix grayed out "/" in time indicator (#7425) 2022-01-19 21:27:41 -05:00
dependabot[bot]
bd3126a6b8
Bump follow-redirects from 1.13.0 to 1.14.7 (#7413)
Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.13.0 to 1.14.7.
- [Release notes](https://github.com/follow-redirects/follow-redirects/releases)
- [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.13.0...v1.14.7)

---
updated-dependencies:
- dependency-name: follow-redirects
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-01-19 21:27:04 -05:00
jessopb
4f6befc0ce
Fix doAbandonClaim (#699) (#7422)
* Refactor doAbandonClaim parameters to only claim

- Gets txid and nout by default now, and passing claim allows using more data to verify ownership in case of txid:nout failing again
- Unused on modalRemoveCard
- Edited the comment on doCollectionDelete to explain better

* Fix doAbandonClaim failing to select my claim

Co-authored-by: saltrafael <76502841+saltrafael@users.noreply.github.com>
2022-01-19 20:54:01 -05:00
jessopb
c7021a08ad
Selector refactors (#7424)
* Attempt to speed up sidebar menu for mobile (#283)

* Exclude default homepage data at compile time

The youtuber IDs alone is pretty huge, and is unused in the `CUSTOM_HOMEPAGE=true` configuration.

* Remove Desktop items and other cleanup

- Moved constants out of the component.
- Remove SIMPLE_SITE check.
- Remove Desktop-only items

* Sidebar: limit subscription and tag section

Too slow for huge lists

Limit to 10 initially, and load everything on "Show more"

* Fix makeSelectThumbnailForUri

- Fix memo
- Expose function to extract directly from claim if client already have it.

* Fix and optimize makeSelectIsSubscribed (#273)

- It will not return true if the uri provided is canonical, because the compared subscription uri is in permanent form. This was causing certain elements like the Heart to not appear in claim tiles.
- It is super slow for large subscriptions not just because of the array size + being a hot selector, but also because it is looking up the claim twice (not memo'd) and also calling `parseURI` to determine if it's a channel, which is unnecessary if you already have the claim.

- Optimize the selector to only look up the claim once, and make operations using already-obtained info.

* Simplify makeSelectTitleForUri

No need to memo given no transformation.

* Simplify makeSelectIsUriResolving

- Memo not required. `resolvingUris` is very dynamic and is a short array anyways.
- Changeg from using `indexOf` to `includes`, which is more concise.

* Cost Info selector fixes

- no memo required since they are just directly accessing the store.

Co-authored-by: infinite-persistence <64950861+infinite-persistence@users.noreply.github.com>
Co-authored-by: infinite-persistence <inf.persistence@gmail.com>
2022-01-19 20:46:01 -05:00
jessopb
ea072febae
some fixes from odysee (#7423) 2022-01-19 15:12:54 -05:00
jessopb
064d8738dd
do not filter sharedPreferences from sdk prefs (#7418) 2022-01-17 20:08:40 -05:00
jessopb
03f5358a8c
fix recsys bug (#7412) 2022-01-10 12:50:46 -05:00
zeppi
4cfc201b20 v0.52.1-alpha.5 2022-01-10 08:42:02 -05:00
zeppi
e5c4a5a1d9 remove getTimestamp from collection new reducer 2022-01-10 08:41:34 -05:00
jessopb
ebe253f814
fix following page (#7410) 2022-01-07 22:56:36 -05:00
zeppi
3450d76295 v0.52.1-alpha.4 2022-01-07 15:09:39 -05:00
zeppi
33949e5dbf changelog 2022-01-07 15:09:16 -05:00
jessopb
85899e7e38
reenable thumbs from videos (#7409) 2022-01-07 15:00:12 -05:00
jessopb
22a302f528
mostly remove is_web (#7408) 2022-01-07 14:02:33 -05:00
jessopb
8a7b88f073
fix sync changes (#7407) 2022-01-07 13:03:29 -05:00
jessopb
78fb559fa2
small sync refactor cleaning up reducers (#7403) 2022-01-06 15:30:24 -05:00
jessopb
220021964d
clean sync_client_Settings reducer (#7402) 2022-01-06 15:30:08 -05:00
jessopb
34283f7be6
fix 7188 window.location.pathname (#7401) 2022-01-04 15:40:42 -05:00
zeppi
ca799ae4ec v0.52.1-alpha.3 2022-01-04 13:59:13 -05:00
zeppi
3812989c0a changelog 2022-01-04 13:58:50 -05:00
jessopb
7a100ec022
redux fixes (#7400) 2022-01-04 13:46:55 -05:00
jessopb
ba2caf4eb2
fix upload crash (#7399) 2022-01-04 10:13:15 -05:00
jessopb
cedfd3e32c
fix comments (#7398) 2022-01-04 10:01:01 -05:00
jessopb
e704f87557
fix publish confirmation field (#7397) 2022-01-04 09:36:44 -05:00
jessopb
0eab08e3b4
remove loadingBar, fix parser dependency (#7394) 2022-01-03 10:27:55 -05:00
Melroy van den Berg
a7659c368b
Fix WIndows artifact upload (#7389)
Fix `if statement` of the Windows binary artifact upload of GH Actions
2022-01-03 09:53:26 -05:00
Melroy van den Berg
82b9640387
Remove duplicate after sign hook (#7388)
The [afterSignHook](build/afterSignHook.js) script is already executed via electron-builder.json "afterSign" setting.
2022-01-03 09:53:13 -05:00
Melroy van den Berg
5a69c9f4e9
Unuset environment vars/secrets (#7387)
I think the following 4 environment variables/secrets aren't used at all during the build.
2022-01-02 19:27:19 -05:00
zeppi
65ad23be4f v0.52.1-alpha.2 2022-01-02 15:34:13 -05:00
jessopb
a1f4a7f8ec
Electron 15 (#7384)
* upgrade electron to 15

* linter

* change electron-cookies to modded version for electron >=10

* electron-cookies version fix
2022-01-02 15:33:11 -05:00
jessopb
6d04ff6e32
Revert "upgrade electron to 15 (#7363)" (#7383)
This reverts commit 08c47a57f1.
2021-12-31 14:49:45 -05:00
zeppi
68ecfbb990 update changelog for 0.52.1 2021-12-31 13:29:20 -05:00
zeppi
73600003b0 v0.52.1-alpha.1 2021-12-31 13:27:39 -05:00
jessopb
08c47a57f1
upgrade electron to 15 (#7363)
* upgrade electron to 15

* linter
2021-12-31 12:53:07 -05:00
jessopb
a3398843c2
Optimize selectClaimIsMine (#7370)
Frequently used; top in perf profile

Most of the time, you already have the claim object in the current context. `selectClaimIsMineForUri` will retrieve the claim again, which is wasteful, even if it is memoized (looking up the cache still takes time).

Break apart the logic and added the alternative `selectClaimIsMine` for faster lookup.

Co-authored-by: infinite-persistence <inf.persistence@gmail.com>
2021-12-31 12:52:26 -05:00
zeppi
4fc050fdad v0.52.0 2021-12-31 11:11:52 -05:00
zeppi
d9d7845d96 Revert "v0.52.0"
This reverts commit 851a715025.
2021-12-31 11:11:25 -05:00
jessopb
500ed82988
restore medium spacing on cards (#7382) 2021-12-31 10:56:25 -05:00
zeppi
851a715025 v0.52.0 2021-12-31 08:08:47 -05:00
zeppi
ee520d89e1 v0.52.0-alpha.13 2021-12-30 23:38:22 -05:00
jessopb
fd8cf9b40d
clean up related card title header spacing (#7381) 2021-12-30 22:54:45 -05:00
jessopb
dbc980cab5
clear shuffle when entering edit or publish for collections (#7380) 2021-12-30 22:21:37 -05:00
zeppi
c00b9cd434 v0.52.0-alpha.12 2021-12-30 15:57:55 -05:00
jessopb
b2e2e84cc0
show channel analytics only if authed (#7378) 2021-12-30 15:54:00 -05:00
jessopb
dfdd3fc248
more whitespace on cards (#7377) 2021-12-30 15:51:28 -05:00
jessopb
2549f5b0ad
fix library filter crash (#7376) 2021-12-30 15:35:35 -05:00
Daniela Narvaez
0600646479
update input border color in light theme #5551 (#7373) 2021-12-30 13:48:26 -05:00
jessopb
36890601a8
no empty lists on lists page (#7375) 2021-12-30 13:36:08 -05:00
jessopb
59a188044e
fix private lists editing (#7374) 2021-12-30 13:10:10 -05:00
jessopb
ca15faef02
fix advanced editor in description (#7372) 2021-12-29 15:58:55 -05:00
zeppi
24c516acb0 v0.52.0-alpha.11 2021-12-24 13:10:06 -05:00
jessopb
cb7f2e87cf
use parser (#7369) 2021-12-24 13:08:47 -05:00
jessopb
1b2a6f6651
update windows code signing (#7368)
* update windows code signing

* reenable windows
2021-12-24 12:37:14 -05:00
jessopb
44fd8349a7
fix comment replies (#7367) 2021-12-23 11:31:20 -05:00
jessopb
18619cac20
successfully repair default hubs when custom hub fails (#7366) 2021-12-20 16:20:16 -05:00
zeppi
27e8159db9 v0.52.0-alpha.10 2021-12-16 17:21:44 -05:00
jessopb
6312f1eee9
changelog (#7361) 2021-12-16 17:17:58 -05:00
jessopb
1929089fab
fix advanced text area (#7360) 2021-12-16 15:03:53 -05:00
jessopb
ae682a4a33
restore posts publishing (#7359) 2021-12-16 14:26:52 -05:00
zeppi
000a750f19 v0.52.0-alpha.9 2021-12-15 21:03:34 -05:00
jessopb
5e3844390f
update disk space setting to new api (#7356) 2021-12-15 18:11:22 -05:00
jessopb
4c17b3818e
quick fix for download connecting... (#7354) 2021-12-15 17:56:20 -05:00
jessopb
a0917908bb
add feature to enable experimental upgrades (#7353) 2021-12-15 15:58:47 -05:00
infinite-persistence
05d5e6c05d
Remove old mobile chromecast css hack (#7352)
lbry-desktop--6844

This negates 49abbecb.

Now that we have a dedicated chromecast button, we don't need to hack Chrome's default cast button to appear on top of vjs-mobile-ui.  The hack no longer works anyway, since the CSS exposure has been deprecated around mid 2020 -- it is still available, but its abilities has become less and less.
2021-12-14 21:09:24 -05:00
jessopb
514bc0a273
remove referral code from share (#7350)
* remove referral code from share

* cleanup
2021-12-13 09:02:28 -05:00
jessopb
f474c014f3
update changelog (#7347) 2021-12-12 22:28:23 -05:00
jessopb
0cd1c6d535
improve repost modal styling (#7345) 2021-12-12 18:14:07 -05:00
Bradley Ray
e5072c8681
Modal repost (#7341)
* make repost into a modal

* remove unecessary import

* removed page/repost

* fixed yarn lint errors

* added page/repost back

* added "Repost" title bar

* fixed yarn lint errors
2021-12-12 01:03:00 -05:00
jessopb
6fed123253
update changelog (#7340) 2021-12-10 15:03:14 -05:00
jessopb
13a9f5035d
Fixes the play/pause on drag issue with the floating player. (#221) (#7339)
I tried to use event.preventDefault on the click handler but that didn't
work. So instead I'm using css 'pointer-events: none' to disable click
events on the player while the player is being dragged.

https://github.com/OdyseeTeam/odysee-frontend/issues/206

Co-authored-by: maxime peabody <maximepeabody@gmail.com>
2021-12-10 13:08:15 -05:00
jessopb
474782eeb0
redisable windows build (#7337) 2021-12-09 18:07:28 -05:00
Bohdan Kornatskyi
3458fa5e50
Fix MenuButton behavior from toggle dropdown onMousePress to onClick (#7335)
* changed behavior of a MenuButton. now it shows drop down on click not on mouse down

* fix 'Enter' key handling

* changed behavior of a MenuButton. now it shows drop down on click not on mouse down

* fix 'Enter' key handling
2021-12-09 18:05:37 -05:00
zeppi
6e27100606 v0.52.0-rc.8.3 2021-12-09 16:54:45 -05:00
zeppi
d22442a316 deploy no csc win 2021-12-09 16:52:34 -05:00
zeppi
28383efbdf v0.52.0-rc.8 2021-12-09 11:27:52 -05:00
zeppi
d9afaadb27 update webpack to 4.44.2 and copy-webpack-plugin to 6.4.1 2021-12-08 23:52:05 -05:00
zeppi
ec14cc8828 update deps 2021-12-08 21:18:45 -05:00
zeppi
3519be4633 remove react-plastic 2021-12-08 20:55:55 -05:00
zeppi
408eb9a347 cleanup 2021-12-08 20:41:57 -05:00
zeppi
6ba1fafaa0 remove extra sign up pages 2021-12-08 20:41:57 -05:00
zeppi
5e09de5f94 remove invites and rewards 2021-12-08 20:41:57 -05:00
zeppi
faa21cb681 remove libappindicator dependency no longer needed after electron 8 2021-12-06 00:50:03 -05:00
zeppi
79dbcfdafa fix duplicate flow files for windows 2021-12-04 23:25:10 -05:00
zeppi
19b24d3f58 v0.52.0-rc.7 2021-12-04 22:21:50 -05:00
jessopb
5be27a5e2c Revert "rm lbry.tv, rm lbryfirst, rm DOMAIN, etc"
This reverts commit 041127bbce.
2021-12-04 22:20:39 -05:00
zeppi
797c18fd15 v0.52.0-rc.6 2021-12-04 16:41:24 -05:00
zeppi
5a1cafc7d3 changelog 2021-12-04 16:40:19 -05:00
zeppi
64a31f1aad lbrynet .106 2021-12-04 16:40:19 -05:00
zeppi
d89ef5b928 fix scroll bars 2021-12-03 17:07:09 -05:00
zeppi
041127bbce rm lbry.tv, rm lbryfirst, rm DOMAIN, etc 2021-12-03 16:39:40 -05:00
infinite-persistence
0459148e30 Comment-selectors: fix memoization 2021-12-03 15:22:32 -05:00
infinite-persistence
4d01452447 Fix reaction-selector reference invalidation
When comments are refreshed, each `Comment` gets rendered 4-5 times due to reference invalidation for `othersReacts` (the data didn't actually change).

For selectors without transformation, there is no need to memoize using `createSelector` -- just access it directly. Also, don't do things like `return a[id] || {}` in a reducer, because the reference to the empty object will be different on each call.

Always return directly from the state so that the same reference is returned.

This simple change avoided the wasted resources needed for `createSelector`, and reduced to render to just 2 (initial render, and when reactions are fetched).
2021-12-03 15:22:32 -05:00
zeppi
e7572312a8 comment react selectors 2021-12-03 15:22:32 -05:00
infinite-persistence
29b845c3fc Optimize tags and followedTags
followedTags:
- Moved the filtering to the reducer side, so that we don't do it every time. We can't rely on `createSelector` because the store will be invalidated on each `USER_STATE_POPULATE`, unfortunately.

tags:
- Memoize via re-reselect for the "ForUri" selector.
2021-12-03 15:22:32 -05:00
infinite-persistence
26f89b3ec9 re-reselect proof of concept + fix Date selector as first example
`makeSelectDataForUri` always returns a new reference, so `ClaimPreview` was constantly being rendered. It's pretty expensive since `ClaimPreview`'s rendering checks against a huge blocklist, which is another issue on it's own.

- This commit tests the usage of `re-reselect` as the solution to the multi-instance memoization problem (https://github.com/toomuchdesign/re-reselect/blob/master/examples/1-join-selectors.md)
2021-12-03 15:22:32 -05:00
zeppi
e262e44912 update changelog 2021-12-03 11:46:37 -05:00
zeppi
7c11f91630 only upload linux to s3 2021-12-03 00:49:34 -05:00
zeppi
b778c70837 ORDER typo 2021-12-02 21:19:42 -05:00
zeppi
60f2fd65fd remove copy 2021-12-02 21:13:47 -05:00
zeppi
0c1b681b44 cleaner discover filters display 2021-12-02 20:43:32 -05:00
zeppi
5fed2d01c0 list editing behind toggle button 2021-12-02 20:43:19 -05:00
zeppi
f79446b1e7 update trending to use trending_score 2021-12-02 20:42:51 -05:00
zeppi
cfd876927f list publish page listview type 2021-12-02 15:08:24 -05:00
zeppi
f2da969f72 appstrings 2021-12-02 15:08:24 -05:00
zeppi
fea6ca8635 clean 2021-12-02 15:08:24 -05:00
zeppi
f1de3b193e collection reordering changes 2021-12-02 15:08:24 -05:00
infinite-persistence
02ba41e759 File description (collapsed): show ~3 lines instead of ~1
## Ticket
- Closes https://github.com/lbryio/lbry-desktop/issues/7222
- Also felt it's too squished for the longest time. Previously fixed comments but didn't handle this.
2021-12-01 13:47:14 -05:00
zeppi
d50a74327f improve sync 2021-11-30 15:03:38 -05:00
infinite-persistence
7afe2c58b0 Debounce volume and muted state update.
## Ticket
"Overall React Lag or Extra Re-renders / Volume slider laggy since v0.48"

## The problem
Every redux update results in each mounted component's prop mapping function (the `select` and `perform` stuff) to be recalculated. This is normal per redux, but we do lots of heavy stuff there.

The slider was sending tons of redux update for the Volume and Muted setting.

## Changes
The redux volume/muted setting is just used to restore vjs to the user's setting on the next video, so it doesn't need to be updated immediately/constantly -- vjs keeps it's own video settings.  Debounced that action.
2021-11-29 16:19:38 -05:00
infinite-persistence
30b1562e64 Syntax correction 2021-11-29 16:19:08 -05:00
zeppi
1360e21016 fixes restoring wallet page and removing lbry.tv references 2021-11-28 15:06:11 -05:00
infinite-persistence
c6322ddb24 Floating player position-listener fixes (#289)
- 251 Dragging the floating player is super laggy

Recent changes and/or refactoring combined the effects or added dependancies into the effects, causing them to re-run excessively.

- Restored effects to their original behavior.
- Don't perform the position check when dragging -- only do it when released.
- Do proper debouncing for the 'resize' listener -- the previous method was incorrect as a new function is created on each render.
2021-11-28 12:12:12 -05:00
dependabot[bot]
ba07cdeaa2 Bump video.js from 7.13.3 to 7.14.3
Bumps [video.js](https://github.com/videojs/video.js) from 7.13.3 to 7.14.3.
- [Release notes](https://github.com/videojs/video.js/releases)
- [Changelog](https://github.com/videojs/video.js/blob/main/CHANGELOG.md)
- [Commits](https://github.com/videojs/video.js/compare/v7.13.3...v7.14.3)

---
updated-dependencies:
- dependency-name: video.js
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-27 13:40:46 -05:00
dependabot[bot]
01a0c0ec6f Bump tmpl from 1.0.4 to 1.0.5
Bumps [tmpl](https://github.com/daaku/nodejs-tmpl) from 1.0.4 to 1.0.5.
- [Release notes](https://github.com/daaku/nodejs-tmpl/releases)
- [Commits](https://github.com/daaku/nodejs-tmpl/commits/v1.0.5)

---
updated-dependencies:
- dependency-name: tmpl
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-11-27 13:38:32 -05:00
zeppi
73c4791460 add compatibility for xenial and high sierra to changelog 2021-11-27 11:33:22 -05:00
zeppi
83ce35df1b add compatibility for xenial and high sierra to changelog 2021-11-27 11:32:36 -05:00
zeppi
1f381ffb9b do not set default protocol client on linux on startup 2021-11-27 10:24:41 -05:00
zeppi
ef2c53f678 disable windows ci for now 2021-11-27 10:18:56 -05:00
zeppi
e0b82528d2 upload artifacts 2021-11-27 10:18:56 -05:00
zeppi
eaf3826df8 update electron version to 11, some changes to app update 2021-11-27 10:18:56 -05:00
kodxana
88b9c9decd Update README.md 2021-11-24 10:50:12 -05:00
kodxana
babf6eaff7 Removed instructions for web app 2021-11-24 10:50:12 -05:00
infinite-persistence
34feee3567 abandoningById fixes
- fix: was trying to extract keys from an array.
- `abandoningById` not cleared.
2021-11-16 16:23:17 -05:00
infinite-persistence
cb97e94c4d Fix missing state 2021-11-16 16:23:17 -05:00
zeppi
eb56f1b486 carry collection active tab to playlists page 2021-11-07 14:59:35 -05:00
zeppi
41edd8317c update pagination if page param changes 2021-11-07 14:59:35 -05:00
zeppi
32988bb7ca fix pagination, reset page on filter button 2021-11-07 14:59:35 -05:00
zeppi
5df736dc6b limit collection display
make it clear lists page is truncated

lists display page

cleanup
2021-11-07 14:59:35 -05:00
zeppi
7a2adae09c restore file release time 2021-10-29 12:24:33 -04:00
zeppi
4c8920339d improve channel cover upload ux 2021-10-28 15:17:18 -04:00
zeppi
d15423dc65 do not block submit on thumb or cover error 2021-10-28 15:17:18 -04:00
zeppi
6718528847 copy 2021-10-27 21:46:47 -04:00
zeppi
772bf6fcca disk space setting 2021-10-27 21:46:47 -04:00
zeppi
82895bbce8 improve channel parsing for mentions maybe 2021-10-27 21:46:00 -04:00
zeppi
118b411b51 v0.52.0-rc.5 2021-10-26 11:34:11 -04:00
zeppi
ea14fb1a27 update csc for win 2021-10-26 11:33:20 -04:00
zeppi
b75a0ae85b v0.52.0-rc.4 2021-10-25 17:39:35 -04:00
zeppi
0864b9ad89 v0.52.0-rc.3 2021-10-25 13:15:08 -04:00
zeppi
3556015201 changelog lbrynet 103 bump 2021-10-25 13:14:44 -04:00
zeppi
1a0f0b4b16 v0.52.0-rc.2.1 2021-10-25 12:34:14 -04:00
zeppi
3015018142 fix 2021-10-25 12:33:39 -04:00
zeppi
1295e4a1d2 v0.52.0-rc.2 2021-10-25 11:35:57 -04:00
zeppi
06fe810e92 bump lbrynet 2021-10-25 11:35:31 -04:00
zeppi
efef0da03b v0.52.0-rc.1 2021-10-24 16:42:44 -04:00
zeppi
704f508292 changelog edit 2021-10-24 16:38:37 -04:00
zeppi
5dabeb558b changelog 2021-10-24 16:33:59 -04:00
zeppi
0ba3d78b27 cloud connect 2021-10-22 16:39:45 -04:00
zeppi
1dfd5386a7 package 2021-10-22 11:20:22 -04:00
zeppi
2c8cf1c51c fix lint 2021-10-22 11:20:22 -04:00
zeppi
7d5d7d3c55 remove web and embed 2021-10-22 11:20:22 -04:00
zeppi
b50779f1e5 custom share url 2021-10-21 22:58:33 -04:00
zeppi
3784ec9e21 remove lbryinc web, update sitename, etc 2021-10-21 21:20:59 -04:00
zeppi
e55cae9496 fix top on search page 2021-10-20 17:05:37 -04:00
zeppi
9cc8ccac4e xcode bump again 2021-10-20 17:05:37 -04:00
zeppi
d20e4ad0e7 remove more web folder stuff 2021-10-20 17:05:37 -04:00
zeppi
c66cfb28b5 tip modal no fiat 2021-10-20 17:05:37 -04:00
zeppi
73214a94ec export all 2021-10-20 17:05:37 -04:00
zeppi
b6bb5f05ec credits only on tx page 2021-10-20 17:05:37 -04:00
zeppi
32dd7ef952 bump macos 2021-10-20 17:05:37 -04:00
zeppi
ab9f70930d strip out livestreams 2021-10-20 17:05:37 -04:00
zeppi
fca18c26d3 remove lazy import 2021-10-20 17:05:37 -04:00
zeppi
3a77c7507b cut SIMPLE_SITE 2021-10-20 17:05:37 -04:00
jessopb
9694242989
Update deploy.yml 2021-10-19 01:03:10 -04:00
zeppi
2d008899b6 clean up file page and reactions 2021-10-16 16:42:29 -04:00
zeppi
34c0f8cd04 appstrings 2021-10-16 14:12:59 -04:00
zeppi
390bb6dfa6 fix repost list empty 2021-10-16 14:12:59 -04:00
zeppi
9306971620 fixes around follow discover page, ads .env and dev mode titlebar 2021-10-16 14:12:59 -04:00
zeppi
d405ff5ffb nudge 2021-10-15 23:49:41 -04:00
zeppi
e17e355247 cleanup 2021-10-15 23:49:41 -04:00
zeppi
23d7dc7892 recsys import 2021-10-15 23:49:41 -04:00
zeppi
98df8b265f more flow 2021-10-15 23:49:41 -04:00
zeppi
11a4524c4c lint 2021-10-15 23:49:41 -04:00
zeppi
6c3ed54d87 lint 2021-10-15 23:49:41 -04:00
zeppi
1981f16715 lint 2021-10-15 23:49:41 -04:00
zeppi
aa766dc8ee lint 2021-10-15 23:49:41 -04:00
zeppi
5088caef1e lint 2021-10-15 23:49:41 -04:00
zeppi
ee9f63a161 integrate all the things
bugfix

wip

flow

fix

cleaning

clean
2021-10-15 23:49:41 -04:00
infinite-persistence
2c3c0e8f1d
Fix 'setting.Get' runaway calls
## Issue
60 setting.Get calls spiked since October

It was called 24 times per livestream page load.

## Notes
The effect was intended to be a one-time effect, but the dependency was changed in 2f4dedfb
2021-10-15 14:01:05 +08:00
Bradley Ray
4aaa26794b added semicolon to import statement 2021-10-12 12:49:49 -04:00
Bradley Ray
3d7470b01d change to import instead of redefining const 2021-10-12 12:49:49 -04:00
Bradley Ray
ffb3f1ac35 fixed disable-support for comments 2021-10-12 12:49:49 -04:00
infinite-persistence
8d399d6a2c
Revert accidental commit from ody repo
"[Comments] Batch resolve #7236"

This reverts commit b8cc60697b, reversing
changes made to e3791aefdc.
2021-10-11 09:43:58 +08:00
infinite-persistence
b8cc60697b
[Comments] Batch resolve #7236 2021-10-11 09:42:09 +08:00
saltrafael
620de2e6b7
Batch resolve replies 2021-10-11 08:35:50 +08:00
saltrafael
cafefb2a33
Refactor commentsReplies 2021-10-11 08:35:50 +08:00
saltrafael
f7cb39c496
Batch resolve comment list channels 2021-10-11 08:35:49 +08:00
Thomas Zarebczan
8b2c7a2b21
Force push update 2021-10-10 17:53:36 -04:00
infinite-persistence
9d48d9924d
Comments: expand replies for LC chain before mount instead of after
## Issue
40 Linked comments doesn't scroll for deep replies

## Notes
Don't need an effect for this, plus it was causing the parent to not pick it up for auto-scrolling.
2021-10-09 15:38:38 +08:00
Thomas Zarebczan
fc657d98d2
Sync language 2021-10-08 16:21:50 -04:00
Thomas Zarebczan
0a89a8a2fa
Merge pull request #15 from OdyseeTeam/references
Odysee references revamp, part1
2021-10-08 15:33:45 -04:00
Thomas Zarebczan
eaa32e4df4
Odysee references revamp, part1 2021-10-08 15:22:07 -04:00
Thomas Zarebczan
1bb491857e
lint fix, return url always
fix lint
2021-10-08 11:06:51 -04:00
Thomas Zarebczan
3077c778c3
Test more twitter thumbnail stuff 2021-10-08 10:44:22 -04:00
Thomas Zarebczan
181f17ce6b
Merge pull request #11 from OdyseeTeam/ip/live.timestamp
Disable timestamp parsing in livestream chat
2021-10-08 10:19:46 -04:00
Thomas Zarebczan
31333f5706
Merge pull request #12 from OdyseeTeam/ip/remove.ody.env
Remove unintentional (?) env-file changes
2021-10-08 10:19:12 -04:00
infinite-persistence
aff69888da
Remove unintentional env-file changes
I believe these are unintentional items from d54976e461 because:
- feels irrelevant to the change.
- the env doesn't have correct values anyway (looks like for dev).

That change was causing the env to be copied over to `/web` and appear as an untracked file in git.
2021-10-08 18:21:30 +08:00
infinite-persistence
b455e807bc
Disable timestamp parsing in livestream chat
## Issues
- The current version of the link handler doesn't seem able to control the livestream player's position.
- The "live" position is always 0:00 and everything behind it is a negative timestamp. The current timestamp parser doesn't handle negative values.
2021-10-08 17:59:05 +08:00
Thomas Zarebczan
6b5b2698ce
Merge pull request #7 from OdyseeTeam/thumbnail-stuff
use thumbnails.odysee.com
2021-10-07 17:00:22 -04:00
Thomas Zarebczan
88794761d0
use thumbnails.odysee.com
f
2021-10-07 16:38:59 -04:00
Thomas Zarebczan
1ddfb11870
first PR!
Create actions for Odysee
Delete deploy.yml
Remove Mac
remove publish hook
don't build, just compile
2021-10-07 13:27:47 -04:00
mayeaux
e3791aefdc
Send video bitrate and user bandwidth to Watchman (#7145)
* adding functionality to detect user download speed

* calculating bandwidth speed more intelligently

* saving download speed and updating it every 30s

* all the functionality should be done needs testing

* fix linting

* use a 1mb file for calculating bandwidth

* add optional chaining plugin to babel and get bitrate from texttrack

* allow optional chaining for flow

* ignore flow error

* disable bandwidth checking functionality

* fix flow error
2021-10-06 14:59:33 -04:00
zeppi
b44be39252 move file actions from lbry-redux 2021-10-06 10:22:49 -04:00
jessopb
4bc4a965d9
fix notifications page on unauthed app (#7226) 2021-10-06 10:13:37 -04:00
dependabot[bot]
3a644d7bfc
Bump url-parse from 1.5.1 to 1.5.3 (#7230)
Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.5.1 to 1.5.3.
- [Release notes](https://github.com/unshiftio/url-parse/releases)
- [Commits](https://github.com/unshiftio/url-parse/compare/1.5.1...1.5.3)

---
updated-dependencies:
- dependency-name: url-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-06 10:12:51 -04:00
infinite-persistence
401f7fec17
Revert "Add sitemap to influence Sitelinks"
Seems like I messed up robots.txt?

This reverts commit 95654955b1.
2021-10-06 13:05:36 +08:00
infinite-persistence
95654955b1
Add sitemap to influence Sitelinks
## Issue
Part of `7166 improve search metadata`

## Notes
This is an experiment to influence the Sitelinks in our search results. Our current sitemap only consists of claims, so claims appear in Sitelinks more often. We (Julian) want categories to have higher priority, if possible.

For now, the sitemap will be defined in Google Console instead of robots.txt.

If it works, the file should be uploaded to sitemap.odysee.com, alongside the claim list sitemap.
2021-10-06 11:56:13 +08:00
infinite-persistence
0be3154cbe
Fix playlist strings 2021-10-06 08:39:05 +08:00
Branko Tomic
a04c69f787 Prevent comment content from breaking the layout on mobile 2021-10-05 09:55:14 +08:00
saltrafael
256ed6a106
Remove expand/collapse from channel discussion page 2021-10-05 09:19:56 +08:00
saltrafael
fc2e08c882
Refactor commentsList 2021-10-05 09:19:56 +08:00
Dan Peterson
905a52ea61
adjust css for toast message so that it behaves as expected (text truncation via ellipsis) (#7213) 2021-10-04 09:21:59 -04:00
saltrafael
d6e14b84db
Add copy comment link menu option (#7224) 2021-10-04 09:20:37 -04:00
saltrafael
2ba6023926
Fix spacing / centering live stream + comments section (#7225) 2021-10-04 09:19:52 -04:00
infinite-persistence
5ed9e3e3ae
OG: Technology category missing due to rename
- 'technology' was renamed to 'tech'.
- Leave both entries there for now. Not sure if other homepages still use the old link or not.
2021-10-04 11:21:13 +08:00
infinite-persistence
5757eb7036
OG: fix url for categories
## Issue
Category cards are showing up as "odysee.com" cards in Facebook.

## Change
- `og:url` is supposed to be the canonical URL. It was hardcoded to "odysee.com", so every category was being redirected when the card is being generated.
- Removed `twitter:url`. The documentation says it will fall back to `og:url`, so there is not need to define both if it's the same.
2021-10-04 10:27:49 +08:00
zeppi
f7b942fa42 patch hubs claims_in_channel temporarily 2021-10-02 14:01:22 -04:00
zeppi
d54976e461 patch creator analytics with hub without channel claim count 2021-10-02 13:29:46 -04:00
Thomas Zarebczan
aa0db24d0d
Temp workaround claims in channel count 0 2021-10-02 11:48:45 -04:00
Thomas Zarebczan
1cb0461991
Temp workaround SDK 0 count 2021-10-02 11:44:25 -04:00
infinite-persistence
11c9a53872
Fix 'pinnedUrl' error.
Part of "6989 Fix console spam in dev"

EXTRA_SIDEBAR_LINKS should be a `SideNavLink` object, so trim down the return object from `GetLinksData`.
2021-10-02 15:08:19 +08:00
infinite-persistence
4f07867f8f
Corrected meta for "description" (patch for #7206)
It should be `name`, not `property`. Copy-paste error from the OG version.
2021-10-02 08:42:19 +08:00
infinite-persistence
a5caf57116
List own comments (#7171) + commits
Add back commits to make the diffs clearer, and to allow easier partial reverts.
2021-10-02 08:19:06 +08:00
infinite-persistence
76b16d676e
Use new param to remove sort-pins-first.
comment.List currently always pushes pins to the top to support pagination. This new param removes this behavior.
2021-10-02 08:15:58 +08:00
infinite-persistence
37327185b1
Implement own-comments page 2021-10-02 08:15:57 +08:00
infinite-persistence
3a511842c1
Comment: add option to hide the actions section 2021-10-02 08:15:57 +08:00
infinite-persistence
eb241b3504
Add doCommentListOwn -- command to fetch own comments
Since the redux slice is set up based on content or channel ID (for Channel Discussion page), re-use the channel ID for the case of "own comments". We always clear each ID when fetching page-0, so no worries of conflict when actually browsing the Channel Discussion page.
2021-10-02 08:15:56 +08:00
infinite-persistence
8859f46e5c
doCommentReset: change param from uri to claimId
This reduces one lookup as clients will always have the claimID ready, but might not have the full URI.

It was using URI previously just to match the other APIs.
2021-10-02 08:15:56 +08:00
infinite-persistence
135982e9d0
comment.list: fix typos and renamed variables
- Switch from 'author' to 'creator' to disambiguate between comment author and content author. For comment author, we'll use 'commenter' from now on.
- Corrected 'commenterClaimId' to 'creatorClaimId' (just a typo, no functional change).
2021-10-02 08:15:55 +08:00
infinite-persistence
cb6873843f
Add option to pass in url-search params.
Impetus: allow linked comment ID and setting the discussion tab when clicking on the `ClaimPreview`.
2021-10-02 08:15:55 +08:00
infinite-persistence
8b3820fb28
--- tmp revert ---
This reverts commit de6c6f9bfd.
2021-10-02 08:15:39 +08:00
jessopb
4c72a563da
Update icons.js 2021-10-01 13:41:00 -04:00
saltrafael
56817d4e69
Fix resolving invalid claims (#7210) 2021-10-01 12:00:57 -04:00
infinite-persistence
de6c6f9bfd
List own comments (#7171)
* Add option to pass in url-search params.

Impetus: allow linked comment ID and setting the discussion tab when clicking on the `ClaimPreview`.

* comment.list: fix typos and renamed variables

- Switch from 'author' to 'creator' to disambiguate between comment author and content author. For comment author, we'll use 'commenter' from now on.
- Corrected 'commenterClaimId' to 'creatorClaimId' (just a typo, no functional change).

* doCommentReset: change param from uri to claimId

This reduces one lookup as clients will always have the claimID ready, but might not have the full URI.

It was using URI previously just to match the other APIs.

* Add doCommentListOwn -- command to fetch own comments

Since the redux slice is set up based on content or channel ID (for Channel Discussion page), re-use the channel ID for the case of "own comments". We always clear each ID when fetching page-0, so no worries of conflict when actually browsing the Channel Discussion page.

* Comment: add option to hide the actions section

* Implement own-comments page

* Use new param to remove sort-pins-first.

comment.List currently always pushes pins to the top to support pagination. This new param removes this behavior.
2021-10-01 08:10:27 -04:00
infinite-persistence
d3be8726fc
Add favicon for Google Search results (#7205)
- A side-quest from "7166 improve search metadata".
- The favicon must be from the same domain as the homepage, so the CDN URL couldn't be used, hence the additional upload.
- The favicon also needs to be multiples of 48x48 and above.
    - Wanted to use SVG for the smallest size possible, but seems like Safari does not fully support it. Got Dejan to give me a reasonably-sized PNG.

## Reference
https://developers.google.com/search/docs/advanced/appearance/favicon-in-search#guidelines
2021-10-01 08:09:02 -04:00
infinite-persistence
dac8d711d1
Prevent random description in Google Search results for "odysee" (#7206)
## Issue
7166 improve search metadata

Depending on the search term and timing, Google extracts data from the sidebar or page content to use as the search-result description.

## Change
Defined `description` (on top of the existing `og:description` and `twitter:description`.

While I couldn't find a definitive doc saying that this is the solution, this is present in all other sites (and matches their description in a Google Search results).
2021-10-01 08:08:39 -04:00
infinite-persistence
c71b90cecf
Fix linked-comment scrolling
I think this the best solution so far, at the expense of a slight delay in scrolling if the network call stalls.

- Added "fetching by ID" state so that we don't need to use the ugly N-retries method.
- `scrollIntoView` doesn't work if the element is already in the viewport, and the `scrollBy` adjustment doesn't take into account the y-position restoration that we perform on certain type of pages. Use `window.scrollTo` instead and taking into account current scroll position.
2021-10-01 15:51:05 +08:00
infinite-persistence
2cebdc3113
Fix wrong 'recsysId' sent due to search-key mismatch
## Issue
.../archives/C02FQBM00Q0/p1633044695010600

## Changes
When querying a search key, it has to be an exact match. This was broken by the insertion of `free_only` in the fetch.

Added a function to generate the options, so that all clients stay in sync.
2021-10-01 10:46:26 +08:00
infinite-persistence
dd7c56a324
i18n - ChannelMention and other fixes 2021-10-01 08:12:37 +08:00
saltrafael
2f4dedfba2
Add Channel Mention selection ability (#7151)
* Add Channel Mention selection ability

* Fix mentioned user name being smaller than other text

* Improve logic for locating a mention

* Fix mentioning with enter on livestream

* Fix breaking for invalid URI query

* Handle punctuation after mention

* Fix name display and appeareance

* Use canonical url

* Fix missing search
2021-09-30 17:30:32 -04:00
saltrafael
81abae875f
Fix plant icon (#7195)
* Fix plant icon

* Also change phone icon name
2021-09-30 14:05:39 -04:00
Bradley Ray
819bdea0c6
fix playlist resolving collectionurls (#7178)
* fix playlist resolving collectionurls

* Update CHANGELOG.md

Co-authored-by: Thomas Zarebczan <tzarebczan@users.noreply.github.com>
2021-09-30 09:03:50 -04:00
saltrafael
26f80b0ec5
Add icons (#7194) 2021-09-30 09:01:24 -04:00
infinite-persistence
0984fe8370
Fix page titles for SiteLinks
Part of `7166 improve search metadata`, where page titles are important clues for Google to generate Site-Links.
2021-09-30 14:47:18 +08:00
infinite-persistence
87636fc887
Commentron now includes replies for ByID request
Wasn't aware of that, and that was causing 7146 ("show replies" visible when there are no replies).
2021-09-30 09:22:21 +08:00
jessopb
fdd2d503d9
use homepage LATEST for following discover (#7185) 2021-09-29 15:22:46 -04:00
mayeaux
25b56ada48
Fix issue where channel upload viewcounts were creating a new line (#7154)
* fix issue where viewcounts were creating a new line

* conditionally add large view css

* conditionally apply class based on if view count should be shown

* last couple touchups

* clean up the css

* add scss to flow config

* add scss component to flow config
2021-09-29 15:04:43 -04:00
Branko Tomic
b1d4f119a7
Fix “Your Account” popup on mobile (#5652) (#7172)
* Fix “Your Account” popup on mobile (#5652)

* Update changelog

Co-authored-by: Branko Tomic <branko@spicefactory.co>
2021-09-29 11:20:36 -04:00
infinite-persistence
a8149fe9bb
Memoize 'mutedAndBlockedChannelIds'
It was being recalculated repeatedly.

This memoizes it, although it still re-calculates occasionally despite none of the source arrays changed. I think it is due to the state change in the Preference Sync.

Note: input selectors to `createSelector` needs to be extractions-only (i.e. must not have transformations). I think most of our `makeSelect*` selectors violate this and broke memoization.
2021-09-29 21:55:01 +08:00
infinite-persistence
b796ab3207
Fix missed render when blocklist is fetched
## Issue
7176

## Changes
Pitfalls of pausing render via React.memo:
  - We'll miss the `doClaimSearch()` since that is sparked by an `useEffect`.

Seems like we can't avoid having a redundant copy of the previously-displayed URIs.
2021-09-29 16:33:18 +08:00
saltrafael
ddc29ac853
Fix autoplay next default value (#7173) 2021-09-27 15:10:41 -04:00
Thomas Zarebczan
3e8172af13
force mp3 extension vs mpga 2021-09-27 12:40:06 -04:00
infinite-persistence
78d0ff9793
Adjust comment fade-out height
## Issue
6944 Comment expansion sometimes doesn't reveal extra text (already showing everything)

## Fix
Reconcile some constants between JS and CSS.
2021-09-27 11:01:44 +08:00
infinite-persistence
3c0750a2a0
Fix homepage tiles not filtering blocked channels
## Ticket
7165 homepage queries don't take into account blocked channel ids (mute does)

## Changes
resolveSearchOptions: was not grabbing redux data correctly.
2021-09-25 13:14:08 +08:00
infinite-persistence
085d7ad37a
Livestream category improvements (#7115) - w/ commits
- It's a change with lots of refactoring, so keeping the individual commits will be useful for posterity.
- The commits have been squashed to a minimal set.
- Output is identical to the initial merge.
2021-09-25 12:08:32 +08:00
infinite-persistence
9031d2478b
WildWest: limit livestream tiles + add ability to show more
Most likely this behavior will change in the future, so we'll leave `ClaimListDiscover` untouched and handle the logic at the page level.

This solution uses 2 `ClaimListDiscover` -- if the reduced livestream list is visible, it handles the header; else the normal list handles the header.
2021-09-25 12:05:09 +08:00
infinite-persistence
64effb4679
doFetchActiveLivestreams: add interval and options checking
- Added a default minimum of 5 minutes between fetches. Clients can bypass this through `forceFetch` if needed.
- We'll need to support different 'orderBy', so adding an "options check" when determining if we just made the same fetch.
2021-09-25 12:05:09 +08:00
infinite-persistence
7515ed2704
Re-enable active livestream tiles using the new method 2021-09-25 12:05:09 +08:00
infinite-persistence
14c4be87aa
ClaimListDiscover: add prefixUris, similar to ClaimTilesDiscover
This will be initially used to append livestreams at the top.
2021-09-25 12:05:09 +08:00
infinite-persistence
af7345b3cd
ClaimListDiscover: revert and cleanup
## Revert
- Removed the 'finalUris' stuff that was meant to "pause" visual changes when fetching. I think it'll be cleaner to use React.memo to achieve that.

## Alterations
- Added `renderUri` to make it clear which array that this component will render.
- Re-do the way we fetch view counts now that 'finalUris' is gone. Not the best method, but at least correct for now.
2021-09-25 12:05:08 +08:00
infinite-persistence
78491e71f6
Add 'useFetchViewCount' to handle fetching from lists
This effect also stashes fetched uris, so that we won't re-fetch the same uris during the same instance (e.g. during infinite scroll).
2021-09-25 12:05:08 +08:00
infinite-persistence
7f73b51cb9
ClaimTilesDiscover: fill with placeholder while waiting for claim_search
## Issue
Livestream claims are fetched seperately, so they might already exists. While claim_search is running, the list only consists of livestreams (collapsed).

## Fix
Fill up the space with placeholders to prevent layout shift.
2021-09-25 12:05:08 +08:00
infinite-persistence
11ac636b74
ClaimTilesDiscover: reduce ~17 renders at startup to just 2. 2021-09-25 12:05:07 +08:00
infinite-persistence
0e5f528183
ClaimTilesDiscover: factor out options
## Change
Move the `option` code outside and passed in as a pre-calculated prop.

## Reason
To skip rendering while waiting for `claim_search`, we need to add `React.memo(areEqual)`. However, the flag that determines if we are fetching `claim_search` (fetchingClaimSearchByQuery[]) depends on the derived options as the key.

Instead of calculating `options` twice, we moved it to the props so both sides can use it.

It also makes the component a bit more readable.

The downside is that the prop-passing might not be clear.
2021-09-25 12:05:07 +08:00
infinite-persistence
8065f6fd5f
ClaimTilesDiscover: revert and cleanup
## Simplify
- Simplify to just `uris` instead of having multiple arrays (`uris`, `modifiedUris`, `prevUris`)
- The `prevUris` is for CLS prevention. With this removal, the CLS issue is back, but we'll handle it differently later.
- Temporarily disable the view-count fetching. Code is left there so that I don't forget.

## Fix
- `shouldPerformSearch` was never true when `prefixUris` is present. Corrected the logic.
- Aside: prefix and pin is so similar in function. Hm ....
2021-09-25 12:05:07 +08:00
infinite-persistence
db5db28d71
Tiles can now query active-livestream state from redux instead of getting from parent. 2021-09-25 12:05:06 +08:00
infinite-persistence
37b85b16c3
Fetch and store active-livestream info in redux 2021-09-25 12:05:06 +08:00
infinite-persistence
dfc631cc37
Remove old method of displaying active livestreams
Completely remove it for now to make the commit deltas clearer.
We'll replace it with the new method at the end.
2021-09-25 12:05:06 +08:00
infinite-persistence
e624ed8c51
-- tmp revert --
This reverts commit 3b47edc3b9 to allow putting back in the original commits.
2021-09-25 12:05:05 +08:00
saltrafael
cc76a4a665
Fix video embeds in comments not playing and resize issues (#7163) 2021-09-24 11:53:17 -04:00
infinite-persistence
3b47edc3b9
Livestream category improvements (#7115)
*  Remove old method of displaying active livestreams

Completely remove it for now to make the commit deltas clearer.
We'll replace it with the new method at the end.

* Fetch and store active-livestream info in redux

* Tiles can now query active-livestream state from redux instead of getting from parent.

*  ClaimTilesDiscover: revert and cleanup

## Simplify
- Simplify to just `uris` instead of having multiple arrays (`uris`, `modifiedUris`, `prevUris`)
- The `prevUris` is for CLS prevention. With this removal, the CLS issue is back, but we'll handle it differently later.
- Temporarily disable the view-count fetching. Code is left there so that I don't forget.

## Fix
- `shouldPerformSearch` was never true when `prefixUris` is present. Corrected the logic.
- Aside: prefix and pin is so similar in function. Hm ....

* ClaimTilesDiscover: factor out options

## Change
Move the `option` code outside and passed in as a pre-calculated prop.

## Reason
To skip rendering while waiting for `claim_search`, we need to add `React.memo(areEqual)`. However, the flag that determines if we are fetching `claim_search` (fetchingClaimSearchByQuery[]) depends on the derived options as the key.

Instead of calculating `options` twice, we moved it to the props so both sides can use it.

It also makes the component a bit more readable.

The downside is that the prop-passing might not be clear.

* ClaimTilesDiscover: reduce ~17 renders at startup to just 2.

* ClaimTilesDiscover: fill with placeholder while waiting for claim_search

## Issue
Livestream claims are fetched seperately, so they might already exists. While claim_search is running, the list only consists of livestreams (collapsed).

## Fix
Fill up the space with placeholders to prevent layout shift.

* Add 'useFetchViewCount' to handle fetching from lists

This effect also stashes fetched uris, so that we won't re-fetch the same uris during the same instance (e.g. during infinite scroll).

*  ClaimListDiscover: revert and cleanup

## Revert
- Removed the 'finalUris' stuff that was meant to "pause" visual changes when fetching. I think it'll be cleaner to use React.memo to achieve that.

## Alterations
- Added `renderUri` to make it clear which array that this component will render.
- Re-do the way we fetch view counts now that 'finalUris' is gone. Not the best method, but at least correct for now.

* ClaimListDiscover: add prefixUris, similar to ClaimTilesDiscover

This will be initially used to append livestreams at the top.

*  Re-enable active livestream tiles using the new method

* doFetchActiveLivestreams: add interval check

- Added a default minimum of 5 minutes between fetches. Clients can bypass this through `forceFetch` if needed.

* doFetchActiveLivestreams: add option check

We'll need to support different 'orderBy', so adding an "options check" when determining if we just made the same fetch.

* WildWest: limit livestream tiles + add ability to show more

Most likely this behavior will change in the future, so we'll leave `ClaimListDiscover` untouched and handle the logic at the page level.

This solution uses 2 `ClaimListDiscover` -- if the reduced livestream list is visible, it handles the header; else the normal list handles the header.

* Use better tile-count on larger screens.

Used the same method as how the homepage does it.
2021-09-24 10:26:21 -04:00
infinite-persistence
b78899d62c
i18n 2021-09-24 16:56:52 +08:00
infinite-persistence
f38a15ee0d
Blocklist page: fix perpetual spinner when trying to refresh with no channels
There's nothing to do when you don't have a channel, so hide the button and ensure redux fails gracefully.
2021-09-24 15:04:59 +08:00
infinite-persistence
0e391a3d78
Comment: Swap the order of "Edit" and "Remove"
This order is more common.
2021-09-24 10:00:37 +08:00
infinite-persistence
65d7e478ac
Don't allow assigning yourself as moderator
Also fixed split-string (hard to localize).
2021-09-24 09:57:24 +08:00
infinite-persistence
e23e9e1387
Localize sunset nag
Changed the text a bit so that we can re-use the existing 'Learn more'.
2021-09-23 20:19:23 +08:00
infinite-persistence
6658217865
Restore "Stream Key Button (#7127)" + lint and modifications
- Consolidate functionality into existing component.
- Use proper strings.
2021-09-23 20:13:02 +08:00
infinite-persistence
8bc8c4bcae
Revert "Stream Key Button (#7127)"
I forgot to lint before merging. Reverting for now, will fix in a bit.

This reverts commit 5c8878353f.
2021-09-23 17:57:49 +08:00
GG2015
5c8878353f
Stream Key Button (#7127)
* Added streamkey button.

* Added streamkey button.

* Updated changes

* Removed unused code.

* Removed copyableStreamkeyUnmask component.

* Rewrote StreamKeyMask to enableMask/enableMaskType

* Updated changelog and bumped version to 0.51.3

* Reverted changes

* Updated to correct area.

* Renamed CopyableText to CopyableStreamKey

* See commit notes.

* Fixed Show/Hide button
2021-09-23 14:17:59 +08:00
saltrafael
de6eb99d41
Fix channel name issue (#7153) 2021-09-22 11:28:32 -04:00
jessopb
8a277e767a
revert embedNoEnd and modify preferEmbed end display (#7144) 2021-09-21 12:47:56 -04:00
infinite-persistence
aefa889ee4
Embed: add replay button + msg resizing (#7141)
* Embed: add replay button

Also, changed "Rewatch or Discuss" to "Discuss + external arrow" since there is a dedicated re-watch button.

* Embed: resize "ended message" based on container height
2021-09-21 11:48:05 -04:00
infinite-persistence
63fd867757
Fix moderator data misalignment. (#7139)
## Issue
Closes 7121 Missing mod block option (large number of moderated channels?)

## Notes
It was bad to assume `channelSignatures` would be the same length as the promise result -- any failure in signing would cause a misalignment.

For my case, an accidentally-merged channel couldn't be signed due to a missing private key. I think it's the same for Drew.
2021-09-21 10:40:44 -04:00
infinite-persistence
fcea4005eb
Fix incorrect context for 'New' string 2021-09-21 16:48:20 +08:00
infinite-persistence
31523d769a ClaimPreviewTile: render optimization
The `Date` object and blocklist arrays causes unnecessary render since their references are always different in the shallow-compare.
2021-09-21 09:15:41 +08:00
jessopb
432c40fb0c
embed preferred no end (#7138) 2021-09-20 18:37:27 -04:00
jessopb
7303abcda6
fix (#7137) 2021-09-20 17:06:55 -04:00
Alexander Schrier
eca9b2fcbf
Fix theater mode layout on small and medium screens (#7108)
* Fix theater mode layout on small and medium screens

* Make comments expandable on medium screens
2021-09-20 10:20:28 -04:00
infinite-persistence
0fc9cb9e73
Disable adv filters in "Find channels to follow" (#7130)
## Issue
7118 advanced filtering adjustments for channel related context
2021-09-20 10:19:34 -04:00
infinite-persistence
a199432b5c
Fix view-count showing up in non-Channel pages
## Issue
If you navigated to a Channel Page and returned to the homepage (or any page with ClaimPreview), the view-count is shown because we have that data.

## Fix
Instead of passing props around through the long "list" component chain (`ChannelContent -> ClaimListDiscover -> ClaimList -> ClaimPreview`) to indicate whether we should display it , just check the pathname at the lowest component level;  I believe eventually we would display it everywhere anyways, so this we'll be the easiest to clean up.
2021-09-20 09:28:58 +08:00
jessopb
6ca058c3a1
support embed preference (#7114)
* support embed preference

* title color
2021-09-18 10:23:30 -04:00
saltrafael
1c59913e7a
Recommended changes (#7089)
* Fix floating

* Change makeSelectRecommendedContentForUri behavior
2021-09-16 16:00:44 -04:00
infinite-persistence
f251ad999e
Handle view_count formatting on old browsers
## Issue
7102 Failed to initialize numberformat on some browsers

## Changes
Just revert to the non-SI notation (but still locale aware) for browsers that does not support the `compactDisplay` option.

I thought of adding an English-only abbreviation for that corner-case, but I think it's not worth the effort maintaining. There are worse issues happening on older browsers, such as icons not aligning properly in buttons and functions that require polyfilling.
2021-09-16 17:11:09 +08:00
Alexander Schrier
5d06d4e254
Fix dropdown caret spacing (#7096)
* Move dropdown caret away from edge

* Set dropdown padding-right to spacing-xl
2021-09-15 15:18:17 -04:00
infinite-persistence
d1c74ec997
Revert "Use SI notation for view_count ... bbcdcfe4"
It is breaking in old Safari 10. Revert for until; will get to a cleaner solution later.
2021-09-15 23:30:43 +08:00
jessopb
91fbd615e2
fix embed end logo (#7106) 2021-09-15 11:28:45 -04:00
jessopb
21ba7840ca
refactor collection thumbs and fix list channel updates (#7095)
* refactor collection thumbs

* collection update handle channels

* collection update handle channels more better

* bugfix
2021-09-15 10:11:01 -04:00
infinite-persistence
65902f6d58
Commentron err replacement: fix readability + added link support.
- Hopefully this is easier to understand, and easier to add/remove entries.
- The link support will be needed by the upcoming Appeal process.
2021-09-15 16:02:02 +08:00
infinite-persistence
3e6743f3f4
Fix missing localization macro during refactoring
## Issues
https://discord.com/channels/362322208485277697/646840786662719488/887345736033918997

## Changes
I meant to only add the macro at the client call during the refactoring, but forgot.

Having said that, I now think it's cleaner to put the macro where it is defined, and it's easier for Translators to find, so I added the macro in the definition instead of at the client call.
2021-09-15 10:12:24 +08:00
infinite-persistence
9d1ff4e8ae
Wunderbar: fix popup dismissed despite a child is in focus
## Issue
1. Type something in the wunderbar.
2. While the spinner is running, press Tab to focus on "View results" button.
3. If the spinner is still running, the entire popup gets dismissed (it should not). If the spinner isn't running, the popup stays active.

## Change
It was explicitly dismissed when the <input> loses focus. It shouldn't do that if any child of the popup is in focus.
2021-09-14 15:07:30 +08:00
infinite-persistence
939d26801a
Wunderbar: re-arrange static buttons to the top
## Issue
7075 Move "explore tags" to a stable position

## Changes
Move the buttons in the suggestions popup to the top row so that it's position won't be constantly changing depending on the number of results.
2021-09-14 15:07:30 +08:00
infinite-persistence
2899ce5f9a
Fix changelog entries placed in previous release. 2021-09-14 10:45:23 +08:00
jessopb
20bd9644e9
Revert "fix recommended follows (#7081)" (#7085)
This reverts commit b83fe995c5.
2021-09-13 15:50:28 -04:00
jessopb
1e002ac585
update changelog (#7082) 2021-09-13 12:56:54 -04:00
jessopb
b83fe995c5
fix recommended follows (#7081) 2021-09-13 12:48:17 -04:00
jessopb
c2e414971d
bump to fix collection update (#7079) 2021-09-13 12:18:48 -04:00
saltrafael
69def916a8
Fix list thumbnail upload (#7074)
* Bump redux

* Fix thumbnail upload

* Update changelog
2021-09-13 11:40:31 -04:00
infinite-persistence
d5e8f2d18c
Fix scrollbar in upgrade modal (#7076)
## Issue
5848 Remove scroll-bar in update prompt

## Changes
- Make scrollbars appear only when necessary.
- Style the scrollbar. Similar to other areas, we skip this for Mac (can't recall why we need to skip).
2021-09-13 11:35:26 -04:00
saltrafael
539cf780d7
Fix floating player issues (#7073)
* Fix Floating Player stopping on certain files

* Dont show additional player buttons from markdown and comments

* Fix markdown resizing for the same video playing

* Update changelog
2021-09-13 11:24:35 -04:00
infinite-persistence
30fedf6b45
Channel Page: enable filters; add "sort by" filter (#7069)
* Sort props to clarify "client vs. redux". No functional change.

* ClaimListHeader: remove SIMPLE_SITE gating

* Channel Page: enable filters; add "sort by" filter.

## Issue
7059 Add option to sort oldest first on channel page

## Changes
- Enabled filters for Odysee.
- Added a new "Sort By" filter, which will only appear for "New" ordering. It doesn't make sense for "Trending" or "Top".
2021-09-13 11:23:53 -04:00
Alexander Schrier
67d9f3907f
Hide overflow on search suggestion thumbnails (#7067) 2021-09-13 11:21:46 -04:00
infinite-persistence
40ed8059b7
Fix jumpy ui when changing language
Closes 7070 Spinner at wrong location when changing language
2021-09-13 15:44:29 +08:00
infinite-persistence
c2a2068926
Sort props to clarify "client vs. redux". No functional change. 2021-09-13 15:02:45 +08:00
infinite-persistence
43564c8b45
Settings: use 'smooth' instead of 'instant' scroll.
With 'instant', it is not clear that we are actually scrolling within the existing page (not opening a new page).
2021-09-13 09:59:11 +08:00
infinite-persistence
bbcdcfe4c1
Use SI notation for view_count in tiles (locale aware) 2021-09-12 17:20:32 +08:00
jessopb
579230d135
Test langs (#7062)
* fix languages

* bump

* bump
2021-09-11 13:32:25 -04:00
infinite-persistence
be725639d3
Blocklist: don't show pagination widget when searching.
Also, re-use existing strings instead.
2021-09-11 21:16:42 +08:00
infinite-persistence
af4ff29b23
Fix: Can't unblock if delegator deleted their channel
## Issue
7003 Can't unblock if delegator deleted their channel

## Changes
- Changed the function parameter from 'creatorId' to 'creatorUri'
    - It got short-circuited because we don't resolve deleted channels. But the client already have the full creator URI (containing the needed 'name' and 'id'), so there is no need to actually look at the resolved list -- just pass the uri like all the other functions.
2021-09-11 21:04:21 +08:00
saltrafael
40a82838b6
Fix collection delete breaking 2021-09-11 08:14:32 -03:00
infinite-persistence
d112204a5d
Weekly i18n update 2021-09-11 10:56:22 +08:00
infinite-persistence
2277d89f64
Add missing strings 2021-09-11 10:55:57 +08:00
infinite-persistence
f5fb5c87c4
Fix i18n word used as variables.
This is the same as concatenating strings, which we must avoid. It will be hard for translators to handle as they see strings as individual entries, not programmable strings. Untranslated variable values are fine.

https://www.linkedin.com/pulse/internationalization-localization-tips-concatenation-daniel-neumann
2021-09-11 10:54:03 +08:00
infinite-persistence
058b8f82ab
i18n + Fix autoplay string
- Rephrased the autoplay help text (https://discord.com/channels/362322208485277697/646840786662719488/885903447243780096)
- Weekly i18n update.
2021-09-11 10:54:02 +08:00
infinite-persistence
892ab2a704
Blocklist: paginate + search (#7055)
- Re-commit with full history (unsquashed).
- It'll also be more obvious in the future what a change is for if it's unsquashed. The commits are already pre-squashed to a minimal set of commits.
2021-09-11 09:36:34 +08:00
infinite-persistence
03d44f772d
Add search bar to BlockList
6834

- Only supports channel-name search, per 6834. Channel-title search would probably be too heavy on the client side.
- Fuzzy search is possible, but is too slow on huge lists. Ended up with a simpler `matchSorter.rankings.CONTAINS`, which I think would cover typical cases.
2021-09-11 09:33:28 +08:00
infinite-persistence
868df44d2a
Improve 'moderator-block' list visuals
- Added "Blocked on behalf of" to make things clearer.
- Use smaller ClaimPreview for delegators to save space (there might be lots of delegators)
2021-09-11 09:33:27 +08:00
infinite-persistence
2dd50776f6
Paginate blocklists
6834
2021-09-11 09:33:27 +08:00
infinite-persistence
d4e8acb7e7
Refactored blocklists into BlockList; no functional change
Reason:
- With each list (Personal, Admin, Mod, Muted), there's a bunch of useEffects and variables needed to handle the state. All of them are doing 99% similar things.
2021-09-11 09:33:27 +08:00
infinite-persistence
b6f1b00f7d
Paginate: add option to disable history and url param 2021-09-11 09:33:26 +08:00
infinite-persistence
33c52be56c
Temporary revert "Blocklist: paginate + search (#7055)"
- This reverts commit 345d9e76b5.
- It to allow me to put back the original commits.
2021-09-11 09:33:26 +08:00
saltrafael
e8d8dfa76b
Playlist fall out fixes (#7032)
* Add snack bar notification

* Fix and improve code

* Better handle paid content on playlists

* Fix menu options that show for unauth users
2021-09-10 13:27:21 -04:00
Thomas Zarebczan
f6683d3c49
re-enable views for now 2021-09-10 13:25:53 -04:00
infinite-persistence
345d9e76b5
Blocklist: paginate + search (#7055)
* Paginate: add option to disable history and url param

* Refactored blocklists into `BlockList`; no functional change

Reason:
- With each list (Personal, Admin, Mod, Muted), there's a bunch of useEffects and variables needed to handle the state. All of them are doing 99% similar things.

* Paginate blocklists

6834

* Improve 'moderator-block' list visuals

- Added "Blocked on behalf of" to make things clearer.
- Use smaller ClaimPreview for delegators to save space (there might be lots of delegators)

* Add search bar to BlockList

6834

- Only supports channel-name search, per 6834. Channel-title search would probably be too heavy on the client side.
- Fuzzy search is possible, but is too slow on huge lists. Ended up with a simpler `matchSorter.rankings.CONTAINS`, which I think would cover typical cases.
2021-09-10 11:36:08 -04:00
infinite-persistence
bc0a4bdeea
Fix missing and broken "Follow" button on reposts (#7056)
## Issue
6776 Missing follow button on channel reposts

- Missing:
    - Fix: For reposts, `parseURI` will fail to determine if it's a channel because the URL doesn't have enough info. Determine from the claim object instead.
- Not working in Channel Page:
    - Fix: The repost uri doesn't link back to the source channel, so we'll need to handle it.
2021-09-10 11:01:12 -04:00
infinite-persistence
8afab7dbba
Disable view_count on Channel Page due to layout (wrap) issue. 2021-09-10 16:59:01 +08:00
infinite-persistence
4259d6fc17
Consolidate keycode constants 2021-09-10 09:00:44 +08:00
saltrafael
160d8fe4b8
Make autoplay_next pushPrefs and set default value to autoplay setting (#7051) 2021-09-09 12:53:27 -04:00
mayeaux
737c06f33d
Fiat tip improvements (#7038)
* show error from backend properly

* cleanup code and add documentation

* persist active tab but force people to boost tab if it's on their own upload

* set tip lbc as default when none is saved in state
2021-09-09 12:52:03 -04:00
infinite-persistence
663ae2762f
Don't fetch view_count on empty list.
Also guard against null array.
2021-09-09 22:05:48 +08:00
infinite-persistence
093c427b83
Show content view counts on channel pages
## Issue
3587 Show content view counts on channel pages

## Notes
Limited to just "channel pages" for now as specified in the ticket.

Can be enabled for all claim previews, as long as there's an efficient spot to run the batch fetching. Either make `fetchViewCount` prop default to true, or add the parameter in places that need it.
2021-09-09 18:31:48 +08:00
infinite-persistence
89a0d5e597
Reorganize; no functional change 2021-09-09 17:09:28 +08:00
mayeaux
c278adc1c6
Merge pull request #7048 from lbryio/change-superchat-display-order
change display of donations to chronological order
2021-09-08 23:17:37 +02:00
Anthony
afb352e3bb
change display of donations to chronological order 2021-09-08 22:25:49 +02:00
infinite-persistence
23f273356a
Explain that "Block" leads to modal with more options. (#7039)
## Issue
7035 Make it clearer that delegated mods can block via Block menu
2021-09-08 12:31:45 -04:00
infinite-persistence
4ddf75f836
Improve "moderator search" usability (#7043) 2021-09-08 21:40:39 +08:00
infinite-persistence
de90d2fda6
Convert "moderator search" to use the new widget 2021-09-08 21:27:25 +08:00
infinite-persistence
d370cc37a8
SearchChannelField
- Factor out for re-use in upcoming Shared Blocklist
- Improvements:
    - Uses floating popup to show the suggestion/result rather than inline.
    - Users can now press Enter to select the suggestion, instead of having to use the mouse.
    - Users now don't need to enter '@' for channel names. They will still need to enter the full channel name, and disambiguate with claim_id if necessary.
    - Fix jumpiness in position as the user types.
2021-09-08 21:23:50 +08:00
infinite-persistence
2a3fa58e11
Swap "Moderator" and "Muted words" location.
Quick fix for the lack of scroll lines for the upcoming "moderator search popup". The proper fix would be to move the popup above the input when we are at the extreme bottom.
2021-09-08 21:22:08 +08:00
infinite-persistence
124aa90525
Fix Duration widget error-message logic
- It didn't remove the error msg when the input is cleared.
- It didn't update to the latest error msg if one already existed.
2021-09-07 16:12:22 +08:00
infinite-persistence
6a5ea5d3c6
Vertically center 'icon--help' (redo)
A better fix with extra specificity, since the main issue was with form-fields only. The previous fix was too wide and broke other areas with column flex.
2021-09-07 16:12:21 +08:00
infinite-persistence
a6ece46be4
Vertically center 'icon--help'
Reasons:
- Better symmetry.
- When used on a form-field label, the off-centeredness causes an extra offset at the top. Since the icon goes away when there is an input error, the form-field shifts a bit. (An alternative is to use a smaller icon, but I think size 16 is the best for legibility).
2021-09-07 14:43:26 +08:00
infinite-persistence
a227e6a979
i18n + vjs i18n fixes
- Reverted #7004 as it ended up preventing the rest of the components from being localized when there is an error. Replaced that with a `setLabel` that simply checks if the component exists before setting the label.

- Fix "Autoplay Next On" not localized on initial load -- it was only localized when the setting changes. It is unfortunate that we need to also set the label in an additional `useEffect` instead of just using vjs events, but so be it.
2021-09-07 10:34:28 +08:00
saltrafael
aceb8b89ce
Fix autoplay not saving (#7028)
* Fix autoplay not saving

* Bump redux
2021-09-06 13:33:53 -04:00
saltrafael
f246992615
Fix auto downloads (#7021) 2021-09-06 10:06:07 -04:00
infinite-persistence
95278f1da1
#7015 Allow moderators to perform Timeout as well. 2021-09-03 23:53:49 +08:00
infinite-persistence
f8e9047359
Allow moderators to perform Timeout as well. 2021-09-03 23:50:34 +08:00
infinite-persistence
04f3dfbb9f
Corrected logic that was bypassing the muted list. 2021-09-03 23:50:06 +08:00
jessopb
91ef5456de
Fix stale recsys and fix watchman uncaught promise when videoPlayer is not initialized (#7014)
* do not set stale recsys id

* no watchman send if videoplay not initialized
2021-09-03 11:29:23 -04:00
infinite-persistence
03d56d1445
#6872 Comment Moderation - time based bans 2021-09-03 22:42:26 +08:00
infinite-persistence
bf8ab2e9ce
Run the extra app-side comment filter only if the claim is not ours.
## Preamble
- The app-side uses a cached blocklist, so when a Timeout expires, it doesn't know that the ban has been lifted.
- Meanwhile, we are doing extra comment filtering using this blocklist (so that we don't see comments that we have blocked, regardless of whose claim we are viewing).

## Issue
In a livestream, if a new message from an ex-offender comes in after their ban has been lifted, we do get the websocket message but it's being filtered out locally as mentioned above. So, the msg ended up being visible for everyone except the owner.

## Fix (band aid)
- Don't run the extra filter if the claim we are viewing is ours -- commentron would have filtered it for us anyways, and is the right logic to use even before this Timeout feature is introduced.
    - For the case of Timeout, this only serves as a band-aid until Commentron Issue 80 is available for us to detect the ban has been lifted. This is because it doesn't handle the case where I am a viewer and I decided to timeout someone for a few minutes. Because I am not the owner of the claim, the offender will continue to be blocked due to the same issue mentioned above.
2021-09-03 22:36:58 +08:00
infinite-persistence
804edd3308
Restrict "Timeout" feature to content owners
The main reason to do this is because we are doing extra comment filtering using our blocklist (so that we don't see people we blocked regardless on who's content we are at), but we are also using a cached blocklist so we don't know when a Timeout will be lifted to allow new livestream messages. We will need Commentron Issue-80 to truly fix this.

For the case of when we are the owner of the content, we don't run the extra filtering (since it is equivalent to Commentron's filtering), hence the issue doesn't exist. Any new livestream messages received through websocket won't be locally filtered.
2021-09-03 22:36:55 +08:00
infinite-persistence
0c1554e453
Blocklist Page: show the timeout ban duration
- 'humanize-duration' is used because 'moment''s humanizer sucks.
2021-09-03 07:17:57 +08:00
infinite-persistence
663376e970
Block timeout was changed from "hours" to "seconds" in Commentron 2021-09-03 07:17:57 +08:00
infinite-persistence
a05ccdd44f
Comment Moderation - time based bans
## Issue
6712 Comment Moderation - time based bans

## Approach
- Consolidated the 3 types of blocking buttons in the comment content menu (i.e. Block, Moderator Block, Admin Block) into 1 regular Block button.
- Show a modal when Block is clicked.
    - Let user choose the blocklist.
    - Let user choose the timeout duration (this PR's impetus).
2021-09-03 07:17:56 +08:00
jessopb
049fb2878e
recsys v0.2 (#6977)
* recsys wip

better logging

fix floating player popout playing uri bug with recsys

lint

add empty entries to create

use beacon; fire on visibilitychange

cleanup, not record recs if not seen

ifweb recsys beacon

recsys handle embeds, cleanup

use history.listen to trigger events

fix recsys embed bug

bugfix

more default data

cleaner

cleaner

* remove tentative

* disable recsys debug logging
2021-09-02 18:39:40 -04:00
saltrafael
64cbd4ae8d
Expanded Playback and List controls (#6921)
* Dont show countdown on Lists

* Add Repeat icon

* Add Shuffle icon

* Add Replay Icon

* Add Replay Option to autoplayCountdown

* Add Loop Control for Lists

* Add Shuffle control for Lists

* Improve View List Link and Fetch action

* Add Play Button to List page

* Add Shuffle Play Option on List Page and Menus

* Fix Modal Remove Collection I18n

* CSS: Fix Large list titles

* Fix List playback on Floating Player

* Add Theater Mode to its own class and fix bar text display

* Add Play Next VJS component

* Add Play Next Button

* Add Play Previous VJS Component

* Add Play Previous Button

* Add Autoplay Next Button

* Add separate control for autoplay next in list

* Bump redux

* Update CHANGELOG.md
2021-09-02 16:05:32 -04:00
infinite-persistence
061e4ddd55
vjs: hide errors when updating i18n (#7004)
## Issue
6989 console errors and warnings are getting out of hand!

## Notes
This method was previously criticized in 5643. But given that no better solution has been submitted after a long while, nor is there a new solution for doing i18n, I'm reviving it again. It'll be no worse from the status quo.

Despite try-catch being overkill, I think the code-clarity outweighs the performance issues (if any, in the first place). Also, we are only suppressing the error in a very specialized function which even if it fails, will simply be a no-op and the GUI falling back to English.
2021-09-02 12:38:58 -04:00
infinite-persistence
a0f164c945
Add streamer badge
https://lbryians.slack.com/archives/C01LTTCEURW/p1629489255028900
2021-09-02 20:51:46 +08:00
infinite-persistence
72cceac943
Fix Object.fromEntries crash on some browsers (#6998)
Requires lbry-redux PR 428

## Issue
#6985 fromentries app crash - fix or add polyfill
2021-09-01 13:44:49 -04:00
dependabot[bot]
2cd06fcd00
Bump tar from 4.4.15 to 4.4.19 in /web (#6996)
Bumps [tar](https://github.com/npm/node-tar) from 4.4.15 to 4.4.19.
- [Release notes](https://github.com/npm/node-tar/releases)
- [Changelog](https://github.com/npm/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-tar/compare/v4.4.15...v4.4.19)

---
updated-dependencies:
- dependency-name: tar
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-01 12:17:03 -04:00
saltrafael
96582afdd8
Fix notifications fetching issues (#7002) 2021-09-01 12:03:48 -04:00
infinite-persistence
be9dca362d
Fix linked-comment auto scroll
## Ticket
6946: Linked-comment scroll position is inconsistent

## Issues
- If it is a deeply-nested reply, the positioning is incorrect.
- If there are pinned comments, the positioning is way off.
- If there is a delay in mounting, the positioning doesn't happen.
- When clicking on the comment's date to highlight it, the comment goes missing and the scroll position is weird.

## Changes
- Take into account that replies can be linked-comments.
- Perform a "one-time" search for the linked-comment after the initial fetch, if necessary. The expensive DOM search is only be executed minimally.
2021-09-01 16:02:54 +08:00
infinite-persistence
a9672a4b5c
Fix extra renders when hovering over comments
Remove defunct "show comment menu on hover" implementation.

It was re-rendering on every mouse movement, plus the css classname no longer exists, and also it wasn't working right in the first place (reverted few Desktop revision back, and all it did was highlighting the menu rather than controlling the visibility).

If we want the "show comment menu on hover" behavior again in the future, the CPU usage problem can probably be addressed by debouncing/throttling state-change.
2021-09-01 14:41:42 +08:00
ddifiore
ce7be7229b Update view.jsx 2021-08-31 15:52:29 -04:00
ddifiore
7f4c22f130 Updating the escape button behavior 2021-08-31 15:52:29 -04:00
ddifiore
88f32b2ec7 Update view.jsx 2021-08-31 15:52:29 -04:00
ddifiore
f3fb413a03 Update view.jsx
Trying to action this issue: Pressing escape in wunderbar should do something useful #2116, I also added ctrl-K as a keyboard shortcut to bring the wunderbar into focus.
2021-08-31 15:52:29 -04:00
zeppi
3b94ecaf80 redirect activate page 2021-08-31 15:46:20 -04:00
saltrafael
5c5d82ee83
Fix hover on gif thumbnails (#6991) 2021-08-31 12:40:59 -04:00
mayeaux
529ad258fe
fix overflow text on meme div (#6987) 2021-08-30 13:58:21 -04:00
Franco Montenegro
1ac16ee087
Ignore/reset player position if video is too short or almost finished playing. (#6976) 2021-08-30 10:41:38 -04:00
infinite-persistence
ebfd648a88
Fix "linked-comment not found" msg not appearing
## Issue
6914 "Linked comment not found" message is gone

## Notes
Commentron updated the message, so the string comparison failed.
2021-08-30 14:12:12 +08:00
infinite-persistence
90c469454a
Fix Category-Metadata path parsing
## Issue
6849 category metadata shows in place of creator channel when using vanity URL
2021-08-30 12:51:01 +08:00
saltrafael
4dfcb4645a Fix Question Mark appearing on address 2021-08-29 11:40:07 -04:00
zeppi
d4bab45809 removeNags 2021-08-29 10:51:59 -04:00
infinite-persistence
79be67831b
Add page titles (affects browser Tab, History, etc.)
## Issue
- While changing the "Back" behavior in the Settings Page PR, it was a pain to troubleshoot when the entire history list is listed as "odysee.com".
- If you have multiple tabs open, it's hard to know which is which for non-claim and non-channel pages.

## Approach
Initially, I thought of overriding the document's title through the `<Page>` component, since the titles are usually defined there. However, given that the router is already doing the overriding, I think it's best to do the same thing all in one place.

Downside: it might get missed when a new page is added.

## Unknown
- Not sure if are rules for titles. There seems to be a mix of sites -- some have specific titles per page, most just use the site title for each page.
- I think the `return` statement in the `useEffect` is unnecessary, since it'll just be setting to the same value now during the cleanup stage. (??)
2021-08-28 21:25:20 +08:00
infinite-persistence
bba0630890
#6935 Direct reacting from notifications 2021-08-28 20:50:35 +08:00
saltrafael
b69b01e36b
Fix CSS 2021-08-28 20:48:50 +08:00
saltrafael
02a39e693b
Handle deleted comments 2021-08-28 20:48:49 +08:00
saltrafael
d7344f5047
Add direct reacting from notifications 2021-08-28 20:48:49 +08:00
saltrafael
6637c7b98b
Fix CSS - separator lines 2021-08-28 20:48:48 +08:00
Thomas Zarebczan
c6ad44d1e5
Consider more live streams (#6974)
and order by release time always

f
2021-08-27 10:57:54 -04:00
infinite-persistence
bcbfc54188
i18n - stripe 2021-08-27 13:14:15 +08:00
infinite-persistence
86e3e8593a
Lint/prettier to reduce delta in next PR.
This is mainly to make the next PR's delta readable. Seems like lint/prettier is being bypassed in the commit hook.
2021-08-27 13:14:14 +08:00
Thomas Zarebczan
4586fbc34b
Revert "Fix stream type for livestreams (#6967)" (#6972)
This reverts commit ee609c654f.
2021-08-26 11:50:57 -04:00
Thomas Zarebczan
ee609c654f
Fix stream type for livestreams (#6967)
* Fix stream type for livestreams

Was picking up collections 

+ other tweaks

* Update search.js
2021-08-26 11:04:24 -04:00
Franco Montenegro
2510217935
Add new post title & url ellipsis overflow. (#6964) 2021-08-26 10:53:32 -04:00
saltrafael
fe2142ba49
Thumbnail fixes (#6969)
* Fix Newly-uploaded thumbnail stays blank

* Fix ChannelThumbnail fallback broken

* Hide earnings for pending
2021-08-26 10:51:53 -04:00
infinite-persistence
64323013cf
Desktop: Fix comment-server set to null unintentionally
## Issue
6956 Desktop: something wrong with Custom Comment Server setting

## Notes
- Should be calling `Comments.setServerUrl` to ensure all private variables are updated.
- Skip the react-setting update if there is no change.
2021-08-26 17:22:53 +08:00
Franco Montenegro
01f73c4861
Clear player position if on playlist. (#6943) 2021-08-25 15:35:00 -04:00
infinite-persistence
1124125578
Fix Facebook meta warnings (#6965) 2021-08-25 15:10:00 -04:00
mayeaux
f2a437aee4
Remove hover/watch later bug for mobile devices (#6950)
* starting work to remove hover effect for preview images on mobile

* identifying code for PR

* update functionality for watch later button on mobile
2021-08-25 11:44:08 -04:00
infinite-persistence
80f06c1a9a
Fix 'bighits' vs 'big_hits'
## Issue
- #6840 Clean up https://odysee.com/$/big_hits
- `/big_hits` is being indexed and unnecessarily affecting the speed score (the "not found" page is surprisingly slow; will handle separately)
- Big-Hits metadata not working

## Notes
'big_hits' is only used in v1 homepages.
2021-08-25 22:45:12 +08:00
Florence Jay Munar
8eb61e1aca
Tagalog Language Fix (#6951)
* Deleted Filipino language and added Tagalog instead

* Update CHANGELOG.md

* Update CHANGELOG.md
2021-08-25 10:19:16 -04:00
infinite-persistence
8b0de28b8a
i18n 2021-08-25 16:51:23 +08:00
infinite-persistence
1f5a8c2091
Combine the 2 PR checklists into 1 2021-08-25 14:56:25 +08:00
infinite-persistence
7476c883a2
Standardize scrollbar thickness for both horizontal and vertical 2021-08-25 14:42:06 +08:00
infinite-persistence
3d48c9852a
Ability to dismiss Pinned Comment in Livestream
This serves as a temp fix to regain the chat space in Mobile, until the Livestream page in Mobile is revamped.
2021-08-25 14:30:10 +08:00
infinite-persistence
a8a437bc54
Removed padding on last comment to gain back some space and be symmetrical too.
There is already some padding given to it via the wrapper.
2021-08-25 14:27:03 +08:00
infinite-persistence
e8c4fb3b7d
Livestream: fix items incorrectly appearing in HyperChat List mode. 2021-08-25 14:27:02 +08:00
infinite-persistence
3afec516d3
Minor CommentMenuList cleanup 2021-08-25 14:26:17 +08:00
infinite-persistence
3f765e2d90
Don't show "Moderator Tools" title if there's nothing underneath 2021-08-25 14:25:40 +08:00
infinite-persistence
277d78868d
Re-arrange prop types to show "element params" first (no functional change)
Make it obvious which props are "element params" and which props are from "redux".
2021-08-25 14:25:39 +08:00
saltrafael
b256a4396b
Thumbnail upload fixes (#6860)
more improvements, fix url, do the same for cover

remember url, error if invalid

unneeded addition

Fix delayed message

Lint

Allow empty values (placeholder and Gerbil)

Fix filepath crash

Fix button
2021-08-24 20:28:23 -04:00
mayeaux
ef5701bb38
Merge pull request #6917 from lbryio/squashed-and-merged
Wallet redesign
2021-08-24 18:46:47 +02:00
Franco Montenegro
a03d4ca20e
Allow to cancel hyperchat if message is empty. (#6942) 2021-08-24 10:57:29 -04:00
infinite-persistence
6d71e53f44
Use solid heart for "subscribed" (#6947)
## Objective
Make it easier to know the subscription state in a glance, without actually having to reading the text, especially for certain languages.
2021-08-24 10:57:01 -04:00
infinite-persistence
749862c333
#6878 Hide comments based on own blocklist 2021-08-24 16:56:51 +08:00
infinite-persistence
74986a8b3a
Comments: simplify blocked replies display
Previously, we decide when to display "Show More" based on the current fetched reply count vs. total replies in Commentron. It was already troublesome as `comment.List` and `comment.replies` give different values (one includes blocked content, while another does not).

Now, we are further filtering the list with Commentron blocklists (personal, admin, moderator), so it is not feasible to run the logic based on reply count.

## Solution
- Keep track of number of remaining pages instead and use that to determine when to display "Show More".
  - While it doesn't solve the "Show N replies" mismatch (YT has this problem too), it prevents the button from lingering.
- In the event that all replies are blocked, just show an empty space (same as YT). I didn't like the previous version that cluttered the space with "comment(s) blocked".
2021-08-24 16:55:36 +08:00
infinite-persistence
e899a5de65
Comments: include Commentron blocklists when filtering.
## Issue
When you block Channel-X, Channel-X's comments will still be visible on someone else's content. This feels odd.

## Change
In addition to the blacklist, filter-list and muted-list, we now include the Commentron blocklists (personal, admin, moderator) when filtering out comments.

## Specifics
`makeSelectCommentsForUri`, `makeSelectTopLevelCommentsForUri` and `makeSelectRepliesForParentId` all perform the same filtering code. Factor that out to `makeSelectFilteredComments` and add the Commentron lists into the mix.

## Downsides
This probably adds to the already-high CPU usage in rendering comments.
2021-08-24 16:55:35 +08:00
infinite-persistence
03cda16847
Patch: Filter out playlists from main channel listing (#6931)
The search wunderbar was lost due to the additional type added
2021-08-24 09:48:00 +08:00
infinite-persistence
d8c2a8f5bf
Filter out playlists from main channel listing (#6931)
so that playlists only appear in the Playlists Tab.

## Ticket
6911 pass claim_type = stream,repost on channel page claim searches
2021-08-23 16:24:39 -04:00
mayeaux
1e933a2e0d
Merge pull request #6939 from lbryio/issue-6058
Fix the link to the web server
2021-08-23 20:40:37 +02:00
mayeaux
0141d699f0
Fix the link to the web server
Addresses: https://github.com/lbryio/lbry-desktop/issues/6058
2021-08-23 20:39:45 +02:00
Anthony
edfb5011d7
last couple touchups 2021-08-23 20:34:54 +02:00
Anthony
a14963892f
finish button links 2021-08-23 19:52:56 +02:00
Anthony
a515088e0b
remove inline styles 2021-08-23 18:30:12 +02:00
infinite-persistence
6f9784a43f "Scroll to recent" button improvements 2021-08-23 08:57:15 -07:00
zeppi
4e3b07ede5 disable aniview 2021-08-23 11:55:30 -04:00
infinite-persistence
d5a330a390
#6821 Settings Page layout changes 2021-08-23 23:46:30 +08:00
infinite-persistence
2e3d9cb609
Update 'SyncToggle' to the new Settings style. 2021-08-23 23:45:32 +08:00
infinite-persistence
3057f70c1c
Move 'update password' into a subpage 2021-08-23 23:45:31 +08:00
infinite-persistence
b43ecd8466
Switch from dual-pane to multirow
per feedback
2021-08-23 23:45:31 +08:00
infinite-persistence
741e8f96cb
"Back": change from "link" behavior to "up" behavior
The previous version treats each navigation as a link, ala Chrome Settings. I liked it because I can enter a settings section directly via URL, and can always back-track each section.

Anyway, changed it to the typical "up" behavior, traversing back the hierarchy of settings pages.
2021-08-23 23:45:30 +08:00
infinite-persistence
049a952765
Change "Manage" from solid button to simple text.
I think this looks cleaner.

I've also tried just having a right solid chevron, but it doesn't look nice with other widgets like checkboxes.
2021-08-23 23:45:29 +08:00
infinite-persistence
6b82aae735
Change "Update password" to a secondary button
Per feedback.
2021-08-23 23:45:28 +08:00
infinite-persistence
9505182576
Use positive "Publish preview" text, per feedback
It was phrased negatively as the feedback back then was the string should match whatever is on the actual dialog (which was "Skip preview and confirmation"). But now it looks odd when we have an additional title string. We think titles should be positively phrased, hence the change.
2021-08-23 23:45:28 +08:00
infinite-persistence
6d5c32ba2e
Help string style cleanup for consistency.
Changed from constants to object. This allows us to skip prettier's auto line-breaking with just one comment (instead of for each constant), plus I like object style to group things together in general.
2021-08-23 23:45:27 +08:00
infinite-persistence
e1223d0d02
Convert setting sub-pages to new style
"Creator Settings", "Blocked and Muted", "Manage notifications", "Stripe"
2021-08-23 23:45:26 +08:00
infinite-persistence
1671deb0b2
Page: the 'settingsPage' option now automatically adds the sidebar. 2021-08-23 23:45:25 +08:00
infinite-persistence
6e152a4137
Re-render on language change
Room for improvement: refactor into `<SettingsCard>` so we don't have to repeat this everywhere.
2021-08-23 23:45:24 +08:00
infinite-persistence
9a17878661
Change style for card title
I think it looks better to not place the title within the card's border when there are multiple cards in a page, like in the case of the new Settings Layout. Otherwise, it's hard to differentiate between title and settings-row.

The proper method is to style Card itself, but this is a quick fix for the Settings Page PR. Will come back to it later.
2021-08-23 23:45:23 +08:00
infinite-persistence
b3b4e54975
Settings Page Side Navigation
All <Setting*> components will have an ID that corresponds to the sidebar link. When clicked, we scroll to the position of the card by searching for the element with the ID. It behaves simiar to # anchor navigation.

I like this model mainly because in Mobile, users don't need to keep opening the drawer to navigate -- they just need to scroll. This allows us to use the same design for Mobile and App.
2021-08-23 23:45:23 +08:00
infinite-persistence
d3fde729f5
Handle noDaemon case for App 2021-08-23 23:45:22 +08:00
infinite-persistence
aba9198844
Handle unauthenticated case, i.e. only allow basic settings.
Placed settings that we allow for unauthenticated users under <SettingUnauthenticated>. While it is redundant, it's easier to handle the grouping, and more readable overall.
2021-08-23 23:45:21 +08:00
infinite-persistence
98f7dcd000
Delete "Settings Advanced" page
All items have been ported over
2021-08-23 23:45:20 +08:00
infinite-persistence
0c0448abef
[System] grab "Share usage and diagnostic data" 2021-08-23 23:45:19 +08:00
infinite-persistence
379a3fb6b0
[System] grab "Download Directory" 2021-08-23 23:45:18 +08:00
infinite-persistence
690f48b7e1
[System] grab "Wallet Security". [Appearance] grab "Show wallet balance in header"
I think it makes more sense to show "Show wallet balance in header" under [Appearance], especially for Web.
2021-08-23 23:45:18 +08:00
infinite-persistence
96ac5a8997
[System] grab "ffmpeg" 2021-08-23 23:45:17 +08:00
infinite-persistence
c55179998b
[System] grab "Experimental settings" 2021-08-23 23:45:16 +08:00
infinite-persistence
2cda3d0a62
[Content] grab "Skip publish preview" 2021-08-23 23:45:15 +08:00
infinite-persistence
f7caeba787
[Content] grab "Purchase and tip confirmations" 2021-08-23 23:45:14 +08:00
infinite-persistence
502ab6f6a9
[System] grab Network & Data Settings 2021-08-23 23:45:13 +08:00
infinite-persistence
52472f3cfb
[Content] grab Notifications, Block/Muted, Creator Settings 2021-08-23 23:45:12 +08:00
infinite-persistence
233477a2fa
[Account] grab stripe-related settings 2021-08-23 23:45:11 +08:00
infinite-persistence
86711057b8
[Content] refactor and grab Max Purchase Price 2021-08-23 23:45:10 +08:00
infinite-persistence
859ccf5ea9
[Content] grab original "Content Settings" 2021-08-23 23:45:10 +08:00
infinite-persistence
c539e4e10d
Move combobox to right | Move "Search only in language" into separate row 2021-08-23 23:45:09 +08:00
infinite-persistence
99c7b28712
[Appearance] grab 24h clock setting 2021-08-23 23:45:08 +08:00
infinite-persistence
4e0434d586
[Appearance] factor out ThemeSelector and use it here 2021-08-23 23:45:07 +08:00
infinite-persistence
70f795ac8b
[Appearance] Move homepages to top + i18n
per feedback
2021-08-23 23:45:06 +08:00
infinite-persistence
17871e78c8
[Appearance] grab language and homepage
Also applied new Settings Page styling.
2021-08-23 23:45:06 +08:00
infinite-persistence
e53181f2f3
[System] grab Clear Cache, Startup and Closing Behavior 2021-08-23 23:45:05 +08:00
infinite-persistence
04b510d88b
[Account] grab SyncToggle and AccountPassword
Also made visual changes for the new Settings Page.

## SyncToggle:
It will no longer be under a dedicated Card, so the "Sync" title is not there to give context for the case of "no verified email".

Changed it such that the checkbox is always visible (it's label is self-explanatory) but disable when email is not set. The "Add Email" button will then appear below, so everything now makes sense in context.
2021-08-23 23:45:04 +08:00
infinite-persistence
3b080012ac
Styles for new Settings Page 2021-08-23 23:45:04 +08:00
infinite-persistence
7da1d8cdf7
Add icon to "Show/Hide Reply" 2021-08-23 15:19:23 +08:00
zeppi
8010b2680a default support to boost 2021-08-22 16:38:14 -04:00
Baltazar Gomez
9fed5643ff fix typo on changelog version 2021-08-22 04:40:39 -07:00
Anthony
d17a333fc6
pull export and refresh buttons to the right 2021-08-20 20:48:28 +02:00
zeppi
1785009fa1 patch column cards 2021-08-20 13:36:16 -04:00
Anthony
68697baaf4
refactor to only change based on the delta 2021-08-20 19:31:38 +02:00
Anthony
9722270403
preparing for refactor 2021-08-20 17:39:33 +02:00
Anthony
82a39e6562
cleanups for PR 2021-08-20 17:06:04 +02:00
zeppi
6e018c7462 v0.51.2 2021-08-20 10:11:23 -04:00
infinite-persistence
ffe22e1c50
i18n 2021-08-20 09:21:26 +08:00
Anthony
bcb1197dfb
fixes for flow and linter 2021-08-19 23:20:01 +02:00
Thomas Zarebczan
f8c568e301
Fix random crash
Fixes https://github.com/lbryio/lbry-desktop/issues/6918
2021-08-19 16:46:34 -04:00
Thomas Zarebczan
51576a827d
Update view.jsx 2021-08-19 16:32:03 -04:00
Anthony
6ae732b77b
pr fixes 2021-08-19 22:23:20 +02:00
Anthony
15b076fd20
fix merge conflicts 2021-08-19 22:18:54 +02:00
Thomas Zarebczan
6fe1923ef5
fix lint 2021-08-19 16:17:15 -04:00
Thomas Zarebczan
b9bd164b10
format follower count 2021-08-19 16:09:31 -04:00
jessopb
5208be07ab
List page fixes (#6905)
* remove help card from lists page

* filtering to playlists page

* refactor

* clear playlists filter on escape

* rename

* no show playlist limit for now
2021-08-19 13:30:02 -04:00
jessopb
9ec8f56051
watchman send dsk for desktop (#6916) 2021-08-19 13:18:21 -04:00
Franco Montenegro
57ac473b00
Reset file input on publishing when accessing since it can be restored to previous value. (#6855) 2021-08-19 12:50:58 -04:00
Franco Montenegro
618b9a4d3e
Add channel subscriptions count below author. (#6867)
* Add channel subscriptions count below author.

* Replace subscribers with followers

* Make sure subCount gets called only once in FileTitleSection.
2021-08-19 11:25:45 -04:00
infinite-persistence
882c9ca022 Fix double linked-comment if it was also pinned
## Issue
If the linked-comment is also a pinned comment, it was displayed twice.

## Fix
When separating out pinned comments, I forgot that `comment.ByID` was another place where we fetch comments.
2021-08-19 02:22:33 -07:00
jessopb
fb03d3a7f9
Fix video dispose (#6904)
* fix video dispose bug

* remove commented
2021-08-18 19:30:07 -04:00
saltrafael
d7329840ef
Improve clickability of notification links (#6711) 2021-08-18 17:40:36 -04:00
Franco Montenegro
bd92110d1f
Automatically claim initial rewards (new_user & email_verified) when … (#6807)
* Automatically claim initial rewards (new_user & email_verified) when accessing creating channel, edit channel and upload

* Do not try to get initial rewards if already claimed.
2021-08-18 12:34:24 -04:00
zeppi
b686d902d5 v0.51.2-rc.4 2021-08-18 11:43:22 -04:00
jessopb
9bbe8b1c63
watchman device type is web for browsers (#6901)
* watchman device type is web for browsers

* no watchman on desktop
2021-08-18 11:42:56 -04:00
jessopb
5d889bef27
update watchman device types (#6900) 2021-08-18 11:05:03 -04:00
jessopb
7f35f87893
aniview only web - v0.1 (#6898) 2021-08-18 11:00:51 -04:00
infinite-persistence
58773ede91
Reload when auth token mismatch is detected (#6897)
## Tickets
- 5504 Signing out of account causes page to break in other tabs
- 6829 merged accounts - force log out / fail sync when x-auth-token and cookie auth token are different

## Steps to replicate
1. Login to odysee with account-A.
2. Open another tab, and split both tabs on the screen.
3. Logout from the 1st tab. Do not activate (focus) the 2nd tab.
4. On the 1st tab, login with account-B.
5. Activate (focus) the 2nd tab. The wallet would have been merged, and we are still logged in as account-A.

## Approach
Reload when the LBRY API token no longer matches the auth token.
2021-08-18 10:49:09 -04:00
infinite-persistence
afe4fee3f3 Fallback image for <FileThumbnail>
## Ticket
5457 Create file thumbnail fallback image for odysee

## Approach
Since `background-image` does not invoke an `onerror` event, create a test Image instance to have the `onerror` capability. This technique is used by majority of plugins. No additional fetch is seen with this technique.
2021-08-17 19:46:54 -07:00
zeppi
503e5e9b76 v0.51.2-rc.3 2021-08-17 18:34:58 -04:00
jessopb
bd973289b6
Chore desktop cleanup (#6896)
* some desktop cleanup

* stripe environment

* wallet tabs

* fix

* old copy

* copy

* getClaimTypeText

* appstrings
2021-08-17 18:34:16 -04:00
infinite-persistence
4688b4bf58
Livestream: stop pinned comments from appearing as latest (#6888)
## Ticket
6879: Previously pinned livestream comments show as latest

## Issue
`comment.List` will always display the pinned comment first, hence the problem when the chat is refreshed.

## Approach
Completely split pinned comments from top-level comments in the Reducer, and the let the GUI (e.g. regular comments, livestream comments) decide how they want to display it.

For the case of livestream, there is no need to repeat the pinned comments in the regular chat area, since there is a dedicated area on top.
2021-08-17 12:09:55 -04:00
jessopb
5f55603fb2
send recsys powered-by (#6875)
* send recsys powered-by

* update lighthouse call in useLighthouse

* rename select selectors

* update channel search too
2021-08-17 10:03:25 -04:00
saltrafael
6e6fd61e90
#6557 CommentCreate: hold off "create channel" redirect until channel_list is fetched. 2021-08-17 10:48:03 +08:00
infinite-persistence
e1fc5fd6e3
Fix livestream autoscroll
## Ticket
6886 Livestream auto-scroll problems

## Issue
- `performedInitialScroll` was problematic as it won't allow auto-scroll even when user scrolled back to the bottom.
- The dependence on `commentElement` seems to assume a certain comment height? Not sure.

## Approach
- Add a scroll listener and stash the last scroll position.
- When a message is received, check if it's at the bottom. If yes, maintain that position after the new comment is added. If not, leave as is.
- When submitting a comment, always reset to the bottom.
2021-08-17 09:44:38 +08:00
zeppi
05d358ac0b v0.51.2-rc.2 2021-08-16 16:47:37 -04:00
infinite-persistence
4a8c08c8bf
Fix scroll position not restored when doing Back on Desktop (#6842)
## Ticket
6743: Desktop: "Back" in Following Page no longer restores scroll position

## Issue
This was a side-effect of "6609 claimListDiscover: don't re-render until query is done". That PR did not handle the case of navigating backwards, which typically would just need to display past results. It ended up always starting with a blank list on mount, so the scroll position could not be restored correctly.

I don't know why it still worked on Web/Chrome -- maybe the latest browser knows how to move to desired scroll position when the height is available.

## Change
If navigating backwards, initialize the final URI list with the previous result. It is almost always correct, and if not, will be corrected in the effects. This saves us one re-render when navigating backwards too.
2021-08-16 16:45:04 -04:00
infinite-persistence
1421a39518
Comment badge to reflect mod and admin status.
## Issue
6467 Add status indicators for messages from creator, delegated moderator, global moderator

## Changes
- Added the required icons.
- Added tooltip.

## Notes
- Left out "creator" since we are already highlighting the creator's name.
- Note that currently the status is only available via websocket deltas. `comment.List` does not provide the data.
- When `comment.List` includes the info, regular comments will automatically include these badges.
2021-08-16 10:08:56 +08:00
infinite-persistence
f81b0f5913
Lint, autoformat -- no functional change.
Doing this now so that an upcoming PR that uses this file won't include these bunch of annoying auto-formatter changes in the diff.
2021-08-16 06:48:37 +08:00
Thomas Zarebczan
a75ce9818c
Fix account verification check + copy on tip page (#6884)
bug fix + copy
2021-08-13 20:40:24 -04:00
Franco Montenegro
3f162eb285 Do not count auto follow channels for UserChannelFollowIntro. 2021-08-13 17:07:01 -04:00
dependabot[bot]
c0fbc412ae Bump minimist from 1.2.0 to 1.2.5 in /web
Bumps [minimist](https://github.com/substack/minimist) from 1.2.0 to 1.2.5.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.0...1.2.5)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-13 16:26:06 -04:00
Anthony
1d23afc531 various small bug fixes 2021-08-13 14:23:31 -04:00
mayeaux
8ff3b753ad
Move transactions from Settings to Wallet (#6871)
* remove unused conditional

get stuff ready for merge

bugfix and cleanup

requested changes

fixing flow errors

fix last flow error and touchups

fiat and lbc tabs coming along

support setting currency as the default tab via query param

add wallet fiat balance

fixing naming

add fiat transactions

using es6 to populate data

should be fine but keeps crashing

transaction listing working

add no transactions thing

about to add a third tab

add third tab

add card last 4 to transaction history

some renaming

show payments successfully

show filler for subscriptions

display if no transactions or subs

working but in the wrong component

approaching something thats working

showing total tipped amount

about to add last couple features

cleanup

More touchups

adding last features

calculate the total amount of unique creators tipped

couple touchups

remove transaction listings from settings

add view transactions buttons

small optimization

add subscriptions section

fix lot of linting errors and make command more userful

* some copy changes

* about to add last couple changes

* update still require verification

* fix button spacing

* hide subscriptions sections and fix links

* cleanups before merging

* more cleanup

* cleanup with last four fix

* changing tab functionality

* bugfix and fix presentation of cards

* fix transactions bug

* change order and remove logs

* remove unused code in account

* more linter fixes

* update account balance presentation

* fix flow errors
2021-08-13 13:59:43 -04:00
saltrafael
d36371fd88 Fix alignment off 2021-08-13 11:30:52 -04:00
infinite-persistence
afe3f913ae Add 'ENABLE_WIP_FEATURES' for live page.
Got tired of hijacking code. Didn't want to alter my account either.
2021-08-12 21:52:58 -07:00
eniamza
7cf9cba3d6
Fix: Paid embed warning was showing lbry.tv (#6819)
* Fix: Paid embed warning was showing lbry.tv

* Added: Change for PR #6819

* Revert: Changelog for conflicts

* Fix: Use site title instead
2021-08-12 23:06:04 -04:00
infinite-persistence
ee5fa45aed
#6824 Creator: Enable "min tips" and "min hyperchat" 2021-08-13 10:40:34 +08:00
infinite-persistence
7817c57689
When setting MinTip, ensure MinSuper=0 | Debounce numerical settings.
(1) The GUI currently behaves such that if MinTip is set, MinSuper will be ineffective. However, Commentron actually checks MinSuper first. Just zero out MinSuper for now to enforce our desired behavior.

(2) Add debouncing to numerical settings. Refresh everything during onBlur to always reflect what's in server (e.g. in case there was an error).
2021-08-12 14:51:43 +08:00
infinite-persistence
926de0959e
Disable MinSuper if MinTip is set. 2021-08-12 14:51:42 +08:00
infinite-persistence
0ebb9420ef
CommentCreate: handle minimum tips and hyperchat
To avoid calling `setting.Get` excessively, we'll fetch the latest settings one last time before sending a tip. We'll also fetch in several areas, like when a comment action fails (most likely creator just enforced a minimum).

This will be easier when websocket send an update.
2021-08-12 14:51:42 +08:00
infinite-persistence
474da87c11
Commentron: min tip API now uses float again 2021-08-12 14:51:41 +08:00
infinite-persistence
e9a2f44899
Commentron: incorporate 'setting.Get' into 'doFetchCreatorSettings'
## General
- `setting.List`: returns full creator settings. Requires signature (i.e. you own the channel)
- `setting.Get`: returns a public subset of the creator settings. No signature required, and it is mainly used by the GUI to determine the constraints of a channel (e.g. comments enabled? min tip requirements? etc.). Does not include private settings like "blocked words list".

`doFetchCreatorSettings` will handle both of these. Clients that uses the stashed results (`settingsByChannelId`) just needs to be aware the result might not contain everything, depending on whether you own the channel or not.

## Misc Related Changes
- Finally fix the reducer for COMMENT_FETCH_SETTINGS_COMPLETED to not purge the data on each call.
- Change `doFetchCreatorSettings` to operate on a single channel instead of multiple. We ended up not using the multple mode anyway, so it was wasteful code trying to batch the promises.
- `commentsDisabledChannelIds` is no longer needed. Previously, this was created just to differentiate between Creator (full) and Channel (subset) settings. It's cleaner to just use one object, so eliminated this.
- Remove unused 'commentingEnabled'.

## Aside
- There are now 2 ways to know if a channel has disabled comments: (1) from `comment.list` and `setting.Get|List`. Both of them updates `settingsByChannelId`, so it'll still be a single place for the GUI to check against.
2021-08-12 14:51:41 +08:00
infinite-persistence
658e9bd1db
Enable min_tip setting 2021-08-12 14:51:40 +08:00
infinite-persistence
ff9ca662f2
Option to change commments-server (desktop)
## Issue
> 5459 Add setting for changing your comment server. Visible on desktop (and possibly defaulting to Odysee URL), hidden on odysee.

## Comments
Not sure how this would actually work properly without the user recompiling the app to handle server differences. For example, even when we use our own server but switch between v1 and v2, some code changes are need to handle the differences. At that point, it seems easier for the user to just change the .env file? Anyway...

## Changes
- Added Desktop-only options to define custom server. [Settings > Advanced Settings > "Comment server" section].
2021-08-12 14:01:22 +08:00
infinite-persistence
4731786a3f
Livestream: implement Pinned Comments 2021-08-12 10:39:21 +08:00
Franco Montenegro
c2b51127ac Reuse BidHelpText for reposts 2021-08-11 18:50:40 -07:00
jessopb
cd4c1efd70
Stripe integration fix (#6850)
* fix frontend bug

* show superchats in order properly

* scroll properly when switching tabs

* calculate fiat tips properly

* sum up lbc amounts

* refactor code a bit remove why isnt this working bit

* bugfix cant tip fiat if no lbc balance

* add toast when someone does a tip for a comment

* add error toast for card page

* show error on account connection page

* automatically truncate to two decimals

* close to working perfectly

* show decimals value better

* increase size of input value

* one bug left but almost working perfectly

* reverse so newest transactions come first

* fixing bug caused by floating point precision

* eslint fixes

* remove unused conditional

* get stuff ready for merge

* bugfix and cleanup

* requested changes

* fixing flow errors

* fix last flow error and touchups

* fix i18n and remove logs

Co-authored-by: Anthony <contact@anthonymayfield.com>
2021-08-11 16:58:55 -04:00
saltrafael
445566c915 Fix delete option broken / missing 2021-08-11 10:07:43 -04:00
Franco Montenegro
cc3600631e Disable cancel button when submitting a comment. 2021-08-11 10:05:37 -04:00
dependabot[bot]
bfdc2319c4 Bump path-parse from 1.0.6 to 1.0.7
Bumps [path-parse](https://github.com/jbgutierrez/path-parse) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/jbgutierrez/path-parse/releases)
- [Commits](https://github.com/jbgutierrez/path-parse/commits/v1.0.7)

---
updated-dependencies:
- dependency-name: path-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-10 22:53:09 -04:00
mayeaux
0cc0e213a5
Anthony watchman integration (#6799)
* raw ingredients done adding functionality

* essentially working just need a cleanup

* almost working with a couple bugs

* almost working but a bug or two

* seems to be working well

* seems to be working well but needs a cleanup

* couple of bug fixes

* basically working now cleaning up

* seems to be working pretty well

* cleanup unnecessary changes

* eslint fixes

* bugfix seek event

* bugfix and andrey fix and better docs

* getting ready to add last piece of functionality

* handle seek events properly

* add dynamic duration to calculate interval properly

* fix lint errors

* last couple changes

* only run watchman with analytics on and on prod

* flow fixes

Co-authored-by: zeppi <jessopb@gmail.com>
2021-08-10 16:42:50 -04:00
zeppi
892a6deeaf reenable prerolls 2021-08-10 16:30:58 -04:00
zeppi
68bc4e3b90 Revert "disable google imasdk"
This reverts commit 283bbb52fa.
2021-08-10 16:30:58 -04:00
dependabot[bot]
76296de079 Bump path-parse from 1.0.6 to 1.0.7 in /web
Bumps [path-parse](https://github.com/jbgutierrez/path-parse) from 1.0.6 to 1.0.7.
- [Release notes](https://github.com/jbgutierrez/path-parse/releases)
- [Commits](https://github.com/jbgutierrez/path-parse/commits/v1.0.7)

---
updated-dependencies:
- dependency-name: path-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-10 13:47:40 -04:00
dependabot[bot]
4937baad20 Bump url-parse from 1.5.1 to 1.5.3 in /web
Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.5.1 to 1.5.3.
- [Release notes](https://github.com/unshiftio/url-parse/releases)
- [Commits](https://github.com/unshiftio/url-parse/compare/1.5.1...1.5.3)

---
updated-dependencies:
- dependency-name: url-parse
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-10 13:47:30 -04:00
Baltazar Gomez
926d76de07 fix lint: operator '=' must be spaced 2021-08-10 13:47:15 -04:00
Baltazar Gomez
121dcfdcab update changelog 2021-08-10 13:47:15 -04:00
Baltazar Gomez
5e239f48c9 fix lint 2021-08-10 13:47:15 -04:00
Baltazar Gomez
017ec11737 fix og error ( truncated unicode character ) - closes #6839 2021-08-10 13:47:15 -04:00
Thomas Zarebczan
7312badc18
use website URL if exists for RSS 2021-08-10 12:56:23 -04:00
zeppi
dcac5ebcc9 fix collection preview links 2021-08-10 10:52:46 -04:00
infinite-persistence
fd66e6b9b1
Refactor Commentron error msg handling
## Issue
6832: Pass through commenting error if it fails current error list

## Changes
- Refactor the error-msg-replacing code to make it easier to add new ones in the future.
- Made the new error message localizable (i.e. extract the variable value, pass to `__()`)
- Fallback to Commentron original message for those unhandled ones (usually fresh messages from Commentron).
2021-08-10 10:26:58 +08:00
infinite-persistence
19091f249a
Fix 'Favorites' string issue
Renamed variables for clarity while at it.

"Item added to %name%" is probably redundant due to toast passing through <i18nMessage>, causing a double translation.

Anyway, added all the resolved string for now to avoid them popping up in app-string during development.
2021-08-10 00:48:37 +08:00
infinite-persistence
9d663b3789
i18n 2021-08-09 11:47:32 +08:00
infinite-persistence
cf905d25d5
Add keyword hint | Collapse "PR Checklist" and "PR Type"
## Changes
1. Add hint on adding "Closes", "Fixes", etc. keywords to directly update the Issue state when the PR gets merged
2. Collapse "PR Checklist" and "PR Type".
    - With the assumption that these 2 items are mainly reminders for contributors, and that reviewers will typically only look at it one time, we collapse these sections to reduce clutter in the PR description.
2021-08-08 09:47:08 +08:00
Baltazar Gomez
dbaa702888
fix wrong embed og metadata: #6814 2021-08-08 09:10:01 +08:00
infinite-persistence
b7cbbd0694
#6787 Use resolve for OG metadata 2021-08-07 19:41:24 +08:00
btzr-io
c85e448499
fix redirection and normalization of claim urls 2021-08-07 19:23:14 +08:00
btzr-io
68e4684ccd
use better resolve url 2021-08-07 19:23:00 +08:00
btzr-io
2c812da785
fix embed claim url 2021-08-07 10:16:10 +08:00
btzr-io
722f933052
use value.release_time 2021-08-07 10:16:09 +08:00
btzr-io
67f956f3a0
update changelog 2021-08-07 10:16:09 +08:00
btzr-io
45fcf0d518
use value.audio for google video metadata 2021-08-07 10:16:08 +08:00
Baltazar Gomez
6d91d1c799
use resolve for og metadata 2021-08-07 10:16:07 +08:00
zeppi
be4c75c047 v0.51.2-rc.1 2021-08-06 17:12:35 -04:00
Thomas Zarebczan
6db75f8a66 rss tests
Various fixes and improvements to work with Apple Podcasts

f

f

image support
2021-08-06 17:05:36 -04:00
saltrafael
7921c0971e Improve style 2021-08-06 15:07:10 -04:00
saltrafael
c55978f9d6 Allow to delete downloaded content from popup 2021-08-06 15:07:10 -04:00
saltrafael
4f0c6030e1 Add back file download link 2021-08-06 15:07:10 -04:00
Baltazar Gomez
cc7d2803bc update changelog 2021-08-06 14:55:17 -04:00
Baltazar Gomez
155309deee fix line breaking links: #6805 2021-08-06 14:55:17 -04:00
Franco Montenegro
6b071bab21 Fix amountNeededForTakeover message for bids. 2021-08-06 14:16:38 -04:00
zeppi
ab2bf481d1 bump 2021-08-06 14:16:27 -04:00
zeppi
5b4d8065e6 fix dislike crash when no claim 2021-08-06 14:10:05 -04:00
zeppi
1487b83ac5 branded site default 2021-08-06 13:46:32 -04:00
zeppi
4b64c35360 sunset link 2021-08-06 13:30:33 -04:00
zeppi
4bcd5942af oops 2021-08-06 12:27:37 -04:00
zeppi
2a19f9f63c lrytv sunset nag 2021-08-06 12:27:37 -04:00
Baltazar Gomez
ddb4c051ee Update CHANGELOG.md 2021-08-06 09:45:04 -04:00
Baltazar Gomez
76201e5955 fix text overflow past 3 dot menu: #6602 2021-08-06 09:45:04 -04:00
eniamza
8bec365fb4
Added: PR 6733 to changelog 2021-08-05 11:09:44 -04:00
eniamza
c146bfcd2d
Fix: Added \ and = to Reserved symbols warning 2021-08-05 11:09:30 -04:00
dependabot[bot]
ceb1b91273 Bump tar from 4.4.13 to 4.4.15 in /web
Bumps [tar](https://github.com/npm/node-tar) from 4.4.13 to 4.4.15.
- [Release notes](https://github.com/npm/node-tar/releases)
- [Changelog](https://github.com/npm/node-tar/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-tar/compare/v4.4.13...v4.4.15)

---
updated-dependencies:
- dependency-name: tar
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-08-04 12:20:10 -04:00
Baltazar Gomez
8a89645f73 update changelog 2021-08-04 12:17:14 -04:00
Baltazar Gomez
1a1f145d14 fix desktop deep links handler 2021-08-04 12:17:14 -04:00
infinite-persistence
f2e583f314 RSS: change from 'download' to 'stream' url to pass Media Test
This apparently ensures the media is playable across all devices and apps.
2021-08-04 12:07:14 -04:00
infinite-persistence
0af1dfe282 RSS: podcast support
## Issue
`https://github.com/lbryio/lbry-desktop/issues/6369#issuecomment-882081892`

## Changes
- Replace 'feed' with 'node-rss' for itunes spec support.
- Replace content type from 'rss+xml' to 'xml' so that the browser will display it nicely using the document tree without us having to re-format it ('node-rss' does not). Seems like all feeds that I found does it this way.
- There is no need to escape characters now that 'node-rss' does it. Nice.
2021-08-04 12:07:14 -04:00
saltrafael
60f4cca007 Fix no expand button bug 2021-08-04 09:33:42 -04:00
infinite-persistence
2cb950b6d8
Fix string context entry
Forgot to remove the context string from the actual string.
2021-08-04 14:43:46 +08:00
zeppi
fe35ea3764 stream type string or array 2021-08-03 14:49:59 -04:00
zeppi
67bcc1b1ec build 2021-08-03 14:49:59 -04:00
zeppi
ff5ca7398c naming 2021-08-03 13:38:17 -04:00
zeppi
e3e5c50a13 style logo in embed 2021-08-03 13:38:17 -04:00
saltrafael
426042feab Fix icon color 2021-08-03 13:23:31 -04:00
saltrafael
a6ad758c71 Show on content page if a file is part of a playlist already 2021-08-03 13:23:31 -04:00
zeppi
413b19a7e9 sync edited playlists 2021-08-03 11:47:54 -04:00
infinite-persistence
4156e83f57 Fix: OG messed up if $" is in title
## Issue
5951: OG messed up if `$"` is in title

The replacement string would contain `...$&quot...`. The character `$&` has special meaning in `replace`, so the output was messed up.

## Approach
Use a direct slice approach. A bit less elegant.
2021-08-03 11:36:26 -04:00
zeppi
2d66b8666d styling 2021-08-03 11:05:32 -04:00
saltrafael
f01fb7dd22 Mobile view: Make comments expandable 2021-08-03 11:05:32 -04:00
infinite-persistence
1d6101ddd2 Report recsys info when 'share_data_usage' is enabled.
Previous:
~~Although it was collecting info for all platforms, the data is only sent for Odysee.~~ Correction: it became enabled for all platform after `master` became Odysee.

New:
Only send out the telemetry for `IS_WEB` or if there's user consent.
2021-08-03 09:34:36 -04:00
infinite-persistence
34368760de Fill in remaining Recsys fields
## Issue
6366 Recsys Evaluation Telemetry

The recommended list from lighthouse is obtained from `makeSelectRecommendedContentForUri`. This list is further tweaked by the GUI (e.g. move autoplay next item to top, remove blocked content, etc.). Recsys wants the final recommendation list and the clicked index (in exact order), so we need pass these info to the videojs recsys plugin somehow. Also, Recsys wants a recommendation list ID as well as the parent (referrer) ID, we so need to track the clicks and navigation.

## General Approach
- It seems easiest to just spew back the final (displayed) list and all the required info to Redux, and the recsys plugin (or anyone else in the future) can grab it.
- Try to touch few files as possible. The dirty work should all reside in `<RecommendedContent>` only.

## Changes
- `ClaimPreview`: add optional parameters to store an ID of the container that it is in (for this case, it is `ClaimList`) as well as the index within the container.
  - When clicked, we store the container ID in the navigation history `state` object.
    - For general cases, anyone can check this state from  `history.location.state` to know which container referred/navigated to the current page. For the recsys use case, we can use this as the `parentUUID`.
- `ClaimList`: just relay `onClick` and set IDs.
- `RecommendedContent`: now handles the uuid generation (for both parent and child) and stores the data in Redux.
2021-08-03 09:34:36 -04:00
infinite-persistence
f8796e2950
i18n 2021-08-03 14:44:57 +08:00
infinite-persistence
74659f40a1
Restore "Use better icon for "Copy Link"" -- lost in a merge.
b164a5d1 accidentally nulled the changed.

While at it, moved the "Copy RSS" button below "Copy Link" -- I think that looks better.
2021-08-03 14:24:02 +08:00
Baltazar Gomez
7bbb1a436c
fix #6766 (Channel staked badge in the wrong line) 2021-08-03 00:14:26 -05:00
zeppi
1f2762af02 tags patch 2021-08-02 16:14:33 -04:00
zeppi
26b1c901c8 no limit on stream types for following 2021-08-02 16:14:33 -04:00
Baltazar Gomez
0214c80544 fix logo size on firefox 2021-08-01 14:26:59 -04:00
Baltazar Gomez
b34a5068be Update CHANGELOG.md 2021-08-01 09:47:44 -04:00
Baltazar Gomez
79e39da47f update sockety api urls 2021-08-01 09:47:44 -04:00
Baltazar Gomez
4c87ec9dcb add sockety server api to config 2021-08-01 09:47:44 -04:00
Baltazar Gomez
74e4c09033 add sockety server api to .env defaults 2021-08-01 09:47:44 -04:00
btzr-io
c0c65c46f4 use env for twitter account 2021-08-01 09:39:16 -04:00
btzr-io
d462f96834 improve twitter share 2021-08-01 09:39:16 -04:00
Baltazar Gomez
37d9cbfbeb limit claim_search results on livestreamLink 2021-08-01 09:13:25 -04:00
btzr-io
9983777f86 faster claim search on livestreamLink 2021-08-01 09:13:25 -04:00
btzr-io
7802337655 prevent livestream api calls if no livestream claim exists: #6632 2021-08-01 09:13:25 -04:00
Thomas Zarebczan
b5fec393c6
Fix crash 2021-07-31 11:08:15 -04:00
zeppi
b93caf4ebc fix logo image 2021-07-30 12:12:58 -04:00
Baltazar Gomez
9dd065a595 update lighthouse search api 2021-07-30 11:47:28 -04:00
Baltazar Gomez
172701aeba add server api to config 2021-07-30 11:47:28 -04:00
Baltazar Gomez
95c7d4f935 add search api to .env defaults 2021-07-30 11:47:28 -04:00
saltrafael
a9a0bc9462 Change warning 2021-07-30 10:24:04 -04:00
saltrafael
87ae041472 Add confirmation on comment removal 2021-07-30 10:24:04 -04:00
Baltazar Gomez
415a522805 fix notification menu button styles 2021-07-30 00:11:18 -07:00
btzr-io
fa1b1737bb fix inconsistent theme css vars: fixes #6738 2021-07-29 22:26:26 -07:00
infinite-persistence
0cdf881941
#6470 Improve accessibility and some minor css fixes 2021-07-30 09:34:40 +08:00
Baltazar Gomez
b5e9a3c383 Fix typo on changelog links 2021-07-29 16:30:54 -04:00
Baltazar Gomez
0242fae4f5 Update CHANGELOG.md 2021-07-29 16:26:37 -04:00
btzr-io
c65a554796 fix yarn copyenv on windows 2021-07-29 15:00:25 -04:00
saltrafael
cc93ac1a01 Fix currently active playing item on playlist 2021-07-29 14:55:52 -04:00
infinite-persistence
baf853c647 Decentralize: change Commentron URL
## Issue
6705 - Odysee.com Commentron
2021-07-29 14:21:52 -04:00
zeppi
9c5c566e3a bugfix 2021-07-29 12:58:25 -04:00
zeppi
ba1f7e67e4 more 2021-07-29 12:58:25 -04:00
zeppi
e2877cf505 alt publish api 2021-07-29 12:58:25 -04:00
Baltazar Gomez
eee7878954
fix typo 2021-07-29 11:52:34 -05:00
zeppi
c4639934d1 better... 2021-07-29 11:28:19 -04:00
zeppi
e09199d331 stylesRecon 2021-07-29 11:28:19 -04:00
infinite-persistence
7537b5ae7b
Lint and cleanup. No functional change. 2021-07-29 21:11:20 +08:00
infinite-persistence
4ff32e0c61
Fix missing file-thumbnail in Notifications
## Issue
6721 Notifications: Thumbnail for "new content" not showing up in Desktop layout

## Change
The `className` wasn't propagated during the `FileThumbnail` refactoring to `Thumbs`.
2021-07-29 15:56:42 +08:00
Baltazar Gomez
74087d2b86
Merge branch 'master' into accessibility 2021-07-28 23:47:42 -05:00
zeppi
9889c258e3 livestream api constant rename 2021-07-28 16:51:11 -04:00
zeppi
6cc3216d62 live url 2021-07-28 16:51:11 -04:00
zeppi
841733d4f0 embed 2021-07-28 16:51:11 -04:00
zeppi
46e874e83c livestream endpoint 2021-07-28 16:51:11 -04:00
zeppi
d25896d99c recon commentCreate 2021-07-28 15:43:56 -04:00
zeppi
b6c21dcb84 patch devmode for custom lbry api 2021-07-28 11:49:36 -04:00
zeppi
edebde5a2e file reactions recon 2021-07-28 08:12:29 -04:00
zeppi
2a69c42e5b back to img tag 2021-07-27 15:13:29 -04:00
zeppi
b1e8d2d6db desktop logo 2021-07-27 15:13:29 -04:00
zeppi
ef77a5cd00 optimizedImage 2021-07-27 15:13:29 -04:00
zeppi
71d9b0d973 default logo 2021-07-27 15:13:29 -04:00
zeppi
3f4c601428 logo component on embeds/embeds ended 2021-07-27 15:13:29 -04:00
zeppi
19f8b0adac logoComponent 2021-07-27 15:13:29 -04:00
zeppi
e4d7e4f69d force has source channel page 2021-07-26 14:17:52 -04:00
zeppi
403ea8f6f4 no livestreams on channel content 2021-07-26 14:17:52 -04:00
infinite-persistence
6de16813cb
i18n update 2021-07-26 23:31:03 +08:00
infinite-persistence
077207e203
ChannelPage: Don't mount inactive ChannelContent
## Issue
In the Channel Page, if the _Collections_ `claim_search` comes in after the main content's `claim_search`, the Collection's `ChannelContent` is being re-rendered despite not being in the active Tab. This causes a 0.4 CLS score (it's ridiculous that invisible components are taken into account). Apparently 41% of users are hitting this scenario, causing a poor aggregate.

## Change
Don't mount the `ChannelContent` components unless its tab is the active one. It doesn't seem like Reach Tab hides components under the inactive tab.
2021-07-26 22:01:31 +08:00
infinite-persistence
f6e648222e
Change constants to object for IDE auto complete
No functional change; just thought this is cleaner (group up the constants) and easier to type via IDE auto-complete, at the expense of creating an extra object.
2021-07-26 22:01:30 +08:00
infinite-persistence
8dc18e8fcd
Fix split (concat) string usage
Concatenated strings are hard to translate.
2021-07-26 12:37:59 +08:00
zeppi
8fef6c6160 ugly discover recon 2021-07-24 11:29:30 -04:00
zeppi
1e9dabe6e2 favicon custom
html fav tag remove

basic meta favi

missing favicon

recon
2021-07-23 17:12:18 -04:00
zeppi
aed3e98c79 footer recon 2021-07-23 16:20:11 -04:00
zeppi
e3006a0edb exempt news from hp 2021-07-23 16:03:01 -04:00
zeppi
20b7b24203 meme component2 2021-07-23 14:56:42 -04:00
infinite-persistence
76a6c0441c Beautify/elaborate comment spam-check message 2021-07-23 13:33:10 -04:00
Thomas Zarebczan
26e2dc16ec
Reinstate music category metadata 2021-07-23 11:49:44 -04:00
zeppi
1b6c0e474a favicon config 2021-07-23 11:35:42 -04:00
zeppi
5253d528a4 add default 2021-07-23 10:31:07 -04:00
zeppi
ad3fd5700f default search types from config 2021-07-23 10:31:07 -04:00
zeppi
0987c6e94f publish form recon 2021-07-23 10:14:22 -04:00
infinite-persistence
ffad52d5b7 Remove console.log
Seems like lint is being bypassed recently?
2021-07-23 08:42:58 -04:00
infinite-persistence
6e402240b0
Fix muted-words now returning null instead of ""
## Issue
Creating Settings suddenly start to stop loading correctly for some of my channels.

## Change
`settings.List` now returns null instead of empty array. Double-checked the Commentron repo and this is indeed the case.

Updated the code to handle null.
2021-07-23 15:46:38 +08:00
btzr-io
8597195f86 increase space between claim-tile title and menu button 2021-07-23 02:21:44 -05:00
btzr-io
632ce31a5d add visible focus style to file action buttons 2021-07-23 02:07:08 -05:00
infinite-persistence
7a8d213861
Eliminate CLS in Recommended due to wrapper mismatch
Seem like `type === small` was missed out, so it was using a wrapper than necessary, causing the shift.
2021-07-23 13:23:52 +08:00
infinite-persistence
c62c667436
CLS: reserve space for injected video ads 2021-07-23 13:23:51 +08:00
zeppi
038431f95c channel follow first run on master 2021-07-23 00:00:32 -04:00
zeppi
ed0387d94a pinning 2021-07-22 23:24:55 -04:00
zeppi
f2cd9f372e Chan fol disc recon 2021-07-22 23:08:33 -04:00
zeppi
d88752c646 music icon, fix lint 2021-07-22 17:31:46 -04:00
Anthony
15e696c4d6 bugfix not updating the frontend on account add 2021-07-22 17:23:51 -04:00
zeppi
085ea15247 settings page recon 2021-07-22 14:43:01 -04:00
zeppi
e920738cd1 file page recon 2021-07-22 14:28:12 -04:00
Anthony
78b4fa05b3 pull out variable for max and min fiat amounts 2021-07-22 14:06:59 -04:00
Anthony
7975ccf3e0 disable button if theres a fiat tip error 2021-07-22 14:06:59 -04:00
Anthony
713dc69ed7 add check for two decimals and fix showing error for fiat tip 2021-07-22 14:06:59 -04:00
btzr-io
f3b5079241 don't use break-all for livestream chat comments: #6602 2021-07-22 12:46:29 -05:00
btzr-io
c82884cff9 truncate title on channel Page #6635 2021-07-22 12:32:35 -05:00
infinite-persistence
ecb14be871
Fix broken embeds in incognito
## Issue
Closes 6490
Embeds in https://lbry.com/news/2002dtf was crashing in incognito

## Change
Ensure localStorage is available before using it. Jessop warned me before...
2021-07-23 00:50:02 +08:00
zeppi
f4559c1cce fileSubtitle recon 2021-07-22 12:09:54 -04:00
zeppi
8919182c0c default avatar config 2021-07-22 09:44:57 -04:00
btzr-io
86e1cfc3dd refactoring of claim preview aria-label format 2021-07-22 03:24:25 -05:00
btzr-io
083aff2ceb minor fix for channel menu button alignment 2021-07-22 02:55:40 -05:00
btzr-io
2a291366da use full sentences with variables for claim preview aria-label 2021-07-22 02:37:57 -05:00
infinite-persistence
032e17cecd
Improve CLS on Posts
## Issue
6068 Fix "Cumulative Layout Shift" for Core Web Vitals

In Posts, the Comments section appears first while we fetch the MD file. When the MD is fetched, Comments get pushed to the bottom (or shifted up for short posts), hence the red CLS scores.

## Approach
There are too many layers between `<FilePage>` and `<DocumentViewer>` to pass the `loading` state around to hide the Comments section, so just make Comments fade in after a 2s delay.

## Changes
- Posts: Add 2s fade-in delay to Comments.
- Posts: remove the gray placeholder. This improves the score a bit more, and reduces flicker as well. There's already a spinner from `FileRenderInline` to tell the user to be patient.
- Posts: add a minimum 30vh height so that short posts don't get collapsed too much, causing the `FileDetails` and Comments to shift. Small shifts are fine as long as CLS is below 0.1.
2021-07-22 10:38:01 +08:00
Baltazar Gomez
c983af927f
Merge branch 'master' into accessibility 2021-07-21 20:59:12 -05:00
infinite-persistence
50c606d916 claimListDiscover: don't re-render until query is done
## Issue
6542 Livestream listing and blocked list kills CLS score

This is basically a repeat of what was done on `claimTileDiscover` (homepage), but now on `claimListDiscover` (category pages).

This handles the unnecessary re-render when:
- the uri list temporarily being zero while waiting for new claim-search results.
- livestream claim-search invalidating the list.

## Changes
Store the last uri list and use that when we know that claim-search is still not done.

## Tests
1. Ran Lighthouse on category pages (force a livestream channel on it). CLS score must be green.
2. Block `claim_search` from Dev Tools and move to another category. The page should say "timed out" instead of "no results" (i.e. maintain existing behavior).
2021-07-21 21:51:12 -04:00
zeppi
1994b5da04 guidelines optional in sidenav 2021-07-21 20:26:17 -04:00
zeppi
fbf105e113 fileActions recon 2021-07-21 18:37:43 -04:00
zeppi
573ed1e88c recon followDisc 2021-07-21 16:58:13 -04:00
zeppi
91b908ad50 pubfile copy 2021-07-21 16:18:46 -04:00
zeppi
6ec95647e7 lbc remove file 2021-07-21 15:56:09 -04:00
infinite-persistence
4fc6b89975 Fix reposted channels incorrectly showing the channel thumb
## Issue
6589

## Notes
`parseURI` will return `isChannel=false` due to the reposted channel URL not having the '@' symbol.

Since we already have the claim object, check `value_type` directly instead.
2021-07-21 14:41:47 -04:00
saltrafael
b164a5d1f4 Pop up Menu Fixes and Improvements
Pop up Menu Fixes and Improvements

Improve re-directs

Fix file deletion

Improve code, and more

Fix List Layout collection popup

Allow to edit list

Fix blocking when not logged or no channel

Fix Edit and Delete showing for not owned Lists

Fix actions breaking when not logged in

Fix List options not showing

Lint

Shorten logic

Lint
2021-07-21 14:40:44 -04:00
zeppi
fdca58727c restore paid content 2021-07-21 12:49:56 -04:00
zeppi
3f1e5303db fix default env api 2021-07-21 11:13:03 -04:00
infinite-persistence
28e9aea290 Improve cache for hashed js files 2021-07-21 08:13:27 -04:00
zeppi
1600bb69b9 sms copy 2021-07-21 08:11:33 -04:00
infinite-persistence
6b2548cc49
Fix channel-selector thumbnail not updating
Recently changed to `<OptimizedImg>`, which was assuming the `src` never changes.

dejavu ... we also hit this issue when implementing the `IntersectionObserver` lazy-loading.
2021-07-21 16:38:54 +08:00
btzr-io
c087d8e0bb remove trending localization entries 2021-07-20 19:34:45 -05:00
btzr-io
6a8d32c9bf add SkipNavigationButton to its own file 2021-07-20 19:31:26 -05:00
btzr-io
f6261611f0 fix ClaimPreview errors 2021-07-20 18:49:41 -05:00
Dispatch
e138673d27
Merge pull request #6508 from saltrafael/live_comments
Fix 'Recent Comments' button for livestreams
2021-07-20 12:33:52 -07:00
infinite-persistence
47c41b436d RSS: Add enclosure for media
- Moved the thumbnail from 'enclosure' to 'description' by appending the thumbnail in front.
- Generate enclosure for media. It's up to readers on how they will handle it. Some will display the inline video player, some will just provide a download link.
2021-07-20 15:27:24 -04:00
zeppi
283bbb52fa disable google imasdk 2021-07-20 15:12:14 -04:00
zeppi
8674b97be8 disable aniview 2021-07-20 15:12:14 -04:00
zeppi
245709aa52 new .env.defaults 2021-07-20 14:54:22 -04:00
btzr-io
7375c106a2 fix channel quick menu actions z-index: #6582 2021-07-20 12:56:55 -05:00
Baltazar Gomez
0db4e4ab51
Merge branch 'master' into accessibility 2021-07-20 12:24:36 -05:00
btzr-io
bc2a8ba77d fix accessibility issue on rewards page #5991 2021-07-20 12:14:28 -05:00
zeppi
dd4385f243 modal publish recon 2021-07-20 12:48:43 -04:00
zeppi
e4f1d4221b header notify recon 2021-07-20 12:32:17 -04:00
zeppi
8301244507 commentReactions recon ma 2021-07-20 11:17:44 -04:00
zeppi
27400cbe03 yt recon 2021-07-20 10:37:46 -04:00
zeppi
e834a4aa51 change uploads copy 2021-07-20 10:33:48 -04:00
Andrey Beletsky
8e3aee5813 Change API server address to odysee-api 2021-07-20 10:23:00 -04:00
infinite-persistence
03a218e288
#6504: Optimize channel banner 2021-07-20 16:40:58 +08:00
infinite-persistence
11b5eb49a0
Optimize ChannelThumbnail using the new method 2021-07-20 16:21:51 +08:00
infinite-persistence
a21b4c5cf3
Optimize banner image 2021-07-20 16:21:51 +08:00
infinite-persistence
68432eef26
OptimizedImage - wrapper for CDN-optimized image
Objective:
- Get appropriately sized images to improve performance and Core Vitals score.
- Ensure images using "objectFit=cover" doesn't get stretched out if the source is large enough.
- Peg to 100px increments for better caching.

Notes:
- Skip images hosted in '/public'. If we really want to optimize it, then we'll need to provide the full path in the code, otherwise CDN lookup will fail.
2021-07-20 16:21:50 +08:00
infinite-persistence
73cf52426f
Preload fonts properly with 'crossorigin'
We probably don't need to preload fonts (it will reduce browser warnings), since it wasn't working all this while.

But it's probably there to address something (perhaps to handle OG better?), so do it right by setting the proper flags.
https://stackoverflow.com/questions/1330825/preloading-font-face-fonts/46830425#comment87712868_46830425
2021-07-20 15:49:27 +08:00
infinite-persistence
1eada066ff
#6576: Fix reaction-fetch infinite retries when no results are returned 2021-07-20 15:38:11 +08:00
infinite-persistence
e5f32b21c4
Reaction-fetch: handle "no results"
If there are no API errors but no reactions returned, consider the requested IDs as "done" and stop requesting again. When a channel is being confirmed, Commentron doesn't return the reaction object.

Also added extra guard in case Commentron does return an object in the future, but an empty one.
2021-07-20 15:22:51 +08:00
infinite-persistence
08738ffcee
Reaction-fetch: handle "deleted all channels"
- use `selectActiveChannelClaim` as that takes the current channel list into account (i.e. correct state when all channels are deleted).
    - `selectActiveChannelId` should probably be removed or not exposed through a selector, as it is not updated when channel list changes?
2021-07-20 15:22:50 +08:00
infinite-persistence
c71e4718d0
Remove (revert) reaction-fetch hardstop
Root-cause is known, so removing it to detect other issues.
2021-07-20 15:22:49 +08:00
zeppi
4bf7c68574 use config for showTagsIntro 2021-07-19 22:46:43 -04:00
zeppi
765cef7564 recon notify components 2021-07-19 22:16:29 -04:00
zeppi
3dc7c35cd7 recon 2021-07-19 21:46:28 -04:00
zeppi
1f902726fb copy 2021-07-19 17:39:59 -04:00
zeppi
33ee8ed3b7 site help email transactoin failed 2021-07-19 17:37:36 -04:00
zeppi
3e4206ee69 yt welcome recon 2021-07-19 17:33:23 -04:00
zeppi
f6dc48fdc0 use odysee recsys plugin 2021-07-19 17:30:44 -04:00
zeppi
ed1671fe2f matching comments 2021-07-19 17:30:25 -04:00
zeppi
6fc44720d6 styles 2021-07-19 15:34:46 -04:00
infinite-persistence
424ba85507
100% compression doesn't work with current CDN url
...sometimes produces larger-than-original file sizes too.
2021-07-20 02:34:25 +08:00
zeppi
be9640972e meme style 2021-07-19 14:17:43 -04:00
zeppi
90e2a225e4 use meme component 2021-07-19 14:00:35 -04:00
zeppi
75a6ea21a5 more 2021-07-19 13:52:15 -04:00
zeppi
26e67b375c more 2021-07-19 13:52:15 -04:00
zeppi
50875566ad more 2021-07-19 13:52:15 -04:00
zeppi
9b03f5a1d0 more 2021-07-19 13:52:15 -04:00
zeppi
cc07390ea4 more 2021-07-19 13:52:15 -04:00
zeppi
1d021fc8e0 more 2021-07-19 13:52:15 -04:00
Anthony
fdfa2f1660 hotfix for bug 2021-07-19 11:08:59 -04:00
jessopb
ae2354a0e0 Revert "move stuff to web (#6537)"
This reverts commit a6c413da5c.
2021-07-19 10:12:57 -04:00
infinite-persistence
3243ce6e0a
Image Claims: minimum layout shift on desktop layout
## Issue
6068

## Change
Lock all images to fit a 16:9 container. We have implemented 'ZoomableImg', so no reason in trying to display in full size.

This reduces CLS from 0.4xx to 0.01x.

## Flaws
CLS could probably be zero if not for the spinner shifting things slightly. Also, mobile CLS is 0.07.

The troublesome part in this PR is that FileRenderInitiator, FileRender and their subcomponents are broken apart and it's hard to synchronize their visibility and size. There are time gaps where none of them are visible, etc.

This PR only tackles the major part (most bang for buck), which is the elimination of variable height of the rendered image.

## Aside
I think `claimIsMine` is unused, so don't waste time requesting it.
2021-07-19 14:26:00 +08:00
infinite-persistence
6f4ce0a57c
Apply placeholder images
https://lbryians.slack.com/archives/C81FGKR51/p1624278721203900?thread_ts=1624269131.202200&cid=C81FGKR51

The intrinsic size needs to be at least equal the final image's size. Stretching, SVGs, etc. doesn't count.
2021-07-19 12:07:26 +08:00
infinite-persistence
1745f08fb8
Fix typo in filename 2021-07-19 10:42:53 +08:00
zeppi
e03325d0e4 remove old stripe setting 2021-07-18 22:30:12 -04:00
jessopb
a6c413da5c
move stuff to web (#6537) 2021-07-18 21:57:36 -04:00
mayeaux
4fe17363f3
disable review button if no card saved also some cleanup (#6535)
* disable review button if no card saved also some cleanup

* fix flow errors
2021-07-18 21:49:21 -04:00
jessopb
5a04d0fea0
some recon (#6532) 2021-07-18 13:06:52 -04:00
zeppi
dfc013d423 more recon 2021-07-18 11:27:05 -04:00
infinite-persistence
1fa7533ee3
Hide 'download' for livestreams
6517
2021-07-18 23:10:59 +08:00
infinite-persistence
5120db3f53
i18n update 2021-07-18 22:50:22 +08:00
infinite-persistence
f3ed597ff6
i18n: Fix invalid template literal use + split strings 2021-07-18 22:42:21 +08:00
infinite-persistence
abe32e5f5c
Revert "Reactions: consider failures as "fetched""
This reverts commit 84a2a74c8c.
2021-07-18 10:55:11 +08:00
Anthony
0bf03c4a35 add a command to automatically lint files 2021-07-17 14:06:30 -04:00
zeppi
cc4de44f3d ignore flow for react-plastic 2021-07-17 13:19:33 -04:00
Anthony
6aea8e38bc fix css 2021-07-17 13:19:33 -04:00
zeppi
77d2ab6a43 yarn lock 2021-07-17 13:19:33 -04:00
zeppi
7ffd59c169 more lint 2021-07-17 13:19:33 -04:00
zeppi
27aa4e4a22 lint 2021-07-17 13:19:33 -04:00
Anthony
7bb5df97fd Stripe 2
show visible card and add remove card button

show your transactions even if you dont have a card

fix presentational issues

show your transactions even if you dont have a card

fix presentational issues

add link to channel section

update yarn

show donation location

add remove card modal still needs completion and also changed how stripe is used on settings stripe card page

add confirm remove card modal to router

move bank account stuff to settings page

move account functionality to settings page

continuing to move account transactions to settings

list transactions for creator

updating copy

touchup tip error

do a better job autofocusing

bugfix

show an error on the card page if api returns 500

building out frontend for comment tip

display dollar sign if its a fiat tip

more frontend work

more frontend work

more frontend bug fixes

working with hardcoded payment intent id

working but with one bug

bugfixed

add toast if payment fails

add add card button

cant get claim id but otherwise done

more frontend work

call is working

show fiat for livestream comments

add is fiat on comments

round and show values properly

dont allow review if tiperror

copy displaying properly

disable buttons conditionally properly

remove card button working

remove card working with a workaround by refreshing page

bugfix

send toast when tip on comment

jeremy frontend changes

only show cart on lbc
2021-07-17 13:19:33 -04:00
infinite-persistence
cd32fb71c7
Experiment: hardstop reaction-fetch at 500
(Hypothetical max comment of 3000) / (10 comments per page) = 300.
Cap at 500 to stop runnaway loops.
2021-07-17 22:19:15 +08:00
infinite-persistence
84a2a74c8c
Reactions: consider failures as "fetched"
In the event that Commentron returned an empty object, we'll end up re-requesting the same IDs again. Haven't seens this happen before, but since we don't know what's causing the spike, we'll just consider failures and "fetched" to stop the loop.

User can always click Refresh to repopulate the values.
2021-07-17 21:53:23 +08:00
infinite-persistence
47d39b20d3
Stop fetching reacts if failed for 3 times
Not sure if this will ever occur, but technically possible from the code point of view. Try adding this to see if it stops the spikes in `reaction.list` calls.
2021-07-17 13:53:58 +08:00
infinite-persistence
9c05239b04
Don't show "comments disabled" while still fetching.
## Issue
6513
2021-07-17 12:09:42 +08:00
keikari
1882e78d51 Tried to clear errors mentioned in lint details
154:28  error    Trailing spaces not allowed     
 161:6   error    Unexpected tab character
2021-07-16 18:32:41 -04:00
keikari
299682a6dc Make "support-pop-up" text match claim type.
Confirm button label will also show "your" instead of "this" for your own claims.
2021-07-16 18:32:41 -04:00
keikari
08dd1cbf0b Minor fix suggestion: Default to "TAB_BOOST" when supporting own claims
Someone mentioned about odysee.com showing "tip" related text when supporting own claim. Now it should default to "Boost" related text for own claims.

L167: Not edited but not sure if "claimIsMine" is needed there any more.
2021-07-16 18:32:41 -04:00
zeppi
70af46149d discover channelIds from homepages 2021-07-16 18:31:48 -04:00
saltrafael
9cdfb239c0
Playlist style fixes (#6509)
* Fix spacing on List page

* Fix alignment on List sidebar
2021-07-16 15:13:28 -04:00
Baltazar Gomez
e59c67a144
render filedrop for only authenticated users (#6466) 2021-07-16 14:53:14 -04:00
Marko Lorentz
e44b7b929e
i18n: Added missing state handling for RTL languages (#6275)
* Add RTL Support

* Add Arabic to supportedLanguages

* Fixed lint errors

* Allowed RTL flow for Hebrew

Co-authored-by: Sana <sana.benhassouna@ensi-uma.tn>
2021-07-16 13:51:08 -04:00
infinite-persistence
cb0222981c Reactions: switch from SDK to Commentron
## Issue
- Closes 6481 "Use Commentron for react.List, react.React calls".
- 5459 "Interact directly with commenting servers".
2021-07-16 13:41:41 -04:00
zeppi
df8216e9d8 add changelog to pr template checklist 2021-07-16 13:40:25 -04:00
zeppi
1dd8eeb317 update changelog 2021-07-16 13:34:33 -04:00
btzr-io
4d28c5d208 use aria current 2021-07-16 10:58:40 -04:00
btzr-io
504f230d59 show currently active playing item on playlist: #6204 2021-07-16 10:58:40 -04:00
infinite-persistence
ad7db1e939 Reactions: wait for previous fetch to complete before fetching again.
This was causing duplicate IDs to be fetched over and over again when scrolling quickly.
2021-07-16 10:54:12 -04:00
infinite-persistence
a13708f4dd Handle the case of all replies are blocked.
In this scenario, `comment.List` does not return `comment`. I was expecting an empty array.

Handled accordingly.
2021-07-16 10:54:12 -04:00
infinite-persistence
08c701ba19 Restore comment pagination
This reverts commit e6addb8c2a, reversing
changes made to 47b594107a.
2021-07-16 10:54:12 -04:00
saltrafael
b5ad359e32 Fix 'Recent Comments' button for livestreams 2021-07-16 10:55:47 -03:00
btzr-io
ba763a85cd remove react-helmet 2021-07-16 02:22:54 -05:00
btzr-io
d1a8f28464 use new aria label format for claim preview 2021-07-16 01:53:38 -05:00
infinite-persistence
73c872501c
Copy Link: use canonical
## Issue
6497
2021-07-16 10:18:37 +08:00
btzr-io
06e6feaf3b add date to claim-preview aria-label 2021-07-15 19:44:51 -05:00
btzr-io
d56b32ff19 simplify localization of claim-preview aria-label 2021-07-15 19:13:54 -05:00
btzr-io
60c5d3bf67 add more info for claim-preview-tile aria label 2021-07-15 18:12:11 -05:00
zeppi
6bee1915ec bump 2021-07-15 17:48:02 -04:00
zeppi
637c01750a clean 2021-07-15 17:48:02 -04:00
zeppi
b2b88b466e fix colon handling 2021-07-15 17:48:02 -04:00
zeppi
0e589c0401 bump 2021-07-15 17:48:02 -04:00
btzr-io
7c8c43d3a7 fix file actions accessibility 2021-07-15 15:14:21 -05:00
btzr-io
6354a77bf1 make skip navigation link first focusable element 2021-07-15 13:32:58 -05:00
btzr-io
cc7dcc65f9 fix localization entries 2021-07-15 12:16:13 -05:00
btzr-io
9426f6af72 more css fixes for menu button styles 2021-07-15 12:13:31 -05:00
infinite-persistence
e6addb8c2a
Revert comment pagination
until weird 'replies' and reaction-fetch spikes is investigated
2021-07-15 22:26:46 +08:00
infinite-persistence
a2a1ddb403
Revert "Comments Pagination #6390"
This reverts commit 16ef013025, reversing
changes made to fba8b89b3b.
2021-07-15 22:23:26 +08:00
infinite-persistence
08548916df
Revert "Fix continuous reaction fetch in incognito"
This reverts commit ff059c58fd.
2021-07-15 22:23:14 +08:00
infinite-persistence
47b594107a
Use better icon for "Copy Link"
Not re-using the same icon as "Share".
2021-07-15 14:40:10 +08:00
btzr-io
d0e865b9ec define main language on html head 2021-07-15 01:12:18 -05:00
btzr-io
aa1b9b8b99 add react-helmet as a dependency 2021-07-15 01:00:37 -05:00
btzr-io
4e40488629 rename css vars 2021-07-15 00:48:53 -05:00
btzr-io
eb1ab935c5 consistent menu button styles and minor css fixes: #5145 2021-07-15 00:40:40 -05:00
btzr-io
d0f241d908 fix localization entries 2021-07-14 23:19:44 -05:00
btzr-io
4d4fbe4e9a fix typo 2021-07-14 22:12:40 -05:00
btzr-io
6d7e92d73b improve header accessibility
add skip navigation link + minor fixes
2021-07-14 22:08:30 -05:00
infinite-persistence
ff059c58fd
Fix continuous reaction fetch in incognito
myReactions will never be filled in incognito. Also, it's probably enough to just check othersReactions, but for now, still do both when logged in.
2021-07-15 09:58:15 +08:00
btzr-io
7aaaf998a8 use aria-hidden on all tile cards thumbnails 2021-07-14 18:58:56 -05:00
btzr-io
695343532d minor css fixes: #5145 2021-07-14 18:35:49 -05:00
btzr-io
484f2830c8 improve accessibility of claim preview tiles: #6480 2021-07-14 17:12:07 -05:00
btzr-io
6df622307c simplify card tile keyboard navigation 2021-07-14 15:09:48 -05:00
Baltazar Gomez
2f67ca370e
Merge branch 'master' into accessibility 2021-07-14 13:48:37 -05:00
btzr-io
0397617bed use aria-hidden on all icons by default 2021-07-14 13:44:22 -05:00
zeppi
d612b86a8c homepages v2
homepages served without cache

error catching

memo homepagedata

support auto limit

no more config pins
2021-07-14 14:09:46 -04:00
zeppi
00146bcbb2 restrict pixel from auth and mobile 2021-07-14 14:07:29 -04:00
zeppi
bc4f71ed8c clean 2021-07-14 12:26:21 -04:00
zeppi
7581d914fe hide menu on web for unauth 2021-07-14 12:26:21 -04:00
saltrafael
aced8fb593 Add watch later hover action and Favorites
add watch later hover action

replace watch later popup item for favorites

lint

styling for watch_later overlay

Add label

Use just claim, add requiresAuth

Add list icon

Tone down text

Turn WL Hover Button into component

Change WL hover icons

small revert

Keep watch later in the menu
2021-07-14 11:41:36 -04:00
infinite-persistence
16ef013025
Comments Pagination #6390 2021-07-14 22:41:54 +08:00
infinite-persistence
5742e1c2ca
Handle representation of blocked replies
## Issue
- `Comment.replies` currently represent all replies, while `comment.List` returns a filtered version, so the actual replies could be less.
- The actual replies is represented by `total_filtered_items`, but we only get that after making a fetch. So, users could click "Show more" but get nothing.

## Fix
- Stop showing "Show more" based on `total_filtered_items`.
- If there is a balance, display 1 dummy comment to represent all blocked replies. This handles the case of "Show more" being displayed but ended up with 0 replies if all replies were blocked.

## Future
Note that `Comment.replies` might be changed to represented filtered comments in the near future (refer to Beamer), so the GUI is made such that the dummy just won't appear when that change happens.
2021-07-14 15:11:44 +08:00
infinite-persistence
4731588a3c
Tell user when linked-comment is not available. 2021-07-14 13:00:26 +08:00
infinite-persistence
e77a986125
Load comments if spinner is visible from the start
It was previously only responding to scroll events.
2021-07-14 13:00:26 +08:00
infinite-persistence
3d63ce4666
Load comments when approaching viewport
Seeing the spinner too much can be annoying.

- This approach works, but currently, when the list is very long, something is taking up resources and the handler couldn't be processed, so the effect is lost (still seeing the spinner). See 6473.

- Since we are now prefetching, bumped the debounceMs a bit.
2021-07-14 13:00:25 +08:00
infinite-persistence
2f92ce8bb4
Bump comment and reply page size to 10 (was 5 and 3, respectively) 2021-07-14 13:00:24 +08:00
infinite-persistence
f8bdd0704f
Handle temporary Commentron bugs
Can be removed when bugs are fixed, but would still work if left there.
2021-07-14 12:58:27 +08:00
infinite-persistence
5ef95846d8
Add AUTO_EXPAND_REPLIES flag to toggle the feature. 2021-07-14 12:58:26 +08:00
infinite-persistence
0cf6fe3df5
Comments Pagination
## Issue
6158 - Support Comment Pagination
2021-07-14 12:58:25 +08:00
Dispatch
fba8b89b3b
Merge pull request #6438 from lbryio/retargetting-pix
add retargeting pixel
2021-07-13 20:49:18 -07:00
Dispatch
da43ad2831
Merge pull request #6474 from lbryio/retargeting-changes
move pixel to web
2021-07-13 20:48:03 -07:00
zeppi
f1c9aa7907 review this 2021-07-13 23:45:51 -04:00
zeppi
e6376871d5 move pixel to web 2021-07-13 23:40:49 -04:00
infinite-persistence
c5b3d9aef7
Fix "exact match" being applied to Recommended #6460 2021-07-14 11:18:43 +08:00
infinite-persistence
b822ae39e1
Remove hardcoded filters in doSearch
## Issue
6414 <Don't use "exact match" setting outside of main search - cuases no results in related>

`doSearch` was used in Wunderbar and Recommended, but it was adding in Wunderbar options all the time.

## Changes
- Fix `doSearch` to not use hardcoded options (take from arguments).
- Refactors the searchOption-creation code so that we don't duplicate the logic in both .js and .jsx.
2021-07-14 11:16:19 +08:00
infinite-persistence
052aa87ddd
Remove unused items 2021-07-14 11:13:13 +08:00
DispatchCommit
d32af5606b move pre-roll ad logic into it's designated video.js plugin 2021-07-13 22:22:06 -04:00
btzr-io
3e13930425 add aria-label for modal close button (X) 2021-07-13 18:23:45 -05:00
btzr-io
6e5e2b7578 remove localization entries 2021-07-13 18:09:09 -04:00
btzr-io
7398120c0c fix incorrect aria-label in rewards page 2021-07-13 18:09:09 -04:00
btzr-io
2391f66d90 fix upload button on creator analytics: #6323 2021-07-13 18:09:09 -04:00
btzr-io
2009be519e remove localization entries 2021-07-13 18:07:41 -04:00
btzr-io
2dbd5d0f00 fix sidebar shortcut activation on textarea: #6326 2021-07-13 18:07:41 -04:00
btzr-io
97202dd7aa allow other props for lbry icon (aria-hidden) 2021-07-13 16:56:21 -05:00
btzr-io
b595021a7f fix missing aria-label on links / navlinks 2021-07-13 16:38:50 -05:00
btzr-io
c11b73d117 use aria-hidden for icons indside buttons
use aria-expanded for sidebar menu button
2021-07-13 16:23:29 -05:00
btzr-io
9f18822754 use aria-hidden for filedrop component 2021-07-13 15:31:42 -05:00
btzr-io
6eca14f140 fix issue of invalid aria-label values 2021-07-13 15:19:52 -05:00
infinite-persistence
e9710150ad
Update to node v14 2021-07-13 17:38:00 +08:00
DispatchCommit
47d9b4a866 fix site detection, add hide logo to macro url 2021-07-13 00:06:32 -04:00
DispatchCommit
8253f5e0dc center play button 2021-07-13 00:06:32 -04:00
DispatchCommit
b777669a7e Add pre-roll ads
change ad macro url
rework video.js load logic
fix autoplay and retry errors
yeet player.ended error
fix another race condition
fix another error message
add allowPreRoll restrictions
fix some lint issues
remove annoying lint rule
remove video.js lazy loading
more linting fixes
2021-07-13 00:06:32 -04:00
infinite-persistence
0de6be77de Fix missing "currrent/remaining time" control is mobile
## Root-cause
`https://github.com/videojs/video.js/pull/7098`

videojs was recently upgraded.

## Change
Override videojs default theme of hiding the time control in smaller layouts.
2021-07-13 10:58:59 +08:00
infinite-persistence
f7cf21b661 useLazyLoading: start loading when near viewport
## Issue
#6332 <Thumbnail lazy-loader is too slow || Use browser-level lazy-loading>

## Change
Switch from "threshold-based check" to "viewport distance comparison" using the `rootMargin` parameter. The root is the viewport.

This change makes it closer to the native `loading="lazy"` behavior, where it starts to load when approaching the viewport. Chrome I believe uses 3000px distance -- I think 500px is a good compromise for now. Can adjust further.

## Future
- We are currently creating N instances of IntersectionObserver.
  - https://developers.google.com/web/updates/2016/04/intersectionobserver
  - "If you need to observe multiple elements, it is both possible and advised to observe multiple elements using the same IntersectionObserver instance by calling observe() multiple times."

This would probably need a refactor to make ClaimList (or something higher) own the IntersectionObserver.
2021-07-12 17:06:30 -04:00
infinite-persistence
59a8b9d663 WaitUntilOnPage: take scaling into account
It was waiting too near the viewport to load on certain zoom levels. This will maintain the same physical distance for the "approaching viewport" buffer regardless of zoom levels.
2021-07-12 17:06:30 -04:00
infinite-persistence
ad1c826f2c RSS: Use canonical_url (with ':') instead of slicing to 2 characters.
## Changes
- Change to canonical_url (with ':').
- The old format of 'claimName/claimId' needs to be supported still, since we shipped with it.

## Notes
- It would be nice to use regex instead of 2 separate paths, but I couldn't figure out how to make the koa variables work.
2021-07-12 17:06:03 -04:00
saltrafael
4bd5beb2f6 Fix notification bell toast 2021-07-12 11:03:11 -04:00
zeppi
af7b553da3
patch-rss-bug 2021-07-10 11:47:23 +08:00
infinite-persistence
70a1ed6934
Fix colon mistakes in string list 2021-07-10 11:43:17 +08:00
infinite-persistence
35e4c604ef
RSS Fixes #6436 2021-07-09 22:18:17 +08:00
infinite-persistence
249f06bd21
w3c validation 2021-07-09 22:16:28 +08:00
infinite-persistence
cd9337f2d4
Skip RSS URL generation if it's not a channel. 2021-07-09 21:54:44 +08:00
infinite-persistence
e7bed19391
Shorten the RSS URL
This will be backward compatible with existing format that uses the full claim_id.
2021-07-09 21:54:44 +08:00
infinite-persistence
f6641ee045
Bump from 50 to 500 latest entries per creation_timestamp 2021-07-09 21:54:43 +08:00
infinite-persistence
da8000303b
Add toast feedback for RSS and Link copy action.
6369
2021-07-09 21:54:43 +08:00
infinite-persistence
1f16736e5a
Fix invalid semicolon 2021-07-09 21:28:58 +08:00
infinite-persistence
d97a23b699 Rename default import/exports for clarity in text search (no functional change)
I believe it was just due to copy/pasting from another file and not renaming it.
2021-07-09 08:40:26 +08:00
saltrafael
e2de9bf9e7 Fix recommended tab style issues 2021-07-08 16:08:13 -04:00
zeppi
8e2ad8b8ca fix missing i18n on channel page 2021-07-08 15:55:40 -04:00
zeppi
814acc5b11 restore playlists tab 2021-07-08 15:55:40 -04:00
zeppi
0bb9c520ff fix livestream display 2021-07-08 15:08:53 -04:00
DispatchCommit
f390320030 add retargeting pixel 2021-07-08 01:26:58 -07:00
infinite-persistence
36fe736669
Handle stale/missing chunks #6411 2021-07-08 15:06:51 +08:00
infinite-persistence
67324aca21
Reload page when trying to open stale chunks
https://raphael-leger.medium.com/react-webpack-chunkloaderror-loading-chunk-x-failed-ac385bd110e0

#codesplit
2021-07-08 15:06:09 +08:00
infinite-persistence
b326ad4ec1
Ensure index.html isn't cached
Part of the solution to handle `ChunkLoadError` in code-splitting.

https://raphael-leger.medium.com/react-webpack-chunkloaderror-loading-chunk-x-failed-ac385bd110e0

#codesplit
2021-07-08 14:52:30 +08:00
infinite-persistence
3017155867
Don't lazy-load components in ErrorBoundary
We currently handle major errors through ErrorBoundary. If the error is network related, ErrorBoundary ends up blank if it's components are lazy-loaded.

#codesplit
2021-07-08 14:52:29 +08:00
infinite-persistence
3fad222848
i18n 2021-07-08 13:05:24 +08:00
infinite-persistence
a493428247
Skin fiat-tip notification
## Issue
6421 Notification: Fiat Tip Notification
2021-07-08 11:21:58 +08:00
infinite-persistence
52cba611b3
Cleaned up notification constants
- Organized under an object.
- Removed old unused ones.
2021-07-08 11:21:24 +08:00
infinite-persistence
06e454e9dc
Check if folder exist before clearing stale js
If was failing the build for environments without a prior build.

+lint
2021-07-08 10:21:45 +08:00
infinite-persistence
5769a27151
Fix slow mode error message
It won't work with the hardcoded value.

Still waiting for commentron (error code + data) enhancement. It's pretty weird having to parse the number, then add it back in.
2021-07-08 09:51:18 +08:00
Dispatch
33fb1501b8
Merge pull request #6424 from lbryio/fix-sidebar-ads
hide logo image on sidebar ads
2021-07-07 18:40:50 -07:00
DispatchCommit
14d9b99c7b hide logo image on sidebar ads 2021-07-07 18:37:34 -07:00
Thomas Zarebczan
7175e40d61 update error message 2021-07-07 19:31:15 -04:00
infinite-persistence
26efe9fd45 Enable 'slow mode' in comments
## Issue
Sub item in <6119 Creator Settings: beyond "Muted Words">

## Changes
- Removed the existing 5s min gap on livestreams.
- Enabled the 'slow mode min gap' in Creator Settings

This change now affects both comments in claims and livestream comments.
2021-07-07 19:31:15 -04:00
zeppi
6761cd2aa6 add star icon 2021-07-07 14:36:20 -04:00
jessopb
be879ae90a
Recon 7 6 b (#6418)
* changes

* clean

* showNoSourceClaims
2021-07-07 14:21:11 -04:00
Anthony
0ef61fc575 clear stale js files on nonprod environments 2021-07-07 12:26:04 -04:00
zeppi
a422e857e3 do file remove too 2021-07-07 10:45:46 -04:00
Jeremy Kauffman
60384772af remove words like "revoke" and "claim" from abandon modal 2021-07-07 10:45:46 -04:00
infinite-persistence
ffadae9373 Remove unused (?) selector 2021-07-07 07:50:59 -04:00
infinite-persistence
7301184255 yarn.lock fix for "upgrade video.js to 7.13.3" 2021-07-07 15:52:05 +08:00
DispatchCommit
98b9ad5681 upgrade video.js to 7.13.3
Update package.json
2021-07-06 23:48:37 -04:00
zeppi
d346c19738 env 2021-07-06 16:06:58 -04:00
zeppi
b045f62eb7 rm comment 2021-07-06 16:06:58 -04:00
zeppi
5f83c027be filter buy countries on master 2021-07-06 16:06:58 -04:00
zeppi
e2b8aae554 use ENABLE_MATURE for fileTitleSection 2021-07-06 16:06:58 -04:00
zeppi
9af3380af7 use ENABLE_MATURE 2021-07-06 16:06:58 -04:00
zeppi
6b2569e5f2 use ENABLE_UI_NOTIFICATIONS 2021-07-06 16:06:58 -04:00
infinite-persistence
73e8a99c7e i18n - "LBC" to "Credit" 2021-07-06 14:53:23 -04:00
infinite-persistence
05d831b283 i18n - fiat 2021-07-06 14:53:23 -04:00
infinite-persistence
1f4746ed89 Fix RSS icon not having a gap 2021-07-06 11:21:40 -04:00
infinite-persistence
5d8e3d8b0a
Revert lazy-loading videojs
## Issue
The loading circle wasn't showing up, causing confusion.

Splitting CSS doesn't seem trivial as there seems to be a huge dependency on the load order. Pretty much similar to what this person is facing https://lihautan.com/css-code-splitting/#the-problem

## Change
This reverts videojs-specific changes from 4d638bcf.
2021-07-06 17:04:16 +08:00
infinite-persistence
d1ee904dab Fix notifications "mark all" not working on Desktop
## Issue
6343
2021-07-06 12:10:03 +08:00
jessopb
75a78cb65d
More recon (#6400)
* rm

* rm

* recon

* claimlist recon
2021-07-05 17:45:20 -04:00
zeppi
7919d30871 bump redux 2021-07-05 16:03:43 -04:00
zeppi
54b970c69c fix spinner 2021-07-05 15:15:19 -04:00
infinite-persistence
8d1d2d2cf0 RecommendedContent: prevent excessive render
## Issue
When seeking on a video, RecommendedContent gets re-rendered, which causes the 20 ClaimPreviews to be re-rendered, several times. ClaimPreview has lots of children, plus it's constantly checking against the blacklist, among other things.

## Fix
The culprit seems to be the `recommendedContent` array -- the address may be different, but the contents are the same.
Do a deep compare instead.
2021-07-05 11:03:53 -04:00
zeppi
c80b6d3f60 bump redux 2021-07-05 10:22:13 -04:00
zeppi
ac71654afb bump redux for channel mod 2021-07-05 10:22:13 -04:00
zeppi
bad050096a bump redux 2021-07-05 10:22:13 -04:00
zeppi
1772b188ff bump 2021-07-05 10:22:13 -04:00
zeppi
59f0c85aca improve pending over refreshes 2021-07-05 10:22:13 -04:00
zeppi
4f6740d1f8 flow... 2021-07-05 10:02:03 -04:00
zeppi
d34ef851d0 make flow shut up 2021-07-05 10:02:03 -04:00
zeppi
50556bba97 lint master 2021-07-05 10:02:03 -04:00
infinite-persistence
fc7edc875b
ChannelThumbnail improvements
- [x] (6332) The IntersectionObserver method of lazy-loading loads cached images visibly late on slower devices. Previously, it was also showing the "broken image" icon briefly, which we mended by placing a dummy transparent image as the initial src.
  - Reverted that ugly transparent image fix.
  - Use the browser's built-in `loading="lazy"` instead. Sorry, Safari.

- [x] Size-optimization did not take "device pixel ratio" into account.
  - When resizing an image through the CDN, we can't just take the dimensions of the tag in pixels directly -- we need to take zooming into account, otherwise the image ends up blurry.
  - Previously, we quickly disabled optimization for the channel avatar in the Channel Page because of this. Now that we know the root-cause, the change was reverted and we now go through the CDN with appropriate sizes. This also improves our Web Vital scores.

- [x] Size-optimization wasn't really implemented for all ChannelThumbnail instances.
  - The CDN-optimized size was hardcoded to the largest instance, so small images like sidebar thumbnails are still loading images that are unnecessarily larger.
  - There's a little-bit of hardcoding of values from CSS here, but I think it's a ok compromise (not something we change often). It also doesn't need to be exact -- the "device pixel ratio" calculate will ensure it's slightly larger than what we need.

- [x] Set `width` and `height` of `<img>` to improve CLS.
  - Addresses Ligthhouse complaints, although technically the shifting was addressed at the `ClaimPreviewTile` level (sub-container dimensions are well defined).
  - Notes: the values don't need to be the final CSS-adjusted sizes. It just needs to be in the right aspect ratio to help the browser pre-allocate space to avoid shifts.

- [x] Add option to disable lazy-load Channel Thumbnails
  - The guidelines mentioned that items that are already in the viewport should not enable `loading="lazy"`.
  - We have a few areas where it doesn't make sense to lazy-load (e.g. thumbnail in Header, channel selector dropdown, publish preview, etc.).
2021-07-05 16:04:10 +08:00
infinite-persistence
6615f28ae1
#6388 Front-page lazy-load fixes and improvements 2021-07-05 16:03:44 +08:00
infinite-persistence
033b03e6e4
WaitUntilOnPage: respond to window resizing or zooming. 2021-07-05 12:06:55 +08:00
infinite-persistence
bb8fb038ca
WaitUntilOnPage: add option to load when approaching viewport 2021-07-05 12:06:54 +08:00
infinite-persistence
9745d6df3e
WaitUntilOnPage: Fix scroll listener always registered + bump debounce ms
## Issue
The scroll listener never unregisters, and is always registering itself on every scroll. I believe it was done that way to also handle the case of "element is already in viewport when mounted".

## Change
Tried to separate both "element is already in viewport when mounted" and "element scrolled into viewport" into different effects.

The timeout value used is a bit arbitrary, but is needed because the initial size is (0, 0), and to debounce any layout shifts. Reasoning: If an element is explicitly placed under this wrapper, the additional delay is acceptable since it's meant to be lazy-loaded anyway.
2021-07-05 12:06:54 +08:00
zeppi
89576572f5 more stripe only on web 2021-07-03 14:42:37 -04:00
zeppi
270049316e fiat tips only on web 2021-07-03 14:42:37 -04:00
Anthony
434030e007 touchup frontend to show balance 2021-07-03 14:42:37 -04:00
zeppi
8a5230ed6a new api 2021-07-03 14:42:37 -04:00
zeppi
bec50829c1 updated code
about to test something

generate programatically

beginning of the frontend

stripe integration page seems to be working

add user

put functionality behind conditional tag

connect frontend working well

adding environment variables to save success and failure url

bugfix

bugfix

final clean up

adding credit card page

seems to be coming along

calls successfully coming from the frontend

fixing up frontend

cleaning up

frontend coming along

client secret working

basic frontend in place

adding tip page

adding more to the tip frontend

frontend almost done

tabs coming along

one last thing to do for frontend

adding explainer text as custom function

putting finishing touches on tabs

support tabs working well

disable fiat toggle when card not connected

fix frontend gui bug

bugfix and pull out label function

fix symbol for tip gui

modal when card is not yet saved

fix fiat disabled bug

knowing whether card is added programatically

sending tip with frontend

tip functionality working

show unpaid balance

add frontend for card add section

update frontend

update frontend

bugfix

change to use react instead of css

update how stripe is instantiated

fix bug

use customer setup

coming along

working but needs optimization

persist if card is saved

adding anonymous tip functionality

fix nan bug

build stripe endpoints programatically

show for all users for time being

allow the stripe key to automatically switch to live environment

bugfix

bugfix

fix jslint

fix channel page support button

better docs

show customer transactions on frontend

basic table in place

various page updates per jeremys notes

showing card details

nicer tip history table

add better prompt to add card on file viewer page

some linting

time

put connect account behind fiat enabled

no persist fiat mode

wallet calls

tip stuff
2021-07-03 14:42:37 -04:00
infinite-persistence
10c04a7991 Show comment failure reason
## Issue
6370
2021-07-03 13:07:05 -04:00
zeppi
22d9495b8d fix rss, add icon 2021-07-02 13:03:24 -04:00
infinite-persistence
5e97fdfa0d
RSS: Fix URL
Not sure why it worked in the dev instance.
2021-07-02 13:17:14 +08:00
infinite-persistence
041f420416
#6354 RSS feed for channels 2021-07-02 13:05:02 +08:00
infinite-persistence
c84d820b09
RSS: Switch from ChainQuery to SDK
## Issue
3779 RSS feed for channels
2021-07-02 13:03:22 +08:00
infinite-persistence
49046c9d25
RSS feed for channels
## Issue
3779 RSS feed for channels

## Initial implementation details
- RSS only (not atom)
- Grabs latest 10 entries (Beamer have concerns)

## Credit
Referenced the community version mentioned in 3779
2021-07-02 13:03:21 +08:00
zeppi
608a421ce5 lint 2021-07-01 16:01:51 -04:00
zeppi
9c8c00a21f fix tabindexes 2021-07-01 16:01:51 -04:00
zeppi
e9868e37a1 restore single channel content tab 2021-07-01 16:01:51 -04:00
infinite-persistence
ad202d6471
i18n 2021-07-01 17:01:58 +08:00
infinite-persistence
2e0f8c6120
Fix videojs overlay css
Related:
aaffd3b089 "CodeSplit: Load 3rd-party css before ours."
2021-07-01 15:23:42 +08:00
Dispatch
b5b0459aff
Merge pull request #6355 from lbryio/fix-video-js-imports
fix video.js import statements
2021-06-30 20:26:27 -07:00
DispatchCommit
da23a5625b fix video js imports 2021-06-30 19:12:21 -07:00
zeppi
304c0553da lint 2021-06-29 14:52:11 -04:00
John B Nelson
5e2a4960fb FIX video.js event firing issues fore RecsysPlugin
- The `rateChange` event now logs the updated speed,
   not just the    time at which it occurred.
- The `scrub` now (more) accurately logs the position
   it came from before the destination.
- The recsys events get consolidated for logical consistency.
2021-06-29 14:52:11 -04:00
DispatchCommit
8ce12f8e60 fix autoplay for transcoded files 2021-06-29 14:52:11 -04:00
infinite-persistence
5766dc34b5 Port recsys to master; enabled for SIMPLE_SITE only 2021-06-29 14:52:11 -04:00
infinite-persistence
099667a4bb Use env for loading-bar color instead of hardcoded. 2021-06-29 21:01:14 +08:00
Niko Storni
c5a63de33c use new optimizer for thumbnails CDN
this should resolve the slow load times for some thumbnails
2021-06-28 17:56:19 -04:00
Anthony
04108f32d5 fix div being stretched by comment section 2021-06-28 12:52:43 -04:00
infinite-persistence
8291cdf7a9
Wunderbar: bump debounce to 1s
per feedback
2021-06-27 11:02:52 +08:00
Anthony
312c561529 update comment 2021-06-26 22:26:40 -04:00
Anthony
ab13b23cef dont display cc button via videojs settings 2021-06-26 22:26:40 -04:00
zeppi
d921bf3340 v0.51.1 2021-06-26 12:05:04 -04:00
zeppi
f3c31f55a1 changelog 2021-06-26 12:04:37 -04:00
zeppi
aa8366f21c enable sign up in desktop 2021-06-26 11:56:32 -04:00
zeppi
11fc51467c v0.51.0 2021-06-26 09:51:46 -04:00
zeppi
8e6c98ca5d revert v0.51.0 2021-06-26 09:50:50 -04:00
zeppi
c71a0f78f4 v0.51.0 2021-06-26 08:55:52 -04:00
zeppi
90918e745e changelist updates 2021-06-26 08:51:19 -04:00
zeppi
4d19106544 v0.51.0-rc.3 2021-06-25 16:39:20 -04:00
zeppi
5ee4827fae bump lbrynet 2021-06-25 16:33:20 -04:00
zeppi
eed4793799 fix null claim on reactions selector 2021-06-25 16:29:58 -04:00
zeppi
b17acc0028 v0.51.0-rc.2 2021-06-25 14:40:42 -04:00
infinite-persistence
a6b2f91e33
Fix popup menu for both playback rate and quality selector. 2021-06-26 01:11:38 +08:00
infinite-persistence
e367b66a08
Fix stuck video poster when switching videos
## Issue
With autoplay off, clicking on another video from the Recommended section didn't update the video poster.

## Fix
Made a mistake assuming that the whole component will be re-mounted, so was only setting the thumbnail once.
2021-06-26 01:05:23 +08:00
zeppi
c44beaf8fa remove bad new button 2021-06-25 11:40:37 -04:00
infinite-persistence
4d638bcf10
~ Initial Code Split (#6228) 2021-06-25 16:02:45 +08:00
infinite-persistence
3322b91c5d
Improve <video> poster thumbnail fetching.
Even with the caching changes, a 150kB thumbnail still takes 1-2s to fetch. This impacts the score.

## Change
(1) Start with a large-enough placeholder image (has to be larger than the final image -- inflating doesn't count), then delay just enough for scoring, then switch to the real thumbnail.

(2) Since we are now doing post-mount stuff, we have the exact dimensions to optimize the claim thumbnail. This reduces the typically-several-MBs thumbnail to kBs.
2021-06-25 16:00:47 +08:00
infinite-persistence
4562a33926
Lazy-load homepage categories 2021-06-25 16:00:46 +08:00
infinite-persistence
163a10602c
CodeSplit: Show top loading bar while fetching
TODO: Get the primary color programatically
2021-06-25 16:00:46 +08:00
infinite-persistence
aaffd3b089
CodeSplit: Load 3rd-party css before ours.
A temporary solution until we code-split css.
2021-06-25 16:00:45 +08:00
infinite-persistence
60afbaf873
CodeSplit: Consolidate "secondary" chunk.
These are chunks that will be requested immediately after ui.js when opening the homepage, so consolidate them into 1 chunk to reduce network overhead.

More work can/should be done to reduce the secondary chunk.
2021-06-25 16:00:44 +08:00
infinite-persistence
3539031e5a
CodeSplit: Initial work 2021-06-25 16:00:44 +08:00
infinite-persistence
73e84b58e7
Add: source-map-analyze 2021-06-25 09:25:28 +08:00
infinite-persistence
5a467af1f0
i18n 2021-06-25 09:19:17 +08:00
dependabot[bot]
1785520697 Bump color-string from 1.5.3 to 1.5.5
Bumps [color-string](https://github.com/Qix-/color-string) from 1.5.3 to 1.5.5.
- [Release notes](https://github.com/Qix-/color-string/releases)
- [Changelog](https://github.com/Qix-/color-string/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Qix-/color-string/commits/1.5.5)

---
updated-dependencies:
- dependency-name: color-string
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-24 09:39:55 -04:00
saltrafael
2bfc5d7669 Don't allow editing someone else's Channel 2021-06-23 15:21:49 -04:00
saltrafael
852819dd00 Add back re-direct 2021-06-23 15:21:49 -04:00
saltrafael
360f64e71f Fix repost deletion 2021-06-23 15:21:49 -04:00
saltrafael
97762fdd24 Center livestream 2021-06-23 14:19:50 -04:00
infinite-persistence
aa8b26b5ca Wunderbar: immediate feedback to convey status
Make immediate GUI feedback to convey the current status, which can be the following:
- typing
- waiting lighthouse results
- waiting claim resolve
- no results or failed.
2021-06-23 14:15:59 -04:00
infinite-persistence
36ac9e038d Wunderbar: change throttle to debounce + add min chars
## Issue
6314: prevent lighthouse spam from wunderbar

## Changes
- Wunderbar: change throttle to debounce + add min chars.
- useLighthouse: added option to not throttle.
2021-06-23 14:15:59 -04:00
infinite-persistence
2ba3f05725 FileThumbnail: don't go through optimizer if GIF
## Issue
6301: don't use CDN for GIF thumbnails

## Note
Just a minor mistake in the recent thumbnail refactoring; left out the handling when `allowGif` is true.
2021-06-23 14:15:37 -04:00
zeppi
6d8fce6011 remove more google 2021-06-23 08:54:19 -04:00
zeppi
1b528ea856 remove google sidebar ads 2021-06-23 08:54:19 -04:00
saltrafael
0532e759d4 Fix preview link background 2021-06-22 18:47:25 -04:00
infinite-persistence
f4d327f1f4 Set 'activeChannel' before entering Dashboard
## Issue
6237: Analytics button from Channels page doesn't open analytics to right channel
2021-06-22 18:32:05 -04:00
zeppi
16cfe1c815 remove junk 2021-06-22 14:18:31 -04:00
DispatchCommit
d83856c6cf define magic numbers as constants 2021-06-22 07:42:52 -07:00
Dispatch
f6176f048d
Merge pull request #6268 from saltrafael/scrollback
Button to scroll to recent live chats (scroll to bottom)
2021-06-22 07:29:21 -07:00
Dispatch
153185ecc5
Merge pull request #6306 from kcseb/patch-2
Remove kiyui as maintainer for AUR package
2021-06-22 07:15:33 -07:00
infinite-persistence
a2adddc2b8 i18n mistake
Don't put context info in values; only in keys. It was appearing in Transifex. Oops
2021-06-22 11:03:59 +08:00
Kenneth C
7631ecb890
Remove kiyui as maintainer for AUR package
Kiyui has made it evident that they're no longer on Arch and outright removed themselves as a maintainer for the AUR package.
See: https://aur.archlinux.org/packages/lbry-app-bin#comment-813900
2021-06-21 23:01:53 -04:00
zeppi
d07dded5a7 v0.51.0-rc.1 2021-06-21 13:26:16 -04:00
zeppi
21cc2bc281 v0.50.3-rc.2 2021-06-21 12:56:53 -04:00
zeppi
2273b69658 add signing deps 2021-06-21 12:54:34 -04:00
zeppi
6b32e9785d Revert "v0.50.3-rc.2"
This reverts commit 3a0ac6335d.
2021-06-21 12:52:44 -04:00
zeppi
7bc47dc786 Revert "v0.50.3-rc.3"
This reverts commit 29a1d89fa5.
2021-06-21 12:52:44 -04:00
Alex Grin
1768b4fde7
Merge pull request #6289 from lbryio/chl
changelog
2021-06-21 11:03:52 -04:00
saltrafael
2fcc57dbba lint 2021-06-21 11:06:16 -03:00
saltrafael
52f15df5a3 Only show when not at most recent comment 2021-06-21 10:51:07 -03:00
zeppi
792dbaba5c changelist error 2021-06-21 08:27:02 -04:00
infinite-persistence
7d9fe35d18 i18n 2021-06-21 18:21:18 +08:00
infinite-persistence
f6b1c58b03
changelog 2021-06-20 15:49:53 +08:00
zeppi
767c3aa801 changelog 2021-06-19 17:49:00 -04:00
infinite-persistence
244f5ecaa4 Fix videos not switching when floating player is up
## Issue
6278 Video doesn't switch when floating player is up

## Notes
Not sure why the double `src` call is needed, but it is.
2021-06-19 11:23:29 -04:00
infinite-persistence
3db845b9bf
Allow creators to assign moderators from a comment context-menu. 2021-06-19 18:00:02 +08:00
infinite-persistence
9f9d0a651b Moderation: resolve chan name or URL instead of using Lighthouse.
While Lighthouse allows looser searching like "Tom from LBRY", it doesn't show the expected results when direct channel name with partial ID is entered to disambiguate.
2021-06-19 17:11:45 +08:00
infinite-persistence
f02dcb7fe7 No need to resolve as the uri should have all we need 2021-06-19 10:44:28 +08:00
zeppi
29a1d89fa5 v0.50.3-rc.3 2021-06-18 19:11:49 -04:00
zeppi
98593a15f6 Merge branch 'master' of github.com:lbryio/lbry-desktop 2021-06-18 19:08:19 -04:00
zeppi
13c2c8a9ab small i18n fixes 2021-06-18 19:08:08 -04:00
zeppi
3a0ac6335d v0.50.3-rc.2 2021-06-18 18:01:19 -04:00
infinite-persistence
fbcb740dc9 Move 'Download' and 'Report Content' into overflow menu.
## Issue
6236 Add context menu to file page

## Notes
The download button actually handles a lot of things -- generating 'streamingUrl', differences between Web and Desktop, download progress for Desktop, etc.  A simpler fix would be to put something else (maybe "Share") into the overflow menu instead.

Anyway, went ahead to do it per 6236, but retained the item for Desktop since we need a progress label.
2021-06-18 15:50:13 -04:00
infinite-persistence
337cfd8769 Moderator Delegation GUI 2021-06-18 15:46:51 -04:00
infinite-persistence
60780db94b Fetch "am I" list at startup.
This is the list of channels that authorized me as a moderator.

Similar to `moderation.BlockList`, this will only be fetched at startup/reload for now. I don't think there is a need to constantly monitor this. Users just need to refresh to see the moderator GUI elements after the delegator has granted them access.
2021-06-18 15:46:51 -04:00
infinite-persistence
b4b45ffbdc Commentron Moderation Delegation API 2021-06-18 15:46:51 -04:00
infinite-persistence
510056a479 WunderBar customizations for re-use 2021-06-18 15:46:51 -04:00
infinite-persistence
d36c8748e3 Add button to re-fetch Mod Blocklist
... otherwise, a full F5 reload is needed.
2021-06-18 15:46:51 -04:00
infinite-persistence
d6ac2c7954 Comments: enable 'enable_comments' flag
## Issue
Closes 6159 "Support Comments Enabled/Disabled for comment.List API"

## New behavior
- `disable-comments` tag will block the comments component entirely.
- `settings.commentsEnabled`:
  - When false, will pause comment fetching, posting and replying.
  - Any already-fetched comments will stay on screen (unless user reloads/F5).
2021-06-18 15:46:51 -04:00
zeppi
95fa01a952 youpos 2021-06-18 10:57:19 -04:00
zeppi
42a9024ab8 youpos 2021-06-18 10:57:19 -04:00
zeppi
1a30cb6586 clean 2021-06-18 10:57:19 -04:00
zeppi
d0b6839755 copy 2021-06-18 10:57:19 -04:00
zeppi
2268ab01fb app works when id api fails 2021-06-18 10:57:19 -04:00
infinite-persistence
701ec0a473 Fix remaining "Collection" strings to "List" 2021-06-18 22:31:10 +08:00
saltrafael
aea22d10ee Button to scroll to recent live chats (scroll to bottom) 2021-06-18 10:40:52 -03:00
zeppi
03e921e6df use commentron for live view counts 2021-06-17 14:58:55 -04:00
zeppi
eb0992879c sidebar channels no staked 2021-06-17 10:44:10 -04:00
Marios Vladimerou
6cec8303b9 adjust channel staked indicator in side navigation 2021-06-17 10:28:16 -04:00
Marios Vladimerou
d8b40931f3 Show channel thumbnails in side menu 2021-06-17 10:28:16 -04:00
infinite-persistence
72a4ed107b i18n and various minor fixes 2021-06-17 17:05:24 +08:00
zeppi
60130ec91e gah 2021-06-16 16:03:08 -04:00
zeppi
0d41ba59b3 forbid playlist embed in share 2021-06-16 16:03:08 -04:00
zeppi
6f2ef41230 fix popup 2021-06-16 13:08:30 -04:00
zeppi
8fa55082d5 remove sub heart on collections 2021-06-16 13:01:30 -04:00
zeppi
932a202573 lists help copy 2021-06-16 13:01:02 -04:00
zeppi
3d83354533 fix simplesite crash 2021-06-16 12:56:44 -04:00
zeppi
ba5586933d fix lists empty on channel page 2021-06-16 12:56:31 -04:00
Thomas Zarebczan
7a852462f9
copy for lists feature 2021-06-16 11:19:41 -04:00
zeppi
ff5c28a70f lists for all 2021-06-15 18:37:35 -04:00
zeppi
179f16470b fix menu separators 2021-06-15 18:37:35 -04:00
zeppi
7457eebd88 clarify incognito claim 2021-06-15 18:37:35 -04:00
zeppi
ce6ae9402b lists help copy 2021-06-15 18:37:35 -04:00
zeppi
761974ca6f extra collection publish buttons, styling 2021-06-15 18:37:35 -04:00
saltrafael
c92bcc945f remove analytics 2021-06-15 13:47:56 -04:00
saltrafael
32d2ac2fc9 better handle reposts 2021-06-15 13:47:56 -04:00
saltrafael
6629ea6041 final code touches 2021-06-15 13:47:56 -04:00
saltrafael
d553c1170e fix showcase for list items 2021-06-15 13:47:56 -04:00
saltrafael
3aa7c754aa lint 2021-06-15 13:47:56 -04:00
saltrafael
055811957b allow delete repost, small block fix, lint 2021-06-15 13:47:56 -04:00
saltrafael
3cd2548206 delete repost 2021-06-15 13:47:56 -04:00
saltrafael
4ef8247985 remove redundancy when buttons are already on page 2021-06-15 13:47:56 -04:00
saltrafael
3a6bddc588 fix multiple channels analytics bug 2021-06-15 13:47:56 -04:00
saltrafael
32d624b807 allow unblock/mute own 2021-06-15 13:47:56 -04:00
saltrafael
2aaa9f358b Additional pop up menu options 2021-06-15 13:47:56 -04:00
infinite-persistence
524370711c
WaitUntilOnPage: Reduce debounce ms; remove unused hack
(1) Reduced the debouncing duration so that the final element can be rendered asap after visible.
  - If the user is scrolling non-stop, it would continue to debounce and the GUI ends up not showing the final element.
  - 25ms seems enough to prevent the initial false-positive that occurs in the scenario of "adjacent/upper elements resized late, so our element was briefly on screen when mounted". If not enough, we can make this a parameter.

(2) Removed `lastUpdateDate` that was a quick hack for Recommended section. We don't use it on that element anymore, so remove the hack to keep the file clean.
2021-06-15 16:28:11 +08:00
infinite-persistence
df2c274216
WaitUntilOnPage: handle large items; add optional placeholder element.
(1) The previous code assumed the element is always smaller than the screen. When used on large items like "homepage categories", it'll never load because the element exceeds the screen width or height.

(2) Added optional placeholder element. This allows us to put a cheaper element while waiting, so that the layout doesn't shift when we finally render. This is visually better when scrolling, and complies with Web Vitals.
2021-06-15 16:28:10 +08:00
saltrafael
143be541cf bump redux 2021-06-14 14:53:14 -04:00
saltrafael
79fb020fc8 Don't reset content language on edit 2021-06-14 14:53:14 -04:00
zeppi
f91940a8b3 remove stuff 2021-06-14 11:55:50 -04:00
zeppi
fca900fb9d default top to all-time on channel content 2021-06-14 11:55:50 -04:00
zeppi
f149410902 thumbnail fix 2021-06-14 11:55:50 -04:00
zeppi
99f41ae53f list add scrollbar only when needed 2021-06-14 11:55:50 -04:00
zeppi
e40aa84a40 fix canonical redirect 2021-06-14 11:55:50 -04:00
zeppi
5680b19dc8 add lists modal stuff 2021-06-14 11:55:50 -04:00
infinite-persistence
cbf0be3f3c
i18n update request from translators 2021-06-13 15:46:18 +08:00
infinite-persistence
c2ff765a60 Revert "Don't reset content language on edit"
This reverts commit 09aceb6295.
2021-06-13 15:45:15 +08:00
infinite-persistence
9eb0d2a87e Revert "bump redux"
This reverts commit 141ebcf1cd.
2021-06-13 15:45:15 +08:00
saltrafael
7483429ee6 Handle comment + tip failure, don't re-support 2021-06-11 17:14:17 -04:00
saltrafael
141ebcf1cd bump redux 2021-06-11 17:01:20 -04:00
saltrafael
09aceb6295 Don't reset content language on edit 2021-06-11 17:01:20 -04:00
zeppi
eff948f786 toms fix for player timeout bug 2021-06-11 13:40:01 -04:00
zeppi
e8d352cc4c fix channel tabs again 2021-06-11 07:49:27 -04:00
Thomas Zarebczan
6f523fe0d8 bump redux 2021-06-10 17:47:02 -04:00
zeppi
d55ef7e899 Empty states for channel tabs 2021-06-10 17:47:02 -04:00
zeppi
501d1cf5f1 include tabs fix from ody 2021-06-10 17:47:02 -04:00
zeppi
8ee5f06bfd bump 2021-06-10 17:47:02 -04:00
zeppi
d5f199be66 enable clear edits 2021-06-10 17:47:02 -04:00
zeppi
f258de54b0 fix list order down 2021-06-10 17:47:02 -04:00
zeppi
9b7c8fd642 sharing with lId, fix autoplay bump, 2021-06-10 17:47:02 -04:00
zeppi
78ce17844b limit lists page display count and improve empty state 2021-06-10 17:47:02 -04:00
Anthony
fd03679c56 use standalone as the display instead of minimal-ui 2021-06-10 17:10:03 -04:00
infinite-persistence
3a58ca1954 Fix notification color.
## Issue
Closes: 6196 Bright Theme is Broken

## Notes
I was trying to fix the problem of the border not visible in Desktop Dark because the highlight color was the same as the border color.  The approach didn't take Light and Odysee into account ... oops.

Round 2.
2021-06-10 10:21:50 -04:00
infinite-persistence
47539edcab Fix lint (removal of videoFetchDuration) 2021-06-10 10:14:52 -04:00
infinite-persistence
617ab25f6e Fix Reddit-share tooltip + i18n update 2021-06-10 07:59:58 +08:00
zeppi
812289ac3c bump 2021-06-09 10:58:00 -04:00
dependabot[bot]
8f423c5ffb Bump ws from 6.2.1 to 6.2.2 in /web
Bumps [ws](https://github.com/websockets/ws) from 6.2.1 to 6.2.2.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/commits)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-08 14:04:11 -04:00
dependabot[bot]
b82095a341 Bump ws from 6.2.1 to 6.2.2
Bumps [ws](https://github.com/websockets/ws) from 6.2.1 to 6.2.2.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/commits)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-08 14:03:40 -04:00
zeppi
eb7d4e1eef lint 2021-06-08 13:46:01 -04:00
zeppi
a0c2f8fa40 move pwa to web static, change desc 2021-06-08 13:46:01 -04:00
Anthony
7eeb3d3c55 check against domain to see if pwa manifest should be added 2021-06-08 13:44:08 -04:00
Andrey Beletsky
27abc1e9d3 Remove erroneous multiplication of time to start by 1000 2021-06-08 13:42:40 -04:00
Andrey Beletsky
09cfee2fa1 Remove time to fetch metric 2021-06-08 13:42:40 -04:00
zeppi
50dd986787 no flow for you 2021-06-08 13:25:52 -04:00
zeppi
ca116ba010 wip
wip

wip - everything but publish, autoplay, and styling

collection publishing

add channel to collection publish

cleanup

wip

bump

clear mass add after success

move collection item management controls

redirect replace to published collection id

bump

playlist selector on create

bump

use new collection add ui element

bump

wip

gitignore

add content json

wip

bump

context add to playlist

basic collections page style pass wip

wip: edits, buttons, styles...

change fileAuthor to claimAuthor

update, pending bugfixes, delete modal progress, collection header, other bugfixes

bump

cleaning

show page bugfix

builtin collection headers

no playlists, no grid title

wip

style tweaks

use normal looking claim previews for collection tiles

add collection changes

style library previews

collection menulist for delete/view on library

delete modal works for unpublished

rearrange collection publish tabs

clean up collection publishing and items

show on odysee

begin collectoin edit header and css renaming

better thumbnails

bump

fix collection publish redirect

view collection in menu does something

copy and thumbs

list previews, pending, context menus, list page

enter to add collection, lists page empty state

playable lists only, delete feature, bump

put fileListDownloaded back

better collection titles

improve collection claim details

fix horiz more icon

fix up channel page

style, copy, bump

refactor preview overlay properties,
fix reposts showing as floppydisk
add watch later toast,
small overlay properties on wunderbar results,
fix collection actions buttons

bump

cleanup

cleaning, refactoring

bump

preview thumb styling, cleanup

support discover page lists search

sync, bump

bump, fix sync more

enforce builtin order for now

new lists page empty state

try to indicate unpublished edits in lists

bump

fix autoplay and linting

consts, fix autoplay

bugs

fixes

cleanup

fix, bump

lists experimental ui, fixes

refactor listIndex out

hack in collection fallback thumb

bump
2021-06-08 13:25:52 -04:00
infinite-persistence
46d258c439
Fix footer in master (patch)
- fix invalid <li> nesting
2021-06-08 12:48:15 +08:00
infinite-persistence
5eae88b553
Fix footer in master
Since lbry.tv is going away, I tried not to touch the css file much so that the merge into `odysee` won't affect it. The side effect is that the links are now white instead of the regular link color.
2021-06-08 01:19:41 +08:00
infinite-persistence
05a1f3cdab
More theme color fixes
## Issue
#5998 Theme color problems
2021-06-07 11:36:38 +08:00
infinite-persistence
3abaed0f17
Sort all language dropdowns, not just in the Settings Page. 2021-06-07 10:15:07 +08:00
infinite-persistence
bd8172693c Re-enable "file download" in Odysee
## Issue
Closes 6167 Make downloading more intuitive / obvious in web mode
2021-06-07 09:18:08 +08:00
infinite-persistence
fae90c4ba1
i18n update
- Screen readers will announce an <img> tag as that, so no need to say "image" again in the `alt` text.
2021-06-07 09:15:55 +08:00
infinite-persistence
f1bf067ebd Combine Buy and Swap
## Issue
5873 Unify swap and buy flow // swaps round 2

## Changes
- Added "Buy|Swap" tab in the Buy Page and display the Swap component when needed.
- Removed 'Swap' button from Wallet Page.
- "Buy More" and related tooltips updated to "Buy or Swap Credits".
2021-06-05 10:07:38 +08:00
Anthony
272eb90392 remove native controls for ios 2021-06-04 15:41:42 -04:00
Anthony
eef218a807 use video js viewer for ios and add playsinline 2021-06-04 15:41:42 -04:00
Anthony
72130b19d2 remove js clearing function until further testing 2021-06-04 12:05:23 -04:00
Anthony
32772c679b fix eslint and change theme colour 2021-06-04 12:05:23 -04:00
Anthony
78f2307982 bugfix renaming of function 2021-06-04 12:05:23 -04:00
Anthony
42c319702a conditionally add metatags only if site title is odysee 2021-06-04 12:05:23 -04:00
Anthony
304bb3a999 add fetch script to same file 2021-06-04 12:05:23 -04:00
Anthony
9798bf14f4 update icon and move serviceworker to root to fix scope 2021-06-04 12:05:23 -04:00
Anthony
ab83357fd0 add ios icons and update manifest 2021-06-04 12:05:23 -04:00
Anthony
f0cd159235 cache static files for webserver 2021-06-04 12:05:23 -04:00
Anthony
78d4efd8f3 clean dist folder when compiling 2021-06-04 12:05:23 -04:00
Anthony
2e5cfe7a1e add pwa to lbry-desktop 2021-06-04 12:05:23 -04:00
Thomas Zarebczan
b8c5a0ed29
Add support for reward approval prompt 2021-06-03 14:54:06 -04:00
zeppi
3ce551f106 copy 2021-06-03 12:08:46 -04:00
zeppi
28a3db28b7 use tag to disable interactions on livestreams 2021-06-03 12:08:46 -04:00
saltrafael
213c336192 fix multi line links 2021-06-03 10:56:28 -04:00
zeppi
f386352be3 fix lint 2021-06-02 22:42:50 -04:00
Jeremy Kauffman
22447aa20a
shorter text on sign up 2021-06-02 13:42:30 -04:00
Jeremy Kauffman
417f0a853b
eliminate text wrapping on sign in 2021-06-02 13:41:06 -04:00
infinite-persistence
a613f28bc8 Login graphic improvements
1. Lock the width of the second pane so that the layout doesn't shift after the image is fetched.
2. The image is huge, so pass through the optimizer.
  - Wait until the container is mounted to get the exact image width.

Unfortunately, it still takes 0.8s on average to fetch the image, regardless of how small the image has been optimized.
Login graphic improvements

1. Lock the width of the second pane so that the layout doesn't shift after the image is fetched.
2. The image is huge, so pass through the optimizer.
  - Wait until the container is mounted to get the exact image width.

Unfortunately, it still takes 1s (on average) to fetch the image, regardless of how small the image has been optimized.
2021-06-02 08:24:35 +08:00
infinite-persistence
eb4e80d56b Re-sync 'web/package.json' with the main one.
Not sure if it's possible to just inherit the main one if there is no customization, but for now, just copy/paste.
2021-06-02 08:21:43 +08:00
infinite-persistence
15015dacd7 Performance: don't spread in 'reduce' 2021-06-02 08:21:43 +08:00
infinite-persistence
dec38e1770 ChannelThumbnail: use 1x1 transparent image as starting point instead of 'undefined'.
## Issue
6135

While waiting for the lazy-loader IntersectionObserver to initialize, and for the real image to be fetched, an undefined `src` results in the "broken image" thumbnail.

## Fix
Use a transparent image as the starting point. This visually retains the current behavior but minus the "broken image" part.
2021-06-02 08:20:37 +08:00
Thomas Zarebczan
b90066b3f5
Update finance 2021-06-01 15:51:54 -04:00
infinite-persistence
8da7ddf6e6 Parallelize 'channel_sign' calls.
## Issue
If the account has lots of channels, each channel name was sequentially signed, delaying the final action.
2021-06-01 13:39:53 -04:00
infinite-persistence
eba8de1cda i18n update 2021-06-01 13:33:58 -04:00
infinite-persistence
315bbe21b1 Open the sidebar by default
## Issue
Closes "6112 Side menu expanded by default unless collapsed by user"
2021-06-01 11:16:08 -04:00
infinite-persistence
d6d1cf58e9 Fix SidebarNavigation key errors 2021-06-01 11:15:30 -04:00
infinite-persistence
27a9f654d4 Bump up notification content width to show more text
## Issue
Closes "6056 Extend notificaiton text to show more characters"

## Notes
Looking at the code and comments, I couldn't figure out what was the reason for adding the width constraint (just in case this breaks something).

My guesses:
- Try not to make the rhs thumbnail too far apart from the lhs thumbnail.
- Try not to make the rhs thumbnail misaligned due to dynamic width of the "xx days ago" string on the far right.

## Changes:
Extended the width as much as possible, while retaining some gap before the "xx days ago" string and "unread dot" so that thumbnails stay align in the general case.

The components still reflows nicely (as it did previously) per window-size.
2021-06-01 11:15:04 -04:00
Thomas Zarebczan
fd2f664870
last fix for metadata 2021-05-27 17:50:02 -04:00
Thomas Zarebczan
97a4f5fcab
Fix metadata and make thumbs work 2021-05-27 17:00:19 -04:00
infinite-persistence
6043b6101b ClaimTilesDiscover: pause visual update until new results are fetched
## Issue
GUI fix for 5979 `claim search runs twice sometimes and "refreshes" view`

The search query might encounter minor alterations after rendered (e.g. for the case of 5979, the `moderation.Blocklist` data came late). The code currently resets the result to 0 before initiating `claim_search`, so we see the GUI blink.

## Idea
There is a possibility that the query-change does not alter the final results in the end. Instead of reseting to the results to zero, hold on to the previous results until the fetch is done.

## Known issue
The tiles no longer blink if there is no change, but the "LIVE" indicator still does. I didn't want to propagate the info too deep, so leaving as is for now. It can be considered a feature ("blinking LIVE indicator" :))

## Results
- No blinking if results stay the same.
- Minimal tile-shifting if new ones are added or removed.
- In the current Odysee homepage, reduced React commits from 88 to 76 (save some CPU cycles).
2021-05-27 13:50:59 -04:00
dependabot[bot]
67296716d7 Bump dns-packet from 1.3.1 to 1.3.4 in /web
Bumps [dns-packet](https://github.com/mafintosh/dns-packet) from 1.3.1 to 1.3.4.
- [Release notes](https://github.com/mafintosh/dns-packet/releases)
- [Changelog](https://github.com/mafintosh/dns-packet/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mafintosh/dns-packet/compare/v1.3.1...v1.3.4)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-27 13:20:14 -04:00
Thomas Zarebczan
4694cadef6
Update category metadata 2021-05-27 13:18:23 -04:00
zeppi
a6e76bab31 fix: ignore flow linter promise allsettled 2021-05-27 12:17:23 -04:00
infinite-persistence
1b3fec0452 Add sign-in graphics for SIMPLE_SITE
Homepages repo: `Issue 64 - Add new graphics to odysee sign in`
2021-05-27 14:21:16 +08:00
saltrafael
19055784ff fix recipient address mobile view 2021-05-27 00:54:42 -04:00
infinite-persistence
f8e1274c38 Fix broken Comments API due to surfacing of error
## Issue
The "Muted Words" PR elevated Comment-API errors so we can handle it (previously, it goes unnoticed). This broke the other Comment functions because the spammer mitigation might return an error, causing `Promise.all` to bail early.

## Fix
Changed to `Promise.allSettled` and reconstructed the results. This will make it equivalent to the code prior to the "Muted Words" PR.
2021-05-27 00:54:12 -04:00
infinite-persistence
06c6018047 Creator Settings now require a minimum staked LBC. 2021-05-26 15:38:29 -04:00
infinite-persistence
112947adc6 Hide Creator Settings that are not ready 2021-05-26 15:38:29 -04:00
infinite-persistence
82aaf361f1 Hide "control tags" except when creating/editing claims.
## Changes:
1) TagSearch: hide the "control tags" in the Creator Settings page (irrelevant).
2) TagSearch: show the "control tags" when creating/editing Channel (let's use `setting.CommentsEnabled` instead).
3) TagSearch: show the "control tags" when creating/editing Content (`disable-comments` can be used to block comments at the per-claim level, e.g. allow comments in general but block only for specific claims).

## Missing pieces:
For (2) and (3), some work is needed to hide the comment GUI when `setting.CommentsEnabled` is disabled for a particular channel. That flag is not ready in Commentron yet, so I'm not sure how this will be done at the moment. In other words, the checkbox does nothing at the moment.

## Potential flaw:
This change will hide all control tags. If we have more tags in the future and would like to selectively disable some, we'll have to change this parameter to an array instead. Since the usage is not widespread at the moment, a single `disableControlFlag` seems cleaner (don't over-think it yet).
2021-05-26 15:38:29 -04:00
infinite-persistence
8050fa24b2 Relay and beautify 'blocked words' error message 2021-05-26 15:38:29 -04:00
infinite-persistence
2b70ad667b Add/implement SettingsCreatorPage 2021-05-26 15:38:29 -04:00
infinite-persistence
54b17ee739 Commentron Settings API 2021-05-26 15:38:29 -04:00
infinite-persistence
3b1397badc fetchCommentsApi: Relay error messages to the client's 'catch' block. 2021-05-26 15:38:29 -04:00
infinite-persistence
b2c2096da5 TagsSearch: tweaks to allow re-use beyond tags
- Allow 'followed' and 'unfollowed' list to be overridden via props.
- Allow labels to be overridden via props.
- Add ability to disable "Suggestions"
2021-05-26 15:38:29 -04:00
infinite-persistence
1008724761 Fix lint 2021-05-26 15:38:29 -04:00
dependabot[bot]
5dc700e3e2
Bump browserslist from 4.16.1 to 4.16.6 (#6118)
Bumps [browserslist](https://github.com/browserslist/browserslist) from 4.16.1 to 4.16.6.
- [Release notes](https://github.com/browserslist/browserslist/releases)
- [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md)
- [Commits](https://github.com/browserslist/browserslist/compare/4.16.1...4.16.6)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-25 14:11:22 -04:00
infinite-persistence
cded632fd2
DateTime: avoid unnecessary update (#6110)
## Issue
Part of `5834 Performance investigation`

In a homepage with 120 tiles, the lists get rendered 3 times during initial update. The sub-components are updating recursively (will investigate), so instead of 120 DateTime renders, we have 1000+ renders.

The resolved DateTime string for `timeAgo` rarely changes, and even if the string was "a few seconds ago", there's no real need to constantly update it.

## Change
Require a minimum 1-minute delta when deciding whether the component should update. Clients can change this value as needed.

## Test
- [x] Verified `shouldComponentUpdate` doesn't end up taking more time than not having it (it's in micro-second range, compared to the millisecond render).
- [x] Profiler showed no significant improvement for low number of DateTime components, but for the 120 DateTime case, almost 1/4 of a second is saved.
2021-05-24 18:29:58 -04:00
infinite-persistence
9e13596104 Fix 5932 "no way to buy Paid Images or Posts"
- FileRenderInitiator: we don't display if it's not Audio or Video ("playables"). But only do that if it's free or was purchased, otherwise there's no button to buy it.

- FileRenderInline: if the user have not purchased it, don't show anything (not even the spinner).
2021-05-24 11:07:13 -04:00
infinite-persistence
b101cb304f Auto fetch paid-content if already paid.
Seems odd to force users to manually "play" purchased files.
2021-05-24 11:07:13 -04:00
Thomas Zarebczan
b4da616176
Fetch last 75 comments for livestreams
We only show 75 anyway...
2021-05-21 15:48:43 -04:00
infinite-persistence
09d8b38073
Markdown editor tweaks (#6096)
* Markdown: make '>Quote' look less like a banner

Quotes should be subtle as it is primarily intended for redundant content, but currently it looks more like a banner that brings lots of focus.

This change is also background-independent. Currently, the Quotes in Posts doesn't look like it has a background color, because it happened to be the same as the Post's background. This makes it inconsistent with Quotes in Comments. Let's just always make it blend in + grayish text.

* Markdown: inline code tweak

- better symmetry
- less spacing to the left and right, since it's common to already have a space in the sentence (even if it doesn't, like in CJK, the new spacing looks sufficient).

* 4481: Use regular font in Markdown Editor

I think we should not use Monospace fonts for the Markdown Editor since we are not coding.

Similar to Github, code-blocks and inline-code only gets converted to monospace in the Preview.
2021-05-20 15:31:14 -04:00
saltrafael
2852138c3a
allow sending directly to a channel or content address (#5990)
* allow sending directly to a channel or content address
2021-05-20 15:30:40 -04:00
infinite-persistence
200dc66763
Fix "Buy More" button touching the presets (#6094) 2021-05-20 15:20:13 -04:00
infinite-persistence
c8659cc44b
More theme color fixes (#6095)
## Issue
- Closes 5998 Theme color problems
  - "_Seeing the theme go blue when a modal pops up. There's a change in color on Odysee branch also when this happens (but not as apparent)_"

##
1. Fix overlay background color back to gray theme.
2. Also, fixed the Active Toggle Button back to primary colors.
3. Fix hard-to-read "videojs time tooltip". Using the primary colors is a nice touch, but people have complained in Discord that it's too dim given it's transparent background. Just use 'white' instead. Don't use '--color-white' since that's a bit dimmed down.
4. Fix odd highlight in the volume slider (the bright primary color was used in the background).
2021-05-20 15:20:01 -04:00
infinite-persistence
81acb5d895
i18n update (#6090) 2021-05-19 12:09:25 -04:00
infinite-persistence
9c28bc9a83
Theme color fixes (master) (#6088)
* Fix error text color for dark mode.

Don't alter --color-danger since that color works fine as a backdrop for the Toast Message.

* Remove duplicates

* Fix typo

* Fix primary/secondary button and notice_message

* Fix dimmed checkbox

* #6006 Switch from 'coolGray' to 'gray'

* Fix invisible nag (missing --color-orange)
2021-05-19 11:57:33 -04:00
infinite-persistence
2dac41e5e5
Mute video when autoplay is blocked by browser policy (#6087)
## Issue
When opening a video directly in Chrome Incognito, the video should autoplay (since that's the default Lbry setting), but it doesn't due to browser policy
https://developers.google.com/web/updates/2017/09/autoplay-policy-changes

## Changes
- We don't want to forcefully mute the video when `autoplay=true`; we just want to do it when the browser policy is applied.
- Fortunately, there is already an existing code-block for us to check that.

## Test cases
- [x] "Autoplay=Off" should not be affected.
- [x] After manually unmuting, the next autoplayed video should not be muted (this is "user interacted" opening, so the policy allows autoplay)
- [x] If manually muting, the next autoplayed video should retain user's last setting.

## Known issues
- I've seen `error` occasionally being undefined in the `catch` block. In those cases, the solution doesn't work. We could remove `if (player.autoplay() && !player.muted())` and simply just try muting it, but for now it's better to ensure `NotAllowedError` is due to unmuted first before applying the fix.
- This doesn't work for Firefox as there is an explicit "Allow Autoplay" button in the address bar that user needs to click themselves. Applies to all sites.
2021-05-19 11:56:54 -04:00
infinite-persistence
df03cf1032
Skip thumbnail fetch if autoplay is ON (#6084)
It's useful to show the thumbnail as the player's backdrop when Video Autoplay is OFF, but it's a wasted fetch when it's ON because the videojs component will be blocking it.

Although it's the same image as the ClaimPreview, this one will be in full size, so a fetch will always happen.

Aside: videojs handles the backdrop for the audio and embed case, so this change won't affect those items.
```
  <VideoJs
    poster={isAudio || (embedded && !autoplayIfEmbedded) ? thumbnail : ''}
  />
```

Future: for "mobile + autoplay=OFF", we should consider using the optimized thumbnail. 6074 should help.
2021-05-18 01:48:23 -04:00
saltrafael
31a84828cc
improve logic for own comments showing first (#6073) 2021-05-17 15:55:23 -04:00
infinite-persistence
2a6df18b72
ChannelThumbnail fixes (#6075)
* Restore "use cdn for channel thumbnails"

This reverts commit e7adc607fa.

* ChannelThumbnail: disable optimization in Channel Page and for GIFs

## Issue
5564: Don't use optimized URLs on channel pages (profile/banner)

## Notes
This is not the best/full solution yet, but it is better than what we have to today (one step in the right direction).

Optimized channel thumbnail size is currently hardcoded to a lowest common denominator.
- Pro(s):
  - For images used in multiple places (different sizes) in a page, the total time needed to get the optimized version for each size is too much. Also, the optimizer seems to increase the size of the image in some cases. So, getting 1 image and re-using it is faster for this scenario.
  - Simpler code (no need to mount first -> get dimension -> load image)
- Cons:
  - We aren't fully optimizing the size, so not really addressing Core Web Vitals score problem.
    - e.g. in the front page, we could have used a smaller image for the channel thumbnails.
  - We haven't address the problem with large screen sizes.

* Restore channel selector

This reverts b5cc0bb42d

* ChannelThumbnail: fix lazy-loading

- Closes 6066: Revisit lazy-loading Channel thumbnails
- Properly fixes 5933: Thumbnail lazy-load causes ChannelSelector icon to not update.
    - Add effect-dependency on `channelThumbnail` and `thumbError`.
- Really perform the lazy-loading now.
    - `data-src` was not used, so it wasn't actually lazy loading previously.
2021-05-17 15:51:21 -04:00
infinite-persistence
5a1bf316c7
"thumbnail is invalid" not reset with new thumbnail upload (#6077)
## Issue
Closes #6044
2021-05-17 15:48:47 -04:00
infinite-persistence
73f6d207ea Restore "Autoplay media files" behavior
## Issue
Closes 6078 `"Autoplay media files = disable" is broken`

`if (-1)` is "truthy"
2021-05-18 01:57:16 +08:00
dependabot[bot]
e96e1ed7ca
Bump url-parse from 1.4.7 to 1.5.1 in /web (#6038)
Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.4.7 to 1.5.1.
- [Release notes](https://github.com/unshiftio/url-parse/releases)
- [Commits](https://github.com/unshiftio/url-parse/compare/1.4.7...1.5.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-15 02:10:43 -04:00
dependabot[bot]
6d2e771fd4
Bump hosted-git-info from 2.8.8 to 2.8.9 (#6035)
Bumps [hosted-git-info](https://github.com/npm/hosted-git-info) from 2.8.8 to 2.8.9.
- [Release notes](https://github.com/npm/hosted-git-info/releases)
- [Changelog](https://github.com/npm/hosted-git-info/blob/v2.8.9/CHANGELOG.md)
- [Commits](https://github.com/npm/hosted-git-info/compare/v2.8.8...v2.8.9)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-15 02:10:16 -04:00
dependabot[bot]
8a52bde902
Bump url-parse from 1.4.7 to 1.5.1 (#6028)
Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.4.7 to 1.5.1.
- [Release notes](https://github.com/unshiftio/url-parse/releases)
- [Commits](https://github.com/unshiftio/url-parse/compare/1.4.7...1.5.1)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-15 02:05:13 -04:00
dependabot[bot]
5f5656d982
Bump lodash from 4.17.19 to 4.17.21 (#6033)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.19 to 4.17.21.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.19...4.17.21)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-15 02:04:49 -04:00
dependabot[bot]
2c23055c1a
Bump lodash from 4.17.19 to 4.17.21 in /web (#6050)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.19 to 4.17.21.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.19...4.17.21)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-15 02:03:03 -04:00
infinite-persistence
354027a5f4
i18n update (#6039)
* Don't translate non-English strings

This requires an accompanying change in the homepages repo.

* Translate swap errors.

* i18n update

- Add missing sub-strings.
- Removed 'video stonks'.
- Added 'Nothing here...'
- Updated notifications drop-down strings.
- Add latest "mayo" meme.

* Remove strings that can't be translated due to dynamic values.
2021-05-15 02:01:00 -04:00
mayeaux
2292f790a0
force autoplay when timestamped (#6064) 2021-05-15 01:59:21 -04:00
saltrafael
3131b48c77
Fix blocking/muting issues on channel pages (#6034)
* dont use no_channel_ids on channel content claim search

* ClaimMenuList not filtering own content initially

* fix errors

Co-authored-by: Thomas Zarebczan <thomas.zarebczan@gmail.com>
2021-05-15 01:53:56 -04:00
infinite-persistence
c85d7f12c8
Livestream-only query cleanup. (#6036)
This completes the change in c24c016e, covering ClaimListDiscover as well.
2021-05-15 01:52:24 -04:00
saltrafael
e5795baa10
own comments show first in controversial / best #5905 (#5939)
* own comments show first in controversial / best #5905

* workaround to place my recent comment at the top

* only most recent comment

* lint fix

Co-authored-by: Thomas Zarebczan <thomas.zarebczan@gmail.com>
2021-05-15 00:56:58 -04:00
infinite-persistence
698bd5eef1
Continuation of "Add release date field #5514" (#6049)
* Release date -- initial attempt (squashed and rebased)

- Use white color for calendar buttons in release date input
- Update icon color for release date input
- Allow to set time in release date and display it under additional options
- Add release date field

* Upgrade to latest react-datetime-picker.

I believe this also picks up the y18n security fix.

* Handle dark theme and general style fixes.

* [+redux] Change how release_time is edited.

- `releaseTime` is now a number instead of a string, matching `release_time`. It was getting confusing what the variable units were.

- `releaseTime` will always match `release_time` for an edit. It will be used in the GUI to reset just the date to the original, instead of having to reset the entire form.

- `releaseTimeEdited` will be used by `updatePublishForm` in the GUI to represent the desired new release time. Set to `undefined` if we don't want to change the date.

* Add 'Reset|Now|Default' buttons instead of overloading the date-picker's "X" button.

Before this, the "X" button resets to the original (previous) publish date for Edits, and resets to current time for New Claims. This is very confusing, so added explicit text-based buttons -- hopefully this is more intuitive.

* bump redux to master

Co-authored-by: Franco Montenegro <franco.montenegro.ruke@gmail.com>
Co-authored-by: Thomas Zarebczan <thomas.zarebczan@gmail.com>
2021-05-15 00:10:28 -04:00
Thomas Zarebczan
2bbdbf4ed8
Fix mobile view with long descriptions 2021-05-14 13:51:55 -04:00
infinite-persistence
4dc333de41
Fix blank gif avatars (#6060)
## Issue
6010: hyperchat send display issues with GIF profiles

The FreezeFrameWrapper have no `src` to freeze due to the lazy loading.

## Fix
Delay the freezing by making the lazy-load effect return a state to indicate when then `src` has been loaded.

Since the lazy-loader will `unobserve` after loading, the state will never go back to false, so we don't need to handle the case of preventing `new FreezeFrameWrapper` from being called multiple times from it's effect.
2021-05-14 11:00:07 -04:00
infinite-persistence
ee1825f5f1
Notification: handle "creator_comment" (#6069)
## Issue
Closes 6022 Notifications: Creator Commented

## Changes
- Beautify - show creator icon instead of generic bell.
- Link to comment directly instead of the claim.
2021-05-14 10:59:36 -04:00
Thomas Zarebczan
420f2c957e
Encode additional special characters 2021-05-13 15:21:21 -04:00
infinite-persistence
645f8ef452
Posts: restore "Tip unlock | Claim details" component (#6051)
* Add ICON.INFO - "i" within a circle.

Basically, an inverted ICON.ALERT.

* Posts: restore "Tip unlock | Claim details" component

## Issue
5882: tip unlock + claim id detials missing from markdown posts view

## Notes
The easiest solution would be to put `FileDescription` into posts, but I think that goes against the clean up of the Post layout, where the focus should be on the content. The faded style of the File Details section seems too distracting, plus we don't want the File Description anyway.

Fixed by:
- Make the existing "LBC amount" clickable to show credit details. An additional padlock will appear if the content is yours and you have tips to unlock.
- Add an "info" icon beside it to show file details.

These "link" buttons are usually lit, but I dimmed it in this case to make them stand out less. Again, focusing on Post content instead of buttons.
2021-05-12 14:26:47 -04:00
infinite-persistence
02fdb1e6df
Notification: further handle "missed_out" + other tweaks (#6052)
* Show full notification text via tooltip

The tooltip fixes the system notifications problem (mentioned below), and also allows one to quickly read the entire comment without actually having to visit the comment.

Currently, we only show about 50 characters in the notification, truncating it to an ellipsis when exceeded.

This is not much of a problem for dynamic text (e.g. comments) since the full text can be seen after clicking on the notification (brings you to the comment). For system notifications, this is problematic since there's no other way to know what the full text was.

Tried to dynamically change the font size to auto fit, but it wasn't fruitful. Even if it did work, it'll probably won't be legible for a 2000-character comment, plus the entire list will look weird with various font sizes.

* Beautify "missed out" notification; bring user to Verify page.

## Issue
6021: Notifications: Missed Out

## Changes
- The notification already brings the user to the `/rewards`. Tweaked it to directly enter the Verify Page.
- Use LBC icon instead of generic bell for this notification.
2021-05-12 13:51:55 -04:00
infinite-persistence
5be7d6ab56
[+redux] Define default value for 'thumbnailError' (#6048)
* [+redux] Define default value for 'thumbnailError'

## Issue
"thumbnail is invalid" not reset with new thumbnail upload 6044

## Change
Defining a default value will cover both CLEAR_PUBLISH and DO_PREPARE_EDIT

* bump

Co-authored-by: Thomas Zarebczan <thomas.zarebczan@gmail.com>
2021-05-12 10:41:18 -04:00
saltrafael
355dd8e755
remove emojis from reporting (#6042) 2021-05-12 10:19:45 -04:00
zeppi
c24c016eb7 livestream fixes from odysee 2021-05-04 23:00:43 -04:00
Thomas Zarebczan
de8d139351
Force page size to 50 on live streams 2021-05-04 14:12:51 -04:00
infinite-persistence
c32a95a885
Livestream comment delete/edit fix (#5971)
* Fix ability to delete own comments in livestream

## Issue
5832: can't remove own comments in live stream mode (if you have multiple channels?)

Looks like it was just missing `commentIsMine` for the new component.

* Disable editing livestream comments

It doesn't do anything at the moment, anyways.

* Disable deleting hyperchats

The "total tipped" will get deducted when hyperchats are deleted, which doesn't make sense (doesn't reflect actual total that the creator received).
2021-05-04 11:08:36 -04:00
infinite-persistence
432c1233b6
Swap: populate 'status' from 'btc/swap' response instead of waiting for first websocket input. (#5997)
* Swap: populate 'status' from 'btc/swap' response instead of waiting for first websocket input.

## Issue
Clsoes 5975: swap stop at processing even though response comes through

## Notes
Occasionally, the first websocket message doesn't come through (seems like the commerce didn't send?). There's really no need to wait for one more 'status=NEW' message to ensure the right data is being populated (being over-cautious here).

* Beautify the "exact amount" advice.
2021-05-04 11:08:01 -04:00
Alex Grin
0b9e8e4e3a
Update README.md 2021-05-03 18:05:43 -04:00
jessopb
46447cefd8
Update security and ownership info 2021-05-03 12:03:36 -04:00
Thomas Zarebczan
09ee081218 remove stream_types from live
and fix homepage too
2021-04-30 17:55:33 -04:00
Sean Yesmunt
b9a7f9673d remove has_source param from livestream claim_search on homepage 2021-04-30 16:53:17 -04:00
Sean Yesmunt
ce71393d83 theme orginization and cleanup 2021-04-30 15:05:58 -04:00
infinite-persistence
742110c81c Homepage|Discover: hide livestreams, then append active livestreams at the top.
This essentially hides inactive livestreams from the list.
2021-04-30 14:11:42 -04:00
infinite-persistence
0258c2d3c3 useGetLivestreams: add ability to filter by minimum viewers 2021-04-30 14:11:42 -04:00
infinite-persistence
ec5e14ca96 ClaimListDiscover: perform secondary has_no_search search as well. 2021-04-30 14:11:42 -04:00
infinite-persistence
c2a766a3e8 ClaimListDiscover: repeat livestream-sorting changes in ClaimTilesDiscover 2021-04-30 14:11:42 -04:00
infinite-persistence
8919cba43c Refactor livestream sorting into 'prioritizeActiveLivestreams' 2021-04-30 14:11:42 -04:00
infinite-persistence
6ef42cd121 Run 'claim_search' with 'has_no_source' to bring up buried active livestreams.
Scenarios where active livestreams will not appear:
- creation date is way back.
- homepage section options excludes livestreams.

Make an explicit `claim_search` but with `has_no_source` if the client wants `liveLivestreamsFirst`.

If there are lots of channels with livestreams, there's a possibility that the final list will be larger than what was requested. We could trim it to be within the original `options.pageSize` range, but I left that out for now.
2021-04-30 14:11:42 -04:00
infinite-persistence
41380d20df Homepage: move "LIVE" livestreams to the front. 2021-04-30 14:11:42 -04:00
infinite-persistence
3a884152b1 ClaimPreviewTile: add attribute to show "LIVE" tag.
It would have been a clean implementation through `renderProperties`, but due to the need to adjust the opacity of `claim-preview__file-property-overlay` (the parent elemtn), I ended up having to create a new `live` attribute.
2021-04-30 14:11:42 -04:00
infinite-persistence
355bc9296c Pull out livestream data-fetch into an effect.
Differences with the original from 'livestreamList/view.jsx':

- Returns null instead of an empty object for the empty case. This removes the need for clients to create a temp array to determine if the list is empty ('Object.keys(x).length').

- Allow option to not periodically refresh by setting the interval to 0.
2021-04-30 14:11:42 -04:00
Sean Yesmunt
44195ec239 fix lbc-message to prevent incorrect 'Credits' replacement 2021-04-30 12:45:46 -04:00
Sean Yesmunt
ded48bcc3d wrap notification text in <LbcMessage> to handle text with 'LBC' 2021-04-30 12:45:46 -04:00
Sean Yesmunt
f04267ffc6 don't resolve all comment author uris 2021-04-30 12:45:46 -04:00
Sean Yesmunt
3808c61148 fetch notofication/categories for notification types dropdown 2021-04-30 12:45:46 -04:00
zeppi
b9fc9b6319 allow unsubscribe from deleted channels by navigating from sidebar 2021-04-30 11:06:34 -04:00
infinite-persistence
cba369a5ce
Restore lost languages (#5972)
While looking at the next RC, I noticed the new languages were lost. I recall the new language commit included some refactoring which had to be reverted due to some webpack issue.

Re-add those languages in the old (non-refactored) method.
2021-04-28 20:27:04 -04:00
zeppi
fe86010be5 More master reconciliation
rewards page recon

router recon

uEmailVerify recon

uPVerify recon

rm style

app/view recon

channel page recon

chanFol recon

syncPassword recon

fileDesc recon

web/redirect recon

wip

page/view recon
2021-04-27 23:05:38 -04:00
zeppi
6b307352d3 integrate some Odysee code with master
integrate analyticsjs

top page

buy page

reconcile help page

rec. constants

reconcile search page

search page

wip

wip
2021-04-27 19:56:30 -04:00
Sean Yesmunt
d7a589db01 update changelog 2021-04-27 13:40:40 -04:00
Sean Yesmunt
8bf14c4c04 fix form field prefix border styling so it's more visible 2021-04-27 13:40:40 -04:00
Sean Yesmunt
778250aa0e fix role=button on all cards and add correct release_time flag to livestreamLink 2021-04-27 13:40:40 -04:00
zeppi
7a19764e29 bump 2021-04-27 11:32:20 -04:00
zeppi
6ab2878766 wip 2021-04-27 11:20:41 -04:00
zeppi
870b9e0c27 wip 2021-04-27 11:20:41 -04:00
zeppi
b819d59674 wip 2021-04-27 11:20:41 -04:00
zeppi
c2f945ab3c unify some styles with master 2021-04-27 11:20:41 -04:00
zeppi
830375cb32 fix disabled publish form 2021-04-27 09:22:11 -04:00
infinite-persistence
b0996d4d18 Mobile: make double-tap match the arrow keys (+/-5s instead of 10s)
## Issue
One of the items in 5865 Video shortcut issues

This one is not really an issue, but it would be nice to match what the arrow keys are doing. Also, in slower regions, seeking 10s will almost always end up buffering.
2021-04-27 09:26:19 +08:00
Sean Yesmunt
f2d83cbf9d fetch ads provider for all homepage videos (but still only show ads for unauth users) 2021-04-26 16:38:33 -04:00
zeppi
807e520b0e v0.50.3-rc.1 2021-04-26 15:45:40 -04:00
zeppi
b10b79432f autofollow waits for prefs ready 2021-04-26 14:59:15 -04:00
infinite-persistence
03eed6b961 i18n update 2021-04-26 14:52:13 -04:00
infinite-persistence
e2db26c595 Fix channel links being filtered by Staked Level
## Issue
Channel links were showing the "This channel isn't staking enough LBRY Credits for link previews." -- channel links shouldn't be showing previews in the first place.

## Change
Moved the logic into `ClaimLink`, which is the better place to put it anyway. I think I was trying to not touch as many components as possible (i.e. not passing `allowPreview` down too many layers) in the initial implementation. This caused the `isChannel` consideration to be missed.
2021-04-26 14:51:58 -04:00
Sean Yesmunt
1e2919531b use blocked/muted uris in not_channel_ids for claim_search 2021-04-26 13:27:13 -04:00
infinite-persistence
955f5ac0df Block encoded thumbnail URLs ('data:image')
These only work in the `selectThumbnail` component. If it's small enough, it'll get past the transaction limit-check, but ultimately it doesn't appear correctly in the claim list.

It'll probably appear correctly if we tweak the ClaimPreview code, but since this also fails the Google Video metadata test, I think we should disallow this.

## Issue
5923
2021-04-26 12:24:19 -04:00
infinite-persistence
364db9dafa Propagate thumbnail errors to PublishFormData
Thumbnail errors were just being used in `selectThumbnail`. The form doesn't know about it and was using allowing invalid thumbnails like 'helloworld' to pass through.
2021-04-26 12:24:19 -04:00
infinite-persistence
1911a5132b PublishFormError: look at 'thumbnail' instead of 'thumbnail_url'
I believe the rest of the GUI is setting 'thumbnail'.
'thumbnail_url' is only populated right before publishing.

So, the flag was always false -- we just never see the error on screen because the component is incorrectly hidden (fix for this is coming up next...)
2021-04-26 12:24:19 -04:00
Sean Yesmunt
d4fa45b257 fix hyperchat size when thumbanil is gif and fix totalAmount calculation 2021-04-26 00:32:52 -04:00
Sean Yesmunt
7531a2c21a add back blocked/muted channels to homepage claim_search 2021-04-24 01:00:02 -04:00
Sean Yesmunt
0c71059bf0 fix comment websocket from connecting more than once per claim 2021-04-23 16:58:23 -04:00
Sean Yesmunt
6d89f0df7e hyperchats 2021-04-23 16:20:17 -04:00
zeppi
bd62a55608 review 2021-04-23 14:51:09 -04:00
zeppi
f5f3bf21ee bugfixes 2021-04-23 14:51:09 -04:00
zeppi
f3463ebdeb use redux for livestream claim setup 2021-04-23 14:51:09 -04:00
infinite-persistence
b0193202d1
Re-add ability to export transactions (#5899)
* FileExporter: add 'fetch' hook + Web support

* Re-add ability to export transactions

Closes 4793: Export Wallet History For Taxation Purposes

* Move file-creation to the background.

Don't let the file-creation process block the GUI.

Requires lbry-redux update.

* Bump redux | doFetchTransactions: bump pageSize to 999999; remove doFetchSupport

* bump redux

Co-authored-by: Thomas Zarebczan <thomas.zarebczan@gmail.com>
2021-04-23 12:10:37 -04:00
infinite-persistence
b5cc0bb42d Disable thumbnail lazy-load for Channels
## Issue
5933: Thumbnail lazy-load causes ChannelSelector icon to not update
2021-04-23 00:23:36 -04:00
zeppi
a3af1ad44d toggle button styles in themes 2021-04-22 10:59:03 -04:00
zeppi
9b82f57006 livestream related publish fixes 2021-04-22 10:59:03 -04:00
Sean Yesmunt
0653dbde04 update notification websocket to sockety 2021-04-21 20:18:25 -04:00
Thomas Zarebczan
5ac9e70304
warning about exact amount 2021-04-21 15:27:01 -04:00
infinite-persistence
47d5de1fca
Swap: Don't copy the currency, only amount (#5915)
* CopyableText: add 'onCopy' for clients to change the text-selection

* Swap: only copy the amount (without currency)

## Issue
5873: Rounds 2 of LBC swaps

## Notes
It was an intended feature to include the currency -- I can paste the full string into my note book, while pasting into wallet apps like Exodus will automatically trim off the currency anyway.

Regardless, removed the 'feature' :D
2021-04-21 11:36:34 -04:00
dependabot[bot]
e1be0f30bd Bump ssri from 6.0.1 to 6.0.2 in /web
Bumps [ssri](https://github.com/npm/ssri) from 6.0.1 to 6.0.2.
- [Release notes](https://github.com/npm/ssri/releases)
- [Changelog](https://github.com/npm/ssri/blob/v6.0.2/CHANGELOG.md)
- [Commits](https://github.com/npm/ssri/compare/v6.0.1...v6.0.2)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-21 11:20:00 -04:00
Sean Yesmunt
13b6cc413b add category param 2021-04-21 11:19:23 -04:00
Sean Yesmunt
2255450599 udpate readme 2021-04-21 11:06:29 -04:00
infinite-persistence
8493b1e3df GoogleVideoSearch: fix blank description; invalid thumbnails
## Issue
Closes 5923 video metadata issues

## Notes
For thumbnails, future claims should have correct thumbnails after `5925 Fix thumbnail-checking and block 'data:image'`. For existing claims, we'll just skip the metadata to avoid the crawler error. Users can easily update their thumbnails.

For the `OlivOliv` thumbnail url case, I wasn't sure whether to go all out to fetch and verify each thumbnail. I ended up just checking whether it starts with `http(s)`
2021-04-21 10:49:57 -04:00
infinite-persistence
cb2c33a35f Implement ReportContent page 2021-04-21 10:49:31 -04:00
infinite-persistence
e5e4a5688f Rick constants
https://docs.google.com/spreadsheets/d/1CXUO0b6uU7hCNureMb0F-ruzrtqZyADNjk_JrKmaZzs/
2021-04-21 10:49:31 -04:00
infinite-persistence
3a09bb18e3 Reporting: use upcoming new Page 2021-04-21 10:49:31 -04:00
infinite-persistence
bcbb1c8185 Add 'ReportContent' actions/reducers/selectors 2021-04-21 10:49:31 -04:00
infinite-persistence
fe885ae6de Util to get list of countries 2021-04-21 10:49:31 -04:00
Sean Yesmunt
dad75f76bd new comment websocket url 2021-04-20 14:28:45 -04:00
DispatchCommit
762005f217 remove prometheus event that doesn't exist and causes errors
"there won’t be a metric by this name, our code is just getting errors" - andrey
2021-04-20 00:49:08 -07:00
Sean Yesmunt
a4ce82e97f allow comment blocking on all claims 2021-04-19 15:55:11 -04:00
Sean Yesmunt
a841fd6206 fix typo 2021-04-19 15:55:11 -04:00
Sean Yesmunt
27b1101d12 don't pass streamTypes to homepage following section
so the following section shows all file types
2021-04-19 15:55:11 -04:00
Sean Yesmunt
0083a29231 force thumbnail for uploads 2021-04-19 15:55:11 -04:00
infinite-persistence
1e3a2d34de i18n update 2021-04-19 15:07:02 -04:00
dependabot[bot]
e5ed71df25 Bump ssri from 6.0.1 to 6.0.2
Bumps [ssri](https://github.com/npm/ssri) from 6.0.1 to 6.0.2.
- [Release notes](https://github.com/npm/ssri/releases)
- [Changelog](https://github.com/npm/ssri/blob/v6.0.2/CHANGELOG.md)
- [Commits](https://github.com/npm/ssri/compare/v6.0.1...v6.0.2)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-19 14:35:43 -04:00
infinite-persistence
e4c1f107bd GoogleVideoSearch: fix duration
Forgot that `moment.duration()` takes in ms.
2021-04-19 14:35:27 -04:00
Hutzdog
6ba97eddb2 Update README to include Nix package 2021-04-19 13:34:32 -04:00
Max Kotlan
1279a6eaaf Fixed and cleaned up Hotkeys. Fixed overlapping lbry hotkeys with browser hotkeys 2021-04-19 13:34:10 -04:00
Sean Yesmunt
fdeea30a4a livestream notification styling 2021-04-16 15:58:26 -04:00
infinite-persistence
166d2f9049 Add Google Video Search metadata
## Issue
5870: Add metadata for google video search
2021-04-16 11:24:25 -04:00
zeppi
1b6c217226 support brazilian portugese 2021-04-16 11:16:25 -04:00
Thomas Zarebczan
9689ef72a1
Odysee audio support (#5897) 2021-04-15 22:52:41 -04:00
Thomas Zarebczan
56cf3464ab
Make other crypto clearer until we can show rates 2021-04-15 10:06:26 -04:00
infinite-persistence
4a8ca1a6c9
bump lbryinc for blacklist (with build) (#5893)
* bump lbryinc for blacklist (with build)

* update commit

Co-authored-by: Thomas Zarebczan <thomas.zarebczan@gmail.com>
2021-04-15 01:27:48 -04:00
Sean Yesmunt
e4a3e54613 move lazy loading effect into effects/ 2021-04-14 15:25:19 -04:00
Louis Sandoval
a7cb0e240e Fix #5795 - Claim images not lazy loaded 2021-04-14 15:25:19 -04:00
zeppi
fe69ef2c90 allow non video selection when not odysee 2021-04-14 15:06:08 -04:00
zeppi
9415d9c05d bump lbryinc for blacklist 2021-04-14 13:23:02 -04:00
Sean Yesmunt
42dcd34d49 trigger file/view event for livestream claims 2021-04-14 12:26:33 -04:00
Sean Yesmunt
2d9fac46a5 open the floodgates 2021-04-14 11:00:36 -04:00
Sean Yesmunt
942c85c9f1 Reconnect when comment websocket loses connection 2021-04-14 00:08:19 -04:00
jessopb
989126c603
Feat publish replays on master (#5863)
* provide livestream replay publish via url
2021-04-14 00:06:11 -04:00
Sean Yesmunt
9f3d779cf2 add tags to mobile navigation and add manage tags link on tag page 2021-04-13 17:08:24 -04:00
Sean Yesmunt
be7ca41235 check for og image in config before falling back to default og image 2021-04-13 15:26:16 -04:00
Thomas Zarebczan
bb766211f9
Julian's category changes (#5878) 2021-04-13 14:22:14 -04:00
Sean Yesmunt
27c7a8a31e comment out swap button until api is ready 2021-04-13 14:08:25 -04:00
infinite-persistence
6853872e9c Bump redux for CoinSwap 2021-04-13 14:02:25 -04:00
infinite-persistence
e9c386678b Don't link to external blockchain explorers
It's unclear whether the use is ok or not without consent. Etherscan.io says consent is required.

Better be on the safe side.
2021-04-13 14:02:25 -04:00
infinite-persistence
f94f98e0f3 ViewPastSwaps: limit to 10 entries + other fixes
(1) Due to IAPI/commerce query limit, and also to not pollute the wallet with infinite chargeCodes, we'll only show the last 10 swaps. Beamer mentioned that it's possible to tracked back the past chargeCodes of the user, and potential provide a `list` endpoint to handle disputes.

(2) If a user explicitly removed an entry, don't repopulate that entry even if websocket returned an updated status for it. While it might be useful to handle accidental removals, it looks weird when the list gets repopulated with 'Expired' entries.

(3) Add sanitization when repopulating the chargeCodes from the wallet data (i.e. remove 'null' entries).

(4) Always repopulate the list per wallet data so every instance looks the same.
2021-04-13 14:02:25 -04:00
infinite-persistence
ca40e0287b Swap the order of LBC vs BTC as the entry point 2021-04-13 14:02:25 -04:00
infinite-persistence
7cf5c1f6fe CoinSwap: websocket + multi-coin
- For the active swap, switch from polling to websocket. The returned data is now the Charge data from the commerce, so some parsing will be required.

- Allow the user to send other coins that the commerce supports.

- Only save the 'chargeCode' to the wallet. The other data can be repopulated from this.

- Store the receipt currency. I'm not sure if the commerce supports sending bits from various coins. Take the coin that came with the 'COMPLETED' message for now.

- Fix 'lbc' calculation to match IAPI side.

- Allow users to see full detauls from "View Past Swaps".

- String cleanup

- GUI cleanup.
2021-04-13 14:02:25 -04:00
infinite-persistence
d1e83fcee2 Run doNotificationSocketConnect for CoinSwapStatus 2021-04-13 14:02:25 -04:00
infinite-persistence
a76f4e4dfe Fix table wrapping
Wrap second column instead of making it scroll horizontally.
2021-04-13 14:02:25 -04:00
infinite-persistence
23072f1a46 Coin-swap: Handle "Confirming" state 2021-04-13 14:02:25 -04:00
infinite-persistence
7c25de1e58 Coin-swap: require authentication
While it would be nice if we can swap anonymously through Desktop, the IAPI will tie a wallet address with an account. Final decision is to require authentication.
2021-04-13 14:02:25 -04:00
infinite-persistence
d63cb0dc2d Past swaps: show the amount of BTCs that we are waiting for. 2021-04-13 14:02:25 -04:00
infinite-persistence
b2630f6f21 Save entire swap info instead of just the address.
- Users should be able to see the entered and promised amount, otherwise they might forget how much to send over.
- This change also prepares for the future upgrade to support multiple coins.
2021-04-13 14:02:25 -04:00
infinite-persistence
9c808e2b5e Implement Swap BTC page 2021-04-13 14:02:25 -04:00
infinite-persistence
8e6604cfa6 Add blank Swap page 2021-04-13 14:02:25 -04:00
infinite-persistence
28260c27d1 SendLBC: switch from Modal to Page 2021-04-13 14:02:25 -04:00
infinite-persistence
5d31dc536c ReceiveLBC: switch from Modal to Page 2021-04-13 14:02:25 -04:00
zeppi
fbff266b28 add br mindblown icon 2021-04-13 13:22:02 -04:00
Sean Yesmunt
a23f0cb30f add back tags search 2021-04-13 13:21:44 -04:00
Sean Yesmunt
bf24bd3193 fix related button toggle color on dark mode 2021-04-12 21:43:41 -04:00
infinite-persistence
3406c2f800 Wunderbar: handle 'shift+home' key not highlighting text
## Issue
- Patch for 5316: "Home and End keys not working in search box"

## Notes
Seems like 'shift+home' wasn't highlighting the text. 'shift+end' works.

Was pretty sure I tested that previously. Anyway, adding the direction variable seems to fix it.
2021-04-12 14:58:42 -04:00
infinite-persistence
294866fb4b Search: fix 'x' appearing incorrectly
- Need to handle the 'undefined' case. The change will cover undefined, null and blank string (blank string === 'All').
2021-04-12 14:58:25 -04:00
infinite-persistence
30d5b3006d i18n update 2021-04-12 14:58:25 -04:00
Sean Yesmunt
216d0fefa0
fix typo 2021-04-12 13:14:20 -04:00
Sean Yesmunt
e08b71774c pre-roll ads 2021-04-12 12:55:06 -04:00
Sean Yesmunt
ae980bc142 use isChannel from parseURI 2021-04-12 12:24:04 -04:00
zeppi
57dfaab1ea fix show yrbl empty 2021-04-12 12:24:04 -04:00
zeppi
eea3497845 fix publish something empty 2021-04-12 12:24:04 -04:00
seanyesmunt
f5125b25c2 update livestream eligibilty
add CHANNEL_STAKED_LEVEL_LIVESTREAM to config set to level 5
use odysee_live_enabled tag on users insead of experimental_ui
2021-04-12 11:17:17 -04:00
infinite-persistence
47c2d4633d ReportCreate: Fix anonymous url prefix
## Issue
5857 Channel does not update on display when reposting (but actually does)
2021-04-09 17:05:20 -04:00
infinite-persistence
f344096da4 SearchOptions: label fixes
## Issue
5842: search filters fall out
2021-04-09 11:27:25 -04:00
infinite-persistence
fb839b92ef Only apply Staked Levels to Comments (allow it in Posts)
Blocking videos and images was too limiting, plus the system was intended to block spammy comments in the first place.
2021-04-09 11:27:07 -04:00
infinite-persistence
5bc462927a SimpleImageLink: simplify + use 'src' as last resort
- The icon makes the screen too busy when there are lots of images in a page.

- Use src as the last resort for the text (I though `title` and `alt` was mandatory in markdown; apparently not).
2021-04-09 11:27:07 -04:00
infinite-persistence
20a28865fe Fix "channel levels" being applied to all MarkdownPreview usages.
`stakedLevel` is only provided when needed (comments, etc.), so when it's null, resume normal operation.
2021-04-09 11:27:07 -04:00
infinite-persistence
3bab4feeca Update GUI to use queried notification filter.
- Re-organize the return statement of 'NotificationsPage' a bit, otherwise the entire page will reload (blink) every time the drop-down value is changed due to the 'fetching' flag.

- Retained the original behavior of (only showing a blank page + spinner) on the very first load. I think there is merit in not showing the buttons immediately (e.g. when not logged in and `/$/notifications` is accessed directly).
2021-04-08 14:28:21 -04:00
infinite-persistence
b8ec0c9967 Augment doNotificationList to get a filtered list.
Initially, the filtered list was done at the component level, and the list was simply a subset of `notifications`. But due to the limit issue explained in 5694, we now query the filtered list instead.

Considerations:
- The filtered list could contain items not listed in the 'All' list. We could add a string at the bottom of 'All' that says "not all items retrieved" if this confuses the user.
- The unseen count needs to be based on 'All' and not the filtered one, so that data needs to be stashed somehow (can't re-use the array).

Use 2 arrays for now instead of trying to accumulate "all" and "filtered" into 1 array.
2021-04-08 14:28:21 -04:00
infinite-persistence
4252db91f9 Add new notification filter api params 2021-04-08 14:28:21 -04:00
seanyesmunt
fbd90b8f3e style pass 2021-04-08 12:40:07 -04:00
saltrafael
1d74b364e5 Keep just More From for now 2021-04-08 12:40:07 -04:00
saltrafael
6718d87848 Recommended bar: extra options for ease of discovery 2021-04-08 12:40:07 -04:00
seanyesmunt
6ccbbebad9 limit simple site search options to just video and text 2021-04-07 14:13:40 -04:00
seanyesmunt
6718f153a9 style pass 2021-04-07 12:08:17 -04:00
infinite-persistence
72443d4d2e Reset the search page when options changed. 2021-04-07 12:08:17 -04:00
infinite-persistence
8111b8d9dc Only concatenate results if 'from !== 0' 2021-04-07 12:08:17 -04:00
infinite-persistence
340c883ac7 Disable 'last hour'
Requires further work in IAPI
2021-04-07 12:08:17 -04:00
infinite-persistence
855ae15a27 Search: infinite scroll 2021-04-07 12:08:17 -04:00
infinite-persistence
5421a64b65 Revamp search filters
## Issue
4945: Simplify / revamp search filters for odysee (and lbry.tv)

## Changes
- Tweaked the "claim type = file | channel | everything" a little to hopefully make it more intuitive.
- Added "Sort By".
- Added "Upload Date".
- Fixed the affected files to handle both Desktop and Odysee.
- Tweaked the layout to be more condensed so that we can see some results as we change the filter.
- Added animations.
- Added "Exact match" option that helps user to surround with quotes.
2021-04-07 12:08:17 -04:00
infinite-persistence
a9cae23d87 getSearchQueryString: add "time_filter" option 2021-04-07 12:08:17 -04:00
infinite-persistence
2cc049bb83 getSearchQueryString: add "exact" option to include surrounding quotes. 2021-04-07 12:08:17 -04:00
infinite-persistence
dc06e2da99 getSearchQueryString: add "sort_by" options 2021-04-07 12:08:17 -04:00
infinite-persistence
1ee05d1f7f getSearchQueryString: customizations for SIMPLE_SITE.
- This change makes it work for both Desktop and Odysee. When merging back to Odysee, just take the file from `master` (barring any changes from someone else).

- Given that we'll be opening up the search filter for Odysee, the only "simple site" customization that was back-ported is `free_only=true`.
2021-04-07 12:08:17 -04:00
infinite-persistence
c73ba60ef5 Revert "Use blank poster and advisory when preview is blocked by insufficient stake."
This reverts commit 9d1cf97aef.
2021-04-07 00:39:35 -04:00
seanyesmunt
e23a6f3cd6 fix notice-message spacing on livestream page 2021-04-06 17:20:21 -04:00
seanyesmunt
ac7ba6b4d9 update mac cert url 2021-04-06 17:17:39 -04:00
seanyesmunt
15fea9fe1f fix livestream comment spacing 2021-04-06 17:01:31 -04:00
seanyesmunt
e3ea004f67 revert e3a478adc3 2021-04-06 15:42:27 -04:00
seanyesmunt
0d41e6d88d Revert "Simplify language lists"
This reverts commit 27d43b2b41.
2021-04-06 15:42:27 -04:00
seanyesmunt
951745d105 Revert "Remove the need to call 'app.getLocale()'"
This reverts commit 39b662265c.
2021-04-06 15:42:27 -04:00
Stefan Sundin
d5ba66ca1a Add a min-width to the "Automatic dark mode" inputs to stop UI shifting when clicking the "24-hour clock" checkbox. I have no idea where this should go so I just put it somewhere. 2021-04-06 13:00:10 -04:00
Stefan Sundin
aff8cfdf9c Fix the "Automatic dark mode" labels having the same name. Now the correct input is selected when clicking the "To" label. 2021-04-06 13:00:10 -04:00
Stefan Sundin
56d4a677a5 Also format the "Automatic dark mode" clocks. 2021-04-06 13:00:10 -04:00
Stefan Sundin
039264531f Add 24-hour clock setting. 2021-04-06 13:00:10 -04:00
infinite-persistence
f3869ddb78 Markdown: inline image preview for Level 4 and above only 2021-04-06 12:55:33 -04:00
infinite-persistence
9d1cf97aef Use blank poster and advisory when preview is blocked by insufficient stake.
## Issue
- Redo 5636: Disable video previews in comments/posts made by channels below a certain channel staked level
- Closes 5738: expand video preview level requierment to markdown images also
2021-04-06 12:55:33 -04:00
infinite-persistence
2a31678632 Fix tooltip not working in <Icon>
According to https://stackoverflow.com/questions/10643426/how-to-add-a-tooltip-to-an-svg-graphic, the tooltip needs to be a child `title` element, not the attribute.
2021-04-06 12:55:33 -04:00
Sean Yesmunt
7c83fa662c
bump comments length to 75 2021-04-05 21:45:42 -04:00
Sean Yesmunt
707ad5d4de re-enable pdfs on web 2021-04-05 15:06:56 -04:00
Sean Yesmunt
a99042b60b remove extra comment 2021-04-05 15:06:56 -04:00
Sean Yesmunt
822ab329ac undo my weird changes - simplify logic 2021-04-05 15:06:56 -04:00
infinite-persistence
51bbda75ee Sort the language list (correctly) 2021-04-05 14:45:21 -04:00
Sean Yesmunt
64928213bf fix websockets not reconnecting
When it gets closed, even for errors, it doesn't always go into Socket.onerror. Add the reconnection logic back to just onclose (like it was before)
2021-04-05 14:33:37 -04:00
Sean Yesmunt
84af2dcef0 update changelog 2021-04-05 14:32:37 -04:00
Sean Yesmunt
4a33e4dce5 style updates 2021-04-05 14:32:37 -04:00
saltrafael
3e1f6cdf4d Highlight comments made by content owner 2021-04-05 14:32:37 -04:00
zeppi
3c3fc90b6a review changes 2021-04-05 13:26:52 -04:00
zeppi
14685e11af clean up publishing on desktop 2021-04-05 13:26:52 -04:00
zeppi
9468f2b0f2 update master with some odysee changes 2021-04-05 13:26:52 -04:00
infinite-persistence
bfcdbd575f Sort the language list
I think using the 'values' for the keys should be fine since each language name is unique. A key-clash would also help us catch mistakes like not differentiating sub-languages if support any (e.g. "English" vs. "English (British)")

Had to cast to String for lint.
2021-04-05 01:56:49 -04:00
infinite-persistence
b17ba20fd5 Change: 'Wikang Filipino' --> 'Filipino'
I think both are acceptable, but the latter seems more popular. Doing this change as we'll be sorting the list.
2021-04-05 01:56:49 -04:00
infinite-persistence
091dbc617e i18n: petition msg 2021-04-05 01:56:49 -04:00
Jeremy Kauffman
281fad7382 copy pass 2021-04-04 23:32:47 -04:00
Sean Yesmunt
21ad5077f7 add helplbrysavecrypto prompt and fix file page UI bugs 2021-04-04 23:32:47 -04:00
Sean Yesmunt
3cdeb98ea8 fix date on short post titles
always send it to a new line
2021-04-04 23:32:47 -04:00
infinite-persistence
52f068cead Add: Japanese, Afrikaans, Filipino, Thai and Vietnamese
## Issue
Closes 5646: Add more completed language translations

## Notes
SDK uses RFC 5646 format, which led me to
https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry. Took the codes from here. They match what's already used in Transifex, so that's good.
2021-04-04 22:54:33 -04:00
infinite-persistence
81e4730037 Simplify language lists
- SUPPORTED_SUB_LANGUAGE_CODES[] that I introduced was pretty redundant when SUPPORTED_LANGUAGES[] already hold the information. The logic to ignore sub-languages (i.e. reduce the locale's "en-GB" to "en" is now located in getDefaultLanguage()).

- SUPPORTED_BROWSER_LANGUAGES[] and SUPPORTED_LANGUAGES[] look so similar and hard to tell what the former is for at first glance. The functionality to map 'zh-CN' to 'zh-Hans' is now handled by resolveLanguageAlias(), which makes the intention clearer.

This leaves us with a single list -- SUPPORTED_LANGUAGES[], whose key also tells us the desired language code to use.
Also, clients now need to call `resolveLanguageAlias` to map any language code aliases, as they differ depending on how it is queried (e.g. `navigator.language` vs. `app.getLocal()` uses different standards).

I think we no longer need to explicitly migrate existing user's 'zh-CN' into 'zh-Hans' because the rest of the system will always use the desired language code as long as 'resolveLanguageAlias' is called appropriately. e.g. the system uses `selectLanguage` and `selectLanguage` calls `resolveLanguageAlias`.
2021-04-04 22:54:33 -04:00
infinite-persistence
45c158f5b4 Remove the need to call 'app.getLocale()'
The removal is primarily to ease the upcoming language refactoring, but it was also never hit anyway, because if the `storedLanguage` is indeed null or undefined (like in the case of a fresh install), the `then` block never runs.

Fortunately, we do still get the effect of "falling back to OS's language", because `selectLanguage` will call `getDefaultLanguage` if `language` is null. While the `language` localStorage remains null, the rest of the code still gets the native language via `selectLanguage`.

Aside: `getDefaultLanguage` uses `navigator.language`. It does seem to grab my OS's locale correctly.
2021-04-04 22:54:33 -04:00
Louis Sandoval
d58d96b8dd Fixes #5822 display of upload date and view count on smaller screens 2021-04-04 22:51:07 -04:00
Sean Yesmunt
105fe85504 more robust check on channel name 2021-04-04 22:16:45 -04:00
Sean Yesmunt
03ef30eb40 claim email_verified reward on channel/new page 2021-04-04 22:16:45 -04:00
Sean Yesmunt
650ce42dc0 open livestream channel create redirect in new tab
so users can keep the stream going while they do sign up stuff
2021-04-04 22:16:45 -04:00
DispatchCommit
bb56de1d4f fix scrolling issue, limit length of chat history 2021-04-04 21:43:44 -04:00
Stefan Sundin
92e55c7d5f Add a title with the exact date to dateTime elements that use timeAgo. 2021-04-03 00:32:06 -04:00
Sean Yesmunt
51552b0c53 v0.50.2 2021-04-02 18:11:23 -04:00
Sean Yesmunt
0bbc72c0ba v0.50.2-rc.1 2021-04-02 18:11:23 -04:00
Sean Yesmunt
ac18b85c34 sandbox iframe react component 2021-04-02 18:11:23 -04:00
Sean Yesmunt
991b45d831 fix typo
took commit from #5790 since it was merging into the odysee branch
2021-04-02 16:17:50 -04:00
dependabot[bot]
f20d48c3dd Bump y18n from 4.0.0 to 4.0.1
Bumps [y18n](https://github.com/yargs/y18n) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/yargs/y18n/releases)
- [Changelog](https://github.com/yargs/y18n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yargs/y18n/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-02 16:14:35 -04:00
Sean Yesmunt
ddd6a8d191 i18n 2021-04-02 15:44:00 -04:00
r0ckinn
e1531b03bf minor improvement: if not live yet, say users are waiting instead of watching 2021-04-02 15:44:00 -04:00
infinite-persistence
f0d0992d20 Fix broken video embed
## Issue
Closes 5811: Video-embed in markdown-post is broken

- Revert "Fix 'makeSelectIsPlaying' to look at 'playing' instead of 'primary'." dabdc980a1.
- Revert "Fix 'isPlaying' to reflect 'playing' instead of 'primary' URI" 351890decf.

Reverting means "Deleting MD from downloads list causes spinning icon to run forever 4959" gets re-opened, but this is a way less severe issue to leave in.
2021-04-02 14:44:22 -04:00
infinite-persistence
d279d70770 Fix autoplay in floating mode
Closes 5000: AutoPlay in Floating Player only works one time

Factor out the code that queries the recommendation. It needs to be called in two places:
(1) `RecommendedContent` - need to cover the case of floating player + visit another video page.
(2) When video is floating and autoplayed the next video.
2021-04-02 14:35:18 -04:00
jessopb
8ab0bcd545
clear publishing on publish load (#5807) 2021-04-02 11:55:41 -04:00
jessopb
9cd86be04f
use show mature selector (#5803) 2021-03-31 16:55:26 -04:00
infinite-persistence
e0e277f27d i18n: weekly update 2021-03-29 15:50:21 -04:00
infinite-persistence
cf0db043f6 i18n: "lbc vs credit" fix, and more 2021-03-29 15:50:21 -04:00
infinite-persistence
4a0aea15a6 i18n: missing translation + emoji fixes 2021-03-29 15:50:21 -04:00
infinite-persistence
2037dfbd03 prepareEdit: ensure 'incognito' is false when channel is active.
## Issue
Closes #5720: Edit: channel-selector should re-populate with original channel

## Notes
'incognito' was not set to false, causing the 'ChannelSelector' to select Anonymous.
2021-03-29 08:42:58 +08:00
Thomas Zarebczan
5ed576f2d5
Fix redux 2021-03-28 12:43:10 -04:00
Thomas Zarebczan
49dca7d2ab
yarn lock too. 2021-03-28 12:31:23 -04:00
Thomas Zarebczan
893e67803e
bump redux 2021-03-28 12:09:14 -04:00
zeppi
5982b61f0d oops 2021-03-26 18:43:09 -04:00
zeppi
ad10250e16 review changes 2021-03-26 18:43:09 -04:00
zeppi
9e86cab4eb fix livestream redirect to dashboard 2021-03-26 18:43:09 -04:00
zeppi
8755c634ad bugfix 2021-03-26 18:43:09 -04:00
zeppi
777566f414 replace instead of push on publishform 2021-03-26 18:43:09 -04:00
zeppi
713109167c publish, edit, remote_url publish 2021-03-26 18:43:09 -04:00
zeppi
c546589cc5 copy changes 2021-03-26 18:43:09 -04:00
zeppi
f691643eb7 ls help title copy 2021-03-26 18:43:09 -04:00
zeppi
6c137fc0fd improve loading for livestream setup 2021-03-26 18:43:09 -04:00
zeppi
76a5fe0d83 add help to livestream setup 2021-03-26 18:43:09 -04:00
zeppi
f091da3c54 use new isLivestream (placeholder stream) selector 2021-03-25 20:14:24 -04:00
zeppi
7743f08a6a bump 2021-03-25 17:55:42 -04:00
zeppi
da60104c96 pending and publish 2021-03-25 16:40:17 -04:00
zeppi
7fdc3d2919 fix crash on invite page 2021-03-25 16:38:25 -04:00
zeppi
33c325031d check simplesite for notifications 2021-03-25 15:54:30 -04:00
infinite-persistence
cd8b028f8f More livestream strings 2021-03-25 15:35:53 -04:00
infinite-persistence
e70eb3b5bc Tip-unlock: add tooltip and related strings 2021-03-25 15:35:53 -04:00
infinite-persistence
5d4828514c Improve mature-tagging message
## Issue
Closes 5747: Typo on Create Livestream page
2021-03-25 15:35:53 -04:00
zeppi
ba4a29c102 hide livestream claims in previews if no flag 2021-03-25 15:31:31 -04:00
Sean Yesmunt
64e8c8e095 use comment component for livestream comments 2021-03-25 15:08:05 -04:00
zeppi
d8a5ca082b no livestream price on odysee 2021-03-25 13:53:42 -04:00
zeppi
4269a63f62 no mature on simple site 2021-03-25 01:56:21 -04:00
infinite-persistence
a69512372a Update changelog 2021-03-24 20:56:57 -04:00
zeppi
6761212ce7 bump 2021-03-24 13:36:50 -04:00
zeppi
81b9b0d801 copy for buttons and modals for livestream
redirect on success to dashboard
2021-03-24 13:36:50 -04:00
zeppi
995f51711f use pending livestreams on dash, filter modes 2021-03-24 13:36:50 -04:00
zeppi
137c268a7b add livestream icons 2021-03-24 12:13:26 -04:00
infinite-persistence
f1466705c0 i18n: new category + lbry.tv retiring msg 2021-03-24 09:09:24 +08:00
infinite-persistence
43965ddf72 i18n: Livestream strings 2021-03-24 09:09:24 +08:00
infinite-persistence
a36a8023c7 Support = Boost | Tip
## Issue
Closes 5226: Figure out odysee-friendly way to re-enable supports

This essentially re-enables staking (now called "Boost") for Odysee.
2021-03-23 20:01:55 -04:00
infinite-persistence
3b960aa0a0 Back-port changes from Odysee to master 2021-03-23 20:01:55 -04:00
Dispatch
d362fe0d75
hide livestream on upload form if not experimental UI (#5735) 2021-03-23 13:27:30 -04:00
zeppi
f2e17f8566 fix dmca 2021-03-22 21:19:53 -04:00
Dispatch
a258fcb039
Merge pull request #5691 from lbryio/feat/go-live
[feat] Add LiveStreaming Support
2021-03-22 16:48:10 -07:00
Thomas Zarebczan
b261763402
Add note about editing while transfer is active 2021-03-22 18:56:50 -04:00
DispatchCommit
ec996d8bf7 this has to fix the linting issue 2021-03-22 15:48:56 -07:00
DispatchCommit
a4a714a561 please work this time 2021-03-22 15:42:51 -07:00
DispatchCommit
3446b63768 coerce null to empty string for flow
this is a bad way to satisfy flow, probably, but it'll work.
2021-03-22 15:30:30 -07:00
DispatchCommit
7a327596cd i hate flow 2021-03-22 15:30:29 -07:00
DispatchCommit
49395a8a05 remove unused import 2021-03-22 15:30:28 -07:00
DispatchCommit
8ae7247c35 remove unused variables from LiveStreamSetup 2021-03-22 15:30:27 -07:00
DispatchCommit
0ec31d3c29 fix slow mode chat
set last comment time when comment is submitted
2021-03-22 15:30:26 -07:00
DispatchCommit
f18ad64527 use new livestream iframe embed 2021-03-22 15:30:25 -07:00
DispatchCommit
1e0afd1b86 Add live detection to livestream page
- reduce interval from 15 seconds to 10 seconds
2021-03-22 15:30:24 -07:00
DispatchCommit
816bd07570 Improve live detection on channel page
Call bitwave live API immediately on page load.
Reduce poll to 15 second interval
Fix incorrect data parsing
2021-03-22 15:30:23 -07:00
DispatchCommit
76ac4c19b9 Hookup new live detection API 2021-03-22 15:30:22 -07:00
Sean Yesmunt
ca569dc4a7 wire up bitwave api 2021-03-22 15:30:21 -07:00
Sean Yesmunt
376df02434 update strings 2021-03-22 15:30:20 -07:00
Sean Yesmunt
5aaa038d3f random fixes for livestreaming 2021-03-22 15:30:19 -07:00
Sean Yesmunt
6d07d1b672 reset livestream claims when active channel changes 2021-03-22 15:30:18 -07:00
Sean Yesmunt
204f24354f hide date for livestream claims 2021-03-22 15:30:17 -07:00
Sean Yesmunt
0f24f3fdfd use has_no_source to check if claim is a livestream 2021-03-22 15:30:16 -07:00
Sean Yesmunt
e5fc28821a add ENABLE_NO_SOURCE_CLAIMS to config
this sets has_source:true if the variable is true to non-odysee apps won't be shown livestream claims
2021-03-22 15:30:15 -07:00
Sean Yesmunt
dcd0528fda disconnect from comment websocket when leaving livestream page 2021-03-22 15:30:14 -07:00
Sean Yesmunt
3644eed49b fix first livestream comment not being displayed 2021-03-22 15:30:13 -07:00
Sean Yesmunt
fe3eb1e4c6 fix typo 2021-03-22 15:30:12 -07:00
Sean Yesmunt
3aead19b47 style cleanup 2021-03-22 15:30:11 -07:00
DispatchCommit
874188a973 Allow for specifying a type query to pre-select upload type
e.g. https://odysee.com/$/upload?type=livestream
2021-03-22 15:30:10 -07:00
Sean Yesmunt
372c6d0d9f rename livestream + livestreamsetup pages 2021-03-22 15:30:09 -07:00
DispatchCommit
17d0d9f1e0 default livestream calims state to empty array 2021-03-22 15:30:08 -07:00
DispatchCommit
99ec447bee show list of live stream claims 2021-03-22 15:30:07 -07:00
DispatchCommit
92e320e384 Fix livestream Title Section 2021-03-22 15:30:06 -07:00
DispatchCommit
2ac5ad0201 fix minor bugs
- remove anon option in channel dropdown when livestream tab is selected
- attempt to fill publish form with current active channel name just prior to publishing to (edge condition)
  - edge condition occurs when user fills out form fully. User switches to Post (which allows anon in drop down selector). User selects Anon channel, then switches back to the livestream tab. The form was previously updated with `channel: undefined` but does not get changed when clicking the livestream tab. So we just updated the form one last time prior to publishing as a livestream
- Show most recent livestream claim on livestream setup page instead of first livestream claim
2021-03-22 15:30:05 -07:00
DispatchCommit
70575edfb4 Add link to create livestream claim 2021-03-22 15:30:04 -07:00
Sean Yesmunt
da3e3c8404 add new 'livestream' publish mode 2021-03-22 15:30:03 -07:00
DispatchCommit
40035ae4ad fix lbry-redux import typo 2021-03-22 15:30:02 -07:00
Sean Yesmunt
73f593ddb3 bring in livestream changes from odysee 2021-03-22 15:30:01 -07:00
DispatchCommit
1ef44ce199 Add channel name hex data to streamkey
Also adds individual debug fields to help when debugging a channel verify currently
2021-03-22 15:30:00 -07:00
DispatchCommit
02c0882d90 Create livestream page and generate signed streamkey 2021-03-22 15:29:59 -07:00
DispatchCommit
51a940ed62 Add Go Live to header dropdown 2021-03-22 15:29:58 -07:00
Dispatch
d6fac93d12
Merge pull request #5729 from lbryio/flowF___me
flow fix
2021-03-22 15:26:52 -07:00
zeppi
0da3fbf309 flow fix 2021-03-22 18:19:16 -04:00
infinite-persistence
6697c2a9ce PublishPreview: Add chan icon; fix "anonymous" label
## Issue
Closes 5721: Publish-Preview updates

## Changes
(1) Match the recent "incognito" change that sets the channel to `undefined` via `updatePublishForm`. This change would also cover `null` -- I don't think it's being used to represent something else, so showing "Anonymous" for `null` should be fine.

(2) Added channel icons, so it'll be more obvious to the user if they accidentally selected the wrong channel.
2021-03-21 21:13:35 -04:00
infinite-persistence
5d40a4c9f6 Markdown editor: Remove character limit
## Issue
Closes 5687: Ensure post mode has no text limit

## Changes
- `type="markdown"` can now have unlimited length if clients don't define `textAreaMaxWidth`.
- The internal default limit of 2000 is narrowed down to `type=textarea`.
2021-03-21 21:00:16 -04:00
infinite-persistence
e164fbdeda i18n update 2021-03-21 21:00:16 -04:00
Sean Yesmunt
1aaaf118c5 remove signup nudge in sidebar for lbry.tv 2021-03-21 20:48:27 -04:00
DispatchCommit
954966abbb fix linting errors 2021-03-21 20:36:50 -04:00
r0ckinn
6b8554517c also add keybinds for volume 2021-03-21 20:36:50 -04:00
r0ckinn
6b3dce0450 improve keyboard shortcuts 2021-03-21 20:36:50 -04:00
infinite-persistence
ede83f358d Fix autoplay infinite loop
## Issue
Closes 3661: Autoplay + Related go into loops ( infinite ) sometimes

## GUI
Push the actual "next" item into the top of the list.

## History search
1. Skip if the next item is itself.
2. The URL stored in the history comes in various forms, so a direct comparison won't work.
  - There's also a weird case where the URL differs by just a little (p.09 vs p-09), but with the same claim ID:

lbry://vacuum-tube-computer-p.09-–-building#5212bc8bc63c373e2bf1ebc5b765595ed7b6514d
lbry://vacuum-tube-computer-p-09-–-building#5212bc8bc63c373e2bf1ebc5b765595ed7b6514d

Check the claim_id as well to cover cases like these.
2021-03-21 20:15:33 -04:00
infinite-persistence
59b7975085 Fix lint 2021-03-21 20:15:33 -04:00
infinite-persistence
945a5365f9 Corrected channel_language order 2021-03-21 20:00:16 -04:00
infinite-persistence
035f04fb3e YT-Sync: Add field to select channel
## Issue
Closes 5537: Allow youtube sync new pass language to api

## Notes
- Default language for the selector comes from browser (`navigator.language`)
2021-03-21 20:00:16 -04:00
zeppi
611b07052c get out of (adsense) jail free 2021-03-21 16:51:49 -04:00
Sean Yesmunt
0987876920 hardcode odysee redirect for open.lbry.com links 2021-03-19 18:16:47 -04:00
Sean Yesmunt
63453284dd add lbry.tv is shutting down message 2021-03-19 17:58:05 -04:00
Sean Yesmunt
a8cc4cefb0 remove has_source param until wallet server bug is fixed 2021-03-19 11:57:10 -04:00
infinite-persistence
39790d800a i18n: Notification setting strings 2021-03-19 11:27:10 -04:00
infinite-persistence
895f25cc8c i18n: Reward cards
Note that `subtitle` doesn't need the translation macro as `LbcMessage` would do it.
2021-03-19 11:27:10 -04:00
Sean Yesmunt
3c51e699f6 comment out unused categories 2021-03-19 11:11:02 -04:00
infinite-persistence
605d33331b Support for Category-Page Metadata definition.
## Issue
Part of 4786: Add support for web metadata on category pages

## Note
Remaining task: `category-metadata.js` needs to be filled first.
2021-03-19 11:11:02 -04:00
Sean Yesmunt
e8fdfa7e6c v0.50.1 2021-03-18 18:34:02 -04:00
Sean Yesmunt
85bfffe607 v0.50.1-rc.1 2021-03-18 18:17:23 -04:00
Sean Yesmunt
c08e4eed9c prevent release notes from extending beyond height of app 2021-03-18 18:17:10 -04:00
Sean Yesmunt
49c2d05b48 v0.50.0 2021-03-18 16:26:17 -04:00
Sean Yesmunt
b9cc57b57b v0.50.0-rc.3 2021-03-18 12:07:47 -04:00
Sean Yesmunt
e967f2e1ad add ENABLE_NO_SOURCE_CLAIMS to config
this sets has_source:true if the variable is true to non-odysee apps won't be shown livestream claims
2021-03-18 12:07:27 -04:00
Sean Yesmunt
0eaa5dadcf bump channel search limit to 50 2021-03-17 16:19:13 -04:00
Sean Yesmunt
2d6292bd6f don't show placeholder if claim already exists
so the claim is shown even if we re-resolve it
2021-03-17 16:19:13 -04:00
infinite-persistence
95c4b9a78c Removed livestream strings; Added few more other strings 2021-03-17 11:57:14 -04:00
infinite-persistence
0ae8faa5ff Odysee string sync-up (mostly Livestream strings) 2021-03-17 11:57:14 -04:00
Sean Yesmunt
19023a31d0 ensure lbrytv api status is web only 2021-03-16 22:19:03 -04:00
Sean Yesmunt
239b0fbe27 v0.50.0-rc.2 2021-03-16 14:44:42 -04:00
Sean Yesmunt
7b446d1982 show correct amount on post staked amount 2021-03-16 14:38:33 -04:00
Sean Yesmunt
2ddfde1480 use button-toggle group for page title 2021-03-16 12:04:39 -04:00
infinite-persistence
475256e63a Uploads: Add 'All,Uploads,Reposts' filter
## Issue
- Closes item 2 of 4563: Publish page + reposts
- Requires [lbry-redux::392](https://github.com/lbryio/lbry-redux/pull/392/files)

Also removed the redundant double spinner.
2021-03-16 12:04:39 -04:00
infinite-persistence
b467873f0b Notification bell shows is_read, not is_seen
## Issue
Closes 5664: notification bell shows is_read, not is_seen
2021-03-16 11:39:52 -04:00
infinite-persistence
ddc5a65c49 Settings button: Fix typo that's causing error message.
Not really sure if the attribute is needed or not, but retained just in case.
2021-03-16 11:27:38 -04:00
Sean Yesmunt
0011102393 update changelog 2021-03-15 16:28:20 -04:00
Sean Yesmunt
3571753f4c v0.50.0-rc.1 2021-03-15 16:19:32 -04:00
Sean Yesmunt
9ae28bb66d bump changelog 2021-03-15 16:19:13 -04:00
Sean Yesmunt
af4e1afd59 bump lbry-sdk and fix build warning 2021-03-15 16:19:13 -04:00
Victor Shyba
1251262e22 status -> wallet_status on wallet_status call 2021-03-15 16:19:13 -04:00
Victor Shyba
8a016eccb2 remove check for online 2021-03-15 16:19:13 -04:00
Victor Shyba
588fc7a047 fix for connection_status -> wallet.connected 2021-03-15 16:19:13 -04:00
infinite-persistence
c7d7bef1d7 vjs: Narrow down changes to just playback rate
## Changes
- Restore original code for how Volume and Mute is restored.
- Playback rate will be only change that gets "re-restored" in "loadedmetadata".
2021-03-15 15:03:15 -04:00
infiinte-persistence
83912627de vjs: Fix 'Video-setting persistence broken'
## Issue
5513: Video-setting persistence broken

## Notes
- Per videojs recommendation, the setting-restoration should be done after the video has been loaded, so the action was moved to `loadedmetadata`. This fixed the volume slider problem, and should have fixed the playbackRate too.
- For playbackRate, there is another special case where it gets reset to 1 (refer to comments in code).
2021-03-15 15:03:15 -04:00
infiinte-persistence
09c1cfeb8f vjs: Fix 'Video showing previous audio clip's thumbnail instead'
## Issue
5450: Video showing previous audio clip's thumbnail instead

## Notes
`createVideoPlayerDOM` depends on `isAudio`
2021-03-15 15:03:15 -04:00
infiinte-persistence
9ce6ecc923 Lint fixes
I just wanted to make the lint fixes in a separate commit to make the diff's for the next commit clearer.
2021-03-15 15:03:15 -04:00
Sean Yesmunt
859cb5c645 bump lbry-redux 2021-03-15 14:22:49 -04:00
infinite-persistence
48fa49c98b Fix repost author incorrectly labelled as Annoymous
## Issue
- Closes 5673: Reposts are all listed under "Annoymous"
- Requires `lbry-redux::391`
2021-03-15 14:22:49 -04:00
infinite-persistence
9fadf3850f Take 'incognito' into account when reposting
## Issue
Fixes 5661: can't choose anonymous from channel on repost page
2021-03-15 14:22:49 -04:00
infinite-persistence
d91530b0c8 Markdown: don't convert '[label](uri)' to embeds.
## Issue
Closes 4936: Don't process markdown formatting as lbry:// url previews

## Approach
Preamble:
 - We want to convert plain `https://lbry.tv/befreeonlbry` to an embed, but not `[blah](https://lbry.tv/befreeonlbry)`.
 - At the markdown/remark level, both formats resolve to the same node type, having a `link` and a `text`, with the 'text' being auto-filled with the `href` if there is no label.

Fix by assuming the link is the non-labelled format if the `text` is the same as `href`.

This opens up one corner-case that we can't handle, which is when the user explicitly set the label using the href, e.g. `[https://lbry.tv/befreeonlbry](https://lbry.tv/befreeonlbry)`. This will still resolve to an embed. There's not enough data at the parsed level differentiate this case -- we would need to parse the content ourself before `remark`, which I think is not worth it.

## Aside/Reminder
If you see that the link doesn't resolve to an embed regardless of the format used, that's probably just due to `5636: Disable video previews in comments/posts made by channels below a certain channel staked level`
2021-03-15 13:31:17 -04:00
DispatchCommit
7ddace3266 Fix invalid DOM 2021-03-15 13:19:07 -04:00
Sean Yesmunt
7dccba5813 only use new post styling for markdown 2021-03-12 11:54:37 -05:00
infinite-persistence
49532920a6 Desktop: set CHANNEL_STAKED_LEVEL_VIDEO_COMMENTS to 0 2021-03-12 10:38:16 -05:00
Sean Yesmunt
2c90ad2136 bump lbry-redux 2021-03-12 10:38:16 -05:00
infinite-persistence
469e9cddc0 Handle remaining usages of MarkdownPreview
- Channel About
  - description: seems handy to have a preview, so pulled in the "allowed" logic.
  - email: shouldn't render preview at all
  - website: shouldn't render preview at all

- Publish Preview:
  - description: there's not enough height anyway, so don't render preview.
2021-03-12 10:38:16 -05:00
infinite-persistence
0d850742f5 Disable video previews in Comments and Post if author is below a certain level. 2021-03-12 10:38:16 -05:00
infinite-persistence
9192828505 Move getChannelLevel to a selector. Requires accompanying lbry-redux PR. 2021-03-12 10:38:16 -05:00
Sean Yesmunt
dbbe499a86 fix share link to use SHARE_DOMAIN_URL 2021-03-12 09:18:17 -05:00
Sean Yesmunt
bd42418ff3 hide notification filter on mobile 2021-03-12 08:51:50 -05:00
infinite-persistence
4cc2f28f3d Notification: re-order header and actions to look like Uploads page. 2021-03-12 08:51:50 -05:00
infinite-persistence
7a66be1d54 Add filtering on notifications page - 5193
## Issue
Closes 5193: Add filtering on notifications page

## Approach
- Add a combo box, and simply filter out the notifications based on the combo box value.
- Selection state is persistent, but reset to All if there are unread ones when entering the page.
- Tell the user that "no notifications" could be due to the filter.
2021-03-12 08:51:50 -05:00
Sean Yesmunt
7702477e71 better posts styling 2021-03-11 14:12:59 -05:00
Sean Yesmunt
4e9a4f41c8 bump lbryinc and add additional pending status for youtube transfer page 2021-03-09 21:54:11 -05:00
infinite-persistence
19c5132ac5 Fix unencoded StatusBar on Desktop 2021-03-09 16:17:57 -05:00
infinite-persistence
a33087440c Fix timestamp regex error
## Issue
https://discord.com/channels/362322208485277697/363087331475062785/817972023347249153

## Change
Open up the range as per YT, indirectly fixing the regex mistake.
2021-03-09 16:05:00 -05:00
DispatchCommit
11fdbcaee5 add videoFetchDuration to typedef 2021-03-09 16:04:40 -05:00
DispatchCommit
1f3035b2f9 remove console.log for linter 2021-03-09 16:04:40 -05:00
DispatchCommit
d47b6eae0c Track duration for initial video fetch time
this may help identify degraded services and poor user experience.
2021-03-09 16:04:40 -05:00
infinite-persistence
dc1be2791f Wunderbar: Use typical Home/End behavior instead of ReachUI's.
## Issue
- Closes "Wunder: Keyboard typing confusion" (https://discord.com/channels/362322208485277697/377895389992321064/784309720293965824)
- Closes 5316: "Home and End keys not working in search box"

## New behavior
Home/End key now behaves like it normally would in a typical text box, i.e.:
- Brings you to the start or end position.
- Adding a <Shift> key also selects the text from the current position.

To select the top or bottom item in the Suggestion Popup List, use Ctrl+Home/End instead (without this change, it was just Home/End previously).

## Approach
Adding the listener at the element level allows us to run it before the component's listener.
2021-03-09 15:52:57 -05:00
infinite-persistence
31ec01542f Update changelog with recent customer-facing changes. 2021-03-09 15:44:50 -05:00
DispatchCommit
db2e1aafb1 rename getHls to getVhs
adds deprecation warning and allows for backwards compatibility
2021-03-09 15:31:29 -05:00
DispatchCommit
d6aa72ed94 hls options is deprecated. Use vhs instead.
Fixes this video.js warning:
VIDEOJS: WARN: Using hls options is deprecated. Use vhs instead.
2021-03-09 15:31:29 -05:00
Dispatch
6b50d4e7b8 upgrade directly to node 14
no one is going to wait days for CICD checks to pass
2021-03-09 15:27:56 -05:00
Dispatch
909b81c4ba Adds node 14 CICD testing
Begin preparation for upgrading to Node.js 14 which is still in Active LTS
2021-03-09 15:27:56 -05:00
infinite-persistence
af8b683308 videojs: Localize + add shortcut tooltip
## Issue
Partially closes 3041: Display/hint what keyboard shortcuts are available in videos
(minus the "all shortcuts" overlay -- saving that for another day)
2021-03-08 14:13:56 -05:00
Sean Yesmunt
db1b2909e8 fix placeholder tile margin 2021-03-08 14:05:02 -05:00
Sean Yesmunt
659c9937b4 pass second argument to doResolveUris correctly 2021-03-08 14:05:02 -05:00
infinite-persistence
c92fc2e16b Batch-resolves channel page query
Closes 5597: batch resolves on channel search page

Do a batch-resolve immediate after getting the results and before setting the result variable, as the latter would result in the Claim* components resolving individually.

I enabled `returnCachedClaims` -- I assumed that's a reasonable thing to do. I don't see other places use it, though, so highlighting it here.
2021-03-08 14:05:02 -05:00
infinite-persistence
05383701af Restore video loading circle
## Issue
5554: Video: loading circle sometimes does not appear until 2nd click

## What's happening
videojs behavior:
(a) A `src` change makes the Play button re-appear.
(b) An `onPlay` (or `play()`) makes the button go away.

Due to the `m3u8` header async fetch (i.e. return is potentially delayed), the initial `onPlay` (which cleared the button) that happened after user clicked Play gets negated by a potentially-delayed `src` change.

# Changes
- Manually hide the play button that is induced by the change in `src`. In the fetch-delay scenario mentioned above, the player continues to be in a 'playing' state anyway.
- But don't hide the button if paused externally (e.g. browser-level)
Restore video loading circle
2021-03-08 13:28:25 -05:00
Sean Yesmunt
7d3653d787 fix lint 2021-03-08 13:21:43 -05:00
Sean Yesmunt
15123d161d remove extra un-needed MenuButton component 2021-03-08 12:50:07 -05:00
infinite-persistence
90b559618c ClaimPreview: use new MenuList instead of context-menu (works for both Desktop and Web)
## Issue
- Second attempt at 5500: Allow right click + report feature on tiles
- Related: PR_5531

## Notes
Although the link can already be easily copied on web, the menu item is still retained for consistency between the platforms.
2021-03-08 12:50:07 -05:00
zeppi
b2c643d7f1 bump 2021-03-08 12:31:19 -05:00
zeppi
2be8575afb display signing channel for tips 2021-03-08 12:31:19 -05:00
dependabot[bot]
e52ad0c2f8 Bump elliptic from 6.5.3 to 6.5.4
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.3 to 6.5.4.
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](https://github.com/indutny/elliptic/compare/v6.5.3...v6.5.4)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-08 12:20:30 -05:00
dependabot[bot]
6a2c90d9ec Bump elliptic from 6.5.3 to 6.5.4 in /web
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.3 to 6.5.4.
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](https://github.com/indutny/elliptic/compare/v6.5.3...v6.5.4)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-08 12:20:24 -05:00
DispatchCommit
1d12fc8102 hide quality selector by default 2021-03-08 12:08:12 -05:00
infinite-persistence
1e4c79cf06 Don't clear all notifications when only 1 is clicked.
## Issue:
Closes 5515: All videos marked as read when clicking a single notification from notification list

## Change:
- Augment `doReadNotifications` to only clear the given IDs. If the argument is `null` or is not a valid array (e.g. when used as a click handlers, the click event object is passed in), all notifications will be cleared.

- Augment `NOTIFICATION_READ_COMPLETED` to only clear the given IDs.

## Notes:
- Wasn't sure of the API will fail if the ID is invalid, so I start from `unreadNotifications` first, then only filtering it further with the given ID. Otherwise, we could just skip the `unreadNotifications` filtering.
2021-03-08 11:41:04 -05:00
infinite-persistence
2e49421960 Lint - separated commit to make the next diff clearer 2021-03-08 11:41:04 -05:00
infinite-persistence
35955f067d Add SITE_HELP_EMAIL in strings to ease Odysee string merge and maintenance. 2021-03-08 11:33:33 -05:00
infinite-persistence
dbdb9fcfe9 i18n update - block and mute 2021-03-08 11:33:33 -05:00
infinite-persistence
e361289c06 Don't close main player when editing comments
https://discord.com/channels/362322208485277697/363087331475062785/815132676293918730

- Renamed `closeInlinePlayer` to `clearPlayingUri` to reflect it's actual function.
- Add additional check to see if the current video is actually inline before closing it.

Wanted to refactor out an actual `closeInlinePlayer`, but let's wait until there are more usages.
2021-03-08 11:21:57 -05:00
infinite-persistence
7521ac53a3 Linux: Don't add extra call to associate 'lbry://'
## Issue
Closes 4729: LBRY desktop auto-sets itself as default application for opening html files in Linux file managers like nemo after logout and login or a cold/warm boot

- https://gitlab.freedesktop.org/xdg/xdg-utils/-/issues/180
    - It appears that there is a piece of code in xdg that defaults the type to 'text/html' if the parameter is empty. I'm not sure if that's entirely xdg's fault, or it's the way Electron's `setAsDefaultProtocolClient` uses it.

## Changes
In Linux Mint at least, it seems like the `protocols` entry in `electron-builder.json` is enough to associate the LBRY protocol to this app. The extra `setAsDefaultProtocolClient` seems unnecessary.

My test method:
With `setAsDefaultProtocolClient` removed for Linux,
- <a href="lbry://xxx"> still opens the app.
- <a href="lbry://xxx"> does not open the app if the `protocols` entry is removed from `electron-build.json` (confirming that it's doing it's job).
2021-03-08 11:21:41 -05:00
zeppi
b6d613fe47 re-unify icons with master 2021-03-08 11:08:23 -05:00
DispatchCommit
9be8a3036c Move videojs sass file
Looking at a few other files hoping to understand the convention for components, I moved the videojs.scss file to where all CSS related files appear to be in the project.
2021-03-05 16:51:45 -05:00
DispatchCommit
6eebf8ff46 replace todo with link to explanation 2021-03-05 16:51:45 -05:00
DispatchCommit
46f58c63c8 Pull styling out out into it's own file
Also restores the CSS for vjs-overlay which I commented out previously for *some* reason (but I don't know why, and it doesn't seem to make a difference whether I comment it out or not)
2021-03-05 16:51:45 -05:00
DispatchCommit
d21a4fe8ab Remove intermediate accent-color sass var
Replaced with direct usage of `var(--color-primary);`
2021-03-05 16:51:45 -05:00
DispatchCommit
3fb0ac80ae Prevent user from highlight selecting UI 2021-03-05 16:51:45 -05:00
DispatchCommit
0b20f73841 Fix theatre mode button 2021-03-05 16:51:45 -05:00
DispatchCommit
5a6743a4ce Bring in the initial styling 2021-03-05 16:51:45 -05:00
Sean Yesmunt
6345549c88 increase file thumbnail size in cdn url 2021-03-05 16:51:38 -05:00
Sean Yesmunt
e2bd128cc4 show click through on channel page for muted channels too 2021-03-05 16:51:38 -05:00
Sean Yesmunt
88c5552352 don't pass blocked/muted to claim_search on the homepage to prevent double claim_search calls
if blockedList takes a while to return, the app would call claim_search once without the blocked list, then again with the block list. just hide them in the ui
2021-03-05 16:51:38 -05:00
Sean Yesmunt
84bab875bc improve mobile style and initial blocked screen loading 2021-03-05 16:51:38 -05:00
Thomas Zarebczan
eb0e0cb7cc Better downtime / reboot status message
Fixed
2021-03-03 19:40:15 -05:00
infinite-persistence
92ff0fd336 i18n update
`Enter your %SITE_NAME% password`
Currently used in Odysee. When merging to Odysee later, there will be another string at the same location but with the `%DOMAIN%` as the variable. That is now obsolete and can be removed during the merge.
2021-03-03 15:33:20 -05:00
Sean Yesmunt
ea74a66dbd
New moderation tools: block & mute (#5572)
* initial support for block/mute

* hide blocked + muted content everywhere

* add info message for blocked/muted characteristics

* sort blocked list by most recent block first

* add 'blocked' message on channel page for channels that you have blocked

* cleanup

* delete unused files

* always pass mute/block list to claim_search on homepage

* PR cleanup
2021-03-03 13:50:16 -05:00
infinite-persistence
277a1d5d1f Tell user to reduce 'Channel Description' when exceeded tx-limit.
## Issue
Second attempt at 5571: Limit description length on channel edit

## Changes
- Undo #5573: restore limit back to 5000.
- Translate the `bad-txns-claimscriptsize-toolarge (code 16)` error into `Transaction limit reached. Try reducing the Description length.`
2021-03-03 11:52:51 -05:00
infinite-persistence
df17504649 Allow any URL from known domain in wunderbar
## Issue
Closes 5598: support all URLs regarldess of domain on search bar

## Changes
- There is already a KNOWN_APP_DOMAINS[], so I just used that.
2021-03-03 11:20:50 -05:00
dependabot[bot]
0f096af963 Bump three from 0.93.0 to 0.125.0
Bumps [three](https://github.com/mrdoob/three.js) from 0.93.0 to 0.125.0.
- [Release notes](https://github.com/mrdoob/three.js/releases)
- [Commits](https://github.com/mrdoob/three.js/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-03 11:20:44 -05:00
dependabot[bot]
9c1a0d8633 Bump urijs from 1.19.5 to 1.19.6 in /web
Bumps [urijs](https://github.com/medialize/URI.js) from 1.19.5 to 1.19.6.
- [Release notes](https://github.com/medialize/URI.js/releases)
- [Changelog](https://github.com/medialize/URI.js/blob/gh-pages/CHANGELOG.md)
- [Commits](https://github.com/medialize/URI.js/compare/v1.19.5...v1.19.6)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-03 11:05:34 -05:00
Sean Yesmunt
3fba7f0797 show file page even if blacklistedOutpoints is empty 2021-03-03 11:04:47 -05:00
infinite-persistence
c67b92cfa4 Markdown "Create Link": highlight URL instead of label
## Issue
Closes 4505: Highlight url instead of text when embedding a link

_Too used to Github's editor behavior, so was annoyed at this too. It makes more sense to highlight the URL placeholder since that needs to be filled._

For to the unhighlighted case, then the cursor should be at the Label.

## Changes
Until the upstream code decides to fix it (`github::Ionaru/easy-markdown-editor/issues/85`), we'll handle it ourself by listing to the 'changes' events.
2021-03-01 14:44:16 -05:00
Sean Yesmunt
812a06f001 disable trending classics 2021-03-01 10:55:43 -05:00
infinite-persistence
9d03968b5e Add tooltip to embed's Title and Home button
## Issue
- Most titles don't fit the embed container width. I wish to know what the title is without having to click on it first.
- Also, add clarity that the LBRY icon brings you Home.
2021-03-01 10:27:52 -05:00
infinite-persistence
fd0e56daa6 Fix broken markdown editor border color
## Issue
The border became white recently, which made it look "focused" all the time. Confirmed with Sean that the change wasn't intentional.
2021-02-26 11:04:25 -05:00
infinite-persistence
94fe68eb45 Fix URI comparison in 'doDeleteFileAndMaybeGoBack'
## Issue
4959: Deleting MD from downloads list causes spinning icon to run forever

5077: player doesn't close when video deleted
2021-02-25 15:38:04 -05:00
infinite-persistence
351890decf Fix 'isPlaying' to reflect 'playing' instead of 'primary' URI
## Issue
4959: Deleting MD from downloads list causes spinning icon to run forever

5077: player doesn't close when video deleted
2021-02-25 15:38:04 -05:00
infinite-persistence
dabdc980a1 Fix 'makeSelectIsPlaying' to look at 'playing' instead of 'primary'.
## Issue
4959: Deleting MD from downloads list causes spinning icon to run forever

5077: player doesn't close when video deleted
2021-02-25 15:38:04 -05:00
infinite-persistence
891207df3d Lint
Separating out the lint fixes just to make the next commmit clearer.
2021-02-25 15:38:04 -05:00
zeppi
05740cad75 send perm url for referrals 2021-02-25 14:44:40 -05:00
infinite-persistence
217ae3ecf7 Fix broken 'Open File' icon color
## Issue
The removal of `svg` from `media__subtitle` in 09b689ba made the icon black.

## Fix
Both 'Open File' and 'Download' should have the same css class.
2021-02-24 11:23:06 -05:00
infinite-persistence
bf5b2370e2 Restore 'duplicate claim URL' msg while waiting for 3704
## Issue
5575: Show "URL already used" msg when publishing

Seems like `uri` just got accidentally removed from db87125d
2021-02-24 11:23:01 -05:00
infinite-persistence
aa8b1f8602 Lowered 'Channel Description' limit from 5000 to 3000 chars.
## Issue
Closes 5571: Limit description length on channel edit

## Notes
Similar to the previous value of '5000', this is a trial-and-error estimate.
2021-02-24 11:11:06 -05:00
infinite-persistence
52878efae1 Touch up for active channel refactoring
## Issue
5563: don't allow URL change on edit
2021-02-23 16:11:00 -05:00
infinite-persistence
e7adc607fa Revert "use cdn for channel thumbnails"
This reverts commit b231b1a51f.

## Issue
5564: Don't use optimized URLs on channel pages (profile/banner)
2021-02-23 12:53:16 -05:00
infinite-persistence
3d6304bc25 Revert optimized URLs on channel banner.
## Issue
5564: Don't use optimized URLs on channel pages (profile/banner)
2021-02-23 12:53:16 -05:00
zeppi
f0912f9051 entering lbry url with colon goes to url, doesnt error 2021-02-23 12:42:11 -05:00
infinite-persistence
1c14928f44 Odysee strings 2021-02-23 10:44:15 -05:00
infinite-persistence
c52ddb9e03 i18n update: Creator Tools 2021-02-23 10:44:15 -05:00
Sean Yesmunt
68d13f9ff3 downgrade remark-breaks 2021-02-20 18:23:52 -05:00
Sean Yesmunt
d71f977a55 Revert "Remove hack in Timestamp parser now that 'remark-breaks' has addressed the original problem."
This reverts commit 02792b8f0c.
2021-02-20 18:23:52 -05:00
Sean Yesmunt
45a603c1d6 update changelog 2021-02-19 15:23:24 -05:00
infiinte-persistence
6f67af5ec3 Make educated guess if 'no result' is due to language filter, and warn user. 2021-02-19 14:46:19 -05:00
infiinte-persistence
545ee46a02 Add content type and language filters to channel page
## Issue
5219: Add content type and language filters to channel page

## Notes
There is a quirk in the dropdown (see 5542: Language filter doesn't reflect effective setting if language is outside of `SEARCHABLE_LANGUAGES[ ]`)
2021-02-19 14:46:19 -05:00
infiinte-persistence
f660267dc5 Untranslated strings
Included the memes as well per translator request. I've been excluding it since I wasn't sure if memes can be translated, but I guess they can change it to something equivalent in their language.
2021-02-19 14:28:50 -05:00
infiinte-persistence
530bd14f4a Add tooltip for bell icon
I bypassed the lint checker so that it'll be easier to merge this change to `odysee` branch.
2021-02-19 14:28:50 -05:00
infiinte-persistence
9e9183aa95 Clear dev-web warnings and lint 2021-02-19 14:18:44 -05:00
infiinte-persistence
b0cc1d7f51 Add context-menu to report claims directly from Preview/Tile 2021-02-19 14:18:44 -05:00
infiinte-persistence
2f7880a697 Remove 'Copy' from Claim context-menu; Do nothing when menu is blank.
'Copy' is always disabled for the case of Claim previews since no text is selected. User cannot select text anyway since a left-up event would invoke the Claim's `click` event. 'Copy' is there simply because of re-using `openContextMenu`.
2021-02-19 14:18:44 -05:00
infiinte-persistence
cf832d14b4 Make both claimPreview and claimPreviewTile use the same context-menu function.
Consolidated into `openClaimPreviewMenu`. We'll only update that function next time for context-menu additions.
2021-02-19 14:18:44 -05:00
togekk1
232841ef5e Open ZoomableImage viewer when clicking on the image 2021-02-19 14:05:51 -05:00
togekk1
00017e241e Revert "Open the actual image when clicking on the image viewer"
This reverts commit 6a99947ac2d3fada59438d818599af6b68dcebd8.
2021-02-19 14:05:51 -05:00
togekk1
6144b08cf9 Open the actual image when clicking on the image viewer 2021-02-19 14:05:51 -05:00
Franco Montenegro
8d21acf64c Use stringify version for options in searchOptions component 2021-02-19 13:50:13 -05:00
Franco Montenegro
ddae2e8ac5 Disable claim type search if filtering by channel 2021-02-19 13:50:13 -05:00
Franco Montenegro
62c7216b43 Fix mediaType filter parameter in search 2021-02-19 13:50:13 -05:00
zeppi
e2d30e708e decode uri before test /$/ 2021-02-19 09:40:36 -05:00
Sean Yesmunt
e39c6c6208 bump lbry-redux 2021-02-18 23:43:56 -05:00
Sean Yesmunt
67192ea23f hide staked indicator on creator likes in comments 2021-02-18 22:29:11 -05:00
jessopb
06681017ee
Try some popcorn (#5553)
* try popcorn

* different icon

* icon attr

* popcorn2

* popcorn3

* popcorn to movies
2021-02-18 22:10:25 -05:00
Sean Yesmunt
05b998c0ee fix anonymous option showing black text in channel selector 2021-02-18 17:24:31 -05:00
Sean Yesmunt
675cb3119d deny iframes of for non embed pages 2021-02-18 17:24:31 -05:00
Sean Yesmunt
b231b1a51f use cdn for channel thumbnails 2021-02-18 17:24:31 -05:00
keikari
391190f33f Small fixes for amounts
Needed amounts seemed odd, did small fix hopefully the right way
2021-02-18 16:14:20 -05:00
Sean Yesmunt
647d2f74df Revert "Use fallback image for broken thumbnails"
This reverts commit 6aae5987e6.
2021-02-18 15:57:38 -05:00
Sean Yesmunt
9442d586ee Revert "Add fallback thumbnail for streams"
This reverts commit 0423d30a4e.
2021-02-18 15:57:38 -05:00
Sean Yesmunt
0a8d43e932 lint 2021-02-18 14:11:10 -05:00
Sean Yesmunt
b98178c97a yarn 2021-02-18 14:11:10 -05:00
DispatchCommit
d5d97fe6e7 cleanup plugin code 2021-02-18 14:11:10 -05:00
DispatchCommit
0fff2542b7 Add custom quality selector plugin
Adds custom video.js hls quality selector plugin
This allows the quality selector plugin to stay active and listen for source changes on the player to prevent the need to recreate the player when switching between MP4's and M3U8's
2021-02-18 14:11:10 -05:00
Sean Yesmunt
21523fe707 fix to remove channel thumbnail on lbry.tv 2021-02-18 02:19:26 -05:00
Sean Yesmunt
dc56b2bc93 set first five level amounts 2021-02-18 01:14:39 -05:00
Sean Yesmunt
1329b28af3 improve styling on comment thumbnails on staked indicator placement 2021-02-18 01:14:39 -05:00
Sean Yesmunt
09b689ba1c add channel staked amount indicator on channel thumbnails 2021-02-18 01:14:39 -05:00
infiinte-persistence
d26d76fc70 Theater: hide button when not needed
## Issues
5349: Remove theater mode button from player in comments
5519: Theatre mode button doesn't do anything in full screen mode [Odysse/LBRY desktop app]

## Notes
5349: Wanted to hide for 'markdown' as well, but it seems useful for 'markdown' (to clear the screen from Related), so I did not include it.
2021-02-17 17:56:10 -05:00
infiinte-persistence
8b791cb511 Bump copyright year to 2021 2021-02-17 17:40:00 -05:00
infiinte-persistence
52a5655b26 Remove irrelevant comment (was copy-pasted) 2021-02-17 17:39:54 -05:00
infiinte-persistence
a127fce561 Add Finnish and Norwegian
## Issue
5458: add Finnish/Norwegian languages to supported
2021-02-17 17:39:54 -05:00
Sean Yesmunt
c29dccc1b1 don't set setting until preferences are ready 2021-02-17 17:29:09 -05:00
infiinte-persistence
02792b8f0c Remove hack in Timestamp parser now that 'remark-breaks' has addressed the original problem.
## Issue
Closes 5523: timestamps not interpreted in some cases

## Notes
`remark-breaks` previously kept repeating the same index in the loop, causing some corner-cases to be parsed oddly. I added code to address that.

Later, `remark-breaks` fixed the problem and we recently just bumped up the componnent version. My hack is no longer necesary.
2021-02-16 17:11:07 -05:00
infiinte-persistence
8e9f6eb905 Bump lbry.tv upload limit to 4GB as well, plus lint fixes (matching Odysee) 2021-02-16 15:02:46 -05:00
infiinte-persistence
642e872296 Change upload limit to a variable to better handle site differences.
`const TV_PUBLISH_SIZE_LIMIT_STR_GB = '2';`

The above needs to be changed when merging into Odysee.
2021-02-16 15:02:46 -05:00
infiinte-persistence
4b8f2dfdd6 Wallet string cleanup and more 2021-02-16 15:02:46 -05:00
Sean Yesmunt
5ef19696a9 correctly set active channel on edits 2021-02-15 12:11:19 -05:00
Sean Yesmunt
92fc807e3d fix missing prop 2021-02-11 14:01:22 -05:00
Sean Yesmunt
3fec0da6e6 bump lbry-redux 2021-02-11 10:45:34 -05:00
Sean Yesmunt
ca4ca536fa set active channel in publish form on load 2021-02-11 10:45:34 -05:00
Sean Yesmunt
02019edcb7 cleanup styles 2021-02-11 10:45:34 -05:00
Sean Yesmunt
1f117e43bd add initial support for comment API outside of SDK 2021-02-11 10:45:34 -05:00
Sean Yesmunt
db87125dc8 refactor 'active' channel usage across the app 2021-02-11 10:45:34 -05:00
zeppi
bce86ae8a3 remove adsense script when blocked 2021-02-10 10:19:50 -05:00
Franco Montenegro
c59d827a39 Refactor last release changes component to use markdown preview component 2021-02-09 11:04:03 -05:00
Franco Montenegro
d6663074e3 Fetch and display last release changes from GitHub in modal upgrade & modal auto update downloaded 2021-02-09 11:04:03 -05:00
Sean Yesmunt
0ffa85f86f Revert "Bump react-router from 5.1.2 to 5.2.0"
This reverts commit cecde2058b.
2021-02-08 12:57:37 -05:00
dependabot-preview[bot]
4f75fa6a94 Bump @reach/auto-id from 0.12.1 to 0.13.0
Bumps [@reach/auto-id](https://github.com/reach/reach-ui/tree/HEAD/packages/auto-id) from 0.12.1 to 0.13.0.
- [Release notes](https://github.com/reach/reach-ui/releases)
- [Commits](https://github.com/reach/reach-ui/commits/v0.13.0/packages/auto-id)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-08 11:56:58 -05:00
dependabot-preview[bot]
b6f3559621 Bump prettier from 1.19.1 to 2.2.1
Bumps [prettier](https://github.com/prettier/prettier) from 1.19.1 to 2.2.1.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/1.19.1...2.2.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-08 11:56:44 -05:00
dependabot-preview[bot]
cecde2058b Bump react-router from 5.1.2 to 5.2.0
Bumps [react-router](https://github.com/ReactTraining/react-router) from 5.1.2 to 5.2.0.
- [Release notes](https://github.com/ReactTraining/react-router/releases)
- [Changelog](https://github.com/ReactTraining/react-router/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ReactTraining/react-router/compare/v5.1.2...v5.2.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-08 11:56:33 -05:00
zeppi
d03cfa0b2d bump 2021-02-05 16:55:06 -05:00
zeppi
d01f3da174 mass claim tips
bump

ui pass

move mass tip unlock to modal

better track wallet operations in progress
2021-02-05 16:55:06 -05:00
Sean Yesmunt
03f419a49c use totalBalance for check to show empty wallet page or not 2021-02-05 13:12:15 -05:00
zeppi
c784c5393d tags: keep placeholder if only special tags 2021-02-04 22:36:07 -05:00
zeppi
bbf92b06f0 disable comments label 2021-02-04 22:36:07 -05:00
zeppi
40408e25be review changes 2021-02-04 20:55:36 -05:00
zeppi
18682fdac0 cleanup2 2021-02-04 20:55:36 -05:00
zeppi
dc65f6140b cleanup 2021-02-04 20:55:36 -05:00
zeppi
a85c9a1f48 provide tags for disabling comments 2021-02-04 20:55:36 -05:00
Sean Yesmunt
d47d55098e add immediately spendable balance inline wherever credits are used 2021-02-04 18:02:04 -05:00
zeppi
913c3c22b6 stub no_ads_channel_ids for non odysee 2021-02-04 11:53:56 -05:00
Jarred Kennedy
b4dd6f3bfa Do not propogate double click event on search input 2021-02-04 10:41:22 -05:00
johnspirit
e95896fd08 fix wrong word to 2021-02-03 23:39:40 -05:00
Franco Montenegro
0423d30a4e Add fallback thumbnail for streams 2021-02-03 17:02:58 -05:00
Franco Montenegro
6aae5987e6 Use fallback image for broken thumbnails 2021-02-03 17:02:58 -05:00
dependabot-preview[bot]
11e4480328 Bump unist-util-visit from 1.4.1 to 2.0.3
Bumps [unist-util-visit](https://github.com/syntax-tree/unist-util-visit) from 1.4.1 to 2.0.3.
- [Release notes](https://github.com/syntax-tree/unist-util-visit/releases)
- [Commits](https://github.com/syntax-tree/unist-util-visit/compare/1.4.1...2.0.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-03 16:25:07 -05:00
dependabot-preview[bot]
e74170507c Bump hast-util-sanitize from 1.3.1 to 3.0.2
Bumps [hast-util-sanitize](https://github.com/syntax-tree/hast-util-sanitize) from 1.3.1 to 3.0.2.
- [Release notes](https://github.com/syntax-tree/hast-util-sanitize/releases)
- [Commits](https://github.com/syntax-tree/hast-util-sanitize/compare/1.3.1...3.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-03 16:24:53 -05:00
zeppi
ac6bf00b93 script error 2021-02-03 00:13:04 -05:00
zeppi
958fb0b085 fix ads blacklist 2021-02-03 00:13:04 -05:00
zeppi
e8de12bf91 fix flow in ads component 2021-02-02 21:18:13 -05:00
zeppi
11931d4037 provide ad blacklisting 2021-02-02 21:18:13 -05:00
infiinte-persistence
64874c773b Search: Get uris with same query as doSearch
## Issue
2731: Searches with forward slashes returns no results

## Change
The slash-removal came from (0db20834f9).

Removing the 2 `replace(/\//, ' ')` from lbry-desktop fixes it, but this PR assumes the slash-removal is intentional to cover something else. So, we'll make the Search side do the same thing to match what's happening in `doSearch`.

A little bit ugly, but there's already a comment about this in `makeSelectSearchUris`, so it'll probably get cleaned up in the future.
2021-02-02 15:08:52 -05:00
dependabot-preview[bot]
d78d965183 Bump copy-webpack-plugin from 4.6.0 to 5.1.2
Bumps [copy-webpack-plugin](https://github.com/webpack-contrib/copy-webpack-plugin) from 4.6.0 to 5.1.2.
- [Release notes](https://github.com/webpack-contrib/copy-webpack-plugin/releases)
- [Changelog](https://github.com/webpack-contrib/copy-webpack-plugin/blob/v5.1.2/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/copy-webpack-plugin/compare/v4.6.0...v5.1.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-02 14:26:51 -05:00
dependabot-preview[bot]
49dab0fb3a Bump react-simplemde-editor from 4.1.0 to 4.1.3
Bumps [react-simplemde-editor](https://github.com/RIP21/react-simplemde-editor) from 4.1.0 to 4.1.3.
- [Release notes](https://github.com/RIP21/react-simplemde-editor/releases)
- [Commits](https://github.com/RIP21/react-simplemde-editor/compare/v4.1.0...v4.1.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-02 12:32:43 -05:00
dependabot-preview[bot]
44de139236 Bump @babel/preset-flow from 7.10.1 to 7.12.1
Bumps [@babel/preset-flow](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-flow) from 7.10.1 to 7.12.1.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.12.1/packages/babel-preset-flow)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-02 12:32:31 -05:00
dependabot-preview[bot]
7510703b5a Bump connected-react-router from 6.7.0 to 6.8.0
Bumps [connected-react-router](https://github.com/supasate/connected-react-router) from 6.7.0 to 6.8.0.
- [Release notes](https://github.com/supasate/connected-react-router/releases)
- [Commits](https://github.com/supasate/connected-react-router/compare/v6.7.0...v6.8.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-02 12:32:21 -05:00
infiinte-persistence
0699c55229 videojs: make control bar slightly transparent.
## Issue
Closes #5392 better support for non-standard resolution videos

It's not actually cropped -- the control bar was opaque.

## Change
Use 0.80 opacity to somewhat see the full picture.

Using 0.5 or less would be even better, but due to the default tiny size of the control bar, the text becomes unreadable (it's readable if you zoom the browser to get larger text). Don't want to mess with sizing for now, so using 0.80 to get the best of both worlds.
2021-02-01 17:06:49 -05:00
dependabot-preview[bot]
9f9da5fd64 Bump babel-plugin-add-module-exports from 1.0.2 to 1.0.4
Bumps [babel-plugin-add-module-exports](https://github.com/59naga/babel-plugin-add-module-exports) from 1.0.2 to 1.0.4.
- [Release notes](https://github.com/59naga/babel-plugin-add-module-exports/releases)
- [Commits](https://github.com/59naga/babel-plugin-add-module-exports/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-01 14:51:29 -05:00
infiinte-persistence
44458c2b8c Fix 5438: Keep floating player in view area
## Issue
5438: Keep floating player in view area

## Changes
- Restore correct z-index
    -  The bug came as a side effect of cbac2174. Redo cbac2174 to cover both close button and floating player.

- Remove wobbling when dragging to bottom-right.
    -  The extra gap introduced is fighting against react-draggable. If gaps are needed, handle it entire ourselves or do it somewhere in react-draggable; neither is worth the effort, so the gap was removed.
2021-02-01 14:51:04 -05:00
Sean Yesmunt
19275f8f3d flowfixme 2021-02-01 13:50:16 -05:00
DispatchCommit
599f9e106e use smooth scrolling
Tells browser to use smooth scrolling to animate scroll
https://developer.mozilla.org/en-US/docs/Web/API/Window/scrollTo
2021-02-01 13:50:16 -05:00
Daniela Narvaez
1698ca8775 Small change based on code review 2021-02-01 10:58:37 -05:00
Daniela Narvaez
1f66132cd2 Small change based on code review 2021-02-01 10:58:37 -05:00
Daniela Narvaez
ec875a6cdf "Fix Long commenter name issue" 2021-02-01 10:58:37 -05:00
dependabot-preview[bot]
aa6fcbddc4 Bump chalk from 2.4.2 to 4.1.0
Bumps [chalk](https://github.com/chalk/chalk) from 2.4.2 to 4.1.0.
- [Release notes](https://github.com/chalk/chalk/releases)
- [Commits](https://github.com/chalk/chalk/compare/v2.4.2...v4.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-01 10:49:10 -05:00
dependabot-preview[bot]
5be380abdc Bump mammoth from 1.4.9 to 1.4.16
Bumps [mammoth](https://github.com/mwilliamson/mammoth.js) from 1.4.9 to 1.4.16.
- [Release notes](https://github.com/mwilliamson/mammoth.js/releases)
- [Changelog](https://github.com/mwilliamson/mammoth.js/blob/master/NEWS)
- [Commits](https://github.com/mwilliamson/mammoth.js/compare/1.4.9...1.4.16)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-01 10:48:56 -05:00
Franco Montenegro
77d90b807e Display default image for channel thumbnail on error 2021-01-29 14:50:36 -05:00
Dispatch
b27395607c Add all proper react lifecycle hooks
Fixes 1 of 52 linting warnings
2021-01-29 14:49:12 -05:00
dependabot-preview[bot]
30678e3c41 [Security] Bump electron from 9.3.1 to 9.4.0
Bumps [electron](https://github.com/electron/electron) from 9.3.1 to 9.4.0. **This update includes a security fix.**
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/master/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v9.3.1...v9.4.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-01-29 13:40:27 -05:00
dependabot-preview[bot]
618d8823b9 Bump remark-react from 4.0.3 to 8.0.0
Bumps [remark-react](https://github.com/remarkjs/remark-react) from 4.0.3 to 8.0.0.
- [Release notes](https://github.com/remarkjs/remark-react/releases)
- [Changelog](https://github.com/remarkjs/remark-react/blob/main/changelog.md)
- [Commits](https://github.com/remarkjs/remark-react/compare/4.0.3...8.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-01-29 13:39:40 -05:00
Sean Yesmunt
f28707504a Revert "Make dropdown menus actually dropdown"
This reverts commit a2046be0ee.
2021-01-29 11:54:39 -05:00
Sean Yesmunt
5314100714 Revert "use variable for header height"
This reverts commit b68600d978.
2021-01-29 11:54:39 -05:00
Sean Yesmunt
17f0997ec3 Revert "animate in from top instead of bottom"
This reverts commit 153ebbca63.
2021-01-29 11:54:39 -05:00
dependabot-preview[bot]
a8dc336df6 Bump reselect from 3.0.1 to 4.0.0
Bumps [reselect](https://github.com/reduxjs/reselect) from 3.0.1 to 4.0.0.
- [Release notes](https://github.com/reduxjs/reselect/releases)
- [Changelog](https://github.com/reduxjs/reselect/blob/master/CHANGELOG.md)
- [Commits](https://github.com/reduxjs/reselect/compare/v3.0.1...v4.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-01-29 11:12:00 -05:00
dependabot-preview[bot]
97263149fb Bump uuid from 8.3.0 to 8.3.2
Bumps [uuid](https://github.com/uuidjs/uuid) from 8.3.0 to 8.3.2.
- [Release notes](https://github.com/uuidjs/uuid/releases)
- [Changelog](https://github.com/uuidjs/uuid/blob/master/CHANGELOG.md)
- [Commits](https://github.com/uuidjs/uuid/compare/v8.3.0...v8.3.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-01-29 11:11:33 -05:00
Jeffrey Fisher
1155f5512d Fix linting errors.
Closes #4027
2021-01-29 10:10:10 -05:00
dependabot-preview[bot]
4dd17832ef Bump @hot-loader/react-dom from 16.12.0 to 16.13.0
Bumps [@hot-loader/react-dom](https://github.com/hot-loader/react-dom) from 16.12.0 to 16.13.0.
- [Release notes](https://github.com/hot-loader/react-dom/releases)
- [Commits](https://github.com/hot-loader/react-dom/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-01-29 10:09:42 -05:00
Franco Montenegro
d7f9d7ef7f Remove markdown from og and description header tags 2021-01-29 10:09:11 -05:00
dependabot-preview[bot]
9bd9b5c121 Bump @types/three from 0.93.31 to 0.103.2
Bumps [@types/three](https://github.com/mrdoob/three.js) from 0.93.31 to 0.103.2.
- [Release notes](https://github.com/mrdoob/three.js/releases)
- [Commits](https://github.com/mrdoob/three.js/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-01-28 15:35:29 -05:00
zeppi
6a16d8e0cd fix bad lighthouse results 2021-01-28 15:35:15 -05:00
Jeffrey Fisher
4c97cb4ba4 Enable PDF Viewer in App
Closes #2903
2021-01-28 10:21:35 -05:00
dependabot-preview[bot]
77f6bf6fac Bump videojs-logo from 2.0.0 to 2.1.4
Bumps [videojs-logo](https://github.com/tapioca24/videojs-logo) from 2.0.0 to 2.1.4.
- [Release notes](https://github.com/tapioca24/videojs-logo/releases)
- [Changelog](https://github.com/tapioca24/videojs-logo/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tapioca24/videojs-logo/compare/v2.0.0...v2.1.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-01-28 10:21:13 -05:00
dependabot-preview[bot]
2488cc690d Bump dotenv-defaults from 1.1.1 to 2.0.1
Bumps [dotenv-defaults](https://github.com/mrsteele/dotenv-defaults) from 1.1.1 to 2.0.1.
- [Release notes](https://github.com/mrsteele/dotenv-defaults/releases)
- [Commits](https://github.com/mrsteele/dotenv-defaults/compare/v1.1.1...v2.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-01-28 10:19:14 -05:00
dependabot-preview[bot]
9378704701 Bump remark-breaks from 1.0.5 to 2.0.1
Bumps [remark-breaks](https://github.com/remarkjs/remark-breaks) from 1.0.5 to 2.0.1.
- [Release notes](https://github.com/remarkjs/remark-breaks/releases)
- [Commits](https://github.com/remarkjs/remark-breaks/compare/1.0.5...2.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-01-28 10:18:48 -05:00
dependabot-preview[bot]
beccb9cdf0 Bump @reach/rect from 0.2.1 to 0.13.0
Bumps [@reach/rect](https://github.com/reach/reach-ui/tree/HEAD/packages/rect) from 0.2.1 to 0.13.0.
- [Release notes](https://github.com/reach/reach-ui/releases)
- [Commits](https://github.com/reach/reach-ui/commits/v0.13.0/packages/rect)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-01-28 10:18:22 -05:00
dependabot-preview[bot]
b87d27db1d Bump electron-notarize from 0.1.1 to 1.0.0
Bumps [electron-notarize](https://github.com/electron/electron-notarize) from 0.1.1 to 1.0.0.
- [Release notes](https://github.com/electron/electron-notarize/releases)
- [Changelog](https://github.com/electron/electron-notarize/blob/master/.releaserc.json)
- [Commits](https://github.com/electron/electron-notarize/compare/v0.1.1...v1.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-01-28 10:17:32 -05:00
dependabot-preview[bot]
3c1a478ff3 Bump @babel/preset-env from 7.10.2 to 7.12.11
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.10.2 to 7.12.11.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.12.11/packages/babel-preset-env)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-01-28 10:16:59 -05:00
Sean Yesmunt
8c21ec30e8 prevent caching on streaming url requests
Fixes an issue where the browser still thought a file wasn't transcoded because it was serving the cached response
2021-01-27 14:27:27 -05:00
Sean Yesmunt
99d7487bc2 fix quality selector not showing up 2021-01-27 14:27:27 -05:00
DispatchCommit
9a395a0284 remove leftover console log 2021-01-27 12:50:40 -05:00
DispatchCommit
d6e5df540e remove unused player reference 2021-01-27 12:50:40 -05:00
DispatchCommit
3d38739be1 adds vjs player reference to component state 2021-01-27 12:50:40 -05:00
infiinte-persistence
1f48dab312 Remove unnecessary 'reload' at the return statement.
We no longer need to re-render the whole thing..
2021-01-27 12:50:40 -05:00
infiinte-persistence
84bba58d64 Update broken 'Retry' button after videojs refactoring. 2021-01-27 12:50:40 -05:00
dependabot-preview[bot]
b4cf2f85e7 [Security] Bump dot-prop from 4.2.0 to 4.2.1
Bumps [dot-prop](https://github.com/sindresorhus/dot-prop) from 4.2.0 to 4.2.1. **This update includes a security fix.**
- [Release notes](https://github.com/sindresorhus/dot-prop/releases)
- [Commits](https://github.com/sindresorhus/dot-prop/compare/v4.2.0...v4.2.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-01-27 11:01:24 -05:00
infiinte-persistence
33f880758a Thumbnail: Display the same label (recommended ratio) for both URL and UPLOAD.
- Fix i18n concat problem for some languages.
- Display the same label (specifically, the recommended aspect ratio) for both URL and UPLOAD. I think the string "File to upload" can be omitted, but I left it as-is.
- Remove old/unused strings.
2021-01-27 10:21:59 -05:00
infiinte-persistence
7419fefa2d Zoomable image viewer in Markdown (posts and comments)
## Issue
4899: Ability to expand images in markdown posts for viewing
2021-01-27 10:06:31 -05:00
Sean Yesmunt
153ebbca63 animate in from top instead of bottom 2021-01-27 10:05:02 -05:00
DispatchCommit
b68600d978 use variable for header height 2021-01-27 10:05:02 -05:00
DispatchCommit
a2046be0ee Make dropdown menus actually dropdown 2021-01-27 10:05:02 -05:00
DispatchCommit
8ea6ea87ad stop linting my web build files please 2021-01-27 09:45:58 -05:00
Dispatch
4cf9a455bc
add autoplay logic for embedded player (#5399)
Add autoplay logic when player is embedded.

Adds new `autoplay` prop to `VideoJs` component for specifying autoplay value.
2021-01-27 08:49:30 -05:00
zeppi
d04b0f09ba fix ad areas and drivers 2021-01-26 19:39:22 -05:00
Sean Yesmunt
6ee0f13383 update changelog 2021-01-26 16:38:25 -05:00
Daniela Narvaez
e9d28918cd Add type definition for new prop in comment component 2021-01-26 16:34:50 -05:00
Daniela Narvaez
0a2f9fa0be Fixing inline videos in comments 2021-01-26 16:34:50 -05:00
Franco Montenegro
10a83bbfe9 Fix first claim nsfw result being hidden even if nsfw is enabled 2021-01-26 16:31:01 -05:00
Sean Yesmunt
a178cdba08 update changelog 2021-01-26 15:36:59 -05:00
Sean Yesmunt
1faca2dcee v0.49.4 2021-01-26 15:34:05 -05:00
Sean Yesmunt
de51b23a18 v0.49.4-rc.5 2021-01-26 13:54:26 -05:00
Sean Yesmunt
3d58c4eca6 fix typo 2021-01-26 11:19:18 -05:00
Sean Yesmunt
e318bb38b4 update changelog 2021-01-26 11:02:23 -05:00
Sean Yesmunt
7b1f645caf v0.49.4-rc.4 2021-01-26 11:01:03 -05:00
DispatchCommit
52f883be4e fix linting errors 2021-01-26 11:00:41 -05:00
DispatchCommit
ee28648852 remove console.log statements 2021-01-26 11:00:41 -05:00
DispatchCommit
d8564cda5a hack-y solution to losing player context
use a global window variable to store the reference to the current video.js instance.
2021-01-26 11:00:41 -05:00
DispatchCommit
68ae2d571f only react to source prop updates 2021-01-26 11:00:41 -05:00
DispatchCommit
7c8383f2dc attempt to persist a single video.js instance
Continually recreating video.js instance on render is bad.
Instead, persist a single instance, and simply update the source and poster on the existing instance.
2021-01-26 11:00:41 -05:00
infiinte-persistence
912489cce0 Make zoom level persistent on Desktop
- uses local storage.
- for 'web', the browser is already handling that.
2021-01-26 10:20:59 -05:00
infiinte-persistence
5573374aa9 Wallet string cleanup 2021-01-26 10:14:58 -05:00
Sean Yesmunt
0c8c4938d9 move channel selection to top of publish form 2021-01-25 17:51:58 -05:00
Sean Yesmunt
d3244593a5 v0.49.4-rc.3 2021-01-25 14:53:15 -05:00
Sean Yesmunt
549e7bce75 allow builds for non-prs (breaks fork PR builds) 2021-01-25 14:53:07 -05:00
Sean Yesmunt
e4b43abe05 v0.49.4-rc.2 2021-01-25 14:36:18 -05:00
Sean Yesmunt
e3283fa4ad use open.lbry.com for share links 2021-01-25 14:24:57 -05:00
Sean Yesmunt
08f2d7cc40 bump sdk to 0.88.0 2021-01-25 14:24:57 -05:00
Sean Yesmunt
d2dda1f629 update changelog 2021-01-25 14:24:57 -05:00
Sean Yesmunt
6903836ebe add 'immediately spendable' balance on header balance hover 2021-01-25 14:24:57 -05:00
Sean Yesmunt
00cdb5197c remove 32 bit build 2021-01-25 14:24:57 -05:00
Sean Yesmunt
7152f9b04f call install/new after users select privacy options 2021-01-25 14:24:57 -05:00
Sean Yesmunt
d7f95ddd43 fix desktop build 2021-01-25 14:24:57 -05:00
Sean Yesmunt
513e239771 encode embed url too 2021-01-25 13:58:12 -05:00
Sean Yesmunt
26ece81da8 manually encode ' because encodeURIComponent doesn't encode it 2021-01-25 13:58:12 -05:00
zeppi
2adfa8b6b6 sync again 2021-01-25 10:39:40 -05:00
infiinte-persistence
855d13e735 Add "t" as shortcut for Theather Mode 2021-01-25 10:38:25 -05:00
zeppi
a8a26fabd8 simplesite always ads
theme based related ads

test ad layout

logic
2021-01-24 17:32:51 -05:00
zeppi
61ace3566a gads on master 2021-01-23 12:57:09 -05:00
Sean Yesmunt
8552515e34 string cleanup + add available balance to publish/channel create 2021-01-22 11:46:27 -05:00
Jeremy Kauffman
18f1f983ae contribute -> boost 2021-01-22 11:46:27 -05:00
Jeremy Kauffman
79a85db7e4 potential language changes 2021-01-22 11:46:27 -05:00
Sean Yesmunt
5420a6a887 show total balance on wallet page/header 2021-01-22 11:46:27 -05:00
jessopb
2f1fae23cf
vanity referrals (#5353) 2021-01-22 10:47:21 -05:00
Sean Yesmunt
7156f4b36b fix builds for PRs from forks 2021-01-21 14:46:20 -05:00
infiinte-persistence
b767fc4db1 Fix 'Annoymous Reposted' split string. 2021-01-21 14:31:31 -05:00
infiinte-persistence
2bf4a96d09 String fix for 'Support Repost'
- Added to json
- Don't need the context note for this case.
2021-01-21 14:31:31 -05:00
DispatchCommit
bb3354581a fix overrideNative option for vjs
resolves https://github.com/lbryio/lbry-desktop/issues/5323
2021-01-20 21:49:08 -05:00
Sean Yesmunt
21cbb64001 Revert "Add Chromecast support on Google Chrome."
This reverts commit 65ce47a7d1.
2021-01-20 15:14:00 -05:00
Sean Yesmunt
c166060f0d Revert "Pass the title and channel name to Chromecast."
This reverts commit bb828385d0.
2021-01-20 15:14:00 -05:00
zeppi
6ed103b33f shorter timeout 2021-01-19 13:41:10 -05:00
zeppi
a2d93bc7cc fix embed loading hang 2021-01-19 13:41:10 -05:00
infiinte-persistence
bb828385d0 Pass the title and channel name to Chromecast.
I'm a bit wary of adding props to this component due to the 'dispose' call, but I think 'source' and 'claim' will update together, so it shouldn't be an issue?
2021-01-19 10:29:28 -05:00
infiinte-persistence
65ce47a7d1 Add Chromecast support on Google Chrome. 2021-01-19 10:29:28 -05:00
Sean Yesmunt
3bcdd78514 bump lbry-redux 2021-01-19 10:20:11 -05:00
infiinte-persistence
95b4f89e50 Make 'playback rate' persistent
## Issue
5308: Ability to choose default play speed and theatre mode or regular playback size

## Comments
Initially, I used the local storage, as per 'muted' and 'volume' -- I thought that would be appropriate.
Later, I saw that Theater Mode is already using Client Settings, so I re-did everything to match that.

Also, there is an accompanying commit in lbyr-redux.
2021-01-19 10:16:46 -05:00
littlemadhatter
46102c0b3a Update README.md
clarify what to do here
2021-01-19 10:14:22 -05:00
jessopb
b6f79a9f95
bump (#5329) 2021-01-19 00:55:16 -05:00
zeppi
33564b8620 fix lang constant 2021-01-18 14:19:08 -05:00
zeppi
a8cc17624c make clear supporting repost 2021-01-15 10:43:27 -05:00
zeppi
6211c243dd support repost bugfix 2021-01-15 10:43:27 -05:00
zeppi
ccd13f2233 put auth in progress back with timeout 2021-01-15 10:40:34 -05:00
Sean Yesmunt
80a7cbe16f add quality selector to transcoded videos 2021-01-15 10:34:41 -05:00
Sean Yesmunt
ee0bdf3a82 encode claim name in embed url 2021-01-14 11:48:42 -05:00
Sean Yesmunt
72ac5a5437 encode share url parts 2021-01-14 11:48:42 -05:00
Franco Montenegro
d9b8f0310a Fix nsfw parameter in search page 2021-01-13 14:56:12 -05:00
zeppi
93834fb281 redirect to source after repost 2021-01-13 12:47:46 -05:00
Sean Yesmunt
45bc5182ce don't call sync/set for exisitng users that signed in in a different tab
this was causing users to lose their subs before the page refreshed
2021-01-13 11:59:36 -05:00
zeppi
5435dc88d4 langmig 2021-01-13 11:11:58 -05:00
jessopb
e94d4bcd28
repost ui (#5293) 2021-01-13 10:44:44 -05:00
Sean Yesmunt
55182e0b94 remove bad CSS rules 2021-01-13 10:25:40 -05:00
zeppi
554ca1a4f4 two digits and up smaller notif bubble txt 2021-01-12 10:12:28 -05:00
zeppi
eac7e100cc notifications 20+ 2021-01-12 10:12:28 -05:00
jessopb
6cb2377266
Merge pull request #5296 from lbryio/authInProgressTemp
disable authinprogress for now
2021-01-11 18:40:48 -05:00
zeppi
ae032cb557 disable authinprogress for now 2021-01-11 18:39:54 -05:00
jessopb
d3b53f69da
Merge pull request #5295 from lbryio/languagesbad
language map fix
2021-01-11 18:16:12 -05:00
zeppi
68de0a8107 language map fix 2021-01-11 18:14:42 -05:00
Sean Yesmunt
65709e1139 Revert "Fix nsfw parameter in search page"
This reverts commit 4f1bd23442.
2021-01-11 15:01:40 -05:00
Sean Yesmunt
148fa4f4cd call user/signout on signout
fixes sync issues for users with multiple accounts signed in to multiple tabs
2021-01-11 14:31:01 -05:00
Franco Montenegro
4f1bd23442 Fix nsfw parameter in search page 2021-01-11 10:32:14 -05:00
zeppi
72945b45c5 cleaner 2021-01-11 10:30:26 -05:00
zeppi
6fb345dbbc zh languages
bugfix

bugfix3

publish

add zh back for homepage selector

test

revert i18n file

DRY publish language
2021-01-11 10:30:26 -05:00
Sean Yesmunt
7c3ff32496
Add retry message to publish error 2021-01-08 16:38:01 -05:00
Sean Yesmunt
7778896a64 fix lbry.com links triggering lbry:// link file render 2021-01-08 11:32:59 -07:00
dependabot[bot]
26e2816229 Bump urijs from 1.19.2 to 1.19.5 in /web
Bumps [urijs](https://github.com/medialize/URI.js) from 1.19.2 to 1.19.5.
- [Release notes](https://github.com/medialize/URI.js/releases)
- [Changelog](https://github.com/medialize/URI.js/blob/gh-pages/CHANGELOG.md)
- [Commits](https://github.com/medialize/URI.js/compare/v1.19.2...v1.19.5)

Signed-off-by: dependabot[bot] <support@github.com>
2021-01-08 11:10:26 -07:00
Sean Yesmunt
b65934cc7f fix reposts not showing up as winning claim in search suggestions 2021-01-08 09:31:25 -07:00
Sean Yesmunt
d43c4d053e add video theater mode button 2021-01-08 08:27:41 -07:00
Franco Montenegro
b43593a996 When a new reward is acquired, only close modals if the reward comes from reward_code 2021-01-08 08:16:41 -07:00
Franco Montenegro
c09a7e8bbc Properly restore maximized window from taskbar if required 2021-01-08 08:12:16 -07:00
Daniela Narvaez
a65162c204 Change list style in comments to be inside. 2021-01-08 08:10:43 -07:00
Sean Yesmunt
eb398c419a turn it back on but head 2021-01-06 23:03:23 -05:00
Sean Yesmunt
d92f6d3e18 comment out redirect handling for transcoded streams 2021-01-06 18:40:38 -05:00
Thomas Zarebczan
09decf796a
String! 2021-01-06 01:28:16 -05:00
jessopb
8b6d31658e
Merge pull request #5264 from lbryio/sendId
buffer id
2021-01-05 17:01:17 -05:00
zeppi
65d524dfdf buffer id 2021-01-05 16:29:04 -05:00
jessopb
f538ab3670
Merge pull request #5259 from lbryio/feat-consolidateUtxosRebase
Feat consolidate utxos rebase
2021-01-05 14:33:45 -05:00
zeppi
1b3bc0f4e3 support consolidating txos
improvements

actual values

bump

bump

devtools revert

bugfix

bump
2021-01-05 12:38:55 -05:00
Sean Yesmunt
2436c3eb70 add extra check for video source response 2021-01-04 15:19:54 -05:00
Sean Yesmunt
f59cdb1929 fix for hls support 2021-01-04 15:04:36 -05:00
infiinte-persistence
dd1d956bfe i18n fix 2021-01-04 09:57:15 -05:00
Sean Yesmunt
3317d32ae2 fix weird search suggestion behavior 2020-12-30 23:03:46 -05:00
infiinte-persistence
d0f42ce6b3 Desktop: Enable 'Alt+Left/Right' for history navigation.
## Why
- Consistent behavior across Web and Desktop.
2020-12-30 14:55:24 -05:00
infiinte-persistence
cbac21746f FloatingPlayer: Fix close button not working when AutoplayCountdown is visible.
## Issue
5221: floating player won't close during autoplay countdown

## Change
Change the z-index when hover to ensure it is really on top of everything.
2020-12-30 14:35:11 -05:00
Sean Yesmunt
e677fa21d5 update changelog 2020-12-30 14:02:58 -05:00
Sean Yesmunt
7ccfcdd167 v0.49.3 2020-12-30 13:19:28 -05:00
Sean Yesmunt
e2d26d75c4 v0.49.3-rc.2 2020-12-30 12:59:35 -05:00
Sean Yesmunt
2bfc20ef41 fix blockchain headers path in github actions build 2020-12-30 12:59:35 -05:00
Sean Yesmunt
663fa3eec1 v0.49.3-rc.1 2020-12-29 22:40:59 -05:00
Sean Yesmunt
4ce716d607 download blockchain headers before building desktop app 2020-12-29 22:40:59 -05:00
Sean Yesmunt
c7aa91311d v0.49.2 2020-12-29 10:39:26 -05:00
Sean Yesmunt
533d9c7760 v0.49.2-rc.7 2020-12-28 16:56:07 -05:00
Sean Yesmunt
5d8822df40 try uploading everything 2020-12-28 16:55:28 -05:00
Sean Yesmunt
6aa07de973 v0.49.2-rc.6 2020-12-28 16:15:20 -05:00
Thomas Zarebczan
58fc61ac0f
Fix vanity claim resolution
We have a CQ hack to include spent claims (CQ bug), but this broke vanity names.
2020-12-28 16:00:16 -05:00
Sean Yesmunt
a43f49cef2 v0.49.1-rc.5 2020-12-28 15:05:08 -05:00
Sean Yesmunt
83b96fd0c0 bump sdk to 0.87.0 2020-12-28 15:05:00 -05:00
Sean Yesmunt
a7f3252f17 v0.49.1-rc.4 2020-12-28 15:03:04 -05:00
zeppi
e4eb8f4a26 review test 2020-12-28 15:00:15 -05:00
zeppi
ad420670a7 changes, bump 2020-12-28 15:00:15 -05:00
zeppi
c6a1a7539a bump 2020-12-28 15:00:15 -05:00
zeppi
30a9bb010f show loading while searching
fixes

bump

bump
2020-12-28 15:00:15 -05:00
Sean Yesmunt
24161f93e5 put yrbl config back on v3 player api 2020-12-28 14:57:27 -05:00
Sean Yesmunt
7f175094bb change config images to use v4 streaming api 2020-12-28 13:44:38 -05:00
Sean Yesmunt
a8cb4d7d57 update videojs import to include http-streaming module
so we can support hls streams
2020-12-28 13:44:38 -05:00
zeppi
5fa57e1859 no resolve undefined pls 2020-12-28 13:16:37 -05:00
jessopb
070d051e16
Merge pull request #5234 from lbryio/spam-warning
email spam reminder
2020-12-24 11:21:01 -05:00
zeppi
91f25abf2c email spam reminder 2020-12-23 16:51:41 -05:00
jessopb
f84eb929cb
Merge pull request #5230 from lbryio/fix-i18nhomepage
i18n homepage sections
2020-12-23 11:47:02 -05:00
zeppi
cbe4cb1cf1 i18n homepage sections 2020-12-23 09:45:45 -05:00
Sean Yesmunt
f93a40aa18 quickly fix embed redirecting 2020-12-22 21:39:40 -05:00
Sean Yesmunt
f2d00f2ad9 Revert "Revert "remove unnecessary redirect in server""
This reverts commit 63d8f1731e.
2020-12-22 21:36:58 -05:00
Sean Yesmunt
63d8f1731e Revert "remove unnecessary redirect in server"
This reverts commit e21b5be6f6.
2020-12-22 21:27:22 -05:00
jessopb
75b1bf3a77
Merge pull request #5225 from lbryio/fix-searchMat
fix search
2020-12-22 16:27:47 -05:00
zeppi
3de290f04f fix search 2020-12-22 14:11:07 -05:00
Sean Yesmunt
53d3efe895 update youtube sync text for channels that don't qualify 2020-12-21 22:12:21 -05:00
Sean Yesmunt
a0123c2a6f fix earnings per view style 2020-12-21 22:12:21 -05:00
Thomas Zarebczan
01ee79b022
Fix syntax in SQL 2020-12-21 16:16:05 -05:00
Thomas Zarebczan
9a5d0954df
Workaround CQ spent bug 2020-12-21 15:42:55 -05:00
Baltazar Gomez
a09216da76 remove typo 2020-12-21 14:08:52 -05:00
btzr-io
35653bb115 prevent front-matter render on markdown 2020-12-21 14:08:52 -05:00
infiinte-persistence
49abbecbd7 mobile-ui: Fix missing chromecast button in Android-Chrome
## Issue:
5119 "Video: Mobile UI + overlay for keyboard shortcut feedback" was disabled because the feature broke the chromecast button in Android Chrome
2020-12-21 12:15:45 -05:00
infiinte-persistence
4a4247180f Revert "comment out mobileUI function until chromecast bug is fixed"
This reverts commit d8c4ff62cb.
2020-12-21 12:15:45 -05:00
infiinte-persistence
4b03a30121 Fix initial pause state for the Autoplay Countdown
## Issue
5204: Don't autoplay when commenting/video off screen

## Change
Previously, the checking was only done during a scroll event. We also need to check if the user has already scroll down before the component was invoked.
2020-12-21 12:14:31 -05:00
infiinte-persistence
0d374725d6 i18n update 2020-12-21 12:11:59 -05:00
Sean Yesmunt
5d1b1f5293 update placeholder 2020-12-21 10:36:55 -05:00
Sean Yesmunt
187cbd9695 fix doSetPlayingUri arguments 2020-12-21 10:31:34 -05:00
infiinte-persistence
a0ec5097d9 Enable tile layout for 'Your Tags' page
## Why
- Something I miss every time I switch to lbry.tv.
- Consistent with other search pages like Discover.
2020-12-18 14:02:50 -05:00
infiinte-persistence
4760f00050 Fix "Not Now"
## Issue:
https://discord.com/channels/362322208485277697/646840786662719488/788694493532520458

## Change:
It's either adding the non-capitalized "Not now" to the list, or change the usage to "Not Now".

Chose the latter since the rest of the modal (and other usage) is using the capitalized format.
2020-12-18 14:02:18 -05:00
infiinte-persistence
267c019d7a Timestamp: Handle Safari + better parsing
## Issue
- The previous regex uses lookback (I think ES2018?) which Safari has yet to implement.
- There were a few bugs in the previous regex too, like missing out multiple timestamps in a line, or parsing "62:02" as "2:02" (although YT does this as well).
- The previous method searched too deep (matchAll) on each 'locate' call, which was wasteful.
2020-12-18 11:35:47 -05:00
infiinte-persistence
897128a168 Restore "Handle timestamp in Markdown."
This reverts the revertion in:
- 85f8965d44.
- d3f0e471e5.
2020-12-18 11:35:47 -05:00
Sean Yesmunt
b9f8fd73f1 fix sidebar for mobile 2020-12-17 13:55:58 -05:00
Sean Yesmunt
e21b5be6f6 remove unnecessary redirect in server 2020-12-16 16:56:06 -05:00
Sean Yesmunt
77739c971a slightly improve mobile style on top page 2020-12-16 14:58:30 -05:00
Sean Yesmunt
047e84ac8c winning claim style pass 2020-12-16 14:58:30 -05:00
Sean Yesmunt
1aefdba5ab fix wunderbar suggestions spacing 2020-12-16 14:58:30 -05:00
Sean Yesmunt
9ecd9457d3 remove extra package 2020-12-16 10:52:22 -05:00
Sean Yesmunt
9d273fb91f xcode 10.3 for mac 2020-12-16 10:52:22 -05:00
Sean Yesmunt
be702e12f7 delete travis config 2020-12-16 10:52:22 -05:00
Sean Yesmunt
cc568fb8cf working 2020-12-16 10:52:22 -05:00
Sean Yesmunt
0cc3af28a3 flow fixes 2020-12-16 10:52:22 -05:00
Sean Yesmunt
124f5ad331 Create deploy.yml
hello github actions
2020-12-16 10:52:22 -05:00
jessopb
bb4cb337ec
Merge pull request #5167 from lbryio/repostFromSearchRebase
New repost flow
2020-12-16 10:32:29 -05:00
zeppi
f825533afa cleanup 2020-12-16 10:28:57 -05:00
zeppi
b491973414 bump 2020-12-16 09:50:35 -05:00
zeppi
99ab165a8f New repost flow
Clearer display of takeover amounts
Repost from empty search result, from top page, or from claim

review changes

final touches

bump

empty comment copy

they

emptier

validation cleanup

extra
2020-12-16 09:47:28 -05:00
Sean Yesmunt
73dea00e41 revert encode share url 2020-12-15 19:44:37 -05:00
Sean Yesmunt
d8c4ff62cb comment out mobileUI function until chromecast bug is fixed 2020-12-15 17:03:32 -05:00
Sean Yesmunt
1168cd291b update changelog 2020-12-15 16:22:40 -05:00
Sean Yesmunt
87d54d9c88 show 'SITE_NAME view reward' message on txo list table 2020-12-15 16:22:40 -05:00
Sean Yesmunt
e6b502dd4a hide duplicate purchase page link on sidebar 2020-12-15 16:22:40 -05:00
Sean Yesmunt
0d4659472b remove old ads code and disable videojs mobile plugin 2020-12-15 14:10:57 -05:00
Sean Yesmunt
62dfaf0709 use thumbnail cdn for cover photos 2020-12-15 13:59:08 -05:00
Sean Yesmunt
71b948f2fc redirect to channel creation page when reacting to comment with no channel 2020-12-15 13:59:08 -05:00
Sean Yesmunt
dd582f4009 encode lbry url when shared from modal 2020-12-15 13:59:08 -05:00
Sean Yesmunt
664e969730 don't search if term is empty 2020-12-15 13:59:08 -05:00
Sean Yesmunt
540a527a61 swap seen & read notification behavior 2020-12-15 13:59:08 -05:00
Sean Yesmunt
8eedefddd3 v0.49.1 2020-12-15 13:58:27 -05:00
Sean Yesmunt
1df7e8be2c v0.49.1-rc.1 2020-12-15 13:58:27 -05:00
Sean Yesmunt
138d84155b fix opening files externally on desktop 2020-12-15 13:58:27 -05:00
Sean Yesmunt
d3f0e471e5 Revert "Tokenize and format timestamps in Markdown"
This reverts commit 93709fbeb8.
2020-12-14 22:31:18 -05:00
Sean Yesmunt
85f8965d44 Revert "Handle timestamp in Markdown."
This reverts commit 3f1913e5f4.
2020-12-14 22:31:18 -05:00
infiinte-persistence
3f1913e5f4 Handle timestamp in Markdown.
The videojs player is exposed through the 'window' object.
2020-12-14 12:12:50 -05:00
infiinte-persistence
93709fbeb8 Tokenize and format timestamps in Markdown
1. Find and tokenize timestamps, i.e. "XX:XX:XX" strings.
2. Transform 'timestamp' nodes to Links.
2020-12-14 12:12:50 -05:00
infinite-persistence
04fbde49ec
Video: Mobile UI + overlay for keyboard shortcut feedback (#5119)
Co-authored-by: import <>
2020-12-14 11:40:59 -05:00
infiinte-persistence
4a88b3f847 Missing strings reported by translators 2020-12-14 11:37:24 -05:00
Sean Yesmunt
e648f15fdc lower thumbnail quality to 80 2020-12-11 17:08:20 -05:00
Sean Yesmunt
f420785bfb fix casing 2020-12-11 17:01:59 -05:00
Sean Yesmunt
9c5ffdc1bf deal with completed transfers on youtube transfer page 2020-12-11 17:01:59 -05:00
Sean Yesmunt
38a916dcc4 fix view_count getting called multiple times 2020-12-11 17:01:59 -05:00
Sean Yesmunt
6ac3b0d6cd add sub/upload count to youtube transfer status component 2020-12-11 17:01:59 -05:00
Sean Yesmunt
9a90a00c83 fix spacing for unauth users 2020-12-11 17:00:32 -05:00
Sean Yesmunt
a5e9557e4b enable thumbnail cdn for all file thumbnails 2020-12-11 15:47:06 -05:00
Sean Yesmunt
05d625484d improve jumpiness on search suggestions 2020-12-11 14:37:06 -05:00
Sean Yesmunt
120300643f improved mobile-search experience 2020-12-11 14:37:06 -05:00
dependabot[bot]
d3bfdfe1ec Bump ini from 1.3.5 to 1.3.7
Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.7.
- [Release notes](https://github.com/isaacs/ini/releases)
- [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.7)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-11 10:18:50 -05:00
dependabot[bot]
61b33b7050 Bump ini from 1.3.5 to 1.3.7 in /web
Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.7.
- [Release notes](https://github.com/isaacs/ini/releases)
- [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.7)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-11 10:18:30 -05:00
infiinte-persistence
b35e68c6d3 Don't parse a 'mailto:' into a lbry link.
## Issue
5130: Support mailto hyperlinks / urls in markdown

## Change
The markdown components already support mailto, just that the logic here ended up making it a 'ClaimLink'
2020-12-11 10:18:07 -05:00
infiinte-persistence
a75840ab4d Bump changelog to 0.49.0 2020-12-11 10:18:07 -05:00
infiinte-persistence
fab7fb3662 Remove dup strings 2020-12-11 10:18:07 -05:00
Sean Yesmunt
b0026a562a pass x-lbry-auth-token to apis status call for email verified users 2020-12-10 17:35:03 -05:00
Sean Yesmunt
cffc70fb6b disable 2020-12-10 17:28:38 -05:00
Sean Yesmunt
996a5c40b1 use new cdn for images
default to using one in the env
2020-12-10 17:01:29 -05:00
Thomas Zarebczan
b86f748700
Fix following discover on Odysee 2020-12-10 16:58:31 -05:00
Sean Yesmunt
c2213d9008 new test 2020-12-09 18:03:40 -05:00
Sean Yesmunt
dccb1c93e1 comment out cdn - need to fix env so I don't need to make this change 2020-12-09 12:48:36 -05:00
Sean Yesmunt
45afd22e9e v0.49.0 2020-12-09 11:26:07 -05:00
Sean Yesmunt
cfeefbed23 v0.49.0-rc.16 2020-12-08 17:19:19 -05:00
Sean Yesmunt
f9c37ecc70 bump lbry-sdk to 0.86.1 2020-12-08 17:19:11 -05:00
infiinte-persistence
d8787cb4c5 Handle scrolling for ClaimListDiscover that exists in the middle of a page.
## Issue
5090: When sorting channels, switching between Trending/Top/New returns viewer to the top of the page

## Approach
- Add an optional parameter to `ClaimListDiscover/Header` to add an additional anchor ID when building a new search URL.
- Clients then add the anchor ID on the desired location.
- The code that handles the scrolling then checks if the `location` contains an anchor hash. If it does, we'll scroll to that element; else, the existing behavior will be used.
2020-12-08 16:01:32 -05:00
infiinte-persistence
4b53d1267c Consolidate method of reseting scroll position
## Issues
(1) 4783: New search query does not reset to the top
(2) The current way that Tag Search resets the position can be overridden by the AppRouter's call.

## Approach
Listen to `search` changes as well. This basically covers any search param changes.

Components should probably not call `window.scrollTo` directly as the AppRouter's call might override it.
2020-12-08 16:01:32 -05:00
Sean Yesmunt
a23b3c8d26 check for thumbnail cdn in config before using 2020-12-08 15:15:29 -05:00
Sean Yesmunt
e81d11fd55 Revert "Revert "use cdn for thumbnails""
This reverts commit d257c312c1.
2020-12-08 15:15:29 -05:00
Sean Yesmunt
d257c312c1 Revert "use cdn for thumbnails"
This reverts commit f7279c1d49.
2020-12-08 14:24:49 -05:00
Sean Yesmunt
f7279c1d49 use cdn for thumbnails 2020-12-08 13:54:23 -05:00
Sean Yesmunt
4b9155e7c9 v0.49.0-rc.15 2020-12-08 11:45:41 -05:00
Sean Yesmunt
caae63b44b refresh homepage if clicking 'home' while on the homepage 2020-12-08 11:45:18 -05:00
Sean Yesmunt
0ef0966226 fix moonpay on desktop 2020-12-08 11:45:18 -05:00
Sean Yesmunt
b9bd7d3f7b v0.49.0-rc.14 2020-12-08 10:28:07 -05:00
Sean Yesmunt
e802827299 bump lbry-sdk to 0.86.0 2020-12-08 10:27:58 -05:00
zeppi
f8d09994f6 top page selects channel tab if channel is winning 2020-12-07 22:24:08 -05:00
Sean Yesmunt
495cf89a38 remove overflow: auto but keep width the same 2020-12-07 11:47:19 -05:00
Electron - Mark Firth
459a4752ed Wider Post Area
Wider post area for bigger text, while keeping the character count the same or less.
Removed `overflow: auto;` as it was not required and was creating unnecessary scrollbars when margins were incorrectly calculated.
2020-12-07 11:47:19 -05:00
infiinte-persistence
fe5eea2a08 String update 2020-12-07 11:16:56 -05:00
zeppi
cf1d051288 no tiny sidebar signup 2020-12-04 09:22:36 -05:00
Electron - Mark Firth
f0a961b8f8 Darker Area for Code
A darker and more colourful preview code area for a more comfortable and stylish look.
2020-12-04 00:02:46 -05:00
Sean Yesmunt
00c6d80ec9 only search for 25 results on channel page 2020-12-03 16:42:22 -05:00
Sean Yesmunt
16e45c452f fix search not happening after changing search options 2020-12-03 16:42:22 -05:00
Sean Yesmunt
4e0e1e2f2b cleanup 2020-12-03 16:18:04 -05:00
Sean Yesmunt
0de87521b8 add placeholder for top wunderbar suggestion 2020-12-03 15:47:06 -05:00
Sean Yesmunt
fac2050485 pass readyState to buffer analytics api 2020-12-03 15:00:21 -05:00
Sean Yesmunt
1ff2dec93f update changelog 2020-12-03 12:59:00 -05:00
dependabot[bot]
4f9c72277b Bump highlight.js from 9.18.1 to 9.18.5
Bumps [highlight.js](https://github.com/highlightjs/highlight.js) from 9.18.1 to 9.18.5.
- [Release notes](https://github.com/highlightjs/highlight.js/releases)
- [Changelog](https://github.com/highlightjs/highlight.js/blob/9.18.5/CHANGES.md)
- [Commits](https://github.com/highlightjs/highlight.js/compare/9.18.1...9.18.5)

Signed-off-by: dependabot[bot] <support@github.com>
2020-12-03 12:46:17 -05:00
infiinte-persistence
ca5f53e7f5 String update 2020-12-03 12:46:03 -05:00
infiinte-persistence
409fff7ee4 5115: eliminate scrollbar jumping in the sidebar 2020-12-03 12:45:48 -05:00
infiinte-persistence
112e8aeaa0 Sidebar: left-justify "followed channels" in lbry.tv
## Issue
5094: Followed Channel list mistakenly centered on smaller screens?

## Changes
Copied the fix from the Odysee branch.
2020-12-03 12:45:32 -05:00
Sean Yesmunt
30d8a0406d wunderbar improvements 2020-12-03 12:39:12 -05:00
jessopb
dc679add87
Merge pull request #5076 from lbryio/sync-embed-auth
Prevent multiple embeds from creating new users
2020-12-02 14:46:51 -05:00
zeppi
960a0277aa Prevent multiple embeds from creating new users
try with cookies

tweak

tweak 2

tweak3

tweak4

tweak5

try localstorage

tweakerino

final

try testing for sessionStorage

store sessAvail globally
2020-12-02 13:50:10 -05:00
Sean Yesmunt
828dab73a8 fix list bullets from being cut off 2020-11-30 23:33:43 -05:00
dependabot[bot]
d6abf5b8df Bump dot-prop from 4.2.0 to 4.2.1 in /web
Bumps [dot-prop](https://github.com/sindresorhus/dot-prop) from 4.2.0 to 4.2.1.
- [Release notes](https://github.com/sindresorhus/dot-prop/releases)
- [Commits](https://github.com/sindresorhus/dot-prop/compare/v4.2.0...v4.2.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-11-30 14:52:49 -05:00
zeppi
b736444306 player started event (embedded) 2020-11-30 14:52:05 -05:00
zeppi
adde73605d player loaded analytics event (for embedded/not) 2020-11-30 14:52:05 -05:00
infiinte-persistence
c059f3dced Fix double translation in homepage
## Issue
The "Trending for xxx" string was being resolved and translated twice, so it often re-appears in the string list during development.

## Change
It seems like `getHomepage` is repopulated every time, so I think it is safe to just resolve and translate `title` at that level.

## Extra
Remove unused "Creator analytics are down" message per recent changes.
2020-11-30 14:47:16 -05:00
Thomas Zarebczan
52e2d3b77a
Update README.md 2020-11-30 12:39:06 -05:00
Sean Yesmunt
919c2bd22a record channel in analytics on first run 2020-11-30 11:50:26 -05:00
jessopb
33a4ab340f
Merge pull request #5099 from lbryio/fix-hpLangDefaults
fix homepage and language defaults
2020-11-25 13:10:22 -05:00
zeppi
0495dff904 fix homepage and language defaults 2020-11-25 13:04:07 -05:00
Sean Yesmunt
2740f908b0 v0.49.0-rc.13 2020-11-23 14:12:48 -05:00
zeppi
d7856b7618 settings use null when matching current browser language
default language functions

bugfix1

bugfix2

bugfix4
2020-11-23 14:12:31 -05:00
Sean Yesmunt
3a3ffcd983 v0.49.0-rc.12 2020-11-23 14:04:05 -05:00
Sean Yesmunt
7a29ebf398 bump lbry-sdk to 0.85.1 2020-11-23 14:03:51 -05:00
Sean Yesmunt
d0773cec4a only use custom scrollbar on non-mac 2020-11-23 14:03:51 -05:00
Sean Yesmunt
d012300fe9 remove double 'discover' link showing up in mobile side nav 2020-11-23 14:03:51 -05:00
infiinte-persistence
28e7fec338 videojs: Add shortcuts for Playback-Rate
">" (shift + .) = Speed Up
"<" (shift + ,) = Speed Down
2020-11-23 13:12:22 -05:00
infiinte-persistence
e12506feef videojs: Squeeze in 'playback rate' button for Mobile Portrait.
## Issue
- Personally annoyed of having to switch to landscape just to change the setting. There's still space for it.
- This serves as a quick fix until "4712: Video: Allow access to all control in small screen" is figured out
2020-11-23 13:05:58 -05:00
infiinte-persistence
dc87f48040 String list update 2020-11-23 13:05:30 -05:00
infiinte-persistence
7fb7560f75 Limit scrollbar customization to: (1) web (2) linux/windows app
The only downside to this new implementation is that the top-most (or right-most?) scrollbar won't get the customization. Any other sub-components (e.g. sidebar) will get the customization.

My guess is that the "top-most" scrollbar is above the `main-wrapper`. I'm not sure if we can (or should) add another className higher than App.

The impetus for the customization was the ugly sidebar anyway, so at least we covered that.
2020-11-23 11:00:41 -05:00
infiinte-persistence
c9831d1949 Customize scrollbar to fit the theme colors
## Issue
4727: Sidebar's transient scrollbar doesn't fit in the Dark Theme

## Approach
The 'webkit' API works on Chrome, but Firefox ignores it and uses it's own fancy scrollbar when 'webkit' is used (can't seem to change any properties). It's better than the current look, but still doesn't fit our theme, plus it makes the product look different on different browsers.

Firefox now supports the new 'scrollbar' API, so we can now tweak the scrollbar, but the API only provides limited attributes.

Don't wanna complicate things by using Javascript, so we'll use Firefox's limited attributes as the common denominator and just live with a plain, rectangle scroll bar BUT with better color to match the theme.
2020-11-23 11:00:41 -05:00
Sean Yesmunt
d4bc2ca9a5 remove down message for creator analytics 2020-11-20 18:28:39 -05:00
Sean Yesmunt
d1b07d2094 v0.49.0-rc.11 2020-11-20 12:01:37 -05:00
Sean Yesmunt
d42586dc9e fix LbcMessage for ranges with decimals 2020-11-20 12:01:16 -05:00
Sean Yesmunt
fe2656cfa9 don't default to 'new' on discover page 2020-11-20 12:01:16 -05:00
Sean Yesmunt
e15998afe7 v0.49.0-rc.10 2020-11-19 15:41:06 -05:00
Sean Yesmunt
c822f1702f handle malformed markdown links 2020-11-19 15:28:19 -05:00
Sean Yesmunt
505bae77ac v0.49.0-rc.9 2020-11-19 13:34:20 -05:00
Sean Yesmunt
a5792423d5 add string 2020-11-19 13:34:01 -05:00
Sean Yesmunt
aa4886344e don't allow claims from future to be rendered 2020-11-19 13:33:37 -05:00
Sean Yesmunt
9801f43d3e hack together a thumbnail message on the channel page 2020-11-19 13:33:37 -05:00
Sean Yesmunt
b769a7c40b v0.49.0-rc.8 2020-11-18 17:17:13 -05:00
Sean Yesmunt
c4573df90f fix import 2020-11-18 17:15:18 -05:00
Sean Yesmunt
26963a7d85 v0.49.0-rc.7 2020-11-18 15:07:29 -05:00
Sean Yesmunt
89aaf523ca keep discover page only for non SIMPLE_SITEs 2020-11-17 18:45:26 -05:00
Sean Yesmunt
bbfed3fbb1 remove special styling for first homepage category 2020-11-17 14:58:54 -05:00
Sean Yesmunt
e5301dec04 move nudge to FileReactions and add src param to sign up redirects 2020-11-17 14:32:53 -05:00
infiinte-persistence
00350fec80 Hide mouse cursor when video is playing
## Issue:
5044: Auto hide cursor on video on static hover

## Approach
The existing code only hides the cursor when playing in fullscreen. Extend that to normal mode as well.

## Extra
Add in few new strings
2020-11-17 12:53:01 -05:00
Sean Yesmunt
21b8db7ddf v0.49.0-rc.6 2020-11-17 11:04:34 -05:00
Sean Yesmunt
44602c4213 add lbc help message on discover page 2020-11-16 19:09:09 -05:00
Sean Yesmunt
29e7af5bfc move links for better odysee parity 2020-11-16 19:09:09 -05:00
Sean Yesmunt
3b6882412a enable 'discover' page for everyone 2020-11-16 14:11:52 -05:00
infiinte-persistence
eadf2f9a45 String update
- Fix my previous mistake of removing a string. The new "Tailor your experience" had a diff that looked like a replacement, but it was actually a new file that was probably cloned from the settings file.

- Add few more new strings.
2020-11-16 12:02:52 -05:00
Sean Yesmunt
bdb0add5ac v0.49.0-rc.5 2020-11-16 10:58:03 -05:00
Sean Yesmunt
3a7854f896 v0.49.0-rc.4 2020-11-16 10:57:41 -05:00
infiinte-persistence
18debf51cd FloatingPlayer: fix unusable volume slider in fp-mode
4913: Can't slide volume slider in pop out mode

I first tried to handle this at the floating player level, but it was impossible to hack there due to how 'react-draggable' works (it already moved the window before the "move" handler is called, so we can't do much).

Fix by overriding the dragging behavior of the videojs' VolumeBar class by not propagating the event further. It is odd that videojs didn't already do this, since it's SeekBar does stop the propagation.
2020-11-16 10:38:29 -05:00
zeppi
ef06c75e8f send none with en language 2020-11-16 10:34:16 -05:00
dependabot[bot]
69a5750fc5 Bump bl from 1.2.2 to 1.2.3
Bumps [bl](https://github.com/rvagg/bl) from 1.2.2 to 1.2.3.
- [Release notes](https://github.com/rvagg/bl/releases)
- [Commits](https://github.com/rvagg/bl/compare/v1.2.2...v1.2.3)

Signed-off-by: dependabot[bot] <support@github.com>
2020-11-16 10:31:18 -05:00
jessop
f334c07c29 pass language to authenticate
update api language when setLanguage

yarn
2020-11-16 10:31:06 -05:00
Sean Yesmunt
00fb833c38 fix claim_search filter dropdown style 2020-11-16 10:19:50 -05:00
Thomas Zarebczan
24542aa10a
Temp: don't send auth token with status call
This should be changed to only send if email verified (I tried and failed lol)
2020-11-14 02:22:19 -05:00
Thomas Zarebczan
07916059ed
Don't hard fail on sync set error
Need to fix double sync loop first.
2020-11-14 01:17:26 -05:00
Sean Yesmunt
a4c9115063 cleanup from last PR 2020-11-13 15:54:00 -05:00
Sean Yesmunt
026b416ca1 clean up claim_search filters 2020-11-13 15:51:29 -05:00
Sean Yesmunt
4a893bb2f0 update lbry-redux 2020-11-13 14:48:04 -05:00
Sean Yesmunt
49a7dfd76d don't delete saved-password on preference_get fail 2020-11-13 14:48:04 -05:00
Sean Yesmunt
abacafb0c5 better handle bad wallet password errors 2020-11-13 14:48:04 -05:00
Sean Yesmunt
f1adfddded bump lbry-redux and handle other fatal sync errors 2020-11-13 14:48:04 -05:00
Sean Yesmunt
cfb10db4ea add fatal error handling when sync/get fails with unknown error 2020-11-13 14:48:04 -05:00
Sean Yesmunt
8822a901ae bump lbry-redux 2020-11-13 13:23:50 -05:00
infiinte-persistence
dfef97d715 claim_search: Don't clear past page results if subsequent pages timeout.
## Issue
4609: If claim search on latter page fails, don't clear out all previous data

## Note
This requires an accompanying change in `lbry-redux` to mark `claimSearchResultLastPageReached` during timeout and to not purge past results.

## Change
The previous flow was: increment the page, and expect the next render to either be 0 (timeout + purge) or fill in at least 1 new item.

Since it is now possible for no results to be returned for the new page (due to timeout + no purging), the code continues to make another query. This commit stops the perpetual querying.

## Test Case:
1. https://lbry.tv/$/discover?t=imherelbry&content=video&order=top&fresh=year
2. Scroll down a few pages until it timeout happens. Past results are gone.
2020-11-13 13:23:50 -05:00
Sean Yesmunt
96e28aadf5 don't trigger sync when changing tile layout 2020-11-13 13:17:25 -05:00
Sean Yesmunt
5cfa46d14d fix card spacing on settings page 2020-11-13 13:17:25 -05:00
Sean Yesmunt
509cbb07fe fix notification icons 2020-11-13 13:17:25 -05:00
zeppi
92817203fc send nudge source to matomo 2020-11-13 11:07:31 -05:00
Sean Yesmunt
64ea6e6adc fix lbc icon on notifications page 2020-11-13 00:36:23 -05:00
infiinte-persistence
c7ede0083e String update for 'hp description' commit 2020-11-12 15:21:40 -05:00
infiinte-persistence
fc79c87bba Fix sidebar tooltip showing string with context metadata.
## Issue
In the odysee branch, the tooltip for "Following" in the Sidebar was shown as "Following --[sidebar]--". In lbry.tv, the tooltip doesn't appear.

I believe the tooltip appeared due to the name change from 'label' to 'title' and then being passed to Button through '...passedProps'.

Fix by explicitly setting the Button's 'title' to the localized text.
2020-11-12 15:21:40 -05:00
Sean Yesmunt
fce6c17f4f remove channel preview in comments 2020-11-12 13:46:40 -05:00
Sean Yesmunt
881ce59ade add basic message for thumbnail uploads 2020-11-11 22:49:41 -05:00
Sean Yesmunt
8cc4517fb0 bump lbryinc to send empty auth_token on file/list_{filtered,blocked} 2020-11-11 15:19:39 -05:00
zeppi
fff599d56a delete util/homepage 2020-11-11 10:47:47 -05:00
jessopb
697651b0e8
pass domain to authenticate for appid (#5012) 2020-11-10 21:47:51 -05:00
zeppi
463f72ee56 channel avatar fix 2020-11-10 16:41:21 -05:00
Sean Yesmunt
94f8db4da9 update order on settings page 2020-11-10 15:32:45 -05:00
Sean Yesmunt
73e1db7bb4 allow changing language for unauth users 2020-11-10 15:32:45 -05:00
zeppi
3da7ec5c2c fix links spread bug 2020-11-10 14:02:59 -05:00
zeppi
fe8adaaa49 hp description 2020-11-10 14:02:59 -05:00
zeppi
ad7a0c9cac reconcile more 2020-11-10 14:02:59 -05:00
Sean Yesmunt
47f45fce0c fix typos 2020-11-10 12:22:25 -05:00
Sean Yesmunt
60bac01a4a remove extra prop 2020-11-10 12:08:19 -05:00
Sean Yesmunt
4b59bd0223 add back help links for SIMPLE_SITE 2020-11-10 12:08:19 -05:00
Sean Yesmunt
1023f30b4c initial PR for custom homepages - take 2 2020-11-10 12:08:19 -05:00
Sean Yesmunt
353c1a5689 Revert "unified custom homepage"
This reverts commit 55768fc6b5.
2020-11-10 10:36:11 -05:00
Sean Yesmunt
1814733d5b Revert "add back sign up nudge"
This reverts commit f0cabbff7d.
2020-11-10 10:36:11 -05:00
Sean Yesmunt
f0cabbff7d add back sign up nudge 2020-11-10 10:24:04 -05:00
jessop
55768fc6b5 unified custom homepage 2020-11-10 10:24:04 -05:00
Sean Yesmunt
e2b30b7d17 add basic dmca message on embeds page 2020-11-10 01:26:38 -05:00
Sean Yesmunt
ca6ce23494 fix nudge mobile styling 2020-11-10 01:10:22 -05:00
Sean Yesmunt
f63de7f930 add nudges to sign up 2020-11-10 00:33:27 -05:00
infiinte-persistence
35ab5b1578 Add another 'About' string for Odysee.
Adding this in master to avoid future conflicts.

The string will be used in Odysee branch.
2020-11-10 00:07:46 -05:00
Sean Yesmunt
631d67ad0b fix typo 2020-11-09 16:07:14 -05:00
jessop
391ab15b15 dont set sync enabled on web on sign up 2020-11-09 15:06:14 -05:00
Sean Yesmunt
f9e24ea536 v0.49.0-rc.3 2020-11-09 14:07:17 -05:00
Sean Yesmunt
f4c17e50a2 enable comment reactions on desktop 2020-11-09 14:06:52 -05:00
Sean Yesmunt
b8d483ae7e v0.49.0-rc.2 2020-11-09 13:46:37 -05:00
Sean Yesmunt
1ef587b8c2 fix typos and bump lbryinc 2020-11-09 13:37:51 -05:00
Sean Yesmunt
1cc7be746b move splash animation out of settings 2020-11-09 13:37:51 -05:00
Sean Yesmunt
67d1652cf4 bump lbry-redux 2020-11-09 13:37:51 -05:00
Sean Yesmunt
6626cc1059 fix floating player location on desktop 2020-11-09 13:37:51 -05:00
Sean Yesmunt
467d9b9f47 fix channel ellispis on claimPreview 2020-11-09 13:37:51 -05:00
infiinte-persistence
a71c66bfb7 Localize the "analytics down" message. 2020-11-09 10:44:45 -05:00
Sean Yesmunt
3a96382901
add basic message for creator analytics issues (#5001)
* add basic message for creator analytics issues

Co-authored-by: Thomas Zarebczan <tzarebczan@users.noreply.github.com>
2020-11-08 10:57:02 -05:00
Sean Yesmunt
159e1c10e0 bump lbry-redux 2020-11-07 19:44:29 -05:00
Sean Yesmunt
e00b98226c remove old import 2020-11-06 00:02:53 -05:00
infiinte-persistence
f0c6887d37 New strings 2020-11-05 12:46:25 -05:00
infiinte-persistence
0ab43fc37e Fix malformed string. 2020-11-05 12:46:25 -05:00
Sean Yesmunt
c21fef5b24 new ads provider 2020-11-05 12:21:32 -05:00
Sean Yesmunt
98855d4fd5 fix top claim search result 2020-11-04 16:08:23 -05:00
Sean Yesmunt
d408b0fd96 fix page crash on mailto links 2020-11-04 16:08:23 -05:00
Sean Yesmunt
dc3fac6a4c don't hide lbc details if no description 2020-11-04 16:08:23 -05:00
Sean Yesmunt
fd5cde08c3 add back video player on adstest pagegaa 2020-11-04 12:00:31 -05:00
Sean Yesmunt
485a734c9b make notifications deleteable + unsub from the bell on notifications page 2020-11-04 10:25:49 -05:00
Sean Yesmunt
a836467714 content notification style cleanup 2020-11-04 10:25:49 -05:00
Sean Yesmunt
d549aab89c v0.49.0-rc.1 2020-11-02 17:27:16 -05:00
Sean Yesmunt
4755a7b57f update changelog 2020-11-02 17:27:08 -05:00
Sean Yesmunt
8f7c16cc39 fix 'best' comment sort 2020-11-02 17:15:53 -05:00
Sean Yesmunt
cb50b8a9bc Revert "Improve IOS inline experience"
This reverts commit 9b38ba6c02.
2020-11-02 17:15:02 -05:00
Sean Yesmunt
68b1a0971c Revert "remove unused style"
This reverts commit 57a69be7e8.
2020-11-02 17:15:02 -05:00
Sean Yesmunt
3f76092a3b per channel notification settings take 2 2020-11-02 15:50:53 -05:00
Sean Yesmunt
3f7d7674ff Revert "only show bell for users with notifications on"
This reverts commit c94d22994f.
2020-11-02 15:31:09 -05:00
Sean Yesmunt
c94d22994f only show bell for users with notifications on 2020-11-02 14:19:01 -05:00
Sean Yesmunt
25085fe881 update bell icon 2020-11-02 14:13:13 -05:00
Sean Yesmunt
63f1fed33c per channel notification settings 2020-11-02 14:13:13 -05:00
Sean Yesmunt
07377a4e2a update video.js 2020-11-02 13:24:36 -05:00
Sean Yesmunt
e6016538b4 add ads script to head for test 2020-11-02 12:01:58 -05:00
infiinte-persistence
1eec5a182d Add 'Search only in this language by default' 2020-10-30 00:21:51 -04:00
infiinte-persistence
591f604073 Remove translation macro on native language names.
I believe we don't translate these since this is already the translated form?

When the language is supported later, the English version will be added to the string database instead.
2020-10-30 00:21:51 -04:00
infiinte-persistence
2952bec959 Use the contextual version of 'Post' instead of creating a new one.
I couldn't find where this new 'Post' is being used, so I assume it's the same as the old one for now. If it appears in the list again, I'll ask around to put the context-metadata.
2020-10-30 00:21:51 -04:00
Sean Yesmunt
52eb4de7a9 add adstest page to test player ads 2020-10-30 00:20:42 -04:00
Sean Yesmunt
dfe1bf5c62 remove unused style 2020-10-30 00:04:59 -04:00
Sean Yesmunt
46fbcb5a0f fix autoplay countdown 2020-10-30 00:04:59 -04:00
Sean Yesmunt
419dd6431e fix exact claim not showing up when copying url 2020-10-30 00:04:59 -04:00
Sean Yesmunt
b33f14cca4 make file details smaller 2020-10-30 00:04:59 -04:00
Sean Yesmunt
57a69be7e8 remove unused style 2020-10-29 17:02:40 -04:00
Thomas Zarebczan
9b38ba6c02 Improve IOS inline experience
Also puts back the video js player which has rate support - but it's hidden on smaller devices...maybe someone can fix later on.
2020-10-29 17:02:40 -04:00
jessop
734e08a209 bump and bugfix 2020-10-29 15:20:18 -04:00
jessop
c4d05a5a1a claim-search by language
setting to search only in language as default

add channel update language selection and about

bump

searchable languages
2020-10-29 15:20:18 -04:00
jessopb
54466edafc
Merge pull request #4963 from lbryio/feat-userIconIdentity
make header user icon reflect comment identity
2020-10-29 08:27:34 -04:00
jessop
91f748d566 enable owners to tag claims and channels disable-support 2020-10-29 01:11:39 -04:00
infiinte-persistence
3a0499bb94 New strings + revert "Restore accidental string deletion"
"Restore accidental string deletion" was a mistake -- the deletion was due to duplicate strings. My bad.
2020-10-29 01:03:41 -04:00
jessop
ed61ac44bf make header user icon reflect comment identity 2020-10-28 17:49:28 -04:00
infiinte-persistence
3c448d3d27 Restore accidental string deletion
These strings are in use and have been translated by the translators. I think it got accidentally removed from the "send auth token with status call" commit.
2020-10-28 17:21:38 -04:00
Sean Yesmunt
f2c6986a6f show channels + streams as winning claim from search query 2020-10-28 16:28:36 -04:00
jessop
73c146b9ac send auth token with status call 2020-10-28 16:04:12 -04:00
Sean Yesmunt
4d9731d9c2 fix url wrapping on markdown links 2020-10-28 14:45:04 -04:00
Sean Yesmunt
e198caffd7 make sure comments with 0 likes are sorted to bottom 2020-10-28 14:45:04 -04:00
Sean Yesmunt
9c20a63ad5 add spinner when waiting for 'user' so page doesn't look broken 2020-10-28 14:45:04 -04:00
Sean Yesmunt
aed74c4608 fix creator reactions on file pages 2020-10-28 14:45:04 -04:00
Sean Yesmunt
cf40313383 update creator like style 2020-10-27 22:18:22 -04:00
Sean Yesmunt
e901daa849 wait to render comments until reactions are fetched 2020-10-27 22:18:22 -04:00
Thomas Zarebczan
43c2e9e0ed
Fix: channel page search limit 2020-10-27 14:51:05 -04:00
infiinte-persistence
93b1de8ed9 Fix long tag query-URL when changing between [Trending|New|Top]
## Issue
4393: Tag query URL goes on indefinitely as you change between [Trending|New|Top]

## Change
Change from `append` to `set` when building the query to remove duplicates.

Flow hates null being not a string, so the FixMe was retained.
2020-10-27 12:38:41 -04:00
Sean Yesmunt
ad20e355cf creator only like reactions 2020-10-27 12:27:30 -04:00
Sean Yesmunt
92f3337c4c bump lbry-redux 2020-10-27 10:17:11 -04:00
Sean Yesmunt
d8aecaeb29 only call sync_apply if no wallet found 2020-10-27 10:17:11 -04:00
jessop
9d4f7dc642 sync reducer stuff
bring tags into app repo

prevent prefset until prefsReady

prefs ready on sign up

prefsReady-desktop
2020-10-27 10:17:11 -04:00
Sean Yesmunt
f54a0de797 bring in sync code from lbryinc 2020-10-27 10:17:11 -04:00
Thomas Zarebczan
19664726d6
Fix media type app crash on Publish 2020-10-26 14:56:38 -04:00
Sean Yesmunt
ca7a0794a8 lower threshold for comments slimed to death 2020-10-26 14:06:33 -04:00
Sean Yesmunt
2716d9441c add unlock button nex to expandable credits button 2020-10-26 11:36:10 -04:00
Sean Yesmunt
aeeaaf6605 bump lbryinc 2020-10-23 21:23:06 -04:00
Sean Yesmunt
0b17aa7c74 bump lbryinc 2020-10-23 20:59:47 -04:00
Sean Yesmunt
ffdac06b80 fix typo 2020-10-23 15:26:39 -04:00
Sean Yesmunt
82b460f53d add back support button on top page 2020-10-23 15:08:27 -04:00
Sean Yesmunt
6516d9ffa6 only includeSupportAction for not SIMPLE_SITE 2020-10-23 15:08:27 -04:00
Sean Yesmunt
f54f4fc65d clean up markdown post style 2020-10-23 15:08:27 -04:00
Sean Yesmunt
54fa36abc0 bring in lbc/file details for everyone 2020-10-23 15:08:27 -04:00
Sean Yesmunt
1711dc6601 enable top claim on search page for everyone 2020-10-23 15:08:27 -04:00
Sean Yesmunt
5a1eecfc4b fix iframe lbry links in markdown posts 2020-10-23 13:15:13 -04:00
Sean Yesmunt
33bf50e91b fix simpleLinks in MarkdownLink 2020-10-23 10:30:11 -04:00
Sean Yesmunt
6c6dacb195 fix strings 2020-10-23 01:53:09 -04:00
Sean Yesmunt
8c43457622 pass max-age header on js bundle so cloudflare can cache it 2020-10-23 01:51:51 -04:00
Sean Yesmunt
221ae5b821 fix inline player not showing up broken from previous commit 2020-10-22 18:09:17 -04:00
Sean Yesmunt
c9fdaec997 don't show external link modal for lbry links 2020-10-22 14:30:40 -04:00
Sean Yesmunt
6659ef50ff don't show ClaimLinks in file description 2020-10-22 14:16:42 -04:00
Sean Yesmunt
ad88d8993d fix app crash 2020-10-22 14:08:53 -04:00
Sean Yesmunt
851b2d13e4 remove homepage hack from ClaimListDiscover and fix order so release_time filter is set properly 2020-10-22 13:01:17 -04:00
Sean Yesmunt
cd3f30e03e don't pass fee_amount: >=0 when nothing is set to avoid timeouts 2020-10-22 13:01:17 -04:00
Sean Yesmunt
bf27692a65 use lbc icon for reward notifications 2020-10-22 12:41:29 -04:00
Sean Yesmunt
1cb0685b61 pass is_app_readable to notification/list 2020-10-22 12:41:29 -04:00
Sean Yesmunt
788fd153da fix thumbnail gifs in comments 2020-10-21 16:45:43 -04:00
jessop
51c94d334a set userid regardless of signin 2020-10-21 15:30:26 -04:00
jessop
fab03d337e ad fix 2 2020-10-21 15:30:01 -04:00
Sean Yesmunt
295b8cf2e1 refactor floatingUri to allow inline players in comments/markdown 2020-10-21 15:29:29 -04:00
Sean Yesmunt
3b20104261 bump allowed upload size to 2gb on web 2020-10-20 13:13:08 -04:00
jessop
14e1b6c1f7 pin only top level 2020-10-20 13:09:08 -04:00
jessop
91d034954e mark notification seen on relevant interaction 2020-10-20 13:09:08 -04:00
Sean Yesmunt
41dfd8a0f8 return early for undefined i18n messages
could happen when we map over a list of objects to create buttons and one only has an icon
2020-10-19 23:54:32 -04:00
Sean Yesmunt
dc6267f757 update changelog 2020-10-19 23:37:39 -04:00
Sean Yesmunt
a0320f8cef remove comment 2020-10-19 23:37:39 -04:00
Sean Yesmunt
a045ddf23e bump lbry-redux + pin icon tweaks 2020-10-19 23:37:39 -04:00
Sean Yesmunt
106f5a0ac2 initial comment pin PR with new commit 2020-10-19 23:37:39 -04:00
jessop
2f84d94c66 related add full width 2020-10-19 22:59:24 -04:00
Sean Yesmunt
264a85d837 Revert "comment pin action"
This reverts commit 636ab7427d.
2020-10-19 15:01:09 -04:00
Sean Yesmunt
4287003509 Revert "bump"
This reverts commit 0249e620fd.
2020-10-19 15:01:09 -04:00
jessop
0249e620fd bump 2020-10-19 14:48:01 -04:00
jessop
636ab7427d comment pin action
owners can pin and unpin comments

tweak pin icon styles

move commenting activeChannel from localStorage to redux
2020-10-19 14:48:01 -04:00
jessop
9fb13975b4 email resend requests limited to once per thirty seconds 2020-10-16 16:38:52 -04:00
Sean Yesmunt
2311fbdaae update changelog 2020-10-16 13:05:56 -04:00
Sean Yesmunt
8767d25cff v0.48.2 2020-10-16 12:16:14 -04:00
Sean Yesmunt
2b336ad385 v0.48.2-rc.4 2020-10-16 10:52:24 -04:00
Sean Yesmunt
3bb5c06f44 openItem => openPath 2020-10-16 10:49:01 -04:00
Sean Yesmunt
b3f1b7919c v0.48.2-rc.3 2020-10-16 10:29:30 -04:00
Sean Yesmunt
7ac27d7b37 bump electron-builder 2020-10-16 10:29:22 -04:00
Sean Yesmunt
65bb37a93a v0.48.2-rc.2 2020-10-16 00:07:55 -04:00
jessop
6284f86026 fix reward rates crash 2020-10-16 00:07:30 -04:00
Thomas Zarebczan
f5900795c4
Show own channels on blocked list 2020-10-15 19:10:58 -04:00
Sean Yesmunt
cc94c4e01e v0.48.2-rc.1 2020-10-15 19:07:05 -04:00
Sean Yesmunt
cfd4e8a05d rc fixes for electron 9 2020-10-15 19:06:47 -04:00
Thomas Zarebczan
ba786fa50e
Show unblock button on own blocked channels 2020-10-15 17:49:05 -04:00
Sean Yesmunt
bcb65cd9fa update changelog 2020-10-15 14:32:58 -04:00
Sean Yesmunt
c5a2126abe disable snapshot thumbnail on desktop to prevent desktop crashes
https://github.com/electron/electron/issues/20750\#issuecomment-709505902
2020-10-15 14:32:58 -04:00
infiinte-persistence
e947307f86 Fix typo "Logging in in as ..." 2020-10-15 00:09:01 -04:00
infiinte-persistence
5b2cd12d2b Analytics string + rearrangement 2020-10-14 17:44:44 -04:00
infiinte-persistence
511a746871 Str-context-split: "To" and "From"
## Note from Russian translator
"To/From" in the 'automatic dark mode setting' cannot be re-used for the one in the 'Tip Modal'.

## Change
Wanted to split this into "general" and "time", but I'm guessing it won't satisfy all languages, so we'll just use the usage as the context since there's just 2 instances.
2020-10-14 17:44:44 -04:00
infiinte-persistence
80b4600f60 Str-context-split: "Follow"
## Issue
4192
2020-10-14 17:44:44 -04:00
infiinte-persistence
d7a178d259 Str-context-split: "Post"
Splitting the context between "Markdown post" (noun) vs. "Post something" (verb)
2020-10-14 17:44:44 -04:00
infiinte-persistence
6dd40df93b Str-context-split: "Support"
Chinese, Spanish and other translators reported the difficulty in using "Support" as both a noun and verb in their language.
2020-10-14 17:44:44 -04:00
infiinte-persistence
567316cfbe Support for multiple string context + "About" as initial example.
## Issue
4796 - i18n: Allow support for string overloading (multiple contexts)

## Approach
- Minimal code and process change.
- Handle on a case-by-case basis when reported by translators.
- Split the affected key in the string json by appending the context.
- Translators need to be aware of the new format and not translate context itself. Code is added to detect bad translations and will revert to English.

Sample in json:
  "About --[About section in Help Page]--": "About",
  "About --[tab title in Channel Page]--":  "About",

Sample in client code:
  title={__('About --[About section in Help Page]--')}

- "--[ ]--" was chosen as it's unique enough (unlikely for real strings to use it) and hopefully not that distracting in the client code.
- In the key itself, spaces are allowed after the string (i.e. before '--[') for neatness. It will be trimmed by the system.

## First example
"About" is used in 3 places:
   - Channel Page
   - Help Page
   - Footer (in Odysee branch)

For Russian, the word "About" is "O" and is usually not used standalone, but requires something behind it. A translator said so, and seems to be the case in other sites as well.
   "O xxx"
   "O yyy"

## Other languages
For other languages that are not impacted, they can just clone the same translation for each of the split keys, just like in English.

## Possible enhancement in Transifex
I see that Transifex's API includes a `context` entry. It might be possible to move the context-metadata there during the upload, so translators will never see the "--[]--" messiness (it will be shown as "Context: xxx" in the Transifex GUI).

I'm not sure how to test the Transifex side, so I did not investigate further.
2020-10-14 17:44:44 -04:00
infiinte-persistence
e8e6000b13 Translate the footer.
Most of the items in the footer don't need to be translated, but it was troublesome trying to make `sections[]` re-resolve the label on a language change, if we want to selectively translate certain labels only.

So, just translate everything for now. Translators can simply clone the English string if it doesn't need a translation.
2020-10-14 17:44:44 -04:00
Sean Yesmunt
44bcc943a0 add new sort icons for new/best/controversial 2020-10-14 16:51:48 -04:00
Sean Yesmunt
75d21d41b8 v0.48.1 2020-10-14 13:13:41 -04:00
Sean Yesmunt
f9c4348fd8 v0.48.1-rc.5 2020-10-14 11:35:35 -04:00
Sean Yesmunt
77aa580690 add spacing for ul/ol next to p elements 2020-10-14 11:33:39 -04:00
Sean Yesmunt
cd5cf5941a v0.48.1-rc.4 2020-10-14 11:12:04 -04:00
Sean Yesmunt
172e918de5 pass to 2020-10-13 15:31:07 -04:00
jessop
9268fa45e7 robots.txt defaults to disallow 2020-10-12 23:33:29 -04:00
Sean Yesmunt
4b98cf45f3 prevent clicking through help links 2020-10-12 23:21:23 -04:00
Sean Yesmunt
88c86ff447 add help link 2020-10-12 23:21:23 -04:00
Sean Yesmunt
4815aa9ff1 add reward rate + analytics link on channels page 2020-10-12 23:21:23 -04:00
Sean Yesmunt
65c39cbbc8 fix mobile comments on ios devices 2020-10-12 15:21:03 -04:00
Sean Yesmunt
c1eb7d9621 v0.48.1-rc.3 2020-10-12 15:02:17 -04:00
Sean Yesmunt
efb03d016b bump sdk to 0.83.0 2020-10-12 15:01:24 -04:00
jessop
a5a1f72555 openItem is now openPath 2020-10-12 09:50:56 -04:00
Sean Yesmunt
03f1fe3ee5 make youtube sync web only 2020-10-09 17:08:38 -04:00
Sean Yesmunt
8bb6643a41 switch back to 'slimed to death' 2020-10-09 11:38:50 -04:00
Sean Yesmunt
4b6058beff remove duplicate strings 2020-10-08 22:02:22 -04:00
Sean Yesmunt
7a9cfdfaa5 remove duplicate string 2020-10-08 22:01:03 -04:00
Thomas Zarebczan
a0003340da
Strings update
f
2020-10-08 21:58:14 -04:00
Sean Yesmunt
60569de672 hide comments that were slimed to death TM 2020-10-08 15:57:20 -04:00
Sean Yesmunt
b1bca7982a re-enable lbry:// link styles in comments
will add support for odysee/lbry.tv once the style is finalized
2020-10-08 14:19:21 -04:00
Sean Yesmunt
480d8a8786 wait to scroll to linked comments until readyToDisplay=true 2020-10-08 14:19:21 -04:00
Sean Yesmunt
6d4a92ad27 format reaction count to include commas 2020-10-08 14:19:21 -04:00
Sean Yesmunt
c1bd9ad6af update app-strings 2020-10-08 13:15:22 -04:00
Sean Yesmunt
a59e0c928f update changelog 2020-10-08 12:20:59 -04:00
Sean Yesmunt
39f08f878f update app-strings 2020-10-08 12:16:00 -04:00
Sean Yesmunt
761b93d811 add style for comments with is_pinned=true 2020-10-08 11:48:32 -04:00
Sean Yesmunt
d808d91e72 v0.48.1-rc.2 2020-10-08 10:53:53 -04:00
Sean Yesmunt
0ea287a7bf update changelog 2020-10-08 10:53:46 -04:00
jessop
7678eedf4d catch claim error on referrer set 2020-10-08 10:52:44 -04:00
infiinte-persistence
1100a07108 Comment v69 strings and misc. 2020-10-08 10:37:17 -04:00
Sean Yesmunt
5d2d6d2a94 always show your own comments at the top 2020-10-07 17:11:22 -04:00
Sean Yesmunt
c43eff8587 comments v69 2020-10-07 17:11:22 -04:00
infiinte-persistence
3e70d5a398 String: restored consolidation; added 2 odysee strings in Publish Page 2020-10-07 16:25:03 -04:00
infiinte-persistence
6198ab57de String: fix untranslated 'File|Post' tab
Both "File" and "Post" are already added in the database, so this should now work.
2020-10-07 16:25:03 -04:00
infiinte-persistence
4294e0109a String: fix variable-resolving problems 2020-10-07 16:25:03 -04:00
infiinte-persistence
54cdf2a7e6 Add comment sorting strings 2020-10-07 16:25:03 -04:00
infiinte-persistence
bb56d92147 Remove old 'Subscription' strings 2020-10-07 16:25:03 -04:00
infiinte-persistence
4a2e9bf1c7 Fix: Videos start muted on initial session
## Issue
4831: Videos start muted on Desktop (fresh install) and web (sometimes resets)

This covers the Desktop fresh install and Web fresh session (incognito) part. It doesn't cover the "sometimes reset" part as I don't know how to reproduce that.

## Change
`sessionStorage` is always empty when that piece of code is called, even for non-fresh Desktop and even in Brave. We now fallback to `1` when `volume` is `null`. Still not sure the purpose of that code, but leaving it there just in case something relies on it.

## Tests
[/] Desktop fresh-install is not muted.
[/] Desktop return session restores previous volume level.
[/] Web* fresh session (cleared data) is not muted.
[/] Web return session restores previous volume level.

*Web = Chrome, Firefox and Brave.
2020-10-07 16:24:34 -04:00
jessop
d2396b674e remove lbrycast from default follows 2020-10-07 16:24:15 -04:00
Sean Yesmunt
85e2ee28a3 add referral code to embed links 2020-10-07 16:23:53 -04:00
dependabot[bot]
d677468fe8 Bump electron from 9.0.1 to 9.3.1
Bumps [electron](https://github.com/electron/electron) from 9.0.1 to 9.3.1.
- [Release notes](https://github.com/electron/electron/releases)
- [Changelog](https://github.com/electron/electron/blob/master/docs/breaking-changes.md)
- [Commits](https://github.com/electron/electron/compare/v9.0.1...v9.3.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-10-07 16:23:33 -04:00
jessop
3ca19744c4 only autoset referrer if not authenticated 2020-10-07 13:30:49 -04:00
jessop
10ce772bcb initial page view sets referring channel 2020-10-07 11:44:12 -04:00
Sean Yesmunt
72f5684b6f v0.48.1-rc.1 2020-10-07 10:15:38 -04:00
jessop
e61f8551a3 upgrade electron
disable cors switch

electron version test

v8

wip

v9

bump

nativeImage

clean
2020-10-07 10:14:54 -04:00
Sean Yesmunt
ec3307320a fix controversial icon spacing 2020-10-06 17:46:32 -04:00
Sean Yesmunt
f534291767 update comment sort icons 2020-10-06 17:36:13 -04:00
Sean Yesmunt
0326e266d4 make sure comments are rendered before trying to render more 2020-10-06 16:33:51 -04:00
Sean Yesmunt
c1b5280446 move youtube badge to 'channel about' section 2020-10-06 16:30:03 -04:00
Sean Yesmunt
fc2a79242e don't add scroll listener until comments have been fetched 2020-10-06 16:13:42 -04:00
Sean Yesmunt
00c05437ca add comment sorting and improve comment focus styles 2020-10-06 16:04:52 -04:00
Thomas Zarebczan
136d73d2ff
Fix Japanese language code 2020-10-06 11:37:19 -04:00
infiinte-persistence
329f6b3da6 Comment: Change 'shift+enter' to 'ctrl|cmd+enter' for quick submit.
ctrl+enter is generally used for this action, while shift+enter generally used to insert a <br>.
2020-10-06 02:02:11 -04:00
Sean Yesmunt
c159f34b24 add infinite scroll for comments 2020-10-05 17:34:06 -04:00
ioancole
9d51cee72c Correctly navigate to channel URL 2020-10-05 16:43:29 -04:00
ioancole
7f00a01c2b Check search string for web URL prefixes and remove 2020-10-05 16:43:29 -04:00
Sean Yesmunt
d9acb034e1 odysee alignment 2020-10-05 14:55:52 -04:00
Sean Yesmunt
00b23cbee4 moar alignment 2020-10-05 14:28:19 -04:00
Sean Yesmunt
46a0d213fb fix channel profile img in header 2020-10-05 14:04:31 -04:00
Sean Yesmunt
2abd1ca6c2 fix invite page crashing on large screen 2020-10-05 13:56:43 -04:00
Sean Yesmunt
489a4855e9 alignment with odysee branch 2020-10-05 13:56:43 -04:00
Sean Yesmunt
61dfc2f74a handle comment time display correctly immediately after posting 2020-10-05 11:54:20 -04:00
Sean Yesmunt
d121f5c39c remove unused variable 2020-10-05 11:25:20 -04:00
Sean Yesmunt
248e7a1f9e fix lbry.tv strings 2020-10-05 10:39:24 -04:00
jessop
d4df1c8384 wait for channel fetch for reactions fetch 2020-10-05 10:39:15 -04:00
infiinte-persistence
ae191afeec String corrections
- "The publisher has chosen to" -- Fix incomplete string, probably broken by linter.
- Fix hardcoded email in invite snackbar.
- Fix 'Upload Settings' to new lower-case style.
- Add few more missing ones.
- Consolidated "Claim xxx" strings together.
- Removed duplicate "Confirming..." due to branch merging.
2020-10-05 10:39:04 -04:00
Sean Yesmunt
eb84a366d2 add file reactions code from odysee 2020-10-02 15:28:00 -04:00
Sean Yesmunt
dc42df3bf2 fix uuid import with new version 2020-10-02 14:36:22 -04:00
Sean Yesmunt
bdc7c7c666 Revert "Revert "bring in ClaimListDiscover changes from odysee""
This reverts commit 892fb6f687.
2020-10-02 14:36:22 -04:00
Sean Yesmunt
892fb6f687 Revert "bring in ClaimListDiscover changes from odysee"
This reverts commit 56cd1ddfa7.
2020-10-02 13:45:03 -04:00
Sean Yesmunt
56cd1ddfa7 bring in ClaimListDiscover changes from odysee 2020-10-02 13:35:13 -04:00
jessop
aa127e45aa debounce comment reacts on backend, not button, feedback immediate 2020-10-02 12:35:34 -04:00
Sean Yesmunt
ec3a763f5d move button ref to top of component 2020-10-02 12:13:23 -04:00
jessop
3913c03163 shift enter to comment 2020-10-02 12:13:23 -04:00
infiinte-persistence
746f0db1f1 Add missing tooltips for a few buttons in the claim page
3465
2020-10-02 12:01:03 -04:00
infiinte-persistence
4053a920d9 Card: Say 'Less' (to match '-') instead of 'More' when expanded 2020-10-02 12:01:03 -04:00
infiinte-persistence
590feab1d1 Button: Enable tooltip for <a> types
The "Report Content" button was the impetus for this, as there was no way to know what that button is for unless the user clicked it (or smart enough to decipher the icon).

3465
2020-10-02 12:01:03 -04:00
jessop
57a09cd3c6 only clear comment text if confirmed 2020-10-02 12:00:23 -04:00
infiinte-persistence
108a898ebf Expandable: Fade out section when 'closed'
## Issue
The abrupt cut-off of the expandable section bugs me (looks like a rendering glitch), especially when it cuts off in the middle of a line.

## Change
In addition to the existing 'More' button, we fade out the section to provide additional visual cues.

## Approach
This solution doesn't require the background color to be known, so it will work regardless where <Expandable> is used, or whatever color-scheme is chosen.

However, it does utilize non-standard css -- for older browsers, it should simply cut-off like the before.
2020-10-02 11:54:43 -04:00
infiinte-persistence
589903f5e8 PublishPreview: strings and changelog 2020-10-02 10:25:17 -04:00
infiinte-persistence
ef12914cad Rebranding: 'Publish' --> 'Upload'; Use LBC icon 2020-10-02 10:25:17 -04:00
infiinte-persistence
985aada5e4 Fix preview delay on Web by sending a dummy file. 2020-10-02 10:25:17 -04:00
infiinte-persistence
92b211dd94 Pass the 'mode' over via UpdatePublishForm to hide some fields when Posting a Markdown. 2020-10-02 10:25:17 -04:00
infiinte-persistence
3df7ea71d3 Enable "Publish Preview" for Markdown 2020-10-02 10:25:17 -04:00
infiinte-persistence
abeb7a852c Enable "Publish Preview" on Edit Mode as well. 2020-10-02 10:25:17 -04:00
infiinte-persistence
16b1605a35 Add SETTINGS.ENABLE_PUBLISH_PREVIEW
This option allows users to bypass the "publish preview" modal. Users can disable it by checking "don't show this again" in the modal, and re-enable it in the Settings Page.
2020-10-02 10:25:17 -04:00
infiinte-persistence
3588111938 Gray out 'Upload' button when previewing.
I simply check if the Modal exists, instead of creating an ACTION state in redux.
2020-10-02 10:25:17 -04:00
infiinte-persistence
48787a1feb doPublishDesktop: Call the "preview" modal before doing the actual publish.
This requires an accompanying change in lbry-redux. Search for "SETTINGS.ENABLE_PUBLISH_PREVIEW" in the commit message to find the commit.

In Edit Mode, the preview will not appear. Not sure if it's needed, plus there are more things to handle in Edit mode (e.g. which items are changed)
2020-10-02 10:25:17 -04:00
infiinte-persistence
4c3728a20f Add "Publish Preview" modal 2020-10-02 10:25:17 -04:00
infiinte-persistence
b666a34863 Tag: Add "type=flow" that reflows to multiline with gaps.
This will be used in Publish Preview modal, and potentially be used in the "show all tags in Claim Preview" request.
2020-10-02 10:25:17 -04:00
infiinte-persistence
6850a8f264 Remove duplicate strings
... and sneak in some corrections.
2020-10-02 10:22:55 -04:00
Sean Yesmunt
f665ed772b add back persisted tip/support selection 2020-10-02 01:34:28 -04:00
Sean Yesmunt
20c65928cb add back ability to abandon reposts on txo table 2020-10-02 00:54:37 -04:00
Sean Yesmunt
faa4e7364f alignment with odysee branch 2020-10-01 17:10:42 -04:00
jessop
3fb4efb08e allow reaction list without channel
uncomment

reacts requireauth, commentReact handles missing channels

enable config, better track pending reacts
2020-10-01 15:35:01 -04:00
jessop
e954bce821 allow reaction list without channel
uncomment

reacts requireauth, commentReact handles missing channels

enable config, better track pending reacts
2020-10-01 15:23:15 -04:00
Sean Yesmunt
5f9fda0e7c put comment reactions behind flag 2020-10-01 14:46:08 -04:00
Alojz Jakob
859814a17b Remove background color from img.channel-thumbnail__custom
Many of the creators including myself use transparency to achieve some effect. We all love PNGs and GIFs, so please dont shoot in your leg by limiting creative potential :)
For example: you can see the effect here, you can inspect lement and remove background color from channel "profile image": https://lbry.tv/@LBRYlytics:4
2020-10-01 12:27:36 -04:00
Sean Yesmunt
b5dd996bae remove ability to abandon channels + claims from tx table 2020-09-30 17:40:09 -04:00
Sean Yesmunt
5ab94e25b7 fix staked lbc amount on dark mode 2020-09-30 17:00:18 -04:00
Sean Yesmunt
a92a3305b1 align FileActions with odysee style 2020-09-30 17:00:18 -04:00
Sean Yesmunt
0138eccb60 bring in some changes from odysee 1 2020-09-30 15:26:51 -04:00
infiinte-persistence
5df4ed2783 String scrub from odysee/release merge
- More missing strings
- Moved strings around to keep related strings together (easier for translators to guess the context)
- Removed translation macro for blank string
- Fix typo for 'Neetwork'
2020-09-30 14:06:11 -04:00
Sean Yesmunt
1628f32fe1 fix purchase price color on dark mode 2020-09-30 14:02:45 -04:00
Sean Yesmunt
0ee1ad69e9 fix lbry.tv typo 2020-09-30 10:32:01 -04:00
Sean Yesmunt
5fb1b07d23 fix typo 2020-09-29 20:57:35 -04:00
Sean Yesmunt
bd4ac1ae8a fix rebase 2020-09-29 17:12:32 -04:00
Sean Yesmunt
848495f82a keep notifications behind flag 2020-09-29 17:12:32 -04:00
Sean Yesmunt
f979d23175 default to empty array for myReactions 2020-09-29 17:12:32 -04:00
jessop
ad88f7de7f disable while reacting, dont call api twice 2020-09-29 17:12:32 -04:00
jessop
63ce107cc1 comment reactions 2020-09-29 17:12:32 -04:00
Sean Yesmunt
bdb3d695ee make comment thumbnail smaller 2020-09-29 17:12:32 -04:00
Sean Yesmunt
b0d19455c1 add placeholder upvote/downvote buttons on comments 2020-09-29 17:12:32 -04:00
Sean Yesmunt
d493a5f9ea remove un-needed user/fetch 2020-09-29 17:12:32 -04:00
Sean Yesmunt
7a13a53bdd fix notification mobile style 2020-09-29 17:12:32 -04:00
Sean Yesmunt
2c1d97f759 use LbcMessage on snackbars 2020-09-29 17:12:32 -04:00
Sean Yesmunt
672a79cc09 1 column 2020-09-29 17:12:32 -04:00
Sean Yesmunt
110ba59ea0 link style cleanup + tile mode on channels 2020-09-29 17:12:32 -04:00
Sean Yesmunt
4f770ec83e redirect to channel page if no channels when trying to repost 2020-09-29 17:12:32 -04:00
Sean Yesmunt
bf9be7c46d keep header on regular discover page 2020-09-29 17:12:32 -04:00
Sean Yesmunt
51d8d85c60 re-enable reposts for SIMPLE_SITE 2020-09-29 17:12:32 -04:00
Sean Yesmunt
fa2d69f943 clean up description style 2020-09-29 17:12:32 -04:00
Sean Yesmunt
40d32a6065 fix LbcMessage for single digit integers 2020-09-29 17:12:32 -04:00
Sean Yesmunt
6b8a38b894 add spinner to web upload message and fix double card issue 2020-09-29 17:12:32 -04:00
Sean Yesmunt
23f218a568 use backout mode on publish page 2020-09-29 17:12:32 -04:00
Sean Yesmunt
7d8277b4db fix homepage layout on windows/linux 2020-09-29 17:12:32 -04:00
Sean Yesmunt
299301b633 make channel/tag follow intro optional 2020-09-29 17:12:32 -04:00
Sean Yesmunt
4e1076e01b make category header clickable 2020-09-29 17:12:32 -04:00
Sean Yesmunt
f8e01c7c99 fix target for notification for daily_watch_remind type 2020-09-29 17:12:32 -04:00
Sean Yesmunt
c6e2b54d33 hide top page behind SIMPLE_SITE flag 2020-09-29 17:12:32 -04:00
Sean Yesmunt
6ed57822d6 create <LbcMessage /> to inject lbc symbols in text from IAPIS 2020-09-29 17:12:32 -04:00
Sean Yesmunt
c1e6e90896 large claim-grid header text + optional icon 2020-09-29 17:12:32 -04:00
Sean Yesmunt
1a3e1ba003 move sync password to it's own page 2020-09-29 17:12:32 -04:00
Sean Yesmunt
cc0b1aea65 add backout option for youtube sync and fix scroll reset 2020-09-29 17:12:32 -04:00
Sean Yesmunt
0b0e92d250 add timed out message for tile view 2020-09-29 17:12:32 -04:00
Sean Yesmunt
93c2e753b2 link to following page for daily watch reward notification 2020-09-29 17:12:32 -04:00
Sean Yesmunt
ac770518bf remove old syncSettings usage 2020-09-29 17:12:32 -04:00
Sean Yesmunt
db43769cbb use LBRY Credits on RewardTile 2020-09-29 17:12:32 -04:00
Sean Yesmunt
29f524981f table alignment fixes 2020-09-29 17:12:32 -04:00
Sean Yesmunt
dd5636c2b3 prevent multiple claim_search's happening on the homepage 2020-09-29 17:12:32 -04:00
Sean Yesmunt
707abdd280 move lbc symbol to left of amount 2020-09-29 17:12:32 -04:00
Sean Yesmunt
4facd12c7c dont' show youtube intro for abandoned youtube syncs 2020-09-29 17:12:32 -04:00
Sean Yesmunt
65dfd54cdd icon tweaks 2020-09-29 17:12:32 -04:00
Sean Yesmunt
edc30ce8bd fix icon shrinking on snackbars with a lot of text 2020-09-29 17:12:32 -04:00
Sean Yesmunt
86003c73a3 handle comment reply notifications 2020-09-29 17:12:32 -04:00
Sean Yesmunt
b3d8a82897 fix page size for large screen tile layout 2020-09-29 17:12:32 -04:00
Sean Yesmunt
30e18a2d99 fix rebase 2020-09-29 17:12:32 -04:00
Sean Yesmunt
35d959208a fix first comment on claim not showing instantly 2020-09-29 17:12:32 -04:00
Sean Yesmunt
cdd0a3c96f no max width on comment channel selector 2020-09-29 17:12:32 -04:00
Sean Yesmunt
0bb129e7a6 keep 'hide replies' button always 2020-09-29 17:12:32 -04:00
Sean Yesmunt
acea7d75fb fix double card on related content 2020-09-29 17:12:32 -04:00
Sean Yesmunt
3b9f5c17f7 fix mobile wrapping on claim list header 2020-09-29 17:12:32 -04:00
Sean Yesmunt
c049274e0e improve comment reply spacing 2020-09-29 17:12:32 -04:00
Sean Yesmunt
f547053ebc add yotube sync to initial sign up flow 2020-09-29 17:12:32 -04:00
Sean Yesmunt
baafd60f4f add back help margin 2020-09-29 17:12:32 -04:00
Sean Yesmunt
295fec0370 copy changes 2020-09-29 17:12:32 -04:00
Sean Yesmunt
bc89d774ba add youtube sync to first run 2020-09-29 17:12:32 -04:00
Sean Yesmunt
dec63d7a2e fix lbc svg rendering issues on chrome mobile 2020-09-29 17:12:32 -04:00
Sean Yesmunt
28e27e937d new lbc icon 2020-09-29 17:12:32 -04:00
Sean Yesmunt
83a6589cd0 new lbc icon 2020-09-29 17:12:32 -04:00
Sean Yesmunt
c9d7b46372 alignment fixes 2020-09-29 17:12:32 -04:00
Sean Yesmunt
d3a8cb31ae allow continue from channel follow intro with 1 channel 2020-09-29 17:12:32 -04:00
Sean Yesmunt
5014b1a027 fix notification linking to channel page 2020-09-29 17:12:32 -04:00
Sean Yesmunt
37f18abb26 copy 2020-09-29 17:12:32 -04:00
Sean Yesmunt
e0914c68e3 copy 2020-09-29 17:12:32 -04:00
Sean Yesmunt
b26b143c31 fix comment redirect for unauth users 2020-09-29 17:12:32 -04:00
Sean Yesmunt
37383953fa use fake input for channel creation prompt in comments 2020-09-29 17:12:32 -04:00
Sean Yesmunt
6e80dbba04 use check icon on snackbars with no errors 2020-09-29 17:12:32 -04:00
Sean Yesmunt
11c797fa0c Get x LBC => Claim x LBC 2020-09-29 17:12:32 -04:00
Sean Yesmunt
7e8b2bb184 first run improvements + kill first follow modal 2020-09-29 17:12:32 -04:00
Sean Yesmunt
61b6c19320 add empty comments message 2020-09-29 17:12:32 -04:00
Sean Yesmunt
d434e62673 ensure close button always does something on authPage 2020-09-29 17:12:32 -04:00
Sean Yesmunt
3f32f5a0ca make sure notifications aren't hidden 2020-09-29 17:12:32 -04:00
Sean Yesmunt
14355ed966 fix copy 2020-09-29 17:12:32 -04:00
Sean Yesmunt
49a7f30f45 fix loading state for tile layout 2020-09-29 17:12:32 -04:00
Sean Yesmunt
a386b4dc7e make sure auto subscribe works with empty value in config 2020-09-29 17:12:32 -04:00
Sean Yesmunt
8af8a97344 fix typo 2020-09-29 17:12:32 -04:00
Sean Yesmunt
6602f0505e copy 2020-09-29 17:12:32 -04:00
Sean Yesmunt
1f2fabe81b Use sentence case for all card titles 2020-09-29 17:12:32 -04:00
Sean Yesmunt
7f6ab894d1 create YrblWalletEmpty for generic yrbl with empty wallet message 2020-09-29 17:12:32 -04:00
Sean Yesmunt
391cc76bd8 use consitent style for 'empty wallet' message on pages that require LBC 2020-09-29 17:12:32 -04:00
Sean Yesmunt
a5107f075c wip with channel prompts on comments 2020-09-29 17:12:32 -04:00
Sean Yesmunt
5beb219ff6 fix notification link to comment not working in some cases
the router scroll handling was interefering. I turned that off if  exists as a search param
2020-09-29 17:12:32 -04:00
Sean Yesmunt
87247feb23 copy 2020-09-29 17:12:32 -04:00
Sean Yesmunt
88fac1b30b copy changes 2020-09-29 17:12:32 -04:00
Sean Yesmunt
b8430e34bf fix slim channel selector size 2020-09-29 17:12:32 -04:00
Sean Yesmunt
5ac404c01a comment cleanup 2020-09-29 17:12:32 -04:00
Sean Yesmunt
2dee81b624 Sign In => Log in 2020-09-29 17:12:32 -04:00
Sean Yesmunt
248e578422 new comments 2020-09-29 17:12:32 -04:00
Sean Yesmunt
b4106b1a65 fix library page for new ClaimListDiscover styling 2020-09-29 17:12:32 -04:00
Sean Yesmunt
61b1ca89d3 first run cleanup + sync first run acknowledgements 2020-09-29 17:12:32 -04:00
Sean Yesmunt
19fb7d7f06 new layout 🕺 2020-09-29 17:12:32 -04:00
infiinte-persistence
02d2962004 MarkdownPreview: Replace 'lbry://' link with a stub when previewing an edit.
## Issue
4797: Markdown preview breaks when using a lbry link in angle brackets

This is similar to the Embed case in commit dbcd677e.

## Change
Replaced it with a dummy link that looks like what the final outcome would be, but would not be clickable.

Again, similar to the embed case, unless there is a way to pass the store over, I don't have an alternative that makes sense: Adding a dummy router or replacing it as a regular <a> will just make React spew security errors.

Not being able to click it is not ideal as we (as a user) can't verify our links, but it's better than the current case of not rendering anything at all.
2020-09-29 12:11:25 -04:00
jessop
adaee548e2 sample robots files 2020-09-29 12:10:30 -04:00
jessop
ba0c22e080 copy custom robots_txt in webpack on compile 2020-09-29 12:10:30 -04:00
infiinte-persistence
427f788cf8 String update 2020-09-29 12:09:16 -04:00
infiinte-persistence
5b897e5748 Corrected version in changelog 2020-09-29 12:09:16 -04:00
infiinte-persistence
4e6fdd890c Remove development strings
## Issue
- Prevent translators from translating useless strings.

## Notes
- While 'Mark all as read' is technically valid, I've removed it since Notifications are not enabled in Desktop. When it is enabled, then we should include all the notification-related strings (there are a bunch).
2020-09-29 12:09:16 -04:00
jessopb
9f59dac965
Merge pull request #4794 from lbryio/email-folders
advise users to check email folders on sign in
2020-09-28 14:34:38 -04:00
jessop
389fce161c advise users to check email folders on sign in 2020-09-25 11:16:09 -04:00
Sean Yesmunt
68ef9a0561 update changelog 2020-09-23 11:52:10 -04:00
Sean Yesmunt
241c87b9f1 v0.48.0 2020-09-23 11:51:02 -04:00
Sean Yesmunt
c0a76ba790 v0.48.0-rc.3 2020-09-23 11:07:21 -04:00
Sean Yesmunt
14113f3c35 handle external pinned links 2020-09-23 11:01:56 -04:00
Sean Yesmunt
98e1dd880d remove un-needed deletion of .env inside of /web 2020-09-23 11:01:56 -04:00
Sean Yesmunt
51214bd246 add back pinned sidebar links 2020-09-22 18:35:13 -04:00
Sean Yesmunt
2b252731d3 v0.48.0-rc.2 2020-09-21 14:13:14 -04:00
Sean Yesmunt
65f1339630 bump lbry-redux/inc + bring in fix from release branch 2020-09-21 14:11:25 -04:00
jessop
2403187917 clearer preference merge code? 2020-09-21 14:11:25 -04:00
jessop
df13f97588 sync error messaging 2020-09-21 14:11:25 -04:00
jessop
ee1a37a806 password error handling 2020-09-21 14:11:25 -04:00
jessop
9127266956 get sync password out of signing flow 2020-09-21 14:11:25 -04:00
jessop
99955ba59c password fix 2 2020-09-21 14:11:25 -04:00
jessop
5f54469971 fix race condition 2020-09-21 14:11:25 -04:00
jessop
3b23f09bed fix sync clean wallet bug
remove previous changes,keep syncpref in wallet, change anon wallet pref key to local

sync choices wip

dont relocate syncenable setting

bump

no prefs on web unauth

bugfix redux bump

pull after sync change

bump
2020-09-21 14:11:25 -04:00
Sean Yesmunt
2ad7088553 Revert "bump lbry-redux/inc + bring in fix from release branch"
This reverts commit 70284e5dfd.
2020-09-21 13:07:09 -04:00
Sean Yesmunt
70284e5dfd bump lbry-redux/inc + bring in fix from release branch 2020-09-21 13:06:29 -04:00
infiinte-persistence
6a73e02bf1 Fix "Price=free" giving 0 results in Following query
## Issue
Fixes 4477: `Price="free" yields nothing`

## Remarks
I didn't consult the documentation, but simply did a trial-and-error.
"=0" -- didn't work
"<=0" -- works
2020-09-21 12:22:33 -04:00
kasramp
0d3d3f49e4 Add Persian language to upload menu language dropdown 2020-09-21 12:13:21 -04:00
infiinte-persistence
631b069f9a Missing translation in the Discover page. 2020-09-21 11:57:16 -04:00
Sean Yesmunt
ccd1cabe04 add option for light background on embeds 2020-09-21 11:38:56 -04:00
Sean Yesmunt
153a17af72 bring in websocket reconnect code from 'release' branch 2020-09-17 12:40:08 -04:00
dependabot[bot]
a23b65edf9 Bump node-fetch from 2.6.0 to 2.6.1
Bumps [node-fetch](https://github.com/bitinn/node-fetch) from 2.6.0 to 2.6.1.
- [Release notes](https://github.com/bitinn/node-fetch/releases)
- [Changelog](https://github.com/node-fetch/node-fetch/blob/master/docs/CHANGELOG.md)
- [Commits](https://github.com/bitinn/node-fetch/compare/v2.6.0...v2.6.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-09-17 11:34:27 -04:00
dependabot[bot]
81f32ab05f Bump node-fetch from 2.6.0 to 2.6.1 in /web
Bumps [node-fetch](https://github.com/bitinn/node-fetch) from 2.6.0 to 2.6.1.
- [Release notes](https://github.com/bitinn/node-fetch/releases)
- [Changelog](https://github.com/node-fetch/node-fetch/blob/master/docs/CHANGELOG.md)
- [Commits](https://github.com/bitinn/node-fetch/compare/v2.6.0...v2.6.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-09-17 11:34:17 -04:00
dependabot[bot]
a03272aa88 Bump http-proxy from 1.18.0 to 1.18.1 in /web
Bumps [http-proxy](https://github.com/http-party/node-http-proxy) from 1.18.0 to 1.18.1.
- [Release notes](https://github.com/http-party/node-http-proxy/releases)
- [Changelog](https://github.com/http-party/node-http-proxy/blob/master/CHANGELOG.md)
- [Commits](https://github.com/http-party/node-http-proxy/compare/1.18.0...1.18.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-09-17 11:34:06 -04:00
infiinte-persistence
dbcd677e69 MDE: Replace the iframe with a stub in "edit + preview" mode.
## Issue
4644: Markdown Preview breaks when <iframe> is present

Error: "Invariant violation: could not find 'store' ..."

## Change
Until we figure out a way to pass the store to the SimpleMDE preview formatter, just replace the embed with a stub region.
2020-09-16 16:15:27 -04:00
Sean Yesmunt
6b676d8ded Revert "bump lbryinc"
This reverts commit a27cc88d17.
2020-09-16 15:07:27 -04:00
Sean Yesmunt
a27cc88d17 bump lbryinc 2020-09-16 13:27:07 -04:00
infiinte-persistence
5106ba59f6 FloatingPlayer: Run clamp-to-screen code when going into floating mode.
## Issue
The previous code only handled the clamping if the FP is already floating when the main window is resized.

1. In fresh Odysee session, the floating player is always clipped on the right.
2. If you resize the desktop while not floating, the FP could be clipped when you go into floating mode.

## Changes
- Factor out the clamping code.
- Add another effect to handle 'isFloating' changes.
2020-09-15 12:55:12 -04:00
infiinte-persistence
6f515ac5f4 String update 2020-09-15 12:55:12 -04:00
infiinte-persistence
4fc5a018e5 Clear 'passwordSet*' flags too in USER_PASSWORD_SET_CLEAR
## Issue
4749: "Password updated successfully" kept showing up

## Change
In addition to the `passwordReset*` variables, reset the `passwordSet*` variables as well for `USER_PASSWORD_SET_CLEAR`.
2020-09-15 12:52:12 -04:00
infiinte-persistence
ebdf9c1b11 Fix incorrect icon for 'Sign Up' and 'Sign In' 2020-09-15 12:50:49 -04:00
Jeremy Kauffman
9c6b7bd280 add languages parameter to ClaimTilesDiscover 2020-09-11 14:21:02 -04:00
Sean Yesmunt
a8c19818ed add back sign in link on desktop 2020-09-11 12:41:04 -04:00
Sean Yesmunt
89dd688407 add SHARE_DOMAIN_URL to travis config 2020-09-11 01:57:59 -04:00
Sean Yesmunt
3308b152c9 update changelog 2020-09-10 14:36:11 -04:00
Sean Yesmunt
2075e08f1d v0.48.0-rc.1 2020-09-10 14:20:27 -04:00
jessop
1296dcbba2 bump 2020-09-10 14:20:02 -04:00
jessop
b5dccced6d bugfix 2020-09-10 14:20:02 -04:00
jessop
6c4842a111 sync changes 2020-09-10 14:20:02 -04:00
ioancole
bb9bde1c19 Encode automplete search string and don't autocomplete for empty query 2020-09-10 13:36:33 -04:00
ioancole
055a476d2f Hide search page URI header for invalid channel/stream name 2020-09-10 13:36:33 -04:00
ioancole
4add1f7200 Refactor wunderbar index/view and encode search query 2020-09-10 13:36:33 -04:00
Sean Yesmunt
c80b28ade9 Revert "Hiding URIs header for invalid URIs"
This reverts commit 8f407a36d4.
2020-09-10 11:30:55 -04:00
Sean Yesmunt
80707a37df Revert "Refactor wunderbar index/view and encode search query"
This reverts commit 323ab43889.
2020-09-10 11:30:55 -04:00
Sean Yesmunt
813ef0e960 Revert "Encode autocomplete search query"
This reverts commit 7f8d084fa4.
2020-09-10 11:30:55 -04:00
Sean Yesmunt
cb0918726e Revert "Don't autocomplete for empty string search"
This reverts commit 72187ca51e.
2020-09-10 11:30:55 -04:00
ioancole
72187ca51e Don't autocomplete for empty string search 2020-09-10 11:08:22 -04:00
ioancole
7f8d084fa4 Encode autocomplete search query 2020-09-10 11:08:22 -04:00
ioancole
323ab43889 Refactor wunderbar index/view and encode search query 2020-09-10 11:08:22 -04:00
ioancole
8f407a36d4 Hiding URIs header for invalid URIs 2020-09-10 11:08:22 -04:00
infiinte-persistence
e784107a0b FloatingPlayer: Stay within screen when window is resized
## Issue
4741: `Pop out player disappears or is cut off`

## Approach:
- When dragging stops, determine the location of the floating player with respect to the main window in terms of percentage.
- When window is resized, roughly re-position based on the stored percentage.
2020-09-10 11:06:35 -04:00
infiinte-persistence
ddfc2a54b8 FloatingPlayer: Minor function-renaming for clarity 2020-09-10 11:06:35 -04:00
infiinte-persistence
92611af9c0 String: Updates to match changes in lbry-redux 2020-09-10 11:06:35 -04:00
infiinte-persistence
8e76fee162 String: Usual updates 2020-09-10 11:06:35 -04:00
Sean Yesmunt
bba539f846 Revert "Revert "add logging of player point of presence""
This reverts commit 4067e1ffd8.
2020-09-09 14:55:16 -04:00
Sean Yesmunt
799c0c1f11 quick comment fix while waiting for release branch to be merged into master 2020-09-09 14:54:29 -04:00
Sean Yesmunt
4067e1ffd8 Revert "add logging of player point of presence"
This reverts commit fb142f7699.
2020-09-09 14:40:43 -04:00
Jeremy Kauffman
fb142f7699 add logging of player point of presence 2020-09-09 10:48:15 -04:00
Sean Yesmunt
2c22aee126 remove SHARE_DOMAIN_URL default from env 2020-09-08 15:16:12 -04:00
jessop
f04cebd7b5 custom share domain defaults to url 2020-09-08 15:09:21 -04:00
dependabot[bot]
9bce81d875 Bump http-proxy from 1.18.0 to 1.18.1
Bumps [http-proxy](https://github.com/http-party/node-http-proxy) from 1.18.0 to 1.18.1.
- [Release notes](https://github.com/http-party/node-http-proxy/releases)
- [Changelog](https://github.com/http-party/node-http-proxy/blob/master/CHANGELOG.md)
- [Commits](https://github.com/http-party/node-http-proxy/compare/1.18.0...1.18.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-09-08 12:18:01 -04:00
dependabot[bot]
88c72e90fd Bump decompress from 4.2.0 to 4.2.1
Bumps [decompress](https://github.com/kevva/decompress) from 4.2.0 to 4.2.1.
- [Release notes](https://github.com/kevva/decompress/releases)
- [Commits](https://github.com/kevva/decompress/compare/v4.2.0...v4.2.1)

Signed-off-by: dependabot[bot] <support@github.com>
2020-09-08 12:17:51 -04:00
infiinte-persistence
dd73e4a164 Translator-found missing strings 2020-09-08 12:17:38 -04:00
infiinte-persistence
202269ebeb Web: Fix 'Download' not triggering until second attempt
## Issue
4669: `Download doesn't trigger on web until 2nd attempt`

The issue only happens when _Autoplay_ is disabled in the User Settings and the video hasn't been loaded when _Download_ is clicked.

The following code:
   `if (didClickDownloadButton && streamingUrl)`
didn't triggered because:
1. `streamingUrl` has not resolved yet when the Effect ran.
2. When it did resolve, the parent component was also notified and unmounted things, causing `didClickDownloadButton` to reset.

## Approach
Avoid the unnecessary unmounting by not using a conditional section wrapper within a return statement. React probably couldn't do the diffs when the conditional is at a section level.
2020-09-04 11:52:38 -04:00
infiinte-persistence
d1db6fb3b3 Block Toast untranslated strings 2020-09-04 11:51:31 -04:00
infiinte-persistence
694c6b528c Remove unused string; re-organized one. 2020-09-04 11:51:31 -04:00
infiinte-persistence
7edd9f7c92 Fix partially untranslated text in the Upgrade Modal
## Issue
- "See the" was not encapsulated with the translation macro.
- Split-strings are not translatable for some languages.

## Change
Combine the entire sentence into a single string with variable.
2020-09-04 11:51:31 -04:00
infiinte-persistence
a0df0a0e0a Sidebar: Bring back the "Followed Tags" list
## Issue
4708: Bring back tag list in side bar when Tags view selected

## Approach
- Instead of displaying either Channels or Tags, both will now be displayed.
- The tags will simply be a the same button component as the "channels", but with a "#" prefix. This simplifies the CSS-side changes, and looks better overall as well.
2020-09-04 11:50:02 -04:00
Mark Beamer Jr
6485e1af82 Add lbry apis to config 2020-09-03 12:58:29 -04:00
Sean Yesmunt
404f0dc195 fix first comment on post failing even when it is created successfully 2020-09-01 20:27:52 -04:00
Thomas Zarebczan
20f932f935 add comment stats to creator analytics
+ fix up other minor issues and added weekly change figure to recent content

app strings
2020-08-31 14:34:41 -04:00
Sean Yesmunt
e797b26c36 remove comment 2020-08-31 11:51:25 -04:00
jessop
ee217404da provide share domain url configuration 2020-08-31 11:51:25 -04:00
ioan.cole
254a2f5138 Refactor search.js
Calling 'normalizeURI' then 'parseURI' needlessly runs the 'parseURI' function twice. This is a better way of doing it.
2020-08-31 11:25:32 -04:00
ioancole
3f598f76d1 Fix search suggestions 'View Channel' Bug 2020-08-31 11:25:32 -04:00
jessopb
3a69f47347
quick fix for sync (#4718) 2020-08-28 11:25:47 -04:00
Sean Yesmunt
df9a19a9b4 always send integers to buffer api 2020-08-27 14:18:45 -04:00
infiinte-persistence
2e1d7fde1a Fix floating player being paused after dragging.
## Issue
Fixes 4709 `Dragging floating player via video section pauses video`

## Changes
Don't propagate the key-up action if the window was dragged. Hopefully there isn't another sub-component that relies on the action being propagated.

## Note
If you drag at exactly the "Play" icon the control bar, the issue still happens.
2020-08-27 13:59:25 -04:00
infiinte-persistence
de780a1fd8 Remove strings with trailing spaces as it's not obvious in Transifex.
## Issue
Fixes 4665 `Translated strings with trailing spaces not shown correctly`

## Changes
While there are other strings with trailing spaces, "Trending for " was the only one that mattered. The rest are standalone paragragphs or used in a single line, so it doesn't matter if the translation included the space or not.
2020-08-27 13:58:44 -04:00
Sean Yesmunt
6377dc86e0 fix side navigation scroll behavior on mobile 2020-08-26 11:01:33 -04:00
jessop
4a86d25891 fix react dom warning passing hideForUnauth 2020-08-26 10:25:36 -04:00
Sean Yesmunt
bae146205c fix card width on rewards page 2020-08-25 14:07:12 -04:00
Sean Yesmunt
23dfddefa1 fix extra padding on unseen notifications 2020-08-25 12:25:25 -04:00
Sean Yesmunt
a28ce2d3b8 pass 'only_if_expired: true' so clicking 'resend link' doesn't expire old tokens 2020-08-25 12:25:25 -04:00
Sean Yesmunt
4035c18f8e Publishes => Uploads 2020-08-25 12:25:25 -04:00
Sean Yesmunt
b9fd01d7b3 fix 'Related' title size on small/medium screens 2020-08-25 12:25:25 -04:00
Sean Yesmunt
22586c802c revert redirect after signin until we can signin users from verfication token 2020-08-25 12:25:25 -04:00
jessop
c78e1e2970 patch null blocked error 2020-08-25 09:53:22 -04:00
btzr-io
353c57a568 fix #4686 2020-08-25 09:51:13 -04:00
infiinte-persistence
bd34a720a2 String update for 0.47.2 2020-08-25 09:50:42 -04:00
Sean Yesmunt
93f7da132e update twitter link 2020-08-25 09:22:54 -04:00
Niko Storni
e9a53820fd update code signing certificate 2020-08-24 21:28:53 -04:00
Jeremy Kauffman
f201039772
copy changes made on call 2020-08-24 18:23:38 -04:00
Thomas Zarebczan
a1f5292e57
Increase polling interval (makes app lag) 2020-08-24 16:08:14 -04:00
Jeremy Kauffman
aff2ddd04d
adjust account validation text 2020-08-24 15:39:59 -04:00
Sean Yesmunt
9ee4b256fb add mark as seen to notifications 2020-08-21 16:04:27 -04:00
sanabhass
2ae3484363 Support for auto-detection of direction for component with varying content 2020-08-21 11:50:40 -04:00
Sean Yesmunt
cf98e65a3f redirect to homepage after signing in 2020-08-21 11:47:41 -04:00
Sean Yesmunt
e0e33eb148 additional copy changes 2020-08-21 11:47:41 -04:00
Sean Yesmunt
7e35de3760 Register => Sign Up 2020-08-21 11:47:41 -04:00
Sean Yesmunt
764af3a5db wrap IS_MAC statements inside app ifdef 2020-08-21 11:47:41 -04:00
infiinte-persistence
d276a0fa62 String update for 0.47.2 2020-08-21 00:17:54 -04:00
infiinte-persistence
9e3fe5de37 Fix changelog
- Added entry for the new "in-app editor"
- Fixed URL and sentence (made a guess on what it was supposed to be) for the file-property icon location change.
- Fixed missing parenthesis.
2020-08-21 00:17:02 -04:00
Sean Yesmunt
23c4d1d5fa v0.47.2-rc.3 2020-08-20 22:59:29 -04:00
Sean Yesmunt
ea2d040c22 increase side nav width and give extra bottom padding to deal with link preview 2020-08-20 22:33:13 -04:00
Sean Yesmunt
b688fc1cc0 use 'Library' label instead of 'Purchased' on desktop 2020-08-20 22:33:13 -04:00
Sean Yesmunt
3ca847ece3 show lbry link on share dialog for channels 2020-08-20 22:33:13 -04:00
Sean Yesmunt
082ee187da hide side navigation scrollbar until hover 2020-08-20 22:33:13 -04:00
Sean Yesmunt
7b23126379 fix side navigation on mac
mac has an extra header height to handle the top level menu buttons
2020-08-20 22:33:13 -04:00
Sean Yesmunt
514f934148 v0.47.2-rc.2 2020-08-20 20:52:05 -04:00
Sean Yesmunt
fd778adf99 remove 2020protests from the homepage 2020-08-20 11:31:35 -04:00
Sean Yesmunt
84084a7c41 use limit_claims_per_channel on homepage 2020-08-20 11:31:35 -04:00
Sean Yesmunt
17feef93df add back sign out link on mobile 2020-08-20 11:14:51 -04:00
Sean Yesmunt
4ebb463508 add back sign in link on desktop 2020-08-20 11:14:51 -04:00
Sean Yesmunt
df2e3c12be v0.47.2-rc.1 2020-08-20 01:40:10 -04:00
Sean Yesmunt
33d47d1d6d default sync to false on desktop 2020-08-20 01:38:48 -04:00
Sean Yesmunt
cc1a8ca4e8 fix navigation button spacing 2020-08-20 01:38:48 -04:00
Sean Yesmunt
964a8f7031 update changelog 2020-08-20 01:26:21 -04:00
Sean Yesmunt
4de47b61e4 update yarn.lock 2020-08-20 01:16:11 -04:00
Franco Montenegro
dfad612235 Update lbry-redux package version 2020-08-20 01:16:11 -04:00
Franco Montenegro
cbfed97853 Add app closing behavior setting 2020-08-20 01:16:11 -04:00
Sean Yesmunt
907eb598e3 bump lbry-sdk to 0.81.0 2020-08-20 00:58:31 -04:00
Sean Yesmunt
005cf1d52b fix url creation typo 2020-08-19 17:40:12 -04:00
Sean Yesmunt
6ca0796c8a handle google webcache urls 2020-08-19 17:28:08 -04:00
Sean Yesmunt
5447e334dc use dynamic js bundle urls 2020-08-19 17:14:31 -04:00
Sean Yesmunt
f5de744641 only show notification bubble in menu button on mobile 2020-08-19 12:50:12 -04:00
Sean Yesmunt
c0053a772b fix mobile video alignment 2020-08-19 10:02:00 -04:00
Sean Yesmunt
34b0bfc315 Revert "use dynamic js bundle urls"
This reverts commit cb8a801d4a.
2020-08-18 23:34:06 -04:00
kodxana
acd774e938 Changed Raspberry Pi to ARM
Update links to point into building for ARM documentation.
2020-08-18 22:57:03 -04:00
Sean Yesmunt
cb8a801d4a use dynamic js bundle urls 2020-08-18 22:22:57 -04:00
Sean Yesmunt
3b4ac976b6 Revert "full width homepage"
This reverts commit 0018fdaebc.
2020-08-18 12:53:07 -04:00
Sean Yesmunt
36067417f5 Revert "move click listener to app only for external links"
This reverts commit b58c9709e2.
2020-08-18 12:53:07 -04:00
Sean Yesmunt
f688402748 align page contents with header width 2020-08-18 10:17:53 -04:00
infiinte-persistence
f3362c4e59 Publish: Make 'Channel' setting persistent.
## Issue
Users are annoyed with the constant reset of the 'channel' setting in the Publish page.

## Changes
1. Revert the previous attempt in ff7b4092. The `usePersistedState` method is bad, as it will clash with the Redux value.
2. Implemented the persistence in Redux -- requires "https://github.com/lbryio/lbry-redux/pull/347".
2020-08-18 09:25:57 -04:00
Sean Yesmunt
b58c9709e2 move click listener to app only for external links 2020-08-18 09:25:36 -04:00
Sean Yesmunt
0018fdaebc full width homepage 2020-08-18 09:25:36 -04:00
Sean Yesmunt
0ec569f020 only redirect on show page if in lbry.tv land
Fixes crash when app is served from webcache.googleusercontent.com
2020-08-17 23:42:16 -04:00
Baltazar Gomez
d2ca72e246 remove debug comment 2020-08-13 11:11:23 -04:00
Baltazar Gomez
c397297dfb remove debug comment 2020-08-13 11:11:23 -04:00
btzr-io
f881f3b1c6 fix WebFile flow type 2020-08-13 11:11:23 -04:00
btzr-io
2d47dd1780 fix fileReader flow errors 2020-08-13 11:11:23 -04:00
btzr-io
334f582a4d fix publishForm flow errors 2020-08-13 11:11:23 -04:00
infiinte-persistence
b49df1fc0a Fix translation failure on the Sidebar
## Issue
The sidebar text stuck in English despite already translated.

I'm guessing the i18n macro only ran once for the global object.

## Change
Run the macro on the label when passing it to the `Button`.
2020-08-13 11:10:08 -04:00
Sean Yesmunt
717de53eb1 force footer to sit below file page contents 2020-08-12 17:23:04 -04:00
Newbyte
2525dcf983 Implement OpenSearch support 2020-08-12 13:35:49 -04:00
Sean Yesmunt
abbaa8bf78 always batch resolve search results 2020-08-12 13:03:00 -04:00
Sean Yesmunt
2db2b870ff fix document layout and remove WaitUntilOnPage wrapper for related content 2020-08-12 11:47:00 -04:00
jessopb
918e08cb9b
Merge pull request #4655 from lbryio/revert-4654-detectMatomoOutage
Revert "check matomo and disable if necessary"
2020-08-12 11:04:55 -04:00
jessopb
1471511c03 Revert "check matomo and disable if necessary"
This reverts commit f88b98ea62.
2020-08-12 11:04:38 -04:00
Thomas Zarebczan
e092ae3231
Fix SQL for previews 2020-08-12 08:59:31 -04:00
Thomas Zarebczan
b14f3c87f1
Fix vanity + bid state for URLs
This ensures controlling is returned first.
2020-08-11 18:07:49 -04:00
Sean Yesmunt
a31f14b016 cleanup 2020-08-11 17:04:14 -04:00
Sean Yesmunt
692862c769 collapsable sidebar initial commit 2020-08-11 17:04:14 -04:00
jessop
f88b98ea62 check matomo and disable if necessary 2020-08-11 16:47:56 -04:00
Thomas Zarebczan
7b504b5fa7
update invalid symbols 2020-08-11 11:30:23 -04:00
Andrey Beletsky
70a8799036
Merge pull request #4616 from lbryio/feat-supportSdkFastCommentFetch
support sdk feature for fast comments
2020-08-11 12:32:17 +07:00
Sean Yesmunt
5c3d641439 update lbry-redux 2020-08-10 17:45:09 -04:00
jessop
c0be817960 support sdk feature for fast comments 2020-08-10 14:52:17 -04:00
Sean Yesmunt
2f995be794 use new buffer analytics api 2020-08-07 22:54:29 -04:00
infiinte-persistence
e5b1177644 Patch 37a1fd88: Sync selectedChannel only if the channel doesn't exist
## Issue
The previous commit was over-doing the manual syncing, causing other usages like the Repost Modal to always reset to a different channel.

## Fix
Only do the manual syncing when the channel does not exist.
At this point, we could also just take `channel[0]` as the new value.
2020-08-07 16:28:41 -04:00
Sean Yesmunt
e64d925086 fix alignment 2020-08-07 16:28:09 -04:00
Sean Yesmunt
1854710093 fix app crash when file name can't be found 2020-08-07 16:28:09 -04:00
Sean Yesmunt
c4e6605ada use button group as publish file header instead of title for better app parity 2020-08-07 16:28:09 -04:00
Baltazar Gomez
3da4df6b8f increase max chars limit of post editor 2020-08-05 21:37:00 -04:00
Baltazar Gomez
2089a0064f add new chars limit for post 2020-08-05 21:37:00 -04:00
jessop
5f5203a211 put file properties such as type and duration over thumb 2020-08-05 14:59:04 -04:00
infiinte-persistence
c75bab5979 Tip Modal: Don't do final submit when the intention is to create New Channel.
## Issue
Fixes `4544 Channel-creation in "Tip|Support" Modal shouldn't submit LBC immediately`

## Changes
`Form` seems to have already tried to stop the propagation of `onSubmit`, so I'm not sure why it was still propagated.

Fix by using the same method used in the `CommentCreate`, which is simply to check for `CHANNEL_NEW` as the current selection.
2020-08-05 13:01:29 -04:00
infiinte-persistence
37a1fd88e3 selectChannel: sync auto-resolved value during mounting.
## Issue
Fixes `4621 Can't create Comments if you recently deleted a channel`

The `channel` that the parent passes in is from a persisted state. If the channel has been deleted, `<select>` will automatically resolve to another selectable value. However, `onChange` will not be called for this scenario, so we now have a mismatch.

## Changes
- Manually check if the value has been auto-resolved and report it to the parent.
- An extra `setTimeout` was needed. It seems like `onChannelChange` needs to be called after the first `useEffect` of the parent, otherwise the call has no effect.
2020-08-05 12:59:54 -04:00
Baltazar Gomez
d64d278676 fix metadata not updating if post content doesn't change 2020-08-05 12:57:49 -04:00
Sean Yesmunt
b006121b6a
Delete first timers issue template 2020-08-05 11:03:43 -04:00
jessop
93c49ac566 fix copying custom OG image 2020-08-04 12:00:33 -04:00
jessop
ab56633eed prevent specific settings sync in config 2020-08-04 12:00:20 -04:00
Sean Yesmunt
42e989d0cc always use markdown editor for text posts 2020-08-04 11:49:12 -04:00
btzr-io
036aedd88d use redux to load post content 2020-08-04 11:49:12 -04:00
btzr-io
80e1965e46 prevent name change while editing and more fixes 2020-08-04 11:49:12 -04:00
btzr-io
8067793379 fix reselect file error 2020-08-04 11:49:12 -04:00
btzr-io
0f757bc101 fix typo 2020-08-04 11:49:12 -04:00
btzr-io
d93d97882b fix auto populate title logic 2020-08-04 11:49:12 -04:00
btzr-io
0b3fe001d0 autopopulate name from title 2020-08-04 11:49:12 -04:00
btzr-io
a565f7c5df fix labeling and rename some strings 2020-08-04 11:49:12 -04:00
btzr-io
18a6e7c7c1 generate temporal file for published story 2020-08-04 11:49:12 -04:00
btzr-io
c47c6f6034 fix story validation and content loading on web 2020-08-04 11:49:12 -04:00
btzr-io
c7ea2a14ad fix web version build 2020-08-04 11:49:12 -04:00
btzr-io
9fc2384649 fix changes not saving on edit mode 2020-08-04 11:49:12 -04:00
btzr-io
2ff1fc024c load story content from streaming url and improve form validation + minor fixes 2020-08-04 11:49:12 -04:00
btzr-io
a5d1746151 add in-app text and markdown publishing 2020-08-04 11:49:12 -04:00
Sean Yesmunt
80d8eeb4cf move ads in ClaimList behind SHOW_ADS config 2020-08-03 16:16:04 -04:00
Sean Yesmunt
e9b7d40456 redirect to claim if entering a valid claim_id in the search bar 2020-08-03 13:58:53 -04:00
Brad Kimmel
e5809b8b13 Add more metadata to content pages.
This adds the following metadata to content pages:

  - Channel name: og:video:series
  - Duration/Audio Duration: og:video:duration
  - Release time: og:video:release_date
2020-08-03 09:44:53 -04:00
infiinte-persistence
443d7469de Regular string update 2020-08-03 09:43:43 -04:00
Julie Sigwart
78784f3ab6 Additional change per @eatdostacos recommendation 2020-08-03 09:43:27 -04:00
Julie Sigwart
e1d1b572d1 typo fix 2020-08-03 09:43:27 -04:00
jessopb
544a16adca
Merge pull request #4618 from lbryio/revert-4611-imhere
Revert "add imhere row at top"
2020-08-01 16:55:35 -04:00
jessopb
bc6cbfd5ee Revert "add imhere row at top"
This reverts commit 8e73a02863.
2020-08-01 16:55:01 -04:00
jessopb
e4b5140361
Merge pull request #4615 from lbryio/fix-pullSyncOnSettings
pull sync on nav to settings
2020-07-31 17:17:44 -04:00
jessop
314fb22638 pull sync on nav to settings 2020-07-31 17:09:05 -04:00
Sean Yesmunt
c65afb201d fix embedded link for encoded url 2020-07-30 17:20:39 -04:00
Sean Yesmunt
8e73a02863 add imhere row at top 2020-07-30 17:13:01 -04:00
jessop
c33ce28805 sync settings generally based on navigation and settings paths 2020-07-30 17:05:30 -04:00
Sean Yesmunt
9acbdf9825 group comment notifications and clean up notification style 2020-07-30 16:15:02 -04:00
Sean Yesmunt
9fc3d10d4b update copy while abandoning 2020-07-30 13:53:40 -04:00
jessop
4dbfbbee00 disable file remove/abandon while abandoning 2020-07-30 13:53:40 -04:00
dependabot[bot]
269852ea3b Bump elliptic from 6.5.1 to 6.5.3 in /web
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.1 to 6.5.3.
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](https://github.com/indutny/elliptic/compare/v6.5.1...v6.5.3)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-30 12:47:18 -04:00
dependabot[bot]
4c642e66c7 Bump elliptic from 6.5.2 to 6.5.3
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.2 to 6.5.3.
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](https://github.com/indutny/elliptic/compare/v6.5.2...v6.5.3)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-30 11:31:50 -04:00
Sean Yesmunt
7f8ef8f14d update yarn.lock 2020-07-30 11:30:48 -04:00
Sean Yesmunt
410c3b34a2 actually fix it 2020-07-30 11:09:15 -04:00
Sean Yesmunt
60e2d14e99 fix inline player style for mobile 2020-07-30 08:33:30 -04:00
eatdostacos
43155c4b87 Add one new string 2020-07-29 18:01:25 -04:00
infiinte-persistence
93d26a0ebb Fix 'Comments' being loaded on Autoplay despite not visible. 2020-07-29 17:56:38 -04:00
infiinte-persistence
0ab5ca080e Fix 'Related' being loaded on Autoplay despite not visible.
## Issue
In the `Autoplay` case, if the `WaitUntilOnPage` has already opened the gates previously, the next video's Related will be loaded regardless of scroll position.

## Changes
Add a `lastUpdateDate` prop to `WaitUntilOnPage` to allow the parent to reset the gating state.

I don't really like the `lastUpdateDate` prop since it's purpose is not intuitive. Is there a standard way to do a "one-time trigger" from the parent?
2020-07-29 17:56:38 -04:00
infiinte-persistence
c1dbb752d8 RecommendedContent: Move WaitUntilOnPage to within the component instead.
This allows `RecommendedContent` to render the Card but with an empty list, so that the area isn't totally blank while waiting for `WaitUntilOnPage` to debounce.
2020-07-29 17:56:38 -04:00
infiinte-persistence
1383b19817 WaitUntilOnPage: Debounce to fix false positives.
There are cases where `WaitUntilOnPage` will incorrectly render, such as at the beginning if the upper components hasn't expanded to full size, so `WaitUntilOnPage` would be briefly visible.

Added a 300ms debounce to fix this, which would also improve scrolling performance a bit by doing less. Hopefully 300ms is enough for the upper components to inflate to full size.
2020-07-29 17:56:38 -04:00
jessopb
2a5d87ee54
Merge pull request #4602 from lbryio/fix-syncThemeSetting
trigger sync on theme change in nav menu
2020-07-29 17:56:06 -04:00
sanabhass
2f16758794 Add direction 2020-07-29 17:54:10 -04:00
sanabhass
6cf298c2bc integrate PostCSS-plugin for RTL-adaptivity 2020-07-29 17:54:10 -04:00
Sean Yesmunt
ca89dab45f move claim uri under file/channel details 2020-07-29 13:04:58 -04:00
Sean Yesmunt
ad9b98389f fix html metadata for collisions and redirect reposted claims serverside 2020-07-29 10:31:13 -04:00
Sean Yesmunt
c9723082fe hide data network settings on web 2020-07-29 00:16:49 -04:00
jessop
b185857eb0 trigger sync on theme change in nav menu 2020-07-28 22:52:44 -04:00
Sean Yesmunt
3aad88ebe7 revert markdown size increases so no markdown is larger than card titles 2020-07-28 16:37:59 -04:00
Sean Yesmunt
0a60d93c71 Revert "redirect to reposted claims serverside"
This reverts commit c9c98501af.
2020-07-28 15:14:59 -04:00
Sean Yesmunt
43a9393dca Revert "fix metadata for claims with canonical collision"
This reverts commit 61d55604a4.
2020-07-28 15:14:59 -04:00
Sean Yesmunt
26f460d2ae Revert "update arguments order"
This reverts commit de15a56ed8.
2020-07-28 15:14:59 -04:00
Sean Yesmunt
de15a56ed8 update arguments order 2020-07-28 12:39:45 -04:00
Sean Yesmunt
61d55604a4 fix metadata for claims with canonical collision 2020-07-28 12:39:45 -04:00
Sean Yesmunt
c9c98501af redirect to reposted claims serverside 2020-07-28 12:39:45 -04:00
Sean Yesmunt
ca38d2cbdc bump lbry-redux 2020-07-27 17:07:34 -04:00
Sean Yesmunt
0df388280e add search code from lbry-redux 2020-07-27 16:37:36 -04:00
jessop
142e695150 reverse child comments 2020-07-27 16:14:23 -04:00
Sean Yesmunt
d76ece04bc group similar settings in preparation of tabular settings page 2020-07-27 14:19:18 -04:00
jessop
0b3dbfc8f8 bump redux 2020-07-27 11:53:14 -04:00
jessop
d9bf72a351 all settings constants come from redux
sync settings

backout nav cases and anon preference key

more robust backout header

put notificationSettings under backout bar

review changes
2020-07-27 11:53:14 -04:00
Sean Yesmunt
e001906443 hide exact search result for SIMPLE_SITE 2020-07-27 10:48:05 -04:00
Sean Yesmunt
e10647b5a2 hide some file page buttons with SIMPLE_SITE flag 2020-07-27 10:48:05 -04:00
Sean Yesmunt
5ea87b76c9 use SITE_NAME from config for tos copy 2020-07-27 10:48:05 -04:00
Sean Yesmunt
312ff91994 add SIMPLE_SITE config value to disable complex UIs 2020-07-27 10:48:05 -04:00
Sean Yesmunt
4b6c772adc copy changes 2020-07-27 10:48:05 -04:00
Sean Yesmunt
201417efcf Publish => Upload 2020-07-27 10:48:05 -04:00
Sean Yesmunt
fd6be7d3af simplify share modal slightly 2020-07-27 10:48:05 -04:00
infiinte-persistence
f53bda865c Fix changelog for 0.47.1 2020-07-27 10:35:58 -04:00
infiinte-persistence
58adba306a Block mature content: Updates based on feedback. 2020-07-24 16:59:02 -04:00
infiinte-persistence
4c57cdd99f Block mature content when accessed directly from URL
## Issue:
Fixes 4549 `Mature content + navigating to URLs directly`
_If a user navigates to mature content directly, we currently show the page even if mature content setting is not enabled. With our recent mature content verification setting, we should hide the page until the user turns it on - we can prompt directly on the file page._

## Changes:
1. Show basic info of the claim like URL and Title, so that user knows which page is being blocked.
2. Initially, I had 2 "boxes" -- one for the title and another for the message. It felt a bit messy, so `FileTitle` was augmented to house everything in one box.
2020-07-24 16:59:02 -04:00
jessop
5399c1941c allow signin on local using non-production SameSite=Lax 2020-07-24 16:48:05 -04:00
Sean Yesmunt
e661beabdc bump video.js 2020-07-24 16:14:24 -04:00
Sean Yesmunt
63a09c95fa shrink search bar 2020-07-24 16:14:24 -04:00
Sean Yesmunt
a54790ec64 bring in styles from @lbry/components 2020-07-24 13:20:36 -04:00
infiinte-persistence
2f5beb84fa Fix sluggish Back button when navigation back to channels with lots of comments
## Issue
When navigating back and forth between a File and Channel page, the back-action will be laggy (no response) if the channel contains a lot of comments and is in the midst of resolving them.

## Changes
The "full" fix would be to batch-load comments, as this would improve the performance of fetching both Channel and File comments. For now, this commit focuses on the Back action problem only.

Skip fetching comments by not mounting 'ChannelDiscussion' until the tab is selected. I couldn't find anything in the Reach UI documentation on how to not render inactive `TabPanel`s, so I used the straight-forward state method.
2020-07-24 09:22:35 -04:00
Sean Yesmunt
f94cf9da93 Library => Purchased on web 2020-07-23 11:16:32 -04:00
Sean Yesmunt
642e3663f7 simplify floating player controls 2020-07-23 11:16:32 -04:00
Sean Yesmunt
8960a4f5cb simplify wunderbar copy 2020-07-23 11:16:32 -04:00
Sean Yesmunt
aa092baec4 move claim-grid link to bottom right 2020-07-23 11:16:32 -04:00
Sean Yesmunt
90327a72ed add comments behind a flag 2020-07-23 11:03:00 -04:00
Sean Yesmunt
631d7495c7 v0.47.1 2020-07-23 09:36:26 -04:00
Sean Yesmunt
d11c041fc1 v0.47.1-rc.5 2020-07-23 09:34:07 -04:00
infiinte-persistence
80cce34a85 Strings for 0.47.1 2020-07-23 09:33:53 -04:00
Sean Yesmunt
f6f14aaba0 v0.47.1-rc.4 2020-07-22 21:33:31 -04:00
Sean Yesmunt
588b9c5e32 add basic copy for delay in abandon appearing 2020-07-22 21:33:12 -04:00
Sean Yesmunt
0f51cf8986 wait to go back until claim has been abandoned 2020-07-22 18:39:24 -04:00
Sean Yesmunt
1ad430f463 v0.47.1-rc.3 2020-07-22 15:36:17 -04:00
Sean Yesmunt
ae50e07b15 update lbry-redux 2020-07-22 15:36:09 -04:00
Sean Yesmunt
befbdae5cf v0.47.1-rc.2 2020-07-22 14:24:49 -04:00
Sean Yesmunt
f7a13ab52e update changelog 2020-07-22 14:24:42 -04:00
Sean Yesmunt
de3ae8e42e remove un-needed check to allow abandoning claims from file page 2020-07-22 14:22:32 -04:00
Sean Yesmunt
b7e6412437 v0.47.1-rc.1 2020-07-22 13:13:59 -04:00
Sean Yesmunt
4ee57a0b35 update lbry-redux 2020-07-22 12:58:20 -04:00
Sean Yesmunt
b7f3dcad76 remove paid content reward claim 2020-07-22 12:58:20 -04:00
Sean Yesmunt
8381720ae7 bump lbry-sdk 2020-07-22 12:58:20 -04:00
Sean Yesmunt
ed1ee8ac98 better handle channel thumbnail upload and remove spee.ch text 2020-07-22 12:26:31 -04:00
Sean Yesmunt
edbcbd9e37 update lbry-redux 2020-07-21 14:58:39 -04:00
Sean Yesmunt
d47e59a596 hide comments from filtered outpoints 2020-07-20 14:48:25 -04:00
Sean Yesmunt
683132b8d1 hide mature comments based on settings 2020-07-20 14:48:25 -04:00
Sean Yesmunt
9587812962 hide comments from blacklisted channels 2020-07-20 14:48:25 -04:00
Sean Yesmunt
69d010435b allow blocking channels from comment 2020-07-20 14:48:25 -04:00
Sean Yesmunt
9cfec1ce74 hide comments from blocked channels 2020-07-20 14:48:25 -04:00
jessop
81ffd7ae79 specify first run follow in config 2020-07-20 13:59:46 -04:00
dependabot[bot]
b8e1990439 Bump lodash from 4.17.15 to 4.17.19 in /web
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-20 11:36:53 -04:00
infiinte-persistence
ca4dd9e246 New Channel: Fix incorrect GUI configuration at entry
## Issue:
Fixes 4411 `"SelectChannel=New" doesn't show all fields on re-entry`

## Code Changes:
`selectChannel`: Correct the value of `addingChannel` in the constructor based on the given props.
2020-07-20 11:36:36 -04:00
infiinte-persistence
99c1401164 Restore and fix "comment out youtube badge on file page to fix mobile style"
(1) This reverts commit 8641a3ee1c.

(2) Fix floating-player misalignment due to YT badge in mobile by hiding the badge.

At first, the suggestion to truncate the left URI to keep the entire thing single-lined was implemented, but during testing, I realized that the YT badge will take up the entire width anyway (especially on other languages). The URI is more important than the badge, and truncating both of them would be ugly.

Given the preference to not have 2 lines for this, we'll just hide the badge for the mobile case.

For the Channel Page case, let's make it single-line through "4454: URL / top claims overlap" instead. We'll keep this commit/PR limited to fixing the YT badge.
2020-07-20 10:48:32 -04:00
infiinte-persistence
ff5518e421 Fix missing str change in [0c3a3ae4] - 'updated' -> 'checked'
The json was updated but the actual usage was not.
2020-07-20 10:48:32 -04:00
dependabot[bot]
8b8e02ba93 Bump lodash from 4.17.15 to 4.17.19
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-20 10:37:29 -04:00
infiinte-persistence
60af367b18 Fix channel file-search not available in mobile
## Issue
Fixes 4524 `[mobile] in channel search not available`

## Changes
There are currently 3 wunderbars: (1) header (2) channel list (3) downloaded list.

The additional `wrapperStyle` in the header made it hard to find a solution that works for all 3, so I split 2 and 3 into `wunderbar__input--inline`.
2020-07-20 10:37:10 -04:00
infiinte-persistence
f31369a16d Fix 'transcoding' checkbox state when switching file types.
## Issue:
Currently, the checkbox grayed-out state is only correctly updated when changing from "no-file" to "file selected". If you have selected a video file and later changed to a text file, the checkbox doesn't gray out.

## Code Changes:
`fileVid` wasn't being updated for the case of non-videos; now it does.
2020-07-20 09:57:59 -04:00
jessop
e7e7d6dba4 fix comments functions import 2020-07-16 13:18:06 -04:00
Sean Yesmunt
0e2b1b98b8 add id to iframe for easier embed styling 2020-07-15 23:33:14 -04:00
Sean Yesmunt
8641a3ee1c comment out youtube badge on file page to fix mobile style 2020-07-15 20:00:18 -04:00
infiinte-persistence
8e7604ec33 Video: Consolidate showTapButton() into a single call since the functionality is mutually exclusive. 2020-07-15 16:10:10 -04:00
infiinte-persistence
7bef092013 Add option to retry video stream on failure
## Issue
Closes 4475 Option to retry video stream on failure
2020-07-15 16:10:10 -04:00
infiinte-persistence
115c456318 Video: Stop loading circle when there's an error. 2020-07-15 16:10:10 -04:00
infiinte-persistence
5e51016602 VideoJSOptions: Remove duplicate poster declaration 2020-07-15 16:10:10 -04:00
infiinte-persistence
0c3a3ae47e Changed YT label from "last updated" to "last checked"
"updated" can be confusing if there is no new content.

PR 4523
2020-07-15 15:27:03 -04:00
infiinte-persistence
cba2ccf1cb Show "YT Creator" label in File Page as well.
## Issue
Closes 3964 `Add Youtuber info to file page`

## Changes
(1) Refactor the YT-info query into `YoutubeBadge` component.
(2) For the File Page case, don't show "- last sync <date>" since the date has nothing to do with the file.

## Test
[x] YT Channel page
[x] YT Channel's claim page
[x] Non YT Channel page
[x] Non YT Channel's claim page
[x] No channel (anonymous) claim page
[x] Various RENDER_MODES
2020-07-15 15:27:03 -04:00
Sean Yesmunt
2fdc4376bf fix import statement 2020-07-15 12:33:20 -04:00
Sean Yesmunt
69cfcd81e9 bring in 'blocked' code from lbry-redux take 2 2020-07-15 09:52:08 -04:00
Sean Yesmunt
9c9530c6f3 Revert "bring in comments/blocked code from 'lbry-redux'"
This reverts commit fa7f74f979.
2020-07-14 19:23:25 -04:00
infiinte-persistence
2ea66f9d8d Refactor zooming code into "effects/use-zoom.js" 2020-07-14 16:08:24 -04:00
infiinte-persistence
bc19503419 Allow zooming on Desktop
## Issue
Closes 4501 `Font size`

## New behavior
The Desktop app can now zoom the same way as browsers:
- Zoom In: "Ctrl+=" or "Ctrl+numpadPlus" or "Ctrl+WheelUp"
- Zoom Out: "Ctrl+-" or "Ctrl+numpadMinus" or "Ctrl+WheelDown"
- Zoom Reset: "Ctrl+0" or "Ctrl+numpad0"

## Code changes
(1) Electron provides this functionality through the `zoomIn|zoomOut|resetZoom` roles in the Menu, so it would have been a quick job.

However, given that Electron currently does not support having multiple accelerators for one item, we can't add `Ctrl+WheelUp` to the mix and would have to implement our own handler and use `webFrame`.

Given that we need to add code anyways, we handle both keyboard and mouse cases through the same handler, hence the existence of `zoomWindow.js`.  It also provides the opportunity to few a few quirks with Electron's default implementation (e.g. stuck at both extremes)

(2) I recall there is another Issue for adding keyboard shortcuts.  Given that these shortcuts are universally used in browsers, they are probably "reserved", so shouldn't clash with that task.
2020-07-14 16:08:24 -04:00
infiinte-persistence
2754c962a4 Inf-scroll: Fix glitch when results are exactly the page size.
## Issue
Fixes 2675 `Claim search with exactly 20 results keep fetching next page`

## Changes
Use `claimSearchResultLastPageReached` (I didn't know it existed back then).

The unnecessary "loading" refresh will still happen one time, but at least now it doesn't happen every time we scroll to the bottom (and incorrectly incrementing 'page').
2020-07-14 16:05:42 -04:00
eatdostacos
90f49d959a Remove unneeded app string from button 2020-07-14 15:58:02 -04:00
eatdostacos
5869734a15 Remove extra button 2020-07-14 15:58:02 -04:00
eatdostacos
b3606d15f7 Small typo correction 2020-07-14 15:58:02 -04:00
eatdostacos
9b10b775cd Add a LBRY status card to help page with links to new FAQ page and status page 2020-07-14 15:58:02 -04:00
Sean Yesmunt
fa7f74f979 bring in comments/blocked code from 'lbry-redux' 2020-07-14 15:57:19 -04:00
jessop
e91c52999e use DOMAIN in ad link copy 2020-07-14 15:44:48 -04:00
infiinte-persistence
860e5f097c Inf-scroll: Handle case of "pop from claim"
This is a follow-up on PR-4392.

## Issue:
The previous PR covered "pop from within the same page but with different query/order", but missed "pop after entering a claim".

1. Click `Your Tags`.
2. Set order to `New`.
3. Restart app or reload (crucial step)
4. Click `Your Tags`.
5. Click any claim.
6. `Back`. The order incorrectly resets to `Trending` -- it should stay at `New`.
2020-07-13 14:30:58 -04:00
Sean Yesmunt
03136cef19 update changelog 2020-07-13 12:23:47 -04:00
Sean Yesmunt
84676f189d update sign script 2020-07-13 12:22:49 -04:00
Sean Yesmunt
de5486a466 v0.47.0 2020-07-13 11:26:56 -04:00
Sean Yesmunt
6575159da3 v0.47.0-rc.7 2020-07-13 10:03:21 -04:00
Sean Yesmunt
856cc41f39 comment out lbry-first code 2020-07-13 10:03:00 -04:00
infiinte-persistence
2cba296db2 String update and fixes for 0.47.0-rcX 2020-07-13 09:51:04 -04:00
Sean Yesmunt
afc00b2e24 bump lbry-redux 2020-07-10 13:42:24 -04:00
Sean Yesmunt
73eca7a16a update lbry-redux 2020-07-10 12:40:57 -04:00
Sean Yesmunt
68d31d7f47 v0.47.0-rc.6 2020-07-10 11:59:52 -04:00
Sean Yesmunt
e7d182f9cc bump lbry-first 2020-07-10 11:59:39 -04:00
Sean Yesmunt
c86ac6e587 fix password reset link 2020-07-10 11:52:23 -04:00
Sean Yesmunt
c9de6031c9 update changelog 2020-07-10 10:42:39 -04:00
Sean Yesmunt
a692cd2290 v0.47.0-rc.5 2020-07-10 10:35:15 -04:00
jessopb
b39ff9ff7a
Merge pull request #4511 from lbryio/fix-matomo-useridemailonly
only set matomo userid if hasverifiedemail
2020-07-10 10:33:12 -04:00
Sean Yesmunt
19ab1cbd1f bump lbry-redux 2020-07-10 10:20:25 -04:00
jessop
1881627a89 only set matomo userid if hasverifiedemail 2020-07-10 10:14:06 -04:00
Sean Yesmunt
f2cb26f464 v0.47.0-rc.4 2020-07-09 22:15:09 -04:00
Sean Yesmunt
da7b331760 style cleanup 2020-07-09 14:49:36 -04:00
Sean Yesmunt
951d7bbb63 remove 'show both' date option in DateTime 2020-07-09 14:49:36 -04:00
Sean Yesmunt
706c4afd04 disable submit button while login is pending 2020-07-09 14:49:36 -04:00
infiinte-persistence
86484eb13f TipModal: Move "Buy More" next to price selection.
Having the "Buy More LBC" at the bottom seems out of place, since the context of LBC/amount is in the middle of the modal.
2020-07-09 13:04:18 -04:00
infiinte-persistence
94337820f3 Restore lost strings from lbry-first merge. 2020-07-09 13:00:44 -04:00
Sean Yesmunt
b5d8eaf26d v0.47.0-rc.3 2020-07-09 11:02:22 -04:00
Sean Yesmunt
81344b9826 make sure lbryfirst error makes it up to UI 2020-07-09 11:01:12 -04:00
Sean Yesmunt
8077d2c210 v0.47.0-rc.2 2020-07-09 09:41:40 -04:00
Sean Yesmunt
cadcb53399 add better logging and prevent LbryFirst from trying to start multiple times 2020-07-09 09:41:26 -04:00
jessop
4131165d6a fix title 2020-07-08 18:35:49 -04:00
Sean Yesmunt
cec1e288f9 fix typo 2020-07-08 16:15:55 -04:00
Sean Yesmunt
273441f379 v0.47.0-rc.1 2020-07-08 15:02:48 -04:00
Sean Yesmunt
27e44b0320 update punctuation 2020-07-08 15:02:14 -04:00
infiinte-persistence
7feb123a45 Improve auto string addition to produce better diffs and ease merging.
## Issue
- The diff for new strings are polluted by the need to add a comma to the previous entry.
- Having to re-add the newline at the end of file before commiting is a repetitive pain.

## Caveats to this approach
- When manually adding strings, developers need to put it above the `--end--` entry. Hopefully it is obvious without having to put verbose comments like "^--- add new string before this line ---^"
- Translators will surely ask how to translate "--end--".
2020-07-08 15:01:05 -04:00
Sean Yesmunt
5c6e2e96fb update title/subtitle on support modal if user is sending a tip 2020-07-08 14:57:37 -04:00
infiinte-persistence
9389b61f02 UserPasswordReset: Handle 'Cancel' and 'X' for the direct entry scenario.
The `UserPasswordReset` can be accessed in two places:
(1) While signing in
(2) From the Settings Page when changing password.

This commit:
- maintains the existing `Cancel|X` behavior for case-1, which is to remain in the Sign-in page.
- For case-2 and any future direct-entry, we'll simply call `goBack()`.
2020-07-08 14:36:04 -04:00
infiinte-persistence
3f8d447b2a Add 'Forgot Password' button when changing passwords in the Settings Page.
This will directly go into the Reset Password page. This scenario is only possible after already signed in.
2020-07-08 14:36:04 -04:00
infiinte-persistence
fdcfd3b6fc Add: PasswordResetPage (the real one) 2020-07-08 14:36:04 -04:00
infiinte-persistence
47f600e797 Rename: PasswordResetPage --> PasswordSetPage
There will be an actual "Reset" page coming up next.
2020-07-08 14:36:04 -04:00
infiinte-persistence
19a94d3039 Revert "Add password reset ... (4468)" to redo using redirect page method. 2020-07-08 14:36:04 -04:00
infiinte-persistence
e5c4246e15 Add password reset link to settings page (4468) 2020-07-08 14:36:04 -04:00
infiinte-persistence
ad0d96328b Add ability to support language subsets, with only CT and CS enabled for now.
CT - Chinese Traditional
CS - Chinese Simplified

Note that if English subsets like en-GB is enabled in the future, the default 'en' value used throughout the code (including in redux.git) needs to be changed to 'en-US'.
2020-07-08 14:25:14 -04:00
Sean Yesmunt
6a38f944a6 don't read html file on every html request 2020-07-08 14:24:47 -04:00
Sean Yesmunt
d6f198afca update changelog 2020-07-08 14:23:43 -04:00
Sean Yesmunt
38b26f0bfc don't allow lbry-first tag to be added manually 2020-07-08 14:23:43 -04:00
Sean Yesmunt
2f1e126551 don't count 'lbry-first' towards max tag limit 2020-07-08 14:23:43 -04:00
Sean Yesmunt
3b65208edb update lbry-redux 2020-07-08 14:23:43 -04:00
Sean Yesmunt
d6335464d3 cleanup - broken? 2020-07-08 14:23:43 -04:00
Sean Yesmunt
f9325a816e only start lbryFirst daemon for approved users 2020-07-08 14:23:43 -04:00
Thomas Zarebczan
4291c36c58 Initial commit for LBRY-First
fix killing daemon

bump lbry-first
2020-07-08 14:23:43 -04:00
Sean Yesmunt
a8bbb95cc0 fix for new clones with no dist folder 2020-07-08 13:30:49 -04:00
Sean Yesmunt
2763762ae6 fix webpack when custom og image does not exist 2020-07-08 13:30:49 -04:00
jessopb
8cee8cfff0
Merge pull request #4495 from lbryio/fix-defaultmatomoid
change matomo default id to 4: lbry.test
2020-07-08 09:42:29 -04:00
jessop
0a606d7483 change matomo default id to 4: lbry.test 2020-07-08 09:41:30 -04:00
jessopb
66d929a294
Merge pull request #4455 from lbryio/custom-metadata
build custom metadata from config
2020-07-07 12:35:23 -04:00
Sean Yesmunt
0afbf29be5 v0.46.4-rc.2 2020-07-07 09:41:49 -04:00
Sean Yesmunt
f53bf6817c bump lbry-sdk to 0.77.0 2020-07-07 09:41:34 -04:00
Suisse00
11c5e9a307 Normalize email place holder value
Use a more neutral exemple domain already in use
2020-07-07 09:31:08 -04:00
infiinte-persistence
6158455850 Add remaining "New Channel" strings 2020-07-07 09:29:27 -04:00
infiinte-persistence
505c9697df Remove development strings 2020-07-07 09:29:27 -04:00
infiinte-persistence
92be15ae04 ShareModal: Change "..." icon to "Links" 2020-07-07 09:29:05 -04:00
infiinte-persistence
12db7c519f Revert the Links Modal; we'll augment the Share Modal to include the download link.
This reverts commit cb47ed61375b4de32adacd89ce46d5da183150b5.
2020-07-07 09:29:05 -04:00
infiinte-persistence
3a2284a244 Add dialog to copy various types of links for a claim.
## Issue
Fixes 4293 `Better download link support`

- [x] make it so you can right click a download button > copy download URL
   Given that this could be useful in mobile/web as well, I used a button+modal instead of the right-click approach.

- [ ] in share dialog, show download URL to copy for non-video content
   This is already implemented, albeit hidden in the "More..." expansion.
2020-07-07 09:29:05 -04:00
infiinte-persistence
833bceeacc Fix unmuted state lost or reverted when playing a new video.
## Issue
Fixes 4460 `unmuted state lost / reverted`

1. Play a video.
2. Press mute.
3. Drag the volume bar to unmute.
4. Play a new video --> the video starts muted.

## Fix
The `volumechange` handler was comparing against stale variables, so there are times where the state was not saved. Just save both `muted` and `volume` without additional gating (the gating is probably unnecessary in the first place, since we are in a onChange function).
2020-07-07 09:28:04 -04:00
jessop
0039b94832 add userid for matomo 2020-07-07 09:27:34 -04:00
jessop
50d8bfbfce rel canonical, new vars 2020-07-07 09:21:45 -04:00
Sean Yesmunt
7e8a8dbdec update changelog 2020-07-06 21:27:02 -04:00
jessop
984b5d5661 review changes, simpilify env 2020-07-06 13:09:38 -04:00
jessop
96f6f66ace build custom metadata from config 2020-07-06 13:09:36 -04:00
Sean Yesmunt
d8cec3f626 v0.46.4-rc.1 2020-07-06 09:58:25 -04:00
Sean Yesmunt
2b40af2598 v0.46.3 2020-07-06 09:57:01 -04:00
infiinte-persistence
1a3669ca76 Patch for "7839bbf2: Fix language-change not applied to all components immediately"
- Missed the "Account Password" card that is used for authenticated case.
- For cards that are only used in Settings, listen to the language change in "select" instead of passing in as a prop. I think this is cleaner.
2020-07-06 09:52:16 -04:00
infiinte-persistence
f50eb2b5ab Update changelog 2020-07-06 09:42:16 -04:00
infiinte-persistence
8920b4ca75 Fix video transcode setting not reflected correctly (MP3 incorrectly transcoded to MP4)
## Issue
4332: Video transcode setting not reflected correctly (MP3 incorrectly transcoded to MP4)

2 issues here:
(1) The checkbox is mixing between user state and logic state.
(2) The variables (e.g. `optimize`, `isVid`, `filePath`, etc) will have values from the previous operation when you enter Publish Page, so GUI issues beyond Transcode can be also produced (e.g. showing Transcode enabled for an image).

## Changes
The "Transcode" checkbox state (checked vs. unchecked) will now reflect the user's desire and will be a persisted state. Whether or not this setting is used will be reflected by the checkbox's grayed-out state (i.e. it can be checked for non videos, but it will be grayed out).
2020-07-06 09:42:16 -04:00
infiinte-persistence
0fcf78a700 Minor renaming for clarity. No functional change.
updateOptimizeState --> updateFileInfo
available --> ffmpegAvail
2020-07-06 09:42:16 -04:00
Suisse00
406ca3b998 Un hardcoded price filter label options 2020-07-03 17:05:23 -04:00
Sean Yesmunt
cfd5d46802 rewards redirect fix for manually approved users 2020-07-03 13:18:28 -04:00
jessopb
70c6034662
Merge pull request #4445 from lbryio/feat-newChannelCreate
new channel creating and editing
2020-07-03 11:09:25 -04:00
jessop
70ee34f52e amount part deux 2020-07-03 11:03:29 -04:00
jessopb
64d67026cc
Merge branch 'master' into feat-newChannelCreate 2020-07-03 10:53:16 -04:00
jessop
4fa6a561ed amount 2020-07-03 10:44:29 -04:00
jessop
2315727385 tweaks 2020-07-03 10:32:48 -04:00
jessop
c91ce52be8 old channel create default bid 2020-07-03 10:27:01 -04:00
jessop
d66f2cd604 fix bid amount 2020-07-03 10:23:49 -04:00
jessop
1f32d454db error handling, ux tweaks, apiLogPublish 2020-07-02 18:27:49 -04:00
Sean Yesmunt
f4310cd3aa fix thumbnail/cover edits 2020-07-02 13:41:16 -04:00
jessop
9952359e28 fix redirect after delete 2020-07-02 13:18:06 -04:00
Sean Yesmunt
ba71d36e9a remove unused styles and add title fallback 2020-07-02 13:01:31 -04:00
jessop
7ab4504ea4 bump redux 2020-07-02 12:54:00 -04:00
jessop
d8098d8eb1 fix resolve loop 2020-07-02 12:47:36 -04:00
jessop
ffa248a353 limit tags, new channel link 2020-07-02 12:18:59 -04:00
Sean Yesmunt
8b266ebacb fix typo 2020-07-02 11:39:12 -04:00
Sean Yesmunt
8fe618c5be fix typo 2020-07-02 11:08:58 -04:00
infiinte-persistence
16ea14887c Inf-scroll: Change region to 'main' to ignore long tag/following list.
## Issue:
2789 `Infinite scrolling should activate at end of listed claims, not subscription list`
2020-07-02 10:37:31 -04:00
eatdostacos
dad10f1118 small correction to string 2020-07-02 10:34:11 -04:00
eatdostacos
aede386c22 Add/Correct Strings 2020-07-02 10:34:11 -04:00
infiinte-persistence
d51e52444c Allow entering Blocked Page even for 0 blocked channels.
Issue 4447 (item 2)
2020-07-02 10:33:51 -04:00
Sean Yesmunt
259f51abd6 style pass for channel edit
clean up sections and improve navigation handling

cleanup + image upload modal styling
2020-07-01 22:04:23 -04:00
jessop
36f93343f6 new channel creating and editing 2020-07-01 22:01:48 -04:00
Jeremy Kauffman
c54832c335
meh 2020-07-01 17:45:04 -04:00
Sean Yesmunt
15dec5398b update list of youtubers on homepage 2020-07-01 12:03:32 -04:00
infiinte-persistence
defbdc1ca2 Fix "Notification" page button being incorrectly disabled by 0 blocked channels.
Issue 4447
2020-07-01 11:21:22 -04:00
infiinte-persistence
145acda9cc [mobile] show "time left/progress" on video player bar
## Fixes:
4220

## Changes:
For `vjs-layout-small`, there is still space to display the said controls. This layout covers devices like Galaxy S5 up to Nexus 6P.

For layouts smaller that that (e.g. 'vjs-layout-xsmall'), they will remain hidden.
2020-07-01 11:20:26 -04:00
eatdostacos
84886e4b8a Put LBC amount with 4 precision on tip menu for all versions 2020-07-01 11:19:47 -04:00
infiinte-persistence
87e53db699 Don't expand search filters automatically if popping from Back action.
The existing behavior of automatically expanding when needed && when entering the page is still maintained.
2020-07-01 11:11:47 -04:00
infiinte-persistence
defcda519e Inf-scroll: Remove history of whether we've serviced the bottom.
## Fixes:
4351: "Infinite load won't work if the same sort option clicked"

Test case:
1. Click Following
2. Click New
3. Scroll down to load at least 1 extra page.
4. Go up and click New again.

## The Issue:
`scrollBottomCbMap[page]` in this case did not reset since the `id` remained the same.

## The Fix:
I don't know how else to notify the effect to run. Perhaps "when `page=1`" is one criteria, but I found that removing `scrollBottomCbMap` can also fix it.

I don't know what scenario that `scrollBottomCbMap` was originally meant to handle, so will need to depend of reviewer to confirm I did not break something else. This fix assumes that recent inf-scroll fixes and debouncing would have addressed the "weird stuff happening with fast scrolling" problem mentioned in the comments.
2020-07-01 11:11:47 -04:00
infiinte-persistence
9c7b882fbd Properly debounce the inf-scroll handling.
The previous code was simply delaying the handler, which served the intention of the time, which is to avoid using the wrong coordinate from querying too early. However, we ended up servicing each scroll message.

This is the proper fix, and should technically make scrolling smoother. Maybe this will fix 3576 as well, although I don't see much difference.
2020-07-01 11:11:47 -04:00
infiinte-persistence
ad37edf681 Inf-scroll: Fix scroll not working when navigating back from claim.
## Fixes:
3071: "Infinite scroll stops working when navigating to file page / back"

## The Issue:
In the POP operation, the `page` value is back to 1 due to the initializer `useState(1)`. If the results cache already contained more than 1 page's worth, then the rest of the logic thinks there's nothing to do.

## The Fix:
Previous fixes to Inf-Scroll added a "page correction" code to handle the mismatch. This fix simply adds this scenario to the list of scenarios to perform the correction.
2020-07-01 11:11:47 -04:00
Sean Yesmunt
ab5bd33597 update og image url 2020-06-30 19:28:40 -04:00
infiinte-persistence
3288f235fb Refresh on publish page does not have loading indicator
## Fixes:
4214

## Approach:
`ClaimList` currently only shows the loading indicator if there is a header. We could make the indicator always appear at the top of the list when `loading=true`, but that would be the list jump up and down as the indicator appears/dissapears. I assume that is too distracting and is the reason why it was not made that way in the first place.

Show the indicator in place of the Refresh button while fetching instead.
2020-06-30 10:25:53 -04:00
Sean Yesmunt
fe3ef8f8e5 add User flow type from lbryinc 2020-06-30 02:04:49 -04:00
Sean Yesmunt
7a588ccecf sort by release_time for youtube row on homepage 2020-06-29 17:29:58 -04:00
Sean Yesmunt
935f5e50d9 update lbry-redux 2020-06-29 17:22:50 -04:00
infiinte-persistence
86bae6eaee AbandonedChannelPreview: Handle blocked channels as well.
Issue 3800
2020-06-29 16:05:23 -04:00
infiinte-persistence
be7eaff6f1 Add modal to remove uri from Blocked list.
Issue 3800
2020-06-29 16:05:23 -04:00
infiinte-persistence
44ae8a64cd Blocked-Page: Set 'showUnresolvedClaims' so that 'AbandonedChannelPreview' is used instead of regular version.
Issue 3800
2020-06-29 16:05:23 -04:00
Sean Yesmunt
06ea8bf932 update homepage order 2020-06-29 16:02:21 -04:00
Sean Yesmunt
258a3e636a update homepage - remove lbrytvpaidbeta 2020-06-29 16:02:21 -04:00
Sean Yesmunt
345984f4cb add badge to readme 2020-06-29 13:48:28 -04:00
Sean Yesmunt
74a18b724e fix subscribe button label not showing on mobile 2020-06-29 13:25:29 -04:00
infiinte-persistence
192bf12a0e refresh youtube creator status when switching between channels
Issue 3750
2020-06-29 10:19:05 -04:00
infiinte-persistence
2673a18923 Fix unresolved translations in the Splash Screen. 2020-06-29 09:52:05 -04:00
infiinte-persistence
7839bbf2a1 Fix language-change not applied to all components immediately.
## Fixes:
3641 Language switch does not take effect right away

## Assessment:
Although `Card`s in the Settings Page are actually being re-rendered, the `actions` within them might not be getting the signal, depending on their props.

## Changes:
(1) Pass the language variable to the `actions`'s props for items that are affected.
(2) Make the Wunderbar listen to language-changes as well (the only component outside of Settings that would need an immediate update).
2020-06-29 09:48:12 -04:00
eatdostacos
ed624a1b5d Correct link to buy page 2020-06-29 09:47:26 -04:00
eatdostacos
d9a0e7c655 Add link to buy LBC when you don't have enough for paid content
I added the link and I updated the strings to accomodate updated content.
2020-06-29 09:47:26 -04:00
infiinte-persistence
adb2a60d58 Skip translating blank string; Add new strings from Settings Page. 2020-06-29 09:46:42 -04:00
infiinte-persistence
b010325618 Pause 'Autoplay': cleanup
1. Use a constant for the classname instead of being hardcoded.
2. Use existing 'debounce' function instead of introducing another.
3. Added changelog entry.
2020-06-25 00:23:47 -04:00
infiinte-persistence
2c695b8150 Pause 'Autoplay' when a Modal is present. 2020-06-25 00:23:47 -04:00
infiinte-persistence
39db18046f Pause 'Autoplay' when scrolled off screen.
Fixes #-4021.

## Changes:
When the autoplay overlay gets partially off-screen, the timer will be stopped. We can tweak how much down it needs to be scrolled.

When timer is paused, the countdown resets.

The pausing mechanism has no effect on the floating player (since the 'top' can never go negative). This behavior is the same as another big video platform.
2020-06-25 00:23:47 -04:00
Sean Yesmunt
63ce5526ca update label text 2020-06-23 17:56:41 -04:00
Sean Yesmunt
17d5c6d2ae put back frontend 2020-06-23 17:20:42 -04:00
Sean Yesmunt
138e1c4afe bring down frontend 2020-06-23 16:44:49 -04:00
Sean Yesmunt
41abbcc861 Revert "bring in blocked redux code from lbry-redux"
This reverts commit b9f3146180.
2020-06-23 16:21:40 -04:00
Sean Yesmunt
0bf656f74b Revert "fix import"
This reverts commit c84c8a0288.
2020-06-23 16:21:30 -04:00
Sean Yesmunt
c84c8a0288 fix import 2020-06-23 16:10:59 -04:00
Sean Yesmunt
b9f3146180 bring in blocked redux code from lbry-redux 2020-06-23 16:01:20 -04:00
Sean Yesmunt
49bcfdce83 bring in comment code from lbry-redux 2020-06-23 16:01:20 -04:00
Sean Yesmunt
08c5f3e3a6 update lbry-redux 2020-06-23 11:19:18 -04:00
Sean Yesmunt
606a3002ae fix typo 2020-06-22 17:50:20 -04:00
infiinte-persistence
d7b1cde274 Add claim-overwrite prevention.
---Fixes:
#-2882: "Fix UX around publishing to already published URL".

---Changes:
1. Improved the error message (change color to red; emphasized the URL; tweaked the sentences a bit).
2. The `Publish` button will be grayed out in this scenario, until user explicitly decides to edit existing claim instead.
2020-06-22 15:21:42 -04:00
Sean Yesmunt
87dc46019d update lbry-redux 2020-06-22 14:40:50 -04:00
jessopb
999599ddb5
Merge pull request #4422 from lbryio/dev-pending
Dev pending
2020-06-22 12:48:08 -04:00
jessop
e3a5d71e34 channel update submitting state 2020-06-22 12:42:20 -04:00
Sean Yesmunt
dcfdbd6352 use v2 endpoint for lbry.tv status 2020-06-22 12:20:26 -04:00
jessop
e065c81f88 support channel pending state 2020-06-22 11:27:03 -04:00
jessop
6ff1cfc91e bump 2020-06-22 11:25:26 -04:00
eatdostacos
684d0e302c Add three icons to help page 2020-06-22 10:49:21 -04:00
eatdostacos
3d4f0a93b5 Add logos to custom logos page 2020-06-22 10:49:21 -04:00
eatdostacos
566012ed9d Add icons to constant page 2020-06-22 10:49:21 -04:00
infiinte-persistence
8e85d77c71 Add 'revoke modal' strings 2020-06-22 10:27:55 -04:00
infiinte-persistence
391b5d2b50 Delete unused or duplicate strings. 2020-06-22 10:27:55 -04:00
Sean Yesmunt
f69792770b update changelog 2020-06-22 09:53:10 -04:00
infiinte-persistence
2f8af4e1fa Allow upgrade nag bar to be dismissed per session
#-4368:
"Users on third party builds may have to wait a few hours for the update and the bar is annoying."
2020-06-22 09:50:35 -04:00
Sean Yesmunt
feb7fb8e05 update link on help page 2020-06-22 09:48:35 -04:00
Sean Yesmunt
a17610d365 update title when only 1 email address present 2020-06-22 09:45:49 -04:00
Sean Yesmunt
b4851e6045 bring in email preferences page from lbry.com 2020-06-22 09:45:49 -04:00
Alex Grin
8440a31a28 typo 2020-06-22 09:35:39 -04:00
Alex Grin
d8b4c91259 minor typo
this is the more common spelling of revocable
2020-06-22 09:35:39 -04:00
infiinte-persistence
1cd18ac9f4 Inf-scroll: (1) Reset to top (2) Fix "page vs. results" being out of sync.
--- Issues:
(1) #-2669: Page does not restore to top when navigating new tags.

(2) "Encountered children with the same key" error (duplicate entries shown).
https://github.com/lbryio/lbry-desktop/issues/4367#issuecomment-645449206

--- Changes:
(1) Ignore the history if it's a new query (i.e. explicitly clicked). The BACK history will still behave as normal (doesn't reset to top).

(2) Previously, the `page` variable will continue to increment as you scroll and stay within the page (e.g. Trending vs New, or clicked another Tag). As you move between queries, we hit a scenario where `page` is significantly under or over the latest retrieved `claimSearchResult.length`. This messes up the rest of the code.

Fix by correcting the value of `page` according to the current `claimSearchResult.length` when necessary.
2020-06-22 09:31:05 -04:00
eatdostacos
c1df38f41c Update app-strings (Rebased) 2020-06-22 09:30:09 -04:00
jessopb
95a9848293
Merge pull request #4406 from lbryio/revert-4405-feat-channelUpdatesPending
Revert "improve channel update"
2020-06-19 13:10:53 -04:00
jessopb
dbac4aca39
Revert "improve channel update" 2020-06-19 13:10:34 -04:00
jessopb
802f0baeea
Merge pull request #4405 from lbryio/feat-channelUpdatesPending
improve channel update
2020-06-19 12:58:32 -04:00
jessop
a0a461efe0 bump 2020-06-19 12:45:44 -04:00
jessop
1b185942e4 appstrings 2020-06-19 12:42:17 -04:00
jessop
99753f7717 improve channel edit 2020-06-19 12:41:45 -04:00
infiinte-persistence
644e76fd81 Tip-Modal: Add settings persistence and UX improvements.
--- Issues:
(1) #-4394 add persistence to new support modal.
(2) Should collapse the custom field when presets are selected.
Even though the Send button repeats the amount for Tip, it's still confusing to see both the Preset being active and Custom numeric field visible.
(3) Missing localization tags.
2020-06-18 22:01:49 -04:00
Sean Yesmunt
117ccd87e1 move repost icon to submit button instead of card for consistency 2020-06-18 12:19:21 -04:00
Sean Yesmunt
a4a80ee2f6 handle language fetch failure 2020-06-18 12:19:21 -04:00
Sean Yesmunt
7f6c5c544e only add gradient to bottom of channel cover 2020-06-18 12:19:21 -04:00
Sean Yesmunt
fa246a7f1f move channel search into ChannelContent component 2020-06-18 12:19:21 -04:00
Joshua Strobl
a479c70021 Resolve corejs3-shipped-proposals build issues.
@babel/compat-data 7.8.6 to pre-7.10 series has compilation issues with newer node 12.x and 13.x releases. Using 7.8.6 will cause the failure to find the module `'@babel/compat-data/corejs3-shipped-proposals'`, causing build failures on systems with those node releases (e.g. Solus).

This patch bumps @babel/preset-env, @babel/preset-flow, and @babel/preset-react specifically to newer releases to resolve compilation. Please note that this does not update all of babel to newer 7.10 series releases, just specifically resolves compilation on specific Linux platforms.
2020-06-17 00:54:00 -04:00
Sean Yesmunt
cc6ca19a62 update changelog 2020-06-16 17:14:22 -04:00
Sean Yesmunt
c45e5c751e use css variables for button placement 2020-06-16 17:14:22 -04:00
infiinte-persistence
d01c20394e Fix "muted=false + volume=0" case.
We need to handle two types of "mute":
- Volume icon is pressed to mute.
- Volume slider moved to 0%.
2020-06-16 17:14:22 -04:00
infiinte-persistence
662778c47b Use 'process.env.NODE_ENV' instead of 'electron-is-dev' for spewing debug logs. 2020-06-16 17:14:22 -04:00
infiinte-persistence
a20ea08ac7 Show "unmute" option on videos automatically muted by browser.
Implementation:
- The code is placed in <VideoJs> instead of <VideoViewer> as we need to control the video itself. It's more self-contained here, rather than trying to pass refs around between parent and child.
- useState cannot be used as it will cause a re-render when the hint it clicked and dismissed. The DOM is used to hide the button.
2020-06-16 17:14:22 -04:00
infiinte-persistence
bbda69dc5f Inf-scroll: Don't add pages when no more results are available.
--- The bad scenario:
A less popular tag like 'kanji' yields only 23 results today. The code continues to increase the page count. We'll either see some blank page glitches at the bottom, or repeated entries being shown.

--- The fix:
Assume that an unfilled page means "no more results" and stop incrementing the page. This seems true based on empirical evidence.
2020-06-16 16:59:00 -04:00
infiinte-persistence
522c6ddcd6 Inf-scroll: Fix "am I at bottom" logic.
If you are at the bottom and you hit the UP_ARROW key one time, the logic still thinks we are at the bottom, despite the component has clearly moved. Similar to the issue noted in the previous commit, this causes the page to increment incorrectly.

My wild guess is that the previous logic depends on the css height, so it might got broken due to css changes. Hopefully the new calculation is more robust and works for all cases.
2020-06-16 16:59:00 -04:00
infiinte-persistence
c957b159b1 Inf-scroll: Debounce before handling 'onscroll'.
---The bad scenario:
If you're at the bottom and you go up using UP_ARROW or HOME key, the coordinate is still at the bottom if we service the callback immediately. This causes 'contentWrapperAtBottomOfPage' to be true and we ended up incrementing the page unnecessarily (even for searches that no longer yield any extra results).

---Fix:
Fix by adding a delay. The value can probably be fine-tuned further.
2020-06-16 16:59:00 -04:00
infiinte-persistence
ff7b4092c9 Publish: Make 'Channel' setting persistent.
Per discussion with Tom.
2020-06-16 16:36:23 -04:00
infiinte-persistence
9d6af38a21 Persist trending selectors between tags.
---The issue:
When switching between tags, the selector defaults back to Trending even though you had another option already selected.

---Changes:
- 'orderParamUser' will store the last user state persistently. The persistent state is also made unique for each page (i.e. Your Tags and All Content will be unique).

- If the parent component passes in a specific order, that will be respected and will also become the new persisted value. One example is "Your Following", where it always starts at 'New'.

- Handled navigation history correctly
The test case:
   - Enter "Your Tags" (assume start at 'Trending')
   - Click 'New'
   - Click 'Top'
   - Back
   - Back (it should return to 'Trending')
As the top page history does not have any "?order=" value, we ended up with a no-op for the last Back. 'orderParamEntry' is added to handle this.
2020-06-16 16:36:23 -04:00
Sean Yesmunt
19eefdf1da adjust sizes 2020-06-16 16:24:12 -04:00
Alex Grintsvayg
b26a586fb5 wider diff in header sizes for md posts 2020-06-16 16:24:12 -04:00
eatdostacos
bcbb0685e4 Add new app strings from tip/support merge 2020-06-16 16:11:33 -04:00
Sean Yesmunt
ea90fd8b18 fix number width and update lbryinc 2020-06-16 09:56:32 -04:00
Sean Yesmunt
2066205b8f add user + rewards redux code from lbryinc 2020-06-16 09:56:32 -04:00
Sean Yesmunt
7138fe54bc bring in 'notifications' state from lbry-redux 2020-06-16 09:56:32 -04:00
eatdostacos
5a219c7b4b Add link to "Buy More LBC" button
Previously, the link was missing and the button didn't do anything.
2020-06-16 09:13:15 -04:00
eatdostacos
178fcf28c9 Add new unreleased version to changelog 2020-06-16 09:12:43 -04:00
Sean Yesmunt
8a825b1a83 fix typo 2020-06-15 19:18:34 -04:00
Sean Yesmunt
f13cc3c51c fix label on tx table for supports 2020-06-15 19:02:03 -04:00
Sean Yesmunt
ca988d38ae fix layout on '/$/report' 2020-06-15 14:11:15 -04:00
infiinte-persistence
fe431c30a7 SimpleMDE: Add character-count display and standardize look with basic editor's. 2020-06-15 10:53:17 -04:00
infiinte-persistence
805904360e Set "Description" field limit to 5000 characters.
This applies to both Channel and Claim description.
2020-06-15 10:53:17 -04:00
infiinte-persistence
749b13e3eb Rename: "constants/comments.js" --> "constants/form-field.js" 2020-06-15 10:53:17 -04:00
infiinte-persistence
96041e8b09 SimpleMDE: Add character limit functionality. 2020-06-15 10:53:17 -04:00
infiinte-persistence
c197a1f230 Don't gray out on "Support/tip unlock" or "Abandon Claim" failures.
#4379
2020-06-15 10:51:50 -04:00
infiinte-persistence
22f272d53e Accumulated string updates. 2020-06-15 10:51:26 -04:00
infiinte-persistence
140364cb67 Fix translation issues in the Publish modal dialog.
Two issues:
1. Values not marked with __()
2. Split sentence.

For #2, it seems like there are translations that don't make sense when combined, because the values are being translated independently from full sentence in Transifex. Decided to just make it full sentences.
2020-06-15 10:51:26 -04:00
Sean Yesmunt
4bbd831a16 fix mobile style 2020-06-15 10:50:01 -04:00
Sean Yesmunt
c3cdc742ab fix submit button after confirming 2020-06-15 10:50:01 -04:00
Sean Yesmunt
deb4107dd0 confirmation cleanup 2020-06-15 10:50:01 -04:00
Sean Yesmunt
01e0a2a5db improve support/tip for 0 balance and own claims 2020-06-15 10:50:01 -04:00
Sean Yesmunt
019d1f9176 tip/support marriage 2020-06-15 10:50:01 -04:00
Sean Yesmunt
44cfe25ac2 fix height for embedded content 2020-06-12 17:41:26 -04:00
Sean Yesmunt
abc7b1298d allow vanity urls in embeds 2020-06-12 17:24:00 -04:00
jessopb
864d35d9e9
Merge pull request #4373 from lbryio/installIdBump
bump lbryinc for domain install id
2020-06-11 14:19:53 -04:00
jessop
4ce4485923 bump lbryinc for domain install id 2020-06-11 13:26:32 -04:00
eatdostacos
4ab751286f Spacing between info sentence and link 2020-06-11 13:04:52 -04:00
infiinte-persistence
a461c97962 About: Remove leading dash for app version in Web.
This completes the change in [b12c297a] by handling the Web case.
2020-06-11 12:56:07 -04:00
Sean Yesmunt
0de6096b5e v0.46.2 2020-06-10 14:06:23 -04:00
Sean Yesmunt
0af0729ad9 v0.46.2-rc.2 2020-06-10 12:23:07 -04:00
Sean Yesmunt
171fbc9cf4 v0.46.2-rc.1 2020-06-10 12:21:57 -04:00
Sean Yesmunt
c4b319ca5d bump lbry-sdk to 0.76.0 2020-06-10 12:21:57 -04:00
Sean Yesmunt
06bc2da427 update changelog 2020-06-10 12:21:56 -04:00
infiinte-persistence
fa6a432c9d Make library view mode [Downloads|Purchases] persistent.
Previously, the mode kept going back to 'Purchases' on every entry.
2020-06-10 10:06:24 -04:00
Sean Yesmunt
bda2bdadf8 make sure script exits properly after it finishes signing build files 2020-06-09 22:09:07 -04:00
Sean Yesmunt
92efa2e49b make sure auth token header is set for already signed in users too 2020-06-09 13:03:47 -04:00
Sean Yesmunt
36044b9e03 make sure email is verified before setting auth token header 2020-06-09 12:37:34 -04:00
infiinte-persistence
8068279b5e Limit the Markdown Editor width in Edit (not New) Mode to prevent overflow.
The MDE used in the "new" section has a parent width parameter to limit itself, while the MDE used in the "edit" section didn't.

Fix by limiting ".comment__body_container" to 80%, which takes into account the space taken by the author's avatar. This feels a little bit dirty since it's hard-coded.  If there's a way to calculate the avatar width from here, it will be more robust.
2020-06-09 09:54:10 -04:00
infiinte-persistence
17d0f00a2e Fix dev base-url being used when generating the hover URL 2020-06-09 09:41:08 -04:00
infiinte-persistence
d95ab2c168 Fix [ff0cc861] that broke regular word-wrap in comments.
Now, both regular text and "long text without spaces" will wrap correctly.
2020-06-09 09:39:54 -04:00
eatdostacos
5458112fb6 Add string from recent commit 2020-06-09 09:39:24 -04:00
eatdostacos
5757ec9a86 Change some Change Logs to Changelogs 2020-06-09 09:28:08 -04:00
infiinte-persistence
0b7d8dea9a Strings from MoonPay, tipping, and more. 2020-06-09 09:27:21 -04:00
infiinte-persistence
2feb7dc41d Sync strings for 2 commits about data collection.
87e8957f: fix other data collection message...
179722b1: Update message about third party sharing
2020-06-09 09:27:21 -04:00
TigerxWood
8099088415 Made uniform display of text views
Too many forms of word "views" and "view" to translate, with caps and without. We need to choose the same in all places.
2020-06-09 09:26:41 -04:00
TigerxWood
bb790b4332 Removed space to sync with app-strings
Removed space to sync the text "LBRY takes privacy and choice seriously. Just a few questions before you enter the land of content freedom." with that from app-strings.jsx
2020-06-09 09:24:58 -04:00
TigerxWood
29b0111c9e Made strings from settingWalletServer translatable
Made connecting string translatable
2020-06-09 09:24:32 -04:00
TigerxWood
374323713b Make strings from fileDetails translatable
Text  for files sizes can be translated as Mo (from Mega octet) so KB, MB, GB etc will be Ko, Mo, Go etc. in other languages.
2020-06-09 09:24:15 -04:00
Sean Yesmunt
6182bf2145 v0.46.1 2020-06-08 16:54:04 -04:00
Sean Yesmunt
237241cbce v0.46.1-rc.1 2020-06-08 16:30:33 -04:00
Sean Yesmunt
c658ee8123 update changelog 2020-06-08 16:30:14 -04:00
Sean Yesmunt
1dcf16b0b4 fix download link on desktop 2020-06-08 16:26:49 -04:00
Sean Yesmunt
f11d06817f pass undefined instead of null so that default value can be used 2020-06-08 16:17:00 -04:00
Sean Yesmunt
6c12525df3 fix typo 2020-06-08 14:22:03 -04:00
Sean Yesmunt
36d60fabe4 make sure auth token header is set before any authenticated sdk calls are made 2020-06-08 13:38:34 -04:00
Sean Yesmunt
00306eff07 v0.46.0 2020-06-08 13:16:14 -04:00
Sean Yesmunt
76de946979 v0.46.0-rc.13 2020-06-08 11:52:38 -04:00
Sean Yesmunt
a8c3ec54ae only delete origin header for sdk calls - leave everything else as is 2020-06-08 11:52:21 -04:00
Sean Yesmunt
339ebf2d32 v0.46.0-rc.12 2020-06-08 09:45:40 -04:00
infiinte-persistence
ff0cc8610d Fix long comments without spaces not wrapping and pushing buttons to go off-screen.
#4331 (issue #2)
2020-06-08 09:45:02 -04:00
infiinte-persistence
39f13e1b3a Form-field: Wrap the label/error message when it is too long. 2020-06-08 09:45:02 -04:00
infiinte-persistence
861dd2a70f Form-field: Truncate the "read-only prefix" to 40% width so that the input field is always visible.
Currently, the input field goes off-screen if the read-only prefix is too long.

Given that the prefix is read-only, the user probably knows what the prefix is from context. e.g. In the case of the Repost Modal, the prefix is repeated in a selection field above. So, it's probably ok to just truncate the text to an ellipsis.

The input field is the more important one here, so giving it 60% width when truncation is needed.
2020-06-08 09:45:02 -04:00
eatdostacos
b12c297a65 Add dash between app version and changelog link 2020-06-08 09:43:44 -04:00
eatdostacos
a434002be4 Testing Changelog Button on help page 2020-06-08 09:43:44 -04:00
jessop
9758286ad8 fix channel revoke confirmation 2020-06-08 09:42:58 -04:00
jessop
91662a9d57 force https thumbs or handle img src error 2020-06-08 09:42:19 -04:00
jessopb
59e80721a2
Merge pull request #4342 from lbryio/revert-4338-fix-channelDeleteConfirm
Revert "fix channel revoke confirmation"
2020-06-08 07:50:37 -04:00
jessopb
6a59d2b2f9
Revert "fix channel revoke confirmation" 2020-06-08 07:50:09 -04:00
jessopb
e51765cd72
Merge pull request #4338 from lbryio/fix-channelDeleteConfirm
fix channel revoke confirmation
2020-06-07 16:42:26 -04:00
jessop
e8576eec8c fix channel revoke confirmation 2020-06-07 15:17:18 -04:00
eatdostacos
8d7cc3c93d Changelog update for Catalan support 2020-06-05 13:11:44 -04:00
dependabot[bot]
fb1bb97283 Bump websocket-extensions from 0.1.3 to 0.1.4 in /web
Bumps [websocket-extensions](https://github.com/faye/websocket-extensions-node) from 0.1.3 to 0.1.4.
- [Release notes](https://github.com/faye/websocket-extensions-node/releases)
- [Changelog](https://github.com/faye/websocket-extensions-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/faye/websocket-extensions-node/compare/0.1.3...0.1.4)

Signed-off-by: dependabot[bot] <support@github.com>
2020-06-05 12:20:55 -04:00
dependabot[bot]
3ffb17b4c1 Bump websocket-extensions from 0.1.3 to 0.1.4
Bumps [websocket-extensions](https://github.com/faye/websocket-extensions-node) from 0.1.3 to 0.1.4.
- [Release notes](https://github.com/faye/websocket-extensions-node/releases)
- [Changelog](https://github.com/faye/websocket-extensions-node/blob/master/CHANGELOG.md)
- [Commits](https://github.com/faye/websocket-extensions-node/compare/0.1.3...0.1.4)

Signed-off-by: dependabot[bot] <support@github.com>
2020-06-05 12:19:51 -04:00
Sean Yesmunt
d8ba438257 update lbry-redux 2020-06-05 12:18:08 -04:00
Sean Yesmunt
fea3533b4c fix share link 2020-06-05 12:17:36 -04:00
jessopb
25e6d5501b
Merge pull request #4316 from lbryio/feat-installNewDomain
install_new domain parameter
2020-06-05 10:33:06 -04:00
Sean Yesmunt
64c8f76c47 v0.46.0-rc.11 2020-06-05 09:09:05 -04:00
Thomas Zarebczan
87e8957f0e
fix other data collection message... 2020-06-04 19:09:05 -04:00
jessop
cb64522fa9 install_new domain parameter 2020-06-04 13:43:36 -04:00
Thomas Zarebczan
179722b1ef
Update message about third party sharing 2020-06-04 13:40:15 -04:00
Sean Yesmunt
08d23c5641 update lbry-redux 2020-06-04 11:45:52 -04:00
Sean Yesmunt
dd47bc673d fix links in embeds 2020-06-04 10:57:31 -04:00
infiinte-persistence
468efaf34e Fix css "--spacing-?" renaming that recent PRs missed during the merge. 2020-06-04 10:53:32 -04:00
Sean Yesmunt
5ba34732a6 v0.46.0-rc.10 2020-06-04 10:31:32 -04:00
infiinte-persistence
50fc2698d6 Add StatusBar into Page for 'app' only.
#3776 #4259
2020-06-04 10:31:06 -04:00
infiinte-persistence
ae82b3fc05 Create transient "status bar" to display the hover URL.
Implementation:
- <StatusBar> listens to 'update-target-url' and will show/hide itself as needed.
- Handled the display of "lbry://" protocol.

CSS:
- The colors chosen should work on both Light and Dark Theme.
- The delay is necessary to avoid blinkies when the mouse is moving around.

#4259
2020-06-04 10:31:06 -04:00
infiinte-persistence
5d1d36d4af Fix color contrast in Markdown Editor (both light & dark).
Fixed color issues that were making things hard to read:
- selected text color, including inline code.
- HTML tags
- Horizontal rule not visible in Preview mode. While at it, I changed the color in Edit mode as well as syntax highlighting.
- blockquote (was gray over gray)

Attempted to fix uneven margins between top and bottom for inline-code and codeblock. Also, removed the extra margin to make it more nice and cosy, instead of far apart.
2020-06-04 10:22:57 -04:00
Joaquim
4aba0716dd Add Catalan language 2020-06-04 10:13:25 -04:00
Sean Yesmunt
9607a0a5f3 remove code left from rebase 2020-06-04 10:11:59 -04:00
Sean Yesmunt
dea69b60dc v0.46.0-rc.9 2020-06-03 18:45:49 -04:00
Sean Yesmunt
5435d870c8 v0.46.0-rc.8 2020-06-03 16:45:42 -04:00
Sean Yesmunt
acfdce1ca3 v0.46.0-rc.7 2020-06-03 16:25:15 -04:00
Sean Yesmunt
aabcd9690a bump lbry-sdk to 0.75.0 2020-06-03 16:25:06 -04:00
Sean Yesmunt
2fe2b12ab6 cleanup 2020-06-03 14:16:43 -04:00
Sean Yesmunt
6ca2bfdc34 clean up strings 2020-06-03 14:16:43 -04:00
Sean Yesmunt
e7cdd6c13d moonpay 2020-06-03 14:16:43 -04:00
Sean Yesmunt
78422ccfb2 fix thumbnails on desktop 2020-06-03 13:49:44 -04:00
Sean Yesmunt
48a707f0db fix comment replies when turning off advanced mode 2020-06-03 11:39:37 -04:00
Sean Yesmunt
1cae7a6038 fix share link so claim id isn't lost in url 2020-06-03 11:39:37 -04:00
Sean Yesmunt
af5ee2f253 fix channel gif alignment on comments 2020-06-03 11:39:37 -04:00
Sean Yesmunt
02b67d9271 fix homepage mobile spacing 2020-06-03 11:39:37 -04:00
jessopb
77971e4f1f
Merge pull request #4305 from lbryio/noGa2
strip ga calls
2020-06-03 10:37:26 -04:00
Sean Yesmunt
c6bd28041f v0.46.0-rc.6 2020-06-02 22:19:05 -04:00
jessop
7fe88d86d5 strip ga calls 2020-06-02 16:52:34 -04:00
TigerxWood
c0fc7e5fbd Fix boolean declaration in claimInsufficientCredits 2020-06-02 16:20:36 -04:00
TigerxWood
5b4e45b0b0 Update translatable string 2020-06-02 16:19:17 -04:00
Sean Yesmunt
16fcc4c932 only set x-lbry-auth-token once user is signed in 2020-06-02 16:10:43 -04:00
Sean Yesmunt
48eac1188f always use thumbnail from claim if it exists on web 2020-06-02 16:10:43 -04:00
Sean Yesmunt
a0ace5ca58 add refresh icon to refresh buttons 2020-06-02 16:10:43 -04:00
Thomas Zarebczan
17b8aa0202
add @MH to paid content beta 2020-06-02 10:50:34 -04:00
Sean Yesmunt
b5a077a916 bump lbry-redux 2020-06-02 10:38:03 -04:00
Sean Yesmunt
36eaf68e3a increase minimum publish bid 2020-06-01 18:15:51 -04:00
Sean Yesmunt
39913ec4f9 update lbry-redux 2020-06-01 14:41:21 -04:00
TigerxWood
96f13396a8 Putted back "Read More": "Read More" 2020-06-01 12:59:21 -04:00
TigerxWood
9cfc1e6128 Another update to make them translatable 2020-06-01 12:59:21 -04:00
TigerxWood
6241dc7a9f Update list of translatable strings 2020-06-01 12:59:21 -04:00
Sean Yesmunt
609cadeabb v0.46.0-rc.5 2020-06-01 11:07:21 -04:00
infiinte-persistence
cbb6fc8305 Remove unnecessary variables and strings for translation.
-- "/wallet" --
I believe this is a link and comes from redux, and shouldn't be translated.

-- "%message%" --
No point sending a variable-only to the translators -- the intended replacements are  translated correctly.

-- "%name%" --
Unused.

-- "Something something something..." ---
Unused.

-- Obsolete strings (replaced by better string) --
  "You are not able to see those stats right now. Make sure you are signed in with the correct email and have data sharing turned on."

  "You are not able to see this channel's stats right now. Make sure you are signed in with the correct email and have data sharing turned on."

  "There are no stats for this channel. Make sure you are signed in with the correct email and have data sharing turned on."
2020-06-01 10:29:16 -04:00
Sean Yesmunt
3d352593f3 defer rendering related/comments until user scrolls down 2020-06-01 10:28:13 -04:00
jessopb
674fd28f2f
Merge pull request #4292 from lbryio/yarnLock531
update yarn lock
2020-05-31 11:40:10 -04:00
jessop
7a5613c5fe update yarn lock 2020-05-31 10:44:18 -04:00
Jeremy Kauffman
32acc2285e update redux 2020-05-31 10:14:53 -04:00
Jeremy Kauffman
a3d9555d38 pubish buttons get publish icons 2020-05-31 09:56:33 -04:00
Jeremy Kauffman
334e018c48 update lbry-redux 2020-05-31 09:48:34 -04:00
Jeremy Kauffman
2c61f1dd2b update homepage 2020-05-31 09:45:44 -04:00
TigerxWood
4fbc4458e7 Made texts translatable
Texts will be translated now
2020-05-29 16:52:00 -04:00
TigerxWood
a89efd981b Made texts translatable
All the strings will be translated now
2020-05-29 16:49:56 -04:00
TigerxWood
2130c15132 Made texts translatable
Texts will be translated now
2020-05-29 16:47:12 -04:00
TigerxWood
75796901e0 Made texts translatable
Texts will be translated now
2020-05-29 16:45:58 -04:00
TigerxWood
87e369cb11 Made text translatable
Text will be translated now
2020-05-29 16:45:39 -04:00
TigerxWood
37b1caccc2 Made text translatable
Text will be translated now
2020-05-29 16:45:39 -04:00
TigerxWood
199953448c Made text translatable
Strings can be translated now
2020-05-29 16:44:41 -04:00
Sean Yesmunt
be10041ea4 disabled advanced editor for comment replies 2020-05-29 15:29:08 -04:00
Sean Yesmunt
d301102af6 call preference get after entering wallet password 2020-05-29 15:29:08 -04:00
Sean Yesmunt
4d3bdda55c update lbryinc 2020-05-29 15:29:08 -04:00
jessopb
43e8c49dcc
Merge pull request #4285 from lbryio/matomo
initial matomo rollout
2020-05-29 15:11:16 -04:00
Sean Yesmunt
91aaceda99 re-enable gifs on homepage because i can't figure out how to get it to work 2020-05-29 13:26:06 -04:00
jessop
50089725f5 initial matomo rollout 2020-05-29 11:11:50 -04:00
Sean Yesmunt
50bb03d140 increase brightness of cover photo 2020-05-28 23:05:40 -04:00
Sean Yesmunt
af5d67a42d fix channel thumbnail gifs on file page 2020-05-28 23:02:56 -04:00
Sean Yesmunt
70b9d82070 fix thumbnail border radius on homepage 2020-05-28 15:09:21 -04:00
Sean Yesmunt
8cf6cc5125 remove un-needed style 2020-05-28 14:08:54 -04:00
Sean Yesmunt
252ca6f5a0 fix tile layout for large screens 2020-05-28 13:28:40 -04:00
Sean Yesmunt
85ec35f246 pause gifs until hover round 2 2020-05-28 13:07:51 -04:00
Sean Yesmunt
06f71f2f0d Revert "pause gifs until hover"
This reverts commit e97a03c5c9.
2020-05-28 12:31:45 -04:00
Sean Yesmunt
e41d3b61a5 Revert "update changelog"
This reverts commit 32c691f31a.
2020-05-28 12:31:45 -04:00
Sean Yesmunt
32c691f31a update changelog 2020-05-28 11:39:39 -04:00
Sean Yesmunt
e97a03c5c9 pause gifs until hover 2020-05-28 11:39:39 -04:00
Sean Yesmunt
f03fe9f78b remove extra div 2020-05-28 10:47:27 -04:00
Sean Yesmunt
c2b80d3b3b fix dnd for some file types 2020-05-28 10:45:56 -04:00
infiinte-persistence
8cf79ddf08 Add missing strings for translation.
#4239
2020-05-28 09:50:08 -04:00
infiinte-persistence
37fb7a9bf7 Consolidate variants of 'Read more' for reuse.
The version with the capitalized 'More' can probably be removed as well, but I left it as is.

#4239
2020-05-28 09:50:08 -04:00
infiinte-persistence
c79493d4ed Remove unused, obsolete or replaced strings.
Cleaning this up will prevent new translators from wasting time on obsolete strings.

#4239
2020-05-28 09:50:08 -04:00
infiinte-persistence
0cebb327c1 Fix split sentence: "%view_count% %views%"
The only issue I have with this as a translator is that I have no idea what this sentence is about, as both chunks are variables. This fix is more for clarity.

#4239
2020-05-28 09:50:08 -04:00
infiinte-persistence
e561ee29f3 Fix split sentence: "Join our tech forum", "Explore our technical resources"
#4239
2020-05-28 09:50:08 -04:00
infiinte-persistence
1ef182ed71 Fix split sentence: "% downloaded"
#4239
2020-05-28 09:50:08 -04:00
infiinte-persistence
951300a1cd Fix split sentence: "or" in "Refresh or Skip" wasn't translated
#4239
2020-05-28 09:50:08 -04:00
infiinte-persistence
a37b00e774 Fix split sentence: "By continuing, you accept the"
#4239
2020-05-28 09:50:08 -04:00
infiinte-persistence
8bd129799e Fix split sentence: "block|follow|unfollow this channel"
Concatenating strings directly assumes that all languages have the same structure as English, which it is not. This fix allows translators to move the tokens around per their language/grammar requirements.

#4239
2020-05-28 09:50:08 -04:00
Sean Yesmunt
21b26ea34f add channel to list of official paid beta channels 2020-05-27 17:08:49 -04:00
Sean Yesmunt
d20217a228 fix typo 2020-05-27 15:40:25 -04:00
Sean Yesmunt
424583de60 remove console log 2020-05-27 14:02:49 -04:00
Sean Yesmunt
17885eeccd disable purchase button while purchasing 2020-05-27 13:46:36 -04:00
derekyesmunt
217ddea79b Update CHANGELOG.md to include pr 2020-05-26 22:34:57 -04:00
derekyesmunt
0c10b8465c fix:css remove double border on publish cards 2020-05-26 22:34:57 -04:00
Sean Yesmunt
d4e2f8ffe8 change balance loading string to 'Your Wallet' 2020-05-26 22:15:03 -04:00
jessopb
f5805721e7
Merge pull request #4253 from lbryio/customSiteDocs
improve custom site documentation
2020-05-26 20:22:39 -04:00
jessop
2ae22ac551 improve custom site documentation 2020-05-26 19:58:01 -04:00
Sean Yesmunt
356b96941d auto follow lbrycast channel along with lbry channel 2020-05-26 17:49:01 -04:00
Sean Yesmunt
68e687ee6e moar improvements 2020-05-26 14:42:44 -04:00
Sean Yesmunt
1210a03c3f add additional app driver on paid embeds 2020-05-26 14:29:53 -04:00
Sean Yesmunt
66468174c2 fix strings 2020-05-26 14:20:39 -04:00
Sean Yesmunt
7562fdcfd5 clean up old lbrytv reference 2020-05-26 14:20:39 -04:00
Sean Yesmunt
3480bdc4cc improve loading style for embedded videos 2020-05-26 14:20:39 -04:00
Sean Yesmunt
9f317de5b6 increase paid content to 4 rows for users with more than 6 followed channels 2020-05-26 14:14:09 -04:00
Sean Yesmunt
59af7729d5 v0.46.0-rc.4 2020-05-26 13:34:08 -04:00
Sean Yesmunt
6eb7b312d6 update yarn.lock 2020-05-26 13:34:01 -04:00
Sean Yesmunt
3237070fbd v0.46.0-rc.3 2020-05-26 13:16:16 -04:00
Sean Yesmunt
3cf6d74665 update changelog 2020-05-26 13:16:09 -04:00
Sean Yesmunt
53043ae8b3 fix default textarea styles (broke in latest chrome) 2020-05-26 13:13:58 -04:00
Sean Yesmunt
f64e659a7c fix autoplay 2020-05-26 13:13:58 -04:00
Clayton Hickey
a7812350ce remove manual override in formatting for credits in header 2020-05-26 12:38:56 -04:00
Sean Yesmunt
3a5549c2dc fix publish page 2020-05-26 11:48:07 -04:00
TigerxWood
6eb3c47417 Update strings for
Update strings for (https://github.com/lbryio/lbry-desktop/blob/master/ui/page/settings/view.jsx) 'Blocked channels' settings
2020-05-26 10:07:30 -04:00
TigerxWood
c23d2a91f4 Changed code for "Blocked channels" settings
Because in some languages, like Japanese, the text start with the number first (as it mentioned in https://github.com/lbryio/lbry-desktop/pull/4215#issuecomment-633264851) I rewrote the code to be more easy and clear for translators to translate the text.
2020-05-26 10:07:19 -04:00
Sean Yesmunt
512131e527 add refund message 2020-05-26 09:45:48 -04:00
jessopb
55cb72ff05
Merge pull request #4248 from lbryio/dev
Custom third party lbry web app support
2020-05-26 09:31:57 -04:00
jessopb
98f9773e45
Merge pull request #4244 from lbryio/tvWebRebaseToLat
rename lbrytv to web
2020-05-25 17:24:52 -04:00
jessop
e3c2919373 rename lbrytv to web
language and API consts

improve customization
custom homepages
get config from .env.default
custom title and logo

small changes

add pinned item to sidebar

rebase?
2020-05-25 17:21:02 -04:00
jessopb
1dba194b67
Merge pull request #4208 from jeffslofish/issue-4207
Allow double-clicking in header to maximize the app.
2020-05-25 15:00:36 -04:00
Sean Yesmunt
931fd897cd v0.46.0-rc.2 2020-05-25 14:46:09 -04:00
Sean Yesmunt
b914590a77 update lbry-redux and add loading spinner for comments 2020-05-25 14:45:43 -04:00
Sean Yesmunt
cbec0d15df fix changelog 2020-05-25 13:38:08 -04:00
Cassidy
c0dd3e48a4 prevents effect from being re-ran on every render 2020-05-25 13:36:17 -04:00
Cassidy
576cc6cffd updates changelog with description and PR link 2020-05-25 13:36:17 -04:00
Sean Yesmunt
0798a9e014 update changelog 2020-05-25 13:36:17 -04:00
Cassidy
417330df1a updates changelog with description and PR link 2020-05-25 13:36:17 -04:00
Cassidy
b5f3ac0526 disables page scroll when pressing spacebar 2020-05-25 13:36:17 -04:00
Sean Yesmunt
8b68932997 improve first time play experience for paid content in blog posts 2020-05-25 13:29:38 -04:00
Sean Yesmunt
b244261715 commas 2020-05-25 13:29:38 -04:00
Sean Yesmunt
b2a57e0cf6 v0.46.0-rc.1 2020-05-25 10:41:58 -04:00
Sean Yesmunt
06b901e1cd update changelog 2020-05-25 10:41:47 -04:00
Sean Yesmunt
74dc6f4469 use nativeControls for ios devices 2020-05-25 10:36:17 -04:00
infiinte-persistence
8183b5822b Update markdown-toggle style in Publish to the new quick-action style for consistency with Comments. 2020-05-25 10:32:26 -04:00
infiinte-persistence
7064793319 Fix Reply's markdown-editor appearing in Create due to 'name' clash from a prior merger. 2020-05-25 10:32:26 -04:00
infiinte-persistence
5b11cd7c65 Comments: add ability to toggle between simple and markdown editor. 2020-05-25 10:32:26 -04:00
infiinte-persistence
fffd2f1576 FormField: add an optional quick-action button for 'markdown' and 'textarea'.
Technically, the other modes can have a quick-action button as well, but for now it's not implemented since it's unlikely to be used.

The first usage will be to house the "toggle markdown editor" button, but it can be used for anything. The caller will handle the action.

It will be located at the upper-right, which is a better place for such a button. Putting the "toggle markdown editor" button on the bottom seems too far away and seems to make the 'Done|Cancel' area too busy/cluttered.
2020-05-25 10:32:26 -04:00
Baltazar Gomez
ca4bbf53df
Support drag-and-drop file publishing (#4170) 2020-05-25 10:27:36 -04:00
infiinte-persistence
23848dd37a Fix <i18nMessage> not localizing the message.
--- Problem (#4173) ---
Messages under <i18nMessage> weren't localized although the translation is available. However, the tokens for these messages are localized, causing a mixed-language final string.

--- Fix ---
It appears that the original message (instead of the localized) was used in the token-substitution process.
2020-05-25 10:18:08 -04:00
Sean Yesmunt
f1a62160b4 don't fail to load page because chainquery returns an error 2020-05-25 00:39:14 -04:00
Sean Yesmunt
737e0ed7ab add 2257 page in footer 2020-05-22 20:19:25 -04:00
Sean Yesmunt
03518c8a5a show price on embeds in markdown 2020-05-22 16:48:24 -04:00
Sean Yesmunt
7eb759e0da don't continue to play uri if user cancels purchase 2020-05-22 16:48:24 -04:00
Sean Yesmunt
047fb24731 add age confirmation on web when setting mature content setting 2020-05-22 11:49:38 -04:00
Thomas Zarebczan
6d888b5121 A few tweaks 2020-05-22 11:17:47 -04:00
Sean Yesmunt
21f9fc7b31 Revert "Make sure native controls appear on touch devices Closes #4150"
This reverts commit 88f4329d34.
2020-05-22 10:30:56 -04:00
Sean Yesmunt
da0850c096 Revert "Update changelog"
This reverts commit 6acf5c9ac4.
2020-05-22 10:30:56 -04:00
jessopb
235930815e
prevent paid content in embeds (#4230) 2020-05-21 21:26:46 -04:00
jessopb
c6b649f2a5
Merge pull request #4228 from lbryio/fixEmbedsAfterPaidContent
Fix embeds after paid content
2020-05-21 17:30:30 -04:00
jessopb
d335c3b95d
Merge pull request #4227 from lbryio/fix-unintendedSignin
fix unintended signin on play
2020-05-21 17:28:29 -04:00
jessop
e204659df2 fix unintended signin on play 2020-05-21 17:25:38 -04:00
jessop
bb674b6e2c make embeds work 2020-05-21 17:11:56 -04:00
Jeffrey Fisher
6acf5c9ac4 Update changelog 2020-05-21 13:28:34 -04:00
Jeffrey Fisher
88f4329d34 Make sure native controls appear on touch devices
Closes #4150
2020-05-21 13:28:34 -04:00
Jeffrey Fisher
22da6fee69 Make embeds work without sesion or local storage
Closes #4017
2020-05-21 13:28:09 -04:00
Jeffrey Fisher
2e407c1146 Allow selecting of text by dragging the cursor over text
Closes #4209
2020-05-21 13:24:35 -04:00
Sean Yesmunt
abe4e3a128 add comment 2020-05-21 13:23:52 -04:00
Sean Yesmunt
47c19e54ef drop down purchases page to 10 2020-05-21 13:18:55 -04:00
Sean Yesmunt
4c768b3814 fix embed player 2020-05-21 12:53:21 -04:00
Sean Yesmunt
e4500d692f fix embed player 2020-05-21 11:55:58 -04:00
Sean Yesmunt
c2abcf110c
Paid content on lbry.tv (#4197) 2020-05-21 11:38:28 -04:00
TigerxWood
ff035ed807 Changed how 'Blocked channels' are displayed on settings and a small typo
Problems solved (second attempt):
A. Small typo for <div className="card__title card__t itle--deprecated"> (extra space in the word **t itle**)

B. More details about problems with languages:
1. The word blocked has two forms in other languages (one for plural and one for singular) and therefore must be put together with channel and channels words. Currently it can be translated in only one form.

2. In the case there are no blocked channels there is no need to show the 0 value and is more elegant the message 'You do not have blocked channels'

3.  The link to manage the channels should not be visible in the case that there is no channel blocked, because there is no channel that need to be managed.

And about your statement: "Your change would make it harder for other languages to change this sentence." 

It's quite the opossite, it's very clear and easy. They just have to translate (with examples in Romanian):
'%count% %channels%. ',     (leave it as it is)
'You don't have' = 'Nu aveți'
'You have' = 'Aveți'
'blocked channel' = 'canal blocat'
'blocked channels' = 'canale blocat**e**'  (see the change for plural forms for the word blocked, not only for channels word?)

I hope this time I explained better the need for the changes.
Thanks

Messages displayed:
Case with 0 blocked channels: You don't have blocked channels. (No Manage button displayed)
Case with 1 blocked channel: You have 1 blocked channel. **Manage** (manage link)
Case with 2 or more blocked channels: You have 2 blocked channels. **Manage** (manage link)
2020-05-18 17:38:12 -04:00
Sean Yesmunt
50361e1edb fix link style 2020-05-18 16:46:03 -04:00
Sean Yesmunt
2dccad2247 fix embed link to open in new tab instead of iframing the entire app inside embeds 2020-05-18 13:07:42 -04:00
Sean Yesmunt
730fc1a752 update typo 2020-05-18 10:13:35 -04:00
Sean Yesmunt
a02fe517cb add credit card image and fake cost text 2020-05-18 10:13:35 -04:00
Sean Yesmunt
1fa3ce4e50 basic checkout page prototype 2020-05-18 10:13:35 -04:00
Sean Yesmunt
7e3704b3a2 update changelog 2020-05-18 10:03:48 -04:00
Jeffrey Fisher
6caa8ae4f6 Add grab cursor to pop out player header 2020-05-18 09:58:22 -04:00
Jeffrey Fisher
50c7308ee7 Allow double-clicking in header to maximize the app.
Closes #4207
2020-05-17 21:26:30 -07:00
Sean Yesmunt
75b23d5d0e disable electron-cookies in dev mode 2020-05-15 15:12:11 -04:00
Sean Yesmunt
874d7860e9 don't call api if user doesn't have any tags 2020-05-15 12:39:33 -04:00
Sean Yesmunt
25984444ca hide footer on channel pages 2020-05-15 10:27:38 -04:00
Jeffrey Fisher
9c70df72dc Only show "start at" on share page for videos/audio
Closes #4177
2020-05-15 09:51:59 -04:00
Jeffrey Fisher
394fad5754 Clear media position if video has played to the end.
Closes #4174
2020-05-15 09:51:18 -04:00
eatdostacos
f6431ac235 Small Changes to publishFile/view.jsx 2020-05-15 09:46:29 -04:00
infiinte-persistence
4643eb96cc Define tooltips for MenuButtons.
<MenuButton> is not from us, so the automatic tooltip from the previous commit does not apply here.
2020-05-15 09:45:55 -04:00
infiinte-persistence
fa219af5aa Reuse available text as the tooltip where appropriate.
The best candidate is `aria-label`, followed by `description`.

Most of the existing elements already have these defined, so try to route it as the tooltip instead of having to explicitly define tooltips everywhere through a redundant `title` or <Tooltip> tag.

Minor side-effect:
This will cancel off any effect from a parent <Tooltip>, i.e. might confuse future developers who are trying to do "<Tooltip><Button></Button></Tooltip>".
2020-05-15 09:45:55 -04:00
Nilkonom
a2d4757823 fix dead link 2020-05-15 09:45:17 -04:00
Sean Yesmunt
3de71db341 remove test value 2020-05-13 17:45:06 -04:00
Sean Yesmunt
e0c90f866c 🤦‍♂️ 2020-05-13 17:43:50 -04:00
Sean Yesmunt
5af0cfc6c2 update footer style 2020-05-13 12:13:13 -04:00
Sean Yesmunt
a6bf056977 add back jeremys footer changes 2020-05-13 12:13:13 -04:00
Sean Yesmunt
59d539b362 fix mobile style 2020-05-13 12:13:13 -04:00
Sean Yesmunt
22a4255320 add footer for web 2020-05-13 12:13:13 -04:00
Baltazar Gomez
e063363c5f Update CHANGELOG.md 2020-05-13 10:18:36 -04:00
btzr-io
c19d04f83e fix comic-book content-type detection
always show viewer: fix #4141

minor improvements for loading indicator
2020-05-13 10:18:36 -04:00
btzr-io
036cf734c6 prevent state updates after component unmounted 2020-05-13 10:18:36 -04:00
Baltazar Gomez
c8f21025d1 initial web support 2020-05-13 10:18:36 -04:00
Baltazar Gomez
1f6dd89e55 create effect to load blob from streaming url
Use this on the web for files that need to wait for the full stream
2020-05-13 10:18:36 -04:00
Baltazar Gomez
1992e78c2e update comicbook viewer
- convert to functional component
- use hooks to load stream
2020-05-13 10:18:36 -04:00
Baltazar Gomez
872fa9363d use a readable stream as file source 2020-05-13 10:18:36 -04:00
Baltazar Gomez
dc10a2ddf1 create effect for file stream: fix #2777
Use this effect instead of the "file://" protocol
2020-05-13 10:18:36 -04:00
Sean Yesmunt
98820ad1f4 mobile cleanup 2020-05-11 15:54:07 -04:00
Sean Yesmunt
3decc523b0 fallback to channel name if title doesn't exist 2020-05-11 15:21:40 -04:00
infiinte-persistence
0734e51050 Add changelog entry for #4172 2020-05-11 14:54:05 -04:00
infiinte-persistence
598c336b66 Refactor DateTime to allow it's translated result string to be re-used elsewhere, for consistency. 2020-05-11 14:54:05 -04:00
infiinte-persistence
2582627f25 Fix localization issue in DateTime.
The class was only returning a localized string for 'years' and 'months'; English was used for the rest.

- Fixed by handling the remaining cases.
- New strings were added (1) so that they will all be consistent language-wise until the translators handle them all (2) allows for cleaner code through variable re-use (%duration%).
2020-05-11 14:54:05 -04:00
Sean Yesmunt
2b0314d001 update @lbry/components 2020-05-11 12:40:49 -04:00
Sean Yesmunt
919f82ba94 purchases page, cleanup on pages with <ClaimList /> 2020-05-11 12:31:22 -04:00
Sean Yesmunt
ca5f54cbfd improve mobile styles 2020-05-11 10:51:47 -04:00
Sean Yesmunt
90be60c9b0 don't use focus mixin on mobile 2020-05-11 10:51:47 -04:00
Sean Yesmunt
904dd32df4 update lbry-redux 2020-05-11 10:11:48 -04:00
btzr-io
276f42f5e7 force new lines to render on markdown preview: fix #2390 2020-05-11 09:44:29 -04:00
manish-barnwal
d85eabf922 Updated the broken link 2020-05-11 09:30:30 -04:00
manish-barnwal
1b47bc1982 updated the broken link 2020-05-11 09:30:30 -04:00
eatdostacos
7596fd64be Version 45.1 Changed Slightly
The SDK was updated to 72.0 not 72.9 as was previously said as there isn't anything about 72.0.
2020-05-10 23:19:34 -04:00
jessop
c35388fd0e changelog for reflector status 2020-05-08 16:23:31 -04:00
jessopb
e2b1ef49a5
Merge pull request #4148 from lbryio/feat-trackReflectingFiles
track reflecting files after publish
2020-05-08 15:08:18 -04:00
Sean Yesmunt
053601c944 update changelog 2020-05-08 14:17:52 -04:00
btzr-io
e75bd22588 fix channel selector icon color 2020-05-08 14:16:40 -04:00
btzr-io
6c9538e4f5 remove unnecessary div wraper 2020-05-08 14:16:40 -04:00
btzr-io
a8f6185f12 fix channel selector styles
fix #4072
2020-05-08 14:16:40 -04:00
jessop
0fcc657783 track reflecting files after publish 2020-05-08 14:13:56 -04:00
Sean Yesmunt
b6c7a8ec83 udpate changelog 2020-05-08 14:00:59 -04:00
Jeffrey Fisher
c539ab91c0 Fix code review issues 2020-05-08 14:00:59 -04:00
Jeffrey Fisher
8fe9cfafbc Allow video sharing with start timestamp
Closes #3122
2020-05-08 14:00:59 -04:00
Sean Yesmunt
aa0a76a121 update lbry-redux 2020-05-08 13:18:59 -04:00
Baltazar Gomez
0fa5ce1035 change hyperlink color: fix #346 2020-05-07 16:38:06 -04:00
Baltazar Gomez
673a35b103 remove extra spacing in markdown quotes: fix #3522 2020-05-07 16:38:06 -04:00
Baltazar Gomez
2a308ef765 fix monopolized style of list-style 2020-05-07 16:38:06 -04:00
Baltazar Gomez
b6fb22d8f8 block unknown file types from player 2020-05-07 16:37:32 -04:00
Sean Yesmunt
c0b4fff5d5 remove dynamic streaming url generation 2020-05-07 10:57:00 -04:00
Jeffrey Fisher
654e4d38df Update changelog 2020-05-06 14:23:21 -04:00
Jeffrey Fisher
fda372e565 Open hyperlinks in new tab
Closes #3467
2020-05-06 14:23:21 -04:00
Sean Yesmunt
c535f76228 update changelog 2020-05-06 14:19:36 -04:00
Sean Yesmunt
3a86099337 v0.45.1 2020-05-06 10:01:48 -04:00
Sean Yesmunt
b09283ce72 v0.45.1-rc.11 2020-05-05 16:47:42 -04:00
Sean Yesmunt
ff429117cd make sure player callback has access to latest desktop start time 2020-05-05 16:47:27 -04:00
Jeremy Kauffman
ab70f1c758
remove #whothinks 2020-05-05 15:03:15 -04:00
Sean Yesmunt
bedb0d6373 v0.45.1-rc.10 2020-05-05 14:05:32 -04:00
Sean Yesmunt
96d9e24a4b fix time to start analytics for desktop and fix rewards link 2020-05-05 14:04:52 -04:00
Sean Yesmunt
5d0e7af049 v0.45.1-rc.9 2020-05-05 10:57:41 -04:00
Sean Yesmunt
95233c2196 remove hard coded reward amount 2020-05-05 10:56:16 -04:00
Sean Yesmunt
e7c41590ba v0.45.1-rc.8 2020-05-05 10:10:15 -04:00
Sean Yesmunt
db51789e07 pass time in ms to analytics for view apis 2020-05-05 10:09:53 -04:00
Sean Yesmunt
0f87c8b207 v0.45.1-rc.7 2020-05-05 09:50:54 -04:00
Sean Yesmunt
d8c6300f51 fix typo 2020-05-05 09:50:34 -04:00
Sean Yesmunt
9e4de43819 v0.45.1-rc.6 2020-05-05 09:43:11 -04:00
Sean Yesmunt
66ea800ca2 update changelog 2020-05-05 09:43:02 -04:00
Sean Yesmunt
20d4b5b7e1 bump lbry-redux and lbry-sdk 2020-05-05 09:42:25 -04:00
Sean Yesmunt
e066e46f58 v0.45.1-rc.5 2020-05-04 11:38:56 -04:00
Sean Yesmunt
85ac7c5aac move edit button on channel pages 2020-05-04 11:38:35 -04:00
Sean Yesmunt
1b830f74a1 update button styles 2020-05-04 10:57:47 -04:00
Sean Yesmunt
db94e38911 slightly improve pagination button placement 2020-05-04 10:43:05 -04:00
Sean Yesmunt
36c0694b8b v0.45.1-rc.4 2020-05-04 09:56:30 -04:00
jessopb
74d957e0dd
Merge pull request #4115 from lbryio/fixes-may-1-a
removes delete button and ensures resolve on show page
2020-05-01 17:21:44 -04:00
jessop
402710ce3b removes delete button and ensures resolve on show page 2020-05-01 17:15:15 -04:00
Sean Yesmunt
160015391e v0.45.1-rc.3 2020-05-01 15:19:24 -04:00
Sean Yesmunt
6b7e2028fe Update CHANGELOG.md 2020-05-01 14:46:29 -04:00
JT Turner
6c28ffaa18 Fix loop when value really doesn't need to be global. 2020-05-01 14:46:29 -04:00
JT Turner
b0ed767c27 Fix channel reply switching channels. 2020-05-01 14:46:29 -04:00
Sean Yesmunt
f873b99875 modal consistency cleanup 2020-05-01 14:35:27 -04:00
jessopb
104aa943ed
Merge pull request #4059 from lbryio/feat-claimListPaginate
paginate claim list
2020-05-01 14:26:20 -04:00
jessop
7730ee1e3f remove dependency on full claim list
paginate claim list
improve handling of pending publishes
add abandon to publishes list previews

use bodyCard

fix publish edit notification
2020-05-01 13:56:21 -04:00
Sean Yesmunt
f83ab01c2d update lbry-redux 2020-05-01 12:27:00 -04:00
Sean Yesmunt
5bb6cfdb42 add src attribute for new users coming from embeds 2020-05-01 11:47:36 -04:00
Jeffrey Fisher
7ea9c1c199 Only save media position on pause or dispose, not every timeupdate, for performance reasons. 2020-05-01 10:14:29 -04:00
Jeffrey Fisher
3b7bba5ba3 Update changelog for #4104 2020-05-01 10:14:29 -04:00
Jeffrey Fisher
c1f74aba2e Save media position in video viewer
Closes #2775
2020-05-01 10:14:29 -04:00
Sean Yesmunt
8f2e2197f6 update changelog 2020-05-01 09:51:29 -04:00
Sean Yesmunt
b3b403a058 fix deleted text file handling on desktop 2020-05-01 09:51:29 -04:00
Sean Yesmunt
2e7c0ac5d0
Update README.md 2020-04-30 15:23:44 -04:00
Sean Yesmunt
b4eabda314 v0.45.1-rc.2 2020-04-30 15:17:56 -04:00
Sean Yesmunt
f99ce16a67 improve header markup for voiceover and add aria-expanded attribute for cards 2020-04-30 15:17:32 -04:00
Sean Yesmunt
8d888d3e23 improve floating behavior when coming from embeds 2020-04-30 15:13:45 -04:00
Sean Yesmunt
5152e78f09 new og image 2020-04-30 14:33:21 -04:00
Sean Yesmunt
45b7720118 v0.45.1-rc.1 2020-04-30 11:13:55 -04:00
Sean Yesmunt
6eb9d665c8 update changelog 2020-04-30 11:13:11 -04:00
Sean Yesmunt
554f50802e set playing uri when navigating from the floating player 2020-04-30 11:06:06 -04:00
Sean Yesmunt
49275c298a embeds style fixes 2020-04-30 11:06:06 -04:00
Jeremy Kauffman
6b02805645 fix play button on embed end 2020-04-30 10:37:39 -04:00
Jeffrey Fisher
c56f135dce Update CHANGELOG.md 2020-04-30 10:16:07 -04:00
Sean Yesmunt
9923df7b19 let browser validate iframe markup 2020-04-30 10:13:01 -04:00
Sean Yesmunt
1a50e697ce embed functionality inside markdown posts 2020-04-30 10:13:01 -04:00
Sean Yesmunt
0738d186a5 close modal after sending support 2020-04-29 18:02:53 -04:00
Sean Yesmunt
ad6d36f2e0 add back embed title background 2020-04-29 17:45:43 -04:00
jessop
867b5eb134 two bugfixes: i18n tags, all reposts loading loop 2020-04-29 15:49:14 -04:00
Sean Yesmunt
a5cc1a84aa add card style for lists of claims 2020-04-29 15:37:39 -04:00
Sean Yesmunt
52f704fa0f prevent long titles from overlapping logo in embeds 2020-04-29 14:35:55 -04:00
Sean Yesmunt
dae3a517f5 fix autoplay 2020-04-29 13:55:47 -04:00
Jeffrey Fisher
122781036d Use "Purchase and Tip Confirmations" setting to determine if a confirmation dialog is needed for tipping. 2020-04-29 13:28:11 -04:00
Jeffrey Fisher
cb470ad970 Do not double confirm on supports, per code review 2020-04-29 13:28:11 -04:00
Jeffrey Fisher
85a8234115 Add Confirmation when sending Tip/Support
Closes #2714
2020-04-29 13:28:11 -04:00
Thomas Zarebczan
019c3e13b2
update reward amount
(this should come from the reward call probably)
2020-04-29 12:25:21 -04:00
eatdostacos
804178dd58 Changed Correctly
I did this as a pull request earlier and then I edited some other stuff in my repo and it added that also. This is a working change.
2020-04-29 11:09:36 -04:00
Sean Yesmunt
c9f5813b81 try twice when the first play fails from a timeout 2020-04-29 11:00:42 -04:00
Sean Yesmunt
b61907ad22 update timeout 2020-04-29 11:00:42 -04:00
Sean Yesmunt
dd4cd9314c style fixes 2020-04-29 11:00:42 -04:00
Sean Yesmunt
df4ff30c83 lock video.js to 7.6.6 2020-04-29 11:00:42 -04:00
Sean Yesmunt
5c27977cf8 update videojs 2020-04-29 11:00:42 -04:00
Sean Yesmunt
767c69e132 cleanup and fix flow issues 2020-04-29 11:00:42 -04:00
Sean Yesmunt
0754bb1a7f hide double video controls on ios 2020-04-29 11:00:42 -04:00
Sean Yesmunt
04ee4afdc2 test with promise.race 2020-04-29 11:00:42 -04:00
Jeremy Kauffman
49128322d5 consistent styling 2020-04-29 11:00:42 -04:00
Jeremy Kauffman
94a5dc47af adjust volume earlier 2020-04-29 11:00:42 -04:00
Jeremy Kauffman
e23ae63c74 disable loading screen 2020-04-29 11:00:42 -04:00
Sean Yesmunt
4a6d9c7292 add log 2020-04-29 11:00:42 -04:00
Sean Yesmunt
ad8cdd130f call play() programatically instead of using autoplay flag 2020-04-29 11:00:42 -04:00
Jeremy Kauffman
1a06ddca3b always restore player volume settings on first play 2020-04-29 11:00:42 -04:00
Jeremy Kauffman
ab74052446 hackish change to get mute/volume reset working 2020-04-29 11:00:42 -04:00
Jeremy Kauffman
c89b69f6fc callback player ready 2020-04-29 11:00:42 -04:00
Jeremy Kauffman
6c8b0b2d68 maybe ready 2020-04-29 11:00:42 -04:00
Sean Yesmunt
9db9363b9f fix unwanted re-renders 2020-04-29 11:00:42 -04:00
Jeremy Kauffman
e4829c8ce1 broken demonstration 2020-04-29 11:00:42 -04:00
Jeremy Kauffman
c52a88f117 fix timing 2020-04-29 11:00:42 -04:00
Jeremy Kauffman
793f622d8d semi-broken 2020-04-29 11:00:42 -04:00
jessop
e97fe3db34 changelog 2020-04-28 10:25:05 -04:00
jessop
a411ec9b47 reenable reposts
reenable reposts and track for emails

review changes

change showReposts to hideReposts due to persist hydrate issue

bugfix

bugfix
2020-04-28 10:25:05 -04:00
calvincodes
acefad2827 Updating ChangeLog 2020-04-28 09:41:47 -04:00
calvincodes
1d30078c90 Adding tooltip to share, block, and follow buttons. 2020-04-28 09:41:47 -04:00
Thomas Zarebczan
700df02a59
fix file delete on web 2020-04-27 18:22:09 -04:00
Harsh Khandeparkar
a06798966f whoops 2020-04-27 16:39:27 -04:00
Sean Yesmunt
eaca77d394
Update --first-timers.md 2020-04-27 14:30:52 -04:00
Sean Yesmunt
9513720be8
Update --first-timers.md 2020-04-27 14:29:40 -04:00
Baltazar Gomez
a76f59999e set max-height of viewer 2020-04-27 14:27:04 -04:00
btzr-io
e4d822f818 Fix and enable 3D viewer: #4035
Fix 3d viewer styles

Fix minor warnings from three.js

Remove deprecated themes

Fix #4074
2020-04-27 14:27:04 -04:00
Sean Yesmunt
ae3c8d5221 update lbry-redux 2020-04-27 14:25:16 -04:00
eatdostacos
c541c20c0d Changing some text on the publishing page
Changed "Your video may not be the best format. Use MP4s in H264/AAC format and a friendly bitrate (720p) for more reliable streaming." to "Your video may not be the best format. Use MP4s in H264/AAC format and a friendly bitrate (under 5 mbps) and resolution (720p) for more reliable streaming." and changed the two times it says this "For video content, use MP4s in H264/AAC format and a friendly bitrate (720p) for more reliable streaming." to "For video content, use MP4s in H264/AAC format and a friendly bitrate (under 5 mbps) and resolution (720p) for more reliable streaming."
2020-04-27 12:07:48 -04:00
Harsh Khandeparkar
d67e9fcb11 Add FTO template 2020-04-27 12:02:11 -04:00
btzr-io
8b6c644415 fix comic book viewer styles: #4035 2020-04-27 10:00:08 -04:00
Baltazar Gomez
fe4d75050a update villain-react to last version 2020-04-27 10:00:08 -04:00
Jeffrey Fisher
65f4562937 Fix purchase confirmation logic
Closes #4057
2020-04-27 09:53:32 -04:00
Brendon J. Brewer
f6a9d629a5 Updated changelog 2020-04-27 09:53:12 -04:00
Brendon J. Brewer
0aa62b2dff found more strings 2020-04-27 09:53:12 -04:00
Brendon J. Brewer
091f5c21e7 Edited app strings to emphasise that wallets control channels and publishes as well as credits 2020-04-27 09:53:12 -04:00
jessopb
5d94d33492
Merge pull request #4078 from lbryio/fix-lbrytvDegradeImports
prevent loading tv degrade components in app
2020-04-25 16:29:57 -04:00
jessop
05aa523f3a prevent loading tv degrade components in app 2020-04-25 16:20:00 -04:00
Sean Yesmunt
dcb79685bc fix typo 2020-04-24 15:12:48 -04:00
Sean Yesmunt
468051b2a1 comment out lbc earned 2020-04-24 09:15:25 -04:00
Sean Yesmunt
594bcea01f improve flow when a user has no channels/no publishes on a channel 2020-04-24 09:15:25 -04:00
Sean Yesmunt
cf4bbc3f26 update icon for lbc earned analytics card 2020-04-24 09:15:25 -04:00
Sean Yesmunt
837158218e creator analytics improvements 2020-04-24 09:15:25 -04:00
Sean Yesmunt
a391f35542 update lbryinc 2020-04-23 14:18:29 -04:00
Sean Yesmunt
3ed6e53ce1 udpate changelog 2020-04-23 13:13:22 -04:00
Mr. X
77526d2efb add changelog entry 2020-04-23 13:10:41 -04:00
Mr. X
f4c63f4fc3 fix: better subscribe button for both mobile and desktop 2020-04-23 13:10:41 -04:00
Mr. X
4efc0fbd3e fix: better hover use-effect 2020-04-23 13:10:41 -04:00
Jeffrey Fisher
3c6469f388 Show elapsed/total instead of the
countdown to the end in video player.

Closes #3813
2020-04-23 10:58:42 -04:00
Alex Grintsvayg
62a70cf16c new status endpoint 2020-04-23 10:50:49 -04:00
Cassidy
5c34b5dd0b updates changelog 2020-04-23 10:47:06 -04:00
Cassidy
b173d22468 updates font files with normalized line height versions 2020-04-23 10:47:06 -04:00
Sean Yesmunt
901f2b8991 update readme 2020-04-22 22:48:54 -04:00
Jeremy Kauffman
ef437c8847 proper search parameters 2020-04-22 19:19:00 -04:00
Sean Yesmunt
2ed3623b59 make invite string more manageable for translations 2020-04-22 15:45:35 -04:00
Harsh Khandeparkar
17cf98a4bd fix: add a button in the footer of the card 2020-04-22 15:45:35 -04:00
Harsh Khandeparkar
4676799c14 fix: change page size to 3 2020-04-22 15:45:35 -04:00
Mr. X
ba31ba262d add changelog entry 2020-04-22 15:45:35 -04:00
Mr. X
b1549c6ae2 fix: create account button inline 2020-04-22 15:45:35 -04:00
Mr. X
7893512e2b feat: Invited Link Displays Channel Content 2020-04-22 15:45:35 -04:00
Sean Yesmunt
220994eeaa no reposts for #whothinks 2020-04-22 15:17:29 -04:00
Sean Yesmunt
2504d126bd update homepage 2020-04-22 13:29:07 -04:00
Sean Yesmunt
3d3cf619fd update lbry-redux 2020-04-22 12:26:08 -04:00
Sean Yesmunt
ca721fdda5 update lbry-redux 2020-04-22 11:36:17 -04:00
Jeffrey Fisher
3535703017 Remove dead code per code review. 2020-04-22 09:34:01 -04:00
Jeffrey Fisher
7adf165f08 Fix flow error.
Partial fix for #2024
2020-04-22 09:34:01 -04:00
Sean Yesmunt
eb50475edc update changelog 2020-04-21 17:20:42 -04:00
Mr. X
5b58a46ebd feat: header logo reloads at "/" 2020-04-21 17:18:38 -04:00
Jeffrey Fisher
e6a044d8e1 Fix flow error.
Partial fix for #2024
2020-04-21 17:12:31 -04:00
Jeffrey Fisher
7e3c0143d1 Flow error fix.
Partial fix for #2024
2020-04-21 17:12:13 -04:00
Jeffrey Fisher
bfb2584970 Remove defaultExpand attribute so card is not collapsable 2020-04-21 17:07:56 -04:00
Jeffrey Fisher
b786ba82ae First attempt to fix #3993. Show error message
if image is not able to be displayed by browser.
2020-04-21 17:07:56 -04:00
1159 changed files with 103220 additions and 36804 deletions

109
.env.defaults Normal file
View file

@ -0,0 +1,109 @@
####### .env.default #########
# Copy this file to .env to make modifications
# Base config
WEBPACK_WEB_PORT=9090
WEBPACK_ELECTRON_PORT=9091
WEB_SERVER_PORT=1337
## APIS
LBRY_WEB_API=https://api.na-backend.odysee.com
LBRY_WEB_STREAMING_API=https://cdn.lbryplayer.xyz
LBRY_WEB_BUFFER_API=https://collector-service.api.lbry.tv/api/v1/events/video
COMMENT_SERVER_API=https://comments.odysee.com/api/v2
COMMENT_SERVER_NAME=Odysee
SEARCH_SERVER_API=https://lighthouse.odysee.com/search
SOCKETY_SERVER_API=wss://sockety.odysee.com/ws
THUMBNAIL_CDN_URL=https://image-processor.vanwanet.com/optimize/
WELCOME_VERSION=1.2
# STRIPE
# STRIPE_PUBLIC_KEY='pk_test_NoL1JWL7i1ipfhVId5KfDZgo'
# Analytics
MATOMO_URL=https://analytics.lbry.com/
MATOMO_ID=4
# OG
OG_TITLE_SUFFIX=| lbry.tv
OG_HOMEPAGE_TITLE=lbry.tv
OG_IMAGE_URL=
SITE_CANONICAL_URL=https://lbry.tv
# UI
## Custom Site info
DOMAIN=lbry.tv
URL=https://lbry.tv
SITE_TITLE=LBRY
SITE_NAME=LBRY
SITE_DESCRIPTION=Meet LBRY, an open, free, and community-controlled content wonderland.
SITE_HELP_EMAIL=help@lbry.com
LOGO_TITLE=LBRY
CLOUD_CONNECT_SITE_NAME=Odysee
## Social media
TWITTER_ACCOUNT=LBRYcom
BRANDED_SITE=odysee
## OLD IMAGE ASSETS
#YRBL_HAPPY_IMG_URL=https://player.odysee.com/api/v3/streams/free/yrbl-happy/7aa50a7e5adaf48691935d55e45d697547392929/839d9a
#YRBL_SAD_IMG_URL=https://player.odysee.com/api/v3/streams/free/yrbl-sad/c2d9649633d974e5ffb503925e1f17d951f1bd0f/f262dd
# LOCALE
DEFAULT_LANGUAGE=en
## CUSTOM SETTINGS
# Additional settings for below are found in ui/constants/settings and are for
# preventing user settings from applying to custom sites without overwriting them.
# UNSYNCED_SETTINGS='theme dark_mode_times automatic_dark_mode_enabled'
## LINKED CONTENT WHITELIST
KNOWN_APP_DOMAINS=lbry.tv,lbry.lat,odysee.com
## CUSTOM CONTENT
# If the following is true, copy custom/homepage.example.js to custom/homepage.js and modify
CUSTOM_HOMEPAGE=false
# Add channels to auto-follow on first run
AUTO_FOLLOW_CHANNELS=lbry://@lbry#3fda836a92faaceedfe398225fb9b2ee2ed1f01a
## FEATURES AND LIMITS
SIMPLE_SITE=false
#BRANDED_SITE
ENABLE_COMMENT_REACTIONS=true
ENABLE_FILE_REACTIONS=true
ENABLE_CREATOR_REACTIONS=true
ENABLE_NO_SOURCE_CLAIMS=false
ENABLE_PREROLL_ADS=false
CHANNEL_STAKED_LEVEL_VIDEO_COMMENTS=4
CHANNEL_STAKED_LEVEL_LIVESTREAM=5
WEB_PUBLISH_SIZE_LIMIT_GB=4
LOADING_BAR_COLOR=#2bbb90
LIGHTHOUSE_DEFAULT_TYPES=audio,video,text,image,application
SHOW_ADS=false
## SIMPLE_SITE REPLACEMENTS
ENABLE_MATURE=true
ENABLE_UI_NOTIFICATIONS=false
#ENABLE_LINK_TO_APP=true
#FORCE_ANALYTICS=true
#ENABLE_ADVANCED_FILTER=true
#ENABLE_PAID_CONTENT=true
#USE_FOOTER=true
#USE_DISCOVER_WHITELIST=false
#ENABLE_WILD_WEST=false
#FULL_SIDE_LINKS=true
#SHOW_TAGS_INTRO=false
# SEARCH TYPES
#VIDEO_ENABLED=true
#AUDIO_ENABLED=true
#POSTS_ENABLED=true
#IMAGES_ENABLED=true
#FILES_ENABLED=true
#MODELS_ENABLED=true
BRANDED_SITE=odysee

4
.eslintignore Normal file
View file

@ -0,0 +1,4 @@
node_modules/*
./node_modules/**
**/node_modules/**
web/dist/**

View file

@ -14,8 +14,14 @@
"IS_WEB": true,
"WEBPACK_PORT": true
},
"settings": {
"react": {
"version": "detect"
}
},
"rules": {
"brace-style": 0,
"camelcase": 0,
"comma-dangle": ["error", "always-multiline"],
"handle-callback-err": 0,
"indent": 0,
@ -29,13 +35,14 @@
"object-curly-spacing": 0,
"one-var": 0,
"prefer-promise-reject-errors": 0,
"promise/param-names": 0,
"react/jsx-indent": 0,
"react/jsx-no-comment-textnodes": 0,
"react-hooks/exhaustive-deps": "warn",
"react-hooks/rules-of-hooks": "error",
"react/no-unescaped-entities": 0,
"space-before-function-paren": [
"error",
"warn",
{
"anonymous": "never",
"named": "never",

View file

@ -1,12 +1,14 @@
[ignore]
.*\.typeface\.json
.*/node_modules/findup/.*
.*/node_modules/react-plastic/.*
.*/node_modules/raf-schd/.*
.*/node_modules/react-beautiful-dnd/.*
.*/node_modules/resolve/test/.*
[include]
[libs]
./flow-typed
node_modules/lbry-redux/flow-typed/
node_modules/lbryinc/flow-typed/
[lints]
@ -24,10 +26,27 @@ module.name_mapper='^modal\(.*\)$' -> '<PROJECT_ROOT>/ui/modal\1'
module.name_mapper='^app\(.*\)$' -> '<PROJECT_ROOT>/ui/app\1'
module.name_mapper='^native\(.*\)$' -> '<PROJECT_ROOT>/ui/native\1'
module.name_mapper='^analytics\(.*\)$' -> '<PROJECT_ROOT>/ui/analytics\1'
module.name_mapper='^recsys\(.*\)$' -> '<PROJECT_ROOT>/extras/recsys\1'
module.name_mapper='^rewards\(.*\)$' -> '<PROJECT_ROOT>/ui/rewards\1'
module.name_mapper='^i18n\(.*\)$' -> '<PROJECT_ROOT>/ui/i18n\1'
module.name_mapper='^effects\(.*\)$' -> '<PROJECT_ROOT>/ui/effects\1'
module.name_mapper='^comments\(.*\)$' -> '<PROJECT_ROOT>/ui/comments\1'
module.name_mapper='^config\(.*\)$' -> '<PROJECT_ROOT>/config\1'
module.name_mapper='^lbrytv\/component\(.*\)$' -> '<PROJECT_ROOT>/lbrytv/component\1'
module.name_mapper='^lbrytv\/effects\(.*\)$' -> '<PROJECT_ROOT>/lbrytv/effects\1'
module.name_mapper='^web\/component\(.*\)$' -> '<PROJECT_ROOT>/web/component\1'
module.name_mapper='^web\/effects\(.*\)$' -> '<PROJECT_ROOT>/web/effects\1'
module.name_mapper='^web\/page\(.*\)$' -> '<PROJECT_ROOT>/web/page\1'
module.name_mapper='^homepage\(.*\)$' -> '<PROJECT_ROOT>/ui/util/homepage\1'
module.name_mapper='^scss\/component\(.*\)$' -> '<PROJECT_ROOT>/ui/scss/component/\1'
esproposal.optional_chaining=enable
; Extensions
module.file_ext=.js
module.file_ext=.jsx
module.file_ext=.json
module.file_ext=.css
module.file_ext=.scss
[strict]

View file

@ -1,14 +1,26 @@
## Fixes
Issue Number:
<!-- Tip:
- Add keywords to directly close the Issue when the PR is merged.
- Skip the keyword if the Issue contains multiple items.
- https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword
-->
## What is the current behavior?
## What is the new behavior?
## Other information
<!-- If this PR contains a breaking change, please describe the impact and solution strategy for existing applications below. -->
## PR Checklist
<!-- For the checkbox formatting to work properly, make sure there are no spaces on either side of the "x" -->
Please check all that apply to this PR using "x":
- [ ] I have checked that this PR is not a duplicate of an existing PR (open, closed or merged)
- [ ] I have checked that this PR does not introduce a breaking change
- [ ] This PR introduces breaking changes and I have provided a detailed explanation below
## PR Type
<details><summary>Toggle...</summary>
What kind of change does this PR introduce?
@ -19,14 +31,11 @@ What kind of change does this PR introduce?
- [ ] Documentation changes
- [ ] Other - Please describe:
## Fixes
Please check all that apply to this PR using "x":
Issue Number:
- [ ] I have checked that this PR is not a duplicate of an existing PR (open, closed or merged)
- [ ] I added a line describing my change to CHANGELOG.md
- [ ] I have checked that this PR does not introduce a breaking change
- [ ] This PR introduces breaking changes and I have provided a detailed explanation below
## What is the current behavior?
## What is the new behavior?
## Other information
<!-- If this PR contains a breaking change, please describe the impact and solution strategy for existing applications below. -->
</details>

127
.github/workflows/deploy.yml vendored Normal file
View file

@ -0,0 +1,127 @@
name: Node.js CI
on:
push:
branches: [master]
pull_request:
branches: [master]
jobs:
lint:
name: lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- run: corepack enable
- run: yarn
- run: yarn lint
build:
needs: ['lint']
name: 'build'
strategy:
matrix:
node-version: [16.x]
os:
- ubuntu-latest
- macos-latest
- windows-latest
runs-on: ${{ matrix.os }}
continue-on-error: true
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- run: corepack enable
- uses: maxim-lobanov/setup-xcode@v1
if: startsWith(runner.os, 'mac')
with:
xcode-version: '13.1.0'
# This is gonna be hacky.
# Github made us upgrade xcode, which would force an upgrade of electron-builder to fix mac.
# But there were bugs with copyfiles / extraFiles that kept seeing duplicates erroring on ln.
# A flag USE_HARD_LINKS=false in electron-builder.json was suggested in comments, but that broke windows builds.
# So for now we'll install python2 on mac and make sure it can find it.
# Remove this after successfully upgrading electron-builder.
# HACK part 1
- uses: Homebrew/actions/setup-homebrew@master
if: startsWith(runner.os, 'mac')
# HACK part 2
- name: Install Python2
if: startsWith(runner.os, 'mac')
run: |
/bin/bash -c "$(curl -fsSL https://github.com/alfredapp/dependency-scripts/raw/main/scripts/install-python2.sh)"
echo "PYTHON_PATH=/usr/local/bin/python" >> $GITHUB_ENV
- name: Download blockchain headers
run: |
mkdir -p ./static/daemon
curl -o ./static/daemon/headers https://headers.lbry.io/blockchain_headers_latest
ls ./static/daemon
- name: Build
run: |
yarn dlx cross-env
yarn --network-timeout 600000
yarn build
env:
GH_TOKEN: ${{ secrets.GH_TOKEN_NEW }}
NOTARIZATION_USERNAME: ${{ secrets.NOTARIZATION_USERNAME }}
NOTARIZATION_PASSWORD: ${{ secrets.NOTARIZATION_PASSWORD }}
WIN_CSC_KEY_PASSWORD: ${{ secrets.WIN_CSC_KEY_PASSWORD }}
CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
WIN_CSC_LINK: https://raw.githubusercontent.com/lbryio/lbry-desktop/master/build/cert2023.pfx
CSC_LINK: https://s3.amazonaws.com/files.lbry.io/cert/osx-csc-2021-2022.p12
# UI
MATOMO_URL: https://analytics.lbry.com/
MATOMO_ID: 4
WELCOME_VERSION: 1.0
DOMAIN: lbry.tv
URL: https://lbry.tv
SHARE_DOMAIN_URL: https://open.lbry.com
SITE_TITLE: lbry.tv
SITE_NAME: lbry.tv
SHOW_ADS: false
ENABLE_COMMENT_REACTIONS: true
ENABLE_NO_SOURCE_CLAIMS: false
DEFAULT_LANGUAGE: en
KNOWN_APP_DOMAINS: lbry.tv,lbry.lat,odysee.com
CHANNEL_STAKED_LEVEL_VIDEO_COMMENTS: 0
- uses: actions/upload-artifact@v2.2.4
if: |
startsWith(runner.os, 'linux')
with:
name: Linux
path: ./dist/electron/*.*
- uses: actions/upload-artifact@v2.2.4
if: |
startsWith(runner.os, 'mac')
with:
name: macOS
path: ./dist/electron/*.*
- uses: actions/upload-artifact@v2.2.4
if: |
startsWith(runner.os, 'windows')
with:
name: Windows
path: ./dist/electron/*.*
- uses: jakejarvis/s3-sync-action@master
if: |
startsWith(runner.os, 'linux')
with:
args: --acl public-read --follow-symlinks --exclude '*' --include '*.deb' --include '*.AppImage' --include '*.dmg'
env:
AWS_S3_BUCKET: ${{ secrets.ARTIFACTS_BUCKET }}
AWS_ACCESS_KEY_ID: ${{ secrets.ARTIFACTS_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.ARTIFACTS_SECRET }}
AWS_REGION: 'us-east-1'
SOURCE_DIR: 'dist/electron'
DEST_DIR: 'app/release'

31
.gitignore vendored
View file

@ -3,8 +3,8 @@
.DS_Store
.AppleDouble
.LSOverride
/node_modules
/dist
node_modules
dist
/static/lbrynet*
/static/daemon
/static/locales
@ -15,3 +15,30 @@ package-lock.json
/build/daemon*
/lbrytv/dist/
/lbrytv/node_modules
/static/lbry-first/
/build/lbryFirst*
/web/dist/*
/web/node_modules/*
/web/.env
/web/.env.defaults
/custom/*
/custom/homepages/*
/custom/content/*
!/custom/content/default.json
!/custom/content/test.json
!/custom/homepages/.gitkeep
!/custom/homepages
!/custom/content
!/custom/homepage.example.js
!/custom/robots.disallowall
!/custom/robots.allowall
.env
!.env.ody
.env.desktop
.env.lbrytv
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/sdks
!.yarn/versions
!.yarn/releases

View file

@ -1,9 +1,7 @@
{
"linters": {
"ui/**/*.{js,jsx,scss,json}": ["prettier --write", "git add"],
"lbrytv/**/*.{js,jsx,scss,json}": ["prettier --write", "git add"],
"ui/**/*.{js,jsx}": ["eslint", "flow focus-check --color always", "git add"],
"lbrytv/**/*.{js,jsx,scss}": ["eslint", "git add"]
"ui/**/*.{js,jsx}": ["eslint", "flow focus-check --color always", "git add"]
},
"ignore": ["node_modules", "dist", "package-lock.json"]
"ignore": ["node_modules", "dist/**/*", "package-lock.json"]
}

View file

@ -1,78 +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:
- 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-2019-2020-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: S4kxB3fgQ5WtxsHopOtOJHd+yZg635r/XEf2qfoOvehhubhQVZ6qnlIuWGeGrZkV8SGOWi5buple2q7w9iw3Ac3InYG2P5ZUNJ9ANve0s1GgpBf9qAEb0IlqRbvZfM0X7KZJZGMHasEprjdCxaihlKkEudtaSvoF/8Og7OxtygQmLOu2amN/p0FYr6HY5KLFgpbGBMXloODsvsrGzcLWQyhszdRlaiHEDGmIklDjEVRW+Y5KVxdxpKu3t6R/enFpsBFF3mhrXx8yxSscjxbf4QsatMrD6ZMLU0J5xcEFroTU4JINHnz3kPEdFvs7jfCOZD6dDu5SKDBchvvfS1wllY65r8o3PySu/opCaZb7XS2j5IK9ZJSqjoW+d0519Awb/oyhmYW8GGl0XQZfCkdRrSoOR1Ww+/wZ8K8b+QHUSm99acex/ypCjJio7C7YrUfRGbCplhGHIFnhn4pJZFSQ8YVEovdSLDk3/NnriA5zJffMM+881rrXe5AjD9fya6Gm1Ha/g0HRcCtA+ocdBENkfy6wXugkE+IDyoO9NhnT+VfuqlToEt0JHD5eLgEp/YTIUD1N1CUMQD2Z/mOSdVDnMENPy+S9i8Sz4MK7wH0iTeyWJDLYbqRJBHkd66m77Tl7RnMIzL0so7JVm4AwA/VIQn2qxgPESJKktgRjI0vKZTo=

File diff suppressed because one or more lines are too long

785
.yarn/releases/yarn-3.2.0.cjs vendored Executable file

File diff suppressed because one or more lines are too long

0
.yarn/versions/17d7e90d.yml vendored Normal file
View file

0
.yarn/versions/33178102.yml vendored Normal file
View file

0
.yarn/versions/35f2125e.yml vendored Normal file
View file

0
.yarn/versions/4f9fb046.yml vendored Normal file
View file

0
.yarn/versions/5bc94294.yml vendored Normal file
View file

0
.yarn/versions/5f1212ad.yml vendored Normal file
View file

0
.yarn/versions/5f4cac99.yml vendored Normal file
View file

0
.yarn/versions/6b35c994.yml vendored Normal file
View file

0
.yarn/versions/6be5ab70.yml vendored Normal file
View file

0
.yarn/versions/86ac1afd.yml vendored Normal file
View file

0
.yarn/versions/8e384637.yml vendored Normal file
View file

0
.yarn/versions/909c3734.yml vendored Normal file
View file

0
.yarn/versions/951a8d12.yml vendored Normal file
View file

0
.yarn/versions/97e7141a.yml vendored Normal file
View file

0
.yarn/versions/ac69bc5f.yml vendored Normal file
View file

0
.yarn/versions/c6e2b914.yml vendored Normal file
View file

0
.yarn/versions/d1a18cef.yml vendored Normal file
View file

0
.yarn/versions/ec3a9ddf.yml vendored Normal file
View file

0
.yarn/versions/fc1fde84.yml vendored Normal file
View file

0
.yarn/versions/fc597c00.yml vendored Normal file
View file

7
.yarnrc.yml Normal file
View file

@ -0,0 +1,7 @@
nodeLinker: node-modules
plugins:
- path: .yarn/plugins/@yarnpkg/plugin-version.cjs
spec: "@yarnpkg/plugin-version"
yarnPath: .yarn/releases/yarn-3.2.0.cjs

View file

@ -1,10 +1,661 @@
# Change Log
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
## [0.45.0] - [Unreleased]
## [0.53.9] - [2023-2-8]
### Changed
- Updated lbrynet to [0.113.0](https://github.com/lbryio/lbry-sdk/releases/tag/v0.113.0)
## [0.53.8] - [2022-11-17]
### Fixed
- Selecting a large file in publish no longer crashes ([#7736](https://github.com/lbryio/lbry-desktop/pull/7736))
- Unfollowing unpublished channels ([#7737](https://github.com/lbryio/lbry-desktop/pull/7737))
### Changed
- Updated xcode to 13.1 and hacked a fix for release ([#7736](https://github.com/lbryio/lbry-desktop/pull/7736))
## [0.53.7] - [2022-11-10]
### Added
- 'Collections' to txo filter _community pr!_ ([#7711](https://github.com/lbryio/lbry-desktop/pull/7711))
- Swap comment servers _community pr!_ ([#7670](https://github.com/lbryio/lbry-desktop/pull/7670))
### Fixed
- Thumbnails no longer disable publish ([#7714](https://github.com/lbryio/lbry-desktop/pull/7714))
- Publishing posts were empty ([#7715](https://github.com/lbryio/lbry-desktop/pull/7715))
- Minor layout fixes _community pr!_ ([#7709](https://github.com/lbryio/lbry-desktop/pull/7709))
- Comment section buttons layout ([#7716](https://github.com/lbryio/lbry-desktop/pull/7716))
### Changed
- Removed watchman and its errors ([#7710](https://github.com/lbryio/lbry-desktop/pull/7710))
- Updated lbrynet to [0.112.0](https://github.com/lbryio/lbry-sdk/releases/tag/v0.112.0)
## [0.53.6] - [2022-10-21]
### Fixed
- Make thumbnails optional ([#7690](https://github.com/lbryio/lbry-desktop/pull/7690))
- Show downloads newest first ([#7684](https://github.com/lbryio/lbry-desktop/pull/7684))
- Only allow images in image uploader ([#7672](https://github.com/lbryio/lbry-desktop/pull/7672))
- Fixed bug with csv exports ([#7697](https://github.com/lbryio/lbry-desktop/pull/7697))
- Fixed various upload bugs including transcoding ([#7688](https://github.com/lbryio/lbry-desktop/pull/7688))
- Fallback for files with no extension ([#7704](https://github.com/lbryio/lbry-desktop/pull/7704))
### Changed
- Upgraded Electron to v17.2.0 ([#7703](https://github.com/lbryio/lbry-desktop/pull/7703))
- Upgraded Electron to v17.0.0 ([#7691](https://github.com/lbryio/lbry-desktop/pull/7691))
- Updated lbrynet to [0.111.0](https://github.com/lbryio/lbry-sdk/releases/tag/v0.111.0)
## [0.53.5] - [2022-08-26]
### Added
- Checkbox to disable background wallpaper ([#7630](https://github.com/lbryio/lbry-desktop/pull/7630))
- Handle content blocking from hub ([#7665](https://github.com/lbryio/lbry-desktop/pull/7665))
### Fixed
- Better handle decimals liquidating supports ([#7648](https://github.com/lbryio/lbry-desktop/pull/7648))
- Better handle cover uploads ([#7647](https://github.com/lbryio/lbry-desktop/pull/7647))
- Use default path when first choosing file on windows ([#7625](https://github.com/lbryio/lbry-desktop/pull/7625))
- Emoji button hover ([#7620](https://github.com/lbryio/lbry-desktop/pull/7620))
- Prevent infinite retries on thumbs ([#7618](https://github.com/lbryio/lbry-desktop/pull/7618))
- Double splash/error on app startup ([#7615](https://github.com/lbryio/lbry-desktop/pull/7615))
- App updates are now more coherent, also debs work. ([#7502](https://github.com/lbryio/lbry-desktop/pull/7502))
- Better handle many channels moderation calls at startup ([#7674](https://github.com/lbryio/lbry-desktop/pull/7674))
- Fix mobile floating viewer position ([#7677](https://github.com/lbryio/lbry-desktop/pull/7677))
### Changed
- Upgraded Electron to v15.5.5 ([#7614](https://github.com/lbryio/lbry-desktop/pull/7614))
- Upgraded to lbrynet v0.110.0 ([#7680](https://github.com/lbryio/lbry-desktop/pull/7680))
## [0.53.4] - [2022-06-10]
### Added
- Add top in language category for non-english on homepage ([#7585](https://github.com/lbryio/lbry-desktop/pull/7585))
- Auto hosting in settings and hosting first run page ([#7598](https://github.com/lbryio/lbry-desktop/pull/7598))
### Changed
- Updated lbry-sdk to [0.107.2](https://github.com/lbryio/lbry-sdk/releases/tag/v0.107.2)
### Fixed
- Better handle empty collections ([#7571](https://github.com/lbryio/lbry-desktop/pull/7571))
- Better handle thumbnails in uploads/collections ([#7574](https://github.com/lbryio/lbry-desktop/pull/7574))
- Work towards supporting collections of any claim type ([#7578](https://github.com/lbryio/lbry-desktop/pull/7578))
- Improve handling of downed custom servers on startup ([#7593](https://github.com/lbryio/lbry-desktop/pull/7593))
- Hide watch progress in related if being played ([#7606](https://github.com/lbryio/lbry-desktop/pull/7606))
- IPC disk space calls wait for daemon ready; refresh on vis. component load ([#7610](https://github.com/lbryio/lbry-desktop/pull/7610))
## [0.53.3] - [2022-04-27]
### Fixed
- Reverted lbry.tv changes that broke production login ([#7569](https://github.com/lbryio/lbry-desktop/pull/7569))
- Reverted lbry.tv changes that broke login ([#7570](https://github.com/lbryio/lbry-desktop/pull/7570))
## [0.53.2] - [2022-04-26]
### Changed
- Upgraded Yarn to Berry branch ([#7530](https://github.com/lbryio/lbry-desktop/pull/7530))
- Removed some lbrytv references ([#7560](https://github.com/lbryio/lbry-desktop/pull/7560))
- Removed some lbrytv player references ([#7552](https://github.com/lbryio/lbry-desktop/pull/7552))
### Fixed
- Repost style issues ([#7559](https://github.com/lbryio/lbry-desktop/pull/7559))
- Disappearing sidebar thumbs ([#7556](https://github.com/lbryio/lbry-desktop/pull/7556))
- Restore tags sidebar link ([#7555](https://github.com/lbryio/lbry-desktop/pull/7555))
- Playlist view link no longer crashes ([#7552](https://github.com/lbryio/lbry-desktop/pull/7552))
## [0.53.1] - [2022-04-22]
### Added
- Uploads: show placeholder when loading page _community pr!_ ([#7531](https://github.com/lbryio/lbry-desktop/pull/7531))
- Sidebar channel search _styles pr_ ([#7542](https://github.com/lbryio/lbry-desktop/pull/7542))
- Viewed content progress indicator on thumbnail part 1 ([#7541](https://github.com/lbryio/lbry-desktop/pull/7541))
- Viewed content progress indicator on thumbnail part 2 ([#7547](https://github.com/lbryio/lbry-desktop/pull/7547))
- Ability to search through publishes ([#7535](https://github.com/lbryio/lbry-desktop/pull/7535))
### Changed
- Large styles revamp following odysee _styles pr_ ([#7542](https://github.com/lbryio/lbry-desktop/pull/7542))
### Fixed
- Fix bad rerender on homepage _styles pr_ ([#7542](https://github.com/lbryio/lbry-desktop/pull/7542))
- Fix post-editor preview mode _community pr!_ ([#7532](https://github.com/lbryio/lbry-desktop/pull/7532))
- Fix send-tip default tab ([#7533](https://github.com/lbryio/lbry-desktop/pull/7533))
## [0.52.6] - [2022-04-04]
### Added
- Discover page medium duration filter ([#7506](https://github.com/lbryio/lbry-desktop/pull/7506))
- Keep last used collection for Add To ([#7491](https://github.com/lbryio/lbry-desktop/pull/7491))
- Disk space functionality on mac / windows ([#7500](https://github.com/lbryio/lbry-desktop/pull/7500))
- Enable renaming private collections ([#7519](https://github.com/lbryio/lbry-desktop/pull/7519))
### Changed
- Some upgrade modal improvements ([#7488](https://github.com/lbryio/lbry-desktop/pull/7488))
- Updated lbry-sdk to [0.107.1](https://github.com/lbryio/lbry-sdk/releases/tag/v0.107.1)
- New YRBL!; facelift for first run ([#7527](https://github.com/lbryio/lbry-desktop/pull/7527))
### Fixed
- Failed comment count increment ([#7510](https://github.com/lbryio/lbry-desktop/pull/7510))
- App crash playing media on older windows versions by updating electron ([#7509](https://github.com/lbryio/lbry-desktop/pull/7509))
- Local build failures on mac ([#7497](https://github.com/lbryio/lbry-desktop/pull/7497))
- Language change now rerenders whole app ([#7504](https://github.com/lbryio/lbry-desktop/pull/7504))
- Mac notarization ([#7518](https://github.com/lbryio/lbry-desktop/pull/7518))
- Prevent crash when deleting last comment reply ([#7526](https://github.com/lbryio/lbry-desktop/pull/7526))
## [0.52.5] - [2022-02-25]
### Fixed
- New data hosting ux ([#7493](https://github.com/lbryio/lbry-desktop/pull/7493))
- Fix markdown guide button ([#7485](https://github.com/lbryio/lbry-desktop/pull/7485))
## [0.52.4] - [2022-02-15]
### Fixed
- Fixed active channel ([#7481](https://github.com/lbryio/lbry-desktop/pull/7481))
- Remove extra search button in header ([#7482](https://github.com/lbryio/lbry-desktop/pull/7482))
## [0.52.3] - [2022-02-15]
### Fixed
- Fixed comment editing and pinning ([#7476](https://github.com/lbryio/lbry-desktop/pull/7476))
- Fixed mac header ([#7479](https://github.com/lbryio/lbry-desktop/pull/7479))
- Fixed markdown display and lbry url embedding ([#7474](https://github.com/lbryio/lbry-desktop/pull/7474))
## [0.52.2] - [2022-02-11]
### Added
- Reenabled generating thumbs from video ([#7384](https://github.com/lbryio/lbry-desktop/pull/7409))
- Brought in playlist drag and drop playlist reordering _odysee team!_ ([#7442](https://github.com/lbryio/lbry-desktop/pull/7442))
- Added duration overlays to ClaimPreview component ([#7420](https://github.com/lbryio/lbry-desktop/pull/7420))
- Some Horizontal Scroll groundwork from _odysee team!_
- Comment Emotes and Stickers and Mentions refactors from _odysee team!_ ([#7435](https://github.com/lbryio/lbry-desktop/pull/7435))
- Seek forward and back from _odysee team!_ () ([#7460](https://github.com/lbryio/lbry-desktop/pull/7460))
### Changed
- Upgraded Electron to v15 ([#7384](https://github.com/lbryio/lbry-desktop/pull/7384))
- Performance improvements in some selectors ([#7370](https://github.com/lbryio/lbry-desktop/pull/7370))
- More Header refactoring from _odysee team!_ ([#7441](https://github.com/lbryio/lbry-desktop/pull/7441))
- Header refactoring from _odysee team!_ ([#7440](https://github.com/lbryio/lbry-desktop/pull/7440))
- Data hosting ui _incomplete_ ([#7438](https://github.com/lbryio/lbry-desktop/pull/7438))
- Updated c: control tags from _odysee team!_ ([#7433](https://github.com/lbryio/lbry-desktop/pull/7433))
- Nav keycodes (alt+left) no longer navigate while textarea is focused ([#7458](https://github.com/lbryio/lbry-desktop/pull/7458))
- Improved comment-server selection ui/ux ([#7455](https://github.com/lbryio/lbry-desktop/pull/7455))
- Improved Data Hosting settings ([#7563](https://github.com/lbryio/lbry-desktop/pull/7563))
### Fixed
- Several fallout bugs from recent changes
## [0.52.1]
### Skipped patch version
## [0.52.0] - [2021-12-31]
### Compatibility
- Mac <= 10.13 (High Sierra) and Ubuntu <= 16 (Xenial) are no longer supported. If you upgrade, you will need to manually build and install your own lbrynet SDK
### Added
- Direct replying to notifications _community pr!_ ([#6935](https://github.com/lbryio/lbry-desktop/pull/6935))
- Added "Replay" option on autoplay countdown ([#6921](https://github.com/lbryio/lbry-desktop/pull/6921))
- Added "Loop" option on Lists ([#6921](https://github.com/lbryio/lbry-desktop/pull/6921))
- Added "Shuffle" option on Lists ([#6921](https://github.com/lbryio/lbry-desktop/pull/6921))
- Added Play Next/Previous buttons (with shortcuts SHIFT+N/SHIFT+P) ([#6921](https://github.com/lbryio/lbry-desktop/pull/6921))
- Separate control for autoplay next on video player ([#6921](https://github.com/lbryio/lbry-desktop/pull/6921))
- Channel Mention selection ability while creating a comment ([#7151](https://github.com/lbryio/lbry-desktop/pull/7151))
- Disk space setting under Data Hosting ([#7266](https://github.com/lbryio/lbry-desktop/pull/7266))
- Paginated 'All Playlists' page ([#7268](https://github.com/lbryio/lbry-desktop/pull/7268))
- Expanded playlist ordering tools ([#7305](https://github.com/lbryio/lbry-desktop/pull/7305))
- Setting to upgrade to alpha prerelease builds ([#7353](https://github.com/lbryio/lbry-desktop/pull/7353))
### Changed
- Changing the supported language from Filipino to Tagalog _community pr!_ ([#6951](https://github.com/lbryio/lbry-desktop/pull/6951))
- Don't show countdown to next item in list ([#6921](https://github.com/lbryio/lbry-desktop/pull/6921))
- Changed "View List" popup option to link, so can be opened on a new tab ([#6921](https://github.com/lbryio/lbry-desktop/pull/6921))
- App reorganized to remove lbry-redux and lbryinc repository dependencies ([#7240](https://github.com/lbryio/lbry-desktop/pull/7240))
- Styling cleanup for file reactions ([#7251](https://github.com/lbryio/lbry-desktop/pull/7251))
- Change share url to odysee and allow custom share url in settings ([#7258](https://github.com/lbryio/lbry-desktop/pull/7258))
- Change Sign in/up to Cloud Connect for Odysee ([#7260](https://github.com/lbryio/lbry-desktop/pull/7260))
- Upgraded to lbrynet v0.106.0 ([#7315](https://github.com/lbryio/lbry-desktop/pull/7315))
- Upgraded Electron to v11.5.0 ([#7276](https://github.com/lbryio/lbry-desktop/pull/7276))
- Cleaner Discover page filters ([#7306](https://github.com/lbryio/lbry-desktop/pull/7306))
- Scroll bar styling ([#7314](https://github.com/lbryio/lbry-desktop/pull/7314))
- Remove pages for obsolete features like invites, rewards, swap ([#7330](https://github.com/lbryio/lbry-desktop/pull/7330))
- Change file repost to modal _community pr!_ ([#7341](https://github.com/lbryio/lbry-desktop/pull/7341))
### Fixed
- Clicking on the title of a floating player will take you back to the list ([#6921](https://github.com/lbryio/lbry-desktop/pull/6921))
- Fix floating player stopping on markdown or image files ([#7073](https://github.com/lbryio/lbry-desktop/pull/7073))
- Fix list thumbnail upload ([#7074](https://github.com/lbryio/lbry-desktop/pull/7074))
- Stream Key is now hidden _community pr!_ ([#7127](https://github.com/lbryio/lbry-desktop/pull/7127))
- Fix playlist preview thumbnail ([#7178](https://github.com/lbryio/lbry-desktop/pull/7178)
- Fixed “Your Account” popup on mobile ([#7172](https://github.com/lbryio/lbry-desktop/pull/7172))
- Fix disable-support for comments ([#7245](https://github.com/lbryio/lbry-desktop/pull/7245))
- Fix Electron taking over .html files on linux ([#7291](https://github.com/lbryio/lbry-desktop/pull/7291))
- Fix floating player play/pause on drag _community pr!_ ([#7339](https://github.com/lbryio/lbry-desktop/pull/7339))
- Fix card dropdown menus triggering menu actions _community pr!_ ([#7335](https://github.com/lbryio/lbry-desktop/pull/7335))
## [0.51.2] - [2021-08-20]
### Added
- Show currently active playing item on playlist _community pr!_ ([#6453](https://github.com/lbryio/lbry-desktop/pull/6453))
- Add watch later to hover action for last used playlist on popup _community pr!_ ([#6274](https://github.com/lbryio/lbry-desktop/pull/6274))
- Add confirmation on comment removal _community pr!_ ([#6563](https://github.com/lbryio/lbry-desktop/pull/6563))
- Show on content page if a file is part of a playlist already _community pr!_([#6393](https://github.com/lbryio/lbry-desktop/pull/6393))
- Add filtering to playlists ([#6905](https://github.com/lbryio/lbry-desktop/pull/6905))
### Changed
- Use Canonical Url for copy link ([#6500](https://github.com/lbryio/lbry-desktop/pull/6500))
- Use better icon for copy link ([#6485](https://github.com/lbryio/lbry-desktop/pull/6485))
- Comments load paginated ([#6390](https://github.com/lbryio/lbry-desktop/pull/6390))
- Improve twitter share _community pr!_ ([#6690](https://github.com/lbryio/lbry-desktop/pull/6690))
- Update lighthouse search api _community pr!_ ([#6731](https://github.com/lbryio/lbry-desktop/pull/6731))
- Update sockety api _community pr!_ ([#6747](https://github.com/lbryio/lbry-desktop/pull/6747))
- Use resolve for OG metadata instead of chainquery _community pr!_ ([#6787](https://github.com/lbryio/lbry-desktop/pull/6787))
- Improved clickability of notification links _community pr!_ ([#6711](https://github.com/lbryio/lbry-desktop/pull/6711))
### Fixed
- App now supports '#' and ':' for claimId separator ([#6496](https://github.com/lbryio/lbry-desktop/pull/6496))
- Fix "exact match" being applied to Recommended ([#6460](https://github.com/lbryio/lbry-desktop/pull/6460))
- Fix upload button on creator analytics _community pr!_ ([#6458](https://github.com/lbryio/lbry-desktop/pull/6458))
- Prevent sidebar shortcut activation on textarea _community pr!_ ([#6454](https://github.com/lbryio/lbry-desktop/pull/6454))
- Improve accessibility and some minor css fixes _community pr!_ ([#6470](https:/github.com/lbryio/lbry-desktop/pull/6470))
- Fix drag / drop publish issues for web users _community pr!_ ([#6466](https://github.com/lbryio/lbry-desktop/pull/6466))
- Fix yarn copyenv on windows _community pr!_ ([#6702](https://github.com/lbryio/lbry-desktop/pull/6702))
- Fix unnecessary livestream api calls in channel page _community pr!_ ([#6652](https://github.com/lbryio/lbry-desktop/pull/6652))
- Fix desktop app fails to resolve deep links _community pr!_ ([#6779](https://github.com/lbryio/lbry-desktop/pull/6779))
- Fix wrong release date on GoogleVideo metadata _community pr!_ ([#6787](https://github.com/lbryio/lbry-desktop/pull/6787))
- Fix markdown line breaking mid word _community pr!_ ([#6805](https://github.com/lbryio/lbry-desktop/pull/6805))
- Added \ and = to reserved symbol warning _community pr!_ ([#6733](https://github.com/lbryio/lbry-desktop/pull/6733))
- Don't break words in chat + fix text overflow past 3 dot menu _community pr!_ ([#6602](https://github.com/lbryio/lbry-desktop/pull/6602))
- Fix embed shows wrong OG metadata _community pr!_ ([#6815](https://github.com/lbryio/lbry-desktop/pull/6815))
- Fix OG: "Unparsable data structure - Truncated Unicode character" _community pr!_ ([#6839](https://github.com/lbryio/lbry-desktop/pull/6839))
- Fix Paid embed warning overlay redirection button now links to odysee _community pr!_ ([#6819](https://github.com/lbryio/lbry-desktop/pull/6819))
- Fix comment section redirection to create channel _community pr!_ ([#6557](https://github.com/lbryio/lbry-desktop/pull/6557))
## [0.51.1] - [2021-06-26]
### Added
### Changed
### Fixed
- Enable sign up on desktop ([#6071](https://github.com/lbryio/lbry-desktop/issues/6071))
## [0.51.0] - [2021-06-26]
### Added
- Private and Publishable Playlists ([#6157](https://github.com/lbryio/lbry-desktop/pull/6157))
- Channel thumbnails in following side menu ([#6193](https://github.com/lbryio/lbry-desktop/pull/6193))
- Web is now PWA app ([#6120](https://github.com/lbryio/lbry-desktop/pull/6120))
- Send a tip with your comment ([#5920](https://github.com/lbryio/lbry-desktop/issues/5920))
- Search for tags in search dropdown ([#5876](https://github.com/lbryio/lbry-desktop/issues/5876))
- Japanese, Afrikaans, Filipino, Thai and Vietnamese language support ([#5684](https://github.com/lbryio/lbry-desktop/issues/5684))
- Brazilian-Portuguese language support ([#5900](https://github.com/lbryio/lbry-desktop/issues/5900))
- Highlight comments made by content owner _community pr!_ ([#5744](https://github.com/lbryio/lbry-desktop/pull/5744))
- Ability to report infringing content directly from the application ([#5808](https://github.com/lbryio/lbry-desktop/pull/5808))
- Re-added ability to export wallet transactions ([#5899](https://github.com/lbryio/lbry-desktop/pull/5899))
- 24-hour clock setting _community pr!_ ([#5820](https://github.com/lbryio/lbry-desktop/pull/5820))
- "Related" (recommendations) section: added option to view more from current creator _community pr!_ ([#5847](https://github.com/lbryio/lbry-desktop/pull/5847))
- Wallet: ability to swap cryptocurrency into LBC ([#5654](https://github.com/lbryio/lbry-desktop/pull/5654))
- Wallet: ability to send LBC directly to a user through a name or URL search _community pr!_ ([#5990](https://github.com/lbryio/lbry-desktop/pull/5990))
- Publish: ability to edit the Release Date field ([#6049](https://github.com/lbryio/lbry-desktop/pull/6049))
- Creator Settings: ability to mute specific words in comments ([#5934](https://github.com/lbryio/lbry-desktop/pull/5934))
- Creator Settings: ability to disable comments + assign moderators ([#6199](https://github.com/lbryio/lbry-desktop/pull/6199))
- Additional options in context-menu _community pr!_ ([#6106](https://github.com/lbryio/lbry-desktop/pull/6106))
### Changed
- Keyboard shortcut additions and changes _community pr!_ ([#5717](https://github.com/lbryio/lbry-desktop/pull/5717))
- Removed the 10k character-limit when editing _Posts_ ([#5719](https://github.com/lbryio/lbry-desktop/pull/5719))
- Improved search functionality (more filters, infinite-scroll, etc.) ([#5742](https://github.com/lbryio/lbry-desktop/pull/5742))
- Removed google related section ads ([#6312](https://github.com/lbryio/lbry-desktop/pull/6312))
- Debounce and min characters on wunderbar search ([#6319](https://github.com/lbryio/lbry-desktop/pull/6319))
- Don't use optimizer for gif thumbnails ([#6320](https://github.com/lbryio/lbry-desktop/pull/6320))
- Upgraded [LBRY SDK 0.99.0](https://github.com/lbryio/lbry/releases/tag/v0.99.0)
### Fixed
- Lazy-load claim images to improve app responsiveness ([#5795](https://github.com/lbryio/lbry-desktop/issues/5795))
- Fix display of upload date and view count on smaller screens ([#5822](https://github.com/lbryio/lbry-desktop/issues/5822))
- Autoplay looping to a previous video or itself ([#5711](https://github.com/lbryio/lbry-desktop/pull/5711))
- Autoplay not working in mini-player mode ([#5716](https://github.com/lbryio/lbry-desktop/pull/5716))
- Edited claim accidentally moved to 'Anonymous' ([#5767](https://github.com/lbryio/lbry-desktop/pull/5767))
- Squished "Upload Date" and "View Count" on smaller screens _community pr!_ ([#5823](https://github.com/lbryio/lbry-desktop/pull/5823))
- Home and End key not working in search bar ([#5867](https://github.com/lbryio/lbry-desktop/pull/5867))
- Unable to buy paid-Images or Posts ([#6114](https://github.com/lbryio/lbry-desktop/pull/6114))
## [0.50.2] - [2021-04-2]
### Changed
- Disable PDFs until security issue is fixed
## [0.50.1] - [2021-03-18]
### Fixed
- Upgrade modal extended beyond the height of the app ([#5709](https://github.com/lbryio/lbry-desktop/pull/5709))
## [0.50.0] - [2021-03-18]
### Added
- New moderation tools: block & mute ([#5572](https://github.com/lbryio/lbry-desktop/pull/5572))
- Improved markdown file styling ([#5659](https://github.com/lbryio/lbry-desktop/pull/5659))
- Mass tip unlock ([#5409](https://github.com/lbryio/lbry-desktop/pull/5387))
- Zoomable image viewer in Markdown (posts and comments) _community pr!_ ([#5387](https://github.com/lbryio/lbry-desktop/pull/5387))
- Enable PDF Viewer in App _community pr!_ ([#2903](https://github.com/lbryio/lbry-desktop/issues/2903))
- The search bar now handles both lbry.tv and Odysee links regardless of which site the user is in ([#5604](https://github.com/lbryio/lbry-desktop/issues/5604))
- The video/audio player's control tooltip is now localized and includes hints for keyboard shortcuts ([#5584](https://github.com/lbryio/lbry-desktop/issues/5584))
- Finnish and Norwegian language support ([#5532](https://github.com/lbryio/lbry-desktop/issues/5532))
### Changed
- Updated lbry-sdk to [0.92.0](https://github.com/lbryio/lbry-sdk/releases/tag/v0.92.0)
- Re-enable PDF Viewer in desktop app _community pr!_ ([#5420](https://github.com/lbryio/lbry-desktop/issues/5420))
### Fixed
- Player doesn't stop playing when editing a comment that includes a video url _community pr!_ ([#5384](https://github.com/lbryio/lbry-desktop/pull/5384))
- Main video/audio playback stopped every time a comment is edited or deleted ([#5606](https://github.com/lbryio/lbry-desktop/pull/5606))
- Winning search result not working correctly with mature content enabled _community pr!_ ([#5388](https://github.com/lbryio/lbry-desktop/pull/5388))
- Home/End key not working as expected in Search Bar ([#5642](https://github.com/lbryio/lbry-desktop/pull/5642))
- Fixes to inline videos in comments _community pr!_ ([#5389](https://github.com/lbryio/lbry-desktop/pull/5389))
- Search page crashing on some results ([#5428](https://github.com/lbryio/lbry-desktop/pull/5428))
- Long channel names caused comments to extend underneath related content _community pr!_ ([#5431](https://github.com/lbryio/lbry-desktop/pull/5431))
- Keep floating player always visible _community pr!_ ([#5448](https://github.com/lbryio/lbry-desktop/pull/5448))
- LBRY Desktop incorrectly setting itself as the default HTML-file application in Linux ([#5617](https://github.com/lbryio/lbry-desktop/pull/5617))
- All notifications being cleared when only 1 is clicked ([#5619](https://github.com/lbryio/lbry-desktop/pull/5619))
- Markdown editor's "Create Link (Ctrl-K)" action now directly highlights the URL stub when the label is present ([#5585](https://github.com/lbryio/lbry-desktop/issues/5585))
## [0.49.4] - [2021-01-26]
### Added
- Theater mode ([#5255](https://github.com/lbryio/lbry-desktop/pull/5255))
- Repost flow improvements ([#5293](https://github.com/lbryio/lbry-desktop/pull/5293))
- Desktop: Enable 'Alt+Left/Right' for history navigation _community pr!_ ([#5203](https://github.com/lbryio/lbry-desktop/pull/5203))
- Make playback rate setting persistent _community pr!_ ([#5310](https://github.com/lbryio/lbry-desktop/pull/5310))
- Make UI zoom setting persistent _community pr!_ ([#5385](https://github.com/lbryio/lbry-desktop/pull/5385))
### Changed
- No longer supporting 32 bit windows
- Updated lbry-sdk to [0.88.0](https://github.com/lbryio/lbry-sdk/releases/tag/v0.88.0)
- Improve how spendable balance is displayed ([#5409](https://github.com/lbryio/lbry-desktop/pull/5276))
### Fixed
- Lots of bug fixes
- Fix bug where subscriptions could be lost ([#5302](https://github.com/lbryio/lbry-desktop/pull/5302))
## [0.49.3] - [2020-12-30]
### Added
- Turn timestamps in a video's description and comments into links _community pr!_ ([#5156](https://github.com/lbryio/lbry-desktop/pull/5156))
- Mobile video player enhancements and the ability to tap on the left and right edges to seek _community pr!_ ([#5119](https://github.com/lbryio/lbry-desktop/pull/5119))
- Added tile layout for tags page [a0ec5](https://github.com/lbryio/lbry-desktop/commit/a0ec5097d93496b92736e1682f9fb2d20dadf425).
### Changed
- Repost option now has a full page and can be triggered from search results (click "View competing uploads for ...").
### Fixed
- [Upgrade SDK to 0.87.0](https://github.com/lbryio/lbry-sdk/releases/tag/v0.87.0). Forces wallet resync which fixes balance issues for some users and improves memory usage.
## [0.49.1] - [2020-12-15]
### Fixed
- Sidenav unable to open when on the file page
- Fix "open external" button to open files on your OS
## [0.49.0] - [2020-12-10]
### Added
- Better search suggestions ([#5124](https://github.com/lbryio/lbry-desktop/pull/5124))
- Inline video player in comments/markdown posts ([#4894](https://github.com/lbryio/lbry-desktop/pull/4894))
- Better handling of winning claim + top page improvements ([#4944](https://github.com/lbryio/lbry-desktop/pull/4944))
- Comment pinning ([#4895](https://github.com/lbryio/lbry-desktop/pull/4895))
- Comment reactions ([#4895](https://github.com/lbryio/lbry-desktop/pull/4895))
- Language search ([#4907](https://github.com/lbryio/lbry-desktop/pull/4907))
- Content notifications ([#4981](https://github.com/lbryio/lbry-desktop/pull/4981))
- Customize scrollbar to fit the dark theme _community pr!_ ([#5056](https://github.com/lbryio/lbry-desktop/pull/5056))
- Keyboard shortcut: adjust video playback-rate using ">" and "<" _community pr!_ ([#5075](https://github.com/lbryio/lbry-desktop/pull/5075))
### Changed
- Updated lbry-sdk to [0.86.1](https://github.com/lbryio/lbry-sdk/releases/tag/v0.86.1)
- Refactored file/lbc details UI ([#4937](https://github.com/lbryio/lbry-desktop/pull/4937))
### Fixed
- Loss of subscriptions on startup ([#4882](https://github.com/lbryio/lbry-desktop/pull/4882))
- Fix lost search results when a timeout occurs _community pr!_ ([#4996](https://github.com/lbryio/lbry-desktop/pull/4996))
- Can't slide volume slider in pop-sout mode _community pr!_ ([#4913](https://github.com/lbryio/lbry-desktop/pull/4913))
- Hide mouse cursor when video is playing _community pr!_ ([#5046](https://github.com/lbryio/lbry-desktop/pull/5046))
## [0.48.2] - [2020-10-16]
### Changed
- Disable snapshot thumbnail upload on desktop until Electron issue is fixed ([#4905](https://github.com/lbryio/lbry-desktop/pull/4905))
### Fixed
- Files not opening externally properly ([#4908](https://github.com/lbryio/lbry-desktop/pull/4908))
## [0.48.1] - [2020-10-14]
### Added
- Add Publish Preview dialog _community pr!_ ([#4620](https://github.com/lbryio/lbry-desktop/pull/4620))
- "ctrl/cmd+enter" can now be used to directly submit a comment ([#4809](https://github.com/lbryio/lbry-desktop/pull/4809))
- Deeper comment thread depth ([#4868](https://github.com/lbryio/lbry-desktop/pull/4868))
### Changed
- Updated lbry-sdk to [0.83.0](https://github.com/lbryio/lbry-sdk/releases/tag/v0.83.0)
- Upgrade electron to v9 ([#4824](https://github.com/lbryio/lbry-desktop/pull/4824))
- Fade out expandable areas (e.g. comments, file description) when collapsed _community pr!_ ([#4818](https://github.com/lbryio/lbry-desktop/pull/4818))
### Fixed
- Videos started as muted on initial desktop session _community pr!_ ([#4864](https://github.com/lbryio/lbry-desktop/pull/4864))
## [0.48.0] - [2020-09-23]
### Added
- New File Page layout + make sidebar collapsable ([#4648](https://github.com/lbryio/lbry-desktop/pull/4648))
- Block mature content when accessed directly from URL _community pr!_ ([#4560](https://github.com/lbryio/lbry-desktop/pull/4560))
- You can now add LBRY as a search engine in your browser (via OpenSearch) _community pr!_ ([#4640](https://github.com/lbryio/lbry-desktop/pull/4640))
- In-app text and markdown publishing and editing _community pr!_ ([#4591](https://github.com/lbryio/lbry-desktop/pull/4591))
- New comment stats on creator analytics page _jiggytom certified_ ([#4715](https://github.com/lbryio/lbry-desktop/pull/4715))
### Changed
- Move file properties over thumbnails for more space-saving ([#4632](https://github.com/lbryio/lbry-desktop/pull/4632))
### Fixed
- Fix sluggish Back button when navigation back to channels with lots of comments _community pr!_ ([#4576](https://github.com/lbryio/lbry-desktop/pull/4576))
- Fix 'Related' and 'Comments' section lazy-load not working in some scenarios _community pr!_ ([#4586](https://github.com/lbryio/lbry-desktop/pull/4586))
- Fix comment-creation failure if you have recently deleted a channel _community pr!_ ([#4630](https://github.com/lbryio/lbry-desktop/pull/4630))
- Tip Modal: Don't do final submit when the intention is to create New Channel _community pr!_ ([#4629](https://github.com/lbryio/lbry-desktop/pull/4629))
- Fix related + search results loading slowly ([#4657](https://github.com/lbryio/lbry-desktop/pull/4657))
- Fix partially untranslated text in the Upgrade Modal _community pr!_ ([#4722](https://github.com/lbryio/lbry-desktop/pull/4722))
- Fix floating player being paused after dragging _community pr!_ ([#4710](https://github.com/lbryio/lbry-desktop/pull/4710))
- Web: Fix 'Download' not triggering until second attempt _community pr!_ ([#4721](https://github.com/lbryio/lbry-desktop/pull/4721))
- Floating player: Stay within screen when window is resized _community pr!_([#4750](https://github.com/lbryio/lbry-desktop/pull/4750))
- App crash when including % sign in search _community pr!_([#4753](https://github.com/lbryio/lbry-desktop/pull/4753))
- Fix markdown editor "preview" not working when `<iframe>`s are present _community pr!_([#4767](https://github.com/lbryio/lbry-desktop/pull/4767))
- First comment on claim not showing up immeditately ([#4747](https://github.com/lbryio/lbry-desktop/pull/4747))
- Fix "Password updated successfully" kept showing up _community pr!_([#4766](https://github.com/lbryio/lbry-desktop/pull/4766))
- Fix "Price=free" giving 0 results in Following query _community pr!_ ([#4489](https://github.com/lbryio/lbry-desktop/pull/4489))
## [0.47.1] - [2020-07-23]
### Added
- Allow zooming on Desktop _community pr!_ ([#4513](https://github.com/lbryio/lbry-desktop/pull/4513))
- Show "YT Creator" label in File Page as well _community pr!_ ([#4523](https://github.com/lbryio/lbry-desktop/pull/4523))
- Add option to retry video stream on failure _community pr!_ ([#4541](https://github.com/lbryio/lbry-desktop/pull/4541))
- Allow blocking channels from comments ([#4557](https://github.com/lbryio/lbry-desktop/pull/4557))
### Changed
- Updated lbry-sdk to [0.79.1](https://github.com/lbryio/lbry-sdk/releases/tag/v0.79.1)
### Fixed
- Fix 'transcoding' checkbox state when switching file types _community pr!_ ([#4529](https://github.com/lbryio/lbry-desktop/pull/4529))
- Fix channel file-search not available in mobile _community pr!_ ([#4527](https://github.com/lbryio/lbry-desktop/pull/4527))
- New Channel: Fix incorrect GUI configuration at entry _community pr!_ ([#4545](https://github.com/lbryio/lbry-desktop/pull/4545))
- Hide blocked channels in comments ([#4557](https://github.com/lbryio/lbry-desktop/pull/4557))
## [0.47.0] - [2020-07-13]
### Added
- Add ability to sign supports ([#4382](https://github.com/lbryio/lbry-desktop/pull/4382))
- Add "tap to unmute" button for videos that start with audio muted _community pr!_ ([#4365](https://github.com/lbryio/lbry-desktop/pull/4365))
- Allow upgrade bar to be dismissed per session _community pr!_ ([#4413](https://github.com/lbryio/lbry-desktop/pull/4413))
- Pause the "autoplay next" timer when performing long operations such as Tipping, Supporting or commenting _community pr!_ ([4419](https://github.com/lbryio/lbry-desktop/pull/4419))
- Email notification management page ([#4409](https://github.com/lbryio/lbry-desktop/pull/4409))
- Publish Page improvements to prevent accidental overwrites of existing claims _community pr!_ ([#4416](https://github.com/lbryio/lbry-desktop/pull/4416))
- Option to remove abandoned claims from Blocked channels page _community pr!_ ([#4433](https://github.com/lbryio/lbry-desktop/pull/4433))
- New channel create/edit page ([#4445](https://github.com/lbryio/lbry-desktop/pull/4445))
- Add dialog to copy various types of links for a claim _community pr!_ ([#4474](https://github.com/lbryio/lbry-desktop/pull/4474))
- Add password reset link to settings page for logged in users _community pr!_ ([#4473](https://github.com/lbryio/lbry-desktop/pull/4473))
### Changed
- Updated lbry-sdk to [0.77.0](https://github.com/lbryio/lbry-sdk/releases/tag/v0.77.0)
- Merged Tip and Support Buttons into one UI on file page ([#4382](https://github.com/lbryio/lbry-desktop/pull/4382))
### Fixed
- Fix report page layout ([#4384](https://github.com/lbryio/lbry-desktop/pull/4384))
- Fix language-change not applied to components immediately _community pr!_ ([#4437](https://github.com/lbryio/lbry-desktop/pull/4437))
- Fix scenarios where new search results are not appearing when scrolled to the bottom _community pr!_ ([4424](https://github.com/lbryio/lbry-desktop/pull/4424))
- Fix incorrect creator status shown when navigating between channels _community pr!_ ([#4438](https://github.com/lbryio/lbry-desktop/pull/4438))
- Fix unresolved translations in the Splash Screen _community pr!_ ([#4440](https://github.com/lbryio/lbry-desktop/pull/4440))
- Fix Notification page button being incorrectly disabled by 0 blocked channels _community pr!_ ([#4449](https://github.com/lbryio/lbry-desktop/pull/4449))
- Fix "Refresh" on Publish page not showing the loading indicator when pressed _community pr!_ ([#4451](https://github.com/lbryio/lbry-desktop/pull/4451))
- Fix video duration not appearing on Mobile with enough width _community pr!_ ([#4452](https://github.com/lbryio/lbry-desktop/pull/4452))
- Fix video transcode setting not reflected correctly (MP3 incorrectly transcoded to MP4) _community pr!_ ([#4458](https://github.com/lbryio/lbry-desktop/pull/4458))
- Fix scrolling glitch when results are exactly the page size _community pr!_ ([#4521](https://github.com/lbryio/lbry-desktop/pull/4521))
- Fix search results not appearing when scrolling due to long Tags or Following list in the navigation bar _community pr!_ ([#4465](https://github.com/lbryio/lbry-desktop/pull/4465))
- Fix unmuted state lost or reverted when playing a new video _community pr!_ ([#4483](https://github.com/lbryio/lbry-desktop/pull/4483))
## [0.46.2] - [2020-06-10]
### Added
- Make library view mode (Downloads|Purchases) persistent _community pr!_ ([#4363](https://github.com/lbryio/lbry-desktop/pull/4363))
### Changed
- Updated lbry-sdk to [0.76.0](https://github.com/lbryio/lbry-sdk/releases/tag/v0.76.0)
### Fixed
- Overflow issue when editing replies _community pr!_ ([#4356](https://github.com/lbryio/lbry-desktop/pull/4356))
- Comments wrapping in the middle of a word _community pr!_ ([#4354](https://github.com/lbryio/lbry-desktop/pull/4354))
- Translation improvements _community pr!_ ([multiple PR's](https://github.com/lbryio/lbry-desktop/pulls?q=is%3Apr+author%3ATigerxWood+sort%3Aupdated-desc+is%3Amerged))
## [0.46.1] - [2020-06-08]
### Fixed
- Fix download button not working on claim previews ([1dcf16b](https://github.com/lbryio/lbry-desktop/commit/1dcf16b0b4dffff6335e8fdf988d38673243e014))
- Fix app version tracking ([f11d068](https://github.com/lbryio/lbry-desktop/commit/f11d06817f0dd75a9c33a7a60150d25d56b66ba0))
## [0.46.0] - [2020-06-08]
### Added
- Can now purchase LBC inside of the app ([#4294](https://github.com/lbryio/lbry-desktop/pull/4294))
- Allow video sharing with start timestamp _community pr!_ ([#4142](https://github.com/lbryio/lbry-desktop/pull/4142))
- Expose reflector status for publishes ([#4148](https://github.com/lbryio/lbry-desktop/pull/4148))
- More tooltip help texts _community pr!_ ([#4185](https://github.com/lbryio/lbry-desktop/pull/4185))
- Add footer on web ([#4159](https://github.com/lbryio/lbry-desktop/pull/4159))
- Support drag-and-drop file publishing _community pr!_ ([#4170](https://github.com/lbryio/lbry-desktop/pull/4170))
- Add advanced editor for comments _community pr!_ ([#4224](https://github.com/lbryio/lbry-desktop/pull/4224))
- Paid content improvements ([#4234](https://github.com/lbryio/lbry-desktop/pull/4234))
- Add status-bar to display a link's destination _community pr!_ ([#4259](https://github.com/lbryio/lbry-desktop/pull/4259))
- Add Catalan language support ([#4313](https://github.com/lbryio/lbry-desktop/pull/4313))
### Changed
- Updated lbry-sdk to [0.75.0](https://github.com/lbryio/lbry-sdk/releases/tag/v0.75.0)
- Use "grab" cursor on floating player to make it easier to tell you can drag it _community pr!_ ([#4201](https://github.com/lbryio/lbry-desktop/pull/4201))
- Confirm age before viewing mature content on web ([#4233](https://github.com/lbryio/lbry-desktop/pull/4233))
- Pause thumbnail gifs until hover ([#4256](https://github.com/lbryio/lbry-desktop/pull/4256))
### Fixed
- Channel selector alignment on creator analytics page _community pr!_ ([#4157](https://github.com/lbryio/lbry-desktop/pull/4157))
- Fix inconsistent relative-date string for claims, comments, etc. _community pr!_ ([#4172](https://github.com/lbryio/lbry-desktop/pull/4172))
- Error opening certain files with special characters in name #2777 _community pr!_ ([#4161](https://github.com/lbryio/lbry-desktop/pull/4161))
- Comic-book file page shows download button first, and then viewer after download _community pr!_ ([#4161](https://github.com/lbryio/lbry-desktop/pull/4161))
- Only show "start at" on share modal for video/audio _community pr!_ ([#4194](https://github.com/lbryio/lbry-desktop/pull/4194))
- Clear media position after video has played to the end _community pr!_ ([#4193](https://github.com/lbryio/lbry-desktop/pull/4193))
- Text casing on publish page _community pr!_ ([#4186](https://github.com/lbryio/lbry-desktop/pull/4186))
- Some strings not translating properly _community pr!_ ([#4238](https://github.com/lbryio/lbry-desktop/pull/4238))
- Prevents page from scrolling while pressing the spacebar when the miniplayer is out of focus _community pr!_ ([#4204](https://github.com/lbryio/lbry-desktop/pull/4204))
- Fixed some string translations _community pr!_ ([#4238](https://github.com/lbryio/lbry-desktop/pull/4238))
- Fixed Publish page card double border _community pr!_ ([#4254](https://github.com/lbryio/lbry-desktop/pull/4254)
## [0.45.1] - [2020-05-06]
### Added
- Channel content preview on custom invite link page _community pr!_ ([#4040](https://github.com/lbryio/lbry-desktop/pull/4040))
- Add Tooltips To Channel Action Buttons _community pr!_ ([#4090](https://github.com/lbryio/lbry-desktop/pull/4090))
- Reenabled repost hiding with corresponding repost email suppression ([#4025](https://github.com/lbryio/lbry-desktop/pull/4025))
- Enabled embeds in markdown posts ([#4060](https://github.com/lbryio/lbry-desktop/pull/4060))
- Save media position in video viewer _community pr!_ ([#4104](https://github.com/lbryio/lbry-desktop/pull/4104))
### Changed
- Updated lbry-sdk to [0.72.0](https://github.com/lbryio/lbry-sdk/releases/tag/v0.72.0)
- Show 'elapsed/total' instead of countdown timer on video player _community pr!_ ([#4049](https://github.com/lbryio/lbry-desktop/pull/4049))
- Modified app strings about wallet backup, to emphasize that the wallet also controls claims _community pr!_ ([#4056](https://github.com/lbryio/lbry-desktop/pull/4056))
- Add confirmation when sending tip respecting "Purchase and Tip Confirmation" (formerly "Purchase Confirmation") setting, now visible in lbry.tv _community pr!_ ([#4051](https://github.com/lbryio/lbry-desktop/pull/4051))
- Hyperlinks in markdown now open in new tab _community pr!_ ([#4111](https://github.com/lbryio/lbry-desktop/pull/4111))
### Fixed
- Better deleted text file handling - will now redownload the file ([#4109](https://github.com/lbryio/lbry-desktop/pull/4109))
- Fixed the title of the subscribe button getting out of sync on fast hover movements _community pr!_ ([#4054](https://github.com/lbryio/lbry-desktop/pull/4054))
- Handle errors better on the creator analytics page and add a new card for stats on users most recent content ([#4043](https://github.com/lbryio/lbry-desktop/pull/4043))
- Add fallback when images fail to load _community pr!_ ([#4019](https://github.com/lbryio/lbry-desktop/pull/4019))
- Fetch new content when clicking LBRY logo while on homepage _community pr!_ ([#4031](https://github.com/lbryio/lbry-desktop/pull/4031))
- Aligns text across browsers and desktop _community pr!_ ([#4050](https://github.com/lbryio/lbry-desktop/pull/4050))
- Reselect channel as "replying as" when switching channels _community pr!_ ([#3926](https://github.com/lbryio/lbry-desktop/issues/3926))
## [0.45.0] - [2020-04-21]
### Added
@ -1218,7 +1869,7 @@ This release includes a breaking change that will reset many of your settings. T
### Removed
- Removed the label "Max Purchase Price" from settings page. It was redundant.
- Removed the label "Max purchase price" from settings page. It was redundant.
- Unused old files from previous commit(9c3d633)
### Fixed

View file

@ -1,21 +1,19 @@
# Contribute to LBRY
**First:** if you're unsure or afraid of anything, just ask or submit the issue or pull request anyways. You won't be yelled at for giving your best effort. The worst that can happen is that you'll be politely asked to change something. We appreciate any sort of contributions, and don't want a wall of rules to get in the way of that.
However, for those individuals who want a bit more guidance on the best way to contribute to the project, read on. This document will cover what we're looking for. By addressing all the points we're looking for, it raises the chances we can quickly merge or address your contributions.
## TL;DR?
* [Here](https://github.com/lbryio/lbry-desktop/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22+no%3Aassignee)
- [Here](https://github.com/lbryio/lbry-desktop/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22+no%3Aassignee)
is a list of help wanted issues.
* Comment on an issue to let us know if you are going to work on it, don't take an issue that someone reserved less than 3 days ago.
* Submit a pull request and get paid in LBC.
* Don't hesitate to contact us with any questions or comments.
* [Check out this video for a quickstart guide to running and developing the desktop app](https://spee.ch/7da73fc508ffc4ff8b2711e3c3950110430b0c5f/LBRYAppDesign.mp4).
- Comment on an issue to let us know if you are going to work on it, don't take an issue that someone reserved less than 3 days ago.
- Submit a pull request and get paid in LBC.
- Don't hesitate to contact us with any questions or comments.
## Contents
- [Choose an Issue](#choose-an-issue)
- [Code Overview](#code-overview)
- [Libraries](#libraries)
@ -38,20 +36,20 @@ receives contributions from individuals outside the core team -- such as yoursel
To make contributing as easy and rewarding as possible, we have instituted the following system:
* Anyone can view all issues in the system by clicking on the
- Anyone can view all issues in the system by clicking on the
[Issues](https://github.com/lbryio/lbry-desktop/issues) button at the top of the page. Feel free to
add an issue if you think we have missed something (and you might earn some LBC in the process
because we do tip people for reporting bugs).
* Once on the [Issues](https://github.com/lbryio/lbry-desktop/issues) page, a potential contributor can
- Once on the [Issues](https://github.com/lbryio/lbry-desktop/issues) page, a potential contributor can
filter issues by the
[Help Wanted](https://github.com/lbryio/lbry-desktop/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22+no%3Aassignee)
label to see a curated list of suggested issues with which community members can help.
* Every
- Every
[Help Wanted](https://github.com/lbryio/lbry-desktop/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22+no%3Aassignee)
issue is ranked on a scale from zero to four.
| Level | Description |
| ------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------- |
| ---------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- |
| [**level 0**](https://github.com/lbryio/lbry-desktop/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22+label%3A%22level%3A+0%22+no%3Aassignee) | Typos and text edits -- a tech-savvy non-programmer can fix these. |
| [**level 1**](https://github.com/lbryio/lbry-desktop/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22+label%3A%22level%3A+1%22+no%3Aassignee) | Programming issues that require little knowledge of how the LBRY app works. |
| [**level 2**](https://github.com/lbryio/lbry-desktop/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22+label%3A%22level%3A+2%22+no%3Aassignee) | Issues of average difficulty that require the developer to dig into how the app works a little bit. |
@ -68,7 +66,7 @@ Although all contributions should have good UX, the [UX label, when applied in c
## Code Overview
The entry point for this application is [`src/platforms/electron/index.js`](src/platforms/electron/index.js).
The entry point for this application is [`electron/index.js`](https://github.com/lbryio/lbry-desktop/blob/master/electron/index.js).
This application is primarily written in JavaScript and is built on [Electron](https://electronjs.org)
while utilizing [React](https://reactjs.org) and [Redux](https://redux.js.org) for UI and
@ -80,7 +78,7 @@ our styling rules and code best practices.
### Libraries
This project uses [lbry-redux](https://github.com/lbryio/lbry-redux) and [lbryionc](https://github.com/lbryio/lbryinc) to share Redux and LBRY API specific code with [lbry-android](https://github.com/lbryio/lbry-android) and other LBRY apps. Over time, more Redux code that is suitable to be shared will be moved into lbry-redux. If modifying Redux code, you may be asked to make some of your changes in lbry-redux rather than lbry-desktop. The steps to work with lbry-redux locally can be found [here](https://github.com/lbryio/lbry-redux#local-development).
This project uses [lbry-redux](https://github.com/lbryio/lbry-redux) and [lbryionc](https://github.com/lbryio/lbryinc) to share Redux and LBRY API specific code with other LBRY apps. Over time, more Redux code that is suitable to be shared will be moved into lbry-redux. If modifying Redux code, you may be asked to make some of your changes in lbry-redux rather than lbry-desktop. The steps to work with lbry-redux locally can be found [here](https://github.com/lbryio/lbry-redux#local-development).
### Flow
@ -140,15 +138,15 @@ Editor integrations are available [here](https://prettier.io/docs/en/editors.htm
There are a few tools integrated to the project that will ease the process of debugging:
* [Chrome DevTools](https://developer.chrome.com/devtools)
* Also available for the main process as a [remote target](chrome://inspect/#devices).
* [Electron Devtron](https://electronjs.org/devtron)
* [React DevTools](https://github.com/facebook/react-devtools)
* [Redux DevTools](https://github.com/gaearon/redux-devtools)
- [Chrome DevTools](https://developer.chrome.com/devtools)
- Also available for the main process as a [remote target](chrome://inspect/#devices).
- [Electron Devtron](https://electronjs.org/devtron)
- [React DevTools](https://github.com/facebook/react-devtools)
- [Redux DevTools](https://github.com/gaearon/redux-devtools)
## Submit a Pull Request
* After deciding what to work on, a potential contributor can
- After deciding what to work on, a potential contributor can
[fork](https://help.github.com/articles/fork-a-repo/) this repository, make his or her changes,
and submit a
[pull request](https://help.github.com/articles/creating-a-pull-request-from-a-fork/). A
@ -157,12 +155,12 @@ There are a few tools integrated to the project that will ease the process of de
manner and, therefore, not begin working on anything reserved (or updated) within the last 3 days.
If someone has been officially assigned an issue via GitHub's assignment system, it is also not
available. Contributors are encouraged to ask if they have any questions about issue availability.
* The [changelog](https://github.com/lbryio/lbry-desktop/blob/master/CHANGELOG.md) should be updated to
- The [changelog](https://github.com/lbryio/lbry-desktop/blob/master/CHANGELOG.md) should be updated to
include a reference to the fix/change/addition. See previous entries for format.
* Once the pull request is visible in the LBRY repo, a LBRY team member will review it and make sure
- Once the pull request is visible in the LBRY repo, a LBRY team member will review it and make sure
it is up to our standards. At this point, the contributor may have to change his or her code based
on our suggestions and comments.
* Then, upon a satisfactory review of the code, we will merge it and send the contributor a tip (in
- Then, upon a satisfactory review of the code, we will merge it and send the contributor a tip (in
LBC) for the contribution.
We are dedicated to being fair and friendly in this process. In **general**, level 4 issues will be
@ -192,7 +190,7 @@ will earn you an extra 50 LBC on top of what we would otherwise tip you.
# Get in Touch
| Name | Role | Discord | Email |
| --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ------------
| -------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ------------- |
| [Tom](https://github.com/tzarebczan) | Community manager. He knows more than anyone about the app and all of its flaws. Reach out to him with any questions about how the app works, if a bug has been reported, or if a feature should be requested. | jiggytom | tom@lbry.com |
| [Sean](https://github.com/seanyesmunt) | The primary engineer working on the app. Feel free to ask any questions about the code. | sean | sean@lbry.com |

View file

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

View file

@ -1,6 +1,6 @@
MIT License
Copyright (c) 2017-2020 LBRY Inc.
Copyright (c) 2017-2021 LBRY Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal

View file

@ -1,10 +1,12 @@
<h1 align=center>
<img align=center width="40%" src="https://miro.medium.com/max/5198/1*bTVuL2THG_0mpwmE-n7Ezg.png" />
</h1>
<img width="40%" src="https://miro.medium.com/max/5198/1*bTVuL2THG_0mpwmE-n7Ezg.png" />
<h1 align=center>LBRY App - https://lbry.tv/</h1>
# LBRY App
This repo contains the UI code that powers the official LBRY desktop app. The LBRY app is a graphical browser for the decentralized content marketplace provided by the
[LBRY](https://lbry.com) protocol. It is essentially the
[lbry daemon](https://github.com/lbryio/lbry) bundled with a UI using
[Electron](https://electron.atom.io/).
<h2 align=center>
<a href="https://github.com/lbryio/lbry-desktop/blob/master/LICENSE" title="MIT licensed">
<img alt="npm" src="https://img.shields.io/dub/l/vibe-d.svg?style=flat">
</a>
@ -17,20 +19,17 @@
<a href="https://chat.lbry.com">
<img alt="GitHub contributors" src="https://img.shields.io/discord/362322208485277697.svg?logo=discord" alt="chat on Discord">
</a>
</h2>
<h1 align=center>
<h2>
<a href="https://forthebadge.com" title="forthebadge">
<img alt="forthebadge" src="https://forthebadge.com/images/badges/60-percent-of-the-time-works-every-time.svg">
</a>
</h1>
<a href="https://forthebadge.com" title="forthebadge">
<img alt="forthebadge" src="https://forthebadge.com/images/badges/approved-by-veridian-dynamics.svg">
</a>
</h2>
The LBRY app is a graphical browser for the decentralized content marketplace provided by the
[LBRY](https://lbry.com) protocol. It is essentially the
[lbry daemon](https://github.com/lbryio/lbry) bundled with a UI using
[Electron](https://electron.atom.io/).
![App GIF](https://spee.ch/@lbrynews:0/lbry-joule.gif)
![App GIF](https://spee.ch/ba/lbry-joule.gif)
## Table of Contents
@ -64,56 +63,35 @@ To install from source or make changes to the application, continue to the next
**Community maintained** builds for Arch Linux and Flatpak are available, see below. These installs will need to be updated manually as the in-app update process only supports Debian installs at this time.
_Note: If coming from a deb install, the directory structure is different and you'll need to [migrate data](https://lbry.com/faq/backup-data)._
| | Flatpak | Arch | Raspberry Pi |
| -------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ------------------------------------------- |
| Latest Release | [FlatHub Page](https://flathub.org/apps/details/io.lbry.lbry-app) | [AUR Package](https://aur.archlinux.org/packages/lbry-app-bin/) | [Pi Installer](https://lbrypi.com) |
| Maintainers | [@kcSeb](https://keybase.io/kcseb) | [@kcSeb](https://keybase.io/kcseb)/[@TimurKiyivinski](https://github.com/TimurKiyivinski) | [@Madiator2011](https://github.com/kodxana) |
| | Flatpak | Arch | Nixpkgs | ARM/ARM64 |
| -------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ------------------------------------------- |
| Latest Release | [FlatHub Page](https://flathub.org/apps/details/io.lbry.lbry-app) | [AUR Package](https://aur.archlinux.org/packages/lbry-desktop-bin/) | [Nixpkgs](https://search.nixos.org/packages?channel=unstable&show=lbry&query=lbry) | [Build Guide](https://lbry.tv/@LBRYarm:5) |
| Maintainers | N/A | [@RubenKelevra](https://github.com/RubenKelevra) | [@Enderger](https://github.com/enderger) | [@Madiator2011](https://github.com/kodxana) |
## Usage
Double click the installed application to interact with the LBRY network.
Start the installed application to interact with the LBRY network.
## Running from Source
You can run the web version (lbry.tv), the electron app, or both at the same time.
#### Prerequisites
- [Git](https://git-scm.com/downloads)
- [Node.js](https://nodejs.org/en/download/) (v10 required)
- [Node.js](https://nodejs.org/en/download/) (v16 required)
- [Corepack](https://nodejs.org/dist/latest-v17.x/docs/api/corepack.html) `npm i -g corepack` (Included in nodejs 14 LTS, 16 LTS and 17)
- [Yarn](https://yarnpkg.com/en/docs/install)
1. Clone (or [fork](https://help.github.com/articles/fork-a-repo/)) this repository: `git clone https://github.com/lbryio/lbry-desktop`
2. Change directory into the cloned repository: `cd lbry-desktop`
3. Install the dependencies: `yarn`
3. If corepack is not enabled, run `sudo corepack enable` (the sudo is necessary for system-wide installation, if you use container, nvm etc... you might not be forced to use it)
4. Install the dependencies: `yarn`
#### Run the electron app
`yarn compile:electron` (this is only needed the first time you run the app)
`yarn dev`
- If you want to build and launch the production app you can run `yarn build`. This will give you an executable inside the `/dist` folder. We use [electron-builder](https://github.com/electron-userland/electron-builder) to create distributable packages.
#### Run the web app
`yarn compile:web` (this is only needed the first time you run the app)
`yarn dev:web`
- This uses webpack-dev-server and includes hot-reloading. If you want to debug the [web server we use in production](https://github.com/lbryio/lbry-desktop/blob/master/src/platforms/web/server.js) you can run `yarn dev:web-server`. This starts a server at `localhost:1337` and does not include hot reloading.
#### Run both at the same time
Run the two commands above in separate terminal windows
```
yarn dev
// in another terminal window
yarn dev:web
```
#### 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.
@ -132,8 +110,9 @@ This project is MIT licensed. For the full license, see [LICENSE](LICENSE).
## Security
We take security seriously. Please contact security@lbry.com regarding any security issues. Our PGP key is [here](https://keybase.io/lbry/key.asc) if you need it.
We take security seriously. Please contact security@lbry.com regarding any security issues. Our PGP key is [here](https://lbry.com/faq/pgp-key) if you need it. Previous versions up to v0.50.2 were signed by [Sean Yesmunt](https://keybase.io/seanyesmunt/key.asc).
New Releases are signed by [Jessop Breth](https://keybase.io/jessopb/key.asc).
## Contact
The primary contact for this project is [@seanyesmunt](https://github.com/seanyesmunt).
The primary contact for this project is [@jessopb](https://github.com/jessopb).

View file

@ -1,2 +0,0 @@
- name: Danger JS Action
uses: danger/danger-js@9.1.8

View file

@ -7,6 +7,8 @@ module.exports = api => {
'import-glob',
'@babel/plugin-transform-runtime',
['@babel/plugin-proposal-decorators', { decoratorsBeforeExport: true }],
['@babel/plugin-proposal-private-methods', { 'loose': false }],
['@babel/plugin-proposal-private-property-in-object', { 'loose': false }],
'@babel/plugin-transform-flow-strip-types',
'@babel/plugin-proposal-class-properties',
'react-hot-loader/babel',

View file

@ -4,17 +4,14 @@ const fs = require('fs');
const path = require('path');
var electron_notarize = require('electron-notarize');
module.exports = async function(params) {
// Only notarize the app on Mac OS only.
if (process.platform !== 'darwin') {
module.exports = async function() {
if (process.env.RUNNER_OS !== 'macOS') {
return;
}
console.log('afterSign hook triggered', params);
// Same appId in electron-builder.
let appId = 'io.lbry.LBRY';
const appId = 'io.lbry.LBRY';
const appPath = path.resolve(__dirname, '../dist/electron/mac/LBRY.app');
let appPath = path.join(params.appOutDir, `${params.packager.appInfo.productFilename}.app`);
if (!fs.existsSync(appPath)) {
throw new Error(`Cannot find application at: ${appPath}`);
}
@ -25,8 +22,8 @@ module.exports = async function(params) {
await electron_notarize.notarize({
appBundleId: appId,
appPath: appPath,
appleId: process.env.appleId,
appleIdPassword: process.env.appleIdPassword,
appleId: process.env.NOTARIZATION_USERNAME,
appleIdPassword: process.env.NOTARIZATION_PASSWORD,
});
} catch (error) {
console.error(error);

BIN
build/cert-2021-2022.pfx Normal file

Binary file not shown.

BIN
build/cert2023.pfx Normal file

Binary file not shown.

View file

@ -71,7 +71,7 @@ const downloadDaemon = targetPlatform =>
})
)
.then(() => {
console.log('\x1b[32msuccess\x1b[0m Daemon downloaded!');
console.log(`\x1b[32msuccess\x1b[0m Daemon downloaded! - v${daemonVersion}`);
if (hasDaemonVersion) {
del(daemonVersionPath);
}

View file

@ -0,0 +1,91 @@
const path = require('path');
const fs = require('fs');
const packageJSON = require('../package.json');
const fetch = require('node-fetch');
const decompress = require('decompress');
const os = require('os');
const del = require('del');
const downloadLBRYFirst = targetPlatform =>
new Promise((resolve, reject) => {
const lbryFirstURLTemplate = packageJSON.lbrySettings.LBRYFirstUrlTemplate;
const lbryFirstVersion = packageJSON.lbrySettings.LBRYFirstVersion;
const lbryFirstDir = path.join(__dirname, '..', packageJSON.lbrySettings.LBRYFirstDir);
let lbryFirstFileName = packageJSON.lbrySettings.LBRYFirstFileName;
const currentPlatform = os.platform();
let lbryFirstPlatform = process.env.TARGET || targetPlatform || currentPlatform;
if (lbryFirstPlatform === 'linux') lbryFirstPlatform = 'Linux';
if (lbryFirstPlatform === 'mac' || lbryFirstPlatform === 'darwin') lbryFirstPlatform = 'Darwin';
if (lbryFirstPlatform === 'win32' || lbryFirstPlatform === 'windows') {
lbryFirstPlatform = 'Windows';
lbryFirstFileName += '.exe';
}
const lbryFirstFilePath = path.join(lbryFirstDir, lbryFirstFileName);
const lbryFirstVersionPath = path.join(__dirname, 'lbryFirst.ver');
const tmpZipPath = path.join(__dirname, '..', 'dist', 'lbryFirst.zip');
const lbryFirstURL = lbryFirstURLTemplate.replace(/LBRYFIRSTVER/g, lbryFirstVersion).replace(/OSNAME/g, lbryFirstPlatform);
console.log('URL:', lbryFirstURL);
// If a lbryFirst and lbryFirst.ver exists, check to see if it matches the current lbryFirst version
const hasLbryFirstDownloaded = fs.existsSync(lbryFirstFilePath);
const hasLbryFirstVersion = fs.existsSync(lbryFirstVersionPath);
let downloadedLbryFirstVersion;
if (hasLbryFirstVersion) {
downloadedLbryFirstVersion = fs.readFileSync(lbryFirstVersionPath, 'utf8');
}
if (hasLbryFirstDownloaded && hasLbryFirstVersion && downloadedLbryFirstVersion === lbryFirstVersion) {
console.log('\x1b[34minfo\x1b[0m LbryFirst already downloaded');
resolve('Done');
} else {
console.log('\x1b[34minfo\x1b[0m Downloading lbryFirst...');
fetch(lbryFirstURL, {
method: 'GET',
headers: {
'Content-Type': 'application/zip',
},
})
.then(response => response.buffer())
.then(
result =>
new Promise((newResolve, newReject) => {
const distPath = path.join(__dirname, '..', 'dist');
const hasDistFolder = fs.existsSync(distPath);
if (!hasDistFolder) {
fs.mkdirSync(distPath);
}
fs.writeFile(tmpZipPath, result, error => {
if (error) return newReject(error);
return newResolve();
});
})
)
.then(() => del(`${lbryFirstFilePath}*`))
.then()
.then(() =>
decompress(tmpZipPath, lbryFirstDir, {
filter: file => path.basename(file.path) === lbryFirstFileName,
})
)
.then(() => {
console.log('\x1b[32msuccess\x1b[0m LbryFirst downloaded!');
if (hasLbryFirstVersion) {
del(lbryFirstVersionPath);
}
fs.writeFileSync(lbryFirstVersionPath, lbryFirstVersion, 'utf8');
resolve('Done');
})
.catch(error => {
console.error(`\x1b[31merror\x1b[0m LbryFirst download failed due to: \x1b[35m${error}\x1b[0m`);
reject(error);
});
}
});
downloadLBRYFirst();

View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
<key>com.apple.security.network.client</key>
<true/>
<key>com.apple.security.network.server</key>
<true/>
<key>com.apple.security.cs.disable-library-validation</key>
<true/>
</dict>
</plist>

View file

@ -46,10 +46,12 @@ if (!fs.existsSync(downloadPath)) {
function cleanUpAfterSigning() {
fs.unlinkSync(fileToSign);
deleteFolderRecursive(downloadPath);
console.log('Good to go captain');
process.exit(0);
}
function signFile() {
console.log('Signing file with hashes using keybase...');
console.log('Logging in file with hashes using keybase...');
// All files are hashed and added to hashes.txt
// Sign it with keybase
const fileName = `LBRY_${versionToSign}_sigs.asc`;
@ -124,16 +126,17 @@ function downloadAssets() {
.then(({ data }) => {
const release_id = data.id;
return octokit.repos.listAssetsForRelease({
return octokit.repos.listReleases({
owner: 'lbryio',
repo: 'lbry-desktop',
release_id,
});
})
.then(({ data }) => {
fileCountToDownload = data.length;
data
const releaseToDownload = data.filter(releaseData => releaseData.tag_name === versionToSign)[0];
const assets = releaseToDownload.assets;
fileCountToDownload = assets.length;
assets
.map(({ browser_download_url, name }) => ({ download_url: browser_download_url, name }))
.forEach(({ name, download_url }) => {
const fileName = path.resolve(__dirname, `../dist/releaseDownloads/${name}`);

View file

@ -1,16 +1,82 @@
// On Web, this will find .env.defaults and optional .env in web/
// On Desktop App, this will find .env.defaults and optional .env in root dir
require('dotenv-defaults').config({ silent: false });
const config = {
WEBPACK_WEB_PORT: 9090,
WEBPACK_ELECTRON_PORT: 9091,
WEB_SERVER_PORT: 1337,
DOMAIN: 'lbry.tv',
URL: 'https://lbry.tv',
SITE_TITLE: 'lbry.tv',
LBRY_TV_API: 'https://api.lbry.tv',
LBRY_TV_STREAMING_API: 'https://lbryplayer.xyz',
WELCOME_VERSION: 1.0,
MATOMO_URL: process.env.MATOMO_URL,
MATOMO_ID: process.env.MATOMO_ID,
WEBPACK_WEB_PORT: process.env.WEBPACK_WEB_PORT,
WEBPACK_ELECTRON_PORT: process.env.WEBPACK_ELECTRON_PORT,
WEB_SERVER_PORT: process.env.WEB_SERVER_PORT,
LBRY_WEB_API: process.env.LBRY_WEB_API, //api.na-backend.odysee.com',
LBRY_WEB_PUBLISH_API: process.env.LBRY_WEB_PUBLISH_API,
LBRY_API_URL: process.env.LBRY_API_URL, //api.lbry.com',
LBRY_WEB_STREAMING_API: process.env.LBRY_WEB_STREAMING_API, //player.odysee.com
LBRY_WEB_BUFFER_API: process.env.LBRY_WEB_BUFFER_API,
SEARCH_SERVER_API: process.env.SEARCH_SERVER_API,
CLOUD_CONNECT_SITE_NAME: process.env.CLOUD_CONNECT_SITE_NAME,
COMMENT_SERVER_API: process.env.COMMENT_SERVER_API,
COMMENT_SERVER_NAME: process.env.COMMENT_SERVER_NAME,
SOCKETY_SERVER_API: process.env.SOCKETY_SERVER_API,
WELCOME_VERSION: process.env.WELCOME_VERSION,
DOMAIN: process.env.DOMAIN,
SHARE_DOMAIN_URL: process.env.SHARE_DOMAIN_URL,
URL: process.env.URL,
THUMBNAIL_CDN_URL: process.env.THUMBNAIL_CDN_URL,
SITE_TITLE: process.env.SITE_TITLE,
SITE_NAME: process.env.SITE_NAME,
SITE_DESCRIPTION: process.env.SITE_DESCRIPTION,
SITE_HELP_EMAIL: process.env.SITE_HELP_EMAIL,
// SOCIAL MEDIA
TWITTER_ACCOUNT: process.env.TWITTER_ACCOUNT,
// LOGO
LOGO_TITLE: process.env.LOGO_TITLE,
FAVICON: process.env.FAVICON,
LOGO: process.env.LOGO,
LOGO_TEXT_LIGHT: process.env.LOGO_TEXT_LIGHT,
LOGO_TEXT_DARK: process.env.LOGO_TEXT_DARK,
AVATAR_DEFAULT: process.env.AVATAR_DEFAULT,
MISSING_THUMB_DEFAULT: process.env.MISSING_THUMB_DEFAULT,
// OG
OG_TITLE_SUFFIX: process.env.OG_TITLE_SUFFIX,
OG_HOMEPAGE_TITLE: process.env.OG_HOMEPAGE_TITLE,
OG_IMAGE_URL: process.env.OG_IMAGE_URL,
// MASCOT
YRBL_HAPPY_IMG_URL: process.env.YRBL_HAPPY_IMG_URL,
YRBL_SAD_IMG_URL: process.env.YRBL_SAD_IMG_URL,
LOGIN_IMG_URL: process.env.LOGIN_IMG_URL,
SITE_CANONICAL_URL: process.env.SITE_CANONICAL_URL,
DEFAULT_LANGUAGE: process.env.DEFAULT_LANGUAGE,
AUTO_FOLLOW_CHANNELS: process.env.AUTO_FOLLOW_CHANNELS,
UNSYNCED_SETTINGS: process.env.UNSYNCED_SETTINGS,
// ENABLE FEATURES
ENABLE_COMMENT_REACTIONS: process.env.ENABLE_COMMENT_REACTIONS === 'true',
ENABLE_FILE_REACTIONS: process.env.ENABLE_FILE_REACTIONS === 'true',
ENABLE_CREATOR_REACTIONS: process.env.ENABLE_CREATOR_REACTIONS === 'true',
ENABLE_NO_SOURCE_CLAIMS: process.env.ENABLE_NO_SOURCE_CLAIMS === 'true',
ENABLE_PREROLL_ADS: process.env.ENABLE_PREROLL_ADS === 'true',
CHANNEL_STAKED_LEVEL_VIDEO_COMMENTS: process.env.CHANNEL_STAKED_LEVEL_VIDEO_COMMENTS,
CHANNEL_STAKED_LEVEL_LIVESTREAM: process.env.CHANNEL_STAKED_LEVEL_LIVESTREAM,
WEB_PUBLISH_SIZE_LIMIT_GB: process.env.WEB_PUBLISH_SIZE_LIMIT_GB,
LOADING_BAR_COLOR: process.env.LOADING_BAR_COLOR,
SIMPLE_SITE: process.env.SIMPLE_SITE === 'true',
SHOW_ADS: process.env.SHOW_ADS === 'true',
PINNED_URI_1: process.env.PINNED_URI_1,
PINNED_LABEL_1: process.env.PINNED_LABEL_1,
PINNED_URI_2: process.env.PINNED_URI_2,
PINNED_LABEL_2: process.env.PINNED_LABEL_2,
KNOWN_APP_DOMAINS: process.env.KNOWN_APP_DOMAINS ? process.env.KNOWN_APP_DOMAINS.split(',') : [],
STRIPE_PUBLIC_KEY: process.env.STRIPE_PUBLIC_KEY,
ENABLE_UI_NOTIFICATIONS: process.env.ENABLE_UI_NOTIFICATIONS === 'true',
ENABLE_MATURE: process.env.ENABLE_MATURE === 'true',
CUSTOM_HOMEPAGE: process.env.CUSTOM_HOMEPAGE === 'true',
SHOW_TAGS_INTRO: process.env.SHOW_TAGS_INTRO === 'true',
LIGHTHOUSE_DEFAULT_TYPES: process.env.LIGHTHOUSE_DEFAULT_TYPES,
BRANDED_SITE: process.env.BRANDED_SITE,
};
config.URL_LOCAL = `http://localhost:${config.WEB_SERVER_PORT}`;
config.URL_DEV = `http://localhost:${config.WEBPACK_WEB_PORT}`;
config.URL_LOCAL = `http://localhost:${config.WEB_SERVER_PORT}`;
module.exports = config;

306
custom/homepage.example.js Normal file
View file

@ -0,0 +1,306 @@
// @flow
/*
Creating custom homepage items
1) in web/ folder, copy `.env.defaults` to `.env` and make CUSTOM_HOMEPAGE=true
2) copy this file to homepage.js
3) Create item objects
{
title, // how the title link displays
link, // where the title link goes
options // what search results populate the homepage item
}
4) rowData.push(item) for each item in the order you want them
Item object examples:
Specific Channel
const LATEST_FROM_%CHANNEL% = {
title: 'Latest From @%channel%',
link: `/@%channelName%:%canonicalId%`,
options: {
orderBy: ['release_time'],
pageSize: 4,
channelIds: ['%channelId%'],
},
};
More complex List of channels with description icon filtering by fee_amount etc are possible
SOME_CHANNEL_IDS = ['channelId1', 'channelId2']
SOME_TAG = '
const SOME_CHANNELS_ITEM = {
title: '#aTitle',
link: `/$/${PAGES.DISCOVER}?${CS.TAGS_KEY}=aTag&fee_amount=>0&${CS.CLAIM_TYPE}=${CS.CLAIM_STREAM}&${
CS.CHANNEL_IDS_KEY
}=${SOME_CHANNEL_IDS.join(',')}`,
help: (
<div className="claim-grid__help">
<Icon
icon={ICONS.HELP}
tooltip
customTooltipText={__(
'Some tooltip text.'
)}
/>
</div>
),
options: { // search options
feeAmount: '>0',
claimType: ['stream'],
tags: ['tagOne', 'tagTwo'],
pageSize: 8,
channelIds: SOME_CHANNEL_IDS,
},
};
*/
import * as PAGES from 'constants/pages';
import * as CS from 'constants/claim_search';
import * as ICONS from 'constants/icons';
import { parseURI } from 'lbry-redux';
import moment from 'moment';
import { toCapitalCase } from 'util/string';
import React from 'react';
import Icon from 'component/common/icon';
export type RowDataItem = {
title: string,
link?: string,
help?: any,
options?: {},
};
export default function GetHomePageRowData(
authenticated: boolean,
showPersonalizedChannels: boolean,
showPersonalizedTags: boolean,
subscribedChannels: Array<Subscription>,
followedTags: Array<Tag>,
showIndividualTags: boolean
) {
let rowData: Array<RowDataItem> = [];
const individualTagDataItems: Array<RowDataItem> = [];
const PAID_BETA_CHANNEL_IDS_KEY = [
'4ee7cfaf1fc50a6df858ed0b99c278d633bccca9',
'5af39f818f668d8c00943c9326c5201c4fe3c423',
'cda9c4e92f19d6fe0764524a2012056e06ca2055',
'760da3ba3dd85830a843beaaed543a89b7a367e7',
'40c36948f0da072dcba3e4833e90f71e16de78be',
'e8f68563d242f6ac9784dcbc41dd86c28a9391d6',
'7236fc5d2783ea7314d9076ae6c8a250e3992d1a',
'8627af93c1a1219150f06b698f4b33e6ed2f1c1e',
'c5b0b17838df2f6c31162f64d55f60f34ae8bfc6',
'f576d5dba905fc179de880c3fe3eb3281ea74f59',
'97dd77c93c9603cbb2583f3589f7f5a6c92baa43',
'f399d873e0c37cf24de9569b5f22bbb30a5c6709',
'dba870d0620d41b2b9a152c961e0c06cf875ccfc',
'ca1fd651c9d14bf2e5088bb2aa0146ee7aeb2ae0',
'50ad846a4b1543b847bf3fdafb7b45f6b2f5844c',
'e09ff5abe9fb44dd0dd0576894a6db60a6211603',
'7b6f7517f6b816827d076fa0eaad550aa315a4e7',
'2068452c41d8da3bd68961335da0072a99258a1a',
'3645cf2f5d0bdac0523f945be1c3ff60758f7845',
'4da85b12244839d6368b9290f1619ff9514ab2a8',
'4ad942982e43326c7700b1b6443049b3cfd82161',
'55304f219244abf82f684f759cc0c7769242f3b4',
'8f42e5b592bb7f7a03f4a94a86a41b1236bb099f',
'e2a014d885a48f5be2dc6409610996337312facb',
'c18996ca488753f714d36d4654715927c1d7f9c2',
'ebc4214424cfa683a7046e1f794fea1e44788d84',
'06b6d6d6a893fb589ec2ded948f5122856921ed5',
'07e4546674268fc0222b2ca22d31d0549dc217ee',
'060940e41973d4f7f16d72a2733138e931c35f41',
'f8d6eccd887c9cebd36b1d42aa349279b7f5c3ed',
'68098b8426f967b8d04cc566348b5c128823219e',
'2bfe6cdb24a21bdc1b76fb7c416edd50e9e85945',
'1f9bb08bfa2259629f4aaa9ed40f97e9a41b6fa1',
'2f20148495612946675fe1c8ea99171e4d950b81',
'bc6938fa1e09e840056c2e831abf9664f397c472',
'2a6194792beac5130641e932b5ac6e5a99b5ca4f',
'185ba2bd547a5e4a77d29fe6c1484f47db5e058f',
'29cc7f6081268eaa5b3f2946e0cd0b952a94812c',
'ffdc62ac2f7549398d3aca9d2119e83d80d588d5',
'd7a4d2808074b0c55d6b239f69d90e7a4930f943',
'd58aa4a0b2f6c2504c3abce8de3f1afb71800acc',
'77ae23dc7eb8a75609881d4548a79e4935a89d37',
'f79bce8a60fbece671f6265adc39f6469f3b9b8c',
'051995fdf0af634e4911704057a551e9392e62b1',
'b0e489f986c345aef23c4a48d91cbcf5a6fdb9ac',
'825aa21c8c0bda4ded3e69a69238763c8cfcc13b',
'49389450b1241f5d8f4c8c4271a3eb56bba33965',
'f3b9973e1725ecb50da3e6fa4d47343c98ef0382',
'321b33d22c8e24ef207e3f357a4573f6a56611f3',
'20d694ada07e740c6fa43a8c324cb7d6e362b5ee',
'cf7792c2a37d0d76aaaff84aff0b99a8c791429d',
'8316ac90764fedf3147799b7b81a6575a9cc398e',
'8972a1bd06de5186e5e89292b05aac8aaa817791',
'5da63df97c8255ae94a88940695b8471657dd5a1',
'f3da2196b5151570d980b34d311ee0973225a68e',
'7644fdb8342624f6c647c79de25610801573fa68',
];
const TV_PAID_BETA_ROW = {
title: '#lbrytvpaidbeta',
link: `/$/${PAGES.DISCOVER}?${CS.TAGS_KEY}=lbrytvpaidbeta&fee_amount=>0&${CS.CLAIM_TYPE}=${CS.CLAIM_STREAM}&${
CS.CHANNEL_IDS_KEY
}=${PAID_BETA_CHANNEL_IDS_KEY.join(',')}`,
help: (
<div className="claim-grid__help">
<Icon
icon={ICONS.HELP}
tooltip
customTooltipText={__(
'Check your rewards page to see if you qualify for paid content reimbursement. Only content in this section qualifies.'
)}
/>
</div>
),
options: {
feeAmount: '>0',
claimType: ['stream'],
tags: ['lbrytvpaidbeta', 'lbry tvpaidbeta'],
pageSize: 8,
channelIds: PAID_BETA_CHANNEL_IDS_KEY,
},
};
if (followedTags.length) {
followedTags.forEach((tag: Tag) => {
individualTagDataItems.push({
title: `Trending for #${toCapitalCase(tag.name)}`,
link: `/$/${PAGES.DISCOVER}?t=${tag.name}`,
options: {
pageSize: 4,
tags: [tag.name],
claimType: ['stream'],
},
});
});
}
const RECENT_FROM_FOLLOWING = {
title: 'Recent From Following',
link: `/$/${PAGES.CHANNELS_FOLLOWING}`,
options: {
orderBy: ['release_time'],
releaseTime:
subscribedChannels.length > 20
? `>${Math.floor(
moment()
.subtract(6, 'months')
.startOf('week')
.unix()
)}`
: `>${Math.floor(
moment()
.subtract(1, 'year')
.startOf('week')
.unix()
)}`,
pageSize: subscribedChannels.length > 3 ? 8 : 4,
channelIds: subscribedChannels.map((subscription: Subscription) => {
const { channelClaimId } = parseURI(subscription.uri);
return channelClaimId;
}),
},
};
const TOP_CONTENT_TODAY = {
title: 'Top Content from Today',
link: `/$/${PAGES.DISCOVER}?${CS.ORDER_BY_KEY}=${CS.ORDER_BY_TOP}&${CS.FRESH_KEY}=${CS.FRESH_DAY}`,
options: {
pageSize: showPersonalizedChannels || showPersonalizedTags ? 4 : 8,
orderBy: ['effective_amount'],
claimType: ['stream'],
releaseTime: `>${Math.floor(
moment()
.subtract(1, 'day')
.startOf('day')
.unix()
)}`,
},
};
const TOP_CHANNELS = {
title: 'Top Channels On LBRY',
link: `/$/${PAGES.DISCOVER}?claim_type=channel&${CS.ORDER_BY_KEY}=${CS.ORDER_BY_TOP}&${CS.FRESH_KEY}=${CS.FRESH_ALL}`,
options: {
orderBy: ['effective_amount'],
claimType: ['channel'],
},
};
const TRENDING_CLASSICS = {
title: 'Trending Classics',
link: `/$/${PAGES.DISCOVER}?${CS.ORDER_BY_KEY}=${CS.ORDER_BY_TRENDING}&${CS.FRESH_KEY}=${CS.FRESH_WEEK}`,
options: {
pageSize: 4,
claimType: ['stream'],
releaseTime: `<${Math.floor(
moment()
.subtract(6, 'month')
.startOf('day')
.unix()
)}`,
},
};
const TRENDING_ON_LBRY = {
title: 'Trending On LBRY',
link: `/$/${PAGES.DISCOVER}`,
options: {
pageSize: showPersonalizedChannels || showPersonalizedTags ? 4 : 8,
},
};
const TRENDING_FOR_TAGS = {
title: 'Trending For Your Tags',
link: `/$/${PAGES.TAGS_FOLLOWING}`,
options: {
tags: followedTags.map(tag => tag.name),
claimType: ['stream'],
},
};
const LATEST_FROM_LBRY = {
title: 'Latest From @lbry',
link: `/@lbry:3f`,
options: {
orderBy: ['release_time'],
pageSize: 4,
channelIds: ['3fda836a92faaceedfe398225fb9b2ee2ed1f01a'],
},
};
const LATEST_FROM_LBRYCAST = {
title: 'Latest From @lbrycast',
link: `/@lbrycast:4`,
options: {
orderBy: ['release_time'],
pageSize: 4,
channelIds: ['4c29f8b013adea4d5cca1861fb2161d5089613ea'],
},
};
if (showPersonalizedChannels) rowData.push(RECENT_FROM_FOLLOWING);
if (showPersonalizedTags && !showIndividualTags) rowData.push(TRENDING_FOR_TAGS);
if (showPersonalizedTags && showIndividualTags) {
individualTagDataItems.forEach((item: RowDataItem) => {
rowData.push(item);
});
}
if (authenticated) {
rowData.push(TV_PAID_BETA_ROW);
}
rowData.push(TOP_CONTENT_TODAY);
rowData.push(TRENDING_ON_LBRY);
if (!showPersonalizedChannels) rowData.push(TOP_CHANNELS);
if (!authenticated) {
rowData.push(TV_PAID_BETA_ROW);
}
rowData.push(TRENDING_CLASSICS);
rowData.push(LATEST_FROM_LBRYCAST);
rowData.push(LATEST_FROM_LBRY);
return rowData;
}

View file

2
custom/robots.allowall Normal file
View file

@ -0,0 +1,2 @@
User-agent: *
Allow: /

View file

@ -0,0 +1,2 @@
User-agent: *
Disallow: /

View file

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

View file

@ -29,6 +29,10 @@
"from": "./static/font",
"to": "static/font",
"filter": ["**/*"]
},
{
"from": "./static/app-update.yml",
"to": "app-update.yml"
}
],
"publish": [
@ -37,7 +41,11 @@
}
],
"mac": {
"category": "public.app-category.entertainment"
"category": "public.app-category.entertainment",
"entitlements": "build/entitlements.mac.plist",
"entitlementsInherit": "build/entitlements.mac.plist",
"hardenedRuntime" : true,
"gatekeeperAssess": false
},
"dmg": {
"iconSize": 128,
@ -77,7 +85,7 @@
}
},
"deb": {
"depends": ["gconf2", "gconf-service", "libnotify4", "libappindicator1", "libxtst6", "libnss3"]
"depends": ["gconf2", "gconf-service", "libnotify4", "libxtst6", "libnss3"]
},
"nsis": {
"perMachine": true,
@ -88,7 +96,7 @@
"target": [
{
"target": "nsis",
"arch": ["x64", "ia32"]
"arch": ["x64"]
}
]
},

View file

@ -1,7 +1,7 @@
import path from 'path';
import fs from 'fs';
import { spawn, execSync } from 'child_process';
import { Lbry } from 'lbry-redux';
import Lbry from 'lbry';
export default class Daemon {
static lbrynetPath =

View file

@ -0,0 +1,59 @@
import path from 'path';
import { spawn, execSync } from 'child_process';
export default class LbryFirstInstance {
static lbryFirstPath =
process.env.LBRY_FIRST_DAEMON ||
(process.env.NODE_ENV === 'production'
? path.join(process.resourcesPath, 'static/lbry-first', 'lbry-first')
: path.join(__static, 'lbry-first/lbry-first'));
static headersPath =
process.env.LBRY_FIRST_DAEMON ||
(process.env.NODE_ENV === 'production'
? path.join(process.resourcesPath, 'static/lbry-first', 'headers')
: path.join(__static, 'lbry-first/headers'));
subprocess;
handlers;
constructor() {
this.handlers = [];
}
launch() {
let flags = ['serve'];
console.log(`LbryFirst: ${LbryFirstInstance.lbryFirstPath}`);
this.subprocess = spawn(LbryFirstInstance.lbryFirstPath, flags);
this.subprocess.stdout.on('data', data => console.log(`LbryFirst: ${data}`));
this.subprocess.stderr.on('data', data => console.error(`LbryFirst: ${data}`));
this.subprocess.on('exit', () => this.fire('exit'));
this.subprocess.on('error', error => console.error(`LbryFirst error: ${error}`));
}
quit() {
if (process.platform === 'win32') {
try {
execSync(`taskkill /pid ${this.subprocess.pid} /t /f`);
} catch (error) {
console.error(error.message);
}
} else {
this.subprocess.kill();
}
}
// Follows the publish/subscribe pattern
// Subscribe method
on(event, handler, context = handler) {
this.handlers.push({ event, handler: handler.bind(context) });
}
// Publish method
fire(event, args) {
this.handlers.forEach(topic => {
if (topic.event === event) topic.handler(args);
});
}
}

View file

@ -6,6 +6,26 @@ let tray;
export default window => {
let iconPath;
/*
* A maximized window can't be properly
* restored when minimized to the taskbar
* (it will be restored/showed as unmaximized).
*
* window.isMaximized() will also return
* false when minimizing a maximized window.
*
* The safest way to keep track of the
* maximized state using maximize and
* unmaximize events.
*/
let isWindowMaximized = false;
window.on('maximize', () => {
isWindowMaximized = true;
});
window.on('unmaximize', () => {
isWindowMaximized = false;
});
switch (process.platform) {
case 'darwin': {
iconPath = 'static/img/tray/mac/trayTemplate.png';
@ -22,18 +42,21 @@ export default window => {
tray = new Tray(process.env.NODE_ENV === 'development' ? iconPath : path.join(process.resourcesPath, iconPath));
tray.on('double-click', () => {
const restoreFromTray = () => {
if (isWindowMaximized) {
window.maximize();
}
window.show();
});
};
tray.on('double-click', restoreFromTray);
tray.setToolTip('LBRY App');
const template = [
{
label: `Open ${app.getName()}`,
click: () => {
window.show();
},
label: `Open ${app.name}`,
click: restoreFromTray,
},
{ role: 'quit' },
];

View file

@ -1,11 +1,28 @@
import { WEBPACK_ELECTRON_PORT } from 'config';
import { app, BrowserWindow, dialog, shell, screen } from 'electron';
import { app, BrowserWindow, dialog, screen, nativeImage } from 'electron';
import isDev from 'electron-is-dev';
import windowStateKeeper from 'electron-window-state';
import SUPPORTED_LANGUAGES from 'constants/supported_languages';
import { SUPPORTED_SUB_LANGUAGE_CODES, SUB_LANG_CODE_LEN } from 'constants/supported_sub_languages';
import SUPPORTED_BROWSER_LANGUAGES from 'constants/supported_browser_languages';
import { TO_TRAY_WHEN_CLOSED } from 'constants/settings';
import setupBarMenu from './menu/setupBarMenu';
import * as PAGES from 'constants/pages';
const remote = require('@electron/remote/main');
const shell = require('electron').shell;
function GetAppLangCode() {
// https://www.electronjs.org/docs/api/locales
// 1. Gets the user locale.
// 2. Converts unsupported sub-languages to its primary (e.g. "en-GB" -> "en").
// Note that the primary itself may or may not be a supported language
// (up to clients to verify against SUPPORTED_LANGUAGES).
const langCode = app.getLocale();
if (langCode.length === SUB_LANG_CODE_LEN && !SUPPORTED_SUB_LANGUAGE_CODES.includes(langCode)) {
return SUPPORTED_BROWSER_LANGUAGES[langCode.slice(0, 2)];
}
return SUPPORTED_BROWSER_LANGUAGES[langCode];
}
export default appState => {
// Get primary display dimensions from Electron.
@ -32,11 +49,14 @@ export default appState => {
// If state is undefined, create window as maximized.
width: windowState.width === undefined ? width : windowState.width,
height: windowState.height === undefined ? height : windowState.height,
icon: 'static/img/tray/default/tray.png',
icon: nativeImage.createFromPath('static/img/tray/default/tray.png'),
webPreferences: {
// Disable renderer process's webSecurity on development to enable CORS.
webSecurity: !isDev,
plugins: true,
nodeIntegration: true,
contextIsolation: false,
enableRemoteModule: true, // see about removing this
},
};
const lbryProto = 'lbry://';
@ -44,6 +64,7 @@ export default appState => {
const rendererURL = isDev ? `http://localhost:${WEBPACK_ELECTRON_PORT}` : `file://${__dirname}/index.html`;
let window = new BrowserWindow(windowConfiguration);
remote.enable(window.webContents);
// Let us register listeners on the window, so we can update the state
// automatically (the listeners will be removed when the window is closed)
@ -74,7 +95,7 @@ export default appState => {
// is it a lbry://? pointing to an app page
if (deepLinkingURI.includes(lbryProtoQ)) {
let path = deepLinkingURI.substr(lbryProtoQ.length);
let path = deepLinkingURI.slice(lbryProtoQ.length);
let page = path.indexOf('?') >= 0 ? path.substring(0, path.indexOf('?')) : path;
if (Object.values(PAGES).includes(page)) {
deepLinkingURI = deepLinkingURI.replace(lbryProtoQ, '#/$/');
@ -93,7 +114,11 @@ export default appState => {
window.loadURL(rendererURL + deepLinkingURI);
window.on('close', event => {
if (!appState.isQuitting && !appState.autoUpdateAccepted) {
if (appState.isQuitting) {
return;
}
if (!appState.autoUpdateAccepted) {
event.preventDefault();
if (window.isFullScreen()) {
window.once('leave-full-screen', () => {
@ -104,6 +129,16 @@ export default appState => {
window.hide();
}
}
const getToTrayWhenClosedSetting = window.webContents.executeJavaScript(`localStorage.getItem('${TO_TRAY_WHEN_CLOSED}')`);
getToTrayWhenClosedSetting.then(toTrayWhenClosedSetting => {
const closeApp = toTrayWhenClosedSetting === 'false';
if (closeApp) {
app.quit();
}
});
});
window.on('focus', () => {
@ -144,24 +179,53 @@ export default appState => {
const language =
storedLanguage && storedLanguage !== 'undefined' && storedLanguage !== 'null'
? storedLanguage
: app.getLocale().slice(0, 2);
: GetAppLangCode();
if (language !== 'en' && SUPPORTED_LANGUAGES[language]) {
window.webContents.send('language-set', language);
}
});
if (isDev) {
window.webContents.openDevTools();
}
});
window.webContents.on('crashed', () => {
window = null;
});
window.webContents.on('new-window', (event, url) => {
event.preventDefault();
shell.openExternal(url);
window.webContents.setWindowOpenHandler((details) => {
// Only open http and https links to prevent
// security issues.
if (['https:', 'http:'].includes(new URL(details.url).protocol)) {
shell.openExternal(details.url);
}
return { action: 'deny' };
});
window.webContents.on('update-target-url', (event, url) => {
// Change internal links to the lbry protocol. External (https) links should remain unchanged.
let hoverUrlBase = `http://localhost:${WEBPACK_ELECTRON_PORT}/`;
if (!isDev) {
// Return format of 'update-target-url':
// Linux: file:///@claim
// Windows: file:///C:/@claim
// Use '__dirname' in case installation is not in C:
const path = require('path');
const exeRoot = path.parse(__dirname).root;
if (process.platform === 'win32') {
// Add extra "/" prefix. Convert "C:\" to "C:/"
hoverUrlBase = `file:///` + exeRoot.replace(/\\/g, '/');
} else {
hoverUrlBase = `file://` + exeRoot;
}
}
let dispUrl = url.replace(hoverUrlBase, lbryProto);
// Non-claims don't need the lbry protocol:
if (dispUrl === lbryProto) {
dispUrl = 'Home';
} else if (dispUrl.startsWith(lbryProto + '$/')) {
dispUrl = dispUrl.replace(lbryProto, '/');
}
window.webContents.send('update-target-url', dispUrl);
});
return window;

View file

@ -4,9 +4,10 @@
import '@babel/polyfill';
import SemVer from 'semver';
import https from 'https';
import { app, dialog, ipcMain, session, shell } from 'electron';
import { app, dialog, ipcMain, session, shell, BrowserWindow } from 'electron';
import { autoUpdater } from 'electron-updater';
import { Lbry } from 'lbry-redux';
import Lbry from 'lbry';
import LbryFirstInstance from './LbryFirstInstance';
import Daemon from './Daemon';
import isDev from 'electron-is-dev';
import createTray from './createTray';
@ -16,6 +17,17 @@ import startSandbox from './startSandbox';
import installDevtools from './installDevtools';
import fs from 'fs';
import path from 'path';
import { diskSpaceLinux, diskSpaceWindows, diskSpaceMac } from '../ui/util/diskspace';
const { download } = require('electron-dl');
const mime = require('mime');
const remote = require('@electron/remote/main');
const os = require('os');
const sudo = require('sudo-prompt');
const probe = require('ffmpeg-probe');
const MAX_IPC_SEND_BUFFER_SIZE = 500000000; // large files crash when serialized for ipc message
remote.initialize();
const filePath = path.join(process.resourcesPath, 'static', 'upgradeDisabled');
let upgradeDisabled;
try {
@ -25,11 +37,18 @@ try {
upgradeDisabled = false;
}
autoUpdater.autoDownload = !upgradeDisabled;
autoUpdater.allowPrerelease = false;
// This is set to true if an auto update has been downloaded through the Electron
// auto-update system and is ready to install. If the user declined an update earlier,
// it will still install on shutdown.
let autoUpdateDownloaded = false;
const UPDATE_STATE_INIT = 0;
const UPDATE_STATE_CHECKING = 1;
const UPDATE_STATE_UPDATES_FOUND = 2;
const UPDATE_STATE_NO_UPDATES_FOUND = 3;
const UPDATE_STATE_DOWNLOADING = 4;
const UPDATE_STATE_DOWNLOADED = 5;
let updateState = UPDATE_STATE_INIT;
let updateDownloadItem;
const isAutoUpdateSupported = ['win32', 'darwin'].includes(process.platform) || !!process.env.APPIMAGE;
// This is used to keep track of whether we are showing the special dialog
// that we show on Windows after you decline an upgrade and close the app later.
@ -41,13 +60,24 @@ let rendererWindow;
let tray; // eslint-disable-line
let daemon;
let lbryFirst;
const appState = {};
const PROTOCOL = 'lbry';
app.setAsDefaultProtocolClient('lbry');
app.setName('LBRY');
if (isDev && process.platform === 'win32') {
// Setting this is required to get this working in dev mode.
app.setAsDefaultProtocolClient(PROTOCOL, process.execPath, [
path.resolve(process.argv[1]),
]);
} else if (process.platform !== 'linux') {
app.setAsDefaultProtocolClient(PROTOCOL);
}
app.name = 'LBRY';
app.setAppUserModelId('io.lbry.LBRY');
app.commandLine.appendSwitch('force-color-profile', 'srgb');
app.commandLine.appendSwitch('disable-features', 'OutOfBlinkCors');
if (isDev) {
// Disable security warnings in dev mode:
@ -87,6 +117,52 @@ const startDaemon = async () => {
}
};
let isLbryFirstRunning = false;
const startLbryFirst = async () => {
if (isLbryFirstRunning) {
console.log('LbryFirst already running');
handleLbryFirstLaunched();
return;
}
console.log('LbryFirst: Starting...');
try {
lbryFirst = new LbryFirstInstance();
lbryFirst.on('exit', e => {
if (!isDev) {
lbryFirst = null;
isLbryFirstRunning = false;
if (!appState.isQuitting) {
dialog.showErrorBox(
'LbryFirst has Exited',
'The lbryFirst may have encountered an unexpected error, or another lbryFirst instance is already running. \n\n',
e
);
}
app.quit();
}
});
} catch (e) {
console.log('LbryFirst: Failed to create new instance\n\n', e);
}
console.log('LbryFirst: Running...');
try {
await lbryFirst.launch();
handleLbryFirstLaunched();
} catch (e) {
isLbryFirstRunning = false;
console.log('LbryFirst: Failed to start\n', e);
}
};
const handleLbryFirstLaunched = () => {
isLbryFirstRunning = true;
rendererWindow.webContents.send('lbry-first-launched');
};
// When we are starting the app, ensure there are no other apps already running
const gotSingleInstanceLock = app.requestSingleInstanceLock();
@ -97,9 +173,15 @@ if (!gotSingleInstanceLock) {
app.on('second-instance', (event, argv) => {
// Send the url to the app to navigate first, then focus
if (rendererWindow) {
if ((process.platform === 'win32' || process.platform === 'linux') && String(argv[1]).startsWith('lbry')) {
let URI = argv[1];
// External uri (last item on argv):
const EXTERNAL_URI = (argv.length) ? argv[argv.length - 1] : '';
// Handle protocol requests for windows and linux
const platforms = (process.platform === 'win32' || process.platform === 'linux');
// Is LBRY protocol
const isProtocolURI = String(EXTERNAL_URI).startsWith(PROTOCOL + '://');
// External protocol requested:
if (platforms && isProtocolURI) {
let URI = EXTERNAL_URI;
// Keep only command line / deep linked arguments
// Windows normalizes URIs when they're passed in from other apps. On Windows, this tries to
// restore the original URI that was typed.
@ -128,7 +210,6 @@ if (!gotSingleInstanceLock) {
if (isDev) {
await installDevtools();
}
rendererWindow = createWindow(appState);
tray = createTray(rendererWindow);
@ -139,19 +220,14 @@ if (!gotSingleInstanceLock) {
});
}
// HACK: patch webrequest to fix devtools incompatibility with electron 2.x.
// See https://github.com/electron/electron/issues/13008#issuecomment-400261941
session.defaultSession.webRequest.onBeforeRequest({}, (details, callback) => {
if (details.url.includes('7accc8730b0f99b5e7c0702ea89d1fa7c17bfe33')) {
callback({
redirectURL: details.url.replace(
'7accc8730b0f99b5e7c0702ea89d1fa7c17bfe33',
'57c9d07b416b5a2ea23d28247300e4af36329bdc'
),
});
} else {
callback({ cancel: false });
// If an "Origin" header is passed, the SDK will check that it is set to allow that origin in the daemon_settings.yml
// By default, electron sends http://localhost:{port} as the origin for POST requests
// https://github.com/electron/electron/issues/7931#issuecomment-361759277
session.defaultSession.webRequest.onBeforeSendHeaders((details, callback) => {
if (details.method === 'POST' && details.requestHeaders['Content-Type'] === 'application/json-rpc') {
delete details.requestHeaders['Origin'];
}
callback({ cancel: false, requestHeaders: details.requestHeaders });
});
});
}
@ -165,7 +241,8 @@ app.on('activate', () => {
app.on('will-quit', event => {
if (
process.platform === 'win32' &&
autoUpdateDownloaded &&
updateState === UPDATE_STATE_DOWNLOADED &&
isAutoUpdateSupported &&
!appState.autoUpdateAccepted &&
!showingAutoUpdateCloseAlert
) {
@ -191,12 +268,18 @@ app.on('will-quit', event => {
}
appState.isQuitting = true;
if (daemon) {
daemon.quit();
event.preventDefault();
}
if (lbryFirst) {
lbryFirst.quit();
event.preventDefault();
}
if (rendererWindow) {
tray.destroy();
rendererWindow = null;
}
});
@ -219,27 +302,118 @@ app.on('before-quit', () => {
appState.isQuitting = true;
});
ipcMain.on('upgrade', (event, installerPath) => {
app.on('quit', () => {
console.log('Launching upgrade installer at', installerPath);
// This gets triggered called after *all* other quit-related events, so
// we'll only get here if we're fully prepared and quitting for real.
shell.openItem(installerPath);
// Get the content of a file as a raw buffer of bytes.
// Useful to convert a file path to a File instance.
// Example:
// const result = await ipcMain.invoke('get-file-from-path', 'path/to/file');
// const file = new File([result.buffer], result.name);
// NOTE: if path points to a folder, an empty
// file will be given.
ipcMain.handle('get-file-from-path', (event, path, readContents = true) => {
return new Promise((resolve, reject) => {
fs.stat(path, (error, stats) => {
if (error) {
reject(error);
return;
}
// Separate folders considering "\" and "/"
// as separators (cross platform)
const folders = path.split(/[\\/]/);
const name = folders[folders.length - 1];
if (stats.isDirectory()) {
resolve({
name,
mime: undefined,
path,
buffer: new ArrayBuffer(0),
});
return;
}
if (!readContents) {
resolve({
name,
mime: mime.getType(name) || undefined,
path,
buffer: new ArrayBuffer(0),
});
return;
}
// Encoding null ensures data results in a Buffer.
fs.readFile(path, { encoding: null }, (err, data) => {
if (err) {
reject(err);
return;
}
resolve({
name,
mime: mime.getType(name) || undefined,
path,
buffer: data,
});
});
});
});
// what to do if no shutdown in a long time?
console.log('Update downloaded to', installerPath);
console.log('The app will close and you will be prompted to install the latest version of LBRY.');
console.log('After the install is complete, please reopen the app.');
app.quit();
});
autoUpdater.on('update-downloaded', () => {
autoUpdateDownloaded = true;
ipcMain.handle('get-file-details-from-path', async (event, path) => {
const isFfMp4 = (ffprobeResults) => {
return ffprobeResults &&
ffprobeResults.format &&
ffprobeResults.format.format_name &&
ffprobeResults.format.format_name.includes('mp4');
};
const folders = path.split(/[\\/]/);
const name = folders[folders.length - 1];
let duration = 0, size = 0, mimeType;
try {
await fs.promises.stat(path);
let ffprobeResults;
try {
ffprobeResults = await probe(path);
duration = ffprobeResults.format.duration;
size = ffprobeResults.format.size;
} catch (e) {
}
let fileReadResult;
if (size < MAX_IPC_SEND_BUFFER_SIZE) {
try {
fileReadResult = await fs.promises.readFile(path);
} catch (e) {
}
}
// TODO: use mmmagic to inspect file and get mime type
mimeType = isFfMp4(ffprobeResults) ? 'video/mp4' : mime.getType(name);
const fileData = {name, mime: mimeType || undefined, path, duration: duration, size, buffer: fileReadResult };
return fileData;
} catch (e) {
// no stat
return { error: 'no file' };
}
});
ipcMain.on('autoUpdateAccepted', () => {
appState.autoUpdateAccepted = true;
autoUpdater.quitAndInstall();
ipcMain.on('get-disk-space', async (event) => {
try {
const { data_dir } = await Lbry.settings_get();
let diskSpace;
switch (os.platform()) {
case 'linux':
diskSpace = await diskSpaceLinux(data_dir);
break;
case 'darwin':
diskSpace = await diskSpaceMac(data_dir);
break;
case 'win32':
diskSpace = await diskSpaceWindows(data_dir);
break;
default:
throw new Error('unknown platform');
}
rendererWindow.webContents.send('send-disk-space', { diskSpace });
} catch (e) {
rendererWindow.webContents.send('send-disk-space', { error: e.message || e });
console.log('Failed to get disk space', e);
}
});
ipcMain.on('version-info-requested', () => {
@ -318,6 +492,15 @@ ipcMain.on('version-info-requested', () => {
requestLatestRelease();
});
ipcMain.on('launch-lbry-first', async () => {
try {
await startLbryFirst();
} catch (e) {
console.log('Failed to start LbryFirst');
console.log(e);
}
});
process.on('uncaughtException', error => {
console.log(error);
dialog.showErrorBox('Error Encountered', `Caught error: ${error}`);
@ -325,3 +508,162 @@ process.on('uncaughtException', error => {
if (daemon) daemon.quit();
app.exit(1);
});
// Auto updater
autoUpdater.on('download-progress', () => {
updateState = UPDATE_STATE_DOWNLOADING;
});
autoUpdater.on('update-downloaded', () => {
updateState = UPDATE_STATE_DOWNLOADED;
// If this download was trigger by
// autoUpdateAccepted it means, the user
// wants to install the new update but
// needed to downloaded the files first.
if (appState.autoUpdateAccepted) {
autoUpdater.quitAndInstall();
}
});
autoUpdater.on('update-available', () => {
if (updateState === UPDATE_STATE_DOWNLOADING) {
return;
}
updateState = UPDATE_STATE_UPDATES_FOUND;
});
autoUpdater.on('update-not-available', () => {
updateState = UPDATE_STATE_NO_UPDATES_FOUND;
});
autoUpdater.on('error', () => {
if (updateState === UPDATE_STATE_DOWNLOADING) {
updateState = UPDATE_STATE_UPDATES_FOUND;
return;
}
updateState = UPDATE_STATE_INIT;
});
// Manual (.deb) update
ipcMain.on('cancel-download-upgrade', () => {
if (updateDownloadItem) {
// Cancel the download and execute the onCancel
// callback set in the options.
updateDownloadItem.cancel();
}
});
ipcMain.on('download-upgrade', (event, params) => {
if (updateState !== UPDATE_STATE_UPDATES_FOUND) {
return;
}
if (isAutoUpdateSupported) {
updateState = UPDATE_STATE_DOWNLOADING;
autoUpdater.downloadUpdate();
return;
}
const { url, options } = params;
const dir = fs.mkdtempSync(app.getPath('temp') + path.sep);
updateState = UPDATE_STATE_DOWNLOADING;
// Grab the download item's handler to allow
// cancelling the operation if required.
options.onStarted = function(downloadItem) {
updateDownloadItem = downloadItem;
};
options.onCancel = function() {
updateState = UPDATE_STATE_UPDATES_FOUND;
updateDownloadItem = undefined;
};
options.onProgress = function(p) {
rendererWindow.webContents.send('download-progress-update', p);
};
options.onCompleted = function(c) {
updateState = UPDATE_STATE_DOWNLOADED;
updateDownloadItem = undefined;
rendererWindow.webContents.send('download-update-complete', c);
};
options.directory = dir;
const win = BrowserWindow.getFocusedWindow();
download(win, url, options).catch(e => {
updateState = UPDATE_STATE_UPDATES_FOUND;
console.log('e', e);
});
});
// Update behavior
ipcMain.on('autoUpdateAccepted', () => {
appState.autoUpdateAccepted = true;
// quitAndInstall can only be called if the
// update has been downloaded. Since the user
// can disable auto updates, we have to make
// sure it has been downloaded first.
if (updateState === UPDATE_STATE_DOWNLOADED) {
autoUpdater.quitAndInstall();
return;
}
if (updateState !== UPDATE_STATE_UPDATES_FOUND) {
return;
}
// If the update hasn't been downloaded,
// start downloading it. After it's done, the
// event 'update-downloaded' will be triggered,
// where we will be able to resume the
// update installation.
updateState = UPDATE_STATE_DOWNLOADING;
autoUpdater.downloadUpdate();
});
ipcMain.on('check-for-updates', (event, autoDownload) => {
if (![UPDATE_STATE_INIT, UPDATE_STATE_NO_UPDATES_FOUND].includes(updateState)) {
return;
}
updateState = UPDATE_STATE_CHECKING;
// If autoDownload is true, checkForUpdates will begin the
// download automatically.
if (autoDownload) {
updateState = UPDATE_STATE_DOWNLOADING;
}
autoUpdater.autoDownload = autoDownload;
autoUpdater.checkForUpdates();
});
ipcMain.on('upgrade', (event, installerPath) => {
// what to do if no shutdown in a long time?
console.log('Update downloaded to', installerPath);
console.log('The app will close and you will be prompted to install the latest version of LBRY.');
console.log('After the install is complete, please reopen the app.');
// Prevent .deb package from opening with archive manager (Ubuntu >= 20)
if (process.platform === 'linux' && !process.env.APPIMAGE) {
sudo.exec(`dpkg -i ${installerPath}`, { name: app.name }, (err, stdout, stderr) => {
if (err || stderr) {
rendererWindow.webContents.send('upgrade-installing-error');
return;
}
// Re-launch the application when the installation finishes.
app.relaunch();
app.quit();
});
return;
}
app.on('quit', () => {
console.log('Launching upgrade installer at', installerPath);
// This gets triggered called after *all* other quit-related events, so
// we'll only get here if we're fully prepared and quitting for real.
shell.openPath(installerPath);
});
app.quit();
});

View file

@ -1,4 +1,5 @@
import { app, Menu, shell } from 'electron';
import { ZOOM } from 'util/zoomWindow';
export default () => {
const template = [
@ -22,6 +23,38 @@ export default () => {
label: 'View',
submenu: [
{ role: 'reload' },
{
label: 'Zoom',
submenu: [
{
label: 'Zoom In',
accelerator: 'CmdOrCtrl+=',
click: (menuItem, browserWindow) => {
if (browserWindow) {
browserWindow.webContents.send('zoom-window', ZOOM.INCREMENT);
}
},
},
{
label: 'Zoom Out',
accelerator: 'CmdOrCtrl+-',
click: (menuItem, browserWindow) => {
if (browserWindow) {
browserWindow.webContents.send('zoom-window', ZOOM.DECREMENT);
}
},
},
{
label: 'Reset Zoom',
accelerator: 'CmdOrCtrl+0',
click: (menuItem, browserWindow) => {
if (browserWindow) {
browserWindow.webContents.send('zoom-window', ZOOM.RESET);
}
},
},
],
},
{
label: 'Developer',
submenu: [{ role: 'forcereload' }, { role: 'toggledevtools' }],
@ -72,7 +105,7 @@ export default () => {
];
const darwinTemplateAddition = {
label: app.getName(),
label: app.name,
submenu: [
{ role: 'about' },
{ type: 'separator' },

View file

@ -1,5 +1,4 @@
import express from 'express';
import unpackByOutpoint from './unpackByOutpoint';
// import express from 'express';
// Polyfills and `lbry-redux`
global.fetch = require('node-fetch');
@ -8,31 +7,31 @@ if (typeof global.fetch === 'object') {
global.fetch = global.fetch.default;
}
const { Lbry } = require('lbry-redux');
// const Lbry = require('lbry');
delete global.window;
export default async function startSandbox() {
const port = 5278;
const sandbox = express();
// const port = 5278;
// const sandbox = express();
sandbox.get('/set/:outpoint', async (req, res) => {
const { outpoint } = req.params;
const resolvedPath = await unpackByOutpoint(Lbry, outpoint);
sandbox.use(`/sandbox/${outpoint}/`, express.static(resolvedPath));
res.send(`/sandbox/${outpoint}/`);
});
sandbox
.listen(port, 'localhost', () => console.log(`Sandbox listening on port ${port}.`))
.on('error', err => {
if (err.code === 'EADDRINUSE') {
console.log(
`Server already listening at localhost:${port}. This is probably another LBRY app running. If not, games in the app will not work.`
);
}
});
// sandbox.get('/set/:outpoint', async (req, res) => {
// const { outpoint } = req.params;
//
// const resolvedPath = await unpackByOutpoint(Lbry, outpoint);
//
// sandbox.use(`/sandbox/${outpoint}/`, express.static(resolvedPath));
//
// res.send(`/sandbox/${outpoint}/`);
// });
//
// sandbox
// .listen(port, 'localhost', () => console.log(`Sandbox listening on port ${port}.`))
// .on('error', err => {
// if (err.code === 'EADDRINUSE') {
// console.log(
// `Server already listening at localhost:${port}. This is probably another LBRY app running. If not, games in the app will not work.`
// );
// }
// });
}

View file

@ -1,23 +0,0 @@
import fs from 'fs';
import path from 'path';
import { unpackDirectory } from 'lbry-format';
async function unpackByOutpoint(lbry, outpoint) {
const { items: claimFiles } = await lbry.file_list({ outpoint, full_status: true, page: 1, page_size: 1 });
if (claimFiles && claimFiles.length) {
const claimFileInfo = claimFiles[0];
const packFilePath = path.resolve(claimFileInfo.download_path);
const unpackPath = path.normalize(path.join(claimFileInfo.download_directory, claimFileInfo.claim_name));
if (!fs.existsSync(unpackPath)) {
await unpackDirectory(unpackPath, {
fileName: packFilePath,
});
}
return unpackPath;
}
}
export default unpackByOutpoint;

View file

@ -0,0 +1,184 @@
// @flow
/*
LBRY FIRST does not work due to api changes
*/
import 'proxy-polyfill';
const CHECK_LBRYFIRST_STARTED_TRY_NUMBER = 200;
//
// Basic LBRYFIRST connection config
// Offers a proxy to call LBRYFIRST methods
//
const LbryFirst: LbryFirstTypes = {
isConnected: false,
connectPromise: null,
lbryFirstConnectionString: 'http://localhost:1337/rpc',
apiRequestHeaders: { 'Content-Type': 'application/json' },
// Allow overriding lbryFirst connection string (e.g. to `/api/proxy` for lbryweb)
setLbryFirstConnectionString: (value: string) => {
LbryFirst.lbryFirstConnectionString = value;
},
setApiHeader: (key: string, value: string) => {
LbryFirst.apiRequestHeaders = Object.assign(LbryFirst.apiRequestHeaders, { [key]: value });
},
unsetApiHeader: key => {
Object.keys(LbryFirst.apiRequestHeaders).includes(key) &&
delete LbryFirst.apiRequestHeaders['key'];
},
// Allow overriding Lbry methods
overrides: {},
setOverride: (methodName, newMethod) => {
LbryFirst.overrides[methodName] = newMethod;
},
getApiRequestHeaders: () => LbryFirst.apiRequestHeaders,
// LbryFirst Methods
status: (params = {}) => lbryFirstCallWithResult('status', params),
stop: () => lbryFirstCallWithResult('stop', {}),
version: () => lbryFirstCallWithResult('version', {}),
// Upload to youtube
upload: (params: { title: string, description: string, file_path: ?string } = {}) => {
// Only upload when originally publishing for now
if (!params.file_path) {
return Promise.resolve();
}
const uploadParams: {
Title: string,
Description: string,
FilePath: string,
Category: string,
Keywords: string,
} = {
Title: params.title,
Description: params.description,
FilePath: params.file_path,
Category: '',
Keywords: '',
};
return lbryFirstCallWithResult('youtube.Upload', uploadParams);
},
hasYTAuth: (token: string) => {
const hasYTAuthParams = {};
hasYTAuthParams.AuthToken = token;
return lbryFirstCallWithResult('youtube.HasAuth', hasYTAuthParams);
},
ytSignup: () => {
const emptyParams = {};
return lbryFirstCallWithResult('youtube.Signup', emptyParams);
},
remove: () => {
const emptyParams = {};
return lbryFirstCallWithResult('youtube.Remove', emptyParams);
},
// Connect to lbry-first
connect: () => {
if (LbryFirst.connectPromise === null) {
LbryFirst.connectPromise = new Promise((resolve, reject) => {
let tryNum = 0;
// Check every half second to see if the lbryFirst is accepting connections
function checkLbryFirstStarted() {
tryNum += 1;
LbryFirst.status()
.then(resolve)
.catch(() => {
if (tryNum <= CHECK_LBRYFIRST_STARTED_TRY_NUMBER) {
setTimeout(checkLbryFirstStarted, tryNum < 50 ? 400 : 1000);
} else {
reject(new Error('Unable to connect to LBRY'));
}
});
}
checkLbryFirstStarted();
});
}
// Flow thinks this could be empty, but it will always return a promise
// $FlowFixMe
return LbryFirst.connectPromise;
},
};
function checkAndParse(response) {
if (response.status >= 200 && response.status < 300) {
return response.json();
}
return response.json().then(json => {
let error;
if (json.error) {
const errorMessage = typeof json.error === 'object' ? json.error.message : json.error;
error = new Error(errorMessage);
} else {
error = new Error('Protocol error with unknown response signature');
}
return Promise.reject(error);
});
}
export function apiCall(method: string, params: ?{}, resolve: Function, reject: Function) {
const counter = new Date().getTime();
const paramsArray = [params];
const options = {
method: 'POST',
headers: LbryFirst.apiRequestHeaders,
body: JSON.stringify({
jsonrpc: '2.0',
method,
params: paramsArray,
id: counter,
}),
};
return fetch(LbryFirst.lbryFirstConnectionString, options)
.then(checkAndParse)
.then(response => {
const error = response.error || (response.result && response.result.error);
if (error) {
return reject(error);
}
return resolve(response.result);
})
.catch(reject);
}
function lbryFirstCallWithResult(name: string, params: ?{} = {}) {
return new Promise((resolve, reject) => {
apiCall(
name,
params,
result => {
resolve(result);
},
reject
);
});
}
// This is only for a fallback
// If there is a LbryFirst method that is being called by an app, it should be added to /flow-typed/LbryFirst.js
const lbryFirstProxy = new Proxy(LbryFirst, {
get(target: LbryFirstTypes, name: string) {
if (name in target) {
return target[name];
}
return (params = {}) =>
new Promise((resolve, reject) => {
apiCall(name, params, resolve, reject);
});
},
});
export default lbryFirstProxy;

View file

@ -0,0 +1,97 @@
// Claims
export const FETCH_FEATURED_CONTENT_STARTED = 'FETCH_FEATURED_CONTENT_STARTED';
export const FETCH_FEATURED_CONTENT_COMPLETED = 'FETCH_FEATURED_CONTENT_COMPLETED';
export const FETCH_TRENDING_CONTENT_STARTED = 'FETCH_TRENDING_CONTENT_STARTED';
export const FETCH_TRENDING_CONTENT_COMPLETED = 'FETCH_TRENDING_CONTENT_COMPLETED';
export const RESOLVE_URIS_STARTED = 'RESOLVE_URIS_STARTED';
export const RESOLVE_URIS_COMPLETED = 'RESOLVE_URIS_COMPLETED';
export const FETCH_CHANNEL_CLAIMS_STARTED = 'FETCH_CHANNEL_CLAIMS_STARTED';
export const FETCH_CHANNEL_CLAIMS_COMPLETED = 'FETCH_CHANNEL_CLAIMS_COMPLETED';
export const FETCH_CHANNEL_CLAIM_COUNT_STARTED = 'FETCH_CHANNEL_CLAIM_COUNT_STARTED';
export const FETCH_CHANNEL_CLAIM_COUNT_COMPLETED = 'FETCH_CHANNEL_CLAIM_COUNT_COMPLETED';
export const FETCH_CLAIM_LIST_MINE_STARTED = 'FETCH_CLAIM_LIST_MINE_STARTED';
export const FETCH_CLAIM_LIST_MINE_COMPLETED = 'FETCH_CLAIM_LIST_MINE_COMPLETED';
export const ABANDON_CLAIM_STARTED = 'ABANDON_CLAIM_STARTED';
export const ABANDON_CLAIM_SUCCEEDED = 'ABANDON_CLAIM_SUCCEEDED';
export const FETCH_CHANNEL_LIST_STARTED = 'FETCH_CHANNEL_LIST_STARTED';
export const FETCH_CHANNEL_LIST_COMPLETED = 'FETCH_CHANNEL_LIST_COMPLETED';
export const CREATE_CHANNEL_STARTED = 'CREATE_CHANNEL_STARTED';
export const CREATE_CHANNEL_COMPLETED = 'CREATE_CHANNEL_COMPLETED';
export const PUBLISH_STARTED = 'PUBLISH_STARTED';
export const PUBLISH_COMPLETED = 'PUBLISH_COMPLETED';
export const PUBLISH_FAILED = 'PUBLISH_FAILED';
export const SET_PLAYING_URI = 'SET_PLAYING_URI';
export const SET_CONTENT_POSITION = 'SET_CONTENT_POSITION';
export const SET_CONTENT_LAST_VIEWED = 'SET_CONTENT_LAST_VIEWED';
export const CLEAR_CONTENT_HISTORY_URI = 'CLEAR_CONTENT_HISTORY_URI';
export const CLEAR_CONTENT_HISTORY_ALL = 'CLEAR_CONTENT_HISTORY_ALL';
// Subscriptions
export const CHANNEL_SUBSCRIBE = 'CHANNEL_SUBSCRIBE';
export const CHANNEL_UNSUBSCRIBE = 'CHANNEL_UNSUBSCRIBE';
export const CHANNEL_SUBSCRIPTION_ENABLE_NOTIFICATIONS =
'CHANNEL_SUBSCRIPTION_ENABLE_NOTIFICATIONS';
export const CHANNEL_SUBSCRIPTION_DISABLE_NOTIFICATIONS =
'CHANNEL_SUBSCRIPTION_DISABLE_NOTIFICATIONS';
export const HAS_FETCHED_SUBSCRIPTIONS = 'HAS_FETCHED_SUBSCRIPTIONS';
export const SET_SUBSCRIPTION_LATEST = 'SET_SUBSCRIPTION_LATEST';
export const UPDATE_SUBSCRIPTION_UNREADS = 'UPDATE_SUBSCRIPTION_UNREADS';
export const REMOVE_SUBSCRIPTION_UNREADS = 'REMOVE_SUBSCRIPTION_UNREADS';
export const CHECK_SUBSCRIPTION_STARTED = 'CHECK_SUBSCRIPTION_STARTED';
export const CHECK_SUBSCRIPTION_COMPLETED = 'CHECK_SUBSCRIPTION_COMPLETED';
export const CHECK_SUBSCRIPTIONS_SUBSCRIBE = 'CHECK_SUBSCRIPTIONS_SUBSCRIBE';
export const FETCH_SUBSCRIPTIONS_START = 'FETCH_SUBSCRIPTIONS_START';
export const FETCH_SUBSCRIPTIONS_FAIL = 'FETCH_SUBSCRIPTIONS_FAIL';
export const FETCH_SUBSCRIPTIONS_SUCCESS = 'FETCH_SUBSCRIPTIONS_SUCCESS';
export const SET_VIEW_MODE = 'SET_VIEW_MODE';
export const GET_SUGGESTED_SUBSCRIPTIONS_START = 'GET_SUGGESTED_SUBSCRIPTIONS_START';
export const GET_SUGGESTED_SUBSCRIPTIONS_SUCCESS = 'GET_SUGGESTED_SUBSCRIPTIONS_SUCCESS';
export const GET_SUGGESTED_SUBSCRIPTIONS_FAIL = 'GET_SUGGESTED_SUBSCRIPTIONS_FAIL';
export const SUBSCRIPTION_FIRST_RUN_COMPLETED = 'SUBSCRIPTION_FIRST_RUN_COMPLETED';
export const VIEW_SUGGESTED_SUBSCRIPTIONS = 'VIEW_SUGGESTED_SUBSCRIPTIONS';
// Blacklist
export const FETCH_BLACK_LISTED_CONTENT_STARTED = 'FETCH_BLACK_LISTED_CONTENT_STARTED';
export const FETCH_BLACK_LISTED_CONTENT_COMPLETED = 'FETCH_BLACK_LISTED_CONTENT_COMPLETED';
export const FETCH_BLACK_LISTED_CONTENT_FAILED = 'FETCH_BLACK_LISTED_CONTENT_FAILED';
export const BLACK_LISTED_CONTENT_SUBSCRIBE = 'BLACK_LISTED_CONTENT_SUBSCRIBE';
// Filtered list
export const FETCH_FILTERED_CONTENT_STARTED = 'FETCH_FILTERED_CONTENT_STARTED';
export const FETCH_FILTERED_CONTENT_COMPLETED = 'FETCH_FILTERED_CONTENT_COMPLETED';
export const FETCH_FILTERED_CONTENT_FAILED = 'FETCH_FILTERED_CONTENT_FAILED';
export const FILTERED_CONTENT_SUBSCRIBE = 'FILTERED_CONTENT_SUBSCRIBE';
// Cost Info
export const FETCH_COST_INFO_STARTED = 'FETCH_COST_INFO_STARTED';
export const FETCH_COST_INFO_COMPLETED = 'FETCH_COST_INFO_COMPLETED';
// Stats
export const FETCH_VIEW_COUNT_STARTED = 'FETCH_VIEW_COUNT_STARTED';
export const FETCH_VIEW_COUNT_FAILED = 'FETCH_VIEW_COUNT_FAILED';
export const FETCH_VIEW_COUNT_COMPLETED = 'FETCH_VIEW_COUNT_COMPLETED';
export const FETCH_SUB_COUNT_STARTED = 'FETCH_SUB_COUNT_STARTED';
export const FETCH_SUB_COUNT_FAILED = 'FETCH_SUB_COUNT_FAILED';
export const FETCH_SUB_COUNT_COMPLETED = 'FETCH_SUB_COUNT_COMPLETED';
// Cross-device Sync
export const GET_SYNC_STARTED = 'GET_SYNC_STARTED';
export const GET_SYNC_COMPLETED = 'GET_SYNC_COMPLETED';
export const GET_SYNC_FAILED = 'GET_SYNC_FAILED';
export const SET_SYNC_STARTED = 'SET_SYNC_STARTED';
export const SET_SYNC_FAILED = 'SET_SYNC_FAILED';
export const SET_SYNC_COMPLETED = 'SET_SYNC_COMPLETED';
export const SET_DEFAULT_ACCOUNT = 'SET_DEFAULT_ACCOUNT';
export const SYNC_APPLY_STARTED = 'SYNC_APPLY_STARTED';
export const SYNC_APPLY_COMPLETED = 'SYNC_APPLY_COMPLETED';
export const SYNC_APPLY_FAILED = 'SYNC_APPLY_FAILED';
export const SYNC_APPLY_BAD_PASSWORD = 'SYNC_APPLY_BAD_PASSWORD';
export const SYNC_RESET = 'SYNC_RESET';
// Lbry.tv
export const UPDATE_UPLOAD_PROGRESS = 'UPDATE_UPLOAD_PROGRESS';
// User
export const GENERATE_AUTH_TOKEN_FAILURE = 'GENERATE_AUTH_TOKEN_FAILURE';
export const GENERATE_AUTH_TOKEN_STARTED = 'GENERATE_AUTH_TOKEN_STARTED';
export const GENERATE_AUTH_TOKEN_SUCCESS = 'GENERATE_AUTH_TOKEN_SUCCESS';

View file

@ -0,0 +1,5 @@
export const MINIMUM_PUBLISH_BID = 0.00000001;
export const CHANNEL_ANONYMOUS = 'anonymous';
export const CHANNEL_NEW = 'new';
export const PAGE_SIZE = 20;

View file

@ -0,0 +1,4 @@
export const ALREADY_CLAIMED =
'once the invite reward has been claimed the referrer cannot be changed';
export const REFERRER_NOT_FOUND =
'A lbry.tv account could not be found for the referrer you provided.';

View file

@ -0,0 +1,11 @@
export const YOUTUBE_SYNC_NOT_TRANSFERRED = 'not_transferred';
export const YOUTUBE_SYNC_PENDING = 'pending';
export const YOUTUBE_SYNC_PENDING_EMAIL = 'pendingemail';
export const YOUTUBE_SYNC_PENDING_TRANSFER = 'pending_transfer';
export const YOUTUBE_SYNC_COMPLETED_TRANSFER = 'completed_transfer';
export const YOUTUBE_SYNC_QUEUED = 'queued';
export const YOUTUBE_SYNC_SYNCING = 'syncing';
export const YOUTUBE_SYNC_SYNCED = 'synced';
export const YOUTUBE_SYNC_FAILED = 'failed';
export const YOUTUBE_SYNC_PENDINGUPGRADE = 'pendingupgrade';
export const YOUTUBE_SYNC_ABANDONDED = 'abandoned';

71
extras/lbryinc/index.js Normal file
View file

@ -0,0 +1,71 @@
import * as LBRYINC_ACTIONS from 'constants/action_types';
import * as YOUTUBE_STATUSES from 'constants/youtube';
import * as ERRORS from 'constants/errors';
import Lbryio from './lbryio';
export { Lbryio };
// constants
export { LBRYINC_ACTIONS, YOUTUBE_STATUSES, ERRORS };
// utils
export { doTransifexUpload } from 'util/transifex-upload';
// actions
export { doGenerateAuthToken } from './redux/actions/auth';
export { doFetchCostInfoForUri } from './redux/actions/cost_info';
export { doBlackListedOutpointsSubscribe } from './redux/actions/blacklist';
export { doFilteredOutpointsSubscribe } from './redux/actions/filtered';
export { doFetchViewCount, doFetchSubCount } from './redux/actions/stats';
export {
doCheckSync,
doGetSync,
doSetSync,
doSetDefaultAccount,
doSyncApply,
doResetSync,
doSyncEncryptAndDecrypt,
} from 'redux/actions/sync';
// reducers
export { authReducer } from './redux/reducers/auth';
export { costInfoReducer } from './redux/reducers/cost_info';
export { blacklistReducer } from './redux/reducers/blacklist';
export { filteredReducer } from './redux/reducers/filtered';
export { statsReducer } from './redux/reducers/stats';
export { syncReducer } from './redux/reducers/sync';
// selectors
export { selectAuthToken, selectIsAuthenticating } from './redux/selectors/auth';
export {
selectFetchingCostInfoForUri,
selectCostInfoForUri,
selectAllCostInfoByUri,
selectFetchingCostInfo,
} from './redux/selectors/cost_info';
export {
selectBlackListedOutpoints,
selectBlacklistedOutpointMap,
} from './redux/selectors/blacklist';
export { selectFilteredOutpoints, selectFilteredOutpointMap } from './redux/selectors/filtered';
export {
selectViewCount,
selectViewCountForUri,
// makeSelectViewCountForUri, // deprecated
selectSubCountForUri,
// makeSelectSubCountForUri, // deprecated
} from './redux/selectors/stats';
export { selectBanStateForUri } from './redux/selectors/ban';
export {
selectHasSyncedWallet,
selectSyncData,
selectSyncHash,
selectSetSyncErrorMessage,
selectGetSyncErrorMessage,
selectGetSyncIsPending,
selectSetSyncIsPending,
selectSyncApplyIsPending,
selectHashChanged,
selectSyncApplyErrorMessage,
selectSyncApplyPasswordError,
} from './redux/selectors/sync';

238
extras/lbryinc/lbryio.js Normal file
View file

@ -0,0 +1,238 @@
import * as ACTIONS from 'constants/action_types';
import Lbry from 'lbry';
import querystring from 'querystring';
const Lbryio = {
enabled: true,
authenticationPromise: null,
exchangePromise: null,
exchangeLastFetched: null,
CONNECTION_STRING: 'https://api.lbry.com/',
};
const EXCHANGE_RATE_TIMEOUT = 20 * 60 * 1000;
const INTERNAL_APIS_DOWN = 'internal_apis_down';
// We can't use env's because they aren't passed into node_modules
Lbryio.setLocalApi = endpoint => {
Lbryio.CONNECTION_STRING = endpoint.replace(/\/*$/, '/'); // exactly one slash at the end;
};
Lbryio.call = (resource, action, params = {}, method = 'get') => {
if (!Lbryio.enabled) {
return Promise.reject(new Error(__('LBRY internal API is disabled')));
}
if (!(method === 'get' || method === 'post')) {
return Promise.reject(new Error(__('Invalid method')));
}
function checkAndParse(response) {
if (response.status >= 200 && response.status < 300) {
return response.json();
}
if (response.status === 500) {
return Promise.reject(INTERNAL_APIS_DOWN);
}
if (response)
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 makeRequest(url, options) {
return fetch(url, options).then(checkAndParse);
}
return Lbryio.getAuthToken().then(token => {
const fullParams = { auth_token: token, ...params };
Object.keys(fullParams).forEach(key => {
const value = fullParams[key];
if (typeof value === 'object') {
fullParams[key] = JSON.stringify(value);
}
});
const qs = querystring.stringify(fullParams);
let url = `${Lbryio.CONNECTION_STRING}${resource}/${action}?${qs}`;
let options = {
method: 'GET',
};
if (method === 'post') {
options = {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
body: qs,
};
url = `${Lbryio.CONNECTION_STRING}${resource}/${action}`;
}
return makeRequest(url, options).then(response => response.data);
});
};
Lbryio.authToken = null;
Lbryio.getAuthToken = () =>
new Promise(resolve => {
if (Lbryio.authToken) {
resolve(Lbryio.authToken);
} else if (Lbryio.overrides.getAuthToken) {
Lbryio.overrides.getAuthToken().then(token => {
resolve(token);
});
} else if (typeof window !== 'undefined') {
const { store } = window;
if (store) {
const state = store.getState();
const token = state.auth ? state.auth.authToken : null;
Lbryio.authToken = token;
resolve(token);
}
resolve(null);
} else {
resolve(null);
}
});
Lbryio.getCurrentUser = () => Lbryio.call('user', 'me');
Lbryio.authenticate = (domain, language) => {
if (!Lbryio.enabled) {
const params = {
id: 1,
primary_email: 'disabled@lbry.io',
has_verified_email: true,
is_identity_verified: true,
is_reward_approved: false,
language: language || 'en',
};
return new Promise(resolve => {
resolve(params);
});
}
if (Lbryio.authenticationPromise === null) {
Lbryio.authenticationPromise = new Promise((resolve, reject) => {
Lbryio.getAuthToken()
.then(token => {
if (!token || token.length > 60) {
return false;
}
// check that token works
return Lbryio.getCurrentUser()
.then(user => user)
.catch(error => {
if (error === INTERNAL_APIS_DOWN) {
throw new Error('Internal APIS down');
}
return false;
});
})
.then(user => {
if (user) {
return user;
}
return Lbry.status()
.then(
status =>
new Promise((res, rej) => {
const appId =
domain && domain !== 'lbry.tv'
? (domain.replace(/[.]/gi, '') + status.installation_id).slice(0, 66)
: status.installation_id;
Lbryio.call(
'user',
'new',
{
auth_token: '',
language: language || 'en',
app_id: appId,
},
'post'
)
.then(response => {
if (!response.auth_token) {
throw new Error('auth_token was not set in the response');
}
const { store } = window;
if (Lbryio.overrides.setAuthToken) {
Lbryio.overrides.setAuthToken(response.auth_token);
}
if (store) {
store.dispatch({
type: ACTIONS.GENERATE_AUTH_TOKEN_SUCCESS,
data: { authToken: response.auth_token },
});
}
Lbryio.authToken = response.auth_token;
return res(response);
})
.catch(error => rej(error));
})
)
.then(newUser => {
if (!newUser) {
return Lbryio.getCurrentUser();
}
return newUser;
});
})
.then(resolve, reject);
});
}
return Lbryio.authenticationPromise;
};
Lbryio.getStripeToken = () =>
Lbryio.CONNECTION_STRING.startsWith('http://localhost:')
? 'pk_test_NoL1JWL7i1ipfhVId5KfDZgo'
: 'pk_live_e8M4dRNnCCbmpZzduEUZBgJO';
Lbryio.getExchangeRates = () => {
if (
!Lbryio.exchangeLastFetched ||
Date.now() - Lbryio.exchangeLastFetched > EXCHANGE_RATE_TIMEOUT
) {
Lbryio.exchangePromise = new Promise((resolve, reject) => {
Lbryio.call('lbc', 'exchange_rate', {}, 'get', true)
.then(({ lbc_usd: LBC_USD, lbc_btc: LBC_BTC, btc_usd: BTC_USD }) => {
const rates = { LBC_USD, LBC_BTC, BTC_USD };
resolve(rates);
})
.catch(reject);
});
Lbryio.exchangeLastFetched = Date.now();
}
return Lbryio.exchangePromise;
};
// Allow overriding lbryio methods
// The desktop app will need to use it for getAuthToken because we use electron's ipcRenderer
Lbryio.overrides = {};
Lbryio.setOverride = (methodName, newMethod) => {
Lbryio.overrides[methodName] = newMethod;
};
export default Lbryio;

View file

@ -0,0 +1,38 @@
import * as ACTIONS from 'constants/action_types';
import { Lbryio } from 'lbryinc';
export function doGenerateAuthToken(installationId) {
return dispatch => {
dispatch({
type: ACTIONS.GENERATE_AUTH_TOKEN_STARTED,
});
Lbryio.call(
'user',
'new',
{
auth_token: '',
language: 'en',
app_id: installationId,
},
'post'
)
.then(response => {
if (!response.auth_token) {
dispatch({
type: ACTIONS.GENERATE_AUTH_TOKEN_FAILURE,
});
} else {
dispatch({
type: ACTIONS.GENERATE_AUTH_TOKEN_SUCCESS,
data: { authToken: response.auth_token },
});
}
})
.catch(() => {
dispatch({
type: ACTIONS.GENERATE_AUTH_TOKEN_FAILURE,
});
});
};
}

View file

@ -0,0 +1,52 @@
import { Lbryio } from 'lbryinc';
import * as ACTIONS from 'constants/action_types';
const CHECK_BLACK_LISTED_CONTENT_INTERVAL = 60 * 60 * 1000;
export function doFetchBlackListedOutpoints() {
return dispatch => {
dispatch({
type: ACTIONS.FETCH_BLACK_LISTED_CONTENT_STARTED,
});
const success = ({ outpoints }) => {
const splitOutpoints = [];
if (outpoints) {
outpoints.forEach((outpoint, index) => {
const [txid, nout] = outpoint.split(':');
splitOutpoints[index] = { txid, nout: Number.parseInt(nout, 10) };
});
}
dispatch({
type: ACTIONS.FETCH_BLACK_LISTED_CONTENT_COMPLETED,
data: {
outpoints: splitOutpoints,
success: true,
},
});
};
const failure = ({ message: error }) => {
dispatch({
type: ACTIONS.FETCH_BLACK_LISTED_CONTENT_FAILED,
data: {
error,
success: false,
},
});
};
Lbryio.call('file', 'list_blocked', {
auth_token: '',
}).then(success, failure);
};
}
export function doBlackListedOutpointsSubscribe() {
return dispatch => {
dispatch(doFetchBlackListedOutpoints());
setInterval(() => dispatch(doFetchBlackListedOutpoints()), CHECK_BLACK_LISTED_CONTENT_INTERVAL);
};
}

View file

@ -0,0 +1,35 @@
import * as ACTIONS from 'constants/action_types';
import { Lbryio } from 'lbryinc';
import { selectClaimForUri } from 'redux/selectors/claims';
// eslint-disable-next-line import/prefer-default-export
export function doFetchCostInfoForUri(uri) {
return (dispatch, getState) => {
const state = getState();
const claim = selectClaimForUri(state, uri);
if (!claim) return;
function resolve(costInfo) {
dispatch({
type: ACTIONS.FETCH_COST_INFO_COMPLETED,
data: {
uri,
costInfo,
},
});
}
const fee = claim.value ? claim.value.fee : undefined;
if (fee === undefined) {
resolve({ cost: 0, includesData: true });
} else if (fee.currency === 'LBC') {
resolve({ cost: fee.amount, includesData: true });
} else {
Lbryio.getExchangeRates().then(({ LBC_USD }) => {
resolve({ cost: fee.amount / LBC_USD, includesData: true });
});
}
};
}

View file

@ -0,0 +1,47 @@
import { Lbryio } from 'lbryinc';
import * as ACTIONS from 'constants/action_types';
const CHECK_FILTERED_CONTENT_INTERVAL = 60 * 60 * 1000;
export function doFetchFilteredOutpoints() {
return dispatch => {
dispatch({
type: ACTIONS.FETCH_FILTERED_CONTENT_STARTED,
});
const success = ({ outpoints }) => {
let formattedOutpoints = [];
if (outpoints) {
formattedOutpoints = outpoints.map(outpoint => {
const [txid, nout] = outpoint.split(':');
return { txid, nout: Number.parseInt(nout, 10) };
});
}
dispatch({
type: ACTIONS.FETCH_FILTERED_CONTENT_COMPLETED,
data: {
outpoints: formattedOutpoints,
},
});
};
const failure = ({ error }) => {
dispatch({
type: ACTIONS.FETCH_FILTERED_CONTENT_FAILED,
data: {
error,
},
});
};
Lbryio.call('file', 'list_filtered', { auth_token: '' }).then(success, failure);
};
}
export function doFilteredOutpointsSubscribe() {
return dispatch => {
dispatch(doFetchFilteredOutpoints());
setInterval(() => dispatch(doFetchFilteredOutpoints()), CHECK_FILTERED_CONTENT_INTERVAL);
};
}

View file

@ -0,0 +1,32 @@
// @flow
import { Lbryio } from 'lbryinc';
import * as ACTIONS from 'constants/action_types';
export const doFetchViewCount = (claimIdCsv: string) => (dispatch: Dispatch) => {
dispatch({ type: ACTIONS.FETCH_VIEW_COUNT_STARTED });
return Lbryio.call('file', 'view_count', { claim_id: claimIdCsv })
.then((result: Array<number>) => {
const viewCounts = result;
dispatch({ type: ACTIONS.FETCH_VIEW_COUNT_COMPLETED, data: { claimIdCsv, viewCounts } });
})
.catch(error => {
dispatch({ type: ACTIONS.FETCH_VIEW_COUNT_FAILED, data: error });
});
};
export const doFetchSubCount = (claimId: string) => (dispatch: Dispatch) => {
dispatch({ type: ACTIONS.FETCH_SUB_COUNT_STARTED });
return Lbryio.call('subscription', 'sub_count', { claim_id: claimId })
.then((result: Array<number>) => {
const subCount = result[0];
dispatch({
type: ACTIONS.FETCH_SUB_COUNT_COMPLETED,
data: { claimId, subCount },
});
})
.catch(error => {
dispatch({ type: ACTIONS.FETCH_SUB_COUNT_FAILED, data: error });
});
};

View file

@ -0,0 +1,289 @@
import * as ACTIONS from 'constants/action_types';
import { Lbryio } from 'lbryinc';
import Lbry from 'lbry';
import { doWalletEncrypt, doWalletDecrypt } from 'redux/actions/wallet';
const NO_WALLET_ERROR = 'no wallet found for this user';
export function doSetDefaultAccount(success, failure) {
return dispatch => {
dispatch({
type: ACTIONS.SET_DEFAULT_ACCOUNT,
});
Lbry.account_list()
.then(accountList => {
const { lbc_mainnet: accounts } = accountList;
let defaultId;
for (let i = 0; i < accounts.length; ++i) {
if (accounts[i].satoshis > 0) {
defaultId = accounts[i].id;
break;
}
}
// In a case where there's no balance on either account
// assume the second (which is created after sync) as default
if (!defaultId && accounts.length > 1) {
defaultId = accounts[1].id;
}
// Set the default account
if (defaultId) {
Lbry.account_set({ account_id: defaultId, default: true })
.then(() => {
if (success) {
success();
}
})
.catch(err => {
if (failure) {
failure(err);
}
});
} else if (failure) {
// no default account to set
failure('Could not set a default account'); // fail
}
})
.catch(err => {
if (failure) {
failure(err);
}
});
};
}
export function doSetSync(oldHash, newHash, data) {
return dispatch => {
dispatch({
type: ACTIONS.SET_SYNC_STARTED,
});
return Lbryio.call('sync', 'set', { old_hash: oldHash, new_hash: newHash, data }, 'post')
.then(response => {
if (!response.hash) {
throw Error('No hash returned for sync/set.');
}
return dispatch({
type: ACTIONS.SET_SYNC_COMPLETED,
data: { syncHash: response.hash },
});
})
.catch(error => {
dispatch({
type: ACTIONS.SET_SYNC_FAILED,
data: { error },
});
});
};
}
export function doGetSync(passedPassword, callback) {
const password = passedPassword === null || passedPassword === undefined ? '' : passedPassword;
function handleCallback(error, hasNewData) {
if (callback) {
if (typeof callback !== 'function') {
throw new Error('Second argument passed to "doGetSync" must be a function');
}
callback(error, hasNewData);
}
}
return dispatch => {
dispatch({
type: ACTIONS.GET_SYNC_STARTED,
});
const data = {};
Lbry.wallet_status()
.then(status => {
if (status.is_locked) {
return Lbry.wallet_unlock({ password });
}
// Wallet is already unlocked
return true;
})
.then(isUnlocked => {
if (isUnlocked) {
return Lbry.sync_hash();
}
data.unlockFailed = true;
throw new Error();
})
.then(hash => Lbryio.call('sync', 'get', { hash }, 'post'))
.then(response => {
const syncHash = response.hash;
data.syncHash = syncHash;
data.syncData = response.data;
data.changed = response.changed;
data.hasSyncedWallet = true;
if (response.changed) {
return Lbry.sync_apply({ password, data: response.data, blocking: true });
}
})
.then(response => {
if (!response) {
dispatch({ type: ACTIONS.GET_SYNC_COMPLETED, data });
handleCallback(null, data.changed);
return;
}
const { hash: walletHash, data: walletData } = response;
if (walletHash !== data.syncHash) {
// different local hash, need to synchronise
dispatch(doSetSync(data.syncHash, walletHash, walletData));
}
dispatch({ type: ACTIONS.GET_SYNC_COMPLETED, data });
handleCallback(null, data.changed);
})
.catch(syncAttemptError => {
if (data.unlockFailed) {
dispatch({ type: ACTIONS.GET_SYNC_FAILED, data: { error: syncAttemptError } });
if (password !== '') {
dispatch({ type: ACTIONS.SYNC_APPLY_BAD_PASSWORD });
}
handleCallback(syncAttemptError);
} else if (data.hasSyncedWallet) {
const error =
(syncAttemptError && syncAttemptError.message) || 'Error getting synced wallet';
dispatch({
type: ACTIONS.GET_SYNC_FAILED,
data: {
error,
},
});
// Temp solution until we have a bad password error code
// Don't fail on blank passwords so we don't show a "password error" message
// before users have ever entered a password
if (password !== '') {
dispatch({ type: ACTIONS.SYNC_APPLY_BAD_PASSWORD });
}
handleCallback(error);
} else {
// user doesn't have a synced wallet
dispatch({
type: ACTIONS.GET_SYNC_COMPLETED,
data: { hasSyncedWallet: false, syncHash: null },
});
// call sync_apply to get data to sync
// first time sync. use any string for old hash
if (syncAttemptError.message === NO_WALLET_ERROR) {
Lbry.sync_apply({ password })
.then(({ hash: walletHash, data: syncApplyData }) => {
dispatch(doSetSync('', walletHash, syncApplyData, password));
handleCallback();
})
.catch(syncApplyError => {
handleCallback(syncApplyError);
});
}
}
});
};
}
export function doSyncApply(syncHash, syncData, password) {
return dispatch => {
dispatch({
type: ACTIONS.SYNC_APPLY_STARTED,
});
Lbry.sync_apply({ password, data: syncData })
.then(({ hash: walletHash, data: walletData }) => {
dispatch({
type: ACTIONS.SYNC_APPLY_COMPLETED,
});
if (walletHash !== syncHash) {
// different local hash, need to synchronise
dispatch(doSetSync(syncHash, walletHash, walletData));
}
})
.catch(() => {
dispatch({
type: ACTIONS.SYNC_APPLY_FAILED,
data: {
error:
'Invalid password specified. Please enter the password for your previously synchronised wallet.',
},
});
});
};
}
export function doCheckSync() {
return dispatch => {
dispatch({
type: ACTIONS.GET_SYNC_STARTED,
});
Lbry.sync_hash().then(hash => {
Lbryio.call('sync', 'get', { hash }, 'post')
.then(response => {
const data = {
hasSyncedWallet: true,
syncHash: response.hash,
syncData: response.data,
hashChanged: response.changed,
};
dispatch({ type: ACTIONS.GET_SYNC_COMPLETED, data });
})
.catch(() => {
// user doesn't have a synced wallet
dispatch({
type: ACTIONS.GET_SYNC_COMPLETED,
data: { hasSyncedWallet: false, syncHash: null },
});
});
});
};
}
export function doResetSync() {
return dispatch =>
new Promise(resolve => {
dispatch({ type: ACTIONS.SYNC_RESET });
resolve();
});
}
export function doSyncEncryptAndDecrypt(oldPassword, newPassword, encrypt) {
return dispatch => {
const data = {};
return Lbry.sync_hash()
.then(hash => Lbryio.call('sync', 'get', { hash }, 'post'))
.then(syncGetResponse => {
data.oldHash = syncGetResponse.hash;
return Lbry.sync_apply({ password: oldPassword, data: syncGetResponse.data });
})
.then(() => {
if (encrypt) {
dispatch(doWalletEncrypt(newPassword));
} else {
dispatch(doWalletDecrypt());
}
})
.then(() => Lbry.sync_apply({ password: newPassword }))
.then(syncApplyResponse => {
if (syncApplyResponse.hash !== data.oldHash) {
return dispatch(doSetSync(data.oldHash, syncApplyResponse.hash, syncApplyResponse.data));
}
})
.catch(console.error);
};
}

View file

@ -0,0 +1,29 @@
import * as ACTIONS from 'constants/action_types';
const reducers = {};
const defaultState = {
authenticating: false,
};
reducers[ACTIONS.GENERATE_AUTH_TOKEN_FAILURE] = state =>
Object.assign({}, state, {
authToken: null,
authenticating: false,
});
reducers[ACTIONS.GENERATE_AUTH_TOKEN_STARTED] = state =>
Object.assign({}, state, {
authenticating: true,
});
reducers[ACTIONS.GENERATE_AUTH_TOKEN_SUCCESS] = (state, action) =>
Object.assign({}, state, {
authToken: action.data.authToken,
authenticating: false,
});
export function authReducer(state = defaultState, action) {
const handler = reducers[action.type];
if (handler) return handler(state, action);
return state;
}

View file

@ -0,0 +1,37 @@
import * as ACTIONS from 'constants/action_types';
import { handleActions } from 'util/redux-utils';
const defaultState = {
fetchingBlackListedOutpoints: false,
fetchingBlackListedOutpointsSucceed: undefined,
blackListedOutpoints: undefined,
};
export const blacklistReducer = handleActions(
{
[ACTIONS.FETCH_BLACK_LISTED_CONTENT_STARTED]: state => ({
...state,
fetchingBlackListedOutpoints: true,
}),
[ACTIONS.FETCH_BLACK_LISTED_CONTENT_COMPLETED]: (state, action) => {
const { outpoints, success } = action.data;
return {
...state,
fetchingBlackListedOutpoints: false,
fetchingBlackListedOutpointsSucceed: success,
blackListedOutpoints: outpoints,
};
},
[ACTIONS.FETCH_BLACK_LISTED_CONTENT_FAILED]: (state, action) => {
const { error, success } = action.data;
return {
...state,
fetchingBlackListedOutpoints: false,
fetchingBlackListedOutpointsSucceed: success,
fetchingBlackListedOutpointsError: error,
};
},
},
defaultState
);

View file

@ -0,0 +1,38 @@
import { handleActions } from 'util/redux-utils';
import * as ACTIONS from 'constants/action_types';
const defaultState = {
fetching: {},
byUri: {},
};
export const costInfoReducer = handleActions(
{
[ACTIONS.FETCH_COST_INFO_STARTED]: (state, action) => {
const { uri } = action.data;
const newFetching = Object.assign({}, state.fetching);
newFetching[uri] = true;
return {
...state,
fetching: newFetching,
};
},
[ACTIONS.FETCH_COST_INFO_COMPLETED]: (state, action) => {
const { uri, costInfo } = action.data;
const newByUri = Object.assign({}, state.byUri);
const newFetching = Object.assign({}, state.fetching);
newByUri[uri] = costInfo;
delete newFetching[uri];
return {
...state,
byUri: newByUri,
fetching: newFetching,
};
},
},
defaultState
);

View file

@ -0,0 +1,34 @@
import * as ACTIONS from 'constants/action_types';
import { handleActions } from 'util/redux-utils';
const defaultState = {
loading: false,
filteredOutpoints: undefined,
};
export const filteredReducer = handleActions(
{
[ACTIONS.FETCH_FILTERED_CONTENT_STARTED]: state => ({
...state,
loading: true,
}),
[ACTIONS.FETCH_FILTERED_CONTENT_COMPLETED]: (state, action) => {
const { outpoints } = action.data;
return {
...state,
loading: false,
filteredOutpoints: outpoints,
};
},
[ACTIONS.FETCH_FILTERED_CONTENT_FAILED]: (state, action) => {
const { error } = action.data;
return {
...state,
loading: false,
fetchingFilteredOutpointsError: error,
};
},
},
defaultState
);

View file

@ -0,0 +1,55 @@
import { handleActions } from 'util/redux-utils';
import * as ACTIONS from 'constants/action_types';
const defaultState = {
fetchingViewCount: false,
viewCountError: undefined,
viewCountById: {},
fetchingSubCount: false,
subCountError: undefined,
subCountById: {},
};
export const statsReducer = handleActions(
{
[ACTIONS.FETCH_VIEW_COUNT_STARTED]: state => ({ ...state, fetchingViewCount: true }),
[ACTIONS.FETCH_VIEW_COUNT_FAILED]: (state, action) => ({
...state,
viewCountError: action.data,
}),
[ACTIONS.FETCH_VIEW_COUNT_COMPLETED]: (state, action) => {
const { claimIdCsv, viewCounts } = action.data;
const viewCountById = Object.assign({}, state.viewCountById);
const claimIds = claimIdCsv.split(',');
if (claimIds.length === viewCounts.length) {
claimIds.forEach((claimId, index) => {
viewCountById[claimId] = viewCounts[index];
});
}
return {
...state,
fetchingViewCount: false,
viewCountById,
};
},
[ACTIONS.FETCH_SUB_COUNT_STARTED]: state => ({ ...state, fetchingSubCount: true }),
[ACTIONS.FETCH_SUB_COUNT_FAILED]: (state, action) => ({
...state,
subCountError: action.data,
}),
[ACTIONS.FETCH_SUB_COUNT_COMPLETED]: (state, action) => {
const { claimId, subCount } = action.data;
const subCountById = { ...state.subCountById, [claimId]: subCount };
return {
...state,
fetchingSubCount: false,
subCountById,
};
},
},
defaultState
);

View file

@ -0,0 +1,89 @@
import * as ACTIONS from 'constants/action_types';
const reducers = {};
const defaultState = {
hasSyncedWallet: false,
syncHash: null,
syncData: null,
setSyncErrorMessage: null,
getSyncErrorMessage: null,
syncApplyErrorMessage: '',
syncApplyIsPending: false,
syncApplyPasswordError: false,
getSyncIsPending: false,
setSyncIsPending: false,
hashChanged: false,
};
reducers[ACTIONS.GET_SYNC_STARTED] = state =>
Object.assign({}, state, {
getSyncIsPending: true,
getSyncErrorMessage: null,
});
reducers[ACTIONS.GET_SYNC_COMPLETED] = (state, action) =>
Object.assign({}, state, {
syncHash: action.data.syncHash,
syncData: action.data.syncData,
hasSyncedWallet: action.data.hasSyncedWallet,
getSyncIsPending: false,
hashChanged: action.data.hashChanged,
});
reducers[ACTIONS.GET_SYNC_FAILED] = (state, action) =>
Object.assign({}, state, {
getSyncIsPending: false,
getSyncErrorMessage: action.data.error,
});
reducers[ACTIONS.SET_SYNC_STARTED] = state =>
Object.assign({}, state, {
setSyncIsPending: true,
setSyncErrorMessage: null,
});
reducers[ACTIONS.SET_SYNC_FAILED] = (state, action) =>
Object.assign({}, state, {
setSyncIsPending: false,
setSyncErrorMessage: action.data.error,
});
reducers[ACTIONS.SET_SYNC_COMPLETED] = (state, action) =>
Object.assign({}, state, {
setSyncIsPending: false,
setSyncErrorMessage: null,
hasSyncedWallet: true, // sync was successful, so the user has a synced wallet at this point
syncHash: action.data.syncHash,
});
reducers[ACTIONS.SYNC_APPLY_STARTED] = state =>
Object.assign({}, state, {
syncApplyPasswordError: false,
syncApplyIsPending: true,
syncApplyErrorMessage: '',
});
reducers[ACTIONS.SYNC_APPLY_COMPLETED] = state =>
Object.assign({}, state, {
syncApplyIsPending: false,
syncApplyErrorMessage: '',
});
reducers[ACTIONS.SYNC_APPLY_FAILED] = (state, action) =>
Object.assign({}, state, {
syncApplyIsPending: false,
syncApplyErrorMessage: action.data.error,
});
reducers[ACTIONS.SYNC_APPLY_BAD_PASSWORD] = state =>
Object.assign({}, state, {
syncApplyPasswordError: true,
});
reducers[ACTIONS.SYNC_RESET] = () => defaultState;
export function syncReducer(state = defaultState, action) {
const handler = reducers[action.type];
if (handler) return handler(state, action);
return state;
}

View file

@ -0,0 +1,7 @@
import { createSelector } from 'reselect';
const selectState = state => state.auth || {};
export const selectAuthToken = createSelector(selectState, state => state.authToken);
export const selectIsAuthenticating = createSelector(selectState, state => state.authenticating);

View file

@ -0,0 +1,73 @@
// @flow
// TODO: This should be in 'redux/selectors/claim.js'. Temporarily putting it
// here to get past importing issues with 'lbryinc', which the real fix might
// involve moving it from 'extras' to 'ui' (big change).
import { createCachedSelector } from 're-reselect';
import { selectClaimForUri, makeSelectIsBlacklisted } from 'redux/selectors/claims';
import { selectMutedChannels } from 'redux/selectors/blocked';
import { selectModerationBlockList } from 'redux/selectors/comments';
import { selectBlacklistedOutpointMap, selectFilteredOutpointMap } from 'lbryinc';
import { getChannelFromClaim } from 'util/claim';
import { isURIEqual } from 'util/lbryURI';
export const selectBanStateForUri = createCachedSelector(
selectClaimForUri,
selectBlacklistedOutpointMap,
selectFilteredOutpointMap,
selectMutedChannels,
selectModerationBlockList,
(state, uri) => makeSelectIsBlacklisted(uri)(state),
(claim, blackListedOutpointMap, filteredOutpointMap, mutedChannelUris, personalBlocklist, isBlacklisted) => {
const banState = {};
if (!claim) {
return banState;
}
const channelClaim = getChannelFromClaim(claim);
if (isBlacklisted) {
banState['blacklisted'] = true;
}
// This will be replaced once blocking is done at the wallet server level.
if (blackListedOutpointMap) {
if (
(channelClaim && blackListedOutpointMap[`${channelClaim.txid}:${channelClaim.nout}`]) ||
blackListedOutpointMap[`${claim.txid}:${claim.nout}`]
) {
banState['blacklisted'] = true;
}
}
// We're checking to see if the stream outpoint or signing channel outpoint
// is in the filter list.
if (filteredOutpointMap) {
if (
(channelClaim && filteredOutpointMap[`${channelClaim.txid}:${channelClaim.nout}`]) ||
filteredOutpointMap[`${claim.txid}:${claim.nout}`]
) {
banState['filtered'] = true;
}
}
// block stream claims
// block channel claims if we can't control for them in claim search
if (mutedChannelUris.length && channelClaim) {
if (mutedChannelUris.some((blockedUri) => isURIEqual(blockedUri, channelClaim.permanent_url))) {
banState['muted'] = true;
}
}
// Commentron blocklist
if (personalBlocklist.length && channelClaim) {
if (personalBlocklist.some((blockedUri) => isURIEqual(blockedUri, channelClaim.permanent_url))) {
banState['blocked'] = true;
}
}
return banState;
}
)((state, uri) => String(uri));

View file

@ -0,0 +1,20 @@
import { createSelector } from 'reselect';
export const selectState = state => state.blacklist || {};
export const selectBlackListedOutpoints = createSelector(
selectState,
state => state.blackListedOutpoints
);
export const selectBlacklistedOutpointMap = createSelector(
selectBlackListedOutpoints,
outpoints =>
outpoints
? outpoints.reduce((acc, val) => {
const outpoint = `${val.txid}:${val.nout}`;
acc[outpoint] = 1;
return acc;
}, {})
: {}
);

View file

@ -0,0 +1,16 @@
// @flow
type State = { costInfo: any };
export const selectState = (state: State) => state.costInfo || {};
export const selectAllCostInfoByUri = (state: State) => selectState(state).byUri;
export const selectFetchingCostInfo = (state: State) => selectState(state).fetching;
export const selectCostInfoForUri = (state: State, uri: string) => {
const costInfos = selectAllCostInfoByUri(state);
return costInfos && costInfos[uri];
};
export const selectFetchingCostInfoForUri = (state: State, uri: string) => {
const fetchingByUri = selectFetchingCostInfo(state);
return fetchingByUri && fetchingByUri[uri];
};

View file

@ -0,0 +1,20 @@
import { createSelector } from 'reselect';
export const selectState = state => state.filtered || {};
export const selectFilteredOutpoints = createSelector(
selectState,
state => state.filteredOutpoints
);
export const selectFilteredOutpointMap = createSelector(
selectFilteredOutpoints,
outpoints =>
outpoints
? outpoints.reduce((acc, val) => {
const outpoint = `${val.txid}:${val.nout}`;
acc[outpoint] = 1;
return acc;
}, {})
: {}
);

View file

@ -0,0 +1,20 @@
// @flow
import { createSelector } from 'reselect';
import { selectClaimIdForUri } from 'redux/selectors/claims';
type State = { claims: any };
const selectState = state => state.stats || {};
export const selectViewCount = createSelector(selectState, state => state.viewCountById);
export const selectSubCount = createSelector(selectState, state => state.subCountById);
export const selectViewCountForUri = (state: State, uri: string) => {
const claimId = selectClaimIdForUri(state, uri);
const viewCountById = selectViewCount(state);
return claimId ? viewCountById[claimId] || 0 : 0;
};
export const selectSubCountForUri = (state: State, uri: string) => {
const claimId = selectClaimIdForUri(state, uri);
const subCountById = selectSubCount(state);
return claimId ? subCountById[claimId] || 0 : 0;
};

View file

@ -0,0 +1,40 @@
import { createSelector } from 'reselect';
const selectState = state => state.sync || {};
export const selectHasSyncedWallet = createSelector(selectState, state => state.hasSyncedWallet);
export const selectSyncHash = createSelector(selectState, state => state.syncHash);
export const selectSyncData = createSelector(selectState, state => state.syncData);
export const selectSetSyncErrorMessage = createSelector(
selectState,
state => state.setSyncErrorMessage
);
export const selectGetSyncErrorMessage = createSelector(
selectState,
state => state.getSyncErrorMessage
);
export const selectGetSyncIsPending = createSelector(selectState, state => state.getSyncIsPending);
export const selectSetSyncIsPending = createSelector(selectState, state => state.setSyncIsPending);
export const selectHashChanged = createSelector(selectState, state => state.hashChanged);
export const selectSyncApplyIsPending = createSelector(
selectState,
state => state.syncApplyIsPending
);
export const selectSyncApplyErrorMessage = createSelector(
selectState,
state => state.syncApplyErrorMessage
);
export const selectSyncApplyPasswordError = createSelector(
selectState,
state => state.syncApplyPasswordError
);

View file

@ -0,0 +1,17 @@
// util for creating reducers
// based off of redux-actions
// https://redux-actions.js.org/docs/api/handleAction.html#handleactions
// eslint-disable-next-line import/prefer-default-export
export const handleActions = (actionMap, defaultState) => (state = defaultState, action) => {
const handler = actionMap[action.type];
if (handler) {
const newState = handler(state, action);
return Object.assign({}, state, newState);
}
// just return the original state if no handler
// returning a copy here breaks redux-persist
return state;
};

View file

@ -0,0 +1,10 @@
export function swapKeyAndValue(dict) {
const ret = {};
// eslint-disable-next-line no-restricted-syntax
for (const key in dict) {
if (dict.hasOwnProperty(key)) {
ret[dict[key]] = key;
}
}
return ret;
}

View file

@ -0,0 +1,78 @@
const apiBaseUrl = 'https://www.transifex.com/api/2/project';
const resource = 'app-strings';
export function doTransifexUpload(contents, project, token, success, fail) {
const url = `${apiBaseUrl}/${project}/resources/`;
const updateUrl = `${apiBaseUrl}/${project}/resource/${resource}/content/`;
const headers = {
Authorization: `Basic ${Buffer.from(`api:${token}`).toString('base64')}`,
'Content-Type': 'application/json',
};
const req = {
accept_translations: true,
i18n_type: 'KEYVALUEJSON',
name: resource,
slug: resource,
content: contents,
};
function handleResponse(text) {
let json;
try {
// transifex api returns Python dicts for some reason.
// Any way to get the api to return valid JSON?
json = JSON.parse(text);
} catch (e) {
// ignore
}
if (success) {
success(json || text);
}
}
function handleError(err) {
if (fail) {
fail(err.message ? err.message : 'Could not upload strings resource to Transifex');
}
}
// check if the resource exists
fetch(updateUrl, { headers })
.then(response => response.json())
.then(() => {
// perform an update
fetch(updateUrl, {
method: 'PUT',
headers,
body: JSON.stringify({ content: contents }),
})
.then(response => {
if (response.status !== 200 && response.status !== 201) {
throw new Error('failed to update transifex');
}
return response.text();
})
.then(handleResponse)
.catch(handleError);
})
.catch(() => {
// resource doesn't exist, create a fresh resource
fetch(url, {
method: 'POST',
headers,
body: JSON.stringify(req),
})
.then(response => {
if (response.status !== 200 && response.status !== 201) {
throw new Error('failed to upload to transifex');
}
return response.text();
})
.then(handleResponse)
.catch(handleError);
});
}

3
extras/recsys/index.js Normal file
View file

@ -0,0 +1,3 @@
import Recsys from './recsys';
export default Recsys;

257
extras/recsys/recsys.js Normal file
View file

@ -0,0 +1,257 @@
import { selectUser } from 'redux/selectors/user';
import { makeSelectRecommendedRecsysIdForClaimId } from 'redux/selectors/search';
import { v4 as Uuidv4 } from 'uuid';
import { parseURI } from 'util/lbryURI';
import * as SETTINGS from 'constants/settings';
import { makeSelectClaimForUri } from 'redux/selectors/claims';
import { selectPlayingUri, selectPrimaryUri } from 'redux/selectors/content';
import { makeSelectClientSetting, selectDaemonSettings } from 'redux/selectors/settings';
import { history } from 'ui/store';
const recsysEndpoint = 'https://clickstream.odysee.com/log/video/view';
const recsysId = 'lighthouse-v0';
const getClaimIdsFromUris = (uris) => {
return uris
? uris.map((uri) => {
try {
const { claimId } = parseURI(uri);
return claimId;
} catch (e) {
return [];
}
})
: [];
};
const recsys = {
entries: {},
debug: false,
/**
* Provides for creating, updating, and sending Clickstream data object Entries.
* Entries are Created either when recommendedContent loads, or when recommendedContent is clicked.
* If recommended content is clicked, An Entry with parentUuid is created.
* On page load, find an empty entry with your claimId, or create a new entry and record to it.
* The entry will be populated with the following:
* - parentUuid // optional
* - Uuid
* - claimId
* - recommendedClaims [] // optionally empty
* - playerEvents [] // optionally empty
* - recommendedClaimsIndexClicked [] // optionally empty
* - UserId
* - pageLoadedAt
* - isEmbed
* - pageExitedAt
* - recsysId // optional
*/
/**
* Function: onClickedRecommended()
* Called when RecommendedContent was clicked.
* Adds index of clicked recommendation to parent entry
* Adds new Entry with parentUuid for destination page
* @param parentClaimId: string,
* @param newClaimId: string,
*/
onClickedRecommended: function (parentClaimId, newClaimId) {
const parentEntry = recsys.entries[parentClaimId] ? recsys.entries[parentClaimId] : null;
const parentUuid = parentEntry['uuid'];
const parentRecommendedClaims = parentEntry['recClaimIds'] || [];
const parentClickedIndexes = parentEntry['recClickedVideoIdx'] || [];
const indexClicked = parentRecommendedClaims.indexOf(newClaimId);
if (parentUuid) {
recsys.createRecsysEntry(newClaimId, parentUuid);
}
parentClickedIndexes.push(indexClicked);
recsys.log('onClickedRecommended', { parentClaimId, newClaimId });
},
/**
* Page was loaded. Get or Create entry and populate it with default data, plus recommended content, recsysId, etc.
* Called from recommendedContent component
*/
onRecsLoaded: function (claimId, uris) {
if (window.store) {
const state = window.store.getState();
if (!recsys.entries[claimId]) {
recsys.createRecsysEntry(claimId);
}
const claimIds = getClaimIdsFromUris(uris);
recsys.entries[claimId]['recsysId'] = makeSelectRecommendedRecsysIdForClaimId(claimId)(state) || recsysId;
recsys.entries[claimId]['pageLoadedAt'] = Date.now();
recsys.entries[claimId]['recClaimIds'] = claimIds;
}
recsys.log('onRecsLoaded', claimId);
},
/**
* Creates an Entry with optional parentUuid
* @param: claimId: string
* @param: parentUuid: string (optional)
*/
createRecsysEntry: function (claimId, parentUuid) {
if (window.store && claimId) {
const state = window.store.getState();
const user = selectUser(state);
const userId = user ? user.id : null;
if (parentUuid) {
// Make a stub entry that will be filled out on page load
recsys.entries[claimId] = {
uuid: Uuidv4(),
parentUuid: parentUuid,
uid: userId || null, // selectUser
claimId: claimId,
recClickedVideoIdx: [],
pageLoadedAt: Date.now(),
events: [],
};
} else {
recsys.entries[claimId] = {
uuid: Uuidv4(),
uid: userId, // selectUser
claimId: claimId,
pageLoadedAt: Date.now(),
recsysId: null,
recClaimIds: [],
recClickedVideoIdx: [],
events: [],
};
}
}
recsys.log('createRecsysEntry', claimId);
},
/**
* Send event for claimId
* @param claimId
* @param isTentative
*/
sendRecsysEntry: function (claimId, isTentative) {
const shareTelemetry =
IS_WEB || (window && window.store && selectDaemonSettings(window.store.getState()).share_usage_data);
if (recsys.entries[claimId] && shareTelemetry) {
const data = JSON.stringify(recsys.entries[claimId]);
try {
navigator.sendBeacon(recsysEndpoint, data);
if (!isTentative) {
delete recsys.entries[claimId];
}
} catch (error) {
console.log('no beacon for you', error);
}
}
recsys.log('sendRecsysEntry', claimId);
},
/**
* A player event fired. Get the Entry for the claimId, and add the events
* @param claimId
* @param event
*/
onRecsysPlayerEvent: function (claimId, event, isEmbedded) {
if (!recsys.entries[claimId]) {
recsys.createRecsysEntry(claimId);
// do something to show it's floating or autoplay
}
if (isEmbedded) {
recsys.entries[claimId]['isEmbed'] = true;
}
recsys.entries[claimId].events.push(event);
recsys.log('onRecsysPlayerEvent', claimId);
},
log: function (callName, claimId) {
if (recsys.debug) {
console.log(`Call: ***${callName}***, ClaimId: ${claimId}, Recsys Entries`, Object.assign({}, recsys.entries));
}
},
/**
* Player closed. Check to see if primaryUri = playingUri
* if so, send the Entry.
*/
onPlayerDispose: function (claimId, isEmbedded) {
if (window.store) {
const state = window.store.getState();
const playingUri = selectPlayingUri(state);
const primaryUri = selectPrimaryUri(state);
const onFilePage = playingUri === primaryUri;
if (!onFilePage || isEmbedded) {
if (isEmbedded) {
recsys.entries[claimId]['isEmbed'] = true;
}
recsys.sendRecsysEntry(claimId);
}
}
recsys.log('PlayerDispose', claimId);
},
// /**
// * File page unmount or change event
// * Check to see if playingUri, floatingEnabled, primaryUri === playingUri
// * If not, send the Entry.
// * If floating enabled, leaving file page will pop out player, leading to
// * more events until player is disposed. Don't send unless floatingPlayer playingUri
// */
// onLeaveFilePage: function (primaryUri) {
// if (window.store) {
// const state = window.store.getState();
// const claim = makeSelectClaimForUri(primaryUri)(state);
// const claimId = claim ? claim.claim_id : null;
// const playingUri = selectPlayingUri(state);
// const actualPlayingUri = playingUri && playingUri.uri;
// // const primaryUri = selectPrimaryUri(state);
// const floatingPlayer = makeSelectClientSetting(SETTINGS.FLOATING_PLAYER)(state);
// // When leaving page, if floating player is enabled, play will continue.
// if (claimId) {
// recsys.entries[claimId]['pageExitedAt'] = Date.now();
// }
// const shouldSend =
// (claimId && floatingPlayer && actualPlayingUri && actualPlayingUri !== primaryUri) || !floatingPlayer || !actualPlayingUri;
// if (shouldSend) {
// recsys.sendRecsysEntry(claimId);
// }
// recsys.log('LeaveFile', claimId);
// }
// },
/**
* Navigate event
* Send all claimIds that aren't currently playing.
*/
onNavigate: function () {
if (window.store) {
const state = window.store.getState();
const playingUri = selectPlayingUri(state);
const actualPlayingUri = playingUri && playingUri.uri;
const claim = makeSelectClaimForUri(actualPlayingUri)(state);
const playingClaimId = claim ? claim.claim_id : null;
// const primaryUri = selectPrimaryUri(state);
const floatingPlayer = makeSelectClientSetting(SETTINGS.FLOATING_PLAYER)(state);
// When leaving page, if floating player is enabled, play will continue.
Object.keys(recsys.entries).forEach((claimId) => {
const shouldSkip = recsys.entries[claimId].parentUuid && !recsys.entries[claimId].recClaimIds;
if (!shouldSkip && ((claimId !== playingClaimId && floatingPlayer) || !floatingPlayer)) {
recsys.entries[claimId]['pageExitedAt'] = Date.now();
recsys.sendRecsysEntry(claimId);
}
recsys.log('OnNavigate', claimId);
});
}
},
};
// @if TARGET='web'
document.addEventListener('visibilitychange', function logData() {
if (document.visibilityState === 'hidden') {
Object.keys(recsys.entries).map((claimId) => recsys.sendRecsysEntry(claimId, true));
}
});
// @endif
history.listen(() => {
recsys.onNavigate();
});
export default recsys;

10
flow-typed/Blocklist.js vendored Normal file
View file

@ -0,0 +1,10 @@
declare type BlocklistState = {
blockedChannels: Array<string>
};
declare type BlocklistAction = {
type: string,
data: {
uri: string,
},
};

251
flow-typed/Claim.js vendored Normal file
View file

@ -0,0 +1,251 @@
// @flow
declare type Claim = StreamClaim | ChannelClaim | CollectionClaim;
declare type ChannelClaim = GenericClaim & {
value: ChannelMetadata,
};
declare type CollectionClaim = GenericClaim & {
value: CollectionMetadata,
};
declare type StreamClaim = GenericClaim & {
value: StreamMetadata,
};
declare type GenericClaim = {
address: string, // address associated with tx
amount: string, // bid amount at time of tx
canonical_url: string, // URL with short id, includes channel with short id
claim_id: string, // unique claim identifier
claim_sequence: number, // not being used currently
claim_op: 'create' | 'update',
confirmations: number,
decoded_claim: boolean, // Not available currently https://github.com/lbryio/lbry/issues/2044
timestamp?: number, // date of last transaction
height: number, // block height the tx was confirmed
is_channel_signature_valid?: boolean,
is_my_output: boolean,
name: string,
normalized_name: string, // `name` normalized via unicode NFD spec,
nout: number, // index number for an output of a tx
permanent_url: string, // name + claim_id
short_url: string, // permanent_url with short id, no channel
txid: string, // unique tx id
type: 'claim' | 'update' | 'support',
value_type: 'stream' | 'channel' | 'collection',
signing_channel?: ChannelClaim,
reposted_claim?: GenericClaim,
repost_channel_url?: string,
repost_url?: string,
repost_bid_amount?: string,
purchase_receipt?: PurchaseReceipt,
meta: {
activation_height: number,
claims_in_channel?: number,
creation_height: number,
creation_timestamp: number,
effective_amount: string,
expiration_height: number,
is_controlling: boolean,
support_amount: string,
reposted: number,
trending_global: number,
trending_group: number,
trending_local: number,
trending_mixed: number,
},
};
declare type GenericMetadata = {
title?: string,
description?: string,
thumbnail?: {
url?: string,
},
languages?: Array<string>,
tags?: Array<string>,
locations?: Array<Location>,
};
declare type ChannelMetadata = GenericMetadata & {
public_key: string,
public_key_id: string,
cover_url?: string,
email?: string,
website_url?: string,
featured?: Array<string>,
};
declare type CollectionMetadata = GenericMetadata & {
claims: Array<string>,
}
declare type StreamMetadata = GenericMetadata & {
license?: string, // License "title" ex: Creative Commons, Custom copyright
license_url?: string, // Link to full license
release_time?: number, // linux timestamp
author?: string,
source: {
sd_hash: string,
media_type?: string,
hash?: string,
name?: string, // file name
size?: number, // size of file in bytes
},
// Only exists if a stream has a fee
fee?: Fee,
stream_type: 'video' | 'audio' | 'image' | 'software',
// Below correspond to `stream_type`
video?: {
duration: number,
height: number,
width: number,
},
audio?: {
duration: number,
},
image?: {
height: number,
width: number,
},
software?: {
os: string,
},
};
declare type Location = {
latitude?: number,
longitude?: number,
country?: string,
state?: string,
city?: string,
code?: string,
};
declare type Fee = {
amount: string,
currency: string,
address: string,
};
declare type PurchaseReceipt = {
address: string,
amount: string,
claim_id: string,
confirmations: number,
height: number,
nout: number,
timestamp: number,
txid: string,
type: 'purchase',
};
declare type ClaimErrorCensor = {
address: string,
amount: string,
canonical_url: string,
claim_id: string,
claim_op: string,
confirmations: number,
has_signing_key: boolean,
height: number,
meta: {
activation_height: number,
claims_in_channel: number,
creation_height: number,
creation_timestamp: number,
effective_amount: string,
expiration_height: number,
is_controlling: boolean,
reposted: number,
support_amount: string,
take_over_height: number,
},
name: string,
normalized_name: string,
nout: number,
permanent_url: string,
short_url: string,
timestamp: number,
txid: string,
type: string,
value: {
public_key: string,
public_key_id: string,
},
value_type: string,
}
declare type ClaimActionResolveInfo = {
[string]: {
stream: ?StreamClaim,
channel: ?ChannelClaim,
claimsInChannel: ?number,
collection: ?CollectionClaim,
errorCensor: ?ClaimErrorCensor,
},
}
declare type ChannelUpdateParams = {
claim_id: string,
bid?: string,
title?: string,
cover_url?: string,
thumbnail_url?: string,
description?: string,
website_url?: string,
email?: string,
tags?: Array<string>,
replace?: boolean,
languages?: Array<string>,
locations?: Array<string>,
blocking?: boolean,
}
declare type ChannelPublishParams = {
name: string,
bid: string,
blocking?: true,
title?: string,
cover_url?: string,
thumbnail_url?: string,
description?: string,
website_url?: string,
email?: string,
tags?: Array<string>,
languages?: Array<string>,
}
declare type CollectionUpdateParams = {
claim_id: string,
claim_ids?: Array<string>,
bid?: string,
title?: string,
cover_url?: string,
thumbnail_url?: string,
description?: string,
website_url?: string,
email?: string,
tags?: Array<string>,
replace?: boolean,
languages?: Array<string>,
locations?: Array<string>,
blocking?: boolean,
}
declare type CollectionPublishParams = {
name: string,
bid: string,
claim_ids: Array<string>,
blocking?: true,
title?: string,
thumbnail_url?: string,
description?: string,
tags?: Array<string>,
languages?: Array<string>,
}

29
flow-typed/CoinSwap.js vendored Normal file
View file

@ -0,0 +1,29 @@
declare type CoinSwapInfo = {
chargeCode: string,
coins: Array<string>,
sendAddresses: { [string]: string},
sendAmounts: { [string]: any },
lbcAmount: number,
status?: {
status: string,
receiptCurrency: string,
receiptTxid: string,
lbcTxid: string,
},
}
declare type CoinSwapState = {
coinSwaps: Array<CoinSwapInfo>,
};
declare type CoinSwapAddAction = {
type: string,
data: CoinSwapInfo,
};
declare type CoinSwapRemoveAction = {
type: string,
data: {
chargeCode: string,
},
};

33
flow-typed/Collections.js vendored Normal file
View file

@ -0,0 +1,33 @@
declare type Collection = {
id: string,
items: Array<?string>,
name: string,
type: string,
updatedAt: number,
totalItems?: number,
sourceId?: string, // if copied, claimId of original collection
};
declare type CollectionState = {
unpublished: CollectionGroup,
resolved: CollectionGroup,
pending: CollectionGroup,
edited: CollectionGroup,
builtin: CollectionGroup,
saved: Array<string>,
isResolvingCollectionById: { [string]: boolean },
error?: string | null,
};
declare type CollectionGroup = {
[string]: Collection,
}
declare type CollectionEditParams = {
uris?: Array<string>,
remove?: boolean,
replace?: boolean,
order?: { from: number, to: number },
type?: string,
name?: string,
}

301
flow-typed/Comment.js vendored Normal file
View file

@ -0,0 +1,301 @@
declare type Comment = {
comment: string, // comment body
comment_id: string, // sha256 digest
claim_id: string, // id linking to the claim this comment
timestamp: number, // integer representing unix-time
is_hidden: boolean, // claim owner may enable/disable this
channel_id: string, // claimId of channel signing this comment
channel_name?: string, // name of channel claim
channel_url?: string, // full lbry url to signing channel
signature?: string, // signature of comment by originating channel
signing_ts?: string, // timestamp used when signing this comment
is_channel_signature_valid?: boolean, // whether or not the signature could be validated
parent_id?: number, // comment_id of comment this is in reply to
is_pinned: boolean,
support_amount: number,
replies: number, // number of direct replies (i.e. excluding nested replies).
is_moderator: boolean,
is_creator: boolean,
is_global_mod: boolean,
is_fiat?: boolean,
};
declare type PerChannelSettings = {
words?: Array<string>,
comments_enabled?: boolean,
min_tip_amount_comment?: number,
min_tip_amount_super_chat?: number,
slow_mode_min_gap?: number,
};
// todo: relate individual comments to their commentId
declare type CommentsState = {
commentsByUri: { [string]: string },
superChatsByUri: { [string]: { totalAmount: number, comments: Array<Comment> } },
byId: { [string]: Array<string> }, // ClaimID -> list of fetched comment IDs.
totalCommentsById: {}, // ClaimId -> ultimate total (including replies) in commentron.
repliesByParentId: { [string]: Array<string> }, // ParentCommentID -> list of fetched replies.
repliesTotalPagesByParentId: {}, // ParentCommentID -> total number of reply pages for a parentId in commentron.
topLevelCommentsById: { [string]: Array<string> }, // ClaimID -> list of fetched top level comments.
topLevelTotalPagesById: { [string]: number }, // ClaimID -> total number of top-level pages in commentron. Based on COMMENT_PAGE_SIZE_TOP_LEVEL.
topLevelTotalCommentsById: { [string]: number }, // ClaimID -> total top level comments in commentron.
commentById: { [string]: Comment },
linkedCommentAncestors: { [string]: Array<string> }, // {"linkedCommentId": ["parentId", "grandParentId", ...]}
pinnedCommentsById: {}, // ClaimId -> array of pinned comment IDs
isLoading: boolean,
isLoadingById: boolean,
isLoadingByParentId: { [string]: boolean },
isCommenting: boolean,
myComments: ?Set<string>,
isFetchingReacts: boolean,
myReactsByCommentId: ?{ [string]: Array<string> }, // {"CommentId:MyChannelId": ["like", "dislike", ...]}
othersReactsByCommentId: ?{ [string]: { [string]: number } }, // {"CommentId:MyChannelId": {"like": 2, "dislike": 2, ...}}
pendingCommentReactions: Array<string>,
moderationBlockList: ?Array<string>, // @KP rename to "personalBlockList"?
adminBlockList: ?Array<string>,
moderatorBlockList: ?Array<string>,
moderatorBlockListDelegatorsMap: {[string]: Array<string>}, // {"blockedUri": ["delegatorUri1", ""delegatorUri2", ...]}
fetchingModerationBlockList: boolean,
moderationDelegatesById: { [string]: Array<{ channelId: string, channelName: string }> },
fetchingModerationDelegates: boolean,
moderationDelegatorsById: { [string]: { global: boolean, delegators: { name: string, claimId: string } }},
fetchingModerationDelegators: boolean,
blockingByUri: {},
unBlockingByUri: {},
personalTimeoutMap: { [uri: string]: { blockedAt: string, bannedFor: number, banRemaining: number } },
adminTimeoutMap: { [uri: string]: { blockedAt: string, bannedFor: number, banRemaining: number } },
moderatorTimeoutMap: { [uri: string]: { blockedAt: string, bannedFor: number, banRemaining: number } },
togglingForDelegatorMap: {[string]: Array<string>}, // {"blockedUri": ["delegatorUri1", ""delegatorUri2", ...]}
settingsByChannelId: { [string]: PerChannelSettings }, // ChannelID -> settings
fetchingSettings: boolean,
fetchingBlockedWords: boolean,
};
declare type CommentReactParams = {
comment_ids: string,
channel_name: string,
channel_id: string,
react_type: string,
clear_types?: string,
remove?: boolean,
};
declare type ReactionReactParams = {
comment_ids: string,
signature?: string,
signing_ts?: string,
remove?: boolean,
clear_types?: string,
type: string,
channel_id: string,
channel_name: string,
};
declare type ReactionReactResponse = {
Reactions: { [string]: { [string]: number} },
};
declare type ReactionListParams = {
comment_ids: string, // CSV of IDs
channel_id?: string,
channel_name?: string,
signature?: string,
signing_ts?: string,
types?: string,
};
declare type ReactionListResponse = {
my_reactions: Array<MyReactions>,
others_reactions: Array<OthersReactions>,
};
declare type CommentListParams = {
page: number, // pagination: which page of results
page_size: number, // pagination: nr of comments to show in a page (max 200)
claim_id?: string, // claim id of claim being commented on
channel_name?: string, // signing channel name of claim (enables 'commentsEnabled' check)
channel_id?: string, // signing channel claim id of claim (enables 'commentsEnabled' check)
author_claim_id?: string, // filters comments to just this author
parent_id?: string, // filters comments to those under this thread
top_level?: boolean, // filters to only top level comments
hidden?: boolean, // if true, will show hidden comments as well
sort_by?: number, // @see: ui/constants/comments.js::SORT_BY
};
declare type CommentListResponse = {
items: Array<Comment>,
page: number,
page_size: number,
total_items: number, // Grand total for the claim being commented on.
total_filtered_items: number, // Total for filtered queries (e.g. top_level=true, parent_id=xxx, etc.).
total_pages: number,
has_hidden_comments: boolean,
};
declare type CommentByIdParams = {
comment_id: string,
with_ancestors: boolean,
}
declare type CommentByIdResponse = {
item: Comment,
items: Comment,
ancestors: Array<Comment>,
}
declare type CommentPinParams = {
comment_id: string,
channel_id: string,
channel_name: string,
remove?: boolean,
signature: string,
signing_ts: string,
}
declare type CommentPinResponse = {
items: Comment, // "items" is an inherited typo to match SDK. Will be "item" in a new version.
}
declare type CommentEditParams = {
comment: string,
comment_id: string,
signature: string,
signing_ts: string,
}
declare type CommentEditResponse = Comment
declare type CommentAbandonParams = {
comment_id: string,
creator_channel_id?: string,
creator_channel_name?: string,
channel_id?: string,
hexdata?: string,
};
declare type CommentCreateParams = {
comment: string,
claim_id: string,
parent_id?: string,
signature: string,
signing_ts: string,
support_tx_id?: string,
};
declare type SuperListParams = {};
declare type SuperListResponse = {
page: number,
page_size: number,
total_pages: number,
total_items: number,
total_amount: number,
items: Array<Comment>,
has_hidden_comments: boolean,
};
declare type ModerationBlockParams = {
// Publisher, Moderator, or Commentron Admin
mod_channel_id: string,
mod_channel_name: string,
// Offender being blocked
blocked_channel_id: string,
blocked_channel_name: string,
// Creator that Moderator is delegated from. Used for delegated moderation
creator_channel_id?: string,
creator_channel_name?: string,
// Blocks identity from comment universally, requires Admin rights on commentron instance
block_all?: boolean,
time_out?: number,
// If true will delete all comments of the offender, requires Admin rights on commentron for universal delete
delete_all?: boolean,
// The usual signature stuff
signature: string,
signing_ts: string,
};
declare type ModerationBlockResponse = {
deleted_comment_ids: Array<string>,
banned_channel_id: string,
all_blocked: boolean,
banned_from: string,
};
declare type BlockedListArgs = {
// Publisher, Moderator or Commentron Admin
mod_channel_id: string,
mod_channel_name: string,
// Creator that Moderator is delegated from. Used for delegated moderation
creator_channel_id?: string,
creator_channel_name?: string,
signature: string,
signing_ts: string,
};
declare type ModerationAddDelegateParams = {
mod_channel_id: string,
mod_channel_name: string,
creator_channel_id: string,
creator_channel_name: string,
signature: string,
signing_ts: string,
};
declare type ModerationRemoveDelegateParams = {
mod_channel_id: string,
mod_channel_name: string,
creator_channel_id: string,
creator_channel_name: string,
signature: string,
signing_ts: string,
};
declare type ModerationListDelegatesParams = {
creator_channel_id: string,
creator_channel_name: string,
signature: string,
signing_ts: string,
};
declare type ModerationAmIParams = {
channel_name: string,
channel_id: string,
signature: string,
signing_ts: string
};
declare type SettingsParams = {
channel_name?: string,
channel_id: string,
signature?: string,
signing_ts?: string,
};
declare type SettingsResponse = {
words?: string,
comments_enabled: boolean,
min_tip_amount_comment: number,
min_tip_amount_super_chat: number,
slow_mode_min_gap: number,
curse_jar_amount: number,
filters_enabled?: boolean,
};
declare type UpdateSettingsParams = {
channel_name: string,
channel_id: string,
signature: string,
signing_ts: string,
comments_enabled?: boolean,
min_tip_amount_comment?: number,
min_tip_amount_super_chat?: number,
slow_mode_min_gap?: number,
}
declare type BlockWordParams = {
channel_name: string,
channel_id: string,
signature: string,
signing_ts: string,
words: string, // CSV list of containing words to block comment on content
};

78
flow-typed/File.js vendored Normal file
View file

@ -0,0 +1,78 @@
// @flow
declare type FileListItem = {
metadata: StreamMetadata,
added_on: number,
blobs_completed: number,
blobs_in_stream: number,
blobs_remaining: number,
channel_claim_id: string,
channel_name: string,
claim_id: string,
claim_name: string,
completed: false,
content_fee?: { txid: string },
purchase_receipt?: { txid: string, amount: string },
download_directory: string,
download_path: string,
file_name: string,
key: string,
mime_type: string,
nout: number,
outpoint: string,
points_paid: number,
protobuf: string,
reflector_progress: number,
sd_hash: string,
status: string,
stopped: false,
stream_hash: string,
stream_name: string,
streaming_url: string,
suggested_file_name: string,
total_bytes: number,
total_bytes_lower_bound: number,
is_fully_reflected: boolean,
// TODO: sdk plans to change `tx`
// It isn't currently used by the apps
tx: {},
txid: string,
uploading_to_reflector: boolean,
written_bytes: number,
};
declare type FileState = {
failedPurchaseUris: Array<string>,
purchasedUris: Array<string>,
};
declare type PurchaseUriCompleted = {
type: ACTIONS.PURCHASE_URI_COMPLETED,
data: {
uri: string,
streamingUrl: string,
},
};
declare type PurchaseUriFailed = {
type: ACTIONS.PURCHASE_URI_FAILED,
data: {
uri: string,
error: any,
},
};
declare type PurchaseUriStarted = {
type: ACTIONS.PURCHASE_URI_STARTED,
data: {
uri: string,
streamingUrl: string,
},
};
declare type DeletePurchasedUri = {
type: ACTIONS.CLEAR_PURCHASED_URI_SUCCESS,
data: {
uri: string,
},
};

369
flow-typed/Lbry.js vendored Normal file
View file

@ -0,0 +1,369 @@
// @flow
declare type StatusResponse = {
blob_manager: {
finished_blobs: number,
},
blockchain_headers: {
download_progress: number,
downloading_headers: boolean,
},
dht: {
node_id: string,
peers_in_routing_table: number,
},
hash_announcer: {
announce_queue_size: number,
},
installation_id: string,
is_running: boolean,
skipped_components: Array<string>,
startup_status: {
blob_manager: boolean,
blockchain_headers: boolean,
database: boolean,
dht: boolean,
exchange_rate_manager: boolean,
hash_announcer: boolean,
peer_protocol_server: boolean,
stream_manager: boolean,
upnp: boolean,
wallet: boolean,
},
stream_manager: {
managed_files: number,
},
upnp: {
aioupnp_version: string,
dht_redirect_set: boolean,
external_ip: string,
gateway: string,
peer_redirect_set: boolean,
redirects: {},
},
wallet: ?{
connected: string,
best_blockhash: string,
blocks: number,
blocks_behind: number,
is_encrypted: boolean,
is_locked: boolean,
headers_synchronization_progress: number,
available_servers: number,
},
};
declare type VersionResponse = {
build: string,
lbrynet_version: string,
os_release: string,
os_system: string,
platform: string,
processor: string,
python_version: string,
};
declare type BalanceResponse = {
available: string,
reserved: string,
reserved_subtotals: ?{
claims: string,
supports: string,
tips: string,
},
total: string,
};
declare type ResolveResponse = {
// Keys are the url(s) passed to resolve
[string]: { error?: {}, stream?: StreamClaim, channel?: ChannelClaim, collection?: CollectionClaim, claimsInChannel?: number },
};
declare type GetResponse = FileListItem & { error?: string };
declare type GenericTxResponse = {
height: number,
hex: string,
inputs: Array<{}>,
outputs: Array<{}>,
total_fee: string,
total_input: string,
total_output: string,
txid: string,
};
declare type PublishResponse = GenericTxResponse & {
// Only first value in outputs is a claim
// That's the only value we care about
outputs: Array<Claim>,
};
declare type ClaimSearchResponse = {
items: Array<Claim>,
page: number,
page_size: number,
total_items: number,
total_pages: number,
};
declare type ClaimListResponse = {
items: Array<ChannelClaim | Claim>,
page: number,
page_size: number,
total_items: number,
total_pages: number,
};
declare type ChannelCreateResponse = GenericTxResponse & {
outputs: Array<ChannelClaim>,
};
declare type ChannelUpdateResponse = GenericTxResponse & {
outputs: Array<ChannelClaim>,
};
declare type CommentCreateResponse = Comment;
declare type CommentUpdateResponse = Comment;
declare type MyReactions = {
// Keys are the commentId
[string]: Array<string>,
};
declare type OthersReactions = {
// Keys are the commentId
[string]: {
// Keys are the reaction_type, e.g. 'like'
[string]: number,
},
};
declare type CommentReactListResponse = {
my_reactions: Array<MyReactions>,
others_reactions: Array<OthersReactions>,
};
declare type CommentHideResponse = {
// keyed by the CommentIds entered
[string]: { hidden: boolean },
};
declare type CommentPinResponse = {
// keyed by the CommentIds entered
items: Comment,
};
declare type CommentAbandonResponse = {
// keyed by the CommentId given
abandoned: boolean,
};
declare type ChannelListResponse = {
items: Array<ChannelClaim>,
page: number,
page_size: number,
total_items: number,
total_pages: number,
};
declare type ChannelSignResponse = {
signature: string,
signing_ts: string,
};
declare type CollectionCreateResponse = {
outputs: Array<Claim>,
page: number,
page_size: number,
total_items: number,
total_pages: number,
}
declare type CollectionListResponse = {
items: Array<Claim>,
page: number,
page_size: number,
total_items: number,
total_pages: number,
};
declare type CollectionResolveResponse = {
items: Array<Claim>,
total_items: number,
};
declare type CollectionResolveOptions = {
claim_id: string,
};
declare type CollectionListOptions = {
page: number,
page_size: number,
resolve?: boolean,
};
declare type FileListResponse = {
items: Array<FileListItem>,
page: number,
page_size: number,
total_items: number,
total_pages: number,
};
declare type TxListResponse = {
items: Array<Transaction>,
page: number,
page_size: number,
total_items: number,
total_pages: number,
};
declare type SupportListResponse = {
items: Array<Support>,
page: number,
page_size: number,
total_items: number,
total_pages: number,
};
declare type BlobListResponse = { items: Array<string> };
declare type WalletListResponse = Array<{
id: string,
name: string,
}>;
declare type WalletStatusResponse = {
is_encrypted: boolean,
is_locked: boolean,
is_syncing: boolean,
};
declare type SyncApplyResponse = {
hash: string,
data: string,
};
declare type SupportAbandonResponse = GenericTxResponse;
declare type StreamListResponse = {
items: Array<StreamClaim>,
page: number,
page_size: number,
total_items: number,
total_pages: number,
};
declare type StreamRepostOptions = {
name: string,
bid: string,
claim_id: string,
channel_id?: string,
};
declare type StreamRepostResponse = GenericTxResponse;
declare type PurchaseListResponse = {
items: Array<PurchaseReceipt & { claim: StreamClaim }>,
page: number,
page_size: number,
total_items: number,
total_pages: number,
};
declare type PurchaseListOptions = {
page: number,
page_size: number,
resolve: boolean,
claim_id?: string,
channel_id?: string,
};
//
// Types used in the generic Lbry object that is exported
//
declare type LbryTypes = {
isConnected: boolean,
connectPromise: any, // null |
connect: () => any, // void | Promise<any> ?
daemonConnectionString: string,
alternateConnectionString: string,
methodsUsingAlternateConnectionString: Array<string>,
apiRequestHeaders: { [key: string]: string },
setDaemonConnectionString: string => void,
setApiHeader: (string, string) => void,
unsetApiHeader: string => void,
overrides: { [string]: ?Function },
setOverride: (string, Function) => void,
// getMediaType: (?string, ?string) => string,
// Lbry Methods
stop: () => Promise<string>,
status: () => Promise<StatusResponse>,
version: () => Promise<VersionResponse>,
resolve: (params: {}) => Promise<ResolveResponse>,
get: (params: {}) => Promise<GetResponse>,
publish: (params: {}) => Promise<PublishResponse>,
claim_search: (params: {}) => Promise<ClaimSearchResponse>,
claim_list: (params: {}) => Promise<ClaimListResponse>,
channel_create: (params: {}) => Promise<ChannelCreateResponse>,
channel_update: (params: {}) => Promise<ChannelUpdateResponse>,
channel_import: (params: {}) => Promise<string>,
channel_list: (params: {}) => Promise<ChannelListResponse>,
channel_sign: (params: {}) => Promise<ChannelSignResponse>,
stream_abandon: (params: {}) => Promise<GenericTxResponse>,
stream_list: (params: {}) => Promise<StreamListResponse>,
channel_abandon: (params: {}) => Promise<GenericTxResponse>,
support_create: (params: {}) => Promise<GenericTxResponse>,
support_list: (params: {}) => Promise<SupportListResponse>,
support_abandon: (params: {}) => Promise<SupportAbandonResponse>,
stream_repost: (params: StreamRepostOptions) => Promise<StreamRepostResponse>,
purchase_list: (params: PurchaseListOptions) => Promise<PurchaseListResponse>,
collection_resolve: (params: CollectionResolveOptions) => Promise<CollectionResolveResponse>,
collection_list: (params: CollectionListOptions) => Promise<CollectionListResponse>,
collection_create: (params: {}) => Promise<CollectionCreateResponse>,
collection_update: (params: {}) => Promise<CollectionCreateResponse>,
// File fetching and manipulation
file_list: (params: {}) => Promise<FileListResponse>,
file_delete: (params: {}) => Promise<boolean>,
blob_delete: (params: {}) => Promise<string>,
blob_list: (params: {}) => Promise<BlobListResponse>,
file_set_status: (params: {}) => Promise<any>,
file_reflect: (params: {}) => Promise<any>,
// Preferences
preference_get: (params?: {}) => Promise<any>,
preference_set: (params: {}) => Promise<any>,
// Commenting
comment_update: (params: {}) => Promise<CommentUpdateResponse>,
comment_hide: (params: {}) => Promise<CommentHideResponse>,
comment_abandon: (params: {}) => Promise<CommentAbandonResponse>,
comment_list: (params: {}) => Promise<any>,
comment_create: (params: {}) => Promise<any>,
// Wallet utilities
wallet_balance: (params: {}) => Promise<BalanceResponse>,
wallet_decrypt: (prams: {}) => Promise<boolean>,
wallet_encrypt: (params: {}) => Promise<boolean>,
wallet_unlock: (params: {}) => Promise<boolean>,
wallet_list: (params: {}) => Promise<WalletListResponse>,
wallet_send: (params: {}) => Promise<GenericTxResponse>,
wallet_status: (params?: {}) => Promise<WalletStatusResponse>,
address_is_mine: (params: {}) => Promise<boolean>,
address_unused: (params: {}) => Promise<string>, // New address
address_list: (params: {}) => Promise<string>,
transaction_list: (params: {}) => Promise<TxListResponse>,
txo_list: (params: {}) => Promise<any>,
account_set: (params: {}) => Promise<any>,
account_list: (params?: {}) => Promise<any>,
// Sync
sync_hash: (params?: {}) => Promise<string>,
sync_apply: (params: {}) => Promise<SyncApplyResponse>,
// syncGet
// The app shouldn't need to do this
utxo_release: () => Promise<any>,
};

99
flow-typed/LbryFirst.js vendored Normal file
View file

@ -0,0 +1,99 @@
// @flow
declare type LbryFirstStatusResponse = {
Version: string,
Message: string,
Running: boolean,
Commit: string,
};
declare type LbryFirstVersionResponse = {
build: string,
lbrynet_version: string,
os_release: string,
os_system: string,
platform: string,
processor: string,
python_version: string,
};
/* SAMPLE UPLOAD RESPONSE (FULL)
"Video": {
"etag": "\"Dn5xIderbhAnUk5TAW0qkFFir0M/xlGLrlTox7VFTRcR8F77RbKtaU4\"",
"id": "8InjtdvVmwE",
"kind": "youtube#video",
"snippet": {
"categoryId": "22",
"channelId": "UCXiVsGTU88fJjheB2rqF0rA",
"channelTitle": "Mark Beamer",
"liveBroadcastContent": "none",
"localized": {
"title": "my title"
},
"publishedAt": "2020-05-05T04:17:53.000Z",
"thumbnails": {
"default": {
"height": 90,
"url": "https://i9.ytimg.com/vi/8InjtdvVmwE/default.jpg?sqp=CMTQw_UF&rs=AOn4CLB6dlhZMSMrazDlWRsitPgCsn8fVw",
"width": 120
},
"high": {
"height": 360,
"url": "https://i9.ytimg.com/vi/8InjtdvVmwE/hqdefault.jpg?sqp=CMTQw_UF&rs=AOn4CLB-Je_7l6qvASRAR_bSGWZHaXaJWQ",
"width": 480
},
"medium": {
"height": 180,
"url": "https://i9.ytimg.com/vi/8InjtdvVmwE/mqdefault.jpg?sqp=CMTQw_UF&rs=AOn4CLCvSnDLqVznRNMKuvJ_0misY_chPQ",
"width": 320
}
},
"title": "my title"
},
"status": {
"embeddable": true,
"license": "youtube",
"privacyStatus": "private",
"publicStatsViewable": true,
"uploadStatus": "uploaded"
}
}
*/
declare type UploadResponse = {
Video: {
id: string,
snippet: {
channelId: string,
},
status: {
uploadStatus: string,
},
},
};
declare type HasYTAuthResponse = {
HashAuth: boolean,
};
declare type YTSignupResponse = {};
//
// Types used in the generic LbryFirst object that is exported
//
declare type LbryFirstTypes = {
isConnected: boolean,
connectPromise: ?Promise<any>,
connect: () => void,
lbryFirstConnectionString: string,
apiRequestHeaders: { [key: string]: string },
setApiHeader: (string, string) => void,
unsetApiHeader: string => void,
overrides: { [string]: ?Function },
setOverride: (string, Function) => void,
// LbryFirst Methods
stop: () => Promise<string>,
status: () => Promise<StatusResponse>,
version: () => Promise<VersionResponse>,
upload: any => Promise<?UploadResponse>,
hasYTAuth: string => Promise<HasYTAuthResponse>,
ytSignup: () => Promise<YTSignupResponse>,
};

Some files were not shown because too many files have changed in this diff Show more