UNPKG

@nuxt/ui

Version:

A UI Library for Modern Web Apps, powered by Vue & Tailwind CSS.

27 lines (26 loc) 1.11 kB
import { computed, toValue } from "vue"; import { useAppConfig } from "#imports"; export function useComponentIcons(componentProps) { const appConfig = useAppConfig(); const props = computed(() => toValue(componentProps)); const isLeading = computed(() => props.value.icon && props.value.leading || props.value.icon && !props.value.trailing || props.value.loading && !props.value.trailing || !!props.value.leadingIcon); const isTrailing = computed(() => props.value.icon && props.value.trailing || props.value.loading && props.value.trailing || !!props.value.trailingIcon); const leadingIconName = computed(() => { if (props.value.loading) { return props.value.loadingIcon || appConfig.ui.icons.loading; } return props.value.leadingIcon || props.value.icon; }); const trailingIconName = computed(() => { if (props.value.loading && !isLeading.value) { return props.value.loadingIcon || appConfig.ui.icons.loading; } return props.value.trailingIcon || props.value.icon; }); return { isLeading, isTrailing, leadingIconName, trailingIconName }; }