You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
svelte-kit-vice/web/routes/uix/components/icon/icon-loaders.ts

28 lines
909 B

import type { Component } from 'svelte';
import type { IconCategory } from '$uix/eidos/components/icon/categories';
import BadgeCheck from '$uix/eidos/components/icon/lib/badge-check.svelte';
const fastIcons: Record<string, Component> = {
'badge-check': BadgeCheck
};
let categoriesPromise: Promise<IconCategory[]> | undefined;
let registryPromise:
| Promise<typeof import('./icon-registry')>
| undefined;
export async function loadIconByName(name: string): Promise<Component | undefined> {
const fastIcon = fastIcons[name];
if (fastIcon) return fastIcon;
registryPromise ??= import('./icon-registry');
const registry = await registryPromise;
return registry.loadRegisteredIcon(name);
}
export function loadIconCategories(): Promise<IconCategory[]> {
categoriesPromise ??= import('$uix/eidos/components/icon/categories').then(
(module) => module.iconCategories
);
return categoriesPromise;
}

Powered by TurnKey Linux.