From fe2c968a3b211c67156f803e53215bebfc0b6a08 Mon Sep 17 00:00:00 2001 From: Nikunj Hudka Date: Sun, 23 Feb 2025 23:05:05 -0400 Subject: [PATCH] feat: ui:disabled allowed in BitbucketRepoPicker Signed-off-by: Nikunj Hudka --- .../BitbucketRepoPicker.test.tsx | 46 +++++++++++++++++++ .../RepoUrlPicker/BitbucketRepoPicker.tsx | 9 +++- 2 files changed, 53 insertions(+), 2 deletions(-) diff --git a/plugins/scaffolder/src/components/fields/RepoUrlPicker/BitbucketRepoPicker.test.tsx b/plugins/scaffolder/src/components/fields/RepoUrlPicker/BitbucketRepoPicker.test.tsx index af3952ff51..a39a660e72 100644 --- a/plugins/scaffolder/src/components/fields/RepoUrlPicker/BitbucketRepoPicker.test.tsx +++ b/plugins/scaffolder/src/components/fields/RepoUrlPicker/BitbucketRepoPicker.test.tsx @@ -271,4 +271,50 @@ describe('BitbucketRepoPicker', () => { ); }); }); + + describe('BitbucketRepoPicker - isDisabled', () => { + it('disables workspace and project inputs when isDisabled is true', async () => { + const { getAllByRole } = await renderInTestApp( + + + , + ); + + const inputs = getAllByRole('textbox'); + expect(inputs).toHaveLength(2); + expect(inputs[0]).toBeDisabled(); + expect(inputs[1]).toBeDisabled(); + }); + + it('does not disable workspace and project inputs when isDisabled is false', async () => { + const { getAllByRole } = await renderInTestApp( + + + , + ); + + const inputs = getAllByRole('textbox'); + expect(inputs).toHaveLength(2); + expect(inputs[0]).not.toBeDisabled(); + expect(inputs[1]).not.toBeDisabled(); + }); + }); }); diff --git a/plugins/scaffolder/src/components/fields/RepoUrlPicker/BitbucketRepoPicker.tsx b/plugins/scaffolder/src/components/fields/RepoUrlPicker/BitbucketRepoPicker.tsx index 45a6439a63..c8a73eee2d 100644 --- a/plugins/scaffolder/src/components/fields/RepoUrlPicker/BitbucketRepoPicker.tsx +++ b/plugins/scaffolder/src/components/fields/RepoUrlPicker/BitbucketRepoPicker.tsx @@ -49,6 +49,7 @@ export const BitbucketRepoPicker = ( rawErrors, state, accessToken, + isDisabled, } = props; const { t } = useTranslationRef(scaffolderTranslationRef); @@ -176,7 +177,7 @@ export const BitbucketRepoPicker = ( onChange={s => onChange({ workspace: String(Array.isArray(s) ? s[0] : s) }) } - disabled={allowedOwners.length === 1} + disabled={isDisabled || allowedOwners.length === 1} selected={workspace} items={ownerItems} /> @@ -191,9 +192,11 @@ export const BitbucketRepoPicker = ( )} + disabled={isDisabled} freeSolo autoSelect /> @@ -215,7 +218,7 @@ export const BitbucketRepoPicker = ( onChange={s => onChange({ project: String(Array.isArray(s) ? s[0] : s) }) } - disabled={allowedProjects.length === 1} + disabled={isDisabled || allowedProjects.length === 1} selected={project} items={projectItems} /> @@ -226,10 +229,12 @@ export const BitbucketRepoPicker = ( onChange({ project: newValue || '' }); }} options={availableProjects} + disabled={isDisabled} renderInput={params => ( )}