lbry-desktop/ui/page
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
..
backup add wallet sync message on wallet page 2020-02-21 13:42:17 -05:00
buy Combine Buy and Swap 2021-06-05 10:07:38 +08:00
channel ChannelThumbnail improvements 2021-07-05 16:04:10 +08:00
channelNew claim email_verified reward on channel/new page 2021-04-04 22:16:45 -04:00
channels Set 'activeChannel' before entering Dashboard 2021-06-22 18:32:05 -04:00
channelsFollowing Homepage|Discover: hide livestreams, then append active livestreams at the top. 2021-04-30 14:11:42 -04:00
channelsFollowingDiscover New moderation tools: block & mute (#5572) 2021-03-03 13:50:16 -05:00
checkoutPage new layout 🕺 2020-09-29 17:12:32 -04:00
collection enable clear edits 2021-06-10 17:47:02 -04:00
creatorDashboard remove analytics 2021-06-15 13:47:56 -04:00
discover Homepage|Discover: hide livestreams, then append active livestreams at the top. 2021-04-30 14:11:42 -04:00
embedWrapper CodeSplit: Initial work 2021-06-25 16:00:44 +08:00
file CodeSplit: Initial work 2021-06-25 16:00:44 +08:00
fileListDownloaded wip 2021-06-08 13:25:52 -04:00
fileListPublished use button-toggle group for page title 2021-03-16 12:04:39 -04:00
fourOhFour refactor lbrytv web server 2019-11-11 13:27:29 -05:00
help integrate some Odysee code with master 2021-04-27 19:56:30 -04:00
home WaitUntilOnPage: add option to load when approaching viewport 2021-07-05 12:06:54 +08:00
invite add youtube sync to first run 2020-09-29 17:12:32 -04:00
invited new layout 🕺 2020-09-29 17:12:32 -04:00
library new lbc icon 2020-09-29 17:12:32 -04:00
listBlocked Moderator Delegation GUI 2021-06-18 15:46:51 -04:00
lists wip 2021-06-08 13:25:52 -04:00
livestream use commentron for live view counts 2021-06-17 14:58:55 -04:00
livestreamCurrent hyperchats 2021-04-23 16:20:17 -04:00
livestreamSetup i18n 2021-06-25 09:19:17 +08:00
navigationHistory refactor lbrytv web server 2019-11-11 13:27:29 -05:00
notifications fetch notofication/categories for notification types dropdown 2021-04-30 12:45:46 -04:00
passwordReset new layout 🕺 2020-09-29 17:12:32 -04:00
passwordSet new layout 🕺 2020-09-29 17:12:32 -04:00
publish add initial support for comment API outside of SDK 2021-02-11 10:45:34 -05:00
receive ReceiveLBC: switch from Modal to Page 2021-04-13 14:02:25 -04:00
report Use sentence case for all card titles 2020-09-29 17:12:32 -04:00
reportContent Implement ReportContent page 2021-04-21 10:49:31 -04:00
repost changes, bump 2020-12-28 15:00:15 -05:00
rewards More master reconciliation 2021-04-27 23:05:38 -04:00
rewardsVerify rewards redirect fix for manually approved users 2020-07-03 13:18:28 -04:00
search integrate some Odysee code with master 2021-04-27 19:56:30 -04:00
send allow sending directly to a channel or content address (#5990) 2021-05-20 15:30:40 -04:00
settings more stripe only on web 2021-07-03 14:42:37 -04:00
settingsAdvanced fix wrong word to 2021-02-03 23:39:40 -05:00
settingsCreator Moderation: resolve chan name or URL instead of using Lighthouse. 2021-06-19 17:11:45 +08:00
settingsNotifications i18n: Notification setting strings 2021-03-19 11:27:10 -04:00
settingsStripeCard updated code 2021-07-03 14:42:37 -04:00
show ~ Initial Code Split (#6228) 2021-06-25 16:02:45 +08:00
signIn new layout 🕺 2020-09-29 17:12:32 -04:00
signInVerify fix lint 2021-06-02 22:42:50 -04:00
signInWalletPassword get sync password out of signing flow 2020-09-21 14:11:25 -04:00
signUp new layout 🕺 2020-09-29 17:12:32 -04:00
swap CoinSwap: websocket + multi-coin 2021-04-13 14:02:25 -04:00
tagsFollowing Enable tile layout for 'Your Tags' page 2020-12-18 14:02:50 -05:00
tagsFollowingManage per channel notification settings 2020-11-02 14:13:13 -05:00
top integrate some Odysee code with master 2021-04-27 19:56:30 -04:00
wallet more stripe only on web 2021-07-03 14:42:37 -04:00
welcome new layout 🕺 2020-09-29 17:12:32 -04:00
youtubeSync Sort all language dropdowns, not just in the Settings Page. 2021-06-07 10:15:07 +08:00