UNPKG

phx-react

Version:

PHX REACT

54 lines 2.71 kB
import { __assign, __awaiter, __generator, __spreadArray } from "tslib"; import { useState, useEffect } from 'react'; import PHXClientQueryV3 from './clientQueryV3'; export default function PHXUseQueryDataV3(_a) { var _this = this; var dependencies = _a.dependencies, query = _a.query, variables = _a.variables, requiredFields = _a.requiredFields; var _b = useState(true), isLoading = _b[0], setIsLoading = _b[1]; var _c = useState(), data = _c[0], setData = _c[1]; var _d = 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 !== ''; }); }; useEffect(function () { var fetchData = function () { return __awaiter(_this, void 0, void 0, function () { var response, err_1; return __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*/, PHXClientQueryV3(__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) ? __spreadArray([], dependencies, true) : []); // Ensure dependencies is an array return { isLoading: isLoading, data: data, error: error }; } //# sourceMappingURL=PHXUseQueryDataV3.js.map