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: Icon系コンポーネントの内部処理をリファクタリングする #5290

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

AtsushiM
Copy link
Member

関連URL

概要

変更内容

確認方法

Copy link

pkg-pr-new bot commented Jan 16, 2025

Open in Stackblitz

npm i https://pkg.pr.new/kufu/smarthr-ui@5290

commit: b1c024c

@@ -113,79 +111,92 @@ const wrapper = tv({
},
})

export const createIcon = (SvgIcon: IconType) => {
Copy link
Member Author

Choose a reason for hiding this comment

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

createIconとgenerateIconは処理内容は完全に同じです。
型なども同様であり、aliasとしても存在する理由はありません。
既存のgeenrateIconは内部でcreateIconを呼び出す関係上、余計なオーバーヘッドがかかるデメリットがあるのみでした。
generateIconのほうはsmarthr-uiとして外部提供しているため、

  • 既存のgenerateIconを削除
  • 既存のcreateIconをgenerateIconにrename

することで整理しました

if (colorName in textColor) {
return textColor[colorName as keyof typeof textColor]
export const generateIcon = (SvgIcon: IconType) => {
const Icon = React.memo<Props>(
Copy link
Member Author

Choose a reason for hiding this comment

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

iconは属性が変わる可能性はかなり低く、また内容がUIからは想像できないほど複雑な処理を行っています。
再レンダリングが必要になる可能性と複雑目な内容を考慮し、デフォルトでmemo化するメリットが大きいと判断、対応しました

size,
...props
}) => {
const actualAriaHidden = useMemo(() => {
Copy link
Member Author

Choose a reason for hiding this comment

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

aria-hiddenに設定するための値を一つのuseMemoに集約させました

return (
<span className={wrapperStyle}>
{right && text}
{visuallyHiddenAlt}
Copy link
Member Author

Choose a reason for hiding this comment

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

もともとは alt text の順序で表示されていましたが、UI上の並び順と違うため text alt のように、UI上のアイコンのaltだということがわかる順序に変更しています

@AtsushiM AtsushiM marked this pull request as ready for review January 16, 2025 01:42
@AtsushiM AtsushiM requested a review from a team as a code owner January 16, 2025 01:42
@AtsushiM AtsushiM requested review from yt-ymmt and hiroki0525 and removed request for a team January 16, 2025 01:42
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.

1 participant