ajnart / homarr

Customizable browser's home page to interact with your homeserver's Docker containers (e.g. Sonarr/Radarr)
https://homarr.dev
MIT License
6.23k stars 289 forks source link

Lazyload rss widgets #1042

Open Meierschlumpf opened 1 year ago

Meierschlumpf commented 1 year ago

Description

When a lot of rssfeeds are configured the loading takes pretty long. It would be great if the images of the rss widget would be lazy loaded. (Loaded after the dashboard is ready)

Please tick the boxes

ajnart commented 1 year ago

Need to do this soon

ajnart commented 1 year ago

@Meierschlumpf ive tried this today and it seemed to only save about 1kb of space. So 1/478kb on page load. If we want to reduce page load time we should look for other improvements.

If you’re okay let’s close this. The “big” libraries should be the ones we dynamically load like the videojs one for example.

I think if you run yarn analyze it shows you what takes space and ~70% of it in just mantine stuff 🥲

Meierschlumpf commented 1 year ago

Yeah the thing with this issue was, that when you have added for example 10 different rss sources, that it would have to load all the images for the rss items imediately. But I know what you mean. So the lazy loading would only be related to images

ajnart commented 1 year ago

Yeah the thing with this issue was, that when you have added for example 10 different rss sources, that it would have to load all the images for the rss items imediately. But I know what you mean. So the lazy loading would only be related to images

Oooh you mean that. Makes sense. I thought you meant using next/dynamic to load it to reduce initial bundle size.

So the issue is most likely that we await for the return of promises to get the link to the image before displaying it. Maybe we can return a promise and let it solve itself locally? We can probably use the ‘input’ option on the trpc query to modify the data we get so that it fetches the open graph tags by itself (or parses the rss, I’m not sure how it’s done)