From 376e3fadcad8aec88e3b5c826404dfad732f2379 Mon Sep 17 00:00:00 2001 From: eyemono-moe Date: Sat, 27 Jul 2024 11:40:08 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=E3=83=96=E3=83=A9=E3=83=B3=E3=83=81?= =?UTF-8?q?=E3=81=8C=E8=A6=8B=E3=81=A4=E3=81=8B=E3=82=89=E3=81=AA=E3=81=8B?= =?UTF-8?q?=E3=81=A3=E3=81=9F=E6=99=82=E3=81=AE=E3=82=A8=E3=83=A9=E3=83=BC?= =?UTF-8?q?=E6=96=87=E9=9D=A2=E3=82=92=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/form/general/BranchField.tsx | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/dashboard/src/features/application/components/form/general/BranchField.tsx b/dashboard/src/features/application/components/form/general/BranchField.tsx index b9ccc8d4..54ac83ae 100644 --- a/dashboard/src/features/application/components/form/general/BranchField.tsx +++ b/dashboard/src/features/application/components/form/general/BranchField.tsx @@ -14,14 +14,20 @@ const BranchField: Component = (props) => { const { formStore } = useApplicationForm() const branches = useBranches(() => props.repo.id) - // 設定されていたブランチを取得できなかった場合(ブランチが削除された場合等)にエラーを表示し、 + // 設定されていたブランチが見つからなかった場合(ブランチが削除された場合等)にエラーを表示し、 // 存在しない refName の代わりに空文字列を入れる createEffect(() => { - const ref = getValue( + const refName = getValue( untrack(() => formStore), 'form.refName', ) - if (ref !== undefined && !branches().includes(ref)) { + if (refName !== undefined && !branches().includes(refName)) { + // 下の refName に対する setValue により、もともと設定されていたブランチ名が空文字列に上書きされるため + // refName が空でない(=refName がもともと設定されていたブランチ名になっている)とき、それを使ってエラーを表示する + if (refName !== '') { + setError(formStore, 'form.refName', `設定されたブランチ(${refName})は存在しないブランチ名です`) + } + // refName を undefined にすると"更新しないプロパティ"という扱いになるため、 // 空文字列を設定してバリデーションエラーを発生させる setValue( @@ -29,11 +35,6 @@ const BranchField: Component = (props) => { 'form.refName', '', ) - setError( - formStore, - 'form.refName', - '設定されていたブランチの取得に失敗しました。リポジトリへのアクセス権を確認してください。', - ) } else { clearError(formStore, 'form.refName') } @@ -62,6 +63,7 @@ const BranchField: Component = (props) => { label: branch, value: branch, }))} + disabled={branches().length === 0} value={field.value} error={field.error} readOnly={!props.hasPermission}