Skip to content

Commit

Permalink
Merge pull request #3635 from parasharrajat/context-menu
Browse files Browse the repository at this point in the history
fix menu placement is broken on mobile
  • Loading branch information
roryabraham committed Jun 18, 2021
2 parents 814db41 + d3a1936 commit fb0260a
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 0 deletions.
18 changes: 18 additions & 0 deletions src/components/Modal/index.ios.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import React from 'react';
import withWindowDimensions from '../withWindowDimensions';
import BaseModal from './BaseModal';
import {propTypes, defaultProps} from './ModalPropTypes';

const Modal = props => (
<BaseModal
// eslint-disable-next-line react/jsx-props-no-spreading
{...props}
>
{props.children}
</BaseModal>
);

Modal.propTypes = propTypes;
Modal.defaultProps = defaultProps;
Modal.displayName = 'Modal';
export default withWindowDimensions(Modal);
1 change: 1 addition & 0 deletions src/components/Popover/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ const Popover = (props) => {
popoverAnchorPosition={props.isSmallScreenWidth ? undefined : props.anchorPosition}
// eslint-disable-next-line react/jsx-props-no-spreading
{...props}
fullscreen={props.isSmallScreenWidth ? true : props.fullscreen}
animationIn={props.isSmallScreenWidth ? undefined : props.animationIn}
animationOut={props.isSmallScreenWidth ? undefined : props.animationOut}
/>
Expand Down
32 changes: 32 additions & 0 deletions src/components/Popover/index.native.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import _ from 'underscore';
import React from 'react';
import {propTypes as popoverPropTypes, defaultProps} from './PopoverPropTypes';
import CONST from '../../CONST';
import Modal from '../Modal';
import {windowDimensionsPropTypes} from '../withWindowDimensions';

const propTypes = {
...(_.omit(popoverPropTypes, _.keys(windowDimensionsPropTypes))),
};

/*
* This is a convenience wrapper around the Modal component for a responsive Popover.
* On small screen widths, it uses BottomDocked modal type, and a Popover type on wide screen widths.
*/
const Popover = props => (
<Modal
type={CONST.MODAL.MODAL_TYPE.BOTTOM_DOCKED}
// eslint-disable-next-line react/jsx-props-no-spreading
{...props}

// Mobile will always has fullscreen menu
// eslint-disable-next-line react/jsx-props-no-multi-spaces
fullscreen
/>
);

Popover.propTypes = propTypes;
Popover.defaultProps = defaultProps;
Popover.displayName = 'Popover';

export default Popover;

0 comments on commit fb0260a

Please sign in to comment.