Skip to content

Commit d0f03ca

Browse files
authored
fix(modal): allow Prop getContainer to be type of string & boolean (#4494)
1 parent 9f15fe9 commit d0f03ca

File tree

3 files changed

+38
-2
lines changed

3 files changed

+38
-2
lines changed

components/modal/Modal.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ const modalProps = {
7979
wrapClassName: PropTypes.string,
8080
maskTransitionName: PropTypes.string,
8181
transitionName: PropTypes.string,
82-
getContainer: PropTypes.func,
82+
getContainer: PropTypes.any,
8383
zIndex: PropTypes.number,
8484
bodyStyle: PropTypes.style,
8585
maskStyle: PropTypes.style,
@@ -119,7 +119,7 @@ export interface ModalFuncProps {
119119
maskStyle?: CSSProperties;
120120
type?: string;
121121
keyboard?: boolean;
122-
getContainer?: getContainerFunc;
122+
getContainer?: getContainerFunc | boolean | string;
123123
autoFocusButton?: null | 'ok' | 'cancel';
124124
transitionName?: string;
125125
maskTransitionName?: string;

components/modal/__tests__/Modal.test.js

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,4 +65,17 @@ describe('Modal', () => {
6565
expect(wrapper.html()).toMatchSnapshot();
6666
});
6767
});
68+
69+
it('should work with getContainer=false', async () => {
70+
const wrapper1 = mount(Modal, {
71+
sync: false,
72+
props: {
73+
getContainer: false,
74+
visible: true,
75+
},
76+
});
77+
await asyncExpect(() => {
78+
expect(wrapper1.html()).toMatchSnapshot();
79+
});
80+
});
6881
});

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

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,3 +86,26 @@ exports[`Modal render without footer 1`] = `
8686
<!--teleport end-->
8787
</div>
8888
`;
89+
90+
exports[`Modal should work with getContainer=false 1`] = `
91+
<div class="ant-modal-root">
92+
<div class="ant-modal-mask"></div>
93+
<div tabindex="-1" class="ant-modal-wrap " role="dialog">
94+
<div role="document" style="width: 520px;" class="ant-modal">
95+
<div tabindex="0" style="width: 0px; height: 0px; overflow: hidden;" aria-hidden="true"></div>
96+
<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>
97+
<!---->
98+
<div class="ant-modal-body"></div>
99+
<div class="ant-modal-footer">
100+
<div><button class="ant-btn" type="button">
101+
<!----><span>Cancel</span>
102+
</button><button class="ant-btn ant-btn-primary" type="button">
103+
<!----><span>OK</span>
104+
</button></div>
105+
</div>
106+
</div>
107+
<div tabindex="0" style="width: 0px; height: 0px; overflow: hidden;" aria-hidden="true"></div>
108+
</div>
109+
</div>
110+
</div>
111+
`;

0 commit comments

Comments
 (0)