@primer/react
Version:
An implementation of GitHub's Primer Design System using React
25 lines (20 loc) • 1.05 kB
JavaScript
import { createContext } from 'react';
/**
* 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);
export { AutocompleteContext, AutocompleteDeferredInputContext, AutocompleteInputContext };