perf: preload theme button and background images on app startup

This commit is contained in:
plebeius
2025-12-29 13:55:20 +01:00
parent d800ee9817
commit d46d7edffe
3 changed files with 44 additions and 1 deletions
+21
View File
@@ -0,0 +1,21 @@
import { THEME_BUTTON_IMAGES, THEME_BACKGROUND_IMAGES } from '../../generated/asset-manifest';
/**
* Preloads an array of image URLs by creating Image objects.
* Images are loaded in the background and cached by the browser.
*/
const preloadImages = (imagePaths: readonly string[]): void => {
imagePaths.forEach((path) => {
const img = new Image();
img.src = `/${path}`;
});
};
/**
* Preloads all theme-related assets (buttons, backgrounds) on app startup.
* This prevents visible loading delays when switching themes.
*/
export const preloadThemeAssets = (): void => {
preloadImages(THEME_BUTTON_IMAGES);
preloadImages(THEME_BACKGROUND_IMAGES);
};