Commit graph

2341 commits

Author SHA1 Message Date
zeppi
f1de3b193e collection reordering changes 2021-12-02 15:08:24 -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
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
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
0ba3d78b27 cloud connect 2021-10-22 16:39:45 -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
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
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
zeppi
2d008899b6 clean up file page and reactions 2021-10-16 16:42:29 -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
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
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
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
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
eaa32e4df4
Odysee references revamp, part1 2021-10-08 15:22:07 -04: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
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
infinite-persistence
0be3154cbe
Fix playlist strings 2021-10-06 08:39:05 +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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
jessopb
20bd9644e9
Revert "fix recommended follows (#7081)" (#7085)
This reverts commit b83fe995c5.
2021-09-13 15:50:28 -04:00
jessopb
b83fe995c5
fix recommended follows (#7081) 2021-09-13 12:48:17 -04:00
saltrafael
69def916a8
Fix list thumbnail upload (#7074)
* Bump redux

* Fix thumbnail upload

* Update changelog
2021-09-13 11:40:31 -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
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
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
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
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
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
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
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
f246992615
Fix auto downloads (#7021) 2021-09-06 10:06:07 -04: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
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
saltrafael
5c5d82ee83
Fix hover on gif thumbnails (#6991) 2021-08-31 12:40:59 -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
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
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
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
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
e8c4fb3b7d
Livestream: fix items incorrectly appearing in HyperChat List mode. 2021-08-25 14:27:02 +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
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
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
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
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
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
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