import type { DId } from '../../utils/types';
import type { DDropdownItem } from './Dropdown';

export function checkEnableItem<ID extends DId, T extends DDropdownItem<ID>>(item: T) {
  return (item.type === 'item' || item.type === 'sub') && !item.disabled;
}

export function getSameLevelEnableItems<ID extends DId, T extends DDropdownItem<ID>>(arr: T[]) {
  const items: T[] = [];
  const reduceArr = (arr: T[]) => {
    for (const item of arr) {
      if (item.type === 'group' && item.children) {
        reduceArr(item.children as T[]);
      } else if (checkEnableItem(item)) {
        items.push(item);
      }
    }
  };
  reduceArr(arr);
  return items;
}