UNPKG

@primer/react

Version:

An implementation of GitHub's Primer Design System using React

25 lines (20 loc) 1.05 kB
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 };