import { useCallback } from 'react';
import { useApplyComposerTemplate } from '../contexts/ComposerContext';
import { useWorkflows, type Workflow } from '../contexts/WorkflowsContext';
import { expandForFill } from '../utils/workflowTemplate';

/**
 * Apply a workflow: record usage and load its expanded template into the composer
 * (with the first [placeholder] selected for inline fill).
 */
export const useApplyWorkflow = () => {
  const { recordUse } = useWorkflows();
  const applyTemplate = useApplyComposerTemplate();

  return useCallback((workflow: Workflow) => {
    recordUse(workflow.id);
    applyTemplate(expandForFill(workflow.template, workflow.variables));
  }, [recordUse, applyTemplate]);
};
