@bigbinary/neeto-commons-frontend 4.3.2 → 4.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -18,6 +18,7 @@ var _axios2 = require("../../utils/axios");
18
18
  var _paramsSerializer = _interopRequireDefault(require("./paramsSerializer"));
19
19
  var _constants = require("../constants");
20
20
  var checkOnlineInterval = null;
21
+ var requestErrorToasts = {};
21
22
  var shouldNot = function shouldNot(skip) {
22
23
  return (0, _typeof2["default"])(skip) === "object" || !skip;
23
24
  };
@@ -58,9 +59,18 @@ var transformErrorKeysToCamelCase = function transformErrorKeysToCamelCase(error
58
59
  return error;
59
60
  };
60
61
  var showSuccessToastr = function showSuccessToastr(response) {
61
- var _response$config$show = response.config.showToastr,
62
- showToastr = _response$config$show === void 0 ? true : _response$config$show;
62
+ var _response$config = response.config,
63
+ _response$config$show = _response$config.showToastr,
64
+ showToastr = _response$config$show === void 0 ? true : _response$config$show,
65
+ requestUrl = _response$config.url,
66
+ requestMethod = _response$config.method;
63
67
  if (!showToastr) return response;
68
+ var toastIdKey = "".concat(requestMethod, ":").concat(requestUrl);
69
+ var errorToastId = requestErrorToasts[toastIdKey];
70
+ if (errorToastId) {
71
+ _reactToastify.toast.dismiss(errorToastId);
72
+ requestErrorToasts = (0, _ramda.dissoc)(toastIdKey, requestErrorToasts);
73
+ }
64
74
  if ((0, _neetoCist.matches)({
65
75
  showThumbsUpToastr: true
66
76
  }, response.data)) {
@@ -146,27 +156,45 @@ var showErrorToastr = function showErrorToastr(error) {
146
156
  _ref3$showToastr = _ref3.showToastr,
147
157
  showToastr = _ref3$showToastr === void 0 ? true : _ref3$showToastr,
148
158
  _ref3$show422ErrorToa = _ref3.show422ErrorToastr,
149
- show422ErrorToastr = _ref3$show422ErrorToa === void 0 ? true : _ref3$show422ErrorToa;
150
- if (!showToastr) return error;
159
+ show422ErrorToastr = _ref3$show422ErrorToa === void 0 ? true : _ref3$show422ErrorToa,
160
+ _ref3$url = _ref3.url,
161
+ requestUrl = _ref3$url === void 0 ? "" : _ref3$url,
162
+ _ref3$method = _ref3.method,
163
+ requestMethod = _ref3$method === void 0 ? "" : _ref3$method;
151
164
  var _ref4 = (_error$response3 = error.response) !== null && _error$response3 !== void 0 ? _error$response3 : {},
152
165
  status = _ref4.status;
166
+ if (!showToastr) return error;
153
167
  if (error.message === "Network Error") return handleNetworkError(error);
154
168
  if (error.code === "ECONNABORTED") {
155
169
  return error;
156
170
  }
171
+ var shouldShowToastr = false,
172
+ toastrContent = error;
157
173
  var skippedStatusCodes = [403, 404, 520, 422];
158
174
  if (!skippedStatusCodes.includes(status) && !_axios["default"].isCancel(error)) {
159
175
  // we already display a page in case of 403 & 404 and we don't want to show a toastr for cancelled requests.
160
176
  // We handle cloudflare error differently for production and other environments.
161
- _Toastr["default"].error(error);
162
- }
163
- if (status === 422 && show422ErrorToastr) {
164
- _Toastr["default"].error(error);
177
+ shouldShowToastr = true;
165
178
  }
179
+ if (status === 422 && show422ErrorToastr) shouldShowToastr = true;
166
180
  if (status === 520) {
181
+ shouldShowToastr = true;
167
182
  if (globalProps.railsEnv === "production") {
168
- _Toastr["default"].error(_i18next["default"].t("generic.error"));
169
- } else _Toastr["default"].error(error);
183
+ toastrContent = _i18next["default"].t("generic.error");
184
+ }
185
+ }
186
+ var toastIdKey = "".concat(requestMethod, ":").concat(requestUrl);
187
+ var errorToastId = requestErrorToasts[toastIdKey];
188
+ if (errorToastId) _reactToastify.toast.dismiss(errorToastId);
189
+ if (shouldShowToastr) {
190
+ if (errorToastId) {
191
+ // if there's an existing toastr with the same message, the onClose callback in the neetoUI which
192
+ // removes the toastr from the unique list will be fired only after the toast is completely removed
193
+ // from the UI. If there's no delay, the new toastr will be considered as duplicate and ignored.
194
+ setTimeout(function () {
195
+ requestErrorToasts[toastIdKey] = _Toastr["default"].error(toastrContent);
196
+ }, 1200);
197
+ } else requestErrorToasts[toastIdKey] = _Toastr["default"].error(toastrContent);
170
198
  }
171
199
  return error;
172
200
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_axios","_interopRequireDefault","require","_i18next","_neetoCist","_Toastr","_ramda","_reactToastify","_useDisplayErrorPage","_axios2","_paramsSerializer","_constants","checkOnlineInterval","shouldNot","skip","_typeof2","shouldShowToastr","response","isNotEmpty","notice","noticeCode","setAuthHeaders","_document$querySelect","_axios$defaults$heade","axios","defaults","headers","_defineProperty2","HEADERS_KEYS","accept","contentType","xCsrfToken","document","querySelector","getAttribute","createPipe","functions","data","reduce","acc","fn","transformResponseKeysToCamelCase","_response$config$tran","config","transformResponseCase","keysToCamelCase","transformErrorKeysToCamelCase","error","_error$config","_error$response","_ref","_ref$transformRespons","showSuccessToastr","_response$config$show","showToastr","matches","showThumbsUpToastr","Toastr","success","icon","className","pullDataFromResponse","_response$config$incl","includeMetadataInResponse","buildSuccessResponseHandler","interceptors","transformCase","push","handleUnauthorizedErrorResponse","_error$response2","_error$config2","status","resetAuthTokens","_ref2","_ref2$redirectOnError","redirectOnError","setTimeout","redirectTo","window","location","pathname","concat","encodeURIComponent","href","isOnline","navigator","onLine","showOfflineToastr","toastId","i18next","t","dismissToastInterval","setInterval","toast","dismiss","clearInterval","handleNetworkError","startTime","Date","now","elapsedTime","MAXIMUM_OFFLINE_DURATION","showErrorToastr","_error$config3","_error$response3","_ref3","_ref3$showToastr","_ref3$show422ErrorToa","show422ErrorToastr","_ref4","message","code","skippedStatusCodes","includes","isCancel","globalProps","railsEnv","getUrlPathName","url","URL","_unused","handle404ErrorResponse","_error$config4","_error$response4","_ref5","_ref5$show404ErrorPag","show404ErrorPage","_ref5$show403ErrorPag","show403ErrorPage","_error$request","fullUrl","request","responseURL","useErrorDisplayStore","setState","showErrorPage","statusCode","failedApiUrl","failedApiPath","buildErrorResponseHandler","logoutOn401","Promise","reject","bind","cleanupCredentialsForCrossOrigin","hostname","evolve","omit","transformDataToSnakeCase","_request$transformReq","transformRequestCase","serializeKeysToSnakeCase","params","addRequestInterceptors","cleanCredentialsForCrossOrigin","use","addResponseInterceptors","registerIntercepts","initializeAxios","baseURL","authHeaders","paramsSerializer","setParamsSerializer"],"sources":["../../../../src/initializers/axiosInitializer/index.js"],"sourcesContent":["import axios from \"axios\";\nimport i18next from \"i18next\";\nimport {\n isNotEmpty,\n keysToCamelCase,\n matches,\n serializeKeysToSnakeCase,\n} from \"neetocist\";\nimport { Toastr } from \"neetoui\";\nimport { evolve, omit } from \"ramda\";\nimport { toast } from \"react-toastify\";\nimport { useErrorDisplayStore } from \"react-utils/useDisplayErrorPage\";\nimport { resetAuthTokens } from \"utils/axios\";\n\nimport setParamsSerializer from \"./paramsSerializer\";\n\nimport { HEADERS_KEYS, MAXIMUM_OFFLINE_DURATION } from \"../constants\";\n\nlet checkOnlineInterval = null;\n\nconst shouldNot = skip => typeof skip === \"object\" || !skip;\n\nconst shouldShowToastr = response =>\n (typeof response === \"string\" && isNotEmpty(response)) ||\n (typeof response === \"object\" && (response?.notice || response?.noticeCode));\n\nconst setAuthHeaders = () => {\n // @ts-ignore\n axios.defaults.headers = {\n [HEADERS_KEYS.accept]: \"application/json\",\n [HEADERS_KEYS.contentType]: \"application/json\",\n [HEADERS_KEYS.xCsrfToken]: document\n .querySelector('[name=\"csrf-token\"]')\n ?.getAttribute(\"content\"),\n };\n};\n\n// pipe function from ramda doesn't accept array of functions.\n// We can't use spread operator too. So this is a workaround.\nconst createPipe = functions => data =>\n functions.reduce((acc, fn) => fn(acc), data);\n\nconst transformResponseKeysToCamelCase = response => {\n const { transformResponseCase = true } = response.config;\n\n if (response.data && transformResponseCase) {\n response.data = keysToCamelCase(response.data);\n }\n\n return response;\n};\n\nconst transformErrorKeysToCamelCase = error => {\n const { transformResponseCase = true } = error.config ?? {};\n\n if (error.response?.data && transformResponseCase) {\n error.response.data = keysToCamelCase(error.response.data);\n }\n\n return error;\n};\n\nconst showSuccessToastr = response => {\n const { showToastr = true } = response.config;\n if (!showToastr) return response;\n\n if (matches({ showThumbsUpToastr: true }, response.data)) {\n // @ts-ignore\n Toastr.success(\"\", { icon: \"👍\", className: \"w-20\" });\n } else if (matches({ noticeCode: \"thumbs_up\" }, response.data)) {\n // @ts-ignore\n Toastr.success(\"\", { icon: \"👍\", className: \"w-20\" });\n } else if (shouldShowToastr(response.data)) {\n Toastr.success(response.data);\n }\n\n return response;\n};\n\nconst pullDataFromResponse = response => {\n const { includeMetadataInResponse = false } = response.config;\n\n return includeMetadataInResponse ? response : response.data;\n};\n\nconst buildSuccessResponseHandler = skip => {\n const interceptors = [];\n if (!skip?.transformCase) interceptors.push(transformResponseKeysToCamelCase);\n\n if (!skip?.showToastr) interceptors.push(showSuccessToastr);\n\n if (!skip?.pullDataFromResponse) interceptors.push(pullDataFromResponse);\n\n return createPipe(interceptors);\n};\n\nconst handleUnauthorizedErrorResponse = error => {\n if (error.response?.status !== 401) return error;\n\n resetAuthTokens();\n\n const { redirectOnError = true } = error.config ?? {};\n if (redirectOnError) {\n setTimeout(() => {\n const redirectTo =\n window.location.pathname === \"/login\"\n ? \"/login\"\n : `/login?redirect_uri=${encodeURIComponent(window.location.href)}`;\n\n // eslint-disable-next-line xss/no-location-href-assign\n window.location.href = redirectTo;\n }, 300);\n }\n\n return error;\n};\n\nconst isOnline = () => window.navigator.onLine;\n\nconst showOfflineToastr = () => {\n const toastId = Toastr.error(\n i18next.t(\"neetoCommons.toastr.error.networkError\")\n );\n\n if (toastId) {\n const dismissToastInterval = setInterval(() => {\n if (!isOnline()) return;\n\n toast.dismiss(toastId);\n clearInterval(dismissToastInterval);\n checkOnlineInterval = null;\n }, 1000);\n }\n};\n\nconst handleNetworkError = error => {\n if (checkOnlineInterval) return error;\n\n const startTime = Date.now();\n\n checkOnlineInterval = setInterval(() => {\n const elapsedTime = Date.now() - startTime;\n\n if (isOnline()) {\n clearInterval(checkOnlineInterval);\n checkOnlineInterval = null;\n } else if (elapsedTime >= MAXIMUM_OFFLINE_DURATION) {\n clearInterval(checkOnlineInterval);\n showOfflineToastr();\n }\n }, 1000);\n\n return error;\n};\n\nconst showErrorToastr = error => {\n const { showToastr = true, show422ErrorToastr = true } = error.config ?? {};\n if (!showToastr) return error;\n\n const { status } = error.response ?? {};\n\n if (error.message === \"Network Error\") return handleNetworkError(error);\n\n if (error.code === \"ECONNABORTED\") {\n return error;\n }\n\n const skippedStatusCodes = [403, 404, 520, 422];\n if (!skippedStatusCodes.includes(status) && !axios.isCancel(error)) {\n // we already display a page in case of 403 & 404 and we don't want to show a toastr for cancelled requests.\n // We handle cloudflare error differently for production and other environments.\n Toastr.error(error);\n }\n\n if (status === 422 && show422ErrorToastr) {\n Toastr.error(error);\n }\n\n if (status === 520) {\n if (globalProps.railsEnv === \"production\") {\n Toastr.error(i18next.t(\"generic.error\"));\n } else Toastr.error(error);\n }\n\n return error;\n};\n\nconst getUrlPathName = url => {\n try {\n return new URL(url).pathname;\n } catch {\n return url;\n }\n};\n\nconst handle404ErrorResponse = error => {\n const { show404ErrorPage = true, show403ErrorPage = true } =\n error.config ?? {};\n\n const status = error.response?.status;\n if (\n (status === 404 && show404ErrorPage) ||\n (status === 403 && show403ErrorPage)\n ) {\n const fullUrl = error.request?.responseURL || error.config.url;\n useErrorDisplayStore.setState({\n showErrorPage: true,\n statusCode: status,\n failedApiUrl: fullUrl,\n failedApiPath: getUrlPathName(fullUrl),\n });\n }\n\n return error;\n};\n\nconst buildErrorResponseHandler = skip => {\n const interceptors = [];\n if (!skip?.transformCase) interceptors.push(transformErrorKeysToCamelCase);\n\n if (!skip?.show404ErrorPage) interceptors.push(handle404ErrorResponse);\n\n if (!skip?.logoutOn401) interceptors.push(handleUnauthorizedErrorResponse);\n\n if (!skip?.showToastr) interceptors.push(showErrorToastr);\n\n interceptors.push(Promise.reject.bind(Promise));\n\n return createPipe(interceptors);\n};\n\nconst cleanupCredentialsForCrossOrigin = request => {\n if (!request.url.includes(\"://\")) return request;\n\n if (request.url.includes(window.location.hostname)) return request;\n\n return evolve({ headers: omit([HEADERS_KEYS.xCsrfToken]) })(request);\n};\n\nconst transformDataToSnakeCase = request => {\n const { transformRequestCase = true } = request;\n\n if (!transformRequestCase) return request;\n\n return evolve(\n { data: serializeKeysToSnakeCase, params: serializeKeysToSnakeCase },\n request\n );\n};\n\nconst addRequestInterceptors = skip => {\n if (!skip?.cleanCredentialsForCrossOrigin) {\n axios.interceptors.request.use(cleanupCredentialsForCrossOrigin);\n }\n\n if (!skip?.transformCase) {\n axios.interceptors.request.use(transformDataToSnakeCase);\n }\n};\n\nconst addResponseInterceptors = skip => {\n axios.interceptors.response.use(\n buildSuccessResponseHandler(skip),\n buildErrorResponseHandler(skip)\n );\n};\n\nconst registerIntercepts = skip => {\n if (shouldNot(skip?.request)) addRequestInterceptors(skip?.request);\n\n if (shouldNot(skip?.response)) addResponseInterceptors(skip?.response);\n};\n\nexport default function initializeAxios(skip) {\n if (!skip?.baseURL) axios.defaults.baseURL = \"/\";\n\n if (!skip?.authHeaders) setAuthHeaders();\n\n if (!skip?.paramsSerializer) setParamsSerializer();\n\n if (shouldNot(skip?.interceptors)) registerIntercepts(skip?.interceptors);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["_axios","_interopRequireDefault","require","_i18next","_neetoCist","_Toastr","_ramda","_reactToastify","_useDisplayErrorPage","_axios2","_paramsSerializer","_constants","checkOnlineInterval","requestErrorToasts","shouldNot","skip","_typeof2","shouldShowToastr","response","isNotEmpty","notice","noticeCode","setAuthHeaders","_document$querySelect","_axios$defaults$heade","axios","defaults","headers","_defineProperty2","HEADERS_KEYS","accept","contentType","xCsrfToken","document","querySelector","getAttribute","createPipe","functions","data","reduce","acc","fn","transformResponseKeysToCamelCase","_response$config$tran","config","transformResponseCase","keysToCamelCase","transformErrorKeysToCamelCase","error","_error$config","_error$response","_ref","_ref$transformRespons","showSuccessToastr","_response$config","_response$config$show","showToastr","requestUrl","url","requestMethod","method","toastIdKey","concat","errorToastId","toast","dismiss","dissoc","matches","showThumbsUpToastr","Toastr","success","icon","className","pullDataFromResponse","_response$config$incl","includeMetadataInResponse","buildSuccessResponseHandler","interceptors","transformCase","push","handleUnauthorizedErrorResponse","_error$response2","_error$config2","status","resetAuthTokens","_ref2","_ref2$redirectOnError","redirectOnError","setTimeout","redirectTo","window","location","pathname","encodeURIComponent","href","isOnline","navigator","onLine","showOfflineToastr","toastId","i18next","t","dismissToastInterval","setInterval","clearInterval","handleNetworkError","startTime","Date","now","elapsedTime","MAXIMUM_OFFLINE_DURATION","showErrorToastr","_error$config3","_error$response3","_ref3","_ref3$showToastr","_ref3$show422ErrorToa","show422ErrorToastr","_ref3$url","_ref3$method","_ref4","message","code","toastrContent","skippedStatusCodes","includes","isCancel","globalProps","railsEnv","getUrlPathName","URL","_unused","handle404ErrorResponse","_error$config4","_error$response4","_ref5","_ref5$show404ErrorPag","show404ErrorPage","_ref5$show403ErrorPag","show403ErrorPage","_error$request","fullUrl","request","responseURL","useErrorDisplayStore","setState","showErrorPage","statusCode","failedApiUrl","failedApiPath","buildErrorResponseHandler","logoutOn401","Promise","reject","bind","cleanupCredentialsForCrossOrigin","hostname","evolve","omit","transformDataToSnakeCase","_request$transformReq","transformRequestCase","serializeKeysToSnakeCase","params","addRequestInterceptors","cleanCredentialsForCrossOrigin","use","addResponseInterceptors","registerIntercepts","initializeAxios","baseURL","authHeaders","paramsSerializer","setParamsSerializer"],"sources":["../../../../src/initializers/axiosInitializer/index.js"],"sourcesContent":["import axios from \"axios\";\nimport i18next from \"i18next\";\nimport {\n isNotEmpty,\n keysToCamelCase,\n matches,\n serializeKeysToSnakeCase,\n} from \"neetocist\";\nimport { Toastr } from \"neetoui\";\nimport { dissoc, evolve, omit } from \"ramda\";\nimport { toast } from \"react-toastify\";\nimport { useErrorDisplayStore } from \"react-utils/useDisplayErrorPage\";\nimport { resetAuthTokens } from \"utils/axios\";\n\nimport setParamsSerializer from \"./paramsSerializer\";\n\nimport { HEADERS_KEYS, MAXIMUM_OFFLINE_DURATION } from \"../constants\";\n\nlet checkOnlineInterval = null;\nlet requestErrorToasts = {};\n\nconst shouldNot = skip => typeof skip === \"object\" || !skip;\n\nconst shouldShowToastr = response =>\n (typeof response === \"string\" && isNotEmpty(response)) ||\n (typeof response === \"object\" && (response?.notice || response?.noticeCode));\n\nconst setAuthHeaders = () => {\n // @ts-ignore\n axios.defaults.headers = {\n [HEADERS_KEYS.accept]: \"application/json\",\n [HEADERS_KEYS.contentType]: \"application/json\",\n [HEADERS_KEYS.xCsrfToken]: document\n .querySelector('[name=\"csrf-token\"]')\n ?.getAttribute(\"content\"),\n };\n};\n\n// pipe function from ramda doesn't accept array of functions.\n// We can't use spread operator too. So this is a workaround.\nconst createPipe = functions => data =>\n functions.reduce((acc, fn) => fn(acc), data);\n\nconst transformResponseKeysToCamelCase = response => {\n const { transformResponseCase = true } = response.config;\n\n if (response.data && transformResponseCase) {\n response.data = keysToCamelCase(response.data);\n }\n\n return response;\n};\n\nconst transformErrorKeysToCamelCase = error => {\n const { transformResponseCase = true } = error.config ?? {};\n\n if (error.response?.data && transformResponseCase) {\n error.response.data = keysToCamelCase(error.response.data);\n }\n\n return error;\n};\n\nconst showSuccessToastr = response => {\n const {\n showToastr = true,\n url: requestUrl,\n method: requestMethod,\n } = response.config;\n if (!showToastr) return response;\n\n const toastIdKey = `${requestMethod}:${requestUrl}`;\n const errorToastId = requestErrorToasts[toastIdKey];\n if (errorToastId) {\n toast.dismiss(errorToastId);\n requestErrorToasts = dissoc(toastIdKey, requestErrorToasts);\n }\n\n if (matches({ showThumbsUpToastr: true }, response.data)) {\n // @ts-ignore\n Toastr.success(\"\", { icon: \"👍\", className: \"w-20\" });\n } else if (matches({ noticeCode: \"thumbs_up\" }, response.data)) {\n // @ts-ignore\n Toastr.success(\"\", { icon: \"👍\", className: \"w-20\" });\n } else if (shouldShowToastr(response.data)) {\n Toastr.success(response.data);\n }\n\n return response;\n};\n\nconst pullDataFromResponse = response => {\n const { includeMetadataInResponse = false } = response.config;\n\n return includeMetadataInResponse ? response : response.data;\n};\n\nconst buildSuccessResponseHandler = skip => {\n const interceptors = [];\n if (!skip?.transformCase) interceptors.push(transformResponseKeysToCamelCase);\n\n if (!skip?.showToastr) interceptors.push(showSuccessToastr);\n\n if (!skip?.pullDataFromResponse) interceptors.push(pullDataFromResponse);\n\n return createPipe(interceptors);\n};\n\nconst handleUnauthorizedErrorResponse = error => {\n if (error.response?.status !== 401) return error;\n\n resetAuthTokens();\n\n const { redirectOnError = true } = error.config ?? {};\n if (redirectOnError) {\n setTimeout(() => {\n const redirectTo =\n window.location.pathname === \"/login\"\n ? \"/login\"\n : `/login?redirect_uri=${encodeURIComponent(window.location.href)}`;\n\n // eslint-disable-next-line xss/no-location-href-assign\n window.location.href = redirectTo;\n }, 300);\n }\n\n return error;\n};\n\nconst isOnline = () => window.navigator.onLine;\n\nconst showOfflineToastr = () => {\n const toastId = Toastr.error(\n i18next.t(\"neetoCommons.toastr.error.networkError\")\n );\n\n if (toastId) {\n const dismissToastInterval = setInterval(() => {\n if (!isOnline()) return;\n\n toast.dismiss(toastId);\n clearInterval(dismissToastInterval);\n checkOnlineInterval = null;\n }, 1000);\n }\n};\n\nconst handleNetworkError = error => {\n if (checkOnlineInterval) return error;\n\n const startTime = Date.now();\n\n checkOnlineInterval = setInterval(() => {\n const elapsedTime = Date.now() - startTime;\n\n if (isOnline()) {\n clearInterval(checkOnlineInterval);\n checkOnlineInterval = null;\n } else if (elapsedTime >= MAXIMUM_OFFLINE_DURATION) {\n clearInterval(checkOnlineInterval);\n showOfflineToastr();\n }\n }, 1000);\n\n return error;\n};\n\nconst showErrorToastr = error => {\n const {\n showToastr = true,\n show422ErrorToastr = true,\n url: requestUrl = \"\",\n method: requestMethod = \"\",\n } = error.config ?? {};\n const { status } = error.response ?? {};\n\n if (!showToastr) return error;\n\n if (error.message === \"Network Error\") return handleNetworkError(error);\n\n if (error.code === \"ECONNABORTED\") {\n return error;\n }\n\n let shouldShowToastr = false,\n toastrContent = error;\n\n const skippedStatusCodes = [403, 404, 520, 422];\n if (!skippedStatusCodes.includes(status) && !axios.isCancel(error)) {\n // we already display a page in case of 403 & 404 and we don't want to show a toastr for cancelled requests.\n // We handle cloudflare error differently for production and other environments.\n shouldShowToastr = true;\n }\n\n if (status === 422 && show422ErrorToastr) shouldShowToastr = true;\n\n if (status === 520) {\n shouldShowToastr = true;\n if (globalProps.railsEnv === \"production\") {\n toastrContent = i18next.t(\"generic.error\");\n }\n }\n\n const toastIdKey = `${requestMethod}:${requestUrl}`;\n const errorToastId = requestErrorToasts[toastIdKey];\n if (errorToastId) toast.dismiss(errorToastId);\n\n if (shouldShowToastr) {\n if (errorToastId) {\n // if there's an existing toastr with the same message, the onClose callback in the neetoUI which\n // removes the toastr from the unique list will be fired only after the toast is completely removed\n // from the UI. If there's no delay, the new toastr will be considered as duplicate and ignored.\n setTimeout(() => {\n requestErrorToasts[toastIdKey] = Toastr.error(toastrContent);\n }, 1200);\n } else requestErrorToasts[toastIdKey] = Toastr.error(toastrContent);\n }\n\n return error;\n};\n\nconst getUrlPathName = url => {\n try {\n return new URL(url).pathname;\n } catch {\n return url;\n }\n};\n\nconst handle404ErrorResponse = error => {\n const { show404ErrorPage = true, show403ErrorPage = true } =\n error.config ?? {};\n\n const status = error.response?.status;\n if (\n (status === 404 && show404ErrorPage) ||\n (status === 403 && show403ErrorPage)\n ) {\n const fullUrl = error.request?.responseURL || error.config.url;\n useErrorDisplayStore.setState({\n showErrorPage: true,\n statusCode: status,\n failedApiUrl: fullUrl,\n failedApiPath: getUrlPathName(fullUrl),\n });\n }\n\n return error;\n};\n\nconst buildErrorResponseHandler = skip => {\n const interceptors = [];\n if (!skip?.transformCase) interceptors.push(transformErrorKeysToCamelCase);\n\n if (!skip?.show404ErrorPage) interceptors.push(handle404ErrorResponse);\n\n if (!skip?.logoutOn401) interceptors.push(handleUnauthorizedErrorResponse);\n\n if (!skip?.showToastr) interceptors.push(showErrorToastr);\n\n interceptors.push(Promise.reject.bind(Promise));\n\n return createPipe(interceptors);\n};\n\nconst cleanupCredentialsForCrossOrigin = request => {\n if (!request.url.includes(\"://\")) return request;\n\n if (request.url.includes(window.location.hostname)) return request;\n\n return evolve({ headers: omit([HEADERS_KEYS.xCsrfToken]) })(request);\n};\n\nconst transformDataToSnakeCase = request => {\n const { transformRequestCase = true } = request;\n\n if (!transformRequestCase) return request;\n\n return evolve(\n { data: serializeKeysToSnakeCase, params: serializeKeysToSnakeCase },\n request\n );\n};\n\nconst addRequestInterceptors = skip => {\n if (!skip?.cleanCredentialsForCrossOrigin) {\n axios.interceptors.request.use(cleanupCredentialsForCrossOrigin);\n }\n\n if (!skip?.transformCase) {\n axios.interceptors.request.use(transformDataToSnakeCase);\n }\n};\n\nconst addResponseInterceptors = skip => {\n axios.interceptors.response.use(\n buildSuccessResponseHandler(skip),\n buildErrorResponseHandler(skip)\n );\n};\n\nconst registerIntercepts = skip => {\n if (shouldNot(skip?.request)) addRequestInterceptors(skip?.request);\n\n if (shouldNot(skip?.response)) addResponseInterceptors(skip?.response);\n};\n\nexport default function initializeAxios(skip) {\n if (!skip?.baseURL) axios.defaults.baseURL = \"/\";\n\n if (!skip?.authHeaders) setAuthHeaders();\n\n if (!skip?.paramsSerializer) setParamsSerializer();\n\n if (shouldNot(skip?.interceptors)) registerIntercepts(skip?.interceptors);\n}\n"],"mappings":"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"}
@@ -16,10 +16,13 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
16
16
  var useFetchNeetoApps = function useFetchNeetoApps(options) {
17
17
  var _globalProps$user;
18
18
  var scopedQueryKey = ["".concat(_query.QUERY_KEYS.NEETO_APPS_LIST, "-").concat((_globalProps$user = globalProps.user) === null || _globalProps$user === void 0 ? void 0 : _globalProps$user.id)];
19
- var neetoApps = _usePersistedQuery["default"].getCache(scopedQueryKey);
19
+ var _ref = _usePersistedQuery["default"].getCache(scopedQueryKey) || {},
20
+ data = _ref.data,
21
+ modifiedAt = _ref.modifiedAt;
22
+ var expired = modifiedAt <= Date.now() - _constants.NEETO_APPS_LIST_STALE_TIME;
20
23
  return (0, _usePersistedQuery["default"])(scopedQueryKey, _neeto_apps["default"].fetch, _objectSpread({
21
24
  staleTime: _constants.NEETO_APPS_LIST_STALE_TIME,
22
- enabled: (0, _neetoCist.isNotPresent)(neetoApps === null || neetoApps === void 0 ? void 0 : neetoApps.data)
25
+ enabled: expired || (0, _neetoCist.isNotPresent)(data)
23
26
  }, options));
24
27
  };
25
28
  var _default = useFetchNeetoApps;
@@ -1 +1 @@
1
- {"version":3,"file":"useFetchNeetoApps.js","names":["_neetoCist","require","_usePersistedQuery","_interopRequireDefault","_neeto_apps","_constants","_query","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","useFetchNeetoApps","options","_globalProps$user","scopedQueryKey","concat","QUERY_KEYS","NEETO_APPS_LIST","globalProps","user","id","neetoApps","usePersistedQuery","getCache","neetoAppsApi","fetch","staleTime","NEETO_APPS_LIST_STALE_TIME","enabled","isNotPresent","data","_default","exports"],"sources":["../../../../src/react-utils/useFetchNeetoApps/useFetchNeetoApps.js"],"sourcesContent":["import { isNotPresent } from \"neetocist\";\nimport usePersistedQuery from \"react-utils/usePersistedQuery\";\n\nimport neetoAppsApi from \"./apis/neeto_apps\";\n\nimport { NEETO_APPS_LIST_STALE_TIME } from \"../constants\";\nimport { QUERY_KEYS } from \"../constants/query\";\n\nconst useFetchNeetoApps = options => {\n const scopedQueryKey = [\n `${QUERY_KEYS.NEETO_APPS_LIST}-${globalProps.user?.id}`,\n ];\n\n const neetoApps = usePersistedQuery.getCache(scopedQueryKey);\n\n return usePersistedQuery(scopedQueryKey, neetoAppsApi.fetch, {\n staleTime: NEETO_APPS_LIST_STALE_TIME,\n enabled: isNotPresent(neetoApps?.data),\n ...options,\n });\n};\n\nexport default useFetchNeetoApps;\n"],"mappings":";;;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,WAAA,GAAAD,sBAAA,CAAAF,OAAA;AAEA,IAAAI,UAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AAAgD,SAAAM,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAC,MAAA,CAAAD,IAAA,CAAAF,MAAA,OAAAG,MAAA,CAAAC,qBAAA,QAAAC,OAAA,GAAAF,MAAA,CAAAC,qBAAA,CAAAJ,MAAA,GAAAC,cAAA,KAAAI,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAJ,MAAA,CAAAK,wBAAA,CAAAR,MAAA,EAAAO,GAAA,EAAAE,UAAA,OAAAP,IAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,IAAA,EAAAG,OAAA,YAAAH,IAAA;AAAA,SAAAU,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAf,OAAA,CAAAI,MAAA,CAAAc,MAAA,OAAAC,OAAA,WAAAC,GAAA,QAAAC,gBAAA,aAAAP,MAAA,EAAAM,GAAA,EAAAF,MAAA,CAAAE,GAAA,SAAAhB,MAAA,CAAAkB,yBAAA,GAAAlB,MAAA,CAAAmB,gBAAA,CAAAT,MAAA,EAAAV,MAAA,CAAAkB,yBAAA,CAAAJ,MAAA,KAAAlB,OAAA,CAAAI,MAAA,CAAAc,MAAA,GAAAC,OAAA,WAAAC,GAAA,IAAAhB,MAAA,CAAAoB,cAAA,CAAAV,MAAA,EAAAM,GAAA,EAAAhB,MAAA,CAAAK,wBAAA,CAAAS,MAAA,EAAAE,GAAA,iBAAAN,MAAA;AAEhD,IAAMW,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAGC,OAAO,EAAI;EAAA,IAAAC,iBAAA;EACnC,IAAMC,cAAc,GAAG,IAAAC,MAAA,CAClBC,iBAAU,CAACC,eAAe,OAAAF,MAAA,EAAAF,iBAAA,GAAIK,WAAW,CAACC,IAAI,cAAAN,iBAAA,uBAAhBA,iBAAA,CAAkBO,EAAE,EACtD;EAED,IAAMC,SAAS,GAAGC,6BAAiB,CAACC,QAAQ,CAACT,cAAc,CAAC;EAE5D,OAAO,IAAAQ,6BAAiB,EAACR,cAAc,EAAEU,sBAAY,CAACC,KAAK,EAAA1B,aAAA;IACzD2B,SAAS,EAAEC,qCAA0B;IACrCC,OAAO,EAAE,IAAAC,uBAAY,EAACR,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAES,IAAI;EAAC,GACnClB,OAAO,EACV;AACJ,CAAC;AAAC,IAAAmB,QAAA,GAEapB,iBAAiB;AAAAqB,OAAA,cAAAD,QAAA"}
1
+ {"version":3,"file":"useFetchNeetoApps.js","names":["_neetoCist","require","_usePersistedQuery","_interopRequireDefault","_neeto_apps","_constants","_query","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","useFetchNeetoApps","options","_globalProps$user","scopedQueryKey","concat","QUERY_KEYS","NEETO_APPS_LIST","globalProps","user","id","_ref","usePersistedQuery","getCache","data","modifiedAt","expired","Date","now","NEETO_APPS_LIST_STALE_TIME","neetoAppsApi","fetch","staleTime","enabled","isNotPresent","_default","exports"],"sources":["../../../../src/react-utils/useFetchNeetoApps/useFetchNeetoApps.js"],"sourcesContent":["import { isNotPresent } from \"neetocist\";\nimport usePersistedQuery from \"react-utils/usePersistedQuery\";\n\nimport neetoAppsApi from \"./apis/neeto_apps\";\n\nimport { NEETO_APPS_LIST_STALE_TIME } from \"../constants\";\nimport { QUERY_KEYS } from \"../constants/query\";\n\nconst useFetchNeetoApps = options => {\n const scopedQueryKey = [\n `${QUERY_KEYS.NEETO_APPS_LIST}-${globalProps.user?.id}`,\n ];\n\n const { data, modifiedAt } = usePersistedQuery.getCache(scopedQueryKey) || {};\n const expired = modifiedAt <= Date.now() - NEETO_APPS_LIST_STALE_TIME;\n\n return usePersistedQuery(scopedQueryKey, neetoAppsApi.fetch, {\n staleTime: NEETO_APPS_LIST_STALE_TIME,\n enabled: expired || isNotPresent(data),\n ...options,\n });\n};\n\nexport default useFetchNeetoApps;\n"],"mappings":";;;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEA,IAAAG,WAAA,GAAAD,sBAAA,CAAAF,OAAA;AAEA,IAAAI,UAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AAAgD,SAAAM,QAAAC,MAAA,EAAAC,cAAA,QAAAC,IAAA,GAAAC,MAAA,CAAAD,IAAA,CAAAF,MAAA,OAAAG,MAAA,CAAAC,qBAAA,QAAAC,OAAA,GAAAF,MAAA,CAAAC,qBAAA,CAAAJ,MAAA,GAAAC,cAAA,KAAAI,OAAA,GAAAA,OAAA,CAAAC,MAAA,WAAAC,GAAA,WAAAJ,MAAA,CAAAK,wBAAA,CAAAR,MAAA,EAAAO,GAAA,EAAAE,UAAA,OAAAP,IAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,IAAA,EAAAG,OAAA,YAAAH,IAAA;AAAA,SAAAU,cAAAC,MAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAF,CAAA,UAAAG,MAAA,WAAAF,SAAA,CAAAD,CAAA,IAAAC,SAAA,CAAAD,CAAA,QAAAA,CAAA,OAAAf,OAAA,CAAAI,MAAA,CAAAc,MAAA,OAAAC,OAAA,WAAAC,GAAA,QAAAC,gBAAA,aAAAP,MAAA,EAAAM,GAAA,EAAAF,MAAA,CAAAE,GAAA,SAAAhB,MAAA,CAAAkB,yBAAA,GAAAlB,MAAA,CAAAmB,gBAAA,CAAAT,MAAA,EAAAV,MAAA,CAAAkB,yBAAA,CAAAJ,MAAA,KAAAlB,OAAA,CAAAI,MAAA,CAAAc,MAAA,GAAAC,OAAA,WAAAC,GAAA,IAAAhB,MAAA,CAAAoB,cAAA,CAAAV,MAAA,EAAAM,GAAA,EAAAhB,MAAA,CAAAK,wBAAA,CAAAS,MAAA,EAAAE,GAAA,iBAAAN,MAAA;AAEhD,IAAMW,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAGC,OAAO,EAAI;EAAA,IAAAC,iBAAA;EACnC,IAAMC,cAAc,GAAG,IAAAC,MAAA,CAClBC,iBAAU,CAACC,eAAe,OAAAF,MAAA,EAAAF,iBAAA,GAAIK,WAAW,CAACC,IAAI,cAAAN,iBAAA,uBAAhBA,iBAAA,CAAkBO,EAAE,EACtD;EAED,IAAAC,IAAA,GAA6BC,6BAAiB,CAACC,QAAQ,CAACT,cAAc,CAAC,IAAI,CAAC,CAAC;IAArEU,IAAI,GAAAH,IAAA,CAAJG,IAAI;IAAEC,UAAU,GAAAJ,IAAA,CAAVI,UAAU;EACxB,IAAMC,OAAO,GAAGD,UAAU,IAAIE,IAAI,CAACC,GAAG,EAAE,GAAGC,qCAA0B;EAErE,OAAO,IAAAP,6BAAiB,EAACR,cAAc,EAAEgB,sBAAY,CAACC,KAAK,EAAAhC,aAAA;IACzDiC,SAAS,EAAEH,qCAA0B;IACrCI,OAAO,EAAEP,OAAO,IAAI,IAAAQ,uBAAY,EAACV,IAAI;EAAC,GACnCZ,OAAO,EACV;AACJ,CAAC;AAAC,IAAAuB,QAAA,GAEaxB,iBAAiB;AAAAyB,OAAA,cAAAD,QAAA"}
@@ -4,13 +4,14 @@ import axios from "axios";
4
4
  import i18next from "i18next";
5
5
  import { isNotEmpty, keysToCamelCase, matches, serializeKeysToSnakeCase } from "@bigbinary/neeto-cist";
6
6
  import Toastr from "@bigbinary/neetoui/Toastr";
7
- import { evolve, omit } from "ramda";
7
+ import { dissoc, evolve, omit } from "ramda";
8
8
  import { toast } from "react-toastify";
9
9
  import { useErrorDisplayStore } from "../../react-utils/useDisplayErrorPage";
10
10
  import { resetAuthTokens } from "../../utils/axios";
11
11
  import setParamsSerializer from "./paramsSerializer";
12
12
  import { HEADERS_KEYS, MAXIMUM_OFFLINE_DURATION } from "../constants";
13
13
  var checkOnlineInterval = null;
14
+ var requestErrorToasts = {};
14
15
  var shouldNot = function shouldNot(skip) {
15
16
  return _typeof(skip) === "object" || !skip;
16
17
  };
@@ -51,9 +52,18 @@ var transformErrorKeysToCamelCase = function transformErrorKeysToCamelCase(error
51
52
  return error;
52
53
  };
53
54
  var showSuccessToastr = function showSuccessToastr(response) {
54
- var _response$config$show = response.config.showToastr,
55
- showToastr = _response$config$show === void 0 ? true : _response$config$show;
55
+ var _response$config = response.config,
56
+ _response$config$show = _response$config.showToastr,
57
+ showToastr = _response$config$show === void 0 ? true : _response$config$show,
58
+ requestUrl = _response$config.url,
59
+ requestMethod = _response$config.method;
56
60
  if (!showToastr) return response;
61
+ var toastIdKey = "".concat(requestMethod, ":").concat(requestUrl);
62
+ var errorToastId = requestErrorToasts[toastIdKey];
63
+ if (errorToastId) {
64
+ toast.dismiss(errorToastId);
65
+ requestErrorToasts = dissoc(toastIdKey, requestErrorToasts);
66
+ }
57
67
  if (matches({
58
68
  showThumbsUpToastr: true
59
69
  }, response.data)) {
@@ -139,27 +149,45 @@ var showErrorToastr = function showErrorToastr(error) {
139
149
  _ref3$showToastr = _ref3.showToastr,
140
150
  showToastr = _ref3$showToastr === void 0 ? true : _ref3$showToastr,
141
151
  _ref3$show422ErrorToa = _ref3.show422ErrorToastr,
142
- show422ErrorToastr = _ref3$show422ErrorToa === void 0 ? true : _ref3$show422ErrorToa;
143
- if (!showToastr) return error;
152
+ show422ErrorToastr = _ref3$show422ErrorToa === void 0 ? true : _ref3$show422ErrorToa,
153
+ _ref3$url = _ref3.url,
154
+ requestUrl = _ref3$url === void 0 ? "" : _ref3$url,
155
+ _ref3$method = _ref3.method,
156
+ requestMethod = _ref3$method === void 0 ? "" : _ref3$method;
144
157
  var _ref4 = (_error$response3 = error.response) !== null && _error$response3 !== void 0 ? _error$response3 : {},
145
158
  status = _ref4.status;
159
+ if (!showToastr) return error;
146
160
  if (error.message === "Network Error") return handleNetworkError(error);
147
161
  if (error.code === "ECONNABORTED") {
148
162
  return error;
149
163
  }
164
+ var shouldShowToastr = false,
165
+ toastrContent = error;
150
166
  var skippedStatusCodes = [403, 404, 520, 422];
151
167
  if (!skippedStatusCodes.includes(status) && !axios.isCancel(error)) {
152
168
  // we already display a page in case of 403 & 404 and we don't want to show a toastr for cancelled requests.
153
169
  // We handle cloudflare error differently for production and other environments.
154
- Toastr.error(error);
155
- }
156
- if (status === 422 && show422ErrorToastr) {
157
- Toastr.error(error);
170
+ shouldShowToastr = true;
158
171
  }
172
+ if (status === 422 && show422ErrorToastr) shouldShowToastr = true;
159
173
  if (status === 520) {
174
+ shouldShowToastr = true;
160
175
  if (globalProps.railsEnv === "production") {
161
- Toastr.error(i18next.t("generic.error"));
162
- } else Toastr.error(error);
176
+ toastrContent = i18next.t("generic.error");
177
+ }
178
+ }
179
+ var toastIdKey = "".concat(requestMethod, ":").concat(requestUrl);
180
+ var errorToastId = requestErrorToasts[toastIdKey];
181
+ if (errorToastId) toast.dismiss(errorToastId);
182
+ if (shouldShowToastr) {
183
+ if (errorToastId) {
184
+ // if there's an existing toastr with the same message, the onClose callback in the neetoUI which
185
+ // removes the toastr from the unique list will be fired only after the toast is completely removed
186
+ // from the UI. If there's no delay, the new toastr will be considered as duplicate and ignored.
187
+ setTimeout(function () {
188
+ requestErrorToasts[toastIdKey] = Toastr.error(toastrContent);
189
+ }, 1200);
190
+ } else requestErrorToasts[toastIdKey] = Toastr.error(toastrContent);
163
191
  }
164
192
  return error;
165
193
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["axios","i18next","isNotEmpty","keysToCamelCase","matches","serializeKeysToSnakeCase","Toastr","evolve","omit","toast","useErrorDisplayStore","resetAuthTokens","setParamsSerializer","HEADERS_KEYS","MAXIMUM_OFFLINE_DURATION","checkOnlineInterval","shouldNot","skip","_typeof","shouldShowToastr","response","notice","noticeCode","setAuthHeaders","_document$querySelect","_axios$defaults$heade","defaults","headers","_defineProperty","accept","contentType","xCsrfToken","document","querySelector","getAttribute","createPipe","functions","data","reduce","acc","fn","transformResponseKeysToCamelCase","_response$config$tran","config","transformResponseCase","transformErrorKeysToCamelCase","error","_error$config","_error$response","_ref","_ref$transformRespons","showSuccessToastr","_response$config$show","showToastr","showThumbsUpToastr","success","icon","className","pullDataFromResponse","_response$config$incl","includeMetadataInResponse","buildSuccessResponseHandler","interceptors","transformCase","push","handleUnauthorizedErrorResponse","_error$response2","_error$config2","status","_ref2","_ref2$redirectOnError","redirectOnError","setTimeout","redirectTo","window","location","pathname","concat","encodeURIComponent","href","isOnline","navigator","onLine","showOfflineToastr","toastId","t","dismissToastInterval","setInterval","dismiss","clearInterval","handleNetworkError","startTime","Date","now","elapsedTime","showErrorToastr","_error$config3","_error$response3","_ref3","_ref3$showToastr","_ref3$show422ErrorToa","show422ErrorToastr","_ref4","message","code","skippedStatusCodes","includes","isCancel","globalProps","railsEnv","getUrlPathName","url","URL","_unused","handle404ErrorResponse","_error$config4","_error$response4","_ref5","_ref5$show404ErrorPag","show404ErrorPage","_ref5$show403ErrorPag","show403ErrorPage","_error$request","fullUrl","request","responseURL","setState","showErrorPage","statusCode","failedApiUrl","failedApiPath","buildErrorResponseHandler","logoutOn401","Promise","reject","bind","cleanupCredentialsForCrossOrigin","hostname","transformDataToSnakeCase","_request$transformReq","transformRequestCase","params","addRequestInterceptors","cleanCredentialsForCrossOrigin","use","addResponseInterceptors","registerIntercepts","initializeAxios","baseURL","authHeaders","paramsSerializer"],"sources":["../../../src/initializers/axiosInitializer/index.js"],"sourcesContent":["import axios from \"axios\";\nimport i18next from \"i18next\";\nimport {\n isNotEmpty,\n keysToCamelCase,\n matches,\n serializeKeysToSnakeCase,\n} from \"neetocist\";\nimport { Toastr } from \"neetoui\";\nimport { evolve, omit } from \"ramda\";\nimport { toast } from \"react-toastify\";\nimport { useErrorDisplayStore } from \"react-utils/useDisplayErrorPage\";\nimport { resetAuthTokens } from \"utils/axios\";\n\nimport setParamsSerializer from \"./paramsSerializer\";\n\nimport { HEADERS_KEYS, MAXIMUM_OFFLINE_DURATION } from \"../constants\";\n\nlet checkOnlineInterval = null;\n\nconst shouldNot = skip => typeof skip === \"object\" || !skip;\n\nconst shouldShowToastr = response =>\n (typeof response === \"string\" && isNotEmpty(response)) ||\n (typeof response === \"object\" && (response?.notice || response?.noticeCode));\n\nconst setAuthHeaders = () => {\n // @ts-ignore\n axios.defaults.headers = {\n [HEADERS_KEYS.accept]: \"application/json\",\n [HEADERS_KEYS.contentType]: \"application/json\",\n [HEADERS_KEYS.xCsrfToken]: document\n .querySelector('[name=\"csrf-token\"]')\n ?.getAttribute(\"content\"),\n };\n};\n\n// pipe function from ramda doesn't accept array of functions.\n// We can't use spread operator too. So this is a workaround.\nconst createPipe = functions => data =>\n functions.reduce((acc, fn) => fn(acc), data);\n\nconst transformResponseKeysToCamelCase = response => {\n const { transformResponseCase = true } = response.config;\n\n if (response.data && transformResponseCase) {\n response.data = keysToCamelCase(response.data);\n }\n\n return response;\n};\n\nconst transformErrorKeysToCamelCase = error => {\n const { transformResponseCase = true } = error.config ?? {};\n\n if (error.response?.data && transformResponseCase) {\n error.response.data = keysToCamelCase(error.response.data);\n }\n\n return error;\n};\n\nconst showSuccessToastr = response => {\n const { showToastr = true } = response.config;\n if (!showToastr) return response;\n\n if (matches({ showThumbsUpToastr: true }, response.data)) {\n // @ts-ignore\n Toastr.success(\"\", { icon: \"👍\", className: \"w-20\" });\n } else if (matches({ noticeCode: \"thumbs_up\" }, response.data)) {\n // @ts-ignore\n Toastr.success(\"\", { icon: \"👍\", className: \"w-20\" });\n } else if (shouldShowToastr(response.data)) {\n Toastr.success(response.data);\n }\n\n return response;\n};\n\nconst pullDataFromResponse = response => {\n const { includeMetadataInResponse = false } = response.config;\n\n return includeMetadataInResponse ? response : response.data;\n};\n\nconst buildSuccessResponseHandler = skip => {\n const interceptors = [];\n if (!skip?.transformCase) interceptors.push(transformResponseKeysToCamelCase);\n\n if (!skip?.showToastr) interceptors.push(showSuccessToastr);\n\n if (!skip?.pullDataFromResponse) interceptors.push(pullDataFromResponse);\n\n return createPipe(interceptors);\n};\n\nconst handleUnauthorizedErrorResponse = error => {\n if (error.response?.status !== 401) return error;\n\n resetAuthTokens();\n\n const { redirectOnError = true } = error.config ?? {};\n if (redirectOnError) {\n setTimeout(() => {\n const redirectTo =\n window.location.pathname === \"/login\"\n ? \"/login\"\n : `/login?redirect_uri=${encodeURIComponent(window.location.href)}`;\n\n // eslint-disable-next-line xss/no-location-href-assign\n window.location.href = redirectTo;\n }, 300);\n }\n\n return error;\n};\n\nconst isOnline = () => window.navigator.onLine;\n\nconst showOfflineToastr = () => {\n const toastId = Toastr.error(\n i18next.t(\"neetoCommons.toastr.error.networkError\")\n );\n\n if (toastId) {\n const dismissToastInterval = setInterval(() => {\n if (!isOnline()) return;\n\n toast.dismiss(toastId);\n clearInterval(dismissToastInterval);\n checkOnlineInterval = null;\n }, 1000);\n }\n};\n\nconst handleNetworkError = error => {\n if (checkOnlineInterval) return error;\n\n const startTime = Date.now();\n\n checkOnlineInterval = setInterval(() => {\n const elapsedTime = Date.now() - startTime;\n\n if (isOnline()) {\n clearInterval(checkOnlineInterval);\n checkOnlineInterval = null;\n } else if (elapsedTime >= MAXIMUM_OFFLINE_DURATION) {\n clearInterval(checkOnlineInterval);\n showOfflineToastr();\n }\n }, 1000);\n\n return error;\n};\n\nconst showErrorToastr = error => {\n const { showToastr = true, show422ErrorToastr = true } = error.config ?? {};\n if (!showToastr) return error;\n\n const { status } = error.response ?? {};\n\n if (error.message === \"Network Error\") return handleNetworkError(error);\n\n if (error.code === \"ECONNABORTED\") {\n return error;\n }\n\n const skippedStatusCodes = [403, 404, 520, 422];\n if (!skippedStatusCodes.includes(status) && !axios.isCancel(error)) {\n // we already display a page in case of 403 & 404 and we don't want to show a toastr for cancelled requests.\n // We handle cloudflare error differently for production and other environments.\n Toastr.error(error);\n }\n\n if (status === 422 && show422ErrorToastr) {\n Toastr.error(error);\n }\n\n if (status === 520) {\n if (globalProps.railsEnv === \"production\") {\n Toastr.error(i18next.t(\"generic.error\"));\n } else Toastr.error(error);\n }\n\n return error;\n};\n\nconst getUrlPathName = url => {\n try {\n return new URL(url).pathname;\n } catch {\n return url;\n }\n};\n\nconst handle404ErrorResponse = error => {\n const { show404ErrorPage = true, show403ErrorPage = true } =\n error.config ?? {};\n\n const status = error.response?.status;\n if (\n (status === 404 && show404ErrorPage) ||\n (status === 403 && show403ErrorPage)\n ) {\n const fullUrl = error.request?.responseURL || error.config.url;\n useErrorDisplayStore.setState({\n showErrorPage: true,\n statusCode: status,\n failedApiUrl: fullUrl,\n failedApiPath: getUrlPathName(fullUrl),\n });\n }\n\n return error;\n};\n\nconst buildErrorResponseHandler = skip => {\n const interceptors = [];\n if (!skip?.transformCase) interceptors.push(transformErrorKeysToCamelCase);\n\n if (!skip?.show404ErrorPage) interceptors.push(handle404ErrorResponse);\n\n if (!skip?.logoutOn401) interceptors.push(handleUnauthorizedErrorResponse);\n\n if (!skip?.showToastr) interceptors.push(showErrorToastr);\n\n interceptors.push(Promise.reject.bind(Promise));\n\n return createPipe(interceptors);\n};\n\nconst cleanupCredentialsForCrossOrigin = request => {\n if (!request.url.includes(\"://\")) return request;\n\n if (request.url.includes(window.location.hostname)) return request;\n\n return evolve({ headers: omit([HEADERS_KEYS.xCsrfToken]) })(request);\n};\n\nconst transformDataToSnakeCase = request => {\n const { transformRequestCase = true } = request;\n\n if (!transformRequestCase) return request;\n\n return evolve(\n { data: serializeKeysToSnakeCase, params: serializeKeysToSnakeCase },\n request\n );\n};\n\nconst addRequestInterceptors = skip => {\n if (!skip?.cleanCredentialsForCrossOrigin) {\n axios.interceptors.request.use(cleanupCredentialsForCrossOrigin);\n }\n\n if (!skip?.transformCase) {\n axios.interceptors.request.use(transformDataToSnakeCase);\n }\n};\n\nconst addResponseInterceptors = skip => {\n axios.interceptors.response.use(\n buildSuccessResponseHandler(skip),\n buildErrorResponseHandler(skip)\n );\n};\n\nconst registerIntercepts = skip => {\n if (shouldNot(skip?.request)) addRequestInterceptors(skip?.request);\n\n if (shouldNot(skip?.response)) addResponseInterceptors(skip?.response);\n};\n\nexport default function initializeAxios(skip) {\n if (!skip?.baseURL) axios.defaults.baseURL = \"/\";\n\n if (!skip?.authHeaders) setAuthHeaders();\n\n if (!skip?.paramsSerializer) setParamsSerializer();\n\n if (shouldNot(skip?.interceptors)) registerIntercepts(skip?.interceptors);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["axios","i18next","isNotEmpty","keysToCamelCase","matches","serializeKeysToSnakeCase","Toastr","dissoc","evolve","omit","toast","useErrorDisplayStore","resetAuthTokens","setParamsSerializer","HEADERS_KEYS","MAXIMUM_OFFLINE_DURATION","checkOnlineInterval","requestErrorToasts","shouldNot","skip","_typeof","shouldShowToastr","response","notice","noticeCode","setAuthHeaders","_document$querySelect","_axios$defaults$heade","defaults","headers","_defineProperty","accept","contentType","xCsrfToken","document","querySelector","getAttribute","createPipe","functions","data","reduce","acc","fn","transformResponseKeysToCamelCase","_response$config$tran","config","transformResponseCase","transformErrorKeysToCamelCase","error","_error$config","_error$response","_ref","_ref$transformRespons","showSuccessToastr","_response$config","_response$config$show","showToastr","requestUrl","url","requestMethod","method","toastIdKey","concat","errorToastId","dismiss","showThumbsUpToastr","success","icon","className","pullDataFromResponse","_response$config$incl","includeMetadataInResponse","buildSuccessResponseHandler","interceptors","transformCase","push","handleUnauthorizedErrorResponse","_error$response2","_error$config2","status","_ref2","_ref2$redirectOnError","redirectOnError","setTimeout","redirectTo","window","location","pathname","encodeURIComponent","href","isOnline","navigator","onLine","showOfflineToastr","toastId","t","dismissToastInterval","setInterval","clearInterval","handleNetworkError","startTime","Date","now","elapsedTime","showErrorToastr","_error$config3","_error$response3","_ref3","_ref3$showToastr","_ref3$show422ErrorToa","show422ErrorToastr","_ref3$url","_ref3$method","_ref4","message","code","toastrContent","skippedStatusCodes","includes","isCancel","globalProps","railsEnv","getUrlPathName","URL","_unused","handle404ErrorResponse","_error$config4","_error$response4","_ref5","_ref5$show404ErrorPag","show404ErrorPage","_ref5$show403ErrorPag","show403ErrorPage","_error$request","fullUrl","request","responseURL","setState","showErrorPage","statusCode","failedApiUrl","failedApiPath","buildErrorResponseHandler","logoutOn401","Promise","reject","bind","cleanupCredentialsForCrossOrigin","hostname","transformDataToSnakeCase","_request$transformReq","transformRequestCase","params","addRequestInterceptors","cleanCredentialsForCrossOrigin","use","addResponseInterceptors","registerIntercepts","initializeAxios","baseURL","authHeaders","paramsSerializer"],"sources":["../../../src/initializers/axiosInitializer/index.js"],"sourcesContent":["import axios from \"axios\";\nimport i18next from \"i18next\";\nimport {\n isNotEmpty,\n keysToCamelCase,\n matches,\n serializeKeysToSnakeCase,\n} from \"neetocist\";\nimport { Toastr } from \"neetoui\";\nimport { dissoc, evolve, omit } from \"ramda\";\nimport { toast } from \"react-toastify\";\nimport { useErrorDisplayStore } from \"react-utils/useDisplayErrorPage\";\nimport { resetAuthTokens } from \"utils/axios\";\n\nimport setParamsSerializer from \"./paramsSerializer\";\n\nimport { HEADERS_KEYS, MAXIMUM_OFFLINE_DURATION } from \"../constants\";\n\nlet checkOnlineInterval = null;\nlet requestErrorToasts = {};\n\nconst shouldNot = skip => typeof skip === \"object\" || !skip;\n\nconst shouldShowToastr = response =>\n (typeof response === \"string\" && isNotEmpty(response)) ||\n (typeof response === \"object\" && (response?.notice || response?.noticeCode));\n\nconst setAuthHeaders = () => {\n // @ts-ignore\n axios.defaults.headers = {\n [HEADERS_KEYS.accept]: \"application/json\",\n [HEADERS_KEYS.contentType]: \"application/json\",\n [HEADERS_KEYS.xCsrfToken]: document\n .querySelector('[name=\"csrf-token\"]')\n ?.getAttribute(\"content\"),\n };\n};\n\n// pipe function from ramda doesn't accept array of functions.\n// We can't use spread operator too. So this is a workaround.\nconst createPipe = functions => data =>\n functions.reduce((acc, fn) => fn(acc), data);\n\nconst transformResponseKeysToCamelCase = response => {\n const { transformResponseCase = true } = response.config;\n\n if (response.data && transformResponseCase) {\n response.data = keysToCamelCase(response.data);\n }\n\n return response;\n};\n\nconst transformErrorKeysToCamelCase = error => {\n const { transformResponseCase = true } = error.config ?? {};\n\n if (error.response?.data && transformResponseCase) {\n error.response.data = keysToCamelCase(error.response.data);\n }\n\n return error;\n};\n\nconst showSuccessToastr = response => {\n const {\n showToastr = true,\n url: requestUrl,\n method: requestMethod,\n } = response.config;\n if (!showToastr) return response;\n\n const toastIdKey = `${requestMethod}:${requestUrl}`;\n const errorToastId = requestErrorToasts[toastIdKey];\n if (errorToastId) {\n toast.dismiss(errorToastId);\n requestErrorToasts = dissoc(toastIdKey, requestErrorToasts);\n }\n\n if (matches({ showThumbsUpToastr: true }, response.data)) {\n // @ts-ignore\n Toastr.success(\"\", { icon: \"👍\", className: \"w-20\" });\n } else if (matches({ noticeCode: \"thumbs_up\" }, response.data)) {\n // @ts-ignore\n Toastr.success(\"\", { icon: \"👍\", className: \"w-20\" });\n } else if (shouldShowToastr(response.data)) {\n Toastr.success(response.data);\n }\n\n return response;\n};\n\nconst pullDataFromResponse = response => {\n const { includeMetadataInResponse = false } = response.config;\n\n return includeMetadataInResponse ? response : response.data;\n};\n\nconst buildSuccessResponseHandler = skip => {\n const interceptors = [];\n if (!skip?.transformCase) interceptors.push(transformResponseKeysToCamelCase);\n\n if (!skip?.showToastr) interceptors.push(showSuccessToastr);\n\n if (!skip?.pullDataFromResponse) interceptors.push(pullDataFromResponse);\n\n return createPipe(interceptors);\n};\n\nconst handleUnauthorizedErrorResponse = error => {\n if (error.response?.status !== 401) return error;\n\n resetAuthTokens();\n\n const { redirectOnError = true } = error.config ?? {};\n if (redirectOnError) {\n setTimeout(() => {\n const redirectTo =\n window.location.pathname === \"/login\"\n ? \"/login\"\n : `/login?redirect_uri=${encodeURIComponent(window.location.href)}`;\n\n // eslint-disable-next-line xss/no-location-href-assign\n window.location.href = redirectTo;\n }, 300);\n }\n\n return error;\n};\n\nconst isOnline = () => window.navigator.onLine;\n\nconst showOfflineToastr = () => {\n const toastId = Toastr.error(\n i18next.t(\"neetoCommons.toastr.error.networkError\")\n );\n\n if (toastId) {\n const dismissToastInterval = setInterval(() => {\n if (!isOnline()) return;\n\n toast.dismiss(toastId);\n clearInterval(dismissToastInterval);\n checkOnlineInterval = null;\n }, 1000);\n }\n};\n\nconst handleNetworkError = error => {\n if (checkOnlineInterval) return error;\n\n const startTime = Date.now();\n\n checkOnlineInterval = setInterval(() => {\n const elapsedTime = Date.now() - startTime;\n\n if (isOnline()) {\n clearInterval(checkOnlineInterval);\n checkOnlineInterval = null;\n } else if (elapsedTime >= MAXIMUM_OFFLINE_DURATION) {\n clearInterval(checkOnlineInterval);\n showOfflineToastr();\n }\n }, 1000);\n\n return error;\n};\n\nconst showErrorToastr = error => {\n const {\n showToastr = true,\n show422ErrorToastr = true,\n url: requestUrl = \"\",\n method: requestMethod = \"\",\n } = error.config ?? {};\n const { status } = error.response ?? {};\n\n if (!showToastr) return error;\n\n if (error.message === \"Network Error\") return handleNetworkError(error);\n\n if (error.code === \"ECONNABORTED\") {\n return error;\n }\n\n let shouldShowToastr = false,\n toastrContent = error;\n\n const skippedStatusCodes = [403, 404, 520, 422];\n if (!skippedStatusCodes.includes(status) && !axios.isCancel(error)) {\n // we already display a page in case of 403 & 404 and we don't want to show a toastr for cancelled requests.\n // We handle cloudflare error differently for production and other environments.\n shouldShowToastr = true;\n }\n\n if (status === 422 && show422ErrorToastr) shouldShowToastr = true;\n\n if (status === 520) {\n shouldShowToastr = true;\n if (globalProps.railsEnv === \"production\") {\n toastrContent = i18next.t(\"generic.error\");\n }\n }\n\n const toastIdKey = `${requestMethod}:${requestUrl}`;\n const errorToastId = requestErrorToasts[toastIdKey];\n if (errorToastId) toast.dismiss(errorToastId);\n\n if (shouldShowToastr) {\n if (errorToastId) {\n // if there's an existing toastr with the same message, the onClose callback in the neetoUI which\n // removes the toastr from the unique list will be fired only after the toast is completely removed\n // from the UI. If there's no delay, the new toastr will be considered as duplicate and ignored.\n setTimeout(() => {\n requestErrorToasts[toastIdKey] = Toastr.error(toastrContent);\n }, 1200);\n } else requestErrorToasts[toastIdKey] = Toastr.error(toastrContent);\n }\n\n return error;\n};\n\nconst getUrlPathName = url => {\n try {\n return new URL(url).pathname;\n } catch {\n return url;\n }\n};\n\nconst handle404ErrorResponse = error => {\n const { show404ErrorPage = true, show403ErrorPage = true } =\n error.config ?? {};\n\n const status = error.response?.status;\n if (\n (status === 404 && show404ErrorPage) ||\n (status === 403 && show403ErrorPage)\n ) {\n const fullUrl = error.request?.responseURL || error.config.url;\n useErrorDisplayStore.setState({\n showErrorPage: true,\n statusCode: status,\n failedApiUrl: fullUrl,\n failedApiPath: getUrlPathName(fullUrl),\n });\n }\n\n return error;\n};\n\nconst buildErrorResponseHandler = skip => {\n const interceptors = [];\n if (!skip?.transformCase) interceptors.push(transformErrorKeysToCamelCase);\n\n if (!skip?.show404ErrorPage) interceptors.push(handle404ErrorResponse);\n\n if (!skip?.logoutOn401) interceptors.push(handleUnauthorizedErrorResponse);\n\n if (!skip?.showToastr) interceptors.push(showErrorToastr);\n\n interceptors.push(Promise.reject.bind(Promise));\n\n return createPipe(interceptors);\n};\n\nconst cleanupCredentialsForCrossOrigin = request => {\n if (!request.url.includes(\"://\")) return request;\n\n if (request.url.includes(window.location.hostname)) return request;\n\n return evolve({ headers: omit([HEADERS_KEYS.xCsrfToken]) })(request);\n};\n\nconst transformDataToSnakeCase = request => {\n const { transformRequestCase = true } = request;\n\n if (!transformRequestCase) return request;\n\n return evolve(\n { data: serializeKeysToSnakeCase, params: serializeKeysToSnakeCase },\n request\n );\n};\n\nconst addRequestInterceptors = skip => {\n if (!skip?.cleanCredentialsForCrossOrigin) {\n axios.interceptors.request.use(cleanupCredentialsForCrossOrigin);\n }\n\n if (!skip?.transformCase) {\n axios.interceptors.request.use(transformDataToSnakeCase);\n }\n};\n\nconst addResponseInterceptors = skip => {\n axios.interceptors.response.use(\n buildSuccessResponseHandler(skip),\n buildErrorResponseHandler(skip)\n );\n};\n\nconst registerIntercepts = skip => {\n if (shouldNot(skip?.request)) addRequestInterceptors(skip?.request);\n\n if (shouldNot(skip?.response)) addResponseInterceptors(skip?.response);\n};\n\nexport default function initializeAxios(skip) {\n if (!skip?.baseURL) axios.defaults.baseURL = \"/\";\n\n if (!skip?.authHeaders) setAuthHeaders();\n\n if (!skip?.paramsSerializer) setParamsSerializer();\n\n if (shouldNot(skip?.interceptors)) registerIntercepts(skip?.interceptors);\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-commons-frontend",
3
- "version": "4.3.2",
3
+ "version": "4.3.4",
4
4
  "description": "A package encapsulating common code across neeto projects including initializers, utility functions, common components and hooks and so on.",
5
5
  "repository": "git@github.com:bigbinary/neeto-commons-frontend.git",
6
6
  "author": "Amaljith K <amaljith.k@bigbinary.com>",
@@ -9,10 +9,13 @@ import { QUERY_KEYS } from "../constants/query";
9
9
  var useFetchNeetoApps = function useFetchNeetoApps(options) {
10
10
  var _globalProps$user;
11
11
  var scopedQueryKey = ["".concat(QUERY_KEYS.NEETO_APPS_LIST, "-").concat((_globalProps$user = globalProps.user) === null || _globalProps$user === void 0 ? void 0 : _globalProps$user.id)];
12
- var neetoApps = usePersistedQuery.getCache(scopedQueryKey);
12
+ var _ref = usePersistedQuery.getCache(scopedQueryKey) || {},
13
+ data = _ref.data,
14
+ modifiedAt = _ref.modifiedAt;
15
+ var expired = modifiedAt <= Date.now() - NEETO_APPS_LIST_STALE_TIME;
13
16
  return usePersistedQuery(scopedQueryKey, neetoAppsApi.fetch, _objectSpread({
14
17
  staleTime: NEETO_APPS_LIST_STALE_TIME,
15
- enabled: isNotPresent(neetoApps === null || neetoApps === void 0 ? void 0 : neetoApps.data)
18
+ enabled: expired || isNotPresent(data)
16
19
  }, options));
17
20
  };
18
21
  export default useFetchNeetoApps;
@@ -1 +1 @@
1
- {"version":3,"file":"useFetchNeetoApps.js","names":["isNotPresent","usePersistedQuery","neetoAppsApi","NEETO_APPS_LIST_STALE_TIME","QUERY_KEYS","useFetchNeetoApps","options","_globalProps$user","scopedQueryKey","concat","NEETO_APPS_LIST","globalProps","user","id","neetoApps","getCache","fetch","_objectSpread","staleTime","enabled","data"],"sources":["../../../src/react-utils/useFetchNeetoApps/useFetchNeetoApps.js"],"sourcesContent":["import { isNotPresent } from \"neetocist\";\nimport usePersistedQuery from \"react-utils/usePersistedQuery\";\n\nimport neetoAppsApi from \"./apis/neeto_apps\";\n\nimport { NEETO_APPS_LIST_STALE_TIME } from \"../constants\";\nimport { QUERY_KEYS } from \"../constants/query\";\n\nconst useFetchNeetoApps = options => {\n const scopedQueryKey = [\n `${QUERY_KEYS.NEETO_APPS_LIST}-${globalProps.user?.id}`,\n ];\n\n const neetoApps = usePersistedQuery.getCache(scopedQueryKey);\n\n return usePersistedQuery(scopedQueryKey, neetoAppsApi.fetch, {\n staleTime: NEETO_APPS_LIST_STALE_TIME,\n enabled: isNotPresent(neetoApps?.data),\n ...options,\n });\n};\n\nexport default useFetchNeetoApps;\n"],"mappings":";;;AAAA,SAASA,YAAY;AACrB,OAAOC,iBAAiB;AAExB,OAAOC,YAAY;AAEnB,SAASC,0BAA0B;AACnC,SAASC,UAAU;AAEnB,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAGC,OAAO,EAAI;EAAA,IAAAC,iBAAA;EACnC,IAAMC,cAAc,GAAG,IAAAC,MAAA,CAClBL,UAAU,CAACM,eAAe,OAAAD,MAAA,EAAAF,iBAAA,GAAII,WAAW,CAACC,IAAI,cAAAL,iBAAA,uBAAhBA,iBAAA,CAAkBM,EAAE,EACtD;EAED,IAAMC,SAAS,GAAGb,iBAAiB,CAACc,QAAQ,CAACP,cAAc,CAAC;EAE5D,OAAOP,iBAAiB,CAACO,cAAc,EAAEN,YAAY,CAACc,KAAK,EAAAC,aAAA;IACzDC,SAAS,EAAEf,0BAA0B;IACrCgB,OAAO,EAAEnB,YAAY,CAACc,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEM,IAAI;EAAC,GACnCd,OAAO,EACV;AACJ,CAAC;AAED,eAAeD,iBAAiB"}
1
+ {"version":3,"file":"useFetchNeetoApps.js","names":["isNotPresent","usePersistedQuery","neetoAppsApi","NEETO_APPS_LIST_STALE_TIME","QUERY_KEYS","useFetchNeetoApps","options","_globalProps$user","scopedQueryKey","concat","NEETO_APPS_LIST","globalProps","user","id","_ref","getCache","data","modifiedAt","expired","Date","now","fetch","_objectSpread","staleTime","enabled"],"sources":["../../../src/react-utils/useFetchNeetoApps/useFetchNeetoApps.js"],"sourcesContent":["import { isNotPresent } from \"neetocist\";\nimport usePersistedQuery from \"react-utils/usePersistedQuery\";\n\nimport neetoAppsApi from \"./apis/neeto_apps\";\n\nimport { NEETO_APPS_LIST_STALE_TIME } from \"../constants\";\nimport { QUERY_KEYS } from \"../constants/query\";\n\nconst useFetchNeetoApps = options => {\n const scopedQueryKey = [\n `${QUERY_KEYS.NEETO_APPS_LIST}-${globalProps.user?.id}`,\n ];\n\n const { data, modifiedAt } = usePersistedQuery.getCache(scopedQueryKey) || {};\n const expired = modifiedAt <= Date.now() - NEETO_APPS_LIST_STALE_TIME;\n\n return usePersistedQuery(scopedQueryKey, neetoAppsApi.fetch, {\n staleTime: NEETO_APPS_LIST_STALE_TIME,\n enabled: expired || isNotPresent(data),\n ...options,\n });\n};\n\nexport default useFetchNeetoApps;\n"],"mappings":";;;AAAA,SAASA,YAAY;AACrB,OAAOC,iBAAiB;AAExB,OAAOC,YAAY;AAEnB,SAASC,0BAA0B;AACnC,SAASC,UAAU;AAEnB,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAGC,OAAO,EAAI;EAAA,IAAAC,iBAAA;EACnC,IAAMC,cAAc,GAAG,IAAAC,MAAA,CAClBL,UAAU,CAACM,eAAe,OAAAD,MAAA,EAAAF,iBAAA,GAAII,WAAW,CAACC,IAAI,cAAAL,iBAAA,uBAAhBA,iBAAA,CAAkBM,EAAE,EACtD;EAED,IAAAC,IAAA,GAA6Bb,iBAAiB,CAACc,QAAQ,CAACP,cAAc,CAAC,IAAI,CAAC,CAAC;IAArEQ,IAAI,GAAAF,IAAA,CAAJE,IAAI;IAAEC,UAAU,GAAAH,IAAA,CAAVG,UAAU;EACxB,IAAMC,OAAO,GAAGD,UAAU,IAAIE,IAAI,CAACC,GAAG,EAAE,GAAGjB,0BAA0B;EAErE,OAAOF,iBAAiB,CAACO,cAAc,EAAEN,YAAY,CAACmB,KAAK,EAAAC,aAAA;IACzDC,SAAS,EAAEpB,0BAA0B;IACrCqB,OAAO,EAAEN,OAAO,IAAIlB,YAAY,CAACgB,IAAI;EAAC,GACnCV,OAAO,EACV;AACJ,CAAC;AAED,eAAeD,iBAAiB"}