Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions examples/react/query-suggestions/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ export function App() {

<div className="search-panel__results">
<EXPERIMENTAL_Autocomplete
placeholder="Search for products"
indices={[
{
indexName: 'instant_search',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,6 @@ export function createAutocompleteSearchComponent({ createElement }: Renderer) {
autoCapitalize="off"
enterKeyHint="search"
spellCheck="false"
placeholder=""
maxLength={512}
type="search"
value={query}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ export type UsePropGetters<TItem extends BaseHit> = (params: {
indicesConfig: Array<AutocompleteIndexConfig<TItem>>;
onRefine: (query: string) => void;
onSelect: NonNullable<AutocompleteIndexConfig<TItem>['onSelect']>;
placeholder?: string;
}) => {
getInputProps: GetInputProps;
getItemProps: GetItemProps;
Expand All @@ -68,6 +69,7 @@ export function createAutocompletePropGetters({
indicesConfig,
onRefine,
onSelect: globalOnSelect,
placeholder,
}: Parameters<UsePropGetters<TItem>>[0]): ReturnType<UsePropGetters<TItem>> {
const getElementId = createGetElementId(useId());
const inputRef = useRef<HTMLInputElement>(null);
Expand Down Expand Up @@ -159,6 +161,7 @@ export function createAutocompletePropGetters({
'aria-haspopup': 'grid',
'aria-controls': getElementId('panel'),
'aria-activedescendant': activeDescendant,
placeholder,
onFocus: () => setIsOpen(true),
onKeyDown: (event) => {
switch (event.key) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,11 @@ type RendererParams<TItem extends BaseHit> = {
};
} & Pick<
AutocompleteWidgetParams<TItem>,
'getSearchPageURL' | 'onSelect' | 'showRecent' | 'showSuggestions'
| 'getSearchPageURL'
| 'onSelect'
| 'showRecent'
| 'showSuggestions'
| 'placeholder'
> &
Required<Pick<AutocompleteWidgetParams<TItem>, 'cssClasses' | 'templates'>>;

Expand Down Expand Up @@ -176,6 +180,7 @@ type AutocompleteWrapperProps<TItem extends BaseHit> = Pick<
| 'renderState'
| 'showRecent'
| 'showSuggestions'
| 'placeholder'
> &
Pick<AutocompleteRenderState, 'indices' | 'refine'> &
RendererOptions<Partial<AutocompleteWidgetParams<TItem>>>;
Expand All @@ -192,6 +197,7 @@ function AutocompleteWrapper<TItem extends BaseHit>({
showRecent,
showSuggestions,
templates,
placeholder,
}: AutocompleteWrapperProps<TItem>) {
const { isolatedIndex, targetIndex } = renderState;

Expand Down Expand Up @@ -250,6 +256,7 @@ function AutocompleteWrapper<TItem extends BaseHit>({

setQuery(query);
}),
placeholder,
});

let AutocompleteRecentSearchComponent = ({
Expand Down Expand Up @@ -499,6 +506,11 @@ type AutocompleteWidgetParams<TItem extends BaseHit> = {
* CSS classes to add.
*/
cssClasses?: AutocompleteCSSClasses;

/**
* Placeholder text for the search input.
*/
placeholder?: string;
};

export type AutocompleteWidget<TItem extends BaseHit = BaseHit> = WidgetFactory<
Expand All @@ -521,6 +533,7 @@ export function EXPERIMENTAL_autocomplete<TItem extends BaseHit = BaseHit>(
onSelect,
templates = {},
cssClasses: userCssClasses = {},
placeholder,
} = widgetParams || {};

if (!container) {
Expand Down Expand Up @@ -593,6 +606,7 @@ export function EXPERIMENTAL_autocomplete<TItem extends BaseHit = BaseHit>(
cssClasses,
showRecent,
showSuggestions,
placeholder,
renderState: {
indexTemplateProps: [],
isolatedIndex: undefined,
Expand Down
3 changes: 3 additions & 0 deletions packages/react-instantsearch/src/widgets/Autocomplete.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ export type AutocompleteProps<TItem extends BaseHit> = ComponentProps<'div'> & {
}) => React.JSX.Element;
searchParameters?: AutocompleteSearchParameters;
classNames?: Partial<AutocompleteClassNames>;
placeholder?: string;
};

type InnerAutocompleteProps<TItem extends BaseHit> = Omit<
Expand Down Expand Up @@ -235,6 +236,7 @@ function InnerAutocomplete<TItem extends BaseHit = BaseHit>({
panelComponent: PanelComponent,
showRecent,
showSuggestions,
placeholder,
...props
}: InnerAutocompleteProps<TItem>) {
const {
Expand Down Expand Up @@ -279,6 +281,7 @@ function InnerAutocomplete<TItem extends BaseHit = BaseHit>({

setQuery(query);
}),
placeholder,
});

const AutocompleteRecentSearchComponent =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,6 @@ describe('Autocomplete', () => {
enterkeyhint="search"
id="autocomplete:r0:input"
maxlength="512"
placeholder=""
role="combobox"
spellcheck="false"
type="search"
Expand Down