Browse Source

fix(modal): allow Prop `getContainer` to be type of string & boolean (#4494)

pull/4520/head
Carter Li 3 years ago committed by GitHub
parent
commit
d0f03cae2a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      components/modal/Modal.tsx
  2. 13
      components/modal/__tests__/Modal.test.js
  3. 23
      components/modal/__tests__/__snapshots__/Modal.test.js.snap

4
components/modal/Modal.tsx

@ -79,7 +79,7 @@ const modalProps = {
wrapClassName: PropTypes.string,
maskTransitionName: PropTypes.string,
transitionName: PropTypes.string,
getContainer: PropTypes.func,
getContainer: PropTypes.any,
zIndex: PropTypes.number,
bodyStyle: PropTypes.style,
maskStyle: PropTypes.style,
@ -119,7 +119,7 @@ export interface ModalFuncProps {
maskStyle?: CSSProperties;
type?: string;
keyboard?: boolean;
getContainer?: getContainerFunc;
getContainer?: getContainerFunc | boolean | string;
autoFocusButton?: null | 'ok' | 'cancel';
transitionName?: string;
maskTransitionName?: string;

13
components/modal/__tests__/Modal.test.js

@ -65,4 +65,17 @@ describe('Modal', () => {
expect(wrapper.html()).toMatchSnapshot();
});
});
it('should work with getContainer=false', async () => {
const wrapper1 = mount(Modal, {
sync: false,
props: {
getContainer: false,
visible: true,
},
});
await asyncExpect(() => {
expect(wrapper1.html()).toMatchSnapshot();
});
});
});

23
components/modal/__tests__/__snapshots__/Modal.test.js.snap

@ -86,3 +86,26 @@ exports[`Modal render without footer 1`] = `
<!--teleport end-->
</div>
`;
exports[`Modal should work with getContainer=false 1`] = `
<div class="ant-modal-root">
<div class="ant-modal-mask"></div>
<div tabindex="-1" class="ant-modal-wrap " role="dialog">
<div role="document" style="width: 520px;" class="ant-modal">
<div tabindex="0" style="width: 0px; height: 0px; overflow: hidden;" aria-hidden="true"></div>
<div class="ant-modal-content"><button type="button" aria-label="Close" class="ant-modal-close"><span class="ant-modal-close-x"><span role="img" aria-label="close" class="anticon anticon-close ant-modal-close-icon"><svg focusable="false" class="" data-icon="close" width="1em" height="1em" fill="currentColor" aria-hidden="true" viewBox="64 64 896 896"><path d="M563.8 512l262.5-312.9c4.4-5.2.7-13.1-6.1-13.1h-79.8c-4.7 0-9.2 2.1-12.3 5.7L511.6 449.8 295.1 191.7c-3-3.6-7.5-5.7-12.3-5.7H203c-6.8 0-10.5 7.9-6.1 13.1L459.4 512 196.9 824.9A7.95 7.95 0 00203 838h79.8c4.7 0 9.2-2.1 12.3-5.7l216.5-258.1 216.5 258.1c3 3.6 7.5 5.7 12.3 5.7h79.8c6.8 0 10.5-7.9 6.1-13.1L563.8 512z"></path></svg></span></span></button>
<!---->
<div class="ant-modal-body"></div>
<div class="ant-modal-footer">
<div><button class="ant-btn" type="button">
<!----><span>Cancel</span>
</button><button class="ant-btn ant-btn-primary" type="button">
<!----><span>OK</span>
</button></div>
</div>
</div>
<div tabindex="0" style="width: 0px; height: 0px; overflow: hidden;" aria-hidden="true"></div>
</div>
</div>
</div>
`;

Loading…
Cancel
Save