Skip to content

Commit dddbf40

Browse files
committed
extracted preloadPicture() utility method in loadTalkSpeakerUrls()
1 parent 875a03c commit dddbf40

File tree

2 files changed

+15
-5
lines changed

2 files changed

+15
-5
lines changed

mobile/src/services/Cachings.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,13 @@ export async function checkCache(cacheKey: string, newCacheValidityDuration: Tem
5959

6060
return {outcome};
6161
}
62+
63+
export function preloadPicture(pictureUrl: string) {
64+
return new Promise((resolve, reject) => {
65+
const picture = new Image();
66+
picture.src = pictureUrl;
67+
68+
picture.onload = resolve;
69+
picture.onerror = reject;
70+
});
71+
}

mobile/src/state/useSchedule.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import {Logger, PERF_LOGGER} from "@/services/Logger";
2121
import { User } from 'firebase/auth';
2222
import {CompletablePromiseQueue} from "@/models/utils";
2323
import {match} from "ts-pattern";
24+
import {preloadPicture} from "@/services/Cachings";
2425

2526
export function useSchedule(
2627
conferenceDescriptorRef: Ref<VoxxrinConferenceDescriptor | undefined>,
@@ -68,18 +69,17 @@ async function loadTalkSpeakerUrls(
6869
const LOGGER = Logger.named("loadTalkSpeakerUrls");
6970

7071
promisesQueue.addAll(talk.speakers.map(speaker => {
71-
return async () => new Promise(resolve => {
72+
return async () => new Promise(async resolve => {
7273
if (speaker.photoUrl) {
7374
if(IN_MEMORY_SPEAKER_URL_PRELOADINGS.has(speaker.photoUrl)) {
7475
LOGGER.debug(`Speaker url already preloaded, skipping: ${speaker.photoUrl}`)
7576
resolve(null);
7677
} else {
7778
IN_MEMORY_SPEAKER_URL_PRELOADINGS.add(speaker.photoUrl);
7879

79-
const avatarImage = new Image();
80-
avatarImage.src = speaker.photoUrl;
81-
82-
avatarImage.onload = resolve;
80+
// TODO: handle picture loading error here maybe ??
81+
await preloadPicture(speaker.photoUrl)
82+
resolve(null);
8383
}
8484
} else {
8585
resolve(null);

0 commit comments

Comments
 (0)