diff --git a/plugins/search/src/components/SearchBar/SearchBar.stories.tsx b/plugins/search/src/components/SearchBar/SearchBar.stories.tsx
index 72b8429026..d00f391bc7 100644
--- a/plugins/search/src/components/SearchBar/SearchBar.stories.tsx
+++ b/plugins/search/src/components/SearchBar/SearchBar.stories.tsx
@@ -15,7 +15,7 @@
*/
import React from 'react';
-import { Paper, Grid } from '@material-ui/core';
+import { Paper, Grid, makeStyles } from '@material-ui/core';
import { SearchBar, SearchContext } from '../index';
import { MemoryRouter } from 'react-router';
@@ -81,3 +81,48 @@ export const Focused = () => {
);
};
+
+export const WithoutClearButton = () => {
+ return (
+
+ {/* @ts-ignore (defaultValue requires more than what is used here) */}
+
+
+
+
+
+
+
+
+
+
+ );
+};
+
+const useStyles = makeStyles({
+ search: {
+ display: 'flex',
+ justifyContent: 'space-between',
+ padding: '8px 0',
+ borderRadius: '50px',
+ margin: 'auto',
+ },
+});
+
+export const CustomStyles = () => {
+ const classes = useStyles();
+ return (
+
+ {/* @ts-ignore (defaultValue requires more than what is used here) */}
+
+
+
+
+
+
+
+
+
+
+ );
+};
diff --git a/plugins/search/src/components/SearchBar/SearchBar.test.tsx b/plugins/search/src/components/SearchBar/SearchBar.test.tsx
index 81f90640c1..4ac4c95224 100644
--- a/plugins/search/src/components/SearchBar/SearchBar.test.tsx
+++ b/plugins/search/src/components/SearchBar/SearchBar.test.tsx
@@ -149,6 +149,20 @@ describe('SearchBar', () => {
);
});
+ it('Should not show clear button', async () => {
+ render(
+
+
+
+
+ ,
+ );
+
+ expect(
+ screen.queryByRole('button', { name: 'Clear' }),
+ ).not.toBeInTheDocument();
+ });
+
it('Adheres to provided debounceTime', async () => {
jest.useFakeTimers();
diff --git a/plugins/search/src/components/SearchBar/SearchBar.tsx b/plugins/search/src/components/SearchBar/SearchBar.tsx
index 4ab680d8fa..693cf98adf 100644
--- a/plugins/search/src/components/SearchBar/SearchBar.tsx
+++ b/plugins/search/src/components/SearchBar/SearchBar.tsx
@@ -31,6 +31,7 @@ type PresenterProps = {
className?: string;
placeholder?: string;
autoFocus?: boolean;
+ clearButton?: boolean;
};
export const SearchBarBase = ({
@@ -40,6 +41,7 @@ export const SearchBarBase = ({
onSubmit,
className,
placeholder: overridePlaceholder,
+ clearButton = true,
}: PresenterProps) => {
const configApi = useApi(configApiRef);
@@ -79,11 +81,13 @@ export const SearchBarBase = ({
}
endAdornment={
-
-
-
-
-
+ clearButton && (
+
+
+
+
+
+ )
}
{...(className && { className })}
{...(onSubmit && { onKeyDown })}
@@ -96,6 +100,7 @@ type Props = {
className?: string;
debounceTime?: number;
placeholder?: string;
+ clearButton?: boolean;
};
export const SearchBar = ({
@@ -103,6 +108,7 @@ export const SearchBar = ({
className,
debounceTime = 0,
placeholder,
+ clearButton = true,
}: Props) => {
const { term, setTerm } = useSearch();
const [value, setValue] = useState(term);
@@ -129,6 +135,7 @@ export const SearchBar = ({
onChange={handleQuery}
onClear={handleClear}
placeholder={placeholder}
+ clearButton={clearButton}
/>
);
};