Skip to content

Commit 8c4d557

Browse files
committed
fix(ga): issue #606 - update unit test and code
1 parent 9b6780e commit 8c4d557

File tree

1 file changed

+23
-7
lines changed
  • packages/webapp/src/webview/ui/components/Header/SearchField

1 file changed

+23
-7
lines changed

packages/webapp/src/webview/ui/components/Header/SearchField/SearchField.tsx

+23-7
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import React, { useEffect, useState } from 'react';
2-
import { v4 as uuidv4 } from 'uuid';
32
import { UISearchBox } from '@sap-ux/ui-components';
3+
import type { ISearchBox } from '@fluentui/react';
44

55
import { fetchTreesData } from '../../../../features/Trees/Trees.utils';
66
import { useAppSelector } from '../../../../state/hooks';
@@ -26,28 +26,42 @@ export const SearchField: React.FC = (): JSX.Element => {
2626
const activeSearch: string = useAppSelector(getSearchQuery);
2727

2828
const [searchTerm, setSearchTerm] = useState<string>(activeSearch);
29-
const [uuidKey, setUuidKey] = useState<any>(uuidv4);
29+
30+
let searchInputRef: React.RefObject<ISearchBox>;
31+
32+
const getSearchInputRef = (): React.RefObject<ISearchBox> => {
33+
searchInputRef = React.createRef();
34+
return searchInputRef;
35+
};
3036

3137
const onClear = (): void => {
3238
if (activeSearch !== '') {
33-
actions.setQueryValue('');
39+
setSearchTerm('');
40+
41+
if (searchInputRef?.current) {
42+
searchInputRef?.current.focus();
43+
}
3444
}
3545
};
3646

3747
const onSearch = (searchItem: string): void => {
3848
if (!/\S/.test(searchItem)) {
3949
searchItem = '';
50+
} else {
51+
searchItem = searchItem.trim();
4052
}
53+
4154
if (activeSearch !== searchItem) {
4255
actions.setQueryValue(searchItem);
56+
} else {
57+
setSearchTerm(searchItem);
4358
}
4459
};
4560

4661
useEffect(() => {
4762
if (activeScreen === 'HOME' && activeSearch === '') {
4863
setSearchTerm('');
49-
setUuidKey(uuidv4);
50-
} else if (activeSearch !== searchTerm) {
64+
} else {
5165
setSearchTerm(activeSearch);
5266
fetchTreesData(
5367
activeSearch,
@@ -64,13 +78,15 @@ export const SearchField: React.FC = (): JSX.Element => {
6478
}, [activeSearch]);
6579

6680
return (
67-
<div className="guided-answer__header__searchField" id="search-field-container" key={uuidKey}>
81+
<div className="guided-answer__header__searchField" id="search-field-container">
6882
<UISearchBox
83+
componentRef={getSearchInputRef()}
6984
className="tree-search-field"
70-
defaultValue={searchTerm}
85+
value={searchTerm}
7186
readOnly={networkStatus === 'LOADING'}
7287
placeholder="Search Guided Answers"
7388
id="search-field"
89+
onChange={(e, t) => setSearchTerm(t ?? '')}
7490
onClear={onClear}
7591
onSearch={onSearch}></UISearchBox>
7692
{activeScreen === 'SEARCH' && <Filters />}

0 commit comments

Comments
 (0)