Commit graph

33 commits

Author SHA1 Message Date
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
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
22a302f528
mostly remove is_web (#7408) 2022-01-07 14:02:33 -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
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
ee9f63a161 integrate all the things
bugfix

wip

flow

fix

cleaning

clean
2021-10-15 23:49:41 -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
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
08c701ba19 Restore comment pagination
This reverts commit e6addb8c2a, reversing
changes made to 47b594107a.
2021-07-16 10:54:12 -04: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
0cf6fe3df5
Comments Pagination
## Issue
6158 - Support Comment Pagination
2021-07-14 12:58:25 +08:00
saltrafael
3e1f6cdf4d Highlight comments made by content owner 2021-04-05 14:32:37 -04: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
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
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
Sean Yesmunt
92fc807e3d fix missing prop 2021-02-11 14:01:22 -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
Daniela Narvaez
0a2f9fa0be Fixing inline videos in comments 2021-01-26 16:34:50 -05:00
Sean Yesmunt
106f5a0ac2 initial comment pin PR with new commit 2020-10-19 23:37:39 -04:00
Sean Yesmunt
264a85d837 Revert "comment pin action"
This reverts commit 636ab7427d.
2020-10-19 15:01:09 -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
Sean Yesmunt
60569de672 hide comments that were slimed to death TM 2020-10-08 15:57:20 -04:00
Sean Yesmunt
b0d19455c1 add placeholder upvote/downvote buttons on comments 2020-09-29 17:12:32 -04:00
Sean Yesmunt
248e578422 new comments 2020-09-29 17:12:32 -04:00
Sean Yesmunt
69d010435b allow blocking channels from comment 2020-07-20 14:48:25 -04:00
jessop
e7e7d6dba4 fix comments functions import 2020-07-16 13:18:06 -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
Sean Yesmunt
fa7f74f979 bring in comments/blocked code from 'lbry-redux' 2020-07-14 15:57:19 -04:00
Oleg Silkin
b44d2f59e8 Adds comment actions menu & implements their actions 2020-01-31 16:30:51 -05:00
Oleg Silkin
171cfe31aa Adds comment thumbnails 2019-12-04 13:24:57 -05:00
Sean Yesmunt
6ad31a3ce9 refactor lbrytv web server 2019-11-11 13:27:29 -05:00
Renamed from src/ui/component/comment/index.js (Browse further)