Skip to content

Commit c4fadc5

Browse files
committed
fix(forms): allow autocomplete customization based on css selectors
1 parent f5f7f93 commit c4fadc5

File tree

2 files changed

+19
-4
lines changed

2 files changed

+19
-4
lines changed

src/forms/FormAutocomplete.jsx

+3-2
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ export function FormAutocomplete({
109109
{...{ placeholder, disabled }}
110110
type="text"
111111
ref={searchInputRef}
112-
className={`form-control ${isFocused ? '' : 'd-none'} ${controlFeedback}`}
112+
className={formatClasses(['form-control form-autocomplete-search', isFocused ? '' : 'd-none', controlFeedback])}
113113
onChange={handleInputChange.bind(null, {
114114
update: onSearchInputType,
115115
})}
@@ -124,7 +124,7 @@ export function FormAutocomplete({
124124

125125
{!isFocused && (
126126
<div
127-
className={formatClasses(['form-control', controlFeedback])}
127+
className={formatClasses(['form-control form-autocomplete-selected', controlFeedback])}
128128
disabled={disabled}
129129
onClick={enableSearchInput}
130130
>
@@ -141,6 +141,7 @@ export function FormAutocomplete({
141141
ref={registerRef}
142142
/>
143143
<Dropdown
144+
className="form-autocomplete-dropdown"
144145
isOpen={isOpen()}
145146
items={items.filter(filter(searchValue))}
146147
onSelect={onSelectItem}

src/mixed/Dropdown.jsx

+16-2
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,22 @@ import PropTypes from 'prop-types';
33
import { safeClick } from '../utils/event-handlers';
44
import { formatClasses } from '../utils/attributes';
55

6-
export function Dropdown({ children, items, onSelect, isOpen, onTouchStart, onMouseEnter, onMouseLeave, template }) {
6+
export function Dropdown({
7+
children,
8+
items,
9+
onSelect,
10+
isOpen,
11+
onTouchStart,
12+
onMouseEnter,
13+
onMouseLeave,
14+
template,
15+
className,
16+
}) {
717
return (
8-
<div className={formatClasses(['dropdown', isOpen && 'show'])} {...{ onTouchStart, onMouseEnter, onMouseLeave }}>
18+
<div
19+
className={formatClasses(['dropdown', className, isOpen && 'show'])}
20+
{...{ onTouchStart, onMouseEnter, onMouseLeave }}
21+
>
922
{children}
1023

1124
{items.length > 0 && (
@@ -44,4 +57,5 @@ Dropdown.propTypes = {
4457
onSelect: PropTypes.func,
4558
onTouchStart: PropTypes.func,
4659
template: PropTypes.func,
60+
className: PropTypes.string,
4761
};

0 commit comments

Comments
 (0)