feat: 离线图标功能 & 一些改造
This commit is contained in:
@@ -1,6 +1,10 @@
|
||||
import { defineComponent, h } from 'vue';
|
||||
|
||||
import { Icon } from '@iconify/vue';
|
||||
import { Icon, type IconifyIcon } from '@iconify/vue';
|
||||
import {
|
||||
addIcon as addOfflineIcon,
|
||||
Icon as OfflineIcon,
|
||||
} from '@iconify/vue/dist/offline';
|
||||
|
||||
function createIconifyIcon(icon: string) {
|
||||
return defineComponent({
|
||||
@@ -11,4 +15,20 @@ function createIconifyIcon(icon: string) {
|
||||
});
|
||||
}
|
||||
|
||||
export { createIconifyIcon };
|
||||
/**
|
||||
* 创建离线图标
|
||||
* @param icon 图标名称 建议与iconify的名称保持一致
|
||||
* @param iconComponent 从@iconify/icon-xxx/xxx导入的图标
|
||||
* @returns IconComponent
|
||||
*/
|
||||
function createIconifyOfflineIcon(icon: string, iconComponent: IconifyIcon) {
|
||||
return defineComponent({
|
||||
name: `Icon-${icon}`,
|
||||
setup(props, { attrs }) {
|
||||
addOfflineIcon(icon, iconComponent);
|
||||
return () => h(OfflineIcon, { icon, ...props, ...attrs });
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export { createIconifyIcon, createIconifyOfflineIcon };
|
||||
|
@@ -5,3 +5,9 @@ export * from './lucide';
|
||||
|
||||
export type { IconifyIcon as IconifyIconStructure } from '@iconify/vue';
|
||||
export { addCollection, addIcon, Icon as IconifyIcon } from '@iconify/vue';
|
||||
// 离线图标使用
|
||||
export {
|
||||
addCollection as addOfflineCollection,
|
||||
addIcon as addOfflineIcon,
|
||||
Icon as IconifyOfflineIcon,
|
||||
} from '@iconify/vue/dist/offline';
|
||||
|
Reference in New Issue
Block a user