@primer/react
Version:
An implementation of GitHub's Primer Design System using React
23 lines (22 loc) • 1.1 kB
JavaScript
import { createContext } from "react";
//#region src/Autocomplete/AutocompleteContext.tsx
/**
* Base context containing refs, stable IDs, menu visibility state, and callbacks.
* This context changes when menu opens/closes or selection changes, but NOT on every keystroke.
* Consumers like AutocompleteOverlay that don't need input text should use only this context.
*/
const AutocompleteContext = /*#__PURE__*/ createContext(null);
/**
* Input-related state that changes on every keystroke.
* Only AutocompleteInput needs this for immediate text display and suggestion highlighting.
*/
const AutocompleteInputContext = /*#__PURE__*/ createContext(null);
/**
* Deferred input value for expensive operations like filtering.
* Uses React's useDeferredValue to allow typing to remain responsive while
* filtering large lists at lower priority.
* AutocompleteMenu uses this to avoid blocking keystrokes during filtering.
*/
const AutocompleteDeferredInputContext = /*#__PURE__*/ createContext(null);
//#endregion
export { AutocompleteContext, AutocompleteDeferredInputContext, AutocompleteInputContext };