소스 검색

fix(textarea): set cursor attribute to text when textarea is readonly (#543)

chenc 3 년 전
부모
커밋
a50ff77411
2개의 변경된 파일16개의 추가작업 그리고 10개의 파일을 삭제
  1. 11 7
      packages/semi-foundation/input/textarea.scss
  2. 5 3
      packages/semi-ui/input/textarea.tsx

+ 11 - 7
packages/semi-foundation/input/textarea.scss

@@ -55,11 +55,7 @@ $module: #{$prefix}-input;
         }
     }
 
-    &-readonly {
-        cursor: default;
-    }
-
-    &-disabled {
+    &-disabled, &-readonly {
         cursor: not-allowed;
         // border: $border-thickness-control $color-input_disabled-border-default solid;
         color: $color-input_disabled-text-default;
@@ -74,6 +70,10 @@ $module: #{$prefix}-input;
         }
     }
 
+    &-readonly {
+        cursor: text;
+    }
+
     &-error {
         background-color: $color-input_danger-bg-default;
         border-color: $color-input_danger-border-default;
@@ -151,7 +151,7 @@ $module: #{$prefix}-input;
         padding-right: $spacing-textarea_withShowClear-paddingRight;
     }
 
-    &-disabled {
+    &-disabled, &-readonly {
         cursor: not-allowed;
         color: $color-input_disabled-text-default;
         background-color: transparent;
@@ -165,10 +165,14 @@ $module: #{$prefix}-input;
         }
     }
 
+    &-readonly {
+        cursor: text;
+    }
+
     &-autosize {
         overflow: hidden;
     }
-    
+
     &-counter {
         @include font-size-small;
         display: flex;

+ 5 - 3
packages/semi-ui/input/textarea.tsx

@@ -295,7 +295,8 @@ class TextArea extends BaseComponent<TextAreaProps, TextAreaState> {
             className,
             `${prefixCls}-textarea-wrapper`,
             {
-                [`${prefixCls}-textarea-wrapper-disabled`]: disabled || readonly,
+                [`${prefixCls}-textarea-wrapper-disabled`]: disabled,
+                [`${prefixCls}-textarea-wrapper-readonly`]: readonly,
                 [`${prefixCls}-textarea-wrapper-${validateStatus}`]: Boolean(validateStatus),
                 [`${prefixCls}-textarea-wrapper-focus`]: isFocus,
                 // [`${prefixCls}-textarea-wrapper-resize`]: !autosize && resize,
@@ -305,7 +306,8 @@ class TextArea extends BaseComponent<TextAreaProps, TextAreaState> {
         const itemCls = cls(
             `${prefixCls}-textarea`,
             {
-                [`${prefixCls}-textarea-disabled`]: disabled || readonly,
+                [`${prefixCls}-textarea-disabled`]: disabled,
+                [`${prefixCls}-textarea-readonly`]: readonly,
                 [`${prefixCls}-textarea-autosize`]: autosize,
                 [`${prefixCls}-textarea-showClear`]: showClear,
             }
@@ -346,4 +348,4 @@ class TextArea extends BaseComponent<TextAreaProps, TextAreaState> {
 
 const ForwardTextarea = React.forwardRef<HTMLTextAreaElement, Omit<TextAreaProps, 'forwardRef'>>((props, ref) => <TextArea {...props} forwardRef={ref} />);
 
-export default ForwardTextarea;
+export default ForwardTextarea;