-
Notifications
You must be signed in to change notification settings - Fork 141
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
feat: TextLinkをnext/linkなどのラップされたコンポーネントに対応 #4867
Conversation
</li> | ||
</ol> | ||
</main> | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sandbox どう扱うか迷いますね。
今回はこうしないと確認は出来ないけど、かといってここに実装してるからって何かが担保できるわけでもないですし。 (sandbox については型チェックすらしてない)
方針決まるまでは特に何も実装しないでサンドボックスとして使えるまっさらな状態で良いかもしれません。
(個人的にはサーバーコンポーネント対応の中でこのサンドボックスを有効活用したい)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sandboxに置かないなら
type Props = Omit<ComponentPropsWithoutRef<'a'> & { to: ComponentPropsWithoutRef<'a'>['href'] }
const Link = (props: Props) => <a {...props} href={to} />
的なのをtestにおいてもいいかも、と思いましたがsandboxでも良さそうでした!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 next/link と react-router/link 両方で動作確認できました!型エラーもリンターエラーも発生しないし最高です!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
よさそうでした!!
一応参照元を見えるところに残しておきます:
参考にした実装
</li> | ||
</ol> | ||
</main> | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sandboxに置かないなら
type Props = Omit<ComponentPropsWithoutRef<'a'> & { to: ComponentPropsWithoutRef<'a'>['href'] }
const Link = (props: Props) => <a {...props} href={to} />
的なのをtestにおいてもいいかも、と思いましたがsandboxでも良さそうでした!
Related URL
https://smarthr.atlassian.net/browse/SHRUI-1018
Overview
UpwardLink
をSPA対応するために、内部で使われているTextLink
コンポーネントにelementAs
プロパティを追加しました。このelementAs
プロパティに要素を指定した場合、指定された要素に固有のprops
が自動的に引き継がれるようになります。What I did
TextLink
コンポーネントにジェネリック型T
を導入しました。TextLink
コンポーネントの使用方法に影響を与えません。elementAs
と定義したのはnext/linkがas
というpropsを持っていたので被りが発生しないようにしています。next/linkを利用した場合
Capture
nextのSandbox環境での例
TextLinkのStyleを適用しつつ next/linkが問題なく動作する