SearchInput() — react Function Reference
Architecture documentation for the SearchInput() function in SearchInput.js from the react codebase.
Entity Profile
Dependency Diagram
graph TD ee945c5b_0159_c9f4_263e_51248994235c["SearchInput()"] 9ae0d283_dcfa_919c_9bba_95892e72fbcd["SearchInput.js"] ee945c5b_0159_c9f4_263e_51248994235c -->|defined in| 9ae0d283_dcfa_919c_9bba_95892e72fbcd style ee945c5b_0159_c9f4_263e_51248994235c fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/react-devtools-shared/src/devtools/views/SearchInput.js lines 29–144
export default function SearchInput({
goToNextResult,
goToPreviousResult,
placeholder,
search,
searchIndex,
searchResultsCount,
searchText,
testName,
}: Props): React.Node {
const inputRef = useRef<HTMLInputElement | null>(null);
const resetSearch = () => search('');
// $FlowFixMe[missing-local-annot]
const handleChange = ({currentTarget}) => {
search(currentTarget.value);
};
// $FlowFixMe[missing-local-annot]
const handleKeyPress = ({key, shiftKey}) => {
if (key === 'Enter') {
if (shiftKey) {
goToPreviousResult();
} else {
goToNextResult();
}
}
};
// Auto-focus search input
useEffect(() => {
if (inputRef.current === null) {
return () => {};
}
const handleKeyDown = (event: KeyboardEvent) => {
const {key, metaKey} = event;
if (key === 'f' && metaKey) {
const inputElement = inputRef.current;
if (inputElement !== null) {
inputElement.focus();
event.preventDefault();
event.stopPropagation();
}
}
};
// It's important to listen to the ownerDocument to support the browser extension.
// Here we use portals to render individual tabs (e.g. Profiler),
// and the root document might belong to a different window.
const ownerDocumentElement = inputRef.current.ownerDocument.documentElement;
if (ownerDocumentElement === null) {
return;
}
ownerDocumentElement.addEventListener('keydown', handleKeyDown);
return () =>
ownerDocumentElement.removeEventListener('keydown', handleKeyDown);
}, []);
return (
<div className={styles.SearchInput} data-testname={testName}>
<Icon className={styles.InputIcon} type="search" />
<input
data-testname={testName ? `${testName}-Input` : undefined}
className={styles.Input}
onChange={handleChange}
onKeyPress={handleKeyPress}
placeholder={placeholder}
ref={inputRef}
value={searchText}
/>
{!!searchText && (
<React.Fragment>
<span
className={styles.IndexLabel}
data-testname={testName ? `${testName}-ResultsCount` : undefined}>
{Math.min(searchIndex + 1, searchResultsCount)} |{' '}
{searchResultsCount}
</span>
<div className={styles.LeftVRule} />
Domain
Subdomains
Source
Frequently Asked Questions
What does SearchInput() do?
SearchInput() is a function in the react codebase, defined in packages/react-devtools-shared/src/devtools/views/SearchInput.js.
Where is SearchInput() defined?
SearchInput() is defined in packages/react-devtools-shared/src/devtools/views/SearchInput.js at line 29.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free