feat: defer image load

This commit is contained in:
2024-11-06 20:19:25 +00:00
parent 10cd15d942
commit 621686564d
15 changed files with 55 additions and 54 deletions

View File

@ -32,10 +32,15 @@ impl Widget for StreamEvent<'_> {
let w = ui.available_width();
let h = (w / 16.0) * 9.0;
let cover = self.event.image().map(|p| self.services.img_cache.load(p));
let (response, painter) = ui.allocate_painter(Vec2::new(w, h), Sense::click());
let cover = if ui.is_visible() {
self.event.image().map(|p| self.services.img_cache.load(p))
} else {
None
};
if let Some(cover) = cover.map(|c| {
c.rounding(Rounding::same(12.))
.load_for_size(painter.ctx(), Vec2::new(w, h))
@ -111,7 +116,7 @@ impl Widget for StreamEvent<'_> {
});
}
ui.horizontal(|ui| {
ui.add(Avatar::from_profile(&host_profile, self.services.img_cache).size(40.));
ui.add(Avatar::from_profile(&host_profile, self.services).size(40.));
let title = RichText::new(self.event.title().unwrap_or("Untitled"))
.size(16.)
.color(Color32::WHITE);