@bigbinary/neeto-commons-frontend 4.1.3 → 4.2.0
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.
- package/cjs/initializers/axiosInitializer/index.js +8 -2
- package/cjs/initializers/axiosInitializer/index.js.map +1 -1
- package/cjs/react-utils/index.js +19 -0
- package/cjs/react-utils/index.js.map +1 -1
- package/cjs/react-utils/useRestoreScrollPosition/index.js +28 -0
- package/cjs/react-utils/useRestoreScrollPosition/index.js.map +1 -0
- package/cjs/react-utils/useRestoreScrollPosition/useRestoreScrollPosition.js +72 -0
- package/cjs/react-utils/useRestoreScrollPosition/useRestoreScrollPosition.js.map +1 -0
- package/initializers/axiosInitializer/index.js +8 -2
- package/initializers/axiosInitializer/index.js.map +1 -1
- package/package.json +1 -1
- package/react-utils/index.js +2 -0
- package/react-utils/index.js.map +1 -1
- package/react-utils/useRestoreScrollPosition/index.js +3 -0
- package/react-utils/useRestoreScrollPosition/index.js.map +1 -0
- package/react-utils/useRestoreScrollPosition/useRestoreScrollPosition.js +62 -0
- package/react-utils/useRestoreScrollPosition/useRestoreScrollPosition.js.map +1 -0
- package/react-utils.d.ts +76 -0
|
@@ -144,7 +144,9 @@ var showErrorToastr = function showErrorToastr(error) {
|
|
|
144
144
|
var _error$config3, _error$response3;
|
|
145
145
|
var _ref3 = (_error$config3 = error.config) !== null && _error$config3 !== void 0 ? _error$config3 : {},
|
|
146
146
|
_ref3$showToastr = _ref3.showToastr,
|
|
147
|
-
showToastr = _ref3$showToastr === void 0 ? true : _ref3$showToastr
|
|
147
|
+
showToastr = _ref3$showToastr === void 0 ? true : _ref3$showToastr,
|
|
148
|
+
_ref3$show422ErrorToa = _ref3.show422ErrorToastr,
|
|
149
|
+
show422ErrorToastr = _ref3$show422ErrorToa === void 0 ? true : _ref3$show422ErrorToa;
|
|
148
150
|
if (!showToastr) return error;
|
|
149
151
|
var _ref4 = (_error$response3 = error.response) !== null && _error$response3 !== void 0 ? _error$response3 : {},
|
|
150
152
|
status = _ref4.status;
|
|
@@ -152,11 +154,15 @@ var showErrorToastr = function showErrorToastr(error) {
|
|
|
152
154
|
if (error.code === "ECONNABORTED") {
|
|
153
155
|
return error;
|
|
154
156
|
}
|
|
155
|
-
|
|
157
|
+
var skippedStatusCodes = [403, 404, 520, 422];
|
|
158
|
+
if (!skippedStatusCodes.includes(status) && !_axios["default"].isCancel(error)) {
|
|
156
159
|
// we already display a page in case of 403 & 404 and we don't want to show a toastr for cancelled requests.
|
|
157
160
|
// We handle cloudflare error differently for production and other environments.
|
|
158
161
|
_Toastr["default"].error(error);
|
|
159
162
|
}
|
|
163
|
+
if (status === 422 && show422ErrorToastr) {
|
|
164
|
+
_Toastr["default"].error(error);
|
|
165
|
+
}
|
|
160
166
|
if (status === 520) {
|
|
161
167
|
if (globalProps.railsEnv === "production") {
|
|
162
168
|
_Toastr["default"].error(_i18next["default"].t("generic.error"));
|
|
@@ -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","_ref4","message","code","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 } = 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 if (![403, 404, 520].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 === 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","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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"}
|
package/cjs/react-utils/index.js
CHANGED
|
@@ -27,6 +27,7 @@ var _exportNames = {
|
|
|
27
27
|
useTimer: true,
|
|
28
28
|
useUpdateEffect: true,
|
|
29
29
|
useBreakpoints: true,
|
|
30
|
+
useRestoreScrollPosition: true,
|
|
30
31
|
withImmutableActions: true,
|
|
31
32
|
withT: true,
|
|
32
33
|
withTitle: true
|
|
@@ -139,6 +140,12 @@ Object.defineProperty(exports, "useRegisterNavigationCheckpoint", {
|
|
|
139
140
|
return _useRegisterNavigationCheckpoint["default"];
|
|
140
141
|
}
|
|
141
142
|
});
|
|
143
|
+
Object.defineProperty(exports, "useRestoreScrollPosition", {
|
|
144
|
+
enumerable: true,
|
|
145
|
+
get: function get() {
|
|
146
|
+
return _useRestoreScrollPosition["default"];
|
|
147
|
+
}
|
|
148
|
+
});
|
|
142
149
|
Object.defineProperty(exports, "useStateWithDependency", {
|
|
143
150
|
enumerable: true,
|
|
144
151
|
get: function get() {
|
|
@@ -218,6 +225,18 @@ var _useStateWithDependency = _interopRequireDefault(require("./useStateWithDepe
|
|
|
218
225
|
var _useTimer = _interopRequireDefault(require("./useTimer"));
|
|
219
226
|
var _useUpdateEffect = _interopRequireDefault(require("./useUpdateEffect"));
|
|
220
227
|
var _useBreakpoints = _interopRequireDefault(require("./useBreakpoints"));
|
|
228
|
+
var _useRestoreScrollPosition = _interopRequireWildcard(require("./useRestoreScrollPosition"));
|
|
229
|
+
Object.keys(_useRestoreScrollPosition).forEach(function (key) {
|
|
230
|
+
if (key === "default" || key === "__esModule") return;
|
|
231
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
232
|
+
if (key in exports && exports[key] === _useRestoreScrollPosition[key]) return;
|
|
233
|
+
Object.defineProperty(exports, key, {
|
|
234
|
+
enumerable: true,
|
|
235
|
+
get: function get() {
|
|
236
|
+
return _useRestoreScrollPosition[key];
|
|
237
|
+
}
|
|
238
|
+
});
|
|
239
|
+
});
|
|
221
240
|
var _BrowserPushNotifications = require("./BrowserPushNotifications");
|
|
222
241
|
Object.keys(_BrowserPushNotifications).forEach(function (key) {
|
|
223
242
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_HoneybadgerErrorBoundary","_interopRequireDefault","require","_PrivateRoute","_PageTitle","_useDebounce","_useDisplayErrorPage","_interopRequireWildcard","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_useFetchNeetoApps","_useFieldSubmit","_useFuncDebounce","_useIsElementVisibleInDom","_useKeyboardShortcutsPaneState","_useLocalStorage","_useMutationWithInvalidation","_useOnClickOutside","_usePersistedQuery","_usePrevious","_useQueryParams","_useRegisterNavigationCheckpoint","_useStateWithDependency","_useTimer","_useUpdateEffect","_useBreakpoints","_BrowserPushNotifications","_metaClick","_withImmutableActions","_withT","_withTitle","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","set"],"sources":["../../../src/react-utils/index.js"],"sourcesContent":["// components\nexport { default as HoneybadgerErrorBoundary } from \"./HoneybadgerErrorBoundary\";\nexport { default as PrivateRoute } from \"./PrivateRoute\";\nexport { default as PageTitle } from \"./PageTitle\";\n\n// hooks\nexport { default as useDebounce } from \"./useDebounce\";\nexport * from \"./useDisplayErrorPage\";\nexport { default as useDisplayErrorPage } from \"./useDisplayErrorPage\";\nexport { default as useFetchNeetoApps } from \"./useFetchNeetoApps\";\nexport { default as useFieldSubmit } from \"./useFieldSubmit\";\nexport { default as useFuncDebounce } from \"./useFuncDebounce\";\nexport { default as useIsElementVisibleInDom } from \"./useIsElementVisibleInDom\";\nexport { default as useKeyboardShortcutsPaneState } from \"./useKeyboardShortcutsPaneState\";\nexport { default as useLocalStorage } from \"./useLocalStorage\";\nexport { default as useMutationWithInvalidation } from \"./useMutationWithInvalidation\";\nexport { default as useOnClickOutside } from \"./useOnClickOutside\";\nexport { default as usePersistedQuery } from \"./usePersistedQuery\";\nexport { default as usePrevious } from \"./usePrevious\";\nexport { default as useQueryParams } from \"./useQueryParams\";\nexport * from \"./useRegisterNavigationCheckpoint\";\nexport { default as useRegisterNavigationCheckpoint } from \"./useRegisterNavigationCheckpoint\";\nexport { default as useStateWithDependency } from \"./useStateWithDependency\";\nexport { default as useTimer } from \"./useTimer\";\nexport { default as useUpdateEffect } from \"./useUpdateEffect\";\nexport { default as useBreakpoints } from \"./useBreakpoints\";\n\n// utils\nexport * from \"./BrowserPushNotifications\";\nexport * from \"./metaClick\";\nexport { default as withImmutableActions } from \"./withImmutableActions\";\nexport { default as withT } from \"./withT\";\nexport { default as withTitle } from \"./withTitle\";\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","names":["_HoneybadgerErrorBoundary","_interopRequireDefault","require","_PrivateRoute","_PageTitle","_useDebounce","_useDisplayErrorPage","_interopRequireWildcard","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_useFetchNeetoApps","_useFieldSubmit","_useFuncDebounce","_useIsElementVisibleInDom","_useKeyboardShortcutsPaneState","_useLocalStorage","_useMutationWithInvalidation","_useOnClickOutside","_usePersistedQuery","_usePrevious","_useQueryParams","_useRegisterNavigationCheckpoint","_useStateWithDependency","_useTimer","_useUpdateEffect","_useBreakpoints","_useRestoreScrollPosition","_BrowserPushNotifications","_metaClick","_withImmutableActions","_withT","_withTitle","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","set"],"sources":["../../../src/react-utils/index.js"],"sourcesContent":["// components\nexport { default as HoneybadgerErrorBoundary } from \"./HoneybadgerErrorBoundary\";\nexport { default as PrivateRoute } from \"./PrivateRoute\";\nexport { default as PageTitle } from \"./PageTitle\";\n\n// hooks\nexport { default as useDebounce } from \"./useDebounce\";\nexport * from \"./useDisplayErrorPage\";\nexport { default as useDisplayErrorPage } from \"./useDisplayErrorPage\";\nexport { default as useFetchNeetoApps } from \"./useFetchNeetoApps\";\nexport { default as useFieldSubmit } from \"./useFieldSubmit\";\nexport { default as useFuncDebounce } from \"./useFuncDebounce\";\nexport { default as useIsElementVisibleInDom } from \"./useIsElementVisibleInDom\";\nexport { default as useKeyboardShortcutsPaneState } from \"./useKeyboardShortcutsPaneState\";\nexport { default as useLocalStorage } from \"./useLocalStorage\";\nexport { default as useMutationWithInvalidation } from \"./useMutationWithInvalidation\";\nexport { default as useOnClickOutside } from \"./useOnClickOutside\";\nexport { default as usePersistedQuery } from \"./usePersistedQuery\";\nexport { default as usePrevious } from \"./usePrevious\";\nexport { default as useQueryParams } from \"./useQueryParams\";\nexport * from \"./useRegisterNavigationCheckpoint\";\nexport { default as useRegisterNavigationCheckpoint } from \"./useRegisterNavigationCheckpoint\";\nexport { default as useStateWithDependency } from \"./useStateWithDependency\";\nexport { default as useTimer } from \"./useTimer\";\nexport { default as useUpdateEffect } from \"./useUpdateEffect\";\nexport { default as useBreakpoints } from \"./useBreakpoints\";\nexport * from \"./useRestoreScrollPosition\";\nexport { default as useRestoreScrollPosition } from \"./useRestoreScrollPosition\";\n\n// utils\nexport * from \"./BrowserPushNotifications\";\nexport * from \"./metaClick\";\nexport { default as withImmutableActions } from \"./withImmutableActions\";\nexport { default as withT } from \"./withT\";\nexport { default as withTitle } from \"./withTitle\";\n"],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
var _exportNames = {};
|
|
8
|
+
Object.defineProperty(exports, "default", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function get() {
|
|
11
|
+
return _useRestoreScrollPosition["default"];
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
var _useRestoreScrollPosition = _interopRequireWildcard(require("./useRestoreScrollPosition"));
|
|
15
|
+
Object.keys(_useRestoreScrollPosition).forEach(function (key) {
|
|
16
|
+
if (key === "default" || key === "__esModule") return;
|
|
17
|
+
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
|
18
|
+
if (key in exports && exports[key] === _useRestoreScrollPosition[key]) return;
|
|
19
|
+
Object.defineProperty(exports, key, {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function get() {
|
|
22
|
+
return _useRestoreScrollPosition[key];
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
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); }
|
|
27
|
+
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; }
|
|
28
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["_useRestoreScrollPosition","_interopRequireWildcard","require","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","cache","has","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","set"],"sources":["../../../../src/react-utils/useRestoreScrollPosition/index.js"],"sourcesContent":["export { default } from \"./useRestoreScrollPosition\";\nexport * from \"./useRestoreScrollPosition\";\n"],"mappings":";;;;;;;;;;;;;AAAA,IAAAA,yBAAA,GAAAC,uBAAA,CAAAC,OAAA;AACAC,MAAA,CAAAC,IAAA,CAAAJ,yBAAA,EAAAK,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAN,yBAAA,CAAAM,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAd,yBAAA,CAAAM,GAAA;IAAA;EAAA;AAAA;AAA2C,SAAAS,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAf,wBAAAmB,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,aAAAE,OAAA,CAAAF,GAAA,yBAAAA,GAAA,uCAAAA,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAT,GAAA,CAAAM,GAAA,SAAAK,MAAA,WAAAC,qBAAA,GAAAvB,MAAA,CAAAS,cAAA,IAAAT,MAAA,CAAAwB,wBAAA,WAAArB,GAAA,IAAAc,GAAA,QAAAd,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAW,GAAA,EAAAd,GAAA,SAAAsB,IAAA,GAAAF,qBAAA,GAAAvB,MAAA,CAAAwB,wBAAA,CAAAP,GAAA,EAAAd,GAAA,cAAAsB,IAAA,KAAAA,IAAA,CAAAd,GAAA,IAAAc,IAAA,CAAAC,GAAA,KAAA1B,MAAA,CAAAS,cAAA,CAAAa,MAAA,EAAAnB,GAAA,EAAAsB,IAAA,YAAAH,MAAA,CAAAnB,GAAA,IAAAc,GAAA,CAAAd,GAAA,SAAAmB,MAAA,cAAAL,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAM,GAAA,CAAAT,GAAA,EAAAK,MAAA,YAAAA,MAAA"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useSetScrollPosition = exports.useRemoveScrollPosition = exports.useGetScrollPosition = exports["default"] = void 0;
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
var _ramda = require("ramda");
|
|
10
|
+
var _useFuncDebounce = _interopRequireDefault(require("../useFuncDebounce"));
|
|
11
|
+
var _withImmutableActions = _interopRequireDefault(require("../withImmutableActions"));
|
|
12
|
+
var _zustand = require("zustand");
|
|
13
|
+
/** @type {import("neetocommons/react-utils").ZustandStoreHook} */
|
|
14
|
+
var useScrollStore = (0, _zustand.create)((0, _withImmutableActions["default"])(function (set, get) {
|
|
15
|
+
return {
|
|
16
|
+
scrollPositions: {},
|
|
17
|
+
setScrollPosition: function setScrollPosition(key, value) {
|
|
18
|
+
return set(function (state) {
|
|
19
|
+
return {
|
|
20
|
+
scrollPositions: (0, _ramda.assoc)(key, value, state.scrollPositions)
|
|
21
|
+
};
|
|
22
|
+
});
|
|
23
|
+
},
|
|
24
|
+
removeScrollPosition: function removeScrollPosition(key) {
|
|
25
|
+
return set(function (state) {
|
|
26
|
+
return {
|
|
27
|
+
scrollPositions: (0, _ramda.dissoc)(key, state.scrollPositions)
|
|
28
|
+
};
|
|
29
|
+
});
|
|
30
|
+
},
|
|
31
|
+
getScrollPosition: function getScrollPosition(key) {
|
|
32
|
+
return get().scrollPositions[key];
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
}));
|
|
36
|
+
var useRestoreScrollPosition = function useRestoreScrollPosition(key, ref) {
|
|
37
|
+
var setScrollPosition = useScrollStore((0, _ramda.prop)("setScrollPosition"));
|
|
38
|
+
var getScrollPosition = useScrollStore((0, _ramda.prop)("getScrollPosition"));
|
|
39
|
+
var handleScroll = (0, _useFuncDebounce["default"])(function () {
|
|
40
|
+
if (!ref.current) return;
|
|
41
|
+
setScrollPosition(key, ref.current.scrollTop);
|
|
42
|
+
}, 500);
|
|
43
|
+
(0, _react.useEffect)(function () {
|
|
44
|
+
if (ref.current) {
|
|
45
|
+
var savedScrollPosition = getScrollPosition(key);
|
|
46
|
+
if (savedScrollPosition !== undefined) {
|
|
47
|
+
ref.current.scrollTop = savedScrollPosition;
|
|
48
|
+
}
|
|
49
|
+
ref.current.addEventListener("scroll", handleScroll);
|
|
50
|
+
}
|
|
51
|
+
return function () {
|
|
52
|
+
if (ref.current) {
|
|
53
|
+
ref.current.removeEventListener("scroll", handleScroll);
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
}, [key]);
|
|
57
|
+
};
|
|
58
|
+
var useSetScrollPosition = function useSetScrollPosition() {
|
|
59
|
+
return useScrollStore((0, _ramda.prop)("setScrollPosition"));
|
|
60
|
+
};
|
|
61
|
+
exports.useSetScrollPosition = useSetScrollPosition;
|
|
62
|
+
var useGetScrollPosition = function useGetScrollPosition() {
|
|
63
|
+
return useScrollStore((0, _ramda.prop)("getScrollPosition"));
|
|
64
|
+
};
|
|
65
|
+
exports.useGetScrollPosition = useGetScrollPosition;
|
|
66
|
+
var useRemoveScrollPosition = function useRemoveScrollPosition() {
|
|
67
|
+
return useScrollStore((0, _ramda.prop)("removeScrollPosition"));
|
|
68
|
+
};
|
|
69
|
+
exports.useRemoveScrollPosition = useRemoveScrollPosition;
|
|
70
|
+
var _default = useRestoreScrollPosition;
|
|
71
|
+
exports["default"] = _default;
|
|
72
|
+
//# sourceMappingURL=useRestoreScrollPosition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRestoreScrollPosition.js","names":["_react","require","_ramda","_useFuncDebounce","_interopRequireDefault","_withImmutableActions","_zustand","useScrollStore","create","withImmutableActions","set","get","scrollPositions","setScrollPosition","key","value","state","assoc","removeScrollPosition","dissoc","getScrollPosition","useRestoreScrollPosition","ref","prop","handleScroll","useFuncDebounce","current","scrollTop","useEffect","savedScrollPosition","undefined","addEventListener","removeEventListener","useSetScrollPosition","exports","useGetScrollPosition","useRemoveScrollPosition","_default"],"sources":["../../../../src/react-utils/useRestoreScrollPosition/useRestoreScrollPosition.js"],"sourcesContent":["import { useEffect } from \"react\";\n\nimport { assoc, dissoc, prop } from \"ramda\";\nimport useFuncDebounce from \"react-utils/useFuncDebounce\";\nimport withImmutableActions from \"react-utils/withImmutableActions\";\nimport { create } from \"zustand\";\n\n/** @type {import(\"neetocommons/react-utils\").ZustandStoreHook} */\nconst useScrollStore = create(\n withImmutableActions((set, get) => ({\n scrollPositions: {},\n setScrollPosition: (key, value) =>\n set(state => ({\n scrollPositions: assoc(key, value, state.scrollPositions),\n })),\n removeScrollPosition: key =>\n set(state => ({ scrollPositions: dissoc(key, state.scrollPositions) })),\n getScrollPosition: key => get().scrollPositions[key],\n }))\n);\n\nconst useRestoreScrollPosition = (key, ref) => {\n const setScrollPosition = useScrollStore(prop(\"setScrollPosition\"));\n const getScrollPosition = useScrollStore(prop(\"getScrollPosition\"));\n\n const handleScroll = useFuncDebounce(() => {\n if (!ref.current) return;\n setScrollPosition(key, ref.current.scrollTop);\n }, 500);\n\n useEffect(() => {\n if (ref.current) {\n const savedScrollPosition = getScrollPosition(key);\n if (savedScrollPosition !== undefined) {\n ref.current.scrollTop = savedScrollPosition;\n }\n ref.current.addEventListener(\"scroll\", handleScroll);\n }\n\n return () => {\n if (ref.current) {\n ref.current.removeEventListener(\"scroll\", handleScroll);\n }\n };\n }, [key]);\n};\n\nexport const useSetScrollPosition = () =>\n useScrollStore(prop(\"setScrollPosition\"));\n\nexport const useGetScrollPosition = () =>\n useScrollStore(prop(\"getScrollPosition\"));\n\nexport const useRemoveScrollPosition = () =>\n useScrollStore(prop(\"removeScrollPosition\"));\n\nexport default useRestoreScrollPosition;\n"],"mappings":"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"}
|
|
@@ -137,7 +137,9 @@ var showErrorToastr = function showErrorToastr(error) {
|
|
|
137
137
|
var _error$config3, _error$response3;
|
|
138
138
|
var _ref3 = (_error$config3 = error.config) !== null && _error$config3 !== void 0 ? _error$config3 : {},
|
|
139
139
|
_ref3$showToastr = _ref3.showToastr,
|
|
140
|
-
showToastr = _ref3$showToastr === void 0 ? true : _ref3$showToastr
|
|
140
|
+
showToastr = _ref3$showToastr === void 0 ? true : _ref3$showToastr,
|
|
141
|
+
_ref3$show422ErrorToa = _ref3.show422ErrorToastr,
|
|
142
|
+
show422ErrorToastr = _ref3$show422ErrorToa === void 0 ? true : _ref3$show422ErrorToa;
|
|
141
143
|
if (!showToastr) return error;
|
|
142
144
|
var _ref4 = (_error$response3 = error.response) !== null && _error$response3 !== void 0 ? _error$response3 : {},
|
|
143
145
|
status = _ref4.status;
|
|
@@ -145,11 +147,15 @@ var showErrorToastr = function showErrorToastr(error) {
|
|
|
145
147
|
if (error.code === "ECONNABORTED") {
|
|
146
148
|
return error;
|
|
147
149
|
}
|
|
148
|
-
|
|
150
|
+
var skippedStatusCodes = [403, 404, 520, 422];
|
|
151
|
+
if (!skippedStatusCodes.includes(status) && !axios.isCancel(error)) {
|
|
149
152
|
// we already display a page in case of 403 & 404 and we don't want to show a toastr for cancelled requests.
|
|
150
153
|
// We handle cloudflare error differently for production and other environments.
|
|
151
154
|
Toastr.error(error);
|
|
152
155
|
}
|
|
156
|
+
if (status === 422 && show422ErrorToastr) {
|
|
157
|
+
Toastr.error(error);
|
|
158
|
+
}
|
|
153
159
|
if (status === 520) {
|
|
154
160
|
if (globalProps.railsEnv === "production") {
|
|
155
161
|
Toastr.error(i18next.t("generic.error"));
|
|
@@ -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","_ref4","message","code","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 } = 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 if (![403, 404, 520].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 === 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","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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bigbinary/neeto-commons-frontend",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.2.0",
|
|
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>",
|
package/react-utils/index.js
CHANGED
|
@@ -24,6 +24,8 @@ export { default as useStateWithDependency } from "./useStateWithDependency";
|
|
|
24
24
|
export { default as useTimer } from "./useTimer";
|
|
25
25
|
export { default as useUpdateEffect } from "./useUpdateEffect";
|
|
26
26
|
export { default as useBreakpoints } from "./useBreakpoints";
|
|
27
|
+
export * from "./useRestoreScrollPosition";
|
|
28
|
+
export { default as useRestoreScrollPosition } from "./useRestoreScrollPosition";
|
|
27
29
|
|
|
28
30
|
// utils
|
|
29
31
|
export * from "./BrowserPushNotifications";
|
package/react-utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["default","HoneybadgerErrorBoundary","PrivateRoute","PageTitle","useDebounce","useDisplayErrorPage","useFetchNeetoApps","useFieldSubmit","useFuncDebounce","useIsElementVisibleInDom","useKeyboardShortcutsPaneState","useLocalStorage","useMutationWithInvalidation","useOnClickOutside","usePersistedQuery","usePrevious","useQueryParams","useRegisterNavigationCheckpoint","useStateWithDependency","useTimer","useUpdateEffect","useBreakpoints","withImmutableActions","withT","withTitle"],"sources":["../../src/react-utils/index.js"],"sourcesContent":["// components\nexport { default as HoneybadgerErrorBoundary } from \"./HoneybadgerErrorBoundary\";\nexport { default as PrivateRoute } from \"./PrivateRoute\";\nexport { default as PageTitle } from \"./PageTitle\";\n\n// hooks\nexport { default as useDebounce } from \"./useDebounce\";\nexport * from \"./useDisplayErrorPage\";\nexport { default as useDisplayErrorPage } from \"./useDisplayErrorPage\";\nexport { default as useFetchNeetoApps } from \"./useFetchNeetoApps\";\nexport { default as useFieldSubmit } from \"./useFieldSubmit\";\nexport { default as useFuncDebounce } from \"./useFuncDebounce\";\nexport { default as useIsElementVisibleInDom } from \"./useIsElementVisibleInDom\";\nexport { default as useKeyboardShortcutsPaneState } from \"./useKeyboardShortcutsPaneState\";\nexport { default as useLocalStorage } from \"./useLocalStorage\";\nexport { default as useMutationWithInvalidation } from \"./useMutationWithInvalidation\";\nexport { default as useOnClickOutside } from \"./useOnClickOutside\";\nexport { default as usePersistedQuery } from \"./usePersistedQuery\";\nexport { default as usePrevious } from \"./usePrevious\";\nexport { default as useQueryParams } from \"./useQueryParams\";\nexport * from \"./useRegisterNavigationCheckpoint\";\nexport { default as useRegisterNavigationCheckpoint } from \"./useRegisterNavigationCheckpoint\";\nexport { default as useStateWithDependency } from \"./useStateWithDependency\";\nexport { default as useTimer } from \"./useTimer\";\nexport { default as useUpdateEffect } from \"./useUpdateEffect\";\nexport { default as useBreakpoints } from \"./useBreakpoints\";\n\n// utils\nexport * from \"./BrowserPushNotifications\";\nexport * from \"./metaClick\";\nexport { default as withImmutableActions } from \"./withImmutableActions\";\nexport { default as withT } from \"./withT\";\nexport { default as withTitle } from \"./withTitle\";\n"],"mappings":"AAAA;AACA,SAASA,OAAO,IAAIC,wBAAwB;AAC5C,SAASD,OAAO,IAAIE,YAAY;AAChC,SAASF,OAAO,IAAIG,SAAS;;AAE7B;AACA,SAASH,OAAO,IAAII,WAAW;AAC/B;AACA,SAASJ,OAAO,IAAIK,mBAAmB;AACvC,SAASL,OAAO,IAAIM,iBAAiB;AACrC,SAASN,OAAO,IAAIO,cAAc;AAClC,SAASP,OAAO,IAAIQ,eAAe;AACnC,SAASR,OAAO,IAAIS,wBAAwB;AAC5C,SAAST,OAAO,IAAIU,6BAA6B;AACjD,SAASV,OAAO,IAAIW,eAAe;AACnC,SAASX,OAAO,IAAIY,2BAA2B;AAC/C,SAASZ,OAAO,IAAIa,iBAAiB;AACrC,SAASb,OAAO,IAAIc,iBAAiB;AACrC,SAASd,OAAO,IAAIe,WAAW;AAC/B,SAASf,OAAO,IAAIgB,cAAc;AAClC;AACA,SAAShB,OAAO,IAAIiB,+BAA+B;AACnD,SAASjB,OAAO,IAAIkB,sBAAsB;AAC1C,SAASlB,OAAO,IAAImB,QAAQ;AAC5B,SAASnB,OAAO,IAAIoB,eAAe;AACnC,SAASpB,OAAO,IAAIqB,cAAc;;
|
|
1
|
+
{"version":3,"file":"index.js","names":["default","HoneybadgerErrorBoundary","PrivateRoute","PageTitle","useDebounce","useDisplayErrorPage","useFetchNeetoApps","useFieldSubmit","useFuncDebounce","useIsElementVisibleInDom","useKeyboardShortcutsPaneState","useLocalStorage","useMutationWithInvalidation","useOnClickOutside","usePersistedQuery","usePrevious","useQueryParams","useRegisterNavigationCheckpoint","useStateWithDependency","useTimer","useUpdateEffect","useBreakpoints","useRestoreScrollPosition","withImmutableActions","withT","withTitle"],"sources":["../../src/react-utils/index.js"],"sourcesContent":["// components\nexport { default as HoneybadgerErrorBoundary } from \"./HoneybadgerErrorBoundary\";\nexport { default as PrivateRoute } from \"./PrivateRoute\";\nexport { default as PageTitle } from \"./PageTitle\";\n\n// hooks\nexport { default as useDebounce } from \"./useDebounce\";\nexport * from \"./useDisplayErrorPage\";\nexport { default as useDisplayErrorPage } from \"./useDisplayErrorPage\";\nexport { default as useFetchNeetoApps } from \"./useFetchNeetoApps\";\nexport { default as useFieldSubmit } from \"./useFieldSubmit\";\nexport { default as useFuncDebounce } from \"./useFuncDebounce\";\nexport { default as useIsElementVisibleInDom } from \"./useIsElementVisibleInDom\";\nexport { default as useKeyboardShortcutsPaneState } from \"./useKeyboardShortcutsPaneState\";\nexport { default as useLocalStorage } from \"./useLocalStorage\";\nexport { default as useMutationWithInvalidation } from \"./useMutationWithInvalidation\";\nexport { default as useOnClickOutside } from \"./useOnClickOutside\";\nexport { default as usePersistedQuery } from \"./usePersistedQuery\";\nexport { default as usePrevious } from \"./usePrevious\";\nexport { default as useQueryParams } from \"./useQueryParams\";\nexport * from \"./useRegisterNavigationCheckpoint\";\nexport { default as useRegisterNavigationCheckpoint } from \"./useRegisterNavigationCheckpoint\";\nexport { default as useStateWithDependency } from \"./useStateWithDependency\";\nexport { default as useTimer } from \"./useTimer\";\nexport { default as useUpdateEffect } from \"./useUpdateEffect\";\nexport { default as useBreakpoints } from \"./useBreakpoints\";\nexport * from \"./useRestoreScrollPosition\";\nexport { default as useRestoreScrollPosition } from \"./useRestoreScrollPosition\";\n\n// utils\nexport * from \"./BrowserPushNotifications\";\nexport * from \"./metaClick\";\nexport { default as withImmutableActions } from \"./withImmutableActions\";\nexport { default as withT } from \"./withT\";\nexport { default as withTitle } from \"./withTitle\";\n"],"mappings":"AAAA;AACA,SAASA,OAAO,IAAIC,wBAAwB;AAC5C,SAASD,OAAO,IAAIE,YAAY;AAChC,SAASF,OAAO,IAAIG,SAAS;;AAE7B;AACA,SAASH,OAAO,IAAII,WAAW;AAC/B;AACA,SAASJ,OAAO,IAAIK,mBAAmB;AACvC,SAASL,OAAO,IAAIM,iBAAiB;AACrC,SAASN,OAAO,IAAIO,cAAc;AAClC,SAASP,OAAO,IAAIQ,eAAe;AACnC,SAASR,OAAO,IAAIS,wBAAwB;AAC5C,SAAST,OAAO,IAAIU,6BAA6B;AACjD,SAASV,OAAO,IAAIW,eAAe;AACnC,SAASX,OAAO,IAAIY,2BAA2B;AAC/C,SAASZ,OAAO,IAAIa,iBAAiB;AACrC,SAASb,OAAO,IAAIc,iBAAiB;AACrC,SAASd,OAAO,IAAIe,WAAW;AAC/B,SAASf,OAAO,IAAIgB,cAAc;AAClC;AACA,SAAShB,OAAO,IAAIiB,+BAA+B;AACnD,SAASjB,OAAO,IAAIkB,sBAAsB;AAC1C,SAASlB,OAAO,IAAImB,QAAQ;AAC5B,SAASnB,OAAO,IAAIoB,eAAe;AACnC,SAASpB,OAAO,IAAIqB,cAAc;AAClC;AACA,SAASrB,OAAO,IAAIsB,wBAAwB;;AAE5C;AACA;AACA;AACA,SAAStB,OAAO,IAAIuB,oBAAoB;AACxC,SAASvB,OAAO,IAAIwB,KAAK;AACzB,SAASxB,OAAO,IAAIyB,SAAS"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":["default"],"sources":["../../../src/react-utils/useRestoreScrollPosition/index.js"],"sourcesContent":["export { default } from \"./useRestoreScrollPosition\";\nexport * from \"./useRestoreScrollPosition\";\n"],"mappings":"AAAA,SAASA,OAAO;AAChB"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { useEffect } from "react";
|
|
2
|
+
import { assoc, dissoc, prop } from "ramda";
|
|
3
|
+
import useFuncDebounce from "../useFuncDebounce";
|
|
4
|
+
import withImmutableActions from "../withImmutableActions";
|
|
5
|
+
import { create } from "zustand";
|
|
6
|
+
|
|
7
|
+
/** @type {import("neetocommons/react-utils").ZustandStoreHook} */
|
|
8
|
+
var useScrollStore = create(withImmutableActions(function (set, get) {
|
|
9
|
+
return {
|
|
10
|
+
scrollPositions: {},
|
|
11
|
+
setScrollPosition: function setScrollPosition(key, value) {
|
|
12
|
+
return set(function (state) {
|
|
13
|
+
return {
|
|
14
|
+
scrollPositions: assoc(key, value, state.scrollPositions)
|
|
15
|
+
};
|
|
16
|
+
});
|
|
17
|
+
},
|
|
18
|
+
removeScrollPosition: function removeScrollPosition(key) {
|
|
19
|
+
return set(function (state) {
|
|
20
|
+
return {
|
|
21
|
+
scrollPositions: dissoc(key, state.scrollPositions)
|
|
22
|
+
};
|
|
23
|
+
});
|
|
24
|
+
},
|
|
25
|
+
getScrollPosition: function getScrollPosition(key) {
|
|
26
|
+
return get().scrollPositions[key];
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
}));
|
|
30
|
+
var useRestoreScrollPosition = function useRestoreScrollPosition(key, ref) {
|
|
31
|
+
var setScrollPosition = useScrollStore(prop("setScrollPosition"));
|
|
32
|
+
var getScrollPosition = useScrollStore(prop("getScrollPosition"));
|
|
33
|
+
var handleScroll = useFuncDebounce(function () {
|
|
34
|
+
if (!ref.current) return;
|
|
35
|
+
setScrollPosition(key, ref.current.scrollTop);
|
|
36
|
+
}, 500);
|
|
37
|
+
useEffect(function () {
|
|
38
|
+
if (ref.current) {
|
|
39
|
+
var savedScrollPosition = getScrollPosition(key);
|
|
40
|
+
if (savedScrollPosition !== undefined) {
|
|
41
|
+
ref.current.scrollTop = savedScrollPosition;
|
|
42
|
+
}
|
|
43
|
+
ref.current.addEventListener("scroll", handleScroll);
|
|
44
|
+
}
|
|
45
|
+
return function () {
|
|
46
|
+
if (ref.current) {
|
|
47
|
+
ref.current.removeEventListener("scroll", handleScroll);
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
}, [key]);
|
|
51
|
+
};
|
|
52
|
+
export var useSetScrollPosition = function useSetScrollPosition() {
|
|
53
|
+
return useScrollStore(prop("setScrollPosition"));
|
|
54
|
+
};
|
|
55
|
+
export var useGetScrollPosition = function useGetScrollPosition() {
|
|
56
|
+
return useScrollStore(prop("getScrollPosition"));
|
|
57
|
+
};
|
|
58
|
+
export var useRemoveScrollPosition = function useRemoveScrollPosition() {
|
|
59
|
+
return useScrollStore(prop("removeScrollPosition"));
|
|
60
|
+
};
|
|
61
|
+
export default useRestoreScrollPosition;
|
|
62
|
+
//# sourceMappingURL=useRestoreScrollPosition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRestoreScrollPosition.js","names":["useEffect","assoc","dissoc","prop","useFuncDebounce","withImmutableActions","create","useScrollStore","set","get","scrollPositions","setScrollPosition","key","value","state","removeScrollPosition","getScrollPosition","useRestoreScrollPosition","ref","handleScroll","current","scrollTop","savedScrollPosition","undefined","addEventListener","removeEventListener","useSetScrollPosition","useGetScrollPosition","useRemoveScrollPosition"],"sources":["../../../src/react-utils/useRestoreScrollPosition/useRestoreScrollPosition.js"],"sourcesContent":["import { useEffect } from \"react\";\n\nimport { assoc, dissoc, prop } from \"ramda\";\nimport useFuncDebounce from \"react-utils/useFuncDebounce\";\nimport withImmutableActions from \"react-utils/withImmutableActions\";\nimport { create } from \"zustand\";\n\n/** @type {import(\"neetocommons/react-utils\").ZustandStoreHook} */\nconst useScrollStore = create(\n withImmutableActions((set, get) => ({\n scrollPositions: {},\n setScrollPosition: (key, value) =>\n set(state => ({\n scrollPositions: assoc(key, value, state.scrollPositions),\n })),\n removeScrollPosition: key =>\n set(state => ({ scrollPositions: dissoc(key, state.scrollPositions) })),\n getScrollPosition: key => get().scrollPositions[key],\n }))\n);\n\nconst useRestoreScrollPosition = (key, ref) => {\n const setScrollPosition = useScrollStore(prop(\"setScrollPosition\"));\n const getScrollPosition = useScrollStore(prop(\"getScrollPosition\"));\n\n const handleScroll = useFuncDebounce(() => {\n if (!ref.current) return;\n setScrollPosition(key, ref.current.scrollTop);\n }, 500);\n\n useEffect(() => {\n if (ref.current) {\n const savedScrollPosition = getScrollPosition(key);\n if (savedScrollPosition !== undefined) {\n ref.current.scrollTop = savedScrollPosition;\n }\n ref.current.addEventListener(\"scroll\", handleScroll);\n }\n\n return () => {\n if (ref.current) {\n ref.current.removeEventListener(\"scroll\", handleScroll);\n }\n };\n }, [key]);\n};\n\nexport const useSetScrollPosition = () =>\n useScrollStore(prop(\"setScrollPosition\"));\n\nexport const useGetScrollPosition = () =>\n useScrollStore(prop(\"getScrollPosition\"));\n\nexport const useRemoveScrollPosition = () =>\n useScrollStore(prop(\"removeScrollPosition\"));\n\nexport default useRestoreScrollPosition;\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,OAAO;AAEjC,SAASC,KAAK,EAAEC,MAAM,EAAEC,IAAI,QAAQ,OAAO;AAC3C,OAAOC,eAAe;AACtB,OAAOC,oBAAoB;AAC3B,SAASC,MAAM,QAAQ,SAAS;;AAEhC;AACA,IAAMC,cAAc,GAAGD,MAAM,CAC3BD,oBAAoB,CAAC,UAACG,GAAG,EAAEC,GAAG;EAAA,OAAM;IAClCC,eAAe,EAAE,CAAC,CAAC;IACnBC,iBAAiB,EAAE,SAAAA,kBAACC,GAAG,EAAEC,KAAK;MAAA,OAC5BL,GAAG,CAAC,UAAAM,KAAK;QAAA,OAAK;UACZJ,eAAe,EAAET,KAAK,CAACW,GAAG,EAAEC,KAAK,EAAEC,KAAK,CAACJ,eAAe;QAC1D,CAAC;MAAA,CAAC,CAAC;IAAA;IACLK,oBAAoB,EAAE,SAAAA,qBAAAH,GAAG;MAAA,OACvBJ,GAAG,CAAC,UAAAM,KAAK;QAAA,OAAK;UAAEJ,eAAe,EAAER,MAAM,CAACU,GAAG,EAAEE,KAAK,CAACJ,eAAe;QAAE,CAAC;MAAA,CAAC,CAAC;IAAA;IACzEM,iBAAiB,EAAE,SAAAA,kBAAAJ,GAAG;MAAA,OAAIH,GAAG,EAAE,CAACC,eAAe,CAACE,GAAG,CAAC;IAAA;EACtD,CAAC;AAAA,CAAC,CAAC,CACJ;AAED,IAAMK,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAIL,GAAG,EAAEM,GAAG,EAAK;EAC7C,IAAMP,iBAAiB,GAAGJ,cAAc,CAACJ,IAAI,CAAC,mBAAmB,CAAC,CAAC;EACnE,IAAMa,iBAAiB,GAAGT,cAAc,CAACJ,IAAI,CAAC,mBAAmB,CAAC,CAAC;EAEnE,IAAMgB,YAAY,GAAGf,eAAe,CAAC,YAAM;IACzC,IAAI,CAACc,GAAG,CAACE,OAAO,EAAE;IAClBT,iBAAiB,CAACC,GAAG,EAAEM,GAAG,CAACE,OAAO,CAACC,SAAS,CAAC;EAC/C,CAAC,EAAE,GAAG,CAAC;EAEPrB,SAAS,CAAC,YAAM;IACd,IAAIkB,GAAG,CAACE,OAAO,EAAE;MACf,IAAME,mBAAmB,GAAGN,iBAAiB,CAACJ,GAAG,CAAC;MAClD,IAAIU,mBAAmB,KAAKC,SAAS,EAAE;QACrCL,GAAG,CAACE,OAAO,CAACC,SAAS,GAAGC,mBAAmB;MAC7C;MACAJ,GAAG,CAACE,OAAO,CAACI,gBAAgB,CAAC,QAAQ,EAAEL,YAAY,CAAC;IACtD;IAEA,OAAO,YAAM;MACX,IAAID,GAAG,CAACE,OAAO,EAAE;QACfF,GAAG,CAACE,OAAO,CAACK,mBAAmB,CAAC,QAAQ,EAAEN,YAAY,CAAC;MACzD;IACF,CAAC;EACH,CAAC,EAAE,CAACP,GAAG,CAAC,CAAC;AACX,CAAC;AAED,OAAO,IAAMc,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAA;EAAA,OAC/BnB,cAAc,CAACJ,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAAA;AAE3C,OAAO,IAAMwB,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAA;EAAA,OAC/BpB,cAAc,CAACJ,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAAA;AAE3C,OAAO,IAAMyB,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAA;EAAA,OAClCrB,cAAc,CAACJ,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAAA;AAE9C,eAAec,wBAAwB"}
|
package/react-utils.d.ts
CHANGED
|
@@ -1260,6 +1260,82 @@ export function useNavigationCheckpoints(...keys: string[]): {
|
|
|
1260
1260
|
*
|
|
1261
1261
|
*/
|
|
1262
1262
|
export function useRemoveNavigationCheckpoint(): (key: string) => void;
|
|
1263
|
+
/**
|
|
1264
|
+
*
|
|
1265
|
+
* The useRestoreScrollPosition hook facilitates the restoration and synchronization of scroll positions for components using Zustand store.
|
|
1266
|
+
*
|
|
1267
|
+
* Maintaining scroll positions as users navigate between different routes or interact with dynamic content is crucial for preserving user context and enhancing usability. useRestoreScrollPosition addresses this by allowing components to save and restore scroll positions based on specified keys.
|
|
1268
|
+
*
|
|
1269
|
+
* Here's an example demonstrating how to use useRestoreScrollPosition to manage scroll positions within a React component:
|
|
1270
|
+
*
|
|
1271
|
+
* @example
|
|
1272
|
+
*
|
|
1273
|
+
* import React, { useRef } from "react";
|
|
1274
|
+
* import useRestoreScrollPosition, { useRemoveScrollPosition } from "@bigbinary/neeto-commons-frontend/react-utils/useRestoreScrollPosition";
|
|
1275
|
+
*
|
|
1276
|
+
* const ScrollableComponent = ({ scrollKey }) => {
|
|
1277
|
+
* const ref = useRef(null);
|
|
1278
|
+
*
|
|
1279
|
+
* // Hook to manage scroll position restoration
|
|
1280
|
+
* useRestoreScrollPosition(scrollKey, ref);
|
|
1281
|
+
*
|
|
1282
|
+
* // Example of how to remove a saved scroll position
|
|
1283
|
+
* const removeScrollPosition = useRemoveScrollPosition();
|
|
1284
|
+
* const handleClearScrollPosition = () => {
|
|
1285
|
+
* removeScrollPosition(scrollKey);
|
|
1286
|
+
* };
|
|
1287
|
+
*
|
|
1288
|
+
* return (
|
|
1289
|
+
* <div {...{ ref }}>
|
|
1290
|
+
* { Scrollable content }
|
|
1291
|
+
* <button onClick={handleClearScrollPosition}>Clear Scroll Position</button>
|
|
1292
|
+
* </div>
|
|
1293
|
+
* );
|
|
1294
|
+
* }
|
|
1295
|
+
*
|
|
1296
|
+
* export default ScrollableComponent;
|
|
1297
|
+
* @endexample
|
|
1298
|
+
*/
|
|
1299
|
+
export function useRestoreScrollPosition(key: string, ref: React.RefObject<HTMLElement>): void;
|
|
1300
|
+
/**
|
|
1301
|
+
*
|
|
1302
|
+
* A custom hook that provides access to set scroll positions.
|
|
1303
|
+
*
|
|
1304
|
+
* @example
|
|
1305
|
+
*
|
|
1306
|
+
* import { useSetScrollPosition } from "@bigbinary/neeto-commons-frontend/react-utils/useRestoreScrollPosition
|
|
1307
|
+
*
|
|
1308
|
+
* const setScrollPosition = useSetScrollPosition();
|
|
1309
|
+
* setScrollPosition("myKey", 100);
|
|
1310
|
+
* @endexample
|
|
1311
|
+
*/
|
|
1312
|
+
export function useSetScrollPosition(): (key: string, value: number) => void;
|
|
1313
|
+
/**
|
|
1314
|
+
*
|
|
1315
|
+
* A custom hook that retrieves the scroll position for a given key.
|
|
1316
|
+
*
|
|
1317
|
+
* @example
|
|
1318
|
+
*
|
|
1319
|
+
* import { useGetScrollPosition } from "@bigbinary/neeto-commons-frontend/react-utils/useRestoreScrollPosition
|
|
1320
|
+
*
|
|
1321
|
+
* const getScrollPosition = useGetScrollPosition();
|
|
1322
|
+
* const position = getScrollPosition("myKey");
|
|
1323
|
+
* @endexample
|
|
1324
|
+
*/
|
|
1325
|
+
export function useGetScrollPosition(): (key: string) => number | undefined;
|
|
1326
|
+
/**
|
|
1327
|
+
*
|
|
1328
|
+
* A custom hook that removes a scroll position entry for a specified key.
|
|
1329
|
+
*
|
|
1330
|
+
* @example
|
|
1331
|
+
*
|
|
1332
|
+
* import { useRemoveScrollPosition } from "@bigbinary/neeto-commons-frontend/react-utils/useRestoreScrollPosition
|
|
1333
|
+
*
|
|
1334
|
+
* const removeScrollPosition = useRemoveScrollPosition();
|
|
1335
|
+
* removeScrollPosition("myKey");
|
|
1336
|
+
* @endexample
|
|
1337
|
+
*/
|
|
1338
|
+
export function useRemoveScrollPosition(): (key: string) => void;
|
|
1263
1339
|
/**
|
|
1264
1340
|
*
|
|
1265
1341
|
* The useFuncDebounce hook is a utility that extends the benefits of debouncing
|