import {
  calculateTextExprValue,
  executeFunction,
  executeObjectExpr,
} from '@/common/util/util';

export const filterHiddenStep = (list, _context) => {
  const result = [];
  const realList = calculateTextExprValue(list, {
    recordDataSource: {},
    state: _context?.state,
  });
  if (Array.isArray(realList)) {
    realList.forEach((item) => {
      const { hidden } = item || {};
      const isHidden = executeObjectExpr(hidden, {}, {}, _context?.state);
      if (isHidden !== true) {
        const { icon } = item || {};
        if (typeof icon === 'function') {
          item.icon = executeFunction(icon, {}, _context?.state);
        }
        result.push(item);
      }
    });
  }
  return result;
};
