import { request } from "@cqsjjb/jjb-common-lib/http.js";
import { useEffect, useState } from "react";
import { DICTIONARY_APP_KEY_ENUM } from "../../../enum/dictionary";
import BasicSelectTree from "../Basic";

/**
 * 数据字典下拉树组件
 */
function DictionarySelectTree(props) {
  const {
    appKey = DICTIONARY_APP_KEY_ENUM.DEFAULT,
    dictValue = "",
    nameKey = "dictLabel",
    idKey = "dictValue",
    ...restProps
  } = props;

  const [treeData, setTreeData] = useState([]);

  const getData = async () => {
    setTreeData([]);

    if (!Object.values(DICTIONARY_APP_KEY_ENUM).includes(appKey)) {
      console.error(`【DictionarySelectTree】 传入的 appKey 不在 DICTIONARY_APP_KEY_ENUM 中，当前传入的 appKey 是 ${appKey}`);
      return;
    }

    if (!dictValue) {
      console.error(`【DictionarySelectTree】 缺少 dictValue 参数`);
      return;
    }

    const { data } = await request("/config/dict-trees/list/by/dictValues", "get", { appKey, dictValue });
    setTreeData(data);
  };

  useEffect(() => {
    getData();
  }, [dictValue]);

  return (
    <BasicSelectTree treeData={treeData} nameKey={nameKey} idKey={idKey} {...restProps} />
  );
}

DictionarySelectTree.displayName = "DictionarySelectTree";

export default DictionarySelectTree;
