UNPKG

phx-react

Version:

PHX REACT

57 lines 2.85 kB
"use strict"; exports.__esModule = true; var tslib_1 = require("tslib"); var react_1 = require("react"); var clientQueryV3_1 = tslib_1.__importDefault(require("./clientQueryV3")); function PHXUseQueryDataV3(_a) { var _this = this; var dependencies = _a.dependencies, query = _a.query, variables = _a.variables, requiredFields = _a.requiredFields; var _b = (0, react_1.useState)(true), isLoading = _b[0], setIsLoading = _b[1]; var _c = (0, react_1.useState)(), data = _c[0], setData = _c[1]; var _d = (0, react_1.useState)(null), error = _d[0], setError = _d[1]; var isValidVariables = function () { // Nếu không có variables, trả về true if (!variables) return true; // Nếu có requiredFields, kiểm tra chỉ các key trong requiredFields if (requiredFields) { return requiredFields.every(function (key) { return variables[key] !== undefined && variables[key] !== null && variables[key] !== ''; }); } // Nếu không có requiredFields, kiểm tra toàn bộ variables return Object.values(variables).every(function (value) { return value !== undefined && value !== null && value !== ''; }); }; (0, react_1.useEffect)(function () { var fetchData = function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { var response, err_1; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: if (!isValidVariables()) { return [2 /*return*/]; } _a.label = 1; case 1: _a.trys.push([1, 3, 4, 5]); return [4 /*yield*/, (0, clientQueryV3_1["default"])(tslib_1.__assign({ query: query }, (variables && { variables: variables })))]; case 2: response = _a.sent(); setData(response.data); return [3 /*break*/, 5]; case 3: err_1 = _a.sent(); setError('An error occurred while fetching data.'); console.error(err_1); return [3 /*break*/, 5]; case 4: setIsLoading(false); return [7 /*endfinally*/]; case 5: return [2 /*return*/]; } }); }); }; fetchData(); }, Array.isArray(dependencies) ? tslib_1.__spreadArray([], dependencies, true) : []); // Ensure dependencies is an array return { isLoading: isLoading, data: data, error: error }; } exports["default"] = PHXUseQueryDataV3; //# sourceMappingURL=PHXUseQueryDataV3.js.map