Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(Textarea): complete refactoring #526

Open
wants to merge 2 commits into
base: develop
Choose a base branch
from
Open

Conversation

anlyyao
Copy link
Collaborator

@anlyyao anlyyao commented Sep 20, 2024

🤔 这个 PR 的性质是?

  • 日常 bug 修复
  • 新特性提交
  • 文档改进
  • 演示代码改进
  • 组件样式/交互改进
  • CI/CD 改进
  • 重构
  • 代码风格优化
  • 测试用例
  • 分支合并
  • 其他

🔗 相关 Issue

相关PR

TDesignOteam/tdesign-api#432
Tencent/tdesign-common#1943

💡 需求背景和解决方案

📝 更新日志

  • breaking(Textarea): 组件重构,新增 allowInputOverMaxborderedreadonly 等属性

  • 本条 PR 不需要纳入 Changelog

☑️ 请求合并前的自查清单

⚠️ 请自检并全部勾选全部选项⚠️

  • 文档已补充或无须补充
  • 代码演示已提供或无须提供
  • TypeScript 定义已补充或无须补充
  • Changelog 已提供或无须提供

Copy link
Contributor

github-actions bot commented Sep 20, 2024

完成

...otherProps
} = props;

const textareaClass = usePrefixClass('textarea');

const [value = '', setValue] = useDefault(props.value, defaultValue, props.onChange);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

value=''可以刪掉=''

const { disabled, maxlength, maxcharacter, autofocus, defaultValue, autosize = false, label, ...otherProps } = props;
const { classPrefix } = useConfig();
const baseClass = `${classPrefix}-textarea`;
const Textarea = forwardRef((originProps: TextareaProps, ref: TextareaRefInterface) => {
Copy link
Collaborator

@HaixingOoO HaixingOoO Oct 9, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

類型可寫在forwardRef裡

Comment on lines +125 to +129
const handleCompositionEnd = (e) => {
if (composingRef.current) {
composingRef.current = false;
inputValueChangeHandle(e);
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

火狐瀏覽器的執行順序和chrome不同,所以firefox的inputValueChangeHandle會執行兩次

@@ -84,27 +138,40 @@ const Textarea = forwardRef((props: TextareaProps, ref: TextareaRefInterface) =>
textareaElement: textareaRef.current,
}));

const renderLabel = () => label && <div className={`${textareaClass}__label`}> {parseTNode(label)} </div>;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

感覺label可以提到外面判斷,可以減少每次都執行函數

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants