MCPcopy
hub / github.com/algolia/autocomplete / getDefaultOptions

Function getDefaultOptions

packages/autocomplete-js/src/getDefaultOptions.ts:68–190  ·  view source on GitHub ↗
(
  options: AutocompleteOptions<TItem>
)

Source from the content-addressed store, hash-verified

66};
67
68export function getDefaultOptions<TItem extends BaseItem>(
69 options: AutocompleteOptions<TItem>
70) {
71 const {
72 classNames,
73 container,
74 getEnvironmentProps,
75 getFormProps,
76 getInputProps,
77 getItemProps,
78 getLabelProps,
79 getListProps,
80 getPanelProps,
81 getRootProps,
82 panelContainer,
83 panelPlacement,
84 render,
85 renderNoResults,
86 renderer,
87 detachedMediaQuery,
88 components,
89 translations,
90 ...core
91 } = options;
92
93 /* eslint-disable no-restricted-globals */
94 const environment: AutocompleteEnvironment = (
95 typeof window !== 'undefined' ? window : {}
96 ) as typeof window;
97 /* eslint-enable no-restricted-globals */
98 const containerElement = getHTMLElement(environment, container);
99
100 invariant(
101 containerElement.tagName !== 'INPUT',
102 'The `container` option does not support `input` elements. You need to change the container to a `div`.'
103 );
104
105 warn(
106 !(render && renderer && !renderer?.render),
107 `You provided the \`render\` option but did not provide a \`renderer.render\`. Since v1.6.0, you can provide a \`render\` function directly in \`renderer\`.` +
108 `\nTo get rid of this warning, do any of the following depending on your use case.` +
109 "\n- If you are using the `render` option only to override Autocomplete's default `render` function, pass the `render` function into `renderer` and remove the `render` option." +
110 '\n- If you are using the `render` option to customize the layout, pass your `render` function into `renderer` and use it from the provided parameters of the `render` option.' +
111 '\n- If you are using the `render` option to work with React 18, pass an empty `render` function into `renderer`.' +
112 '\nSee https://www.algolia.com/doc/ui-libraries/autocomplete/api-reference/autocomplete-js/autocomplete/#param-render'
113 );
114
115 warn(
116 !renderer ||
117 render ||
118 (renderer.Fragment && renderer.createElement && renderer.render),
119 `You provided an incomplete \`renderer\` (missing: ${[
120 !renderer?.createElement && '`renderer.createElement`',
121 !renderer?.Fragment && '`renderer.Fragment`',
122 !renderer?.render && '`renderer.render`',
123 ]
124 .filter(Boolean)
125 .join(', ')}). This can cause rendering issues.` +

Callers 1

autocompleteFunction · 0.90

Calls 9

getHTMLElementFunction · 0.90
invariantFunction · 0.90
warnFunction · 0.90
createHighlightComponentFunction · 0.90
createSnippetComponentFunction · 0.90
mergeClassNamesFunction · 0.90
generateAutocompleteIdFunction · 0.90

Tested by

no test coverage detected