import { BtnListType } from '@/common/components/btnList/interface';
import { Ref, ref } from "vue";

// 控制异步组件的关闭功能
export function handleModalComponent<T>(callback: Function, selectedRow: Ref<T>) {
    const componentId = ref<string>('');
    /**
     * 关闭组件
     * @param isRefresh 是否刷更新数据
     */
    function closeComponent(isRefresh: boolean) {
        componentId.value = '';
        if (isRefresh) {
            callback()
        }
    }
    /**
     * 打开组件
     * @param item
     * @param record
     */
    function openComponent(item: BtnListType, record: T) {
        console.log('打开组件: ', item.code)
        // 更新点击的数据，处理例如，修改之后，再次打开页面是之前的数据的问题
        if (record && selectedRow) {
            selectedRow.value = record
        }
        componentId.value = item.code;
    }
    return { componentId, closeComponent, openComponent }
}