import React, { useState, useEffect } from 'react'; import classNames from 'classnames'; import PropTypes from 'prop-types'; import { getAuthenticatedUser } from '@edx/frontend-platform/auth'; import MediaQuery from 'react-responsive'; import { breakpoints } from '@edx/paragon'; import CookiePolicyBanner from '@edx/frontend-component-cookie-policy-banner'; import { getLocale } from '@edx/frontend-platform/i18n'; import LargeLayout from './LargeLayout'; import MediumLayout from './MediumLayout'; import SmallLayout from './SmallLayout'; import AuthExtraLargeLayout from './AuthExtraLargeLayout'; import AuthMediumLayout from './AuthMediumLayout'; import AuthSmallLayout from './AuthSmallLayout'; import DiscountExperimentBanner from './DiscountBanner'; const BaseComponent = ({ children, isRegistrationPage, showWelcomeBanner }) => { const authenticatedUser = showWelcomeBanner ? getAuthenticatedUser() : null; const [optimizelyExperimentName, setOptimizelyExperimentName] = useState(''); useEffect(() => { const { experimentName } = window; if (experimentName) { setOptimizelyExperimentName(experimentName); } }); return ( <> {isRegistrationPage && optimizelyExperimentName === 'variation2' ? : null}
{authenticatedUser ? : ( )}
{authenticatedUser ? : ( )}
{authenticatedUser ? : ( )}
{authenticatedUser ? : ( )} {authenticatedUser ? : ( )} {authenticatedUser ? : ( )}
{children}
); }; BaseComponent.defaultProps = { isRegistrationPage: false, showWelcomeBanner: false, }; BaseComponent.propTypes = { children: PropTypes.node.isRequired, isRegistrationPage: PropTypes.bool, showWelcomeBanner: PropTypes.bool, }; export default BaseComponent;