import React, { useState } from 'react';
import { Button, Popconfirm } from 'antd';

const Deletecheck = props => {
    const { name, type, text, clickfn, pop, btnType } = props;
    //点击删除按钮，若需要调取接口进行校验，需要传btnType，且值为deleteCheck

    const [title, ct] = useState(btnType == "deleteCheck" ? "" : pop?.title),
        [visible, cv] = useState(false);
    let { buttonPerm } = { buttonPerm: [] };//单独运行

    let res = buttonPerm && buttonPerm.length > 0 ? buttonPerm.filter((it) => { return it.typeName == name }) : [];
    if (res.length == 1) {
        res = res[0]
    } else {
        res = {}
    }

    let ifs = name === false ? false : true;

    if (type == "ifs") {
        return ifs
    }


    return pop ? <Popconfirm
        disabled={!ifs}
        okText="确认"
        cancelText="取消"
        placement="bottomRight"
        title={title}
        onConfirm={() => {
            if (!ifs) {
                return
            }
            pop.onConfirm();
            cv(false);
        }}
        visible={visible}
        onCancel={() => {
            cv(false)
        }}
    >
        <Button
            size='small'
            type={type?.type || 'default'}
            disabled={!ifs}
            danger
            style={{ userSelect: "none" }}
            onClick={() => {
                if (btnType == "deleteCheck") {
                    clickfn().then(res => {
                        if (res.code == "0000") {
                            ct(res?.data?.msg)
                            cv(true)
                        }
                    })
                } else {
                    clickfn ? clickfn() : null;
                    cv(true)
                }
            }}
        >
            {text}
        </Button>
    </Popconfirm>
        :
        <Button
            size='small'
            type={type?.type || 'primary'}
            disabled={!ifs}
            style={{ userSelect: "none" }}
            onClick={() => {
                clickfn ? clickfn() : null
            }}
        >
            {text}
        </Button>

}

export default Deletecheck;