ze-react-component-library
Version:
ZeroETP React Component Library
162 lines (136 loc) • 6.34 kB
JavaScript
;
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;