Commit graph

10532 commits

Author SHA1 Message Date
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