import { RAGFlowNodeType } from '@/interfaces/database/agent';
import { isEmpty } from 'lodash';
import { useMemo } from 'react';
import { initialIterationValues } from '../../constant';
import { OutputObject } from './interface';

function convertToArray(outputObject: OutputObject) {
  return Object.entries(outputObject).map(([key, value]) => ({
    name: key,
    ref: value.ref,
    type: value.type,
  }));
}

export function useValues(node?: RAGFlowNodeType) {
  const values = useMemo(() => {
    const formData = node?.data?.form;

    if (isEmpty(formData)) {
      return { ...initialIterationValues, outputs: [] };
    }

    return { ...formData, outputs: convertToArray(formData.outputs) };
  }, [node?.data?.form]);

  return values;
}
