Commit graph

20 commits

Author SHA1 Message Date
infinite-persistence
9bbd72d179
Fix reaction-selector reference invalidation
## Issue
When comments are refreshed, each `Comment` gets rendered 4-5 times due to reference invalidation for `othersReacts` (the data didn't actually change).

## 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-10-19 21:15:26 +08:00
saltrafael
96582afdd8
Fix notifications fetching issues (#7002) 2021-09-01 12:03:48 -04:00
saltrafael
b69b01e36b
Fix CSS 2021-08-28 20:48:50 +08:00
saltrafael
d7344f5047
Add direct reacting from notifications 2021-08-28 20:48:49 +08:00
zeppi
8301244507 commentReactions recon ma 2021-07-20 11:17:44 -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
Sean Yesmunt
67192ea23f hide staked indicator on creator likes in comments 2021-02-18 22:29:11 -05:00
Sean Yesmunt
db87125dc8 refactor 'active' channel usage across the app 2021-02-11 10:45:34 -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
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
ad20e355cf creator only like reactions 2020-10-27 12:27:30 -04:00
jessop
aa127e45aa debounce comment reacts on backend, not button, feedback immediate 2020-10-02 12:35:34 -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
Sean Yesmunt
848495f82a keep notifications behind flag 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
b0d19455c1 add placeholder upvote/downvote buttons on comments 2020-09-29 17:12:32 -04:00