UNPKG

ze-react-component-library

Version:
162 lines (136 loc) 6.34 kB
"use strict"; function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _hooks = require("@umijs/hooks"); var _request = require("../request"); var _react = _interopRequireWildcard(require("react")); var _ZELogicformVisualizerList = _interopRequireDefault(require("../ZELogicformVisualizerList")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } var __assign = void 0 && (void 0).__assign || function () { __assign = Object.assign || function (t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) { if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } } return t; }; return __assign.apply(this, arguments); }; function useAsk(_a) { var question = _a.question, askContext = _a.askContext, isMobile = _a.isMobile, formatAnswer = _a.formatAnswer, onAnswerError = _a.onAnswerError, _b = _a.debounceInterval, debounceInterval = _b === void 0 ? 200 : _b; var _c = (0, _react.useState)(), answer = _c[0], _setAnswer = _c[1]; var _d = (0, _react.useState)([]), logicformsToChoose = _d[0], setLogicformsToChoose = _d[1]; var _e = (0, _react.useState)(false), isResolvingLFs = _e[0], setIsResolvingLFs = _e[1]; var setAnswer = function setAnswer(answer) { var finalAnswer = formatAnswer ? formatAnswer(answer) : answer; if (answer.error) { onAnswerError === null || onAnswerError === void 0 ? void 0 : onAnswerError(finalAnswer); } _setAnswer(finalAnswer); }; var _f = (0, _hooks.useRequest)(function () { if ((question === null || question === void 0 ? void 0 : question.length) > 0) { return (0, _request.requestAsk)(question || question, true, askContext); } return Promise.reject(null); }, { refreshDeps: [question], debounceInterval: debounceInterval, onSuccess: function onSuccess(result) { if (result === null || result === void 0 ? void 0 : result.logicforms) { // 20230910 - 去数据库全部执行一遍。只找有数据的 if (result.logicforms.length <= 10) { setIsResolvingLFs(true); Promise.all(result.logicforms.map(function (lf) { return (0, _request.requestLogicform)({ schema: lf.schema, query: lf.query, preds: [{ operator: "$count", name: "c" }] }); })).then(function (results) { setIsResolvingLFs(false); var filteredLogicforms = result.logicforms.filter(function (_lf, index) { return results[index].result[0].c > 0; }); if (filteredLogicforms.length === 0) { // 都没有数据 setLogicformsToChoose(result.logicforms); } else if (filteredLogicforms.length > 1) { setLogicformsToChoose(filteredLogicforms); } else { setLogicformsToChoose([]); setAnswer({ question: question, logicform: filteredLogicforms[0] }); } }).catch(function (e) { console.log("error", e); setIsResolvingLFs(false); setLogicformsToChoose(result.logicforms); }); } else { setLogicformsToChoose(result.logicforms); } } else if ((result === null || result === void 0 ? void 0 : result.logicform) || (result === null || result === void 0 ? void 0 : result.error)) { setLogicformsToChoose([]); setAnswer(__assign({ question: question }, result)); } else { console.error("unexpected ask result: ", result); } } }), ask = _f.run, asking = _f.loading; var render = function render() { return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, (logicformsToChoose === null || logicformsToChoose === void 0 ? void 0 : logicformsToChoose.length) > 0 && /*#__PURE__*/_react.default.createElement("div", { style: { marginTop: 10 } }, /*#__PURE__*/_react.default.createElement(_ZELogicformVisualizerList.default, { compact: isMobile, isDrawer: isMobile, logicforms: logicformsToChoose, onClick: function onClick(logicform) { setLogicformsToChoose([]); setAnswer({ question: question, logicform: logicform }); } }))); }; return { logicformsToChoose: logicformsToChoose, render: render, loading: asking || isResolvingLFs, ask: ask, answer: answer }; } var _default = useAsk; exports.default = _default;