import { useCallback } from 'react';
import { createFieldTagSlotConfig } from '../cn-ai-filter/utils/create-field-tag-config.js';
/**
 * Hook：用于插入字段 tag 到 CnSender
 * @param senderRef - CnSender 的 ref
 * @param popupTriggerKey - 触发弹窗的按键，默认为 "/"
 * @param customRender - 自定义渲染函数（可选，如果不提供则使用默认的 FieldTagPopupWrapper）
 * @returns insertFieldTag 函数
 */
export function useInsertFieldTag(senderRef, popupTriggerKey = '/', customRender) {
    const insertFieldTag = useCallback((fieldKey, fieldConfig) => {
        var _a, _b;
        if (!senderRef.current)
            return;
        const tagConfig = createFieldTagSlotConfig(fieldKey, fieldConfig, customRender);
        // 插入 tag，使用 replaceCharacters 参数来删除 popupTriggerKey 字符
        (_b = (_a = senderRef.current).insert) === null || _b === void 0 ? void 0 : _b.call(_a, [tagConfig], 'cursor', popupTriggerKey);
    }, [senderRef, popupTriggerKey, customRender]);
    return insertFieldTag;
}
