import { getScriptFunc } from '@jnpf/utils';

import { normalizeVirtualFields } from '#/components/FormGenerator/src/helper/displayOnly';

export function resolveDetailTitle(title, fallbackTitle) {
  return title || fallbackTitle;
}

export async function processDetailData(formConf, formData, onlineUtils) {
  normalizeVirtualFields(formConf?.fields);
  const funcs = formConf?.funcs;
  if (!funcs?.customDetailData) return formData;
  const func: any = getScriptFunc(funcs.customDetailDataFunc);
  if (!func) throw new Error('自定义详情数据脚本无效');
  const data = await Promise.resolve(func({ formData, onlineUtils }));
  if (!data || typeof data !== 'object' || Array.isArray(data)) throw new Error('自定义详情数据脚本必须返回对象');
  return data;
}
