Auto focus search bar when plugins/themes tab is selected

#1213
This commit is contained in:
flatypus [mac] 2023-12-27 02:50:18 -08:00
parent 1dc24222ca
commit fd218d2c60
1 changed files with 10 additions and 3 deletions

View File

@ -1,19 +1,26 @@
import React from "@modules/react"; import React from "@modules/react";
import SearchIcon from "@ui/icons/search"; import SearchIcon from "@ui/icons/search";
const {useState, useCallback} = React; const {useState, useEffect, useCallback, useRef} = React;
export default function Search({onChange, className, onKeyDown, placeholder}) { export default function Search({onChange, className, onKeyDown, placeholder}) {
const input = useRef(null);
const [value, setValue] = useState(""); const [value, setValue] = useState("");
// focus search bar on page select
useEffect(()=>{
if (!input.current) return;
input.current.focus();
}, []);
const change = useCallback((e) => { const change = useCallback((e) => {
onChange?.(e); onChange?.(e);
setValue(e.target.value); setValue(e.target.value);
}, [onChange]); }, [onChange]);
return <div className={"bd-search-wrapper" + (className ? ` ${className}` : "")}> return <div className={"bd-search-wrapper" + (className ? ` ${className}` : "")}>
<input onChange={change} onKeyDown={onKeyDown} type="text" className="bd-search" placeholder={placeholder} maxLength="50" value={value} /> <input onChange={change} onKeyDown={onKeyDown} type="text" className="bd-search" placeholder={placeholder} maxLength="50" value={value} ref={input}/>
<SearchIcon /> <SearchIcon />
</div>; </div>;