useActionStateかReact-hook-formか
ちょっと適当に試してみたが、確かにシンプルに書いてstateでエラーを表示したりできるのはいい。
ただ、クライアントでzodのバリデーションをして送らないようにするとかは無理なのでシンプルなフォームならいいと思うけど、リアルタイムに検証結果を表示させたいみたいな用途ならクライアントで実行できるformライブラリ使った方が良さそうな感じする。
Server Actionの場合、Submitしてから検証になるから(一応inputの正規表現とかでできなくもないけど)送信ボタンを押してからじゃないとエラー返せない。
そのてん、react-hookf-formだとinput外した時から検証できる。
対応しているformライブラリもあるみたいではあるけど個人的にreact-hook-formのほうが慣れてるってのもある。
一応、どっちも使って、検証だけhook-formでやってuseActionStateのactionで送信とかもできるかも?
js動く環境では検証もできて、送信はuseActionStateでやるみたいなのもできなくはなさそう。
とはいえやるのめんどくさいし、シンプルにhook-formが対応してくれるの待つでもいいかもね。