Closed janmichek closed 5 years ago
Jeste se snazim udelat ten focus po clearu
Eslinteru se nelibi pouziti refs, tak na to musim prijit jinak
Můžeš využít ten inputRef
tam.
Něco jako:
inputRef={(input) => {
this.searchbar = input;
if (this.props.inputRef) {
this.props.inputRef(input);
}
}}
a pak už by to mělo být ok použít..
handleClear(event) {
event.preventDefault();
this.setState({ query: '' });
this.props.onClear();
this.searchbar.focus();
}
Eslintu se asi nelíbí pouze string refs. To je deprecated a používá se ta funkce, nebo v novém rectu je ještě nějaký další způsob.
Dobry, diky za tip @natocTo chvili jsem zkoumal jak to teda funguje. Zkusil jsem jestli to nahodou nerozbilo 'Callback Refs' demo a je to ok, i kdyz jsem k demu pridal clearable.
OK. tu je to ready na review?
jj, prosim
Kdyby to byla úplně nová komponenta, tak bych skoro řekl že každý searchbar by mohl být clearable. Jakože ta props by nebyla potřeba. Ale takto když už to je používáno je to asi lepší takto.
Možná bych tam ten křížek (clear button) dal až když něco napíši
Jo, supr postreh
Kdyby to byla úplně nová komponenta, tak bych skoro řekl že každý searchbar by mohl být clearable.
Taky jsem se nad tim zamyslel - vetsinou to budeme chtit. Nenapada me duvod proc bychom to clear nechteli - Mozna jen uzky searchbar? Nevim. Provizorne tu props teda vyhodim. Kdyby se pri implementaci ukazalo ze to chybi, muzeme to snadno revertnout.
@natocTo Fixed, jeste jsem teda vyhodel ten outline styl na focus. Moc se mi to tam nelibilo
Good, ještě další věc.
Pokud by se teď ta komponenta vydala a poslala do KBC-UI, tak ten křížek sice vymaže zadaný text, ale tím to končí. Koukal jsem na konkrétní použití tam a skoro všude je implementováno pouze onChange
(dokonce onKeyDown
není snad nikde, ale to je jedno). A aby zjistili, že to bylo vymazáno, tak by všechny SearchBary musely implementovat onClear
.
Myslím že by se onClear
mohlo úplně vyhodit. Nebo nevím jaký to má use case. Místo toho by se v handleClear
mohlo volat onChange('')
V devportali to je spravene presne ako pises: https://github.com/keboola/developer-portal-ui/blob/0de6f2a4a0725ce66b3ee763e9aee4ce4daff755/src/scripts/common/form/SearchInput.js#L32
Ok, jo to mi asi nedoslo, fixnu to. 'onKeyDown' se pouziva ve vyberu projektu po prihlaseni, nebo v sidebaru. Muzes si sipkama projizdet seznam
Jo díky za doplnění. :)
Jo, fixnul jsem to. Chystal jsem se to vyzkouset v kbc v tomto kole. Jeste jsem doupravil 2 styly.
Jeste tam bude jedna implementacni vec: Napriklad v seznam Jobu nebo Logu se vyhledava az po odpaleni query entrem - ostatni searche vyhledavaji 'live'. Tak to bude treba napojit.
Nezhorsi vyhodenie outline ovladanie klavesnicou? Nebudem vediet, kde som. https://a11yproject.com/posts/never-remove-css-outlines/
@natocTo az to bude z tvojej strany ok, daj vediet, dam tomu este rychly check a mergol by som to.
Feer point, jeden z tech stylu jsem vratil. Zvyrazni to button pokud tam 'doTabujes', ale na klik ne nedela outline
Ve stories zůstalo ještě info o onClear
ale to je detail.
Plus stejný detail je asi to this.state.query.length > 0
kde to ve mě trochu evokuje co je to query teda zač, u stringu bych preferoval kratší zápis this.state.query
ale to není nic zásadního.
Jinak myslím ok tak to potvrdím.
Vytvorim teda jeste issue na implementaci clearovani searchu submitovanych enterem.
ok, jeste vysmahnu ten onClear z dema
Vytvorim teda jeste issue na implementaci clearovani searchu submitovanych enterem.
tomu moc nerozumiem, co presne tam treba zmenit?
Tady https://github.com/keboola/indigo-ui/pull/301#issuecomment-433045651 myslim ze je to vec implementace. Napr si zkus clear v Jobech. Query sice zmizi, ale search se nevyresetuje
Uzivatelsky by mi prislo dobry aby to delalo oboje, nebo?
Urcite to souvisi is tou issue v Recommended searches
Aha, chapem ... takze clear by zavolal vlastne change
s prazdnou hodnottou a ak existuje submitFn
, tak aj to ... jo, to myslim dava zmysel
fixes #300