-
- Open
-
-
+HTMLCollection [
+
,
+
+
+
+
+
+
+
+
+
+ Some contents...
+
+
+ Some contents...
+
+
+ Some contents...
+
+
+
+
+
+
+
,
+]
`;
exports[`renders ./components/drawer/demo/config-provider.md extend context correctly 1`] = `
@@ -23,364 +111,2780 @@ exports[`renders ./components/drawer/demo/config-provider.md extend context corr
Open
-
+
+
+
-
-
+
+
+ Some contents...
+
+
+ Some contents...
+
+
+ Some contents...
+
-
+
`;
exports[`renders ./components/drawer/demo/extra.md extend context correctly 1`] = `
-
-
-
-
-
+
+
+
,
+
+
+
+
+
+
+
+
+
+ Some contents...
+
+
+ Some contents...
+
+
+ Some contents...
+
+
+
+
+
+
+
,
+]
`;
exports[`renders ./components/drawer/demo/form-in-drawer.md extend context correctly 1`] = `
-
+
+
+
+ New account
+
+ ,
+
,
+]
`;
exports[`renders ./components/drawer/demo/multi-level-drawer.md extend context correctly 1`] = `
-
+HTMLCollection [
+
,
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ This is two-level drawer
+
+
+
+
+
+
+
+
+
+
+
+
,
+]
`;
exports[`renders ./components/drawer/demo/no-mask.md extend context correctly 1`] = `
-
+HTMLCollection [
+
,
+
+
+
+
+
+
+
+
+ Some contents...
+
+
+ Some contents...
+
+
+ Some contents...
+
+
+
+
+
+
+
,
+]
`;
exports[`renders ./components/drawer/demo/placement.md extend context correctly 1`] = `
-
-
-
-
-
+
+
+
,
+
+
+
+
+
+
+
+
+
+ Some contents...
+
+
+ Some contents...
+
+
+ Some contents...
+
+
+
+
+
+
+
,
+]
`;
exports[`renders ./components/drawer/demo/render-in-current.md extend context correctly 1`] = `
@@ -415,12 +2919,12 @@ exports[`renders ./components/drawer/demo/render-in-current.md extend context co
tabindex="0"
/>
+HTMLCollection [
-
-
+
+
+
+
+
+
,
-
+
+
-
- Open Large Size (736px)
-
-
-
-
+
+
+
+
+
+ Some contents...
+
+
+ Some contents...
+
+
+ Some contents...
+
+
+
+
+
+
+
,
+]
`;
exports[`renders ./components/drawer/demo/user-profile.md extend context correctly 1`] = `
-
+
,
+
+
+
+
+
+
+
+
+ User Profile
+
+
+ Personal
+
+
+
+
+
+ Full Name
+ :
+
+ Lily
+
+
+
+
+
+ Account
+ :
+
+ AntDesign@example.com
+
+
+
+
+
+
+
+ City
+ :
+
+ HangZhou
+
+
+
+
+
+ Country
+ :
+
+ China🇨🇳
+
+
+
+
+
+
+
+ Birthday
+ :
+
+ February 2,1900
+
+
+
+
+
+
+
+
+ Message
+ :
+
+ Make things as simple as possible but no simpler.
+
+
+
+
+
+ Company
+
+
+
+
+
+ Position
+ :
+
+ Programmer
+
+
+
+
+
+ Responsibilities
+ :
+
+ Coding
+
+
+
+
+
+
+
+ Department
+ :
+
+ XTech
+
+
+
+
+
+
+
+
+ Skills
+ :
+
+ C / C + +, data structures, software engineering, operating systems, computer networks, databases, compiler theory, computer architecture, Microcomputer Principle and Interface Technology, Computer English, Java, ASP, etc.
+
+
+
+
+
+ Contacts
+
+
+
+
+
+ Email
+ :
+
+ AntDesign@example.com
+
+
+
+
+
+ Phone Number
+ :
+
+ +86 181 0000 0000
+
+
+
+
+
+
+
+
+
+
,
+]
`;
diff --git a/components/drawer/__tests__/__snapshots__/demo.test.js.snap b/components/drawer/__tests__/__snapshots__/demo.test.js.snap
index 4f380779a7..0da8df00b8 100644
--- a/components/drawer/__tests__/__snapshots__/demo.test.js.snap
+++ b/components/drawer/__tests__/__snapshots__/demo.test.js.snap
@@ -320,10 +320,6 @@ exports[`renders ./components/drawer/demo/render-in-current.md correctly 1`] = `
style="width:0;height:0;overflow:hidden;outline:none;position:absolute"
tabindex="0"
/>
-
{
const newProps = {
...props,
open: true,
+ getContainer: false,
};
return
;
};
diff --git a/components/drawer/demo/no-mask.md b/components/drawer/demo/no-mask.md
index a4eba82ac3..d623e57ac4 100644
--- a/components/drawer/demo/no-mask.md
+++ b/components/drawer/demo/no-mask.md
@@ -40,6 +40,13 @@ const App: React.FC = () => {
mask={false}
onClose={onClose}
visible={visible}
+ contentWrapperStyle={{
+ width: 333,
+ background: 'red',
+ borderRadius: 20,
+ boxShadow: '-5px 0 5px green',
+ overflow: 'hidden',
+ }}
>
Some contents...
Some contents...
diff --git a/components/drawer/style/drawer.less b/components/drawer/style/drawer.less
index 37396bf0a4..942fa7a6da 100644
--- a/components/drawer/style/drawer.less
+++ b/components/drawer/style/drawer.less
@@ -6,9 +6,12 @@
.@{drawer-prefix-cls} {
position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
z-index: @zindex-modal;
pointer-events: none;
- inset: 0;
&-inline {
position: absolute;
@@ -17,49 +20,20 @@
// ====================== Mask ======================
&-mask {
position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
z-index: @zindex-modal;
background: @modal-mask-bg;
pointer-events: auto;
- inset: 0;
}
// ==================== Content =====================
&-content-wrapper {
position: absolute;
z-index: @zindex-modal;
- transition: transform @animation-duration-slow;
-
- // Placement
- .@{drawer-prefix-cls}-left & {
- top: 0;
- bottom: 0;
- left: 0;
- }
-
- .@{drawer-prefix-cls}-right & {
- top: 0;
- right: 0;
- bottom: 0;
- }
-
- .@{drawer-prefix-cls}-top & {
- top: 0;
- right: 0;
- left: 0;
- }
-
- .@{drawer-prefix-cls}-bottom & {
- right: 0;
- bottom: 0;
- left: 0;
- }
- }
-
- &-content {
- width: 100%;
- height: 100%;
- overflow: auto;
- pointer-events: auto;
+ transition: all @animation-duration-slow;
&-hidden {
display: none;
@@ -67,32 +41,48 @@
// Placement
.@{drawer-prefix-cls}-left & {
+ top: 0;
+ bottom: 0;
+ left: 0;
box-shadow: @shadow-1-right;
}
.@{drawer-prefix-cls}-right & {
+ top: 0;
+ right: 0;
+ bottom: 0;
box-shadow: @shadow-1-left;
}
.@{drawer-prefix-cls}-top & {
+ top: 0;
+ right: 0;
+ left: 0;
box-shadow: @shadow-1-down;
}
.@{drawer-prefix-cls}-bottom & {
+ right: 0;
+ bottom: 0;
+ left: 0;
box-shadow: @shadow-1-up;
}
}
- // @drawer-footer-padding-vertical: @modal-footer-padding-vertical;
- // @drawer-footer-padding-horizontal: @modal-footer-padding-horizontal;
- // @drawer-header-close-size: 56px;
+ &-content {
+ width: 100%;
+ height: 100%;
+ overflow: auto;
+ background: @drawer-bg;
+ pointer-events: auto;
+ }
+
// ===================== Panel ======================
&-wrapper-body {
display: flex;
flex-direction: column;
width: 100%;
height: 100%;
- background: @drawer-bg;
}
// Header
@@ -168,247 +158,3 @@
border-top: @border-width-base @border-style-base @border-color-split;
}
}
-
-// .@{drawer-prefix-cls} {
-// @drawer-header-close-padding: ceil(((@drawer-header-close-size - @font-size-lg) / 2));
-
-// position: fixed;
-// z-index: @zindex-modal;
-// width: 0%;
-// height: 100%;
-// transition: width 0s ease @animation-duration-slow, height 0s ease @animation-duration-slow;
-
-// &-content-wrapper {
-// position: absolute;
-// width: 100%;
-// height: 100%;
-// transition: transform @animation-duration-slow @drawer-animation-ease,
-// box-shadow @animation-duration-slow @drawer-animation-ease;
-// }
-
-// .@{drawer-prefix-cls}-content {
-// width: 100%;
-// height: 100%;
-// }
-
-// &-left,
-// &-right {
-// top: 0;
-// width: 0%;
-// height: 100%;
-// .@{drawer-prefix-cls}-content-wrapper {
-// height: 100%;
-// }
-// &.@{drawer-prefix-cls}-open {
-// width: 100%;
-// transition: transform @animation-duration-slow @drawer-animation-ease;
-// }
-// }
-
-// &-left {
-// left: 0;
-
-// .@{drawer-prefix-cls} {
-// &-content-wrapper {
-// left: 0;
-// }
-// }
-
-// &.@{drawer-prefix-cls}-open {
-// .@{drawer-prefix-cls}-content-wrapper {
-// box-shadow: @shadow-1-right;
-// }
-// }
-// }
-
-// &-right {
-// right: 0;
-
-// .@{drawer-prefix-cls} {
-// &-content-wrapper {
-// right: 0;
-// }
-// }
-// &.@{drawer-prefix-cls}-open {
-// .@{drawer-prefix-cls}-content-wrapper {
-// box-shadow: @shadow-1-left;
-// }
-// // https://github.com/ant-design/ant-design/issues/18607, Avoid edge alignment bug.
-// &.no-mask {
-// right: 1px;
-// transform: translateX(1px);
-// }
-// }
-// }
-
-// &-top,
-// &-bottom {
-// left: 0;
-// width: 100%;
-// height: 0%;
-
-// .@{drawer-prefix-cls}-content-wrapper {
-// width: 100%;
-// }
-// &.@{drawer-prefix-cls}-open {
-// height: 100%;
-// transition: transform @animation-duration-slow @drawer-animation-ease;
-// }
-// }
-
-// &-top {
-// top: 0;
-
-// &.@{drawer-prefix-cls}-open {
-// .@{drawer-prefix-cls}-content-wrapper {
-// box-shadow: @shadow-1-down;
-// }
-// }
-// }
-
-// &-bottom {
-// bottom: 0;
-
-// .@{drawer-prefix-cls} {
-// &-content-wrapper {
-// bottom: 0;
-// }
-// }
-// &.@{drawer-prefix-cls}-open {
-// .@{drawer-prefix-cls}-content-wrapper {
-// box-shadow: @shadow-1-up;
-// }
-
-// &.no-mask {
-// bottom: 1px;
-// transform: translateY(1px);
-// }
-// }
-// }
-
-// &.@{drawer-prefix-cls}-open .@{drawer-prefix-cls}-mask {
-// height: 100%;
-// opacity: 1;
-// transition: none;
-// animation: antdDrawerFadeIn @animation-duration-slow @drawer-animation-ease;
-// pointer-events: auto;
-// }
-
-// &-title {
-// flex: 1;
-// margin: 0;
-// color: @heading-color;
-// font-weight: 500;
-// font-size: @drawer-title-font-size;
-// line-height: @drawer-title-line-height;
-// }
-
-// &-content {
-// position: relative;
-// z-index: 1;
-// overflow: auto;
-// background-color: @drawer-bg;
-// background-clip: padding-box;
-// border: 0;
-// }
-
-// &-close {
-// display: inline-block;
-// margin-right: 12px;
-// color: @modal-close-color;
-// font-weight: 700;
-// font-size: @font-size-lg;
-// font-style: normal;
-// line-height: 1;
-// text-align: center;
-// text-transform: none;
-// text-decoration: none;
-// background: transparent;
-// border: 0;
-// outline: 0;
-// cursor: pointer;
-// transition: color @animation-duration-slow;
-// text-rendering: auto;
-
-// &:focus,
-// &:hover {
-// color: @icon-color-hover;
-// text-decoration: none;
-// }
-// }
-
-// &-header {
-// position: relative;
-// display: flex;
-// align-items: center;
-// justify-content: space-between;
-// padding: @drawer-header-padding;
-// color: @text-color;
-// background: @drawer-bg;
-// border-bottom: @border-width-base @border-style-base @border-color-split;
-// border-radius: @border-radius-base @border-radius-base 0 0;
-
-// &-title {
-// display: flex;
-// flex: 1;
-// align-items: center;
-// justify-content: space-between;
-// }
-
-// &-close-only {
-// padding-bottom: 0;
-// border: none;
-// }
-// }
-
-// &-wrapper-body {
-// display: flex;
-// flex-flow: column nowrap;
-// width: 100%;
-// height: 100%;
-// }
-
-// &-body {
-// flex-grow: 1;
-// padding: @drawer-body-padding;
-// overflow: auto;
-// font-size: @font-size-base;
-// line-height: @line-height-base;
-// word-wrap: break-word;
-// }
-
-// &-footer {
-// flex-shrink: 0;
-// padding: @drawer-footer-padding-vertical @drawer-footer-padding-horizontal;
-// border-top: @border-width-base @border-style-base @border-color-split;
-// }
-
-// &-mask {
-// position: absolute;
-// top: 0;
-// left: 0;
-// width: 100%;
-// height: 0;
-// background-color: @modal-mask-bg;
-// opacity: 0;
-// transition: opacity @animation-duration-slow linear, height 0s ease @animation-duration-slow;
-// pointer-events: none;
-// }
-
-// // =================== Hook Components ===================
-// .@{picker-prefix-cls} {
-// &-clear {
-// background: @popover-background;
-// }
-// }
-// }
-
-// @keyframes antdDrawerFadeIn {
-// 0% {
-// opacity: 0;
-// }
-
-// 100% {
-// opacity: 1;
-// }
-// }
diff --git a/components/drawer/style/motion.less b/components/drawer/style/motion.less
index c5c6b4413f..fc392b484a 100644
--- a/components/drawer/style/motion.less
+++ b/components/drawer/style/motion.less
@@ -6,6 +6,10 @@
&-enter,
&-appear,
&-leave {
+ &-start {
+ transition: none;
+ }
+
&-active {
transition: all @animation-duration-slow;
}
diff --git a/package.json b/package.json
index dd56f87958..97599cefcd 100644
--- a/package.json
+++ b/package.json
@@ -128,7 +128,7 @@
"rc-checkbox": "~2.3.0",
"rc-collapse": "~3.3.0",
"rc-dialog": "~8.9.0",
- "rc-drawer": "~5.0.0-alpha.8",
+ "rc-drawer": "~5.1.0-alpha.1",
"rc-dropdown": "~4.0.0",
"rc-field-form": "~1.27.0",
"rc-image": "~5.7.0",