-
Notifications
You must be signed in to change notification settings - Fork 142
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: Step 付き FormDialog の新規作成(FormDialogの拡張ではないバージョン) #5004
base: master
Are you sure you want to change the base?
Conversation
commit: |
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.
FormDialog の拡張と比べて、ボタンのラベルの出し分けなどは DialogContentInnner に寄せたため、 hooks は activeStep 関連の処理のみになりました。
いっそ分けなくてもいいかもというレベルです 🤔
|
||
const onNextSteps = useCallback(() => { | ||
focusTrapRef.current?.focus() | ||
startTransition(() => setActiveStep((pre) => pre + 1)) |
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.
最終ステップのひとつ前のステップで、次へボタンを押すと即座に button の type が submit に更新され、onSubmit が発火するという現象が起きていたため、この step の更新をトランジションとして即座にUI更新されないようにしました。
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.
基本的な構成は FormDialog からほぼ変えず、次へ、戻るボタンなどをを表示しています!
DialogProps | ||
type ElementProps = Omit<ComponentProps<'div'>, keyof Props> | ||
|
||
export const StepFormDialog: React.FC<Props & ElementProps> = ({ |
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.
eslint のカスタムルールでエラーが出てしまうので、こういう名前 FormDialog$
にしてるのですが、この方法で進めるなら適切な名前に変更して、ルールに付け足していいと思いました!
b3e6672
to
3184105
Compare
関連URL
asana: https://app.asana.com/0/1206535203416259/1208178713972396/f
イメージ図: https://kufuinc.slack.com/archives/CGC58MW01/p1725506017398559?thread_ts=1725505216.026419&cid=CGC58MW01
#4972 で、FormDialog の拡張版を作ったのですが、若干ロジックが複雑になってしまったため独立で作ってみました!
比較用に PR は残しています!
概要
Step を持つ FormDialog の実装をしました。
目的
使用イメージ
変更内容
確認方法
storybook のコンポーネントを作ったのでそこから確認お願いします!
http://localhost:6006/?path=/story/dialog%EF%BC%88%E3%83%80%E3%82%A4%E3%82%A2%E3%83%AD%E3%82%B0%EF%BC%89-stepformdialog--default