@bigbinary/neeto-commons-frontend 3.2.0 → 3.2.2
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/axios/index.js +14 -6
- package/cjs/initializers/axios/index.js.map +1 -1
- package/cjs/react-utils/metaClick/metaClick.js +8 -1
- package/cjs/react-utils/metaClick/metaClick.js.map +1 -1
- package/initializers/axios/index.js +14 -6
- package/initializers/axios/index.js.map +1 -1
- package/package.json +1 -1
- package/react-utils/metaClick/metaClick.js +8 -1
- package/react-utils/metaClick/metaClick.js.map +1 -1
- package/react-utils.d.ts +54 -3
|
@@ -151,11 +151,19 @@ var showErrorToastr = function showErrorToastr(error) {
|
|
|
151
151
|
_ref4$showToastr = _ref4.showToastr,
|
|
152
152
|
showToastr = _ref4$showToastr === void 0 ? true : _ref4$showToastr;
|
|
153
153
|
if (!showToastr) return error;
|
|
154
|
+
var _ref5 = (_error$response3 = error.response) !== null && _error$response3 !== void 0 ? _error$response3 : {},
|
|
155
|
+
status = _ref5.status;
|
|
154
156
|
if (error.message === "Network Error") return handleNetworkError(error);
|
|
155
|
-
if (![403, 404].includes(
|
|
157
|
+
if (![403, 404, 520].includes(status) && !_axios["default"].isCancel(error)) {
|
|
156
158
|
// we already display a page in case of 403 & 404 and we don't want to show a toastr for cancelled requests.
|
|
159
|
+
// We handle cloudflare error differently for production and other environments.
|
|
157
160
|
_neetoui.Toastr.error(error);
|
|
158
161
|
}
|
|
162
|
+
if (status === 520) {
|
|
163
|
+
if (globalProps.railsEnv === "production") {
|
|
164
|
+
_neetoui.Toastr.error(_i18next["default"].t("generic.error"));
|
|
165
|
+
} else _neetoui.Toastr.error(error);
|
|
166
|
+
}
|
|
159
167
|
return error;
|
|
160
168
|
};
|
|
161
169
|
var getUrlPathName = function getUrlPathName(url) {
|
|
@@ -167,11 +175,11 @@ var getUrlPathName = function getUrlPathName(url) {
|
|
|
167
175
|
};
|
|
168
176
|
var handle404ErrorResponse = function handle404ErrorResponse(error) {
|
|
169
177
|
var _error$config4, _error$response4;
|
|
170
|
-
var
|
|
171
|
-
|
|
172
|
-
show404ErrorPage =
|
|
173
|
-
|
|
174
|
-
show403ErrorPage =
|
|
178
|
+
var _ref6 = (_error$config4 = error.config) !== null && _error$config4 !== void 0 ? _error$config4 : {},
|
|
179
|
+
_ref6$show404ErrorPag = _ref6.show404ErrorPage,
|
|
180
|
+
show404ErrorPage = _ref6$show404ErrorPag === void 0 ? true : _ref6$show404ErrorPag,
|
|
181
|
+
_ref6$show403ErrorPag = _ref6.show403ErrorPage,
|
|
182
|
+
show403ErrorPage = _ref6$show403ErrorPag === void 0 ? true : _ref6$show403ErrorPag;
|
|
175
183
|
var status = (_error$response4 = error.response) === null || _error$response4 === void 0 ? void 0 : _error$response4.status;
|
|
176
184
|
if (status === 404 && show404ErrorPage || status === 403 && show403ErrorPage) {
|
|
177
185
|
var _error$request;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_axios","_interopRequireDefault","require","_i18next","_neetoCist","_neetoui","_ramda","_useDisplayErrorPage","_axios2","_paramsSerializer","_constants","shouldNot","skip","_typeof2","shouldShowToastr","response","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","isUserOffline","navigator","onLine","handleNetworkError","_ref3","_asyncToGenerator2","_regenerator","mark","_callee","errorMessage","wrap","_callee$","_context","prev","next","i18next","t","Promise","resolve","MAXIMUM_OFFLINE_DURATION","abrupt","stop","_x","apply","arguments","showErrorToastr","_error$config3","_error$response3","_ref4","_ref4$showToastr","message","includes","isCancel","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","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/axios/index.js"],"sourcesContent":["import axios from \"axios\";\nimport i18next from \"i18next\";\nimport { keysToCamelCase, matches, serializeKeysToSnakeCase } from \"neetocist\";\nimport { Toastr } from \"neetoui\";\nimport { evolve, omit } from \"ramda\";\nimport { useErrorDisplayStore } from \"react-utils/useDisplayErrorPage\";\nimport { resetAuthTokens } from \"utils/axios\";\n\nimport setParamsSerializer from \"./paramsSerializer\";\n\nimport { MAXIMUM_OFFLINE_DURATION, HEADERS_KEYS } from \"../constants\";\n\nconst shouldNot = skip => typeof skip === \"object\" || !skip;\n\nconst shouldShowToastr = response =>\n typeof response === \"string\" ||\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 isUserOffline = () => !window.navigator.onLine;\n\nconst handleNetworkError = async error => {\n const errorMessage = i18next.t(\"neetoCommons.toastr.error.networkError\");\n if (isUserOffline()) {\n await new Promise(resolve => setTimeout(resolve, MAXIMUM_OFFLINE_DURATION));\n\n if (isUserOffline()) Toastr.error(errorMessage);\n\n return error;\n }\n Toastr.error(errorMessage);\n\n return error;\n};\n\nconst showErrorToastr = error => {\n const { showToastr = true } = error.config ?? {};\n if (!showToastr) return error;\n\n if (error.message === \"Network Error\") return handleNetworkError(error);\n\n if (![403, 404].includes(error.response?.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 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","_neetoui","_ramda","_useDisplayErrorPage","_axios2","_paramsSerializer","_constants","shouldNot","skip","_typeof2","shouldShowToastr","response","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","isUserOffline","navigator","onLine","handleNetworkError","_ref3","_asyncToGenerator2","_regenerator","mark","_callee","errorMessage","wrap","_callee$","_context","prev","next","i18next","t","Promise","resolve","MAXIMUM_OFFLINE_DURATION","abrupt","stop","_x","apply","arguments","showErrorToastr","_error$config3","_error$response3","_ref4","_ref4$showToastr","_ref5","message","includes","isCancel","globalProps","railsEnv","getUrlPathName","url","URL","_unused","handle404ErrorResponse","_error$config4","_error$response4","_ref6","_ref6$show404ErrorPag","show404ErrorPage","_ref6$show403ErrorPag","show403ErrorPage","_error$request","fullUrl","request","responseURL","useErrorDisplayStore","setState","showErrorPage","statusCode","failedApiUrl","failedApiPath","buildErrorResponseHandler","logoutOn401","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/axios/index.js"],"sourcesContent":["import axios from \"axios\";\nimport i18next from \"i18next\";\nimport { keysToCamelCase, matches, serializeKeysToSnakeCase } from \"neetocist\";\nimport { Toastr } from \"neetoui\";\nimport { evolve, omit } from \"ramda\";\nimport { useErrorDisplayStore } from \"react-utils/useDisplayErrorPage\";\nimport { resetAuthTokens } from \"utils/axios\";\n\nimport setParamsSerializer from \"./paramsSerializer\";\n\nimport { MAXIMUM_OFFLINE_DURATION, HEADERS_KEYS } from \"../constants\";\n\nconst shouldNot = skip => typeof skip === \"object\" || !skip;\n\nconst shouldShowToastr = response =>\n typeof response === \"string\" ||\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 isUserOffline = () => !window.navigator.onLine;\n\nconst handleNetworkError = async error => {\n const errorMessage = i18next.t(\"neetoCommons.toastr.error.networkError\");\n if (isUserOffline()) {\n await new Promise(resolve => setTimeout(resolve, MAXIMUM_OFFLINE_DURATION));\n\n if (isUserOffline()) Toastr.error(errorMessage);\n\n return error;\n }\n Toastr.error(errorMessage);\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 (![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":";;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,oBAAA,GAAAL,OAAA;AACA,IAAAM,OAAA,GAAAN,OAAA;AAEA,IAAAO,iBAAA,GAAAR,sBAAA,CAAAC,OAAA;AAEA,IAAAQ,UAAA,GAAAR,OAAA;AAEA,IAAMS,SAAS,GAAG,SAAZA,SAASA,CAAGC,IAAI;EAAA,OAAI,IAAAC,QAAA,aAAOD,IAAI,MAAK,QAAQ,IAAI,CAACA,IAAI;AAAA;AAE3D,IAAME,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAGC,QAAQ;EAAA,OAC/B,OAAOA,QAAQ,KAAK,QAAQ,IAC3B,IAAAF,QAAA,aAAOE,QAAQ,MAAK,QAAQ,KAAK,CAAAA,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEC,MAAM,MAAID,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEE,UAAU,EAAE;AAAA;AAE9E,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAA,EAAS;EAAA,IAAAC,qBAAA,EAAAC,qBAAA;EAC3B;EACAC,iBAAK,CAACC,QAAQ,CAACC,OAAO,IAAAH,qBAAA,WAAAI,gBAAA,aAAAJ,qBAAA,EACnBK,uBAAY,CAACC,MAAM,EAAG,kBAAkB,OAAAF,gBAAA,aAAAJ,qBAAA,EACxCK,uBAAY,CAACE,WAAW,EAAG,kBAAkB,OAAAH,gBAAA,aAAAJ,qBAAA,EAC7CK,uBAAY,CAACG,UAAU,GAAAT,qBAAA,GAAGU,QAAQ,CAChCC,aAAa,CAAC,qBAAqB,CAAC,cAAAX,qBAAA,uBADZA,qBAAA,CAEvBY,YAAY,CAAC,SAAS,CAAC,GAAAX,qBAAA,CAC5B;AACH,CAAC;;AAED;AACA;AACA,IAAMY,UAAU,GAAG,SAAbA,UAAUA,CAAGC,SAAS;EAAA,OAAI,UAAAC,IAAI;IAAA,OAClCD,SAAS,CAACE,MAAM,CAAC,UAACC,GAAG,EAAEC,EAAE;MAAA,OAAKA,EAAE,CAACD,GAAG,CAAC;IAAA,GAAEF,IAAI,CAAC;EAAA;AAAA;AAE9C,IAAMI,gCAAgC,GAAG,SAAnCA,gCAAgCA,CAAGvB,QAAQ,EAAI;EACnD,IAAAwB,qBAAA,GAAyCxB,QAAQ,CAACyB,MAAM,CAAhDC,qBAAqB;IAArBA,qBAAqB,GAAAF,qBAAA,cAAG,IAAI,GAAAA,qBAAA;EAEpC,IAAIxB,QAAQ,CAACmB,IAAI,IAAIO,qBAAqB,EAAE;IAC1C1B,QAAQ,CAACmB,IAAI,GAAG,IAAAQ,0BAAe,EAAC3B,QAAQ,CAACmB,IAAI,CAAC;EAChD;EAEA,OAAOnB,QAAQ;AACjB,CAAC;AAED,IAAM4B,6BAA6B,GAAG,SAAhCA,6BAA6BA,CAAGC,KAAK,EAAI;EAAA,IAAAC,aAAA,EAAAC,eAAA;EAC7C,IAAAC,IAAA,IAAAF,aAAA,GAAyCD,KAAK,CAACJ,MAAM,cAAAK,aAAA,cAAAA,aAAA,GAAI,CAAC,CAAC;IAAAG,qBAAA,GAAAD,IAAA,CAAnDN,qBAAqB;IAArBA,qBAAqB,GAAAO,qBAAA,cAAG,IAAI,GAAAA,qBAAA;EAEpC,IAAI,CAAAF,eAAA,GAAAF,KAAK,CAAC7B,QAAQ,cAAA+B,eAAA,eAAdA,eAAA,CAAgBZ,IAAI,IAAIO,qBAAqB,EAAE;IACjDG,KAAK,CAAC7B,QAAQ,CAACmB,IAAI,GAAG,IAAAQ,0BAAe,EAACE,KAAK,CAAC7B,QAAQ,CAACmB,IAAI,CAAC;EAC5D;EAEA,OAAOU,KAAK;AACd,CAAC;AAED,IAAMK,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAGlC,QAAQ,EAAI;EACpC,IAAAmC,qBAAA,GAA8BnC,QAAQ,CAACyB,MAAM,CAArCW,UAAU;IAAVA,UAAU,GAAAD,qBAAA,cAAG,IAAI,GAAAA,qBAAA;EACzB,IAAI,CAACC,UAAU,EAAE,OAAOpC,QAAQ;EAEhC,IAAI,IAAAqC,kBAAO,EAAC;IAAEC,kBAAkB,EAAE;EAAK,CAAC,EAAEtC,QAAQ,CAACmB,IAAI,CAAC,EAAE;IACxD;IACAoB,eAAM,CAACC,OAAO,CAAC,EAAE,EAAE;MAAEC,IAAI,EAAE,IAAI;MAAEC,SAAS,EAAE;IAAO,CAAC,CAAC;EACvD,CAAC,MAAM,IAAI,IAAAL,kBAAO,EAAC;IAAEnC,UAAU,EAAE;EAAY,CAAC,EAAEF,QAAQ,CAACmB,IAAI,CAAC,EAAE;IAC9D;IACAoB,eAAM,CAACC,OAAO,CAAC,EAAE,EAAE;MAAEC,IAAI,EAAE,IAAI;MAAEC,SAAS,EAAE;IAAO,CAAC,CAAC;EACvD,CAAC,MAAM,IAAI3C,gBAAgB,CAACC,QAAQ,CAACmB,IAAI,CAAC,EAAE;IAC1CoB,eAAM,CAACC,OAAO,CAACxC,QAAQ,CAACmB,IAAI,CAAC;EAC/B;EAEA,OAAOnB,QAAQ;AACjB,CAAC;AAED,IAAM2C,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAG3C,QAAQ,EAAI;EACvC,IAAA4C,qBAAA,GAA8C5C,QAAQ,CAACyB,MAAM,CAArDoB,yBAAyB;IAAzBA,yBAAyB,GAAAD,qBAAA,cAAG,KAAK,GAAAA,qBAAA;EAEzC,OAAOC,yBAAyB,GAAG7C,QAAQ,GAAGA,QAAQ,CAACmB,IAAI;AAC7D,CAAC;AAED,IAAM2B,2BAA2B,GAAG,SAA9BA,2BAA2BA,CAAGjD,IAAI,EAAI;EAC1C,IAAMkD,YAAY,GAAG,EAAE;EACvB,IAAI,EAAClD,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAEmD,aAAa,GAAED,YAAY,CAACE,IAAI,CAAC1B,gCAAgC,CAAC;EAE7E,IAAI,EAAC1B,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAEuC,UAAU,GAAEW,YAAY,CAACE,IAAI,CAACf,iBAAiB,CAAC;EAE3D,IAAI,EAACrC,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAE8C,oBAAoB,GAAEI,YAAY,CAACE,IAAI,CAACN,oBAAoB,CAAC;EAExE,OAAO1B,UAAU,CAAC8B,YAAY,CAAC;AACjC,CAAC;AAED,IAAMG,+BAA+B,GAAG,SAAlCA,+BAA+BA,CAAGrB,KAAK,EAAI;EAAA,IAAAsB,gBAAA,EAAAC,cAAA;EAC/C,IAAI,EAAAD,gBAAA,GAAAtB,KAAK,CAAC7B,QAAQ,cAAAmD,gBAAA,uBAAdA,gBAAA,CAAgBE,MAAM,MAAK,GAAG,EAAE,OAAOxB,KAAK;EAEhD,IAAAyB,uBAAe,GAAE;EAEjB,IAAAC,KAAA,IAAAH,cAAA,GAAmCvB,KAAK,CAACJ,MAAM,cAAA2B,cAAA,cAAAA,cAAA,GAAI,CAAC,CAAC;IAAAI,qBAAA,GAAAD,KAAA,CAA7CE,eAAe;IAAfA,eAAe,GAAAD,qBAAA,cAAG,IAAI,GAAAA,qBAAA;EAC9B,IAAIC,eAAe,EAAE;IACnBC,UAAU,CAAC,YAAM;MACf,IAAMC,UAAU,GACdC,MAAM,CAACC,QAAQ,CAACC,QAAQ,KAAK,QAAQ,GACjC,QAAQ,0BAAAC,MAAA,CACeC,kBAAkB,CAACJ,MAAM,CAACC,QAAQ,CAACI,IAAI,CAAC,CAAE;;MAEvE;MACAL,MAAM,CAACC,QAAQ,CAACI,IAAI,GAAGN,UAAU;IACnC,CAAC,EAAE,GAAG,CAAC;EACT;EAEA,OAAO9B,KAAK;AACd,CAAC;AAED,IAAMqC,aAAa,GAAG,SAAhBA,aAAaA,CAAA;EAAA,OAAS,CAACN,MAAM,CAACO,SAAS,CAACC,MAAM;AAAA;AAEpD,IAAMC,kBAAkB;EAAA,IAAAC,KAAA,OAAAC,kBAAA,2BAAAC,YAAA,YAAAC,IAAA,CAAG,SAAAC,QAAM7C,KAAK;IAAA,IAAA8C,YAAA;IAAA,OAAAH,YAAA,YAAAI,IAAA,UAAAC,SAAAC,QAAA;MAAA,kBAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;QAAA;UAC9BL,YAAY,GAAGM,mBAAO,CAACC,CAAC,CAAC,wCAAwC,CAAC;UAAA,KACpEhB,aAAa,EAAE;YAAAY,QAAA,CAAAE,IAAA;YAAA;UAAA;UAAAF,QAAA,CAAAE,IAAA;UAAA,OACX,IAAIG,OAAO,CAAC,UAAAC,OAAO;YAAA,OAAI1B,UAAU,CAAC0B,OAAO,EAAEC,mCAAwB,CAAC;UAAA,EAAC;QAAA;UAE3E,IAAInB,aAAa,EAAE,EAAE3B,eAAM,CAACV,KAAK,CAAC8C,YAAY,CAAC;UAAC,OAAAG,QAAA,CAAAQ,MAAA,WAEzCzD,KAAK;QAAA;UAEdU,eAAM,CAACV,KAAK,CAAC8C,YAAY,CAAC;UAAC,OAAAG,QAAA,CAAAQ,MAAA,WAEpBzD,KAAK;QAAA;QAAA;UAAA,OAAAiD,QAAA,CAAAS,IAAA;MAAA;IAAA,GAAAb,OAAA;EAAA,CACb;EAAA,gBAZKL,kBAAkBA,CAAAmB,EAAA;IAAA,OAAAlB,KAAA,CAAAmB,KAAA,OAAAC,SAAA;EAAA;AAAA,GAYvB;AAED,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,CAAG9D,KAAK,EAAI;EAAA,IAAA+D,cAAA,EAAAC,gBAAA;EAC/B,IAAAC,KAAA,IAAAF,cAAA,GAA8B/D,KAAK,CAACJ,MAAM,cAAAmE,cAAA,cAAAA,cAAA,GAAI,CAAC,CAAC;IAAAG,gBAAA,GAAAD,KAAA,CAAxC1D,UAAU;IAAVA,UAAU,GAAA2D,gBAAA,cAAG,IAAI,GAAAA,gBAAA;EACzB,IAAI,CAAC3D,UAAU,EAAE,OAAOP,KAAK;EAE7B,IAAAmE,KAAA,IAAAH,gBAAA,GAAmBhE,KAAK,CAAC7B,QAAQ,cAAA6F,gBAAA,cAAAA,gBAAA,GAAI,CAAC,CAAC;IAA/BxC,MAAM,GAAA2C,KAAA,CAAN3C,MAAM;EAEd,IAAIxB,KAAK,CAACoE,OAAO,KAAK,eAAe,EAAE,OAAO5B,kBAAkB,CAACxC,KAAK,CAAC;EAEvE,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAACqE,QAAQ,CAAC7C,MAAM,CAAC,IAAI,CAAC/C,iBAAK,CAAC6F,QAAQ,CAACtE,KAAK,CAAC,EAAE;IAC/D;IACA;IACAU,eAAM,CAACV,KAAK,CAACA,KAAK,CAAC;EACrB;EAEA,IAAIwB,MAAM,KAAK,GAAG,EAAE;IAClB,IAAI+C,WAAW,CAACC,QAAQ,KAAK,YAAY,EAAE;MACzC9D,eAAM,CAACV,KAAK,CAACoD,mBAAO,CAACC,CAAC,CAAC,eAAe,CAAC,CAAC;IAC1C,CAAC,MAAM3C,eAAM,CAACV,KAAK,CAACA,KAAK,CAAC;EAC5B;EAEA,OAAOA,KAAK;AACd,CAAC;AAED,IAAMyE,cAAc,GAAG,SAAjBA,cAAcA,CAAGC,GAAG,EAAI;EAC5B,IAAI;IACF,OAAO,IAAIC,GAAG,CAACD,GAAG,CAAC,CAACzC,QAAQ;EAC9B,CAAC,CAAC,OAAA2C,OAAA,EAAM;IACN,OAAOF,GAAG;EACZ;AACF,CAAC;AAED,IAAMG,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAG7E,KAAK,EAAI;EAAA,IAAA8E,cAAA,EAAAC,gBAAA;EACtC,IAAAC,KAAA,IAAAF,cAAA,GACE9E,KAAK,CAACJ,MAAM,cAAAkF,cAAA,cAAAA,cAAA,GAAI,CAAC,CAAC;IAAAG,qBAAA,GAAAD,KAAA,CADZE,gBAAgB;IAAhBA,gBAAgB,GAAAD,qBAAA,cAAG,IAAI,GAAAA,qBAAA;IAAAE,qBAAA,GAAAH,KAAA,CAAEI,gBAAgB;IAAhBA,gBAAgB,GAAAD,qBAAA,cAAG,IAAI,GAAAA,qBAAA;EAGxD,IAAM3D,MAAM,IAAAuD,gBAAA,GAAG/E,KAAK,CAAC7B,QAAQ,cAAA4G,gBAAA,uBAAdA,gBAAA,CAAgBvD,MAAM;EACrC,IACGA,MAAM,KAAK,GAAG,IAAI0D,gBAAgB,IAClC1D,MAAM,KAAK,GAAG,IAAI4D,gBAAiB,EACpC;IAAA,IAAAC,cAAA;IACA,IAAMC,OAAO,GAAG,EAAAD,cAAA,GAAArF,KAAK,CAACuF,OAAO,cAAAF,cAAA,uBAAbA,cAAA,CAAeG,WAAW,KAAIxF,KAAK,CAACJ,MAAM,CAAC8E,GAAG;IAC9De,yCAAoB,CAACC,QAAQ,CAAC;MAC5BC,aAAa,EAAE,IAAI;MACnBC,UAAU,EAAEpE,MAAM;MAClBqE,YAAY,EAAEP,OAAO;MACrBQ,aAAa,EAAErB,cAAc,CAACa,OAAO;IACvC,CAAC,CAAC;EACJ;EAEA,OAAOtF,KAAK;AACd,CAAC;AAED,IAAM+F,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAG/H,IAAI,EAAI;EACxC,IAAMkD,YAAY,GAAG,EAAE;EACvB,IAAI,EAAClD,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAEmD,aAAa,GAAED,YAAY,CAACE,IAAI,CAACrB,6BAA6B,CAAC;EAE1E,IAAI,EAAC/B,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAEkH,gBAAgB,GAAEhE,YAAY,CAACE,IAAI,CAACyD,sBAAsB,CAAC;EAEtE,IAAI,EAAC7G,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAEgI,WAAW,GAAE9E,YAAY,CAACE,IAAI,CAACC,+BAA+B,CAAC;EAE1E,IAAI,EAACrD,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAEuC,UAAU,GAAEW,YAAY,CAACE,IAAI,CAAC0C,eAAe,CAAC;EAEzD5C,YAAY,CAACE,IAAI,CAACkC,OAAO,CAAC2C,MAAM,CAACC,IAAI,CAAC5C,OAAO,CAAC,CAAC;EAE/C,OAAOlE,UAAU,CAAC8B,YAAY,CAAC;AACjC,CAAC;AAED,IAAMiF,gCAAgC,GAAG,SAAnCA,gCAAgCA,CAAGZ,OAAO,EAAI;EAClD,IAAI,CAACA,OAAO,CAACb,GAAG,CAACL,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAOkB,OAAO;EAEhD,IAAIA,OAAO,CAACb,GAAG,CAACL,QAAQ,CAACtC,MAAM,CAACC,QAAQ,CAACoE,QAAQ,CAAC,EAAE,OAAOb,OAAO;EAElE,OAAO,IAAAc,aAAM,EAAC;IAAE1H,OAAO,EAAE,IAAA2H,WAAI,EAAC,CAACzH,uBAAY,CAACG,UAAU,CAAC;EAAE,CAAC,CAAC,CAACuG,OAAO,CAAC;AACtE,CAAC;AAED,IAAMgB,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAGhB,OAAO,EAAI;EAC1C,IAAAiB,qBAAA,GAAwCjB,OAAO,CAAvCkB,oBAAoB;IAApBA,oBAAoB,GAAAD,qBAAA,cAAG,IAAI,GAAAA,qBAAA;EAEnC,IAAI,CAACC,oBAAoB,EAAE,OAAOlB,OAAO;EAEzC,OAAO,IAAAc,aAAM,EACX;IAAE/G,IAAI,EAAEoH,mCAAwB;IAAEC,MAAM,EAAED;EAAyB,CAAC,EACpEnB,OAAO,CACR;AACH,CAAC;AAED,IAAMqB,sBAAsB,GAAG,SAAzBA,sBAAsBA,CAAG5I,IAAI,EAAI;EACrC,IAAI,EAACA,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAE6I,8BAA8B,GAAE;IACzCpI,iBAAK,CAACyC,YAAY,CAACqE,OAAO,CAACuB,GAAG,CAACX,gCAAgC,CAAC;EAClE;EAEA,IAAI,EAACnI,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAEmD,aAAa,GAAE;IACxB1C,iBAAK,CAACyC,YAAY,CAACqE,OAAO,CAACuB,GAAG,CAACP,wBAAwB,CAAC;EAC1D;AACF,CAAC;AAED,IAAMQ,uBAAuB,GAAG,SAA1BA,uBAAuBA,CAAG/I,IAAI,EAAI;EACtCS,iBAAK,CAACyC,YAAY,CAAC/C,QAAQ,CAAC2I,GAAG,CAC7B7F,2BAA2B,CAACjD,IAAI,CAAC,EACjC+H,yBAAyB,CAAC/H,IAAI,CAAC,CAChC;AACH,CAAC;AAED,IAAMgJ,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAGhJ,IAAI,EAAI;EACjC,IAAID,SAAS,CAACC,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEuH,OAAO,CAAC,EAAEqB,sBAAsB,CAAC5I,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEuH,OAAO,CAAC;EAEnE,IAAIxH,SAAS,CAACC,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEG,QAAQ,CAAC,EAAE4I,uBAAuB,CAAC/I,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEG,QAAQ,CAAC;AACxE,CAAC;AAEc,SAAS8I,eAAeA,CAACjJ,IAAI,EAAE;EAC5C,IAAI,EAACA,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAEkJ,OAAO,GAAEzI,iBAAK,CAACC,QAAQ,CAACwI,OAAO,GAAG,GAAG;EAEhD,IAAI,EAAClJ,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAEmJ,WAAW,GAAE7I,cAAc,EAAE;EAExC,IAAI,EAACN,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAEoJ,gBAAgB,GAAE,IAAAC,4BAAmB,GAAE;EAElD,IAAItJ,SAAS,CAACC,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEkD,YAAY,CAAC,EAAE8F,kBAAkB,CAAChJ,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEkD,YAAY,CAAC;AAC3E"}
|
|
@@ -6,7 +6,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.isMetaKeyPressed = exports.handleMetaClick = void 0;
|
|
7
7
|
var _ramda = require("ramda");
|
|
8
8
|
var handleMetaClick = (0, _ramda.curry)(function (history, params, event) {
|
|
9
|
-
|
|
9
|
+
var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
10
|
+
if (isMetaKeyPressed(event)) {
|
|
11
|
+
return window.open(params.pathname || params, "_blank");
|
|
12
|
+
}
|
|
13
|
+
var _options$isHistoryRep = options.isHistoryReplace,
|
|
14
|
+
isHistoryReplace = _options$isHistoryRep === void 0 ? false : _options$isHistoryRep;
|
|
15
|
+
var historyMethod = isHistoryReplace ? history.replace : history.push;
|
|
16
|
+
return historyMethod(params);
|
|
10
17
|
});
|
|
11
18
|
exports.handleMetaClick = handleMetaClick;
|
|
12
19
|
var isMetaKeyPressed = function isMetaKeyPressed(event) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metaClick.js","names":["_ramda","require","handleMetaClick","curry","history","params","event","isMetaKeyPressed","window","open","pathname","push","exports","ctrlKey","metaKey"],"sources":["../../../../src/react-utils/metaClick/metaClick.js"],"sourcesContent":["import { curry } from \"ramda\";\n\nexport const handleMetaClick = curry((history, params, event)
|
|
1
|
+
{"version":3,"file":"metaClick.js","names":["_ramda","require","handleMetaClick","curry","history","params","event","options","arguments","length","undefined","isMetaKeyPressed","window","open","pathname","_options$isHistoryRep","isHistoryReplace","historyMethod","replace","push","exports","ctrlKey","metaKey"],"sources":["../../../../src/react-utils/metaClick/metaClick.js"],"sourcesContent":["import { curry } from \"ramda\";\n\nexport const handleMetaClick = curry((history, params, event, options = {}) => {\n if (isMetaKeyPressed(event)) {\n return window.open(params.pathname || params, \"_blank\");\n }\n\n const { isHistoryReplace = false } = options;\n const historyMethod = isHistoryReplace ? history.replace : history.push;\n\n return historyMethod(params);\n});\n\nexport const isMetaKeyPressed = event => !!(event?.ctrlKey || event?.metaKey);\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEO,IAAMC,eAAe,GAAG,IAAAC,YAAK,EAAC,UAACC,OAAO,EAAEC,MAAM,EAAEC,KAAK,EAAmB;EAAA,IAAjBC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACxE,IAAIG,gBAAgB,CAACL,KAAK,CAAC,EAAE;IAC3B,OAAOM,MAAM,CAACC,IAAI,CAACR,MAAM,CAACS,QAAQ,IAAIT,MAAM,EAAE,QAAQ,CAAC;EACzD;EAEA,IAAAU,qBAAA,GAAqCR,OAAO,CAApCS,gBAAgB;IAAhBA,gBAAgB,GAAAD,qBAAA,cAAG,KAAK,GAAAA,qBAAA;EAChC,IAAME,aAAa,GAAGD,gBAAgB,GAAGZ,OAAO,CAACc,OAAO,GAAGd,OAAO,CAACe,IAAI;EAEvE,OAAOF,aAAa,CAACZ,MAAM,CAAC;AAC9B,CAAC,CAAC;AAACe,OAAA,CAAAlB,eAAA,GAAAA,eAAA;AAEI,IAAMS,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAGL,KAAK;EAAA,OAAI,CAAC,EAAEA,KAAK,aAALA,KAAK,eAALA,KAAK,CAAEe,OAAO,IAAIf,KAAK,aAALA,KAAK,eAALA,KAAK,CAAEgB,OAAO,CAAC;AAAA;AAACF,OAAA,CAAAT,gBAAA,GAAAA,gBAAA"}
|
|
@@ -144,11 +144,19 @@ var showErrorToastr = function showErrorToastr(error) {
|
|
|
144
144
|
_ref4$showToastr = _ref4.showToastr,
|
|
145
145
|
showToastr = _ref4$showToastr === void 0 ? true : _ref4$showToastr;
|
|
146
146
|
if (!showToastr) return error;
|
|
147
|
+
var _ref5 = (_error$response3 = error.response) !== null && _error$response3 !== void 0 ? _error$response3 : {},
|
|
148
|
+
status = _ref5.status;
|
|
147
149
|
if (error.message === "Network Error") return handleNetworkError(error);
|
|
148
|
-
if (![403, 404].includes(
|
|
150
|
+
if (![403, 404, 520].includes(status) && !axios.isCancel(error)) {
|
|
149
151
|
// we already display a page in case of 403 & 404 and we don't want to show a toastr for cancelled requests.
|
|
152
|
+
// We handle cloudflare error differently for production and other environments.
|
|
150
153
|
Toastr.error(error);
|
|
151
154
|
}
|
|
155
|
+
if (status === 520) {
|
|
156
|
+
if (globalProps.railsEnv === "production") {
|
|
157
|
+
Toastr.error(i18next.t("generic.error"));
|
|
158
|
+
} else Toastr.error(error);
|
|
159
|
+
}
|
|
152
160
|
return error;
|
|
153
161
|
};
|
|
154
162
|
var getUrlPathName = function getUrlPathName(url) {
|
|
@@ -160,11 +168,11 @@ var getUrlPathName = function getUrlPathName(url) {
|
|
|
160
168
|
};
|
|
161
169
|
var handle404ErrorResponse = function handle404ErrorResponse(error) {
|
|
162
170
|
var _error$config4, _error$response4;
|
|
163
|
-
var
|
|
164
|
-
|
|
165
|
-
show404ErrorPage =
|
|
166
|
-
|
|
167
|
-
show403ErrorPage =
|
|
171
|
+
var _ref6 = (_error$config4 = error.config) !== null && _error$config4 !== void 0 ? _error$config4 : {},
|
|
172
|
+
_ref6$show404ErrorPag = _ref6.show404ErrorPage,
|
|
173
|
+
show404ErrorPage = _ref6$show404ErrorPag === void 0 ? true : _ref6$show404ErrorPag,
|
|
174
|
+
_ref6$show403ErrorPag = _ref6.show403ErrorPage,
|
|
175
|
+
show403ErrorPage = _ref6$show403ErrorPag === void 0 ? true : _ref6$show403ErrorPag;
|
|
168
176
|
var status = (_error$response4 = error.response) === null || _error$response4 === void 0 ? void 0 : _error$response4.status;
|
|
169
177
|
if (status === 404 && show404ErrorPage || status === 403 && show403ErrorPage) {
|
|
170
178
|
var _error$request;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["axios","i18next","keysToCamelCase","matches","serializeKeysToSnakeCase","Toastr","evolve","omit","useErrorDisplayStore","resetAuthTokens","setParamsSerializer","MAXIMUM_OFFLINE_DURATION","HEADERS_KEYS","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","isUserOffline","navigator","onLine","handleNetworkError","_ref3","_asyncToGenerator","_regeneratorRuntime","mark","_callee","errorMessage","wrap","_callee$","_context","prev","next","t","Promise","resolve","abrupt","stop","_x","apply","arguments","showErrorToastr","_error$config3","_error$response3","_ref4","_ref4$showToastr","message","includes","isCancel","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","reject","bind","cleanupCredentialsForCrossOrigin","hostname","transformDataToSnakeCase","_request$transformReq","transformRequestCase","params","addRequestInterceptors","cleanCredentialsForCrossOrigin","use","addResponseInterceptors","registerIntercepts","initializeAxios","baseURL","authHeaders","paramsSerializer"],"sources":["../../../src/initializers/axios/index.js"],"sourcesContent":["import axios from \"axios\";\nimport i18next from \"i18next\";\nimport { keysToCamelCase, matches, serializeKeysToSnakeCase } from \"neetocist\";\nimport { Toastr } from \"neetoui\";\nimport { evolve, omit } from \"ramda\";\nimport { useErrorDisplayStore } from \"react-utils/useDisplayErrorPage\";\nimport { resetAuthTokens } from \"utils/axios\";\n\nimport setParamsSerializer from \"./paramsSerializer\";\n\nimport { MAXIMUM_OFFLINE_DURATION, HEADERS_KEYS } from \"../constants\";\n\nconst shouldNot = skip => typeof skip === \"object\" || !skip;\n\nconst shouldShowToastr = response =>\n typeof response === \"string\" ||\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 isUserOffline = () => !window.navigator.onLine;\n\nconst handleNetworkError = async error => {\n const errorMessage = i18next.t(\"neetoCommons.toastr.error.networkError\");\n if (isUserOffline()) {\n await new Promise(resolve => setTimeout(resolve, MAXIMUM_OFFLINE_DURATION));\n\n if (isUserOffline()) Toastr.error(errorMessage);\n\n return error;\n }\n Toastr.error(errorMessage);\n\n return error;\n};\n\nconst showErrorToastr = error => {\n const { showToastr = true } = error.config ?? {};\n if (!showToastr) return error;\n\n if (error.message === \"Network Error\") return handleNetworkError(error);\n\n if (![403, 404].includes(error.response?.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 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","keysToCamelCase","matches","serializeKeysToSnakeCase","Toastr","evolve","omit","useErrorDisplayStore","resetAuthTokens","setParamsSerializer","MAXIMUM_OFFLINE_DURATION","HEADERS_KEYS","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","isUserOffline","navigator","onLine","handleNetworkError","_ref3","_asyncToGenerator","_regeneratorRuntime","mark","_callee","errorMessage","wrap","_callee$","_context","prev","next","t","Promise","resolve","abrupt","stop","_x","apply","arguments","showErrorToastr","_error$config3","_error$response3","_ref4","_ref4$showToastr","_ref5","message","includes","isCancel","globalProps","railsEnv","getUrlPathName","url","URL","_unused","handle404ErrorResponse","_error$config4","_error$response4","_ref6","_ref6$show404ErrorPag","show404ErrorPage","_ref6$show403ErrorPag","show403ErrorPage","_error$request","fullUrl","request","responseURL","setState","showErrorPage","statusCode","failedApiUrl","failedApiPath","buildErrorResponseHandler","logoutOn401","reject","bind","cleanupCredentialsForCrossOrigin","hostname","transformDataToSnakeCase","_request$transformReq","transformRequestCase","params","addRequestInterceptors","cleanCredentialsForCrossOrigin","use","addResponseInterceptors","registerIntercepts","initializeAxios","baseURL","authHeaders","paramsSerializer"],"sources":["../../../src/initializers/axios/index.js"],"sourcesContent":["import axios from \"axios\";\nimport i18next from \"i18next\";\nimport { keysToCamelCase, matches, serializeKeysToSnakeCase } from \"neetocist\";\nimport { Toastr } from \"neetoui\";\nimport { evolve, omit } from \"ramda\";\nimport { useErrorDisplayStore } from \"react-utils/useDisplayErrorPage\";\nimport { resetAuthTokens } from \"utils/axios\";\n\nimport setParamsSerializer from \"./paramsSerializer\";\n\nimport { MAXIMUM_OFFLINE_DURATION, HEADERS_KEYS } from \"../constants\";\n\nconst shouldNot = skip => typeof skip === \"object\" || !skip;\n\nconst shouldShowToastr = response =>\n typeof response === \"string\" ||\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 isUserOffline = () => !window.navigator.onLine;\n\nconst handleNetworkError = async error => {\n const errorMessage = i18next.t(\"neetoCommons.toastr.error.networkError\");\n if (isUserOffline()) {\n await new Promise(resolve => setTimeout(resolve, MAXIMUM_OFFLINE_DURATION));\n\n if (isUserOffline()) Toastr.error(errorMessage);\n\n return error;\n }\n Toastr.error(errorMessage);\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 (![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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bigbinary/neeto-commons-frontend",
|
|
3
|
-
"version": "3.2.
|
|
3
|
+
"version": "3.2.2",
|
|
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>",
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { curry } from "ramda";
|
|
2
2
|
export var handleMetaClick = curry(function (history, params, event) {
|
|
3
|
-
|
|
3
|
+
var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
4
|
+
if (isMetaKeyPressed(event)) {
|
|
5
|
+
return window.open(params.pathname || params, "_blank");
|
|
6
|
+
}
|
|
7
|
+
var _options$isHistoryRep = options.isHistoryReplace,
|
|
8
|
+
isHistoryReplace = _options$isHistoryRep === void 0 ? false : _options$isHistoryRep;
|
|
9
|
+
var historyMethod = isHistoryReplace ? history.replace : history.push;
|
|
10
|
+
return historyMethod(params);
|
|
4
11
|
});
|
|
5
12
|
export var isMetaKeyPressed = function isMetaKeyPressed(event) {
|
|
6
13
|
return !!(event !== null && event !== void 0 && event.ctrlKey || event !== null && event !== void 0 && event.metaKey);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metaClick.js","names":["curry","handleMetaClick","history","params","event","isMetaKeyPressed","window","open","pathname","push","ctrlKey","metaKey"],"sources":["../../../src/react-utils/metaClick/metaClick.js"],"sourcesContent":["import { curry } from \"ramda\";\n\nexport const handleMetaClick = curry((history, params, event)
|
|
1
|
+
{"version":3,"file":"metaClick.js","names":["curry","handleMetaClick","history","params","event","options","arguments","length","undefined","isMetaKeyPressed","window","open","pathname","_options$isHistoryRep","isHistoryReplace","historyMethod","replace","push","ctrlKey","metaKey"],"sources":["../../../src/react-utils/metaClick/metaClick.js"],"sourcesContent":["import { curry } from \"ramda\";\n\nexport const handleMetaClick = curry((history, params, event, options = {}) => {\n if (isMetaKeyPressed(event)) {\n return window.open(params.pathname || params, \"_blank\");\n }\n\n const { isHistoryReplace = false } = options;\n const historyMethod = isHistoryReplace ? history.replace : history.push;\n\n return historyMethod(params);\n});\n\nexport const isMetaKeyPressed = event => !!(event?.ctrlKey || event?.metaKey);\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,OAAO;AAE7B,OAAO,IAAMC,eAAe,GAAGD,KAAK,CAAC,UAACE,OAAO,EAAEC,MAAM,EAAEC,KAAK,EAAmB;EAAA,IAAjBC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACxE,IAAIG,gBAAgB,CAACL,KAAK,CAAC,EAAE;IAC3B,OAAOM,MAAM,CAACC,IAAI,CAACR,MAAM,CAACS,QAAQ,IAAIT,MAAM,EAAE,QAAQ,CAAC;EACzD;EAEA,IAAAU,qBAAA,GAAqCR,OAAO,CAApCS,gBAAgB;IAAhBA,gBAAgB,GAAAD,qBAAA,cAAG,KAAK,GAAAA,qBAAA;EAChC,IAAME,aAAa,GAAGD,gBAAgB,GAAGZ,OAAO,CAACc,OAAO,GAAGd,OAAO,CAACe,IAAI;EAEvE,OAAOF,aAAa,CAACZ,MAAM,CAAC;AAC9B,CAAC,CAAC;AAEF,OAAO,IAAMM,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAGL,KAAK;EAAA,OAAI,CAAC,EAAEA,KAAK,aAALA,KAAK,eAALA,KAAK,CAAEc,OAAO,IAAId,KAAK,aAALA,KAAK,eAALA,KAAK,CAAEe,OAAO,CAAC;AAAA"}
|
package/react-utils.d.ts
CHANGED
|
@@ -777,6 +777,57 @@ export async function registerBrowserNotifications(): Promise<void>;
|
|
|
777
777
|
*
|
|
778
778
|
*/
|
|
779
779
|
export async function destroyBrowserSubscription(): Promise<void>;
|
|
780
|
+
type handleMetaClickOptions = {
|
|
781
|
+
isHistoryReplace?: boolean;
|
|
782
|
+
};
|
|
783
|
+
/**
|
|
784
|
+
*
|
|
785
|
+
* The handleMetaClick function can be used to handle onClick actions that
|
|
786
|
+
*
|
|
787
|
+
* redirects to a URL. It opens up the URL in a new tab if ctrl/cmd + click event
|
|
788
|
+
*
|
|
789
|
+
* is received. Otherwise, simply redirects to the provided URL in the same tab.
|
|
790
|
+
*
|
|
791
|
+
* URL can be passed as string or a history location object can be passed instead.
|
|
792
|
+
*
|
|
793
|
+
* Let's say you have a navigation menu with several links, and you want to allow
|
|
794
|
+
*
|
|
795
|
+
* users to open these links in a new tab if they hold down the Ctrl (or Cmd on
|
|
796
|
+
*
|
|
797
|
+
* macOS) key while clicking, and if they click without holding down the Ctrl key,
|
|
798
|
+
*
|
|
799
|
+
* the link should open in the same tab. You can use handleMetaClick to achieve
|
|
800
|
+
*
|
|
801
|
+
* this behavior.
|
|
802
|
+
*
|
|
803
|
+
* @example
|
|
804
|
+
*
|
|
805
|
+
* const NavigationMenu = () => {
|
|
806
|
+
* const history = useHistory();
|
|
807
|
+
*
|
|
808
|
+
* const handleLinkClick = (url, event) => {
|
|
809
|
+
* // Opens url in a new tab if metaKey/CtrlKey is pressed.
|
|
810
|
+
* // Otherwise simply redirects to url.
|
|
811
|
+
* handleMetaClick(history, url, event);
|
|
812
|
+
* };
|
|
813
|
+
*
|
|
814
|
+
* return (
|
|
815
|
+
* <div>
|
|
816
|
+
* <a href="/home" onClick={e => handleLinkClick("/home", e)}>
|
|
817
|
+
* Home
|
|
818
|
+
* </a>
|
|
819
|
+
* <a href="/dashboard" onClick={e => handleLinkClick("/dashboard", e)}>
|
|
820
|
+
* Dashboard
|
|
821
|
+
* </a>
|
|
822
|
+
* <a href="/profile" onClick={e => handleLinkClick("/profile", e)}>
|
|
823
|
+
* Profile
|
|
824
|
+
* </a>
|
|
825
|
+
* </div>
|
|
826
|
+
* );
|
|
827
|
+
* };
|
|
828
|
+
* @endexample
|
|
829
|
+
*/
|
|
830
|
+
export function handleMetaClick(history: History, params: string | object, event: React.MouseEvent<HTMLElement, MouseEvent>, options?: handleMetaClickOptions): void;
|
|
780
831
|
/**
|
|
781
832
|
*
|
|
782
833
|
* The handleMetaClick function can be used to handle onClick actions that
|
|
@@ -824,7 +875,7 @@ export async function destroyBrowserSubscription(): Promise<void>;
|
|
|
824
875
|
* };
|
|
825
876
|
* @endexample
|
|
826
877
|
*/
|
|
827
|
-
export function handleMetaClick(history: History, params: string | object, event: React.MouseEvent<HTMLElement, MouseEvent>): void;
|
|
878
|
+
export function handleMetaClick(history: History, params: string | object, event: React.MouseEvent<HTMLElement, MouseEvent>): (options?: handleMetaClickOptions) => void;
|
|
828
879
|
/**
|
|
829
880
|
*
|
|
830
881
|
* The handleMetaClick function can be used to handle onClick actions that
|
|
@@ -872,7 +923,7 @@ export function handleMetaClick(history: History, params: string | object, event
|
|
|
872
923
|
* };
|
|
873
924
|
* @endexample
|
|
874
925
|
*/
|
|
875
|
-
export function handleMetaClick(history: History, params: string | object): (event: React.MouseEvent<HTMLElement, MouseEvent
|
|
926
|
+
export function handleMetaClick(history: History, params: string | object): (event: React.MouseEvent<HTMLElement, MouseEvent>, options?: handleMetaClickOptions) => void;
|
|
876
927
|
/**
|
|
877
928
|
*
|
|
878
929
|
* The handleMetaClick function can be used to handle onClick actions that
|
|
@@ -920,7 +971,7 @@ export function handleMetaClick(history: History, params: string | object): (eve
|
|
|
920
971
|
* };
|
|
921
972
|
* @endexample
|
|
922
973
|
*/
|
|
923
|
-
export function handleMetaClick(history: History): (params: string | object, event: React.MouseEvent<HTMLElement, MouseEvent
|
|
974
|
+
export function handleMetaClick(history: History): (params: string | object, event: React.MouseEvent<HTMLElement, MouseEvent>, options?: handleMetaClickOptions) => void;
|
|
924
975
|
/**
|
|
925
976
|
*
|
|
926
977
|
* The isMetaKeyPressed function can be used to check whether an onClick event
|