mirror of
https://github.com/lucide-icons/lucide.git
synced 2025-12-16 07:27:42 +01:00
feat(lucide-react): Add DynamicIcon component (#2686)
* Adding the DynamicIcon component * Fix imports * Add docs * Formatting * Fix use client in output rollup * revert changes * Fix formatting * Revert changes in icons directory * Revert time command * update exports
This commit is contained in:
@@ -5,6 +5,7 @@ export default function generateDynamicImports({
|
||||
iconNodes,
|
||||
outputDirectory,
|
||||
fileExtension,
|
||||
iconMetaData,
|
||||
showLog = true,
|
||||
}) {
|
||||
const fileName = path.basename(`dynamicIconImports${fileExtension}`);
|
||||
@@ -18,6 +19,23 @@ export default function generateDynamicImports({
|
||||
// Generate Import for Icon VNodes
|
||||
icons.forEach((iconName) => {
|
||||
importString += ` '${iconName}': () => import('./icons/${iconName}'),\n`;
|
||||
|
||||
const iconAliases = iconMetaData[iconName]?.aliases?.map((alias) => {
|
||||
if (typeof alias === 'string') {
|
||||
return alias;
|
||||
}
|
||||
return alias.name;
|
||||
});
|
||||
|
||||
if (iconAliases != null && Array.isArray(iconAliases)) {
|
||||
iconAliases.forEach((alias) => {
|
||||
if (!alias) {
|
||||
return;
|
||||
}
|
||||
|
||||
importString += ` '${alias}': () => import('./icons/${iconName}'),\n`;
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
importString += '};\nexport default dynamicIconImports;\n';
|
||||
|
||||
@@ -90,6 +90,7 @@ async function buildIcons() {
|
||||
iconNodes: icons,
|
||||
outputDirectory: OUTPUT_DIR,
|
||||
fileExtension: aliasesFileExtension,
|
||||
iconMetaData,
|
||||
showLog: !silent,
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user