traPtitech / NeoShowcase

PaaS (Platform as a Service) on Docker 🐳 or k8s ☸

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[Bug]: Is SPAの項目がNoに切り替わりづらい

motoki317 opened this issue · comments

バグの概要

Is SPAの項目がNoに切り替わりづらい

再現手順

静的ファイル配信型の新規アプリケーション作成時に、Is SPA: YesにしてからNoに切り替える

期待する動作

1クリックでNoに切り替わる

実際の動作

Yes->Noの切り替えの際必ず2~3クリック目で切り替わる、No->Yesの切り替えでは問題なく1クリックで切り替わる

再現環境

OS:Windows 11, ブラウザ:firefox_new:Firefox Nightly 127.0a1と:edge:Edge 124.0.2478.51で再現

スクリーンショット

No response

関連情報

以下の報告より
https://q.trap.jp/messages/bec2848e-a48d-4180-828d-91c074423bbe

以下の2つがかみ合ってなくて壊れてるっぽいです

  • modular formsのコンポーネントで自動生成される formのstore制御用のonInput, onChange, onBlur
  • 独自のform制御
    • (kobalteのradio groupでbooleanが値として使えないから文字列↔booleanの変換を挟んだり, ビルドタイプの設定のために"runtime"/"static"と"buildpack"/"cmd"/"docker"の2*3のradio groupの入力値を組み合わせて"runtimeCmd"に変換したりしてる部分とか)

対応方針としては、独自のform制御をやめ、valibot等modular formsが正式に対応しているライブラリを使ってバリデーションや変換処理を行うようにすることを考えています。

また同時に、各formをpages/**以下のコンポーネント内で作成し、propsとして子コンポーネントに渡して扱っていますが、かなり扱いづらくなっているのでcontextとして作成し、子コンポーネントではuseXXXForm()を呼び出してformを受け取るようにしようと考えています。