Files
mucomutfak-webapp/src/composables/useIcons.ts
T

52 lines
1.4 KiB
TypeScript

import { h, type Component } from "vue";
import { Icon } from "@iconify/vue";
export const iconNames = {
mail: "heroicons-solid:envelope",
document: "heroicons-solid:document-text",
code: "heroicons-solid:code-bracket",
chevronRightIcon: "heroicons-solid:chevron-right",
chevronLeftIcon: "heroicons-solid:chevron-left",
arrowRight: "heroicons-solid:arrow-right",
arrowLeft: "heroicons-solid:arrow-left",
arrowUp: "heroicons-solid:arrow-up",
external: "heroicons-solid:arrow-top-right-on-square",
phone: "heroicons-solid:phone",
location: "heroicons-solid:map-pin",
check: "heroicons-solid:check-circle",
plus: "heroicons-solid:plus",
user: "heroicons-solid:user",
home: "mdi:home",
share: "heroicons-solid:share",
clipboard: "heroicons-solid:clipboard-document",
link: "heroicons-solid:link",
chat: "heroicons-solid:chat-bubble-left-right",
close: "heroicons-solid:x-mark",
instagram: "mdi:instagram",
facebook: "mdi:facebook",
tiktok: "ic:baseline-tiktok",
} as const;
export type IconName = keyof typeof iconNames;
export function useIcons(): Record<IconName, Component> {
const registry = {} as Record<IconName, Component>;
for (const name of Object.keys(iconNames) as IconName[]) {
registry[name] = {
name: `${name}Icon`,
render() {
return h(Icon, {
icon: iconNames[name],
});
},
};
}
return registry;
}