@bitrix24/b24ui-nuxt
Version:
Bitrix24 UI-Kit for developing web applications REST API for NUXT & VUE
26 lines (25 loc) • 925 B
JavaScript
import { computed, toValue } from "vue";
import icons from "../dictionary/icons.js";
export function useComponentIcons(componentProps) {
const props = computed(() => toValue(componentProps));
const isLeading = computed(() => props.value.icon && !props.value.trailing || props.value.loading && !props.value.trailing || props.value.avatar);
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 icons.loading;
}
return props.value.icon;
});
const trailingIconName = computed(() => {
if (props.value.loading && !isLeading.value) {
return icons.loading;
}
return props.value.trailingIcon || props.value.icon;
});
return {
isLeading,
isTrailing,
leadingIconName,
trailingIconName
};
}