{"version":3,"file":"js/58603-ea305253f0fd4273d780.js","mappings":"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","sources":["webpack://StravaModern/./app/javascript/apps/Microfrontend/styles.scss?dd46","webpack://StravaModern/./app/javascript/apps/Microfrontend/Microfrontend.js"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport default {\"mfcontainer\":\"Microfrontend--mfcontainer--Sw1H-\"};","import * as ContainerContext from '@strava/container-context';\nimport * as PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { devLog } from '../../utils/devUtils';\nimport I18n from '../../utils/I18n';\nimport {\n logError,\n logMessage,\n setTag,\n setTags,\n setContext,\n withScope\n} from '../../utils/sentry';\nimport styles from './styles.scss';\n\n// eslint-disable-next-line no-underscore-dangle\nwindow.__mfe_containers__ ??= {};\n\nconst ENTRY_ERROR_CODE_GENERAL = 0;\n\nconst ENTRY_ERROR_CODE_NETWORK = 1;\n\nconst DEFAULT_ACTIVE_SHARE_SCOPE = {\n react: {\n [React.version]: {\n get: () => () => React,\n from: 'webpack4',\n loaded: true,\n singleton: true\n }\n },\n '@strava/container-context': {\n // eslint-disable-next-line no-undef\n [CONTAINER_CONTEXT_VERSION]: {\n get: () => () => ContainerContext,\n from: 'webpack4',\n loaded: true,\n singleton: true\n }\n }\n};\n\nconst DEFAULT_ANALYTICS_CONTEXT_VALUE = {\n track: (data) => window.Strava.ExternalAnalytics.trackV2(data)\n};\n\nconst DEFAULT_TRANSLATION_CONTEXT_VALUE = {\n t: (key, props = {}) => I18n.t(key, props),\n getLanguage: () => I18n.language()\n};\n\nconst DEFAULT_ERROR_LOGGING_CONTEXT_VALUE = {\n logError,\n logMessage,\n setContext,\n setTag,\n setTags,\n withScope\n};\n\nconst {\n AnalyticsContext,\n ErrorLoggingContext,\n TranslationContext\n} = ContainerContext;\n\nconst { Provider: AnalyticsProvider } = AnalyticsContext;\nconst { Provider: TranslationProvider } = TranslationContext;\nconst { Provider: ErrorLoggingProvider } = ErrorLoggingContext;\n\nconst isNil = (value) => value === null || value === undefined;\n\nconst isFunction = (value) => typeof value === 'function';\n\nconst hasProperty = (object, property) =>\n Object.prototype.hasOwnProperty.call(object, property);\n\nconst resolveRemoteContainer = ({\n shareScope = {},\n remoteEntry,\n containerName\n}) => {\n // eslint-disable-next-line no-underscore-dangle\n const containers = window.__mfe_containers__;\n\n containers[containerName] ??= new Promise((resolve, reject) => {\n const headEl = document.querySelector('head');\n const scriptEl = document.createElement('script');\n\n const onEntryError = (error, code = ENTRY_ERROR_CODE_GENERAL) => {\n if (error instanceof Error) {\n reject(error);\n } else {\n const entryError = new Error(error);\n\n entryError.name = 'MfeError';\n entryError.code = code;\n\n reject(entryError);\n }\n };\n\n const onEntryLoaded = () => {\n if (!hasProperty(window, containerName)) {\n onEntryError(\n `Remote container with name \"${containerName}\" does not exist.`\n );\n return;\n }\n\n const container = window[containerName];\n\n if (isNil(container)) {\n onEntryError(`Remote container with name \"${containerName}\" is nil.`);\n return;\n }\n\n if (!isFunction(container.get) || !isFunction(container.init)) {\n onEntryError(\n `Remote container with name \"${containerName}\" is invalid.`\n );\n return;\n }\n\n Promise.resolve(container.init(shareScope))\n .catch(onEntryError)\n .then(() => {\n resolve(container);\n devLog(`MFE Loaded:\\n${containerName}\\n${remoteEntry}`);\n });\n };\n\n scriptEl.src = remoteEntry;\n scriptEl.type = 'text/javascript';\n scriptEl.async = true;\n\n scriptEl.addEventListener('load', () => onEntryLoaded());\n scriptEl.addEventListener('error', () =>\n onEntryError(\n `Remote container with name \"${containerName}\" failed to load.`,\n ENTRY_ERROR_CODE_NETWORK\n )\n );\n\n headEl.appendChild(scriptEl);\n });\n\n return containers[containerName];\n};\n\nconst createFederatedComponent = (options) => {\n const {\n mfeStatus,\n shareScope,\n remoteEntry,\n containerName,\n containerRequest\n } = options;\n\n return React.lazy(() => {\n const onBeforeUnload = () => {\n window.removeEventListener('beforeunload', onBeforeUnload);\n mfeStatus.isUnloading = true;\n };\n\n const cleanup = () => {\n window.removeEventListener('beforeunload', onBeforeUnload);\n };\n\n const tapReject = (error) => {\n cleanup();\n return Promise.reject(error);\n };\n\n mfeStatus.isResolving = true;\n\n window.addEventListener('beforeunload', onBeforeUnload);\n\n return resolveRemoteContainer({\n shareScope,\n remoteEntry,\n containerName\n })\n .catch(tapReject)\n .then((container) => {\n const moduleFactory = Promise.resolve(container.get(containerRequest))\n .catch(tapReject)\n .then((value) => {\n cleanup();\n\n mfeStatus.isResolving = false;\n\n return Promise.resolve(value);\n });\n\n return moduleFactory.then((resolveModule) => resolveModule());\n });\n });\n};\n\nclass MfeErrorBoundary extends React.Component {\n static contextType = ErrorLoggingContext;\n\n state = { error: false };\n\n static getDerivedStateFromError = (error) => ({ error });\n\n componentDidCatch(error, { componentStack }) {\n if (this.isFalsePositiveNetworkError(error)) {\n return;\n }\n\n const { shareScope } = this.props;\n\n const { logError: logException = logError } =\n /** @type {{ logError?: typeof logError }} */ (this.context ?? {});\n\n logException(error, {\n contexts: {\n contexts: {\n react: { componentStack },\n microfrontend: {\n // eslint-disable-next-line no-underscore-dangle\n containers: Object.keys(window.__mfe_containers__),\n shareScope: JSON.stringify(\n Object.keys(shareScope).reduce(\n (memo, current) => ({\n ...memo,\n [current]: Object.keys(shareScope[current])\n }),\n {}\n ),\n null,\n 2\n )\n }\n }\n }\n });\n }\n\n isFalsePositiveNetworkError(error) {\n const { mfeStatus } = this.props;\n const { isUnloading, isResolving } = mfeStatus;\n\n const isChunkLoadError = error.name === 'ChunkLoadError';\n const isMfeNetworkError =\n error.name === 'MfeError' && error.code === ENTRY_ERROR_CODE_NETWORK;\n\n return (\n (isUnloading || isResolving) && (isChunkLoadError || isMfeNetworkError)\n );\n }\n\n render() {\n const { error } = this.state;\n const { children } = this.props;\n\n if (error) {\n return null;\n }\n\n return children;\n }\n}\n\nMfeErrorBoundary.propTypes = {\n children: PropTypes.element.isRequired,\n mfeStatus: PropTypes.shape({\n isUnloading: PropTypes.bool.isRequired,\n isResolving: PropTypes.bool.isRequired\n }).isRequired,\n shareScope: PropTypes.shape({}).isRequired\n};\n\nconst Microfrontend = ({\n url: remoteEntry,\n scope: containerName,\n component: containerRequest,\n appContext\n}) => {\n const isMountedRef = React.useRef(false);\n const mfeStatusRef = React.useRef({ isUnloading: false, isResolving: false });\n const shareScope = DEFAULT_ACTIVE_SHARE_SCOPE;\n const analyticsContext =\n React.useContext(AnalyticsContext) ?? DEFAULT_ANALYTICS_CONTEXT_VALUE;\n const translationContext =\n React.useContext(TranslationContext) ?? DEFAULT_TRANSLATION_CONTEXT_VALUE;\n const errorLoggingContext =\n React.useContext(ErrorLoggingContext) ??\n DEFAULT_ERROR_LOGGING_CONTEXT_VALUE;\n\n const wrappedErrorLoggingContext = React.useMemo(() => {\n const {\n logError: originalLogError,\n logMessage: originalLogMessage\n } = errorLoggingContext;\n\n /** @type {typeof logError} */\n const wrappedLogError = (exception, captureContext) => {\n withScope((scope) => {\n scope.setTags({\n 'mfe.name': containerName,\n 'mfe.request': containerRequest,\n 'mfe.remoteEntry': remoteEntry\n });\n\n originalLogError(exception, captureContext);\n });\n };\n\n /** @type {typeof logMessage} */\n const wrappedLogMessage = (exception, captureContext) => {\n withScope((scope) => {\n scope.setTags({\n 'mfe.name': containerName,\n 'mfe.request': containerRequest,\n 'mfe.remoteEntry': remoteEntry\n });\n\n originalLogMessage(exception, captureContext);\n });\n };\n\n return {\n ...errorLoggingContext,\n logError: wrappedLogError,\n logMessage: wrappedLogMessage,\n setContext,\n setTag,\n setTags,\n withScope\n };\n }, [containerName, containerRequest, remoteEntry, errorLoggingContext]);\n\n const [\n { errorBoundaryKey, FederatedComponent },\n updateMfeState\n ] = React.useState(() => ({\n errorBoundaryKey: 0,\n FederatedComponent: createFederatedComponent({\n mfeStatus: mfeStatusRef.current,\n shareScope,\n remoteEntry,\n containerName,\n containerRequest\n })\n }));\n\n React.useEffect(() => {\n if (!isMountedRef.current) {\n return;\n }\n\n updateMfeState(({ errorBoundaryKey: currentBoundaryKey }) => ({\n errorBoundaryKey: currentBoundaryKey + 1,\n FederatedComponent: createFederatedComponent({\n mfeStatus: mfeStatusRef.current,\n shareScope,\n remoteEntry,\n containerName,\n containerRequest\n })\n }));\n }, [\n shareScope,\n remoteEntry,\n isMountedRef,\n mfeStatusRef,\n containerName,\n containerRequest\n ]);\n\n React.useEffect(() => {\n isMountedRef.current = true;\n\n return () => {\n isMountedRef.current = false;\n };\n }, [isMountedRef]);\n\n return (\n