From fbbf152f50cc455eb15f179c94ca949bdf413ba4 Mon Sep 17 00:00:00 2001 From: Benjamin Janssens Date: Thu, 6 Jun 2024 11:23:11 +0200 Subject: [PATCH] chore: add error handling Signed-off-by: Benjamin Janssens --- .../RepoUrlPicker/BitbucketRepoPicker.tsx | 37 ++++++++++++------- 1 file changed, 23 insertions(+), 14 deletions(-) diff --git a/plugins/scaffolder/src/components/fields/RepoUrlPicker/BitbucketRepoPicker.tsx b/plugins/scaffolder/src/components/fields/RepoUrlPicker/BitbucketRepoPicker.tsx index 5227f8a093..75ae840407 100644 --- a/plugins/scaffolder/src/components/fields/RepoUrlPicker/BitbucketRepoPicker.tsx +++ b/plugins/scaffolder/src/components/fields/RepoUrlPicker/BitbucketRepoPicker.tsx @@ -1,3 +1,4 @@ +/* eslint-disable no-restricted-syntax */ /* * Copyright 2021 The Backstage Authors * @@ -21,6 +22,8 @@ import InputLabel from '@material-ui/core/InputLabel'; import { Select, SelectItem } from '@backstage/core-components'; import { RepoUrlPickerState } from './types'; import { BitbucketCloudClient } from '@backstage/plugin-bitbucket-cloud-common'; +import Autocomplete from '@material-ui/lab/Autocomplete'; +import TextField from '@material-ui/core/TextField'; /** * The underlying component that is rendered in the form for the `BitbucketRepoPicker` @@ -83,11 +86,15 @@ export const BitbucketRepoPicker = (props: { if (!workspace) { setAvailableProjects([]); } else { - for await (const page of client - .listProjectsByWorkspace(workspace) - .iteratePages()) { - const keys = [...page.values!].map(p => p.key!); - setAvailableProjects([...availableProjects, ...keys]); + try { + for await (const page of client + .listProjectsByWorkspace(workspace) + .iteratePages()) { + const keys = [...page.values!].map(p => p.key!); + setAvailableProjects([...availableProjects, ...keys]); + } + } catch { + setAvailableProjects([]); } } }; @@ -160,15 +167,17 @@ export const BitbucketRepoPicker = (props: { items={projectItems} /> ) : ( - <> - Project - onChange({ project: e.target.value })} - value={project} - onBlur={() => onChangeProject()} - /> - + { + onChange({ project: newValue || '' }); + }} + options={availableProjects} + renderInput={params => } + freeSolo + onBlur={() => onChangeProject()} + autoSelect + /> )} The Project that this repo will belong to