|
1 |
| -import React, { FC } from 'react'; |
2 |
| -import { InputGroup, FormControl } from 'react-bootstrap'; |
3 |
| -import { ClearIcon } from "../SvgIcons/index"; |
| 1 | +import React, { FC } from "react"; |
4 | 2 | import { useTranslation } from "react-i18next";
|
5 | 3 |
|
6 |
| - |
7 | 4 | interface CustomSearchProps {
|
8 |
| - searchLoading?: boolean; |
9 |
| - handleClearSearch: () => void; |
10 |
| - search: string; |
11 |
| - setSearch: (value: string) => void; |
12 |
| - handleSearch: () => void; |
13 |
| - placeholder?: string; |
14 |
| - title?: string; |
15 |
| - dataTestId: string; |
| 5 | + search: string; |
| 6 | + setSearch: (value: string) => void; |
| 7 | + handleSearch: () => void; |
| 8 | + placeholder?: string; |
| 9 | + dataTestId: string; |
16 | 10 | }
|
17 | 11 |
|
18 | 12 | export const CustomSearch: FC<CustomSearchProps> = ({
|
19 |
| - searchLoading, |
20 |
| - handleClearSearch, |
21 |
| - search, |
22 |
| - setSearch, |
23 |
| - handleSearch, |
24 |
| - placeholder = "Search...", |
25 |
| - title = "Search", |
26 |
| - dataTestId |
| 13 | + search, |
| 14 | + setSearch, |
| 15 | + handleSearch, |
| 16 | + placeholder = "Search", |
| 17 | + dataTestId, |
27 | 18 | }) => {
|
28 |
| - const { t } = useTranslation(); |
29 |
| - const inputClassNames = ` ${searchLoading ? 'is-searching' : search ? 'has-value' : '' |
30 |
| - }`; |
31 |
| - |
32 |
| - return ( |
33 |
| - // <InputGroup className="d-flex align-items-center p-0 search-box input-group"> |
34 |
| - <div className="input-search"> |
35 |
| - {/* <div className="form-control-with-icon w-25"> */} |
36 |
| - <input |
37 |
| - className={inputClassNames} |
38 |
| - value={search} |
39 |
| - onChange={(e) => setSearch(e.target.value)} |
40 |
| - onKeyDown={(e) => (e.key === 'Enter' && handleSearch())} |
41 |
| - placeholder={t(placeholder)} |
42 |
| - title={t(title)} |
43 |
| - data-testid={dataTestId} |
44 |
| - aria-label={placeholder} |
45 |
| - /> |
46 |
| - {search && ( |
47 |
| - // <span className={`d-flex search-box-icon ${searchLoading ? 'loading' : ''}`} > |
48 |
| - <> |
49 |
| - {!searchLoading ? ( |
50 |
| - <button className="icon" onClick={handleClearSearch}> |
51 |
| - <ClearIcon |
52 |
| - // width={16} |
53 |
| - // height={16} |
54 |
| - // onClick={handleClearSearch} |
55 |
| - data-testid="form-search-clear-button" |
56 |
| - /> |
57 |
| - </button> |
58 |
| - ) : ( |
59 |
| - <div className="search-spinner" data-testid="search-spinner"></div> |
60 |
| - )} |
61 |
| - |
62 |
| - </> |
63 |
| - )} |
64 |
| - {/* </div> */} |
65 |
| - </div> |
66 |
| - // </InputGroup> |
67 |
| - ); |
| 19 | + const { t } = useTranslation(); |
| 20 | + return ( |
| 21 | + <div className="search-input-container"> |
| 22 | + <input |
| 23 | + className="search-input" |
| 24 | + onChange={(e) => setSearch(e.target.value)} |
| 25 | + onKeyDown={(e) => e.key === "Enter" && handleSearch()} |
| 26 | + placeholder={t(placeholder)} |
| 27 | + data-testid={dataTestId} |
| 28 | + aria-label={placeholder} |
| 29 | + value={search} |
| 30 | + role="searchbox" |
| 31 | + /> |
| 32 | + </div> |
| 33 | + ); |
68 | 34 | };
|
69 |
| - |
0 commit comments