TreeIcon.ts 420 Bytes
import type { VNode, FunctionalComponent } from 'vue';

import { h } from 'vue';
import { isString } from '/@/utils/is';
import { Icon } from '/@/components/Icon';

export interface ComponentProps {
  icon: VNode | string;
}

export const TreeIcon: FunctionalComponent = ({ icon }: ComponentProps) => {
  if (!icon) return null;
  if (isString(icon)) {
    return h(Icon, { icon, class: 'mr-1' });
  }
  return Icon;
};