frontend: changed 'search' interaction, for improved consistency and less burden on the server
Massimo Melina committed
Dec 21, 2021 at 12:14 UTC
ad9c282060b2be43a0218e8a8aa79a6327afa532
2 files changed
+6
-16
frontend/src/BrowseFiles.ts
+1
@@ -33,6 +33,7 @@ function useFetchList() {
33
const loc = window.location
34
if (!desiredPath.endsWith('/')) // useful only in dev, while accessing the frontend directly without passing by the main server
35
loc.href = loc.href+'/'
36
+ state.remoteSearch = ''
37
setPreloading(true)
38
setPath(desiredPath)
39
}, [desiredPath])
frontend/src/Head.ts
+5
-16
@@ -19,15 +19,11 @@ export function Head() {
19
20
function MenuPanel() {
21
const [showFilter, setShowFilter] = useState(state.listFilter > '')
22
- const [showSearch, setShowSearch] = useState(state.remoteSearch > '')
22
const [filter, setFilter] = useState(state.listFilter)
24
- const [search, setSearch] = useState(state.remoteSearch)
23
;[state.listFilter] = useDebounce(filter, 300)
26
- ;[state.remoteSearch] = useDebounce(search, 1000)
24
if (!showFilter)
25
state.listFilter = ''
29
- if (!showSearch)
30
- state.remoteSearch = ''
26
+ const { remoteSearch } = useSnapState()
27
return h('div', { id:'menu-panel' },
28
h('div', { id:'menu-bar' },
29
h(LoginButton),
@@ -42,12 +38,14 @@ function MenuPanel() {
38
h(MenuButton, {
39
icon: 'search',
40
label: 'Search',
45
- toggled: showSearch,
41
onClick() {
47
- setShowSearch(!showSearch)
42
+ const res = prompt('Search for...')
43
+ if (res !== null)
44
+ state.remoteSearch = res
45
}
46
})
47
),
48
+ remoteSearch && h('div', {}, 'Searched for: ',remoteSearch),
49
showFilter && h('input',{
50
id: 'filter',
51
placeholder: 'Filter',
@@ -57,15 +55,6 @@ function MenuPanel() {
55
setFilter(ev.target.value)
56
}
57
}),
60
- showSearch && h('input',{
61
- id: 'search',
62
- placeholder: 'Search',
63
- value: search,
64
- autoFocus: true,
65
- onChange(ev) {
66
- setSearch(ev.target.value)
67
- }
68
- }),
58
)
59
}
60