blob: 5ab888d27fe8a0bb3507c33fcc277477eea19211 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
[@warning "-26-27"];
open Melange_json.Primitives;
[@react.client.component]
let make = (~searchText: string, ~selectedId: option(int), ~isEditing: bool) => {
let {navigate, _}: ClientRouter.t = ClientRouter.useRouter();
let (text, setText) = RR.useStateValue(searchText);
let (isSearching, startSearching) = React.useTransition();
let onSubmit = event => {
React.Event.Form.preventDefault(event);
};
let%browser_only onChange = event => {
let target = React.Event.Form.target(event);
let nextText = target##value;
setText(nextText);
startSearching(() =>
navigate({
searchText: Some(nextText),
selectedId,
isEditing,
})
);
};
<form className="search" role="search" onSubmit>
<label className="offscreen mr-4" htmlFor="sidebar-search-input">
<Text> "Search for a note by title" </Text>
</label>
<InputText
id="sidebar-search-input"
placeholder="Search"
value=text
onChange
/>
<Spinner active=isSearching />
</form>;
};
|