UNPKG

payload

Version:

Node, React and MongoDB Headless CMS and Application Framework

88 lines (87 loc) 7.88 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return _default; } }); const _qs = /*#__PURE__*/ _interop_require_default(require("qs")); const _react = require("react"); const _reacti18next = require("react-i18next"); const _api = require("../api"); const _Locale = require("../components/utilities/Locale"); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const usePayloadAPI = (url, options = {})=>{ const { initialData = {}, initialParams = {} } = options; const { i18n } = (0, _reacti18next.useTranslation)(); const [data, setData] = (0, _react.useState)(initialData); const [params, setParams] = (0, _react.useState)(initialParams); const [isLoading, setIsLoading] = (0, _react.useState)(true); const [isError, setIsError] = (0, _react.useState)(false); const { code: locale } = (0, _Locale.useLocale)(); const search = _qs.default.stringify({ locale, ...typeof params === 'object' ? params : {} }, { addQueryPrefix: true }); (0, _react.useEffect)(()=>{ const abortController = new AbortController(); const fetchData = async ()=>{ setIsError(false); setIsLoading(true); try { const response = await _api.requests.get(`${url}${search}`, { headers: { 'Accept-Language': i18n.language }, signal: abortController.signal }); if (response.status > 201) { setIsError(true); } const json = await response.json(); setData(json); setIsLoading(false); } catch (error) { if (!abortController.signal.aborted) { setIsError(true); setIsLoading(false); } } }; if (url) { fetchData(); } else { setIsError(false); setIsLoading(false); } return ()=>{ abortController.abort(); }; }, [ url, locale, search, i18n.language ]); return [ { data, isError, isLoading }, { setParams } ]; }; const _default = usePayloadAPI; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hZG1pbi9ob29rcy91c2VQYXlsb2FkQVBJLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcXVlcnlTdHJpbmcgZnJvbSAncXMnXG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ3JlYWN0LWkxOG5leHQnXG5cbmltcG9ydCB7IHJlcXVlc3RzIH0gZnJvbSAnLi4vYXBpJ1xuaW1wb3J0IHsgdXNlTG9jYWxlIH0gZnJvbSAnLi4vY29tcG9uZW50cy91dGlsaXRpZXMvTG9jYWxlJ1xuXG50eXBlIFJlc3VsdCA9IFtcbiAge1xuICAgIGRhdGE6IGFueVxuICAgIGlzRXJyb3I6IGJvb2xlYW5cbiAgICBpc0xvYWRpbmc6IGJvb2xlYW5cbiAgfSxcbiAge1xuICAgIHNldFBhcmFtczogUmVhY3QuRGlzcGF0Y2g8dW5rbm93bj5cbiAgfSxcbl1cblxudHlwZSBPcHRpb25zID0ge1xuICBpbml0aWFsRGF0YT86IGFueVxuICBpbml0aWFsUGFyYW1zPzogdW5rbm93blxufVxuXG50eXBlIFVzZVBheWxvYWRBUEkgPSAodXJsOiBzdHJpbmcsIG9wdGlvbnM/OiBPcHRpb25zKSA9PiBSZXN1bHRcblxuY29uc3QgdXNlUGF5bG9hZEFQSTogVXNlUGF5bG9hZEFQSSA9ICh1cmwsIG9wdGlvbnMgPSB7fSkgPT4ge1xuICBjb25zdCB7IGluaXRpYWxEYXRhID0ge30sIGluaXRpYWxQYXJhbXMgPSB7fSB9ID0gb3B0aW9uc1xuXG4gIGNvbnN0IHsgaTE4biB9ID0gdXNlVHJhbnNsYXRpb24oKVxuICBjb25zdCBbZGF0YSwgc2V0RGF0YV0gPSB1c2VTdGF0ZShpbml0aWFsRGF0YSlcbiAgY29uc3QgW3BhcmFtcywgc2V0UGFyYW1zXSA9IHVzZVN0YXRlKGluaXRpYWxQYXJhbXMpXG4gIGNvbnN0IFtpc0xvYWRpbmcsIHNldElzTG9hZGluZ10gPSB1c2VTdGF0ZSh0cnVlKVxuICBjb25zdCBbaXNFcnJvciwgc2V0SXNFcnJvcl0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgeyBjb2RlOiBsb2NhbGUgfSA9IHVzZUxvY2FsZSgpXG5cbiAgY29uc3Qgc2VhcmNoID0gcXVlcnlTdHJpbmcuc3RyaW5naWZ5KFxuICAgIHtcbiAgICAgIGxvY2FsZSxcbiAgICAgIC4uLih0eXBlb2YgcGFyYW1zID09PSAnb2JqZWN0JyA/IHBhcmFtcyA6IHt9KSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGFkZFF1ZXJ5UHJlZml4OiB0cnVlLFxuICAgIH0sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGFib3J0Q29udHJvbGxlciA9IG5ldyBBYm9ydENvbnRyb2xsZXIoKVxuXG4gICAgY29uc3QgZmV0Y2hEYXRhID0gYXN5bmMgKCkgPT4ge1xuICAgICAgc2V0SXNFcnJvcihmYWxzZSlcbiAgICAgIHNldElzTG9hZGluZyh0cnVlKVxuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHJlcXVlc3RzLmdldChgJHt1cmx9JHtzZWFyY2h9YCwge1xuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICdBY2NlcHQtTGFuZ3VhZ2UnOiBpMThuLmxhbmd1YWdlLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2lnbmFsOiBhYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgICB9KVxuXG4gICAgICAgIGlmIChyZXNwb25zZS5zdGF0dXMgPiAyMDEpIHtcbiAgICAgICAgICBzZXRJc0Vycm9yKHRydWUpXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBqc29uID0gYXdhaXQgcmVzcG9uc2UuanNvbigpXG4gICAgICAgIHNldERhdGEoanNvbilcbiAgICAgICAgc2V0SXNMb2FkaW5nKGZhbHNlKVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKCFhYm9ydENvbnRyb2xsZXIuc2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgICAgICBzZXRJc0Vycm9yKHRydWUpXG4gICAgICAgICAgc2V0SXNMb2FkaW5nKGZhbHNlKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHVybCkge1xuICAgICAgZmV0Y2hEYXRhKClcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0SXNFcnJvcihmYWxzZSlcbiAgICAgIHNldElzTG9hZGluZyhmYWxzZSlcbiAgICB9XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgYWJvcnRDb250cm9sbGVyLmFib3J0KClcbiAgICB9XG4gIH0sIFt1cmwsIGxvY2FsZSwgc2VhcmNoLCBpMThuLmxhbmd1YWdlXSlcblxuICByZXR1cm4gW3sgZGF0YSwgaXNFcnJvciwgaXNMb2FkaW5nIH0sIHsgc2V0UGFyYW1zIH1dXG59XG5cbmV4cG9ydCBkZWZhdWx0IHVzZVBheWxvYWRBUElcbiJdLCJuYW1lcyI6WyJ1c2VQYXlsb2FkQVBJIiwidXJsIiwib3B0aW9ucyIsImluaXRpYWxEYXRhIiwiaW5pdGlhbFBhcmFtcyIsImkxOG4iLCJ1c2VUcmFuc2xhdGlvbiIsImRhdGEiLCJzZXREYXRhIiwidXNlU3RhdGUiLCJwYXJhbXMiLCJzZXRQYXJhbXMiLCJpc0xvYWRpbmciLCJzZXRJc0xvYWRpbmciLCJpc0Vycm9yIiwic2V0SXNFcnJvciIsImNvZGUiLCJsb2NhbGUiLCJ1c2VMb2NhbGUiLCJzZWFyY2giLCJxdWVyeVN0cmluZyIsInN0cmluZ2lmeSIsImFkZFF1ZXJ5UHJlZml4IiwidXNlRWZmZWN0IiwiYWJvcnRDb250cm9sbGVyIiwiQWJvcnRDb250cm9sbGVyIiwiZmV0Y2hEYXRhIiwicmVzcG9uc2UiLCJyZXF1ZXN0cyIsImdldCIsImhlYWRlcnMiLCJsYW5ndWFnZSIsInNpZ25hbCIsInN0YXR1cyIsImpzb24iLCJlcnJvciIsImFib3J0ZWQiLCJhYm9ydCJdLCJtYXBwaW5ncyI6Ijs7OzsrQkEwRkE7OztlQUFBOzs7MkRBMUZ3Qjt1QkFDWTs4QkFDTDtxQkFFTjt3QkFDQzs7Ozs7O0FBb0IxQixNQUFNQSxnQkFBK0IsQ0FBQ0MsS0FBS0MsVUFBVSxDQUFDLENBQUM7SUFDckQsTUFBTSxFQUFFQyxjQUFjLENBQUMsQ0FBQyxFQUFFQyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQUUsR0FBR0Y7SUFFakQsTUFBTSxFQUFFRyxJQUFJLEVBQUUsR0FBR0MsSUFBQUEsNEJBQWM7SUFDL0IsTUFBTSxDQUFDQyxNQUFNQyxRQUFRLEdBQUdDLElBQUFBLGVBQVEsRUFBQ047SUFDakMsTUFBTSxDQUFDTyxRQUFRQyxVQUFVLEdBQUdGLElBQUFBLGVBQVEsRUFBQ0w7SUFDckMsTUFBTSxDQUFDUSxXQUFXQyxhQUFhLEdBQUdKLElBQUFBLGVBQVEsRUFBQztJQUMzQyxNQUFNLENBQUNLLFNBQVNDLFdBQVcsR0FBR04sSUFBQUEsZUFBUSxFQUFDO0lBQ3ZDLE1BQU0sRUFBRU8sTUFBTUMsTUFBTSxFQUFFLEdBQUdDLElBQUFBLGlCQUFTO0lBRWxDLE1BQU1DLFNBQVNDLFdBQVcsQ0FBQ0MsU0FBUyxDQUNsQztRQUNFSjtRQUNBLEdBQUksT0FBT1AsV0FBVyxXQUFXQSxTQUFTLENBQUMsQ0FBQztJQUM5QyxHQUNBO1FBQ0VZLGdCQUFnQjtJQUNsQjtJQUdGQyxJQUFBQSxnQkFBUyxFQUFDO1FBQ1IsTUFBTUMsa0JBQWtCLElBQUlDO1FBRTVCLE1BQU1DLFlBQVk7WUFDaEJYLFdBQVc7WUFDWEYsYUFBYTtZQUViLElBQUk7Z0JBQ0YsTUFBTWMsV0FBVyxNQUFNQyxhQUFRLENBQUNDLEdBQUcsQ0FBQyxDQUFDLEVBQUU1QixJQUFJLEVBQUVrQixPQUFPLENBQUMsRUFBRTtvQkFDckRXLFNBQVM7d0JBQ1AsbUJBQW1CekIsS0FBSzBCLFFBQVE7b0JBQ2xDO29CQUNBQyxRQUFRUixnQkFBZ0JRLE1BQU07Z0JBQ2hDO2dCQUVBLElBQUlMLFNBQVNNLE1BQU0sR0FBRyxLQUFLO29CQUN6QmxCLFdBQVc7Z0JBQ2I7Z0JBRUEsTUFBTW1CLE9BQU8sTUFBTVAsU0FBU08sSUFBSTtnQkFDaEMxQixRQUFRMEI7Z0JBQ1JyQixhQUFhO1lBQ2YsRUFBRSxPQUFPc0IsT0FBTztnQkFDZCxJQUFJLENBQUNYLGdCQUFnQlEsTUFBTSxDQUFDSSxPQUFPLEVBQUU7b0JBQ25DckIsV0FBVztvQkFDWEYsYUFBYTtnQkFDZjtZQUNGO1FBQ0Y7UUFFQSxJQUFJWixLQUFLO1lBQ1B5QjtRQUNGLE9BQU87WUFDTFgsV0FBVztZQUNYRixhQUFhO1FBQ2Y7UUFFQSxPQUFPO1lBQ0xXLGdCQUFnQmEsS0FBSztRQUN2QjtJQUNGLEdBQUc7UUFBQ3BDO1FBQUtnQjtRQUFRRTtRQUFRZCxLQUFLMEIsUUFBUTtLQUFDO0lBRXZDLE9BQU87UUFBQztZQUFFeEI7WUFBTU87WUFBU0Y7UUFBVTtRQUFHO1lBQUVEO1FBQVU7S0FBRTtBQUN0RDtNQUVBLFdBQWVYIn0=