瀏覽代碼

chore:backup

代强 3 年之前
父節點
當前提交
c8ea3199ba

+ 13 - 13
packages/semi-foundation/modal/animation.scss

@@ -1,23 +1,23 @@
-$animation_duration-modal_show: 0.12s; // 弹窗打开-动画持续时间
-$animation_function-modal_show: cubic-bezier(0, 0, 0.26, 1.38); // 弹窗打开-过渡曲线
-$animation_delay-modal_show: 0ms; // 弹窗打开-延迟时间
+$animation_duration-modal-show: 0.12s; // 弹窗打开-动画持续时间
+$animation_function-modal-show: cubic-bezier(0, 0, 0.26, 1.38); // 弹窗打开-过渡曲线
+$animation_delay-modal-show: 0ms; // 弹窗打开-延迟时间
 
-$animation_duration-modal_hide: 0.09s; // 弹窗关闭-动画持续时间
-$animation_function-modal_hide: cubic-bezier(0.25, 0.46, 0.45, 0.94); // 弹窗关闭-过渡曲线
-$animation_delay-modal_hide: 0ms; // 弹窗关闭-延迟时间
+$animation_duration-modal-hide: 0.09s; // 弹窗关闭-动画持续时间
+$animation_function-modal-hide: cubic-bezier(0.25, 0.46, 0.45, 0.94); // 弹窗关闭-过渡曲线
+$animation_delay-modal-hide: 0ms; // 弹窗关闭-延迟时间
 
 
-$animation_duration-modal_mask_show: 0.09s; // 弹窗打开时-蒙层颜色-动画持续时间
-$animation_function-modal_mask_show: cubic-bezier(0, 0, 0.26, 1.38); // 弹窗打开时-蒙层颜色-过渡曲线
-$animation_delay-modal_mask_show: 0ms; // 弹窗打开时-蒙层颜色-延迟时间
+$animation_duration-modal_mask-show: 0.09s; // 弹窗打开时-蒙层颜色-动画持续时间
+$animation_function-modal_mask-show: cubic-bezier(0, 0, 0.26, 1.38); // 弹窗打开时-蒙层颜色-过渡曲线
+$animation_delay-modal_mask-show: 0ms; // 弹窗打开时-蒙层颜色-延迟时间
 
-$animation_duration-modal_mask_hide: 0.09s; // 弹窗关闭时-蒙层颜色-动画持续时间
-$animation_function-modal_mask_hide: cubic-bezier(0.25, 0.46, 0.45, 0.94); // 弹窗关闭时-蒙层颜色-过渡曲线
-$animation_delay-modal_mask_hide: 0ms; // 弹窗关闭时-蒙层颜色-延迟时间
+$animation_duration-modal_mask-hide: 0.09s; // 弹窗关闭时-蒙层颜色-动画持续时间
+$animation_function-modal_mask-hide: cubic-bezier(0.25, 0.46, 0.45, 0.94); // 弹窗关闭时-蒙层颜色-过渡曲线
+$animation_delay-modal_mask-hide: 0ms; // 弹窗关闭时-蒙层颜色-延迟时间
 
 
 $animation_transform_scale-modal_content-open: 0.7; // 弹窗打开时-缩放比例
-$animation_opacity-modal_content_open : 0; // 弹窗打开时-起始透明度
+$animation_opacity-modal_content-open : 0; // 弹窗打开时-起始透明度
 $animation_transform_scale-modal_content-close: 0.7; // 弹窗关闭时-缩放比例
 $animation_opacity-modal_content-close: 0; // 弹窗关闭时-起始透明度
 

+ 4 - 4
packages/semi-foundation/modal/modal.scss

@@ -208,19 +208,19 @@ $module: #{$prefix}-modal;
 
 
 .#{$module}-content-animate-show {
-    animation: $animation_duration-modal_show #{$module}-content-keyframe-show $animation_function-modal_show $animation_delay-modal_show forwards;
+    animation: $animation_duration-modal-show #{$module}-content-keyframe-show $animation_function-modal-show $animation_delay-modal-show forwards;
 }
 
 .#{$module}-content-animate-hide {
-    animation: $animation_duration-modal_hide #{$module}-content-keyframe-hide $animation_function-modal_hide $animation_delay-modal_hide forwards;
+    animation: $animation_duration-modal-hide #{$module}-content-keyframe-hide $animation_function-modal-hide $animation_delay-modal-hide forwards;
 }
 
 .#{$module}-mask-animate-show {
-    animation: $animation_duration-modal_mask_show #{$module}-mask-keyframe-show $animation_function-modal_mask_show $animation_delay-modal_mask_show forwards;
+    animation: $animation_duration-modal_mask-show #{$module}-mask-keyframe-show $animation_function-modal_mask-show $animation_delay-modal_mask-show forwards;
 }
 
 .#{$module}-mask-animate-hide {
-    animation: $animation_duration-modal_mask_hide #{$module}-mask-keyframe-hide $animation_function-modal_mask_hide $animation_delay-modal_mask_hide forwards;
+    animation: $animation_duration-modal_mask-hide #{$module}-mask-keyframe-hide $animation_function-modal_mask-hide $animation_delay-modal_mask-hide forwards;
 }
 
 

+ 12 - 12
packages/semi-foundation/sideSheet/animation.scss

@@ -1,15 +1,15 @@
-$animation_duration-sideSheet_mask_show: 0.18s; // 侧边栏打开时-蒙层颜色-动画持续时间
-$animation_function-sideSheet_mask_show: cubic-bezier(0.25, 0.46, 0.45, 0.94); // 侧边栏打开时-蒙层颜色-过渡曲线
-$animation_delay-sideSheet_mask_show: 0ms; // 侧边栏打开时-蒙层颜色-延迟时间
+$animation_duration-sideSheet_mask-show: 0.18s; // 侧边栏打开时-蒙层颜色-动画持续时间
+$animation_function-sideSheet_mask-show: cubic-bezier(0.25, 0.46, 0.45, 0.94); // 侧边栏打开时-蒙层颜色-过渡曲线
+$animation_delay-sideSheet_mask-show: 0ms; // 侧边栏打开时-蒙层颜色-延迟时间
 
-$animation_duration-sideSheet_mask_hide: 0.18s; // 侧边栏关闭时-蒙层颜色-动画持续时间
-$animation_function-sideSheet_mask_hide: cubic-bezier(0.25, 0.46, 0.45, 0.94); // 侧边栏关闭时-蒙层颜色-过渡曲线
-$animation_delay-sideSheet_mask_hide: 0ms; // 侧边栏关闭时-蒙层颜色-延迟时间
+$animation_duration-sideSheet_mask-hide: 0.18s; // 侧边栏关闭时-蒙层颜色-动画持续时间
+$animation_function-sideSheet_mask-hide: cubic-bezier(0.25, 0.46, 0.45, 0.94); // 侧边栏关闭时-蒙层颜色-过渡曲线
+$animation_delay-sideSheet_mask-hide: 0ms; // 侧边栏关闭时-蒙层颜色-延迟时间
 
-$animation_duration-sideSheet_inner_show: 0.18s; // 侧边栏打开-动画持续时间
-$animation_function-sideSheet_inner_show: cubic-bezier(0.25, 0.46, 0.45, 0.94); // 侧边栏打开-过渡曲线
-$animation_delay-sideSheet_inner_show: 0ms; // 侧边栏打开-延迟时间
+$animation_duration-sideSheet_inner-show: 0.18s; // 侧边栏打开-动画持续时间
+$animation_function-sideSheet_inner-show: cubic-bezier(0.25, 0.46, 0.45, 0.94); // 侧边栏打开-过渡曲线
+$animation_delay-sideSheet_inner-show: 0ms; // 侧边栏打开-延迟时间
 
-$animation_duration-sideSheet_inner_hide: 0.18s; // 侧边栏关闭-动画持续时间
-$animation_function-sideSheet_inner_hide: cubic-bezier(0.25, 0.46, 0.45, 0.94); // 侧边栏关闭-过渡曲线
-$animation_delay-sideSheet_inner_hide: 0ms; // 侧边栏关闭-延迟时间
+$animation_duration-sideSheet_inner-hide: 0.18s; // 侧边栏关闭-动画持续时间
+$animation_function-sideSheet_inner-hide: cubic-bezier(0.25, 0.46, 0.45, 0.94); // 侧边栏关闭-过渡曲线
+$animation_delay-sideSheet_inner-hide: 0ms; // 侧边栏关闭-延迟时间

+ 10 - 12
packages/semi-foundation/sideSheet/sideSheet.scss

@@ -223,47 +223,45 @@ $module: #{$prefix}-sidesheet;
 
 
     &-animation-content_show_top{
-        animation: #{$module}-slideShow_top $animation_duration-sideSheet_inner_show $animation_function-sideSheet_inner_show $animation_delay-sideSheet_inner_show;
+        animation: #{$module}-slideShow_top $animation_duration-sideSheet_inner-show $animation_function-sideSheet_inner-show $animation_delay-sideSheet_inner-show;
     }
 
     &-animation-content_hide_top{
-        animation: #{$module}-slideHide_top $animation_duration-sideSheet_inner_hide $animation_function-sideSheet_inner_hide $animation_delay-sideSheet_inner_hide;
+        animation: #{$module}-slideHide_top $animation_duration-sideSheet_inner-hide $animation_function-sideSheet_inner-hide $animation_delay-sideSheet_inner-hide;
     }
 
     &-animation-content_show_bottom{
-        animation: #{$module}-slideShow_bottom $animation_duration-sideSheet_inner_show $animation_function-sideSheet_inner_show $animation_delay-sideSheet_inner_show;
+        animation: #{$module}-slideShow_bottom $animation_duration-sideSheet_inner-show $animation_function-sideSheet_inner-show $animation_delay-sideSheet_inner-show;
     }
 
     &-animation-content_hide_bottom{
-        animation: #{$module}-slideHide_bottom $animation_duration-sideSheet_inner_hide $animation_function-sideSheet_inner_hide $animation_delay-sideSheet_inner_hide;
+        animation: #{$module}-slideHide_bottom $animation_duration-sideSheet_inner-hide $animation_function-sideSheet_inner-hide $animation_delay-sideSheet_inner-hide;
     }
 
     &-animation-content_show_left{
-        animation: #{$module}-slideShow_left $animation_duration-sideSheet_inner_show $animation_function-sideSheet_inner_show $animation_delay-sideSheet_inner_show;
+        animation: #{$module}-slideShow_left $animation_duration-sideSheet_inner-show $animation_function-sideSheet_inner-show $animation_delay-sideSheet_inner-show;
     }
 
     &-animation-content_hide_left{
-        animation: #{$module}-slideHide_left $animation_duration-sideSheet_inner_hide $animation_function-sideSheet_inner_hide $animation_delay-sideSheet_inner_hide;
+        animation: #{$module}-slideHide_left $animation_duration-sideSheet_inner-hide $animation_function-sideSheet_inner-hide $animation_delay-sideSheet_inner-hide;
     }
 
     &-animation-content_show_right{
-        animation: #{$module}-slideShow_right $animation_duration-sideSheet_inner_show $animation_function-sideSheet_inner_show $animation_delay-sideSheet_inner_show;
+        animation: #{$module}-slideShow_right $animation_duration-sideSheet_inner-show $animation_function-sideSheet_inner-show $animation_delay-sideSheet_inner-show;
     }
 
     &-animation-content_hide_right{
-        animation: #{$module}-slideHide_right $animation_duration-sideSheet_inner_hide $animation_function-sideSheet_inner_hide $animation_delay-sideSheet_inner_hide;
+        animation: #{$module}-slideHide_right $animation_duration-sideSheet_inner-hide $animation_function-sideSheet_inner-hide $animation_delay-sideSheet_inner-hide;
     }
 
     &-animation-mask_show{
-        animation: #{$module}-opacityShow $animation_duration-sideSheet_mask_show $animation_function-sideSheet_mask_show $animation_delay-sideSheet_mask_show;
+        animation: #{$module}-opacityShow $animation_duration-sideSheet_mask-show $animation_function-sideSheet_mask-show $animation_delay-sideSheet_mask-show;
     }
 
     &-animation-mask_hide{
-        animation: #{$module}-opacityHide $animation_duration-sideSheet_mask_hide $animation_function-sideSheet_mask_hide $animation_delay-sideSheet_mask_hide;
+        animation: #{$module}-opacityHide $animation_duration-sideSheet_mask-hide $animation_function-sideSheet_mask-hide $animation_delay-sideSheet_mask-hide;
     }
 
-
-
 }
 
 .#{$module}-fixed {

+ 6 - 7
packages/semi-ui/_cssAnimation/index.tsx

@@ -44,12 +44,6 @@ class CSSAnimation extends React.Component<AnimationProps, AnimationState> {
         };
     }
 
-    componentDidMount(): void {
-        if(!this.props.motion){
-            this.props.onAnimationStart?.();
-            this.props.onAnimationEnd?.();
-        }
-    }
 
     componentDidUpdate(prevProps: Readonly<AnimationProps>, prevState: Readonly<AnimationState>, snapshot?: any) {
         const changedKeys = Object.keys(this.props).filter(key => !isEqual(this.props[key], prevProps[key]));
@@ -59,7 +53,12 @@ class CSSAnimation extends React.Component<AnimationProps, AnimationState> {
             this.setState({
                 currentClassName: this.props.startClassName,
                 extraStyle: {}
-            }, this.props.onAnimationStart ?? noop);
+            }, ()=>{
+                this.props.onAnimationStart?.();
+                if(!this.props.motion){
+                    this.props.onAnimationEnd?.();
+                }
+            });
         }
     
 

+ 3 - 5
packages/semi-ui/modal/Modal.tsx

@@ -382,17 +382,15 @@ class Modal extends BaseComponent<ModalReactProps, ModalState> {
         const classList = cls(className, {
             [`${cssClasses.DIALOG}-displayNone`]: keepDOM && this.state.hidden,
         });
-        const maskClassName = motion ? cls({
-            [`${cssClasses.DIALOG}-mask-animate-hide`]: !visible,
-            [`${cssClasses.DIALOG}-mask-animate-show`]: visible
-        }) : null;
 
         if (this.state.shouldRender){
             this._haveRendered = true;
         }
         return (
             <Portal style={wrapperStyle} getPopupContainer={getPopupContainer}>
-                <CSSAnimation animationState={visible?'enter':'leave'}
+                <CSSAnimation
+                    motion={this.props.motion}
+                    animationState={visible?'enter':'leave'}
                     startClassName={visible?`${cssClasses.DIALOG}-content-animate-show`:`${cssClasses.DIALOG}-content-animate-hide`}
                     onAnimationEnd={()=>{
                         this.updateState();

+ 42 - 56
packages/semi-ui/sideSheet/index.tsx

@@ -1,13 +1,13 @@
 /* eslint-disable no-nested-ternary */
-import React, { CSSProperties } from 'react';
+import React, {CSSProperties} from 'react';
 import BaseComponent from '../_base/baseComponent';
 import PropTypes from 'prop-types';
 import Portal from '../_portal';
 import cls from 'classnames';
-import ConfigContext, { ContextValue } from '../configProvider/context';
-import { cssClasses, strings } from '@douyinfe/semi-foundation/sideSheet/constants';
+import ConfigContext, {ContextValue} from '../configProvider/context';
+import {cssClasses, strings} from '@douyinfe/semi-foundation/sideSheet/constants';
 import SideSheetContent from './SideSheetContent';
-import { noop } from 'lodash';
+import {noop} from 'lodash';
 import SideSheetFoundation, {
     SideSheetAdapter,
     SideSheetProps,
@@ -15,13 +15,13 @@ import SideSheetFoundation, {
 } from '@douyinfe/semi-foundation/sideSheet/sideSheetFoundation';
 import '@douyinfe/semi-foundation/sideSheet/sideSheet.scss';
 import CSSAnimation from "../_cssAnimation";
-import { executeWhenCallTimesEnough } from "@douyinfe/semi-ui/_utils";
+import {executeWhenCallTimesEnough} from "@douyinfe/semi-ui/_utils";
 
 const prefixCls = cssClasses.PREFIX;
 const defaultWidthList = strings.WIDTH;
 const defaultHeight = strings.HEIGHT;
 
-export { SideSheetContentProps } from './SideSheetContent';
+export {SideSheetContentProps} from './SideSheetContent';
 
 export interface SideSheetReactProps extends SideSheetProps {
     bodyStyle?: CSSProperties;
@@ -87,7 +87,7 @@ export default class SideSheet extends BaseComponent<SideSheetReactProps, SideSh
 
     constructor(props: SideSheetReactProps) {
         super(props);
-        this.state = { hidden: !this.props.visible, shouldRender: this.props.visible };
+        this.state = {hidden: !this.props.visible, shouldRender: this.props.visible};
         this.foundation = new SideSheetFoundation(this.adapter);
     }
 
@@ -97,13 +97,13 @@ export default class SideSheet extends BaseComponent<SideSheetReactProps, SideSh
         return {
             ...super.adapter,
             disabledBodyScroll: () => {
-                const { getPopupContainer } = this.props;
+                const {getPopupContainer} = this.props;
                 if (!getPopupContainer && document) {
                     document.body.style.overflow = 'hidden';
                 }
             },
             enabledBodyScroll: () => {
-                const { getPopupContainer } = this.props;
+                const {getPopupContainer} = this.props;
                 if (!getPopupContainer && document) {
                     document.body.style.overflow = '';
                 }
@@ -126,12 +126,12 @@ export default class SideSheet extends BaseComponent<SideSheetReactProps, SideSh
             },
             toggleHidden: (hidden: boolean) => {
                 if (hidden !== this.state.hidden) {
-                    this.setState({ hidden });
+                    this.setState({hidden});
                 }
             },
             setShouldRender: (shouldRender: boolean) => {
                 if (shouldRender !== this.state.shouldRender) {
-                    this.setState({ shouldRender });
+                    this.setState({shouldRender});
                 }
             }
         };
@@ -172,14 +172,10 @@ export default class SideSheet extends BaseComponent<SideSheetReactProps, SideSh
             this.foundation.setShouldRender(true);
         }
 
-        if (prevState.hidden!==this.state.hidden){
+        if (prevState.hidden !== this.state.hidden) {
             this.foundation.onVisibleChange(!this.state.hidden);
         }
 
-        if (!this.props.motion){
-            // if motion is true, we should set state after animation end, so we don't need to set state here
-            this.updateState();
-        }
     }
 
     componentWillUnmount() {
@@ -196,7 +192,7 @@ export default class SideSheet extends BaseComponent<SideSheetReactProps, SideSh
         this.foundation.handleKeyDown(e);
     };
 
-    updateState = ()=>{
+    updateState = () => {
         const shouldRender = (this.props.visible || this.props.keepDOM);
         this.foundation.setShouldRender(shouldRender);
         this.foundation.toggleHidden(!this.props.visible);
@@ -219,7 +215,7 @@ export default class SideSheet extends BaseComponent<SideSheetReactProps, SideSh
             keepDOM,
             ...props
         } = this.props;
-        const { direction } = this.context;
+        const {direction} = this.context;
         const isVertical = placement === 'left' || placement === 'right';
         const isHorizontal = placement === 'top' || placement === 'bottom';
         const sheetWidth = isVertical ? (width ? width : defaultWidthList[size]) : '100%';
@@ -242,46 +238,36 @@ export default class SideSheet extends BaseComponent<SideSheetReactProps, SideSh
         };
 
         // Since user could change animate duration , we don't know which animation end first. So we call updateState func twice.
+        return <CSSAnimation motion={this.props.motion} animationState={visible ? 'enter' : 'leave'} startClassName={
+            visible ? `${prefixCls}-animation-mask_show` : `${prefixCls}-animation-mask_hide`
+        } onAnimationEnd={this.updateState}>
+            {
+                ({
+                     animationClassName: maskAnimationClassName,
+                     animationEventsNeedBind: maskAnimationEventsNeedBind
+                 }) => {
+                    return <CSSAnimation
+                        motion={this.props.motion}
+                        animationState={visible ? 'enter' : 'leave'}
+                        startClassName={visible ? `${prefixCls}-animation-content_show_${this.props.placement}` : `${prefixCls}-animation-content_hide_${this.props.placement}`}
+                        onAnimationEnd={this.updateState /* for no mask case*/}
+                    >
+                        {({animationClassName, animationStyle, animationEventsNeedBind}) => {
+                            return this.state.shouldRender ? <SideSheetContent
+                                {...contentProps}
+                                maskExtraProps={maskAnimationEventsNeedBind}
+                                wrapperExtraProps={animationEventsNeedBind}
+                                dialogClassName={animationClassName}
+                                maskClassName={maskAnimationClassName}
+                                style={{...animationStyle, ...style}}>
+                                {children}
+                            </SideSheetContent> : <></>;
+                        }}
+                    </CSSAnimation>;
 
-        if (this.props.motion) {
-            return <CSSAnimation animationState={visible ? 'enter' : 'leave'} startClassName={
-                visible ? `${prefixCls}-animation-mask_show` : `${prefixCls}-animation-mask_hide`
-            } onAnimationEnd={this.updateState}>
-                {
-                    ({
-                        animationClassName: maskAnimationClassName,
-                        animationEventsNeedBind: maskAnimationEventsNeedBind
-                    }) => {
-                        return <CSSAnimation
-                            animationState={visible ? 'enter' : 'leave'}
-                            startClassName={visible ? `${prefixCls}-animation-content_show_${this.props.placement}` : `${prefixCls}-animation-content_hide_${this.props.placement}`}
-                            onAnimationEnd={this.updateState /* for no mask case*/}
-                        >
-                            {({ animationClassName, animationStyle, animationEventsNeedBind }) => {
-                                return this.state.shouldRender ? <SideSheetContent
-                                    {...contentProps}
-                                    maskExtraProps={maskAnimationEventsNeedBind}
-                                    wrapperExtraProps={animationEventsNeedBind}
-                                    dialogClassName={animationClassName}
-                                    maskClassName={maskAnimationClassName}
-                                    style={{ ...animationStyle, ...style }}>
-                                    {children}
-                                </SideSheetContent> : <></>;
-                            }}
-                        </CSSAnimation>;
-
-                    }
                 }
-            </CSSAnimation>;
-        }
-        if (this.state.shouldRender) {
-            return (
-                <SideSheetContent {...contentProps} style={style} maskStyle={maskStyle}>
-                    {children}
-                </SideSheetContent>
-            );
-        }
-        return null;
+            }
+        </CSSAnimation>;
     }
 
     render() {

文件差異過大導致無法顯示
+ 39 - 501
yarn.lock


部分文件因文件數量過多而無法顯示