'use client';

import { IOption } from '../../interfaces/option';

export const liveDataAction = async (
  fieldData: string | number | Array<unknown>,
  formData: Record<string, unknown>,
  action: (data: string, ...args: any[]) => Promise<IOption[]>,
) => {
  if (typeof fieldData === 'string') {
    const options = await action(fieldData, formData);
    return options ?? [];
  }

  return [] as Array<IOption>;
};

export const liveDataHandler = async (
  fieldData: string | number | Array<unknown>,
  formData: Record<string, unknown>,
  action: (data: string, ...args: any[]) => Promise<boolean>,
) => {
  if (typeof fieldData === 'string') {
    const result = await action(fieldData, formData);
    return result ?? false;
  }

  return false;
};
