import { createIcon } from './IconUtil';


interface Item {
    children?: Item[]; // children 是一个 Item 数组
    isFrame?: number;
    icon?: string | React.ReactNode | React.ComponentType<any>; // 确保 icon 类型一致
    perms?: any; // 根据实际数据结构修改类型
    menuType?: string;
    disabledTooltip?: boolean;
    access?: any;
}


export const childrenRemove = (data: Item[] | undefined): Item[] => {
    // 如果 data 是 undefined，返回空数组
    if (!data) {
        return [];
    }

    // 初始化一个结果数组
    let list: Item[] = [];

    // 遍历数据
    data.forEach((i: Item) => {
        if (i.children && i.children.length === 0) {
            delete i.children; // 删除空 children 属性
        } else {
            i.children = childrenRemove(i.children); // 递归调用处理子项
        }
        i.disabledTooltip = i.isFrame === 1;
        i.icon = i.icon ? createIcon(i.icon) : '';
        i.access = i.perms;

        // 仅将 menuType 不为 'F' 的项推入结果列表
        if (i.menuType !== 'F') {
            list.push(i);
        }
    });

    return list; // 返回处理后的列表
};
