From 6c840fe9c7cd7a356e2bfcf212198ed4f32f55cb Mon Sep 17 00:00:00 2001 From: Nikunj Hudka Date: Sun, 23 Feb 2025 23:06:32 -0400 Subject: [PATCH] feat: ui:disabled allowed in GithubRepoPicker Signed-off-by: Nikunj Hudka --- .../RepoUrlPicker/GithubRepoPicker.test.tsx | 34 +++++++++++++++++++ .../fields/RepoUrlPicker/GithubRepoPicker.tsx | 13 +++++-- 2 files changed, 45 insertions(+), 2 deletions(-) diff --git a/plugins/scaffolder/src/components/fields/RepoUrlPicker/GithubRepoPicker.test.tsx b/plugins/scaffolder/src/components/fields/RepoUrlPicker/GithubRepoPicker.test.tsx index d5657606a7..92c6dc4090 100644 --- a/plugins/scaffolder/src/components/fields/RepoUrlPicker/GithubRepoPicker.test.tsx +++ b/plugins/scaffolder/src/components/fields/RepoUrlPicker/GithubRepoPicker.test.tsx @@ -170,4 +170,38 @@ describe('GithubRepoPicker', () => { ); }); }); + + describe('GithubRepoPicker - isDisabled', () => { + it('disables all inputs when isDisabled is true', async () => { + const { getByLabelText } = await renderInTestApp( + + + , + ); + + const ownerInput = getByLabelText(/owner/i); + expect(ownerInput).toBeDisabled(); + }); + + it('does not disable inputs when isDisabled is false', async () => { + const { getByLabelText } = await renderInTestApp( + + + , + ); + + const ownerInput = getByLabelText(/owner/i); + expect(ownerInput).not.toBeDisabled(); + }); + }); }); diff --git a/plugins/scaffolder/src/components/fields/RepoUrlPicker/GithubRepoPicker.tsx b/plugins/scaffolder/src/components/fields/RepoUrlPicker/GithubRepoPicker.tsx index 66a662b530..c1d675d0b6 100644 --- a/plugins/scaffolder/src/components/fields/RepoUrlPicker/GithubRepoPicker.tsx +++ b/plugins/scaffolder/src/components/fields/RepoUrlPicker/GithubRepoPicker.tsx @@ -34,7 +34,14 @@ export const GithubRepoPicker = ( accessToken?: string; }>, ) => { - const { allowedOwners = [], rawErrors, state, onChange, accessToken } = props; + const { + allowedOwners = [], + rawErrors, + state, + onChange, + accessToken, + isDisabled, + } = props; const { t } = useTranslationRef(scaffolderTranslationRef); const ownerItems: SelectItem[] = allowedOwners ? allowedOwners.map(i => ({ label: i, value: i })) @@ -110,7 +117,7 @@ export const GithubRepoPicker = ( onChange={s => onChange({ owner: String(Array.isArray(s) ? s[0] : s) }) } - disabled={allowedOwners.length === 1} + disabled={isDisabled || allowedOwners.length === 1} selected={owner} items={ownerItems} /> @@ -126,10 +133,12 @@ export const GithubRepoPicker = ( )} freeSolo + disabled={isDisabled} autoSelect /> )}