Skip to content

Commit

Permalink
fix(icon): add better warning when loading icons (#1297)
Browse files Browse the repository at this point in the history
  • Loading branch information
liamdebeasi authored Nov 6, 2023
1 parent 625d54f commit d582e62
Showing 1 changed file with 14 additions and 3 deletions.
17 changes: 14 additions & 3 deletions src/components/icon/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ export const getUrl = (i: Icon) => {

url = getName(i.name, i.icon, i.mode, i.ios, i.md);
if (url) {
return getNamedUrl(url);
return getNamedUrl(url, i);
}

if (i.icon) {
Expand All @@ -83,12 +83,23 @@ export const getUrl = (i: Icon) => {
};


const getNamedUrl = (iconName: string) => {
const getNamedUrl = (iconName: string, iconEl: Icon) => {
const url = getIconMap().get(iconName);
if (url) {
return url;
}
return getAssetPath(`svg/${iconName}.svg`);
try {
return getAssetPath(`svg/${iconName}.svg`);
} catch(e) {
/**
* In the custom elements build version of ionicons, referencing an icon
* by name will throw an invalid URL error because the asset path is not defined.
* This catches that error and logs something that is more developer-friendly.
* We also include a reference to the ion-icon element so developers can
* figure out which instance of ion-icon needs to be updated.
*/
console.warn(`[Ionicons Warning]: Could not load icon with name "${iconName}". Ensure that the icon is registered using addIcons or that the icon SVG data is passed directly to the icon component.`, iconEl);
}
};


Expand Down

0 comments on commit d582e62

Please sign in to comment.