Have system icons fall back to known families/variants if not found

This commit is contained in:
Lea Verou
2025-05-13 12:08:28 -04:00
parent a5b2fffb7a
commit 27fc269a94

View File

@@ -41,14 +41,18 @@ export const icons: { [key: string]: string } = Object.assign({}, ...Object.valu
//
const systemLibrary: IconLibrary = {
name: 'system',
resolver: (name: string, family = 'classic', variant = 'solid') => {
if (family === 'classic') {
// Try given variant first, fall back to any variant
let svg = iconsByVariant[variant]?.[name];
resolver: (name: string, _family = 'classic', variant = 'solid') => {
// family is ignored for now
// Default to `regular` for unknown variants
variant = variant in iconsByVariant ? variant : 'regular';
if (svg) {
return dataUri(svg);
}
let icons = iconsByVariant[variant];
// Fall back to other variants if icon is not found in the variant requested
let svg = icons[name] ?? iconsByVariant.regular[name] ?? iconsByVariant.solid[name];
if (svg) {
return dataUri(svg);
}
return '';