From 7c6a7b799ae6a1e3b7c5976ff7962ec0e1ab3fd8 Mon Sep 17 00:00:00 2001 From: Ilya Savich Date: Fri, 13 Jan 2023 18:00:10 +0100 Subject: [PATCH] add BC Signed-off-by: Ilya Savich --- .changeset/new-jobs-deny.md | 1 - .../EntityAutocompletePicker.tsx | 17 ++++++++++------- .../EntityAutocompletePickerInput.tsx | 18 +++++++++++------- .../EntityTagPicker/EntityTagPicker.tsx | 9 +++++++++ 4 files changed, 30 insertions(+), 15 deletions(-) diff --git a/.changeset/new-jobs-deny.md b/.changeset/new-jobs-deny.md index ff656adfc3..e7b5bff71a 100644 --- a/.changeset/new-jobs-deny.md +++ b/.changeset/new-jobs-deny.md @@ -3,4 +3,3 @@ --- Add possibility to re-use EntityPicker for filters with multiple select. -**BREAKING** Style name `CatalogReactEntityTagPicker` was changed to `EntityAutocompletePickerInput` diff --git a/plugins/catalog-react/src/components/EntityAutocompletePicker/EntityAutocompletePicker.tsx b/plugins/catalog-react/src/components/EntityAutocompletePicker/EntityAutocompletePicker.tsx index 7994571e8f..6a1467f87d 100644 --- a/plugins/catalog-react/src/components/EntityAutocompletePicker/EntityAutocompletePicker.tsx +++ b/plugins/catalog-react/src/components/EntityAutocompletePicker/EntityAutocompletePicker.tsx @@ -14,19 +14,19 @@ * limitations under the License. */ -import { Box, Typography } from '@material-ui/core'; +import { Box, TextFieldProps, Typography } from '@material-ui/core'; import ExpandMoreIcon from '@material-ui/icons/ExpandMore'; import { Autocomplete } from '@material-ui/lab'; import React, { useEffect, useMemo, useState } from 'react'; -import { - DefaultEntityFilters, - useEntityList, -} from '../../hooks/useEntityListProvider'; import { useApi } from '@backstage/core-plugin-api'; import useAsync from 'react-use/lib/useAsync'; import { catalogApiRef } from '../../api'; import { EntityAutocompletePickerOption } from './EntityAutocompletePickerOption'; import { EntityAutocompletePickerInput } from './EntityAutocompletePickerInput'; +import { + DefaultEntityFilters, + useEntityList, +} from '../../hooks/useEntityListProvider'; import { EntityFilter } from '../../types'; type KeysMatchingCondition = T extends V ? K : never; @@ -53,6 +53,7 @@ export type EntityAutocompletePickerProps< path: string; showCounts?: boolean; Filter: ConstructableFilter>; + InputProps?: TextFieldProps; }; /** @public */ @@ -60,7 +61,7 @@ export function EntityAutocompletePicker< T extends DefaultEntityFilters = DefaultEntityFilters, Name extends AllowedEntityFilters = AllowedEntityFilters, >(props: EntityAutocompletePickerProps) { - const { label, name, path, showCounts, Filter } = props; + const { label, name, path, showCounts, Filter, InputProps } = props; const { updateFilters, @@ -141,7 +142,9 @@ export function EntityAutocompletePicker< popupIcon={ } - renderInput={EntityAutocompletePickerInput} + renderInput={params => ( + + )} /> diff --git a/plugins/catalog-react/src/components/EntityAutocompletePicker/EntityAutocompletePickerInput.tsx b/plugins/catalog-react/src/components/EntityAutocompletePicker/EntityAutocompletePickerInput.tsx index 8069f40871..4140feae01 100644 --- a/plugins/catalog-react/src/components/EntityAutocompletePicker/EntityAutocompletePickerInput.tsx +++ b/plugins/catalog-react/src/components/EntityAutocompletePicker/EntityAutocompletePickerInput.tsx @@ -13,23 +13,27 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import { makeStyles, TextField } from '@material-ui/core'; -import { AutocompleteRenderInputParams } from '@material-ui/lab'; +import { makeStyles, TextField, TextFieldProps } from '@material-ui/core'; import React from 'react'; +import classnames from 'classnames'; const useStyles = makeStyles( { input: {}, }, { - name: 'EntityAutocompletePickerInput', + name: 'CatalogReactEntityAutocompletePickerInput', }, ); -export function EntityAutocompletePickerInput( - params: AutocompleteRenderInputParams, -) { +export function EntityAutocompletePickerInput(params: TextFieldProps) { const classes = useStyles(); - return ; + return ( + + ); } diff --git a/plugins/catalog-react/src/components/EntityTagPicker/EntityTagPicker.tsx b/plugins/catalog-react/src/components/EntityTagPicker/EntityTagPicker.tsx index 7b08ddf745..0521bb49f8 100644 --- a/plugins/catalog-react/src/components/EntityTagPicker/EntityTagPicker.tsx +++ b/plugins/catalog-react/src/components/EntityTagPicker/EntityTagPicker.tsx @@ -14,6 +14,7 @@ * limitations under the License. */ +import { makeStyles } from '@material-ui/core'; import React from 'react'; import { EntityTagFilter } from '../../filters'; import { EntityAutocompletePicker } from '../EntityAutocompletePicker/EntityAutocompletePicker'; @@ -26,8 +27,15 @@ export type EntityTagPickerProps = { showCounts?: boolean; }; +const useStyles = makeStyles( + { input: {} }, + { name: 'CatalogReactEntityTagPicker' }, +); + /** @public */ export const EntityTagPicker = (props: EntityTagPickerProps) => { + const classes = useStyles(); + return ( { path="metadata.tags" Filter={EntityTagFilter} showCounts={props.showCounts} + InputProps={{ className: classes.input }} /> ); };