Files
frontend-app-learning/src/experiments/mm-p2p/FlyoverTrigger.jsx
Ben Warzeski 6e2294e279 MMP2P G2 Activation (2nd try) (#382)
* upgrade paragon

* mmp2p experiment code

* mmp2p courseware triggers

* mmp2p course-home triggers

* mmp2p load styles

* mmp2p - add missed locator docstrings

* mmp2p test fixes

* add lazy loading for image-bearing components

* mmp2p experiment README

* mmp2p add lazy loading for sidecard

* generalize prices for currency options

* mmp2p fix flyover mobile args

* mmp2p fix lock paywall border display

* mmp2 - add safety-rail around verifiedmode access
2021-03-11 11:13:38 -05:00

59 lines
1.3 KiB
JavaScript

/* eslint-disable no-use-before-define */
import React from 'react';
import PropTypes from 'prop-types';
import classNames from 'classnames';
import FlyoverTriggerIcon from './FlyoverTriggerIcon';
import { isMobile } from './utils';
export const FlyoverTrigger = ({ options }) => {
const { isVisible, toggle } = options.flyover;
if (!options.access.isAudit || options.state.afterUpgradeDeadline) {
return null;
}
return (!isMobile() && (
<div
className={classNames(
'mmp2p-toggle-flyover-button',
{ 'flyover-visible': isVisible },
)}
aria-hidden="true"
onClick={toggle}
>
<FlyoverTriggerIcon />
</div>
));
};
FlyoverTrigger.propTypes = {
options: PropTypes.shape({
access: PropTypes.shape({
isAudit: PropTypes.bool.isRequired,
}),
flyover: PropTypes.shape({
isVisible: PropTypes.bool.isRequired,
toggle: PropTypes.func.isRequired,
}),
state: PropTypes.shape({
afterUpgradeDeadline: PropTypes.bool.isRequired,
isEnabled: PropTypes.bool.isRequired,
}),
}),
};
FlyoverTrigger.defaultProps = {
options: {
access: { isAudit: false },
flyover: {
isVisible: false,
toggle: () => {},
},
state: {
afterUpgradeDeadline: false,
isEnabled: false,
},
},
};
export default FlyoverTrigger;